-
Die
vorliegende Erfindung betrifft Computernetzwerke und spezieller
die Steuerung von Kommunikationen zwischen auf einem Bussystem zusammengeschlossenen
Netzwerkgeräten.
-
HINTERGRUND DER ERFINDUNG
-
Netzwerkgeräte können mit
konventionellen Verbindungssubsystemen wie z. B. einem kleinen SCSI-(Small
Computer System Interface Parallel Interconnect)-Bus, einem SCSI
Fibre Channel Bus oder einem Ethernet-LAN zusammengeschlossen werden.
Geräte,
die beispielsweise einen SCSI-Bus verwenden, sind so konfiguriert,
dass sie gemäß dem SCSI-Protokoll
arbeiten (z. B. unter anderem SCSI-1, SCSI-2 oder SCSI-3), dessen
Spezifikation in „Information
Technology – SCSI-3
Architecture Model" X3T
10 994D Revision 18, vom American National Standards Institute („ANSI" mit Sitz in 11 West
42nd Street, New York, New York) und im „SCSI-3 Architecture Model
(SAM)" X3.270:1996
erörtert
sind, ebenfalls von ANSI erhältlich.
Beide Publikationen sind hierin in ihrer Gesamtheit durch Bezugnahme eingeschlossen.
-
Die
US 5 689 689 offenbart die
Steuerung des Zugriffs auf einen Gemeinschaftsspeicher durch verschiedene
Betriebsmittel in einem Multiprozessorsystem.
-
Die
EP A 0 465 016 offenbart
ein Computernetz, mit dem an getrennten Knotenpunkten mehrere Computer
gekoppelt sind. Eine Vertrauensbereichstabelle (Trust-Realm-Table)
definiert, welche Computer zu vordefinierten Vertrauensbereichen
gehören.
Alle Mitglieder der einzelnen vordefinierten Vertrauensbereiche
vollstrecken einen gemeinsamen Satz von Sicherheitsprotokollen zum
Schützen der
Vertraulichkeit von Daten. Jeder zu einem Vertrauensbereich gehörende Computer vollstreckt
eine vordefinierte Sicherheitsrichtlinie und definiert auch ein
Sicherheitsniveau für
jeden Satz von in dem Computer gespeicherten Daten. So hat jede
Nachricht ein assoziiertes Etikett, das angibt, wie die Sicherheitsrichtlinie
des Computers mit Bezug auf die Nachricht zu vollstrecken ist. Ein
Trust-Realm-Service-Programm
bereitet eine bestimmte Nachricht zur Übertragung zu einem vorgegebenen
anderen Computersystem vor. Dazu verwendet es die Vertrauensbereichstabelle,
um zu prüfen,
ob sowohl das Computersystem als auch das vorgegebene Computersystem
zu wenigstens einem gemeinsamen Vertrauensbereich gehören, und
wählt dann
einen dieser gemeinsamen Vertrauensbereiche aus. Die Nachricht wird
als Protokolldateneinheit übertragen,
die eine versiegelte Version der Nachricht, authentifizierte Kennungen
für das/den
sendende(n) System und Benutzer, das Etikett der Nachricht und eine
Kennung für
den gewählten
Vertrauensbereich beinhaltet. Empfangene Protokolldateneinheiten
werden verarbeitet, indem jede der Komponenten der empfangenen Protokolldateneinheit überprüft wird,
bevor die versiegelte Nachricht in der Protokolldateneinheit als
authentisch akzeptiert wird. Ferner wird das Etikett in der empfangenen
Protokolldateneinheit vom Empfangscomputer zum Ermitteln benutzt,
welche vordefinierte Sicherheitsrichtlinie mit Bezug auf die Nachricht
zu vollstrecken ist.
-
Initiatorgeräte (d. h.
Geräte,
die mit einem Bus verbunden sind, der den Zugang zu anderen an dem
Bus angeschlossenen Geräten
anfordert, gewöhnlich „Initiatoren" genannt) auf einem
SCSI-Bus können
auf andere Geräte
(d. h. Geräte,
die mit dem Bus verbunden sind und auf die Initiatoren zugreifen, gewöhnlich „Targets" genannt) auf dem
Bus gemäß dem SCSI-Protokoll zugreifen.
Das SCSI-Protokoll gibt vor, dass ein den Zugang zu einem Ziel anfordernder
Initiator eine Zugriffsnachricht zu dem Ziel senden muss, die eine
den Initiator identifizierende Initiatorkennung, eine das Ziel identifizierende
Zielkennung und eine Logikeinheitsnummer („LUN") vorgibt, die den Teil des Zielgerätes identifiziert,
auf den zugegriffen werden soll („Logikeinheit"). Die Initiatorkennung
und die Zielkennung identifizieren typischerweise den physischen
Ort (d. h. die physische Adresse) des Initiators/Ziels auf dem Bus
(z. B. die Identifikationsnummer des Ports auf dem SCSI-Bus).
-
Wie
der Fachperson bekannt ist, setzen verschiedene Busprotokolle unterschiedliche
Grenzen für
die Höchstzahl
der Logikeinheiten innerhalb eines einzelnen Ziels, auf die ein
Initiator zugreifen kann. So kann beispielsweise auf höchstens
acht Logikeinheiten in einem einzigen Ziel von einem Initiator zugegriffen
werden, der mit einem Bussystem verbunden ist, das die SCSI-1 und
SCSI-2 Protokolle verwendet. Demgemäß kann der Initiator auf einem
solchen Bussystem auf nicht mehr als acht Logikeinheiten pro Ziel
zugreifen. Andere Logikeinheiten in dem Ziel sind für den Initiator
unerwünschterweise
nicht sichtbar. Auf ähnliche
Weise sind höchstens
264 Logikeinheiten für einen Initiator sichtbar,
der mit dem SCSI Fibre Channel Protokoll auf herkömmlichen Systemen
arbeitet.
-
Eine
beispielsweise mit einem SCSI-Bus arbeitende Systemimplementation
kann eine Zielsteuerung beinhalten, die ein zentrales Disk-Array
betreibt, das zum Speichern von Informationen für mehrere Host-Computersysteme
verwendet wird. Demgemäß wird in
einem Disk-Array mit hunderten von jeweils als separate Logikeinheiten
arbeitenden Platten ein Bussystem, das mit dem SCSI-1 oder SCSI-2
Busprotokoll arbeitet, das Disk-Array nicht voll auslasten, weil
nur auf acht der Disks in dem Array zugegriffen werden kann.
-
Es
gibt mit herkömmlichen
Zielen wie z. B. einem Disk-Array auch Vertraulichkeitsprobleme.
Speziell kann die LUN in einer Zugriffsnachricht eine oder mehrere
Disks in dem Disk-Array zum Speichern von Informationen von einem
Initiator-Hostcomputersystem
vorgeben. In vielen solchen Bussystemen des Standes der Technik
können
jedoch, je nach dem Busprotokoll, alle mit dem Bus verbundenen Host-Computer
auf das gesamte Disk-Array zugreifen (über die Zielsteuerung), wodurch
der Vertraulichkeitsschutz der in dem Disk-Array gespeicherten Dateien
begrenzt wird.
-
Die
Technik hat auf dieses Vertraulichkeitsproblem mit dem Partitionieren
von Disk-Arrays beispielsweise in mehrere Partitionen, Zuordnen
eines anderen Array-Ports (d. h. Busanschlussstellen) und einer
anderen Zielsteuerung zu jeder Partition und Verbinden eines unabhängigen Busses
mit jedem Array-Port reagiert. Demgemäß kann auf eine Partition nur
von solchen Initiatoren zugegriffen werden, die sich auf dem Bus
befindet, der mit dem assoziierten Array-Port verbunden ist. Diese
Lösung
verlangt daher, dass das Disk-Array dieselbe Anzahl von Ports wie
Array-Partitionen sowie eine gleiche Anzahl von Bussen hat. Durch
diese Anforderung erhöhen
sich notwendigerweise die endgültigen
Kosten für
Herstellung und Nutzung eines solchen Netzwerksystems.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Gemäß einem
Aspekt der Erfindung werden ein Verfahren, eine Vorrichtung und
ein Computerprogrammprodukt zum Steuern des Zugriffs auf ein Zielgerät bereitgestellt,
das eine Initiatorbuskennung verwendet, um den Zugriff auf einen
gewählten
Teil des Zielgerätes
entweder zuzulassen oder zu verweigern. Zu diesem Zweck wird eine
Nachricht mit einer (unter anderen Daten) den Initiator identifizierenden Initiatorkennung
vom Initiatorgerät
zum Zielgerät
gesendet, um den Zugang zu dem gewählten Teil des Zielgerätes anzufordern.
Nach dem Empfang durch das Zielgerät wird ermittelt, ob sich die
Initiatorkennung in einem mit dem gewählten Teil des Zielgerätes assoziierten
zugelassenen Satz von Initiatorkennungen befindet. Wenn die Initiatorkennung
in dem zugelassenen Satz ist, dann wird der Zugang zu dem Teil des
Zielgerätes
zugelassen und der Initiator kann mit konventionell bekannten Verfahren
auf den Zielteil zugreifen.
-
Wenn
die Initiatorbuskennung nicht in dem zugelassenen Satz ist, dann
wird der Zugang zu dem gewählten
Teil des Zielgerätes
verweigert. Im Verweigerungsfall kann eine Verweigerungsnachricht
zum Initiatorgerät
gesendet werden, die Benachrichtigungsdaten enthält, dass sich die Initiatorkennung nicht
in dem zugelassenen Satz befindet.
-
Gemäß einem
anderen Aspekt der Erfindung fängt
eine Zielsteuerung die Nachricht ab und überträgt sie zum Zielgerät, wenn
sich die Initiatorkennung in dem zugelassenen Satz von Initiatorkennungen
befindet. Der zugelassene Satz von Initiatorkennungen kann zwar
auch nur null Kennungen enthalten, aber einige Ausgestaltungen können bis
zur Gesamtzahl der mit dem Bus gekoppelten Geräte beinhalten.
-
Gemäß anderen
Aspekten der Erfindung ist der Bus ein SCSI-Bus und die Nachricht beinhaltet eine
mit dem gewählten
Teil des Zielgerätes
assoziierte Logikeinheitsnummer. Ferner kann die Nachricht den Bus
und eine das Ziel identifizierende Zielkennung identifizieren. Das
Zielgerät
kann ein Disk-Array und das Initiatorgerät ein Computersystem sein.
-
Gemäß einem
weiteren Aspekt der Erfindung wird eine Probe-Nachricht zum Zielgerät übertragen,
wo die Probe-Nachricht die Initiatorkennung enthält. Nach dem Ermitteln der
Initiatorkennung anhand der Probe-Nachricht werden wenigstens null Teile
des Zielgerätes
identifiziert, auf die das Initiatorgerät zugreifen kann. Dann wird
eine Antwortnachricht erzeugt und zum Initiatorgerät gesendet,
wo die Antwortnachricht Daten enthält, die die wenigstens null
Teile des Zielgerätes
identifizieren, auf die das Initiatorgerät zugreifen kann. Als Reaktion
auf den Empfang der Antwortnachricht kann das Initiatorgerät eine Zugriffsnachricht
erzeugen (mit Daten, die einen oder mehrere der wenigstens null
Teile des Zielgerätes
identifizeren, auf die das Initiatorgerät zugreifen kann), die den
Zugang zu dem Zielgerät
anfordert. Die Zugriffsnachricht kann zu dem Zielgerät übertragen
werden, so dass das Zielgerät
veranlasst wird, den Zugriff auf die ein oder mehreren der wenigstens
null Teile des Zielgerätes
durch das Initiatorgerät
zu gestatten.
-
Gemäß noch einem
weiteren Aspekt der Erfindung kann auf das Zielgerät durch
einen ersten Initiator mit einer ersten Konfiguration und einer
ersten Initiatorkennung oder durch einen zweiten Initiator mit einer
zweiten Konfiguration und einer zweiten Initiatorkennung zugegriffen
werden. In bevorzugten Ausgestaltungen sind ein erster Treiber zum
Interprätieren
der ersten Konfiguration und zum Erleichtern des Zugriffs durch
den ersten Initiator und ein zweiter Treiber zum Interprätieren der
zweiten Konfiguration und zum Erleichtern des Zugriffs durch den
zweiten Initiator vorgesehen. Der Zugang wird über einen der beiden Treiber
als Reaktion auf den Eingang einer Zugriffsnachricht gewährt, die
entweder die erste Initiatorkennung oder die zweite Initiatorkennung
enthält.
Speziell, wenn die Zugriffsnachricht die erste Initiatorkennung
hat, dann wird die Nachricht zum ersten Treiber zur Verarbeitung
geleitet, so dass der Zugriff durch den ersten Initiator erleichtert
wird. Auf ähnliche
Weise wird die Zugriffsnachricht, wenn sie die zweite Initiatorkennung
enthält,
zum zweiten Treiber zur Verarbeitung geleitet, so dass der Zugriff durch
die erste Kennung erleichtert wird.
-
Die
Erfindung ist in den beiliegenden Hauptansprüchen 1 und 11 definiert.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Die
obigen sowie weitere Aufgaben und Vorteile der Erfindung werden
aus der nachfolgenden näheren
Beschreibung davon mit Bezug auf die Begleitzeichnungen besser verständlich.
Dabei zeigt:
-
1 eine
schematische Darstellung eines bevorzugten Netzwerksystems, das
zum Implementieren einer bevorzugten Ausgestaltung der Erfindung
verwendet werden kann;
-
2 ein
Fließschema,
das die Schritte einer bevorzugten Ausgestaltung der Erfindung zum Steuern
des Zugriffs auf Zielgeräte
zeigt;
-
3 eine
schematische Darstellung eines alternativen Netzwerksystems, das
zum Implementieren einer bevorzugten Ausgestaltung der Erfindung
verwendet werden kann;
-
4 ein
weiteres alternatives Netzwerksystem, das zum Implementieren einer
bevorzugten Ausgestaltung der Erfindung verwendet werden kann;
-
5 einen
bevorzugten Prozess zum Zugreifen auf ein Ziel über eine Zielsteuerung, die
mit Initiatoren mit unterschiedlichen Konfigurationen kompatibel
ist.
-
BESCHREIBUNG VON ILLUSTRATIVEN AUSGESTALTUNGEN
-
1 zeigt
schematisch ein bevorzugtes Netzwerksystem, das zum Implementieren
einer bevorzugten Ausgestaltung der Erfindung verwendet werden kann.
Das System beinhaltet mehrere Netzwerkgeräte, die als Initiatoren 100 und
Ziele 102 identifiziert werden und die durch einen Netzwerkbus 104 zusammengeschlossen
sind. In bevorzugten Ausgestaltungen ist der Bus 104 ein
kleiner SCSI-(Small Computer System Interface)-Bus und die Netzwerkgeräte sind
gemäß der SCSI-Spezifikation vorkonfiguriert.
Die Initiatoren 100 fordern den Zugang zum Ziel 102 durch
Leiten von Zugriffsnachrichten zum Ziel 102 über den
Bus 104 an. Zugriffsnachrichten beinhalten unter anderem
eine den Initiator identifizierende Initiatorkennung, eine das Ziel
identifizierende Zielkennung und den Teil des Zielgerätes 102,
auf den zugegriffen werden soll („Logikeinheit 108", in den Figuren „LU" genannt). Die Logikeinheit 108 wird
in der Zugriffsnachricht anhand einer Logikeinheitsnummer („LUN") identifiziert.
Es ist zu bemerken, dass die Figuren zwar nur ein Ziel 102 zeigen,
dass aber jede beliebige Anzahl von Zielen 102 verwendet
werden kann, einschließlich
der Initiatoren 100, die ebenfalls als Ziele 102 für andere
Initiatoren 100 und das Ziel 102 dienen können. Es
ist auch zu bemerken, dass zwei Geräte, die als „verbunden" angesehen werden,
nicht unbedingt direkt miteinander verbunden sind und somit zusätzliche
Schaltungselemente oder Geräte
zwischen den beiden Geräten
haben können.
-
Das
Ziel 102 beinhaltet vorzugsweise eine Zielsteuerung 106 zum
Empfangen und Verarbeiten von Initiatornachrichten sowie mehrere
Logikeinheiten 108, die von gewählten Initiatoren 100 benutzt werden
und für
diese zugängig
sind. So kann das Ziel 102 beispielsweise ein RAID (Redundant
Array of Independent Disks) sein, das gewöhnlich als Disk-Array bezeichnet
wird. In einem solchen Fall kann die Logikeinheit 108 Gruppen
von Disks in dem Disk-Array sein. Die Gruppen können größenmäßig von null Platten (d. h.
ein Null-Satz) bis zu allen Platten in dem Disk-Array reichen. Wie
in 2 ausführlicher
dargestellt ist, verarbeitet die Zielsteuerung 106 die
Initiatornachrichten und erlaubt den Zugriff auf die gewählten Logikeinheiten 108 im
Ziel 102. In bevorzugten Ausgestaltungen wird die Zielsteuerung 106 als
Firmware im Ziel 102 implementiert.
-
Gemäß bevorzugten
Ausgestaltungen der Erfindung kann ein Initiator 100 nur
auf gewählte
Logikeinheiten 108 innerhalb des Ziels 102 zugreifen. Je
nach dem verwendeten Busprotokoll können diese gewählten Einheiten
Gruppen von Logikeinheiten 108 sein, deren Größe von null
Logikeinheiten 108 bis zu allen Logikeinheiten 108 im
Ziel 102 reicht. In bevorzugten Ausgestaltungen kann auf
bestimmte Logikeinheiten 102 nur durch einen Initiator 100 zugegriffen
werden, und auf bestimmte andere Logikeinheiten 108 kann
durch mehrere Initiatoren 100 zugegriffen werden („Gemeinschaftslogikeinheiten").
-
2 ist
ein Fließschema,
das ein bevorzugtes Verfahren zum Steuern des Zugriffs auf die Logikeinheiten 108 im
Ziel 102 zeigt. Der Zugriff auf die Logikeinheiten 108 ist
nicht nur von der Zielkennung, sondern auch von der Initiatorkennung
abhängig.
Zu diesem Zweck beginnt der Prozess in Schritt 200, wo der
Initiator 100 den Bus 104 mit einer Probe-Nachricht
absucht, um die Zielkennung und die mit dem Ziel 102 assoziierten
Logikeinheiten 108 zu ermitteln. Wie unten gezeigt, sind
nur bestimmte Logikeinheiten 108 in dem Ziel 102 mit
dem Initiator 100 assoziiert. Nach dem Empfang der Probe-Nachricht, die die Initiatorkennung
beinhaltet (z. B. der physische Ort des Initiators 100 auf
dem Bus 104), ermittelt die Zielsteuerung 106,
welche Logikeinheit 108 auf dem Ziel 102 ggf.
für den
jeweiligen Initiator 100 zugängig sind, von dem die Anforderung
kommt (Schritt 202). Diese Ermittlung kann durch Zugreifen
auf eine Datenstruktur (z. B. eine „Lookup-Tabelle") erfolgen, die einen zugelassenen Satz
von Logikeinheiten 108 vorgibt, auf die der jeweilige Initiator 100 zugreifen kann.
Zum Beispiel kann der Initiator 100 Zugang zu einem zulässigen Satz
von Logikeinheiten 108 nur mit den Logikeinheitnummern
4 und 6 haben. Die Lookup-Tabelle enthält somit auch einen Satz von
mit jeder Logikeinheit assoziierten Initiatorkennungen. Daher können in
jedem Satz nur diese Initiatorkennungen auf ihre assoziierte Ziellogikeinheit
zugreifen. Es ist zu bemerken, dass die Verwendung einer Lookup-Tabelle
beispielhaft erörtert
wird und den Umfang der Erfindung nicht begrenzen soll. Daher kann
jeder konventionelle Mechanismus zum Ermitteln des zugelassenen
Satzes von Logikeinheiten 108 zum Einsatz kommen.
-
Die
Struktur der Lookup-Daten kann von einem System-Operator vorkonfiguriert werden, der den
einzelnen Initiatoren 100 gewählte Logikeinheiten 108 in
dem Ziel 102 zuweist. Diese Vorkonfiguration erfolgt vorzugsweise
beim Installieren der Zielsteuerung 106. Bei Bedarf kann
die Struktur der Lookup-Daten
jedoch auch zu einem beliebigen späteren Zeitpunkt umkonfiguriert
werden, z. B. dann, wenn neue Initiatoren 100 zum System
hinzukommen oder wenn die Logikeinheiten 108 anderen Initiatoren 100 zugewiesen
werden müssen.
In bevorzugten Ausgestaltungen hat die Zielsteuerung 106 eine
assoziierte grafische Benutzeroberfläche, die es zulässt, dass
der System-Operator die Logikeinheitszuordnung in dem System leicht
konfiguriert oder umkonfiguriert.
-
Der
Vorgang geht dann zu Schritt 204, wo eine Antwortnachricht
mit dem Satz von Logikeinheitsnummern, auf die der Initiator 100 auf
dem Ziel 102 zugreifen kann, dem Initiator 100 über den
Bus 104 übertragen
wird. Dabei scheint das Ziel 102 (dem Initiator 100)
nur den Satz von Logikeinheiten (108) in der Antwortnachricht
zu haben. Eventuelle andere tatsächliche
Logikeinheiten 108 auf dem Ziel 102 erscheinen
dem Initiator 100 daher unsichtbar. Dies ergibt ein „virtuelles" Ziel für den Initiator 100,
wo ein solches virtuelles Ziel nur die in der Antwortnachricht vorgegebenen
Logikeinheiten hat. Bei Verwendung mit einem SCSI-Bus müssen die
Logikeinheitsnummern so umnummeriert werden, dass sie die Logikeinheitsnummer
null enthalten. Demgemäß kann, wenn
der Initiator 100 Zugang zu den Logikeinheitsnummern vier
und sechs hat, die Zielsteuerung 106 diese Logikeinheitsnummern
jeweils als null und eins umnummerieren und die entsprechenden tatsächlichen
Logikeinheitsnummern im lokalen Zielspeicher für ein nachfolgendes Mapping
speichern (nachfolgend mit Bezug auf Schritt 208 erörtert).
-
Der
Prozess geht dann weiter zu Schritt 206, wo die Antwortnachricht
vom Initiator 100 empfangen wird, und eine Zugriffsnachricht,
die den Zugang zu den in der Antwortnachricht vorgegebenen Logikeinheiten 108 anfordert,
wird zum Ziel 102 gesendet. Wie oben erwähnt, beinhaltet
die Zugriffsnachricht unter anderem die Initiatorkennung, die Zielkennung und
die Logikeinheitsnummern der Logikeinheiten 108, für die der
Zugang angefordert wird. Im obigen Beispiel kann die Zugriffsnachricht
die Logikeinheitsnummern null und eins enthalten.
-
Die
Zielsteuerung 106 empfängt
dann die Zugriffsnachricht und bildet die Logikeinheitsnummern in
der Zugriffsnachricht auf die tatsächlichen (physischen) Logikeinheitsnummern
des Ziels 102 ab (Schritt 208). Dieses Abbilden
(Mapping) erfolgt auf der Basis der Initiatorkennung. Mit dem obigen Beispiel
fortfahrend, auf den lokalen Zielspeicher wird zugegriffen und die
Logikeinheitsnummern in der Zugriffsnachricht (null und eins) werden
auf die tatsächlichen
Logikeinheitsnummern (vier und sechs) im Zielgerät 102 abgebildet.
-
Nach
dem Ermitteln der tatsächlichen
Logikeinheitsnummern fährt
der Prozess mit Schritt 210 fort, wo der Zugriff auf die
jeweiligen Logikeinheiten 108 (z. B. tatsächliche Ziellogikeinheitsnummern
vier und sechs) zugelassen wird. Die Initiatoren 100 greifen
dann auf konventionelle Weise gemäß dem SCSI-Protokoll auf die
Logikeinheiten 108 zu.
-
3 zeigt
schematisch ein alternatives Netzwerksystem, das zum Implementieren
einer bevorzugten Ausgestaltung der Erfindung verwendet werden kann.
Im Gegensatz zu der in 1 gezeigten Konfiguration hat
diese Konfiguration eine Zielsteuerung 106, die sich in
einem Gehäuse
befindet, das von dem des Ziels 102 getrennt ist. Die Zielsteuerung 106 ist
elektrisch zwischen dem Bus 104 und dem Ziel 102 geschaltet,
um Nachrichten zu und von dem Ziel 102 zu senden und zu
empfangen. Die Zielsteuerung 106 ist zwar vom Ziel 102 separat,
aber sie funktioniert im Wesentlichen identisch mit der in 1 gezeigten
Ausgestaltung.
-
4 zeigt
ein weiteres alternatives Netzwerksystem, das zum Implementieren
einer bevorzugten Ausgestaltung der Erfindung verwendet werden kann.
Spezieller, das Ziel 102 ist mit zwei unabhängigen Bussen 104A und 104B gekoppelt
und für diese
zugängig,
die jeweils einen Satz von Initiatoren 100 haben. Die Zielsteuerung 106 fungiert
in dieser Ausgestaltung ebenfalls im Wesentlichen identisch mit
der in den anderen Ausgestaltungen, da sie Zugriffsnachrichten empfängt und
ermittelt, ob eine Initiatorkennung in dem zugelassenen Satz vorhanden ist.
Die Steuerung 106 nutzt beispielsweise nicht nur die Initiatorkennung,
die Zielkennung und die Logikeinheitsnummer (in einem SCSI-Bussystem),
sondern auch eine Buskennung zum Ermitteln, welcher Initiator 100 auf
welchem Bus den Zugang anfordert. Konflikte zwischen zwei Initiatoren,
die versuchen, gleichzeitig auf eine einzelne Logikeinheit 108 zuzugreifen,
werden im Einklang mit der Busprotokollspezifikation gelöst. In anderen
Ausgestaltungen können mehr
als zwei Busse mit dem Ziel 102 gekoppelt sein.
-
Es
wurden zwar Ausgestaltungen der Erfindung im Hinblick auf die SCSI-Spezifikation
beschrieben, aber es ist zu bemerken, dass auch andere Kommunikationsprotokolle
zum Implementieren der Erfindung verwendet werden können. So
können
beispielsweise konventionell bekannte PCI-(„Peripheral Connect Interface")- und Fibre Channel
Protokolle verwendet werden.
-
Einige
Ausgestaltungen der Erfindung suchen nicht auf dem SCSI-Bus 104 (Schritt 200 in 2)
nach der Zielkennung und den mit dem Ziel 102 assoziierten
Logikeinheiten 108. In solchen Fällen kann die Zugriffsnachricht
die tatsächlichen
Logikeinheitsnummern des Ziels 102 beinhalten, auf die der
Zugriff angefordert wird. Die Zielsteuerung 106 greift
reagierend auf die Lookup-Datenstruktur zu, um zu ermitteln, ob
die in der Zugriffsnachricht designierten Logikeinheiten 108 in
einem zugelassenen Satz von Logikeinheiten 108 sind, die
dem Initiator 100 zur Verfügung stehen. Dann wird der
Zugriff auf die in der Zugriffsnachricht vorgegebenen Logikeinheiten 108 in
dem zugelassenen Satz zugelassen. Der Zugriff auf die in der Zugriffsnachricht
vorgegebenen Logikeinheiten 108, die sich nicht in dem
zugelassenen Satz befinden, wird jedoch verweigert. Wenn der Zugriff
verweigert wird, dann kann die Zielsteuerung 106 eine Verweigerungsnachricht
zum Initiator 100 senden, die entweder anzeigt, dass der
Zugriff auf bestimmte angeforderte Logikeinheiten 108 verweigert
wird oder dass die angeforderten Logikeinheiten nicht existieren.
Demgemäß wird in
einer ähnlichen
Weise wie in dem in 2 gezeigten Prozess die Initiatorkennung
zum Ermitteln verwendet, ob der Zugriff auf eine Logikeinheit 108 zulässig ist.
-
Es
ist in der Technik bekannt, dass ein einzelnes Ziel so konfiguriert
werden kann, dass es auf zwei oder mehr Zielkennungen antwortet,
wenn es mit herkömmlichen
SCSI-Steuerchips
verwendet wird (z. B. einem Chip mit Modell-Nr. NCR534825 SYMBIOSTM, von Symbios Logic Incorporated aus Fort
Collins in Colorado erhältlich).
So kann beispielsweise ein einzelnes Zielgerät auf einem SCSI-Bus durch
eine erste und eine zweite Zielkennung identifiziert werden und
so als zwei separate Zielgeräte
erscheinen. Demgemäß kann die
Initiatorkennung, bei Anwendung mit bevorzugten Ausgestaltungen
der Erfindung, in Verbindung mit der ersten Zielkennung verwendet
werden, um auf einen ersten Satz von Logikeinheiten zuzugreifen,
und dann in Verbindung mit der zweiten Zielkennung verwendet werden,
um auf einen zweiten Satz von Logikeinheiten zuzugreifen.
-
Im
Gegensatz zu Systemen des Standes der Technik können Initiatoren 100 mit
unterschiedlichen Protokollanforderungen (z. B. anbieterspezifische Verhaltensvarianten)
mit bevorzugten Ausgestaltungen des Bussystems verwendet werden.
Zu diesem Zweck wird jede Gruppe von Logikeinheiten 108,
auf die jeder Initiator 100 zugreifen kann, von dem System
als ein unabhängiges
virtuelles Ziel 102 angesehen. Die Zielsteuerung 106 wird
somit vorzugsweise so vorkonfiguriert, dass sie separate Treiberprogramme 100 enthält, die
für die
Konfiguration jedes Initiators 100 spezifisch sind. Wie
in 5 unten gezeigt (nachfolgend erörtert),
basiert die Auswahl des geeigneten Treiberprogramms 110 für einen
Initiator 100 auf der Initiatorkennung.
-
Demgemäß kann auf
eine einzelne, in zwei oder mehr virtuellen Zielen 102 enthaltene
Logikeinheit 108 gemäß der Konfiguration
des den Zugang anfordernden jeweiligen Initiators 100 zugegriffen werden.
Wenn z. B. ein erster Initiator 100 mit einer ersten Konfiguration
und ein zweiter Initiator 100 mit einer zweiten (anderen)
Konfiguration jeweils eine einzige Logikeinheit 108 gemeinsam
nutzen, dann antwortet die Logikeinheit 108 gemäß der ersten Konfiguration,
wenn der erste Initiator 100 darauf zugreift, und antwortet
ebenso gemäß der zweiten
Konfiguration, wenn der zweite Initiator 100 darauf zugreift.
-
5 zeigt
einen bevorzugten Prozess zum Zugreifen auf ein virtuelles Ziel über eine
Zielsteuerung 106, die mit Initiatoren 100 mit
unterschiedlichen Protokollanforderungen (Konfigurationen) kompatibel
ist. Der Prozess beginnt mit Schritt 500, wo eine Nachricht
von der Zielsteuerung 106 empfangen wird, die den Zugang
für einen
anfordernden Initiator 100 anfordert. In Schritt 502 extrahiert
die Zielsteuerung 106 die Zielkennung aus der Nachricht
und ermittelt, welcher Treiber 110 einer solchen Initiatorkennung
entspricht. Eine solche Entsprechung kann durch Zugreifen auf eine
Lookup-Tabelle im lokalen Speicher der Zielsteuerung 106 ermittelt
werden. Die Zielsteuerung 106 verwendet dann den Treiber 110 zum
Verarbeiten der Zugriffsnachricht (Schritt 504), wodurch
der Zugriff durch den Initiator 100 gemäß bevorzugten Ausgestaltungen
der Erfindung erleichtert wird (Schritt 506).
-
Bevorzugte
Ausgestaltungen der Erfindung lösen
nicht nur Vertraulichkeitsprobleme durch Zuweisen von Sätzen von
Logikeinheiten 108 zu ausgewählten Initiatoren 100,
sondern sie ermöglichen auch
eine effizientere Auslastung eines Ziels 102 mit vielen
Logikeinheiten. So kann beispielsweise ein Ziel 102 mit
32 Logikeinheiten, das sich auf einem engen SCSI-Bussystem befindet, besser durch vier Initiatoren 100 ausgelastet
werden, die jeweils acht unterschiedliche zugeordnete Logikeinheiten 108 haben.
So kann beispielsweise ein erster Initiator 100 Zugang
zu den Logikeinheiten 0–7,
ein zweiter Initiator 100 Zugang zu den Logikeinheiten
8–15,
ein dritter Initiator 100 Zugang zu den Logikeinheiten
16–23 und
ein vierter Initiator 100 Zugang zu den Logikeinheiten
24–31
haben. Demgemäß kann ein
Benutzer auf beliebige der Logikeinheiten 108 (z. B. Platten
auf einem Disk-Array) durch Auswählen
des richtigen Initiators 100 zugreifen. In einigen Ausgestaltungen kann
auf jeden der vier Initiatoren 100 durch einen Computer
zugegriffen werden, der die Interaktion zwischen den einzelnen Initiatoren 100 koordiniert. So
kann beispielsweise jeder Initiator eine Computerkarte in einem
Computersystem sein. In anderen Ausgestaltungen können die
vier Initiatoren 100 separate Computersysteme sein.
-
In
einer alternativen Ausgestaltung kann die Erfindung als ein Computerprogrammprodukt
für die Verwendung
mit einem Computersystem implementiert werden. Eine solche Implementation
kann eine Reihe von Computerbefehlen beinhalten, die entweder auf
einem greifbaren wie z. B. einem rechnerlesbaren Medium (z. B. Diskette,
CD-ROM, ROM oder Festplatte) installiert sein oder über ein
Modem oder ein anderes Schnittstellengerät wie z. B. einen mit einem
Netzwerk über
ein Medium verbundenen Kommunikationsadapter zu einem Computersystem übertragen
werden können.
Das Medium kann entweder ein greifbares Medium (z. B. optische oder
analoge Kommunikationsleitungen) oder ein Medium sein, das mit drahtlosen
Techniken (z. B. Richtfunk-, Infrarot- oder andere Übertragungstechniken)
implementiert wird. Die Serie von Computerbefehlen gestaltet die
hierin zuvor mit Bezug auf das System beschriebene Funktionalität ganz oder
teilweise aus. Die Fachperson sollte verstehen, dass solche Computerbefehle
in einer Reihe von Programmiersprachen für die Verwendung mit vielen
Computerarchitekturen oder Betriebssystemen geschrieben werden können. Ferner
können
solche Befehle in einem beliebigen Speichergerät wie z. B. einem Halbleiter-,
Magnet-, Bild- oder sonstigen Speichergerät gespeichert und mit einer
beliebigen Kommunikationstechnik wie z. B. optisch, Infrarot, Mikrowelle
oder anderen Übertragungstechniken übertragen
werden. Es wird erwartet, dass ein solches Computerprogrammprodukt
als entfernbares Medium mit gedruckter oder elektronischer Begleitdokumentation
(z. B. Software in Schrumpffolie) auf einem Computersystem vorgeladen
(z. B. System-ROM oder Festplatte) oder von einem Server oder elektronischen
Bulletin-Board über das
Netzwerk (z. B. das Internet oder das World Wide Web) verteilt werden
kann.
-
Es
wurden zwar verschiedene beispielhafte Ausgestaltungen der Erfindung
offenbart, aber es wird für
die Fachperson offensichtlich sein, dass verschiedene Änderungen
und Modifikationen vorgenommen werden können, die einige der Vorteile
der Erfindung erzielen, ohne vom wahren Umfang der Erfindung abzuweichen.
Diese und andere offensichtliche Modifikationen sollen durch die
begleitenden Ansprüche
abgedeckt sein.