-
Gebiet der
Erfindung
-
Die
Erfindung betrifft allgemein das Gebiet von Informationsspeichervorrichtungen
und insbesondere ein Verfahren und eine Vorrichtung zum Verwalten
eines Zugriffs auf Daten in einer Speichervorrichtung.
-
Beschreibung
des Standes der Technik
-
Computersysteme
umfassen allgemein einen oder mehrere Host-Prozessoren und ein Speichersystem zum
Speichern von Daten, auf die durch den Host-Prozessor zugegriffen
wird. Das Speichersystem kann einen oder mehrere Speichervorrichtungen
(z.B. Plattenlaufwerke) umfassen, um die Speichererfordernisse des
Host-Prozessors zu bedienen. Plattenlaufwerke (Plattenansteuereinheiten)
können eine
oder mehrere Platten eines Aufzeichnungsmediums enthalten, wie beispielsweise
eines magnetischen Aufzeichnungsmediums oder eines optischen Aufzeichnungsmediums.
-
In
einer typischen Computersystemkonfiguration stellt ein Bus eine
Verbindung zwischen dem Host-Prozessor und dem Speichersystem bereit.
Der Bus arbeitet in Übereinstimmung
mit einem Protokoll, wie beispielsweise dem Small Component System Interconnect
(SCSI)-Protokoll, das ein Format von zwischen dem Host-Prozessor
und dem Speichersystem übermittelten
Paketen vorschreibt. Da vom Host-Prozessor Daten benötigt werden,
werden Anforderungen und Antworten zu und von dem Speichersystem über den
Bus weitergeleitet.
-
Mit
dem Anwachsen von vernetzten Computersystemen wurden multiple Hosts über ein
Netzwerk mit einem gemeinsamen Datenspeichersystem verbunden. Fibre
Channel ist ein Beispiel eines Netzwerks, das zum Bilden solch einer
Konfiguration verwendet werden kann. Fibre Channel ist ein Netzwerkstandard,
der es multiplen Initiatoren erlaubt, mit multiplen Zielen über das
Netzwerk zu kommunizieren, wobei der Initiator und das Ziel eine
beliebige mit dem Netzwerk verbundene Vorrichtung sein kann. Unter
Verwendung eines Netzwerks ist eine Vielzahl von Hosts in der Lage,
einen Zugriff auf ein einziges Speichersystem zu teilen. Ein Problem
beim Koppeln von multiplen Hosts mit einem gemeinsamen Speichersystem
ist die Verwaltung eines Datenzugriffs an dem Speichersystem. Da
multiple Hosts Zugriff auf ein gemeinsames Speichersystem haben,
kann jeder Host physikalisch in der Lage sein, auf Information zurückzugreifen,
die für
andere Host-Prozessoren proprietär
(geheim) sein kann.
-
Unterschiedliche
Techniken wurden implementiert, um einen Zugriff auf Daten an dem
Speichersystem zu handhaben. Beispielsweise können bestimmte Abschnitte oder
Zonen eines Speichers an dem Speichersystem für einen oder mehrere der Hosts
bestimmt sein. Jedem Host wird darin "vertraut", dass er nur auf solche Abschnitte
des Speichers zugreift, für
die er Privilegien (Zugriffsrechte) hat. Ein solcher Ansatz ist
jedoch anfällig
für individuelle
Handlungen an jedem der Hosts. Als eine Folge ist solch ein Datenverwaltungsverfahren
möglicherweise
nicht ausreichend, um Daten vor unberechtigtem Zugriff zu schützen.
-
Die
GB 2 262 633 A beschreibt
ein Datensicherheitssystem einschließlich Verarbeitungsvorrichtungen,
einer Sicherheitsschaltung und einer Vielzahl von Dateien. Um einen
Autorisierungszustand eines Prozessors festzustellen, bezieht sich
die Sicherheitsschaltung auf eine Tabelle, die Statusindikatoren für referenzierte
Quellprozessoren und gespeicherte Dateien hält. Durch eine Bezugnahme auf
die Tabelle kann eine Autorisierung eines Prozessors für einen Dateizugriff
festgestellt werden. Falls auf eine geschützte Datei zuzugreifen ist,
kann eine geeignete Verschlüsselung
durchgeführt
werden.
-
Die
US 4 919 545 beschreibt
eine verteilte Sicherheitsprozedur für ein intelligentes Netzwerk, einschließlich einer
Autorisierung eines Zugriffs auf ein Objekt durch einen in einem
aufrufenden Knoten angeordneten Prozess. Ein ausführender
Knoten sendet eine Capability und eine Signatur zum aufrufenden
Knoten und ein Zugriff auf das Objekt wird nur autorisiert, wenn
eine Testsignatur, gebildet an dem Ausführungsknoten, mit einer von
dem aufrufenden Knoten empfangenen Signatur übereinstimmt.
-
Zusammenfassung
der Erfindung
-
Es
ist die Aufgabe der Erfindung, einen unautorisierten Zugriff auf
ein Datenspeichersystem über
ein Netzwerk zu verhindern.
-
Die
Aufgabe der Erfindung wird durch den Gegenstand der Ansprüche 1 und
23 gelöst.
-
Ein
Datenverwaltungsverfahren zum Verwalten eines Zugriffs auf ein Speichersystem
durch mindestens zwei mit dem Speichersystem gekoppelte Vorrichtungen
umfasst einen Schritt zum selektiven Bedienen, an dem Speichersystem,
einer Anforderung von einer der mindestens zwei Vorrichtungen für einen
Zugriff auf einen Abschnitt von Daten, die in dem Speichersystem
gespeichert sind, unter Berücksichtigung
von Konfigurationsdaten, die anzeigen, dass die eine der mindestens
zwei Vorrichtungen autorisiert ist, auf den Datenabschnitt zuzugreifen.
-
Ein
computerlesbares Medium umfasst eine erste Datenstruktur, um einen
Zugriff durch eine Vielzahl von Vorrichtungen auf Volumen von Daten
an einem Speichersystem zu verwalten, wobei die erste Datenstruktur
eine Vielzahl von Datensätzen
in Entsprechung zur Vielzahl von Vorrichtungen aufweist, wobei jeder
Datensatz der Vielzahl von Datensätzen einer der Vielzahl von
Vorrichtungen entspricht, und Konfigurationsinformation umfasst,
die anzeigt, bezüglich
welcher der Volumen des Speichersystems die eine der Vielzahl von
Vorrichtungen für
einen Zugriff autorisiert ist.
-
Ein
Speichersystem umfasst mindestens eine in eine Vielzahl von Volumen
unterteilte Speichervorrichtung, eine Konfigurationstabelle, um
Konfigurationsdaten zu speichern, die anzeigt, welche der Vielzahl
von mit dem Speichersystem gekoppelten Vorrichtungen autorisiert
sind, auf ein jedes der Vielzahl von Volumen zuzugreifen, und einen
Filter, um entsprechend den Konfigurationsdaten selektiv zu der mindestens
einen Speichervorrichtung Zugriffsanforderungen auf die Vielzahl
von Volumen weiterzuleiten, die von der Vielzahl von Vorrichtungen
empfangen sind.
-
Kurze Beschreibung
der Zeichnungen
-
Die 1A, 1B und 1C veranschaulichen
beispielhafte Netzwerkkonfigurationen, in denen der Datenverwaltungsgesichtspunkt
der vorliegenden Erfindung verwendet werden kann;
-
2 veranschaulicht
ein Ausführungsbeispiel
eines Pakets, das zwischen Vorrichtungen verteilt werden kann, die
in den Netzwerken von 1A, 1B oder 1C gekoppelt
sind;
-
3 veranschaulicht
in einem Blockdiagramm gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung beispielhaft Elemente eines Host-Prozessors
und Speichersystems, die in den Netzwerken der 1A, 1B oder 1C gekoppelt
sein können,
wobei das Speichersystem einen Adapter enthält, mit Elementen zum Filtern
von Anforderungen, die durch den Host-Prozessor ausgegeben sind;
-
4 zeigt
ein Blockdiagramm eines Ausführungsbeispiels
einer Konfigurationsdatenstruktur, die verwendet werden kann, um
Filterinformation für eine
Verwendung durch das Speichersystem von 3 zu speichern;
-
5 zeigt
ein Blockdiagramm eines Ausführungsbeispiels
zum Filtern von Daten, das verwendet werden kann, um Anforderungen
an dem Speichersystem von 3 zu filtern;
-
6 veranschaulicht
in einem Blockdiagramm gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung beispielhaft Bestandteile eines Host-Prozessors
und Speichersystems, die in dem Netzwerk der 1S, 1B oder 1C gekoppelt
sein können,
wobei das Speichersystem eine Logik zum Authentisieren von Transaktionen
durch den Host umfasst;
-
7 veranschaulicht
in einem Flussdiagramm ein Verfahren zum Verteilen von Verschlüsselungsschlüsseln zwischen
einem Host-Prozessor und
Speichersystem von 6, so dass die Verschlüsselungsschlüssel dazu
verwendet werden können,
die Identität
des Host-Prozessors zu authentisieren;
-
8A–C veranschaulichen
Flussdiagramme eines Verfahrens zum Authentisieren der Identität eines
Host-Prozessors,
wenn eine Verbindung zwischen dem Host-Prozessor und einem Speichersystem von 6 eingerichtet
wird, in Übereinstimmung mit
einem Ausführungsbeispiel
der vorliegenden Erfindung;
-
9 veranschaulicht
in einem Diagramm gemäß einem
Ausführungsbeispiel
der Erfindung beispielhaft Komponenten, die in einer Authentisierungstabelle
des Speichersystems von 6 enthalten sein können und
die verwendet werden können, um
die Identität
von Host-Prozessoren zu authentisieren;
-
10 veranschaulicht
in einem Flussdiagramm gemäß einem
Ausführungsbeispiel
der Erfindung ein Verfahren zum Durchführen einer Überprüfungssumme von Daten, die zwischen
einem Initiator und einem Ziel in den Netzwerken von 1A, 1B und 1C übermittelt
werden, um Datenübertragungen
zu validieren; und
-
11 veranschaulicht
in einem Flussdiagramm gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung ein Verfahren zum Validieren einer Datenübertragung
zwischen einem Initiator und einem Ziel unter Verwendung der Überprüfungssumme von 10.
-
Beschreibung
der detaillierten Ausführungsbeispiele
-
Die
vorliegende Erfindung betrifft ein Datenverwaltungsverfahren und
eine Vorrichtung zum Verwalten eines Zugriffs durch eine Mehrzahl
von Vorrichtungen (z.B. Host-Prozessoren, Dateiservern u.ä.) auf Daten
an einer gemeinsamen Ressource (z.B. einem gemeinsamen Speichersystem).
In Übereinstimmung
mit einem Ausführungsbeispiel
bedient die gemeinsame Ressource selektiv Anforderungen von den
Vorrichtungen bezüglich
Abschnitten der Daten an der gemeinsamen Ressource in Antwort auf Konfigurationsdaten,
die den Abschnitten der Daten an der Ressource zugeordnet sind.
-
In
einem Ausführungsbeispiel
ist die gemeinsame Ressource in Volumen unterteilt. Konfigurationsdaten
identifizieren, welche Volumen von Daten für einen Zugriff durch eine
jede der mit der Ressource gekoppelten Vorrichtungen (z.B. über ein
Netzwerk) zur Verfügung
stehen. Die gemeinsame Ressource umfasst einen Filter, der selektiv
eine Anforderung für
ein Bedienen weiterleitet, in Abhängigkeit von der Identität der die
Anforderung ausgebenden Vorrichtung und den Konfigurationsdaten,
die dem Volumen zugeordnet sind, auf das ein Zugriff erwünscht ist.
Der Filter leitet nur solche Anforderungen für Volumen weiter, für die die
Vorrichtung Zugriffsrechte hat. Anforderungen für Volumen, für die die
Vorrichtung keine Rechte hat, werden nicht bedient.
-
Ein
Filtern von Anforderungen an der Ressource erlaubt es, die Steuerung
der Datenverwaltung an einem Ort zu zentralisieren, anstatt sie
im Netzwerk zu verteilen. Eine Zentralisierung der Datenverwaltungssteuerung
am Speichersystem eliminiert die Notwendigkeit, den Zugriff auf
das Speichersystem wünschenden
Hosts darin zu vertrauen, dass sie nur auf bestimmte Abschnitte
von Daten zugreifen.
-
In
einem Ausführungsbeispiel
der Erfindung kann zusätzlich
zum Filtern von Anforderungen zur Unterstützung einer Datenverwaltung
an der Ressource ein Sicherheitsschutz hinzugefügt werden, um weiter die Daten
an der Ressource zu sichern. Da ein Filtern in Antwort auf die Identität der die
Anforderung durchführenden
Vorrichtung durchgeführt
wird, kann eine Datensicherheit beeinträchtigt sein, falls eine Vorrichtung
ihre Identität
falsch darstellt, um Zugriff auf die Ressource zu erhalten. Zusätzlich können Datenübermittlungen
zwischen der Vorrichtung und der Ressource gestört werden durch andere mit der
Ressource gekoppelte Vorrichtungen (z.B. über ein Netzwerk). In einem
Ausführungsbeispiel
ist ein Authentisierungsverfahren und eine entsprechende Vorrichtung
bereitgestellt, um zu verifizieren, dass die Vorrichtung, die als
die die Anforderung ausgebende Vorrichtung dargestellt ist, wirklich
die Vorrichtung ist, die die Anforderung ausgegeben hat. Das Authentisierungsverfahren
kann daher implementiert werden, um Sicherheitsprobleme in Verbindung
mit einer Vorrichtung zu vermeiden, die ihre Identität falsch
darstellt, um Daten an der Ressource zu erhalten. In einem anderen
Ausführungsbeispiel
ist ein Validierungsverfahren und eine solche Vorrichtung bereitgestellt,
um sicherzustellen, dass zwischen der Vorrichtung und der gemeinsamen
Ressource übermittelte
Information während
einer Übermittlung
nicht beschädigt
wird (entweder unbeabsichtigterweise oder beabsichtigterweise).
-
Ein
Datenverwaltungssystem zum Verwalten von Daten an einer Ressource
kann eine beliebige oder alle diese Filter-, Authentisierungs-,
und Validierungstechniken verwenden. Ein beispielhaftes System,
in dem das Datenverwaltungsverfahren und eine solche Vorrichtung
der vorliegenden Erfindung eingesetzt werden kann, ist in einem
vernetzten Computersystem, in dem die Vorrichtungen mit dem Netzwerk
gekoppelte Host-Prozessoren oder Dateiserver sind, und die gemeinsame
Ressource ist ein Speichersystem (z.B. ein Plattenlaufwerkspeichersystem).
Es wird darauf hingewiesen, dass die Verwendung eines Netzwerks,
Host-Prozessors oder eines gemeinsamen Plattenlaufwerks keine Beschränkung der
vorliegenden Erfindung darstellt, und dass solch eine Systemkonfiguration
im Folgenden lediglich für
Illustrationszwecke beschrieben wird.
-
In
einem Ausführungsbeispiel
können
einer oder mehrere Hosts mit einem oder mehreren Speichersystemen
unter Verwendung eines Netzwerks verbunden sein, wobei Anforderungen
und Antworten zu und von den Speichersystemen über das Netzwerk in Übereinstimmung
mit dem Protokoll des Netzwerks weitergeleitet werden. Zusätzlich kann
jeder Host und jedes Speichersystem einen oder mehrere Ports (Portierungen)
enthalten, um eine Schnittstelle mit dem Host oder Speichersystem
zu einem entsprechenden einen oder mehreren Netzwerken zu bilden.
Wie oben beschrieben, umfasst in einem Ausführungsbeispiel jedes Speichersystem
in dem Netzwerk eine Logik zum Filtern von empfangenen Anforderungen,
um Datenzugriffe auf das Speichersystem zu verwalten.
-
Ein
beispielhaftes Netzwerk, in dem die vorliegende Erfindung verwendet
werden kann, ist ein Fibre Channel Netzwerk, obwohl die vorliegende
Erfindung nicht auf die Verwendung des Fibre Channel Netzwerks oder
einer anderen speziellen Netzwerkkonfiguration beschränkt ist.
Drei beispielhafte Fibre Channel Netzwerkkonfigurationen sind in
den 1A, 1B und 1C veranschaulicht. 1A veranschaulicht
ein in einer Schleifenkonfiguration angeordnetes Netzwerk 10,
wobei alle Vorrichtungen in dem Netzwerk in einer einzigen Schleife
miteinander gekoppelt sind. In 1A sind
drei Host-Prozessoren 12, 14 und 16 gezeigt,
die durch einen Netzknoten 18a als mit einem Speichersystem 20 gekoppelt
gezeigt sind. Intern ist der Netzknoten in einer Schleifenkonfiguration
angeordnet. Eine Kommunikation zwischen den Vorrichtungen wird über die
Busse 15a–15d durchgeführt, indem
Datenpakete von einer Vorrichtung zur nächsten in der Schleife weitergeleitet
werden. 1B veranschaulicht ein Netzwerk 30,
das in einer Webkonfiguration (fabric configuration) angeordnet
ist, wobei alle Vorrichtungen durch einen Netzknoten 18b miteinander verkoppelt
sind. Intern ist der Netzknoten als eine Vermittlung ausgebildet.
Eine Kommunikation zwischen Paaren der Vorrichtungen 12, 14, 16 und 20 in dem
Netzwerk 30 wird durch den Netzknoten 18b gesteuert.
Das Datenverwaltungsverfahren der vorliegenden Erfindung kann in
Netzwerken verwendet werden, die in den Schleifen oder Webkonfigurationen
der 1A und 1B angeordnet
sind, oder alternativ in anderen Netzwerk- oder Ressource-Teilen
der Konfigurationen. Beispielsweise kann der Datenverwaltungsgesichtspunkt
in dem in 1C veranschaulichten Netzwerk
verwendet werden. In 1C ist eine Host-/Speichersystemkonfiguration gezeigt,
wobei das Speichersystem zwei Ports umfasst, von denen jeder eine
Schnittstelle zwischen dem Speichersystem mit einem anderen Netzwerk bildet.
In 1C ist ein erster Port (Port 0) mit einem Web-Netzwerk 30 und
ein zweiter Port (Port 1) mit einem Schleifennetzwerk 10 gekoppelt.
-
Wie
oben erwähnt,
werden gemäß dem Datenverwaltungsgesichtspunkt
der vorliegenden Erfindung Volumen von Daten des Speichersystems 20 konfiguriert,
in Übereinstimmung
mit der Identität
der Host-Vorrichtungen, die mit dem Speichersystem gekoppelt sind.
Die Konfigurationsdaten, die verwendet werden, um die Zuordnung
von Volumen zu unterschiedlichen Hosts zu verwalten, können beispielsweise
durch einen Systemadministrator des Netzwerks bereitgestellt werden.
Der Systemadministrator überwacht
die mit dem Netzwerk gekoppelten Host-Vorrichtungen und die am Speichersystem
verfügbaren
Volumen. Wenn eine neue Host-Vorrichtung
in das Netzwerk eintritt, weist der Systemadministrator dem Host
Speichersystem-Volumen zu. Die Anzahl von Volumen, die dem Host
zugewiesen werden, kann auf einer angeforderten Anzahl von Volumen
basieren, oder alternativ kann sie auf vorhergehenden Datenerfordernissen
des Hosts basieren. Der Systemadministrator kann mittels Software
implementiert sein, ausgeführt
von einer der Vorrichtungen des Speichersystems in dem Netzwerk
und kann eine grafische Nutzerschnittstelle enthalten, um es Nutzern
zu ermöglichen,
die Verfügbarkeit
und Zuordnungen von Volumen zu unterschiedlichen Hosts im Netzwerk
zu überwachen.
Die vorliegende Erfindung ist nicht auf irgendeine bestimmte Implementierung
der Systemadministration beschränkt.
-
Wenn
eine Vorrichtung in das Netzwerk eintritt, fragt sie allgemein das
Netzwerk ab, um die anderen mit dem Netzwerk gekoppelten Vorrichtungen zu
identifizieren. Jede Vorrichtung, die der Anfrage antwortet, liefert
einen oder mehrere Identifizierer für die Vorrichtung zurück. Beispielsweise
kann der Identifizierer den World-Wide Name (WWN) (weltweiten Namen)
enthalten, der der Vorrichtung durch den Hersteller des Adapter-Boards
(Einschub) unter Verwendung einer Namengebungsübereinkunft zugeordnet ist.
Der Identifizierer kann auf keinen Quellidentifizierer (ID) enthalten.
Beide sind eindeutige Identifizierer für die Vorrichtung, jedoch ist
der Quellidentifizierer allgemein ein kürzerer Identifizierer als der
WWN. Der Quellidentifizierer kann die Vorrichtung identifizieren
(z.B. einen Host-Prozessor)
und den Port der Vorrichtung, der mit dem Netzwerk gekoppelt ist.
Falls multiple Ports der bestimmten Vorrichtung mit dem Netzwerk
gekoppelt sind, kann somit ein Identifizierer für jeden Port zurückgeliefert werden.
Wenn ein Abfragebetriebsvorgang vervollständigt ist, hat jede der Vorrichtungen
Kenntnis bezüglich
der anderen mit dem Netzwerk gekoppelten Vorrichtungen. Sobald jede
Vorrichtung Kenntnis bezüglich
anderer Vorrichtungen im Netzwerk hat, kann diese Information verwendet
werden, um Daten zwischen Vorrichtungen auszutauschen.
-
Anforderungen
und Antworten zu und von dem Speichersystem 20 werden über die
Netzwerke 10 und 30 in Übereinstimmung mit dem Netzwerkprotokoll
weitergeleitet. Die Fibre Channel Verbindung ist in der Lage, multiple
Schnittstellenbefehlssätze
zu unterstützen.
Demzufolge können
die miteinander über
das Fibre Channel Netzwerk gekoppelten Vorrichtungen unter Verwendung
einer Anzahl von höherschichtigen
Protokollen kommunizieren, einschließlich Internet Protocol (IP),
Small Component System Interconnect (SCSI)-Protokoll oder irgendeinem
einer Anzahl von anderen Protokollen, vorausgesetzt, dass die Schnittstellen
bildenden Vorrichtungen Kenntnis bezüglich des Typs eines Protokolls
haben, das auf der speziellen Fibre Channel Verbindung verwendet
wird. Bestimmte Typen von Vorrichtungen sind aufgrund der Historie
so ausgelegt, dass sie unter Verwendung bestimmter Protokolle kommunizieren.
Beispielsweise haben Host-Prozessor-Vorrichtungen historischerweise
mit Speichersystemen unter Verwendung des SCSI-Protokolls kommuniziert.
Somit können
die unter Verwendung des Fibre Channel Netzwerks gekoppelten Vorrichtungen
miteinander unter Verwendung des Protokolls kommunizieren, das historischerweise
verwendet wurde. Als eine Folge erfordern die Schnittstellen der
Vorrichtungen wenig Veränderungen,
um mit dem Fibre Channel Netzwerk zu koppeln.
-
Tunneltechniken
werden typischerweise verwendet, um Pakete eines beliebigen Protokolltyps
in Pakete umzuwandeln, die auf dem Fibre Channel Netzwerk weitergeleitet
werden können.
Unter Verwendung einer Tunnellung wird ein Paket, das in Übereinstimmung
mit einem ersten Protokoll formatiert ist, in einem zweiten Paket
verpackt, das in Übereinstimmung
mit dem Fibre Channel Netzwerk Protokoll formatiert ist. Somit kann
ein SCSI-Paket in einem Fibre Channel Paket durch einen Host-Prozessor oder ein
Speichersystem verpackt sein, für
eine Übermittlung über ein
Fibre Channel Netzwerk. Ein Beispiel eines in Übereinstimmung mit einem SCSI-Protokoll
formatierten Pakets, das in einem Fibre Channel Paket verpackt ist,
ist in 2 veranschaulicht.
-
In 2 umfasst
ein Fibre Channel Paket 50 einen Kopfbereichsabschnitt
(Header-Abschnitt) 55 und einen Nutzlastabschnitt 60.
Der Kopfbereichsabschnitt 55 umfasst ein Quell-ID-Feld 52,
ein Ziel-ID-Feld 53 und ein Längenfeld 54. Das Quell-ID-Feld 52 identifiziert
eine Vorrichtung in dem Netzwerk, das die Übermittlung des Pakets 50 initiiert hat.
Das Ziel-ID-Feld 53 identifiziert eine Zielvorrichtung
zum Empfang des Pakets in dem Netzwerk. Das Längenfeld 54 identifiziert
eine Anzahl von Bytes in dem Paket. Zusätzlich können auch andere in der Fibre
Channel Spezifikation definierte Felder in den Kopfabschnitt einbezogen
sein, obwohl diese Felder hier für
Klarheitszwecke ausgelassen sind.
-
Das
Quell-ID-Feld 52 und das Ziel-ID-Feld 53 werden
in dem beispielhaften System von 1C verwendet,
um bestimmte Host-Prozessoren und das Speichersystem zu identifizieren.
Wenn ein Host ein Anforderungspaket zum Speichersystem ausgibt, identifiziert
die Quell-ID den Host und die Ziel-ID identifiziert das Speichersystem.
In Übereinstimmung
mit einem Ausführungsbeispiel
der Erfindung verwendet das Speichersystem das Quell-ID-Feld 52 des
Pakets, um in Konfigurationsdaten zu indizieren, die angeben, bezüglich welcher
der Volumen von Daten der jeweilige Host das Recht für einen
Zugriff hat.
-
Wie
oben erwähnt,
kann das Source-ID-Feld für
einen auf das Speichersystem 20 zugreifenden Host dazu
verwendet werden, den Host zu identifizieren, der die Anforderung
ausgegeben hat, um die Konfigurationsdaten für den Host an dem Speichersystem
zu indizieren. Die Konfigurationsdaten identifizieren die Abschnitte
des Speichersystems, die für den
Host zugänglich
sind. Somit können
die Konfigurationsdaten durch eine Filterlogik an dem Speichersystem
dazu verwendet werden, selektiv die Anforderungen des Host zu bedienen.
Beispielhafte Bestandteile eines Hosts und Speichersystems, die
für eine
Implementierung des Verfahrens und der Vorrichtung zum Filtern von
Anforderungen, basierend auf einem Host-Identifizierer, verwendet werden können, werden
nunmehr mit Bezug auf 3 bis 5 beschrieben.
-
Wie
oben beschrieben, bestimmt in einem Ausführungsbeispiel der Erfindung
das Speichersystem, auf Grundlage der Konfigurationsdaten, ob eine empfangene
Anforderung bedient werden soll. Eine Kopie der Konfigurationsdaten
kann in einem Speicher an dem Speichersystem gespeichert sein. Die Konfigurationsdaten
können
periodisch durch den Systemadministrator aktualisiert werden, wenn
Hosts in das Netzwerk eintreten und es verlassen. Das Speichersystem
umfasst auch eine Logik für
eine Kommunikation über
das Netzwerk und eine Filterlogik, die mit dem Speicher gekoppelt
ist, der die Konfigurationsdaten speichert, um zu bestimmen, ob eine
von dem Netzwerk empfangene Anforderung bedient werden soll. Das
oben beschriebene Datenverwaltungssystem kann auf unterschiedliche
Arten implementiert sein, und die vorliegende Erfindung ist nicht
auf eine bestimmte Implementierung beschränkt. Für Klarheitszwecke ist jedoch
in 3 ein Ausführungsbeispiel
eines Host-Prozessors und Speichersystems veranschaulicht, das in
der Lage ist, diese Datenverwaltungsfunktionalität bereitzustellen.
-
3 veranschaulicht
ein über
ein Netzwerk 21 mit einem Speichersystem 20 gekoppelten Host-Prozessor 12.
Das Netzwerk kann beispielsweise ein Fibre Channel Netzwerk sein,
das auf eine beliebige der Konfigurationen der 1A–1C angeordnet
ist. Der Host-Prozessor kann eine Multi-Verarbeitungs-Einheit sein,
einschließlich
einer oder mehrerer Zentral-Verarbeitungseinheiten,
wie beispielsweise der CPU 40, die durch einen lokalen Bus 43 mit
einem Speicher 42 verbunden ist. Ein oder mehrere Host-Bus-Adapter
(HBA) 45 und 45a sind zwischen dem Bus 43 und
dem Netzwerk 21 gekoppelt.
-
Jeder
Host-Bus-Adapter (HBA) 45 und 45a angeordnet,
den Host-Prozessor 12 mit
dem Netzwerk zu verbinden. Die HBAs 45 und 45a übersetzen von
der CPU 40 empfangene Daten in das durch das Protokoll
des Netzwerks vorgeschriebene Format.
-
Zusätzlich übersetzen
die HBAs 45 und 45a von dem Netzwerk in Paketformat
empfangene Daten in Daten in einem durch die CPU 40 verwendbarem
Format.
-
Der
Host-Bus-Adapter kann implementiert sein unter Verwendung einer
Kobination einer auf dem HBA angeordneten Hardware und in dem HBA oder
dem Speicher 42 gespeicherter Treiber-Software. Alternativ kann der Host-Bus-Adapter
entweder insgesamt in Hardware oder Software implementiert sein.
In einem Ausführungsbeispiel
umfasst der HBA 45 einen Prozessor 41, der mit
einem Speichersystem 49 gekoppelt ist. Der Prozessor 41 steuert
den Fluss und ein Format von Daten in den HBA hinein und hinaus.
Der Speicher 49 wird verwendet, um eine temporäre Speicherung
von Daten bereitzustellen, wenn diese zu und von dem Netzwerk übermittelt werden.
Der HBA erzeugt Pakete für
eine Übermittlung über das
Netzwerk 21, wobei jedes Paket ein Quell-ID-Feld enthält, das
den bestimmten HBA identifiziert. Da an jedem Host multiple HBA
enthalten sein können,
können
multiple Quell-ID mit dem gleichen Host assoziiert sein.
-
Das
Speichersystem 20 umfasst Speichervorrichtugnen 38a–38d,
die eine oder mehrere Plattenlaufwerke enthalten können. Ein
Zugriff auf die Speichervorrichtungen 38a–38d wird
unter Verwendung von Plattenadaptern 36a–36d gesteuert,
die unter Verwendung eines programmierten Prozessors implementiert
sein können,
oder durch eine spezielle Hardware-Anordnung. In dem in 3 veranschaulichten
Ausführungsbeispiel
ist für
jede Speichervorrichtung 38a–38d ein Plattenadapter
bereitgestellt, obwohl alternativ ein Plattenadapter mit mehr als
einer Speichervorrichtung gekoppelt sein kann. Zusätzlich können Plattenadapter
sekundäre
Verbindungen mit den Speichervorrichtungen 38a–38d eines
anderen Plattenadapters 36a–36d enthalten, um eine
Wiederherstellung nach einem Ausfall eines Plattenadapters durch
Verschieben dessen Funktionen zum zweiten Plattenadapter zu ermöglichen.
-
Die
Speichervorrichtungen 38a–38d sind in Volumensätze unterteilt.
Einer oder mehrere der Volumensätze
können
einem oder mehreren der HBA 45, 45a oder dem Host-Prozessor 12 zur
Verfügung gestellt
werden. In einem Ausführungsbeispiel werden
Bezugnahmen auf die Volumen in den Speichervorrichtungen 38a–38d durch
die HBA unter Verwendung von Nummern logischer Einheiten (LUN) durchgeführt. Es
muss keine eins-zu-eins Entsprechung zwischen den durch die Hosts
bereitgestellten Nummern der logischen Einheiten und der physikalischen Adressen
der Plattenvorrichtungen bestehen.
-
Eine
Konfigurationsdatenbank 32 (3) speichert
Information bezüglich
welche der HBR Zugriff auf welche der Volumen haben. Wie oben erläutert, wird
in einem Ausführungsbeispiel
in der Konfigurationsdatenbank Information vom Systemadministrator
empfangen und wird periodisch aktualisiert, wenn sich die Konfiguration
des Netzwerks ändert.
-
Ein
Beispiel der Datentypen, die in der Konfigurationsdatenbank 32 gespeichert
sein können,
umfassen eine Historientabelle 69. Die Historientabelle ist
in einem Block für
jeden der Ports des Speichersystems unterteilt. Jeder Block in der
Historientabelle umfasst eine Liste von solchen Hosts, die den Port abgefragt
haben, als sie in das Netzwerk eingetreten sind. Die Identifikationsinformation
für jeden
Host kann den WWN-Namen des Hosts enthalten, die Quell-ID des Hosts oder
andere Aliase des Hosts. Diese Identifikationsinformation kann verwendet
werden, wenn sich ein Host in das Speichersystem einlogt, um einen
Identifizierer des Hosts mit Konfigurationsdaten für den Host
abzustimmen.
-
Die
Konfigurationsdatenbank 32 kann auch einen Kopfbereichsabschnitt 70 enthalten,
um die HBAs den verfügbaren
Ports am Speichersystem zuzuordnen. Ein Volumenzuordnungsabschnitt 72 kann für ein Zuordnen
von logischem Volumen von Daten an dem Speichersystem 20 für unterschiedliche
HBA bereitgestellt werden. Ein Zuordnungsabschnitt 74 ist für ein Zuordnen
von LUN zu physikalischen Adressen der Platten bereitgestellt. Zusätzlich ist
eine Filtertabelle 76 bereitgestellt, um zu steuern, welche HBA
Zugriff auf welche der LUN haben. Die Filtertabelle 76 wird
erzeugt unter Verwendung der Volumenzuweisung und Zuordnungs(mapping)information
und umfasst einen Datensatz für
jeden HBA, mit einem der Ports des Speichersystems gekoppelt. Eine
beispielhafte Implementierung der Filtertabelle 76 wird
in 4 bereitgestellt. Jeder Datensatz 76a–76n umfasst
den dem HBA zugeordneten WWN, ein Flag, das anzeigt, ob die in dieser
Eintragung zugewiesenen Volumen gemeinsam genutzt werden, und eine
LUN-Zuordnung, die angibt, auf welche der logischen Volumen der
HBA zugreifen kann. In einem Ausführungsbeispiel ist die LUN-Zuordnung
in der Form einer Bit-Maske, bei der ein Bit für jeden LUN in dem Speichersystem
zugewiesen ist. In einem Ausführungsbeispiel
ist ein Bit in der Bit-Maske gesetzt, um anzuzeigen, dass der zugehörige HBA,
angezeigt durch den WWN, Zugriff auf die entsprechende LUN hat,
obwohl alternativ das Bit gelöscht
sein kann, um einen Zugriff anzuzeigen. Zusätzlich können auch alternative Ausführungsbeispiele
verwendet werden, bei denen die zur Verfügung stehenden LUN unterschiedlich
angezeigt sind.
-
Das
Speichersystem 20 (3) umfasst auch
eine Filter- und Adaptereinheit 34. Die Filter- und Adaptereinheit 34 übersetzt
von dem Netzwerk empfangene Pakete in Datenblöcke und Steuerung für ein Weiterleiten
zu den Plattenadaptern 36a–36d. Zusätzlich führt die
Filter- und Adaptereinheit 34 eine Filterfunktion durch,
um sicherzustellen, dass nur solche HBA mit Zugriffsrechten auf
die Volumen zugreifen können.
Statt den HBA darin zu vertrauen, dass sie nur auf solche Volumen
zugreifen, für
die sie zugewiesen sind, steuert die Filter- und Adaptereinheit 34 Zugriffe
auf die Platten durch ein Herausfiltern von nicht berechtigten Anforderungen.
-
In
einem Ausführungsbeispiel
umfasst die Filter- und Adaptereinheit 34 einen Prozessor 80,
der mit einem Speicher 83 verbunden ist. Der Prozessor wird
verwendet, um die Übermittlung
und Übersetzung
von Daten zwischen dem Speichersystem 20 und dem Netzwerk 21 zu
steuern. Der Speicher 83 wird verwendet, um eine transiente
Filtertabelle 84 zu speichern. Die transiente Filtertabelle
ist in eine Anzahl von Tabellen unterteilt, eine für jeden
Port des Speichersystems. Jedesmal, wenn ein HBA eine Verbindung
mit dem Speichersystem 20 über einen der Ports initiiert,
wird Filterinformation von der Filtertabelle 76 in die
Konfigurationsdatenbank 32 an den geeigneten Eintrag in
der transienten Filtertabelle 84 kopiert. Die Filterinformation
kann eine Quell-ID des in den Port eingelogten HBA enthalten, ein
Flag, das anzeigt, ob die diesem Eintrag zugehörigen Volumen gemeinsam genutzt
werden, und eine LUN-Zuordnung für
den in den Port eingelogten HBA, wobei die LUN-Zuordnung von der
Filtertabelle 76 in der Konfigurationsdatenbank kopiert
wird.
-
In
einem Ausführungsbeispiel
wird für
jede Anforderung auf die Konfigurationsdaten in der transienten
Filtertabelle 84 zugegriffen. Die Adresse der Anforderung
wird in Bus-/Ziel-/LUN-Format
bereitgestellt, wobei der Busabschnitt die Fibre Channel Netzwerkadresse
des Speichersystems 20 anzeigt, der Zielabschnitt die Speichersystemportadresse
anzeigt, und die LUN die Volumenadresse der Anforderung darstellt.
Diese Adresse wird mit dem Eintrag in der transienten Filtertabelle 84 verglichen,
die die dem HBA zugehörige
LUN-Zuordnung enthält.
Falls das Bit in der LUN-Zuordnung, zugehörig dem adressierten LUN, anzeigt,
dass der HBA-Zugriff auf den LUN hat, wird die Anforderung zu den
Plattenadaptern 36a–36d für eine Bearbeitung
weitergeleitet. Falls nicht, wird die Anforderung ignoriert.
-
Die
Größe der transienten
Filtertabelle 84 hängt
von der Anzahl von an dem Speichersystem bereitgestellten Ports
ab, der Anzahl von an jedem Port unterstützten HBA und der Anzahl von
LUN in dem Speichersystem. Eine beispielhafte Konfiguration des
Speichersystems 20 kann 16 Ports zum Zugreifen
auf 4096 LUN enthalten, wobei jeder Port in der Lage ist, Zugriffe
durch 32 unterschiedliche HBA zu unterstützen. Somit
könnte
die Zugriffszeit für
jede I/O-Anforderung lang sein, wenn die transiente Filtertabelle 84 groß ist und
sie in einem einzigen großen Speicher
gespeichert ist.
-
Um
die Antwortzeitleistung des Speichersystems 20 zu erhöhen, ist
die transiente Filtertabelle 84 so angeordnet, dass sie
ein schnelles Abrufen der Zugriffsinformation für jeden HBA erlaubt. Unter
Bezugnahme auf 5 wird eine veranschaulichende Konfiguration
der transienten Filtertabelle gezeigt. Die transiente Filtertabelle 84 ist
als eine Anordnung (Array) von Datensätzen enthaltend gezeigt, wie
beispielsweise Datensatz 400. Eine Spalte von Datensätzen ist
für jeden
LUN in dem Speichersystem bereitgestellt, in 5 als LUN0
bis LUNx numeriert, wobei x+1 die Anzahl von LUN in dem Speichersystem
ist. Eine Zeile von Datensätzen
ist für
jeden Port am Speichersystem bereitgestellt. Jeder Datensatz umfasst
eine Bit-Tabelle 402. Die Bit-Tabelle umfasst eine Anzahl
von Bits entsprechend der Maximalanzahl von Vorrichtungen (HBA),
die auf jeden Port zugreifen können.
In 5 sind diese Bits als D1, D2 ... Dn bezeichnet,
wobei n die Maximalanzahl von Vorrichtungen angibt, die mit einem
Port gekoppelt sein können.
-
Während eines
Betriebs, wenn eine I/O-Anforderung am Speichersystem 20 empfangen
wird, wird die Adresse der I/O-Anforderung
mit den Daten in der transienten Filtertabelle 84 verglichen.
Die Adresse umfasst einen Identifizierer des HBA, der die Anforderung
ausgegeben hat, und eine Adresse des Speichersystemabschnitts, auf
den der Host zugreifen möchte.
Diese Adresse umfasst allgemein eine Bus-/Ziel-/LUN-Kombination von Feldern.
Das Bus-Feld ist die Basisadresse des Speichersystems 20 auf
dem Netzwerk, das Ziel ist die Quell-ID des Ports des Speichersystems,
an den die Anforderung gerichtet ist, wobei die LUN die logische
Einheit bezeichnet, die durch die Anforderung adressiert ist. Die
Zielinformation (Zeile) und LUN-Information (Spalte) wird verwendet,
um in die transiente Filtertabelle zu indizieren, um einen der Datensätze zu erhalten.
Die Quell-ID für
die anfordernde Vorrichtung (z.B. HBA 45 in 3)
wird dann verwendet, um auszuwählen
eines der Bits in der Bit-Tabelle 402 des Datensatzes 400,
ausgewählt
durch die Bus-/Ziel-/LUN-Adresse,
um zu identifizieren, ob oder ob nicht das Bit in der Tabelle gesetzt
ist. Falls das Bit in der Tabelle gesetzt ist, dann wird die Anforderung
zu den Plattenlaufwerken für
eine Bearbeitung weitergeleitet. Falls nicht, wird die Anforderung fallengelassen.
-
Die
transiente Filtertabelle 84 kann in einem. Speicher gespeichert
sein, die in 3 veranschaulicht ist, oder
kann alternativ mit Hardware implementiert sein. Während die
oben beschriebene Konfiguration der transienten Datenbank ein Verfahren
zum Zugreifen auf HBA und LUN-Zuordnungsinformation bereitstellt,
können
alternative Konfigurationen auch verwendet werden. Die vorliegende
Erfindung ist nicht auf diese Implementierung beschränkt. Vielmehr
kann eine beliebige Konfigurationsdatenbankanordnung verwendet werden,
die ein Zuordnen von Daten erlaubt, die von der Datenbank unter
Verwendung eines Quell-Identifizierers und einer Ressource-Adresse
erhalten werden sollen.
-
Demzufolge
wurde ein Datenverwaltungssystem beschrieben, das Volumen von Daten
für Host-Prozessoren
basierend auf Host-Identifizierern reserviert.
In einem Ausführungsbeispiel
ist das Datenverwaltungssystem erweitert, um einen Sicherheitsschutz
durch ein Authentisieren jeder Anforderung bereitzustellen, um zu
verifizieren, dass diese wirklich durch den Host gesendet wurde,
der durch den an dem Speichersystem 20 empfangenen Host-Identifizierer
bezeichnet ist. Eine Authentisierung von Verbindungen zu dem Speichersystem 20 sichert
die jedem der Host-Prozessoren zugeordneten Datenvolumen, in dem
verifiziert wird, dass der ein Datenvolumen anfragende Host wirklich
der Host ist, der in der Source-ID des Anforderungspakets bezeichnet
ist. Sich lediglich auf den Quell-Identifizierer des Host-Prozessors
zu verlassen, ist möglicherweise
keine ausreichende Sicherheitsmaßnahme. In einigen unsicheren
Umgebungen kann ein Prozessor einen falschen Quell-Identifizierer
ausgeben, in einem Versuch, auf privilegierte (geheime) Daten eines anderen
Hosts zuzugreifen. Eine Authentisierung verifiziert somit, dass
der Host-Prozessor auch der ist, der er vorgibt zu sein, und daher
ihm ein Zugriff auf die Daten erlaubt werden sollte.
-
Um
die Authentisierung von Host-Anforderungen zu unterstützen, gibt
in einem Ausführungsbeispiel
das Speichersystem eine Anzahl von eindeutigen, erwarteten Identifizierern
an jeden HBA von jeder Host-Vorrichtung vor der Initiierung von Transaktionen
durch die Host-Vorrichtung aus. Das Speichersystem hält eine
Kopie der erwarteten Identifizierer. Wenn der der Host-Vorrichtung
zugehörige HBA
eine Serie von Transaktionen initiiert, leitet er die erwarteten
Identifizierer, die von dem Speichersystem empfangen wurden, zurück zum Speichersystem.
Das Speichersystem vergleicht jeden empfangenen Identifzierer mit
dem erwarteten Identifizierer. Da das Speichersystem nur die Identifizierer
zu dem speziellen HBA weiterleitet, der dem Host zugehörig ist,
kann das Speichersystem, falls der richtige Identifizierer empfangen
wird, verifizieren, dass in der Tat die Anforderung von dem angegebenen
Host ausgegeben wurde. In einem Ausführungsbeispiel ist das Niveau
eines Sicherungsschutzes weiter durch eine Verwendung einer Zufallszahl
für jeden
Identifizierer erhöht.
In einem weiteren Ausführungsbeispiel wird
ein Verschlüsselungsschlüssel, der
nur dem Host und dem Speichersystem bekannt ist, verwendet, um den
Identifizierer zu verschlüsseln,
bevor er zum Speichersystem gesendet wird. Das Speichersystem kann
dann den Identifizierer unter Verwendung des Verschlüsselungsschlüssels entschlüsseln. Ein
Verschlüsseln
der Identifizierer verhindert, dass andere mit dem Netzwerk gekoppelte
Vorrichtungen den Identifizierer erhalten können und Zugriff auf privilegierte
Daten erlangen können.
Somit wird ein zweistufiges Authentisierungsniveau bereitgestellt, da
jede Transaktion einen eindeutigen Identifizierer aufweist, nur
dem ausgebenden Host bekannt, und der Identifizierer unter Verwendung
eines eindeutigen Zugriffsschlüssels
verschlüsselt
wird, der nur dem HBA an dem Host bekannt ist.
-
In
einem Ausführungsbeispiel
wird die Identifiziererinformation zwischen den Vorrichtungen auf dem
Netzwerk (z.B. dem Host und dem Speichersystem 20) unter
Verwendung von ausgewählten
Feldern des Pakets übermittelt.
Mit Bezug auf das Beispielpaket von 2 sind in
dem Nutzlastabschnitt 160 des Pakets 50 einige
der Felder veranschaulicht, die verwendet werden, um in Übereinstimmung
mit dem SCSI-Protokoll zu kommunizieren. Diese Felder umfassen einen
Quell-Sitzungs-ID 162, einen Ziel-Sitzungs-ID 164 und
ein Datenfeld 65. In Übereinstimmung
mit dem SCSI-Protokoll
werden der Quell-Sitzungs-ID und der Ziel-Sitzungs-ID verwendet, um
eine Reihenfolge von Transaktionen zwischen einer initiierenden
Vorrichtung und einem Ziel nachzuverfolgen. Das SCSI-Protokoll erlaubt,
dass eine Anzahl von Transaktionen gleichzeitig zwischen einer initiierenden
Vorrichtung und einer Zielvorrichtung aussteht. Beispielsweise kann
ein Host-Initiator eine Anzahl von I/O-Anforderungen an unterschiedliche Volumen
in einem Zielspeichersystem ausgeben. Abhängig von der Zugänglichkeit
jedes der Volumen kann die Reihenfolge, in der die Antworten auf die
Anforderungen zu dem Host zurückgegeben
werden, sich von der Reihenfolge der ausgegebenen Anforderungen
unterscheiden. Die Sitzungs-ID werden verwendet, um Anforderungen
mit Antworten an dem Host auszurichten. Die Sitzungs-IDs, die für jede Transaktion
bereitgestellt werden, können
beliebige Zahlen sein, solange sie hinsichtlich einer gegebenen
Zeitperiode eindeutig sind. Da die Sitzungs-ID eine beliebige Zahl
sein kann, werden in einem Ausführungsbeispiel
die Sitzungs-ID-Felder verwendet, um eindeutige Identifiziererinformation
für jede Transaktion
zu übermitteln.
-
Das
oben beschriebene Authentisierungsverfahren kann auf eine Vielzahl
von Arten implementiert werden, und die vorliegende Erfindung ist nicht
auf eine bestimmte Implementierung beschränkt. Zum Zweck einer Veranschaulichung
ist jedoch ein Ausführungsbeispiel
eines Host-Prozessors 312 und eines Speichersystems 320 einschließlich von
Bestandteilen zum Bereitstellen der oben beschriebenen Authentisierungsfunktionalität in 6 gezeigt.
In 6 speichert der Host-Bus-Adapter 345 in
seinem Speicher 349 eine Datenstruktur 60. Die
Datenstruktur 60 umfasst für jedes mit dem HBA gekoppeltes
Speichersystem 320 einen öffentlichen Schlüssel 61,
einen privaten Schlüssel 62,
einen Zugriffsschlüssel 63 und
eine Liste 64 mit einer oder mehreren Zufallszahlen. Jeder
der Schlüssel
ist ein Feld von Bits, das für
ein Verschlüsseln
und Entschlüsseln
von Daten unter Verwendung dem Fachmann bekannter Techniken verwendet
werden kann. Eine Verschlüsselung
und Entschlüsselung
wird durchgeführt,
indem die Bitwerte der Schlüssel
auf Bitwerte von Daten angewendet werden, unter Verwendung von logischen,
einem ausgewählten
Verschlüsselungsalgorithmus
zugehörigen
Operationen. Der Zugriffsschlüssel
ist ein Schlüssel,
der dazu bestimmt ist, Authentisierungsdaten zu verschlüsseln und
zu entschlüsseln,
die zwischen dem HBA und dem zugeordneten Speichersystem übermittelt
werden. In einem Ausführungsbeispiel
wird ein anfänglicher
Wert für
den Zugriffsschlüssel 64 unter
Verwendung des öffentlichen
und privaten Schlüssels 62 bzw. 63 erhalten,
wie im Folgenden detaillierter beschrieben wird.
-
Um
eine Authentisierung zu unterstützen, umfasst
das Speichersystem 320 eine Filter- und Adaptereinheit 334,
die jede der mit Bezug auf 3 beschriebenen
Merkmale enthalten kann, und eine Anzahl von weiteren Bestandteilen,
um eine Authentisierung zu unterstützen. Die Filter- und Adaptereinheit 334 umfasst
einen Zufallszahlengenerator 82, der verwendet wird, um
Zufallszahlen zu erzeugen, die in dem Authentisierungsprozess für einen
jeden der mit dem Speichersystem gekoppelten HBAs verwendet werden.
Mit dem Zufallszahlengenerator 82 ist ein Verschlüssler/Entschlüssler 85
und ein Vergleicher 87 gekoppelt. Die transiente Filtertabelle 84, die
Authentisierungstabelle 86, der Zufallszahlengenerator 82,
der Verschlüssler/Entschlüssler 85 und Vergleicher 87 werden
gemeinsam verwendet, um Verbindungen mit dem Speichersystem unter
Verwendung eines unterhalb detaillierter beschriebenen Verfahrens
zu authentisieren.
-
Wie
oben beschrieben, umfasst das Authentisierungsverfahren die Übermittlung
von Identifizierern zwischen dem Host 312 und dem Speichersystem 320 über das
Netzwerk 21. In einem Ausführungsbeispiel werden die Identifizierer
unter Verwendung eines Zugriffsschlüssels verschlüsselt, der
an dem Host 312 und dem Speichersystem 320 gespeichert
ist, obwohl dies nicht ein erfindungsgemäßes Erfordernis ist. 7 veranschaulicht
ein Verfahren zum Verteilen eines Zugriffsschlüssels zum Host 312 und
dem Speichersystem 320.
-
Zugriffsschlüssel können auf
unterschiedliche Weise bereitgestellt werden, einschließlich eines Zuweisens
von Zugriffsschlüsseln
zum Speichersystem und Host-Prozessoren vor deren Eintritt in das Netzwerk.
Alternativ kann ein Zugriffsschlüssel
erhalten werden, nachdem der Host-Prozessor in das Netzwerk eingetreten
ist, auf eine Weise, wie sie mit Bezug auf das Flussdiagramm von 7 beschrieben
ist. In 7 sind durch den HBA 345 (6) durchgeführte Betriebsvrgänge auf
der linken Seite der Figur veranschaulicht, durch das Speichersystem 320 durchgeführte Betriebsvorgänge sind
auf der rechten Seite der Figur veranschaulicht, und Datenflüsse sind
zwischen den zwei Seiten veranschaulicht. Im Schritt 100 erzeugt
der HBA 345 (6) ein öffentliches und privates Schlüsselpaar.
Dieses kann beispielsweise unter Verwendung bekannter Verschlüsselungssoftware
durchgeführt
werden, die durch die CPU 40 ausgeführt wird. Das öffentliche und
private Schlüsselpaar
ist für
den HBA bestimmt und nicht zugänglich
durch irgendeine andere mit dem Netzwerk 21 (6)
gekoppelte Vorrichtung. Unter Verwendung des öffentlichen Schlüssels 61 verschlüsselte Daten
können
nur unter Verwendung des privaten Schlüssels 62 entschlüsselt werden, wohingegen
durch den privaten Schlüssel 62 verschlüsselte Daten
nur unter Verwendung des öffentlichen
Schlüssels 61 entschlüsselt werden
können.
-
Im
Schritt 102 leitet der HBA 345 den öffentlichen
Schlüssel 61 hinüber zum
Speichersystem 320. Im Schritt 101 befindet sich
das Speichersystem 320 in einer Schleife, auf den Schlüssel wartend. Wenn
das Speichersystem 320 den öffentlichen Schlüssel im
Schritt 101 empfängt,
schreitet es zum Schritt 103 voran. Im Schritt 103,
unter Verwendung des öffentlichen
Schlüssels 61,
verschlüsselt
das Speichersystem 320 einen Zugriffsschlüssel für den HBA 345,
leitet diesen verschlüsselten
Zugriffsschlüssel 67 zurück zum HBA 345 über das
Netzwerk 21 (6) und terminiert. Da der HBA 345 die
einzige Vorrichtung in dem Netzwerk ist, die den privaten Schlüssel 62 hat,
der verwendet werden muss, um irgendeine mit dem öffentlichen
Schlüssel
verschlüsselte
Nachricht zu entschlüsseln,
sind andere Vorrichtungen, die die Transaktionen auf dem Netzwerk überwachen,
nicht in der Lage, den verschlüsselten Zugriffsschlüssel 67 zu
entschlüsseln,
der durch das Speichersystem 320 weitergeleitet wird. Wenn
es im Schritt 105 festgestellt wird, dass der HBA 345 den verschlüsselten
Zugriffsschlüssel 67 empfangen
hat, schreitet der am HBA 345 laufende Prozess zum Schritt 106 voran,
in dem der HBA 345 den verschlüsselten Zugriffsschlüssel unter
Verwendung des privaten Schlüssels 62 decodiert.
Zusätzlich
speichert im Schritt 106 der HBA 345 den Zugriffsschlüssel in
einer Datenstruktur 60 mit dem öffentlichen Schlüssel 61 und
privaten Schlüssel 62 für eine spätere Kommunikation
mit dem Speichersystem 320.
-
Sobald
der Host-Prozessor den Zugriffsschlüssel empfangen hat, kann er
mit dem Prozess beginnen, I/O-Anforderungen an das Speichersystem 320 auszugeben.
Die Prozesse, mit welchen ein Host-Prozessor eine I/O-Anforderung
ausgibt, und durch die eine I/O-Anforderung durch das Speichersystem 320 gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung bedient wird, wird nunmehr mit Bezug
auf die Flussdiagramme von 8A–B und 9 beschrieben.
-
In 8A ist
ein Flussdiagramm bereitgestellt, um ein Ausführungsbeispiel eines Verfahrens zu
veranschaulichen, das durchgeführt
werden kann, um eine Verbindung zwischen dem HBA 345 und dem
Speichersystem 320 einzurichten. In 8A sind
durch den HBA 345 durchgeführte Betriebsvorgänge auf
der linken Seite der Figur veranschaulicht, und Betriebsvorgänge, die
durch das Speichersystem 320 durchgeführt werden, sind auf der rechten Seite
der Figur bezeichnet, und Datenflüsse dazwischen sind gezeigt.
Im Schritt 110 verhandelt der HBA 345 hinsichtlich
eines Zugriffs auf das Speichersystem 320. Im Schritt 120,
wenn der HBA 345 erfolgreich verhandelt hat, gibt er einen
Steuerdatenblock 112 an das Speichersystem 320 aus.
Der Steuerdatenblock 112 umfasst die Quell-ID des HBA 345 und
gibt die HBA-Anforderungen an, die durch das Speichersystem 320 bedient
werden sollen. Wenn im Schritt 121 am Speichersystem 320 festgestellt
wird, dass eine Anforderung von HBA aussteht, schreitet das Verfahren
zum Schritt 122 voran, indem in Antwort auf die Host-Anforderung
das Speichersystem 320 einen eindeutigen Identifizierer 114 zum
HBA 345 weiterleitet. In einem Ausführungsbeispiel ist der Identifizierer
eine Zufallszahl, die in der Ziel-Sitzungs-ID 64 des Nutzlastabschnitts 60 des
Pakets 50, wie in 2 veranschaulicht,
bereitgestellt ist. Nachdem das Speichersystem die Zufallszahl zum HBA
weitergeleitet hat, verschlüsselt
das Speichersystem 320 im Schritt 122a die Zufallszahl 114 unter Verwendung
des Zugriffsschlüssels
und speichert die verschlüsselte
Zufallszahl für
einen späteren
Vergleich.
-
Wenn
im Schritt 123 festgestellt wird, dass der HBA die Zufallszahl
von dem Speichersystem 320 empfangen hat, verschlüsselt im
Schritt 124 der HBA die Zufallszahl 114 unter
Verwendung des Zugriffsschlüssels 63 (erhalten
unter Verwendung des Prozesses von 7), und
liefert die Zufallszahl als eine verschlüsselte Zahl 125 an
das Speichersystem 320 zurück. Wenn im Schritt 126 festgestellt
wird, dass das Speichersystem 320 eine Antwort erhalten hat,
vergleicht im Schritt 127 das Speichersystem 320 die
empfangene Zufallszahl 125 mit der vorhergehend verschlüsselten
und lokal gespeicherten Version der Zufallszahl, erzeugt im Schritt 122.
Der Vergleichszustand 128 wird an den HBA weitergeleitet. Falls
keine Übereinstimmung
vorliegt, ist in dem Speichersystem angezeigt, dass der Host nicht
den richtigen Zugriffsschlüssel
hat, und/oder dass der Host nicht die richtige Zufallszahl kennt,
und die Verbindung zwischen dem Host-Prozessor und dem Speichersystem
wird nicht authentisiert. Dem HBA wird nicht erlaubt, auf Daten
an dem Speichersystem 320 zuzugreifen, und die Transaktion
ist beendet. Falls eine Übereinstimmung
vorliegt, hat der Host den richtigen Zugriffsschlüssel und
die richtige Zufallszahl, und eine Verbindung zwischen dem HBA und
dem Speichersystem wird authentisiert.
-
Sobald
die Verbindung zwischen dem HBA und dem Speichersystem authentisiert
wurde, kann der HBA eine I/O-Anforderung an das Speichersystem 320 für eine Bearbeitung
senden. In einem Ausführungsbeispiel
der Erfindung wird jede I/O-Transaktion unter Verwendung eines unterschiedlichen Identifizierers
(z.B. einer Zufallszahl) authentisiert. Da das SCSI-Protokoll erlaubt,
dass multiple Anforderungen von einem HBA zu einem gegebenen Zeitpunkt
ausstehen, nachverfolgt der HBA die ausstehenden I/O-Anforderungen
unter Verwendung einer Technik, die als Befehlsmarkeranfrage (command tag
queuing) bezeichnet wird. Jeder I/O-Anforderung wird unter Verwendung
des Sourcesitzungs-ID-Felds 62 (2) ein eindeutiger
Marker zugewiesen. Wenn eine Antwort vom Speichersystem zurückgeleitet wird,
wird der Marker in das Sitzungs-ID-Feld der Anforderung einbezogen,
so dass die Antwortdaten mit der Anforderung unter Verwendung des
Markers ausgerichtet werden können.
-
Die
Maximalanzahl von I/O-Anforderungen, die für einen HBA zu einem beliebigen
Zeitpunkt ausstehen können,
wird in Übereinstimmung
mit dem Befehlsmarkeranfrageprotokoll bestimmt. Da jeder I/O-Anforderung
ein eindeutiger Identifizierer zugewiesen wird, sollte jeder HBA
immer eine ausreichende Anzahl von Identifizierern halten, um sicherzustellen,
dass ein Identifizierer für
eine ausstehende Anforderung bereitgestellt werden kann. In Übereinstimmung
mit einem Ausführungsbeispiel
wird daher, wenn jede Vorrichtung sich in das Speichersystem einlogt,
eine Liste von eindeutigen Identifizierern zur Vorrichtung weitergeleitet.
Die Anzahl von Identifizierern in der Liste entspricht der Maximalanzahl
von I/O-Anforderungen, die an der Vorrichtung ausstehen können, obwohl
die vorliegende Erfindung nicht auf diese Zahl beschränkt ist.
Wenn jede Vorrichtung eine Anforderung an das Speichersystem ausgibt, wird
einer der Identifizierer von der Liste verwendet. Jedesmal, wenn
das Speichersystem auf eine Anforderung antwortet, liefert es einen
neuen Identifizierer zurück,
der an dem unteren Ende der Liste gespeichert ist. Identifizierer
werden in First-in-First-out-Reihenfolge von der Liste ausgewählt. Als
eine Folge wird eine konstante Anzahl von Identifizierern an der
Vorrichtung aufrechterhalten, um Befehlsmarkeranfrageprotokolle
zu erfüllen.
-
Ein
Ausführungsbeispiel
eines Verfahrens zum Bereitstellen der Identifizierer für den Host
ist unterhalb beschrieben. Da ein eindeutiger Identifizierer oder
Zufallszahl jeder I/O-Anforderung
zugeordnet ist, fragt zu Beginn einer I/O-Sequenz der HBA eine Anzahl
von Zufallszahlen an, die gleich der Maximalanzahl von erlaubten
ausstehenden I/O-Anforderungen ist. Die Liste von Zufallszahlen
wird als Liste 64 in einer Datenstruktur 60 (6)
des HBA 345 gespeichert und wird zusätzlich in der Authentisierungstabelle 86 der
Filter- und Adaptereinheit 334 (6) des Speichersystems 320 gespeichert.
-
Unter
kurzer Bezugnahme auf 9 wird ein Beispiel von Elementen
gezeigt, die in der Authentisierungstabelle 86 (6)
gespeichert sein können. Für jeden
der HBAs, der mit dem Speichersystem 320 gekoppelt ist,
wird eine Datenstruktur 89 bereitgestellt. Die Datenstruktur
kann einen öffentlichen Schlüssel 89a enthalten,
der eine Kopie des öffentlichen
Schlüssels 61 ist,
der durch den HBA bereitgestellt wurde, um den anfänglichen
Zugriffsschlüssel 63 zu
erhalten. Zusätzlich
kann die Datenstruktur 89 einen Zugriffsschlüssel 89b enthalten,
der eine Kopie des am HBA 345 gespeicherten Zugriffsschlüssels 63 ist.
In einem Ausführungsbeispiel
umfasst jede der Datenstrukturen weiter eine Liste von Zufallszahlen. Die
Zufallszahlen an jedem Eintrag der Datenstruktur 89c entspricht
einer Zufallszahl, die verwendet werden wird, um eine zugehörige Transaktion
zu authentisieren. Wie die Zufallszahl verwendet wird, um eine Transaktion
zu authentisieren, wird detaillierter mit Bezug auf 8b beschrieben.
-
In 8b gibt
im Schritt 184 der HBA einen Steuerdatenblock 185 an
das Speichersystem 320 aus. Der Steuerdatenblock 185 umfasst
eine Steuerung zum Benachrichtigen des Speichersystems 320,
dass der HBA im Begriff ist, eine I/O-Transaktion zu initiieren und dass die
Verbindung authentisiert wurde. Wenn im Schritt 186 festgestellt
wird, dass eine Anforderung empfangen wurde, decodiert das Speichersystem 320 die
Anforderung, und im Schritt 187 leitet es ein Paket 188 einschließlich einer
Liste von Zufallszahlen an den HBA 345 weiter. Im Schritt 187a verschlüsselt auch
das Speichersystem 320 die erste Zufallszahl unter Verwendung
des Zugriffsschlüssels
und speichert die verschlüsselte
Zahl lokal für
einen späteren
Vergleich mit der verschlüsselten
Zahl, die in einer Anforderung von dem HBA empfangen wird.
-
Wenn
im Schritt 189 festgestellt wird, dass der HBA das Paket 188 empfangen
hat, prüft
der HBA 345 im Schritt 190, ob eine ausstehende
I/O-Anforderung vorliegt. Falls ja, verschlüsselt im Schritt 192 der
HBA die erste Zufallszahl unter Verwendung des Zugriffsschlüssels, gespeichert
im Feld 63 der Datenstruktur 60. Der HBA 345 fügt dann
die verschlüsselte
Zufallszahl in das Quell-Sitzungs-ID-Feld des I/O-Anforderungspakets
ein und leitet das I/O-Anforderungspaket 194 an das Speichersystem 320 weiter.
-
Wenn
im Schritt 195 am Speichersystem 320 festgestellt
wird, dass ein I/O-Anforderungspaket empfangen wurde, vergleicht
im Schritt 196 das Speichersystem die verschlüsselte Zufallszahl,
empfangen in dem Quell-Sitzungs-ID-Feld des I/O-Anforderungspakets 194, mit
der im Schritt 187 erzeugten, verschlüsselten Zufallszahl. Alternativ
kann das Speichersystem 20 einfach die empfangene Zufallszahl
entschlüsseln
und sie mit der erwarteten Zufallszahl vergleichen. Falls eine Übereinstimmung
vorliegt, bedient das Speichersystem 320 die I/O-Anforderung
und leitet ein Antwortpaket 197 zurück zum HBA 345. Das
Antwortpaket umfasst durch den HBA angeforderte Daten und eine neue
Zufallszahl, die verwendet werden wird, wenn die Zahlen in der Liste 188 verbraucht
sind. In einem Ausführungsbeispiel ist
die neue Zufallszahl in dem Ziel-Sitzungs-ID-Feld bereitgestellt,
während
die vorhergehende, verschlüsselte
Zufallszahl in dem Quell-ID-Feld für Nachverfolgungszwecke zurückgeliefert
wird, obwohl die Verwendung von speziellen Feldern keine Beschränkung der
vorliegenden Erfindung darstellt.
-
Wenn
im Schritt 198 festgestellt wurde, dass eine Antwort von
dem Speichersystem 320 empfangen wurde, extrahiert die
HBA die nicht-verschlüsselte
Zufallszahl vom Sitzungs-ID-Feld des Pakets 197 und speichert
die Zufallszahl in der Datenstruktur 60. Der Prozess schreitet
dann zum Schritt 190 voran, in dem der HBA die nächste I/O-Anforderung
initiiert, unter Verwendung der nächsten Zufallszahl von der Zufallszahlenliste 64,
verschlüsselt
unter Verwendung des Zugriffsschlüssels.
-
Somit
wird ein Verfahren bereitgestellt, in dem eindeutige. Identifizierer
verwendet werden, um einen Host an einem Speichersystem zu authentisieren.
Obwohl das Verfahren unter Verwendung von Zufallszahlen beschrieben
wurde, versteht es sich, dass es kein Erfordernis der Erfindung
ist, und dass eine beliebige Sequenz von Zahlen alternativ verwendet
werden kann, die nicht ein sofort erfassbares Muster enthalten.
Wie oben erläutert,
kann mehr als ein HBA gleichzeitig mit dem Speichersystem 320 verbunden
sein. Wenn Identifizierer an gekoppelte HBAs verteilt werden, wird
somit deren Sequenz entsprechend unter der Mehrzahl von HBAs verteilt
werden, die mit dem Speichersystem 320 verbunden sind,
wodurch die Zahlenverteilung noch zufälliger erscheint und demzufolge
sicherer. Obwohl Verschlüsselungstechniken
beschrieben wurden, ist es zusätzlich
kein Erfordernis der Erfindung, dass Identifizierer vor einer Übermittlung
verschlüsselt
werden müssen.
Alternativ kann ein Authentisierungsverfahren verwendet werden,
das nicht wie jede Anforderung Identifizierer einbezieht, sondern
die gesamte Anforderung unter Verwendung des Zugriffsschlüssels verschlüsselt. Es
wird auch erwogen, dass unterschiedliche Zugriffsschlüssel für jede Transaktion bereitgestellt
werden können.
Die vorliegende Erfindung kann eine beliebige Kombination dieser
Authentisierungstechniken enthalten, und ist daher nicht auf die
oben beschriebenen speziellen Ausführungsbeispiele beschränkt.
-
Die
obigen Techniken können
verwendet werden, um zu verifizieren, dass eine Verbindung zwischen
einem Initiator und einem Ziel autorisiert ist. In einem weiteren
Ausführungsbeispiel
werden Verfahren auch verwendet, um sicherzustellen, dass die Daten,
die an dem Ziel empfangen werden, die Daten sind, die durch den
Initiator gesendet wurden. Demzufolge kann eine weitergehende Sicherheit
erhalten werden, indem Validierungsverfahren angewendet werden,
um sicherzustellen, dass Befehle und Daten nicht während einer Übermittlung
von dem Initiator zum Ziel beschädigt
werden. Das Validierungsverfahren kann bereitgestellt werden, um
auszuschließen, dass
andere mit dem Netzwerk gekoppelte Vorrichtungen Transaktionen zwischen
dem Initiator und dem Ziel stören.
-
In Übereinstimmung
mit einem weiteren Gesichtspunkt der Erfindung umfasst ein Verfahren
zum Validieren einer Datenübertragung
zwischen einer Quelle und einem Ziel über das Netzwerk einen Schritt
zum Erhalten einer digitalen Signatur der Übermittlung sowohl am Ziel
als auch am Initiator. Die digitale Signatur ist in der Form einer
Prüfsumme. Jedes
Byte von Daten, das zwischen einem Ziel und einem Initiator übermittelt
wird, wird mit vorhergehenden Bytes der Übertragung unter Verwendung
einer Prüffunktion
(hashing function) kombiniert, um die Prüfsumme zu bilden. Die Prüffunktion
kann beispielsweise eine Exklusiv-ODER-Funktion sein oder eine Abwandlung davon.
Die in die Signatur einbezogenen Daten können ausschließlich Daten
enthalten, die durch den Initiator zum Ziel geleitet werden, nur die
Daten, die vom Ziel zum Initiator übermittelt werden, oder eine
Kombination davon.
-
Mit
Bezug auf 10 wird nun ein Flussdiagramm
eines Ausführungsbeispiels
eines Verfahrens zum Validieren einer Datenübertragung zwischen einem Initiator
und einem Ziel gezeigt. Das Flussdiagramm ist ähnlich zu dem mit Bezug auf 8B beschriebenen,
enthält
jedoch Schritte zum Validieren der Datenübertragung. Im Schritt 200 wird
am Initiator festgestellt, ob oder ob nicht irgendwelche I/O-Anforderungen
vorliegen. Falls ja, verschlüsselt
im Schritt 202 der Initiator die Zufallszahl, die der Transaktion
zugeordnet ist, und leitet die I/O-Anforderung 203 mit
der verschlüsselten
Zufallszahl in der Quell-Sitzungs-ID zum Ziel. Wenn im Schritt 204 festgestellt
wird, dass das Ziel die Anforderung empfangen hat, vergleicht im
Schritt 205 das Ziel die empfangene, verschlüsselte Zahl
mit der gespeicherten, verschlüsselten,
erwarteten Zufallszahl, um eine Übereinstimmung
festzustellen. Falls keine Übereinstimmung
vorliegt, antwortet das Ziel nicht. Falls eine Übereinstimmung vorliegt, leitet
im Schritt 206 das Ziel eine neue, verschlüsselte Zufallszahl
und Antwortdaten zum Ziel. Im Schritt 206 fügt das Ziel
auch die Antwortdaten in die existierende Prüfsumme ein (hashes), um eine
neue Prüfsumme
bereitzustellen, um die digitale Signatur der Datenübertragung
zu bilden. Die Antwort 207 wird am Initiator im Schritt 208 empfangen.
Im Schritt 209 fügt
(hashes) der Initiator ebenfalls die Antwortdaten in die existierende
Prüfsumme,
um eine neue Prüfsumme
bereitzustellen, um die digitale Signatur der Datenübertragung
zu bilden. Der Vorgang des Ausgebens von I/O-Anforderungen und Erzeugens
von Prüfsummen
dauert für die
Anzahl von Anforderungen in der Initiator-Zielverbindung an. Wenn
im Schritt 200 festgestellt wird, dass keine weiteren Anforderungen
vorliegen, schreitet der Vorgang zur Validierungsphase im Schritt 210 voran,
in der 11 veranschaulicht.
-
Im
Schritt 210 verschlüsselt
der Initiator die Prüfsumme
unter Verwendung des Zugriffsschlüssels und leitet die verschlüsselte Prüfsumme 212 an das
Ziel weiter. Das Ziel empfängt
die verschlüsselte Prüfsumme im
Schritt 214. Im Schritt 216 entschlüsselt das
Ziel die Prüfsumme,
und im Schritt 218 vergleicht das Ziel die entschlüsselte Prüfsumme mit
der durch das Ziel erzeugten Prüfsumme.
Das Ziel sendet dann ein Statuspaket 220 an den Initiator,
das anzeigt, ob die Prüfsummen übereinstimmten
oder nicht. Falls im Schritt 222 festgestellt wird, dass
die Transaktion gültig
war (d.h. keine Daten beschädigt waren),
dann ist die Verbindung zwischen dem Initiator und dem Ziel beendet.
Falls der Status 220 anzeigt, dass die Transaktion nicht
gültig
war und dass die Daten beschädigt
waren, berichtet der Initiator die Verbindung mit dem Ziel wieder
ein und wiederholt die Datentransaktion.
-
Somit
wurde ein Datenverwaltungsverfahren und Vorrichtungen beschrieben,
die drei Schichten einer Datenverwaltung bereitstellen. Ein Filtern
wird bereitgestellt, um sicherzustellen, dass jeder Host nur auf
solche Datenvolumen zugreift, für
die er Zugriffsrechte hat. Eine Sicherheit kann eingefügt werden
unter Verwendung von Authentisierungsverfahren, um zu verifizieren,
dass jede Anforderung wirklich durch den Host ausgegeben wurde,
der in dem Identifizierer der Anforderung bezeichnet ist. Zuletzt kann
eine Validierung bereitgestellt werden, um sicherzustellen, dass
keine Daten während
einer Übermittlung
beschädigt
wurden. Ein System, dass das Datenverwaltungsverfahren und die diesbezügliche Vorrichtung
verwendet, kann einen oder mehrere dieser Schichten einer Datenverwaltung
unabhängig voneinander
enthalten, und somit ist die vorliegende Erfindung nicht auf ein
System beschränkt,
das alle oben erläuterten
Datenverwaltungstechniken verwendet. Solch ein Datenverwaltungssystem
stellt verbesserte Kontrolle bezüglich
Datenzugriffen durch Nutzer an einem Host-Prozessor bereit, indem
die Daten, auf die durch den Host-Prozessor zugegriffen werden kann,
beschränkt
werden. Während
somit Nutzer an einem Host-Prozessor in der Lage sein können, auf
alle Daten zuzugreifen, die dem Host-Prozessor zugewiesen sind (in
Abhängigkeit von
den dem Prozessor zugeordneten Rechten), sind weder die Nutzer noch
sogar der Systemadministrator mit dem höchsten Zugriffsrecht am Host-Prozessor
in der Lage, auf Daten zuzugreifen, die nicht dem Host durch das
Speichersystem zugewiesen sind, unabhängig von den Privilegien des Nutzers
an dem Host.
-
Obwohl
die obige Erörterung
ein beispielhaftes System betrifft, in dem ein Hostzugriff auf Daten an
einem Speichersystem erlangt, können
die oben beschriebenen Verfahren auf ein beliebiges System angewendet
werden, in dem eine Ressource durch eine Mehrzahl von Vorrichtungen
gemeinsam genutzt wird. Solche Systeme umfassen, sind jedoch nicht
darauf beschränkt,
beliebige Arten von Speichersystemen einschließlich Plattenlaufwerken, Bandlaufwerken,
Dateiservern und ähnlichem.
Hinsichtlich der detailliert beschriebenen verschiedenen Ausführungsbeispiele
der vorliegenden Erfindung werden dem Fachmann unterschiedliche
Abwandlungen und Verbesserungen offensichtlich werden. Solche Abwandlungen
und Verbesserungen liegen im Gedanken und Umfang der Erfindung.
Demzufolge stellt die vorhergehende Beschreibung nur ein Beispiel
dar und ist nicht als beschränkend
zu betrachten. Die Erfindung ist nur durch die folgenden Ansprüche und Äquivalente
dazu definiert.