-
HINTERGUND
DER ERFINDUNG
-
Die Erfindung betrifft Datenspeichersysteme und
insbesondere Datenspeichersysteme mit der Möglichkeit einer Daten-Fernspiegelung.
-
Unter Beachtung der Wichtigkeit der
Verfügbarkeit
von Information wurden verschiedene Techniken entwickelt, um eine
erhöhte
Zuverlässigkeit
und Verfügbarkeit
von Daten zu bieten, welche in einem Datenspeichersystem gespeichert
sind. Eine solche Technik ist das Spiegeln von Daten. In einem gespiegelten
System werden die Daten, die in einem Datenspeichersystem gespeichert
sind, in einem anderen Datenspeichersystem repliziert. Wenn daher
ein Speichergerät
oder mehrere Speichergeräte
in einem Datenspeichersystem ausfällt bzw. ausfallen oder ein
katastrophaler Systemausfall auftritt, so sind die Daten leicht
in Form einer gespiegelten Kopie von dem Spiegel-Datenspeichersystem
erhältlich.
-
Geräte in einem Datenspeichersystem
(oder einer Datenquelle), welche gespiegelt in demselben, entfernten
Datenspeichersystem (oder Zielsystem) vorgesehen sind, werden als
Gerätegruppe
bezeichnet. In gleicher Weise werden Geräte im Zielsystem, welche Geräte in derselben
Datenquelle beliefern oder spiegeln, als eine Gerätegruppe
bezeichnet. Gerätegruppen
dienen beispielsweise zur Sicherstellung der Schlüssigkeit
von Datenblöcken,
welche zu groß sind,
um in einem einzelnen Bereich gespeichert zu werden, während geplanter
oder nicht geplanter Unterbrechungen, beispielsweise Verbindungsausfällen oder
geplanten Ergänzungen.
Gerätegruppen
umfassen typischerweise eine Anzahl von physikalischen und logischen
Speichervolumen, und in einige Fällen,
beispielsweise, wenn ein Datenstripping verwendet wird, können mehrere Gerätegruppen
unterschiedlichen Teilen eines physikalischen oder logischen Volumens
zugeordnet werden.
-
Typischerweise sind die Quellen-Gerätegruppen
und Ziel-Gerätegruppen
als Paare in zwei Systemen angeordnet und jedes Paar von Quellen-Ziel-Gerätegruppen
ist über
zwei zugeordnete Verbindungen (beispielsweise ESCON oder Fibre-Channel-Verbindungen)
verbunden, nämlich
eine zur Unterhaltung von Schreibvorgängen während Datenauffüllungsoperationen
und Lesevorgängen während Datenwiederauffindungsoperationen,
und eine andere für
die Redundanz. Somit erfordert eine redundante Anordnung von N Datenspeichersystemen,
in welchen jedes Datenspeichersystem in der Lage ist, eine gespiegelte
Konfiguration zu ermöglichen,
welche jedes der N–1
anderen entfernten Datenspeichersysteme umfaßt, N·(N–1) physikalische Verbindungen
oder einen Mittelwert von 2·(N–1) körperlichen
Verbindungen je System. Dieser Verbindungsbedarf wird unpraktisch,
wenn N größer als
drei ist, da die Anzahl von Anschlüssen an jedem Datenspeichersystem
begrenzt ist.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Gemäß einem Aspekt der Erfindung
sind in einer Fern-Datenspiegelungsanordnung von Datenspeichersystemen
Anschlüsse
an ein Datenspeichersystem mit Anschlüssen an anderen Datenspeichersystemen
verbunden. Jedes Speichersystem ist mit einer Information bezüglich der
Konfigurationstopologie versehen. Von einem Schaltnetz, das Verbindung zu
den Anschlüssen
sämtlicher
der Datenspeichersysteme hat, wird Information gewonnen, welche
die Anschlüsse
der anderen Datenspeichersysteme identifiziert, welche mit dem Schaltnetz
verbunden sind. Die Information bezüglich der Konfigurationstopologie
und die von dem Schaltnetz gewonnene Information werden dazu verwendet,
eine logische Verbindung zwischen einem Anschluß im Speichersystem und einem
zweiten Anschluß an
einem zweiten Speichersystem zu erstellen, so daß Daten, die in einer Gerätegruppe
vorhanden sind, die durch den Anschluß unterhalten wird, und sich
in einer entsprechenden, gespiegelten Gerätegruppe befinden, die durch den
zweiten Anschluß unterhalten
wird, zwischen dem Datenspeichersystem und dem zweiten Datenspeichersystem
ausgetauscht werden können.
-
In einem anderen Aspekt der Erfindung
enthält
ein System eine Anordnung von Speichersystemen, welche jeweils so
ausgebildet sind, daß sie
mindestens eine Gruppe von Geräten
steuern, welche in einer gespiegelten Konfiguration mit einer entsprechenden
Gerätegruppe
angeordnet sind, die durch eines der anderen Speichersysteme gesteuert
wird. Für
jede Gerätegruppe
und die entsprechende Gerätegruppe
sind erste Anschlüsse
der genannten Gerätegruppe
und zweite Anschlüsse
der entsprechenden Gerätegruppe
zugeordnet. Das System enthält
weiter ein Schaltelement, das so ausgebildet ist, daß es einen
der ersten Anschlüsse
mit mindestens einem der zweiten Anschlüsse verbindet, so daß Daten
zwischen den ersten und zweiten Anschlüssen für jede Gerätegruppe und die zugeordnete
Gerätegruppe ausgetauscht
werden können.
-
In wieder einem anderen Aspekt der
Erfindung enthält
in einer Fern-Spiegelungsanordnung von Datenspeichersystemen ein
Datenspeichersystem einen Anschluß, der zur Steuerung mindestens einer
Gerätegruppe
ausgebildet ist, sowie ein Schaltelement, das mit dem genannten
Anschluß sowie Anschlüssen in
den anderen Speichersystemen gekoppelt ist. Der Anschluß verwendet
das Schaltelement zur Verbindung des genannten Anschlusses mit einem
ausgewählten
der Anschlüsse
zur Steuerung einer zweiten Gerätegruppe,
welche die durch den Anschluß gesteuerte
Gerätegruppe
spiegelt.
-
Die Vorteile der Erfindung sind unter
anderem folgende:
Der Ersatz eines zugeordneten 1:1-Protokolls,
beispielsweise ESCON durch ein geschaltetes Protokoll vermindert
die Anzahl der erforderlichen Anschlüsse von 2(N–1) auf 2. Diese erhöhte Verbindungsmöglichkeit
führt zu
einer besseren Arbeitsqualität
(beispielsweise Belastungsausgleich) sowie zu einer erhöhten Redundanz.
Da außerdem
jeder Prozessor in einer Steuerung für ein Datenspeichersystem in
der Lage ist, mehrere Gerätegruppen
zu versorgen, kann ein Systembenutzer die volle Fern-Datenspiege lungsverbindung
ausnützen,
ohne daß er
Prozessoren für
die Verwirklichung dieser Verbindungen diesem Zweck widmen muß.
-
Andere Merkmale und Vorteile der
Erfindung ergeben sich aus der folgenden detaillierten Beschreibung
und aus den Ansprüchen.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
1A und 1B sind Blockschaltbilder
eines Systems, das Datenspeichersysteme mit der Möglichkeit
einer Daten-Fernspiegelung relativ zueinander enthält, wobei
die Systeme über
ein Fibre-Channel-Schaltnetz
(FC) verbunden sind.
-
2 ist
ein detailliertes Blockschaltbild eines Plattenlaufwerk-Steuerleitsystems,
welches zur Errichtung der logischen Verbindungen über das Schaltnetz
für einen
FC-Anschluß verwendet
wird.
-
3A bis 3D sind Darstellungen von
Konfigurationstopologie-Tabellen. Davon ist 3A eine Darstellung einer Fernsystemtabelle; 3B ist eine Darstellung
einer Gerätegruppen-Tabelle; 3C ist eine Darstellung
einer Plattenlaufwerk-Steuerleitsystem-Tabelle; und 3D ist eine Darstellung einer Logikverbindungs-Tabelle.
-
4 ist
eine Darstellung eines Namensfeldes für das world wide web.
-
5 ist
eine logische Darstellung des Systems von 1A und 1B mit
einer beispielsweisen Ausbildung der Steuereinrichtungen, die zur
Versorgung verschiedener Gerätegruppen
konfiguriert sind.
-
6 ist
eine Darstellung einer Konfigurationstopologie entsprechend dem
in 5 gezeigten System.
-
7 ist
ein Flußdiagramm
des Verbindungs-Initialisierungsvorgangs, der durch einen Prozessor
in einem Plattenlaufwerk-Steuerleitsystem durchgeführt wird.
-
8 ist
ein Flußdiagramm
eines einzelnen Verbindungs-Wiederauffindungsvorganges, welcher durch
einen Prozessor in einem Plattenlaufwerk-Steuerleitsystem durchgeführt wird.
-
DETAILLIERTE
BESCHREIBUNG
-
Die vorliegende Erfindung betrifft
eine Systemumgebung, in welcher Daten, welche identisch zu denjenigen
sind, die in einem Datenspeichersystem gespeichert sind, an einem
geographisch entfernten Datenspeichersystem gespeichert werden.
Das entfernte Datenspeichersystem dient zur Nachlieferung von Daten,
die in dem genannten Datenspeichersystem gespeichert sind und zur
Ermöglichung
einer Datenwiederherstellung, wenn das genannte Datenspeichersystem
und seine Daten verlorengehen, was in Folge einer Fehlfunktion oder
eines Unglücks
geschehen kann.
-
Es sei auf die 1A und 1B Bezug
genommen. Ein System 10 enthält Datenspeichersysteme 12a, 12b, 12c und 12d.
Die Datenspeichersysteme 12a, 12b und 12c sind
mit mindestens einem Host-Rechner (oder Host) 14a bzw. 14b bzw. 14c verbunden.
Der Host-Rechner 14 kann beispielsweise ein Personalcomputer,
eine Workstation oder dergleichen sein, welche von einem einzelnen
Benutzer verwendet werden kann, oder kann ein System für mehrere
Benutzer sein. Das Datenspeichersystem 12 empfängt Daten
und Befehle von dem Host-Rechner 14 und liefert Daten und
Antworten an den Host-Rechner 14.
-
In den 1A und 1B sind die Datenspeichersysteme 12a bis 12d Massenspeichersysteme mit
jeweiligen Steuereinrichtungen 16a bis 16d, von denen
jede mit einer Mehrzahl von Speichergeräten (oder einfach Geräten) gekoppelt
ist, welche als Plattenlaufwerke 18 dargestellt sind. Die
Steuereinrichtung 16a ist mit Geräten 18a, Geräten 18b und
Geräten 18c gekoppelt.
Die Steuereinrichtung 16b ist mit Geräten 18d, Geräten 18e und
Geräten 18f gekoppelt.
Die Steuereinrichtung 16c ist mit Geräten 18g, Geräten 18h und
Geräten 18i gekoppelt.
Die Steuereinrichtung 16d ist mit Geräten 18j und Geräten 18k gekoppelt.
Jedes der Geräte 18 ist
entsprechend bekannten Techniken in eines oder in mehrere logische Speichervolumen
unterteilt.
-
Jede Steuereinrichtung 16 verbindet
den Host-Rechner 14 und die Geräte 18 und kann beispielsweise
eine Einheit sein, welche durch Fa. EMC hergestellt wird und als
Symmetrix-Steuereinrichtung bekannt ist. Die Steuereinrichtungen 16a bis 16c empfangen
Speicher-Schreibbefehle von jeweiligen Host-Rechnern 14 unmittelbar
von Host-Bussen 20a bzw. 20B bzw. 20c,
die beispielsweise entsprechend einem SCSI-Protokoll verbunden und
betrieben werden, und liefern die zu den gekannten Befehlen gehörigen Daten
an die entsprechenden Geräte 18 über Verbindungsbusse 22a, 22b,
..., 22k.
-
Die Busse 22 arbeiten vorzugsweise
ebenfalls entsprechend einem SCSI-Protokoll. Die Steuereinrichtungen 16A bis 16C empfangen
auch Leseanfragen von dem Hostrechner 14 über den
Host-Bus 20 und liefern die angeforderten Daten an den
Hostrechner 14, entweder von einem Cache-Speicher der Steuereinrichtung 16 oder,
wenn die Daten nicht in dem Cache-Speicher vorhanden sind, von den
Geräten 18 aus.
-
In einer typischen Konfiguration
hat die Steuereinrichtung 16 auch Verbindung zu einer Service-Management
Konsole (nicht dargestellt), welche für die Wartung und den Zugriff
zu der Steuereinrichtung 16 verwendet wird und dazu dienen
kann, Parameter der Steuereinrichtung 16 einzustellen,
wie in der Technik bekannt ist.
-
Typischerweise ist, wie oben aufgezeigt,
jedes der Geräte 18 so
konfiguriert, daß es
logische Volumen (oder Geräteeinheiten)
speichert. Es kann eine Mehrzahl logischer Volumen vorgesehen sein, beispielsweise
4, 8 oder mehr logische Volumen, oder ein körperliches Gerät. In einer
Konfiguration, in welcher mehrfache Kopien eines logischen Volumens
unterhalten werden, d. h., insbesondere dann, wenn zwei Kopien von
Daten gesondert für
ein logisches Volumen gespeichert werden, spricht man davon, daß eine Spiegelung
unterhalten wird. (Es könnten
mehr als zwei gespiegelte Kopien vorhanden sein. Typischerweise
jedoch werden gespiegelte Paare verwendet). Die Steuereinrichtung 16 kann dann
auf eine Leseanforderung durch Ablesen von der einen oder anderen
der in den Speichergeräten 18 gespeicherten
Kopien reagieren. Eine Spiegelung kann sowohl dem Niveau der logischer
Speichervolumen als auch dem Niveau der körperlichen Geräte oder
auch nur im Niveau der logischen Speichervolumen vorgenommen sein.
Datenspiegelungskonfigurationen können in derselben Steuereinrichtung
oder in unterschiedlichen Steuereinrichtungen vorgenommen werden,
wie im Falle einer Fern-Datenspiegelung (oder der Fern-Datenspiegelungsmöglichkeit RDF).
-
Im Betrieb sendet der Hostrechner 14,
wie durch die Anwendungen oder Aufgaben bei seinem Betrieb erforderlich,
Befehle an das Datenspeichersystem 12 zur Anforderung von
Daten, die in dem logischen Speichervolumen gespeichert sind, oder
zur Anbietung von Daten, welche in die logischen Speichervolumen
eingeschrieben werden sollen. Es sei weiterhin auf die 1A und 1B Bezug genommen. Die Steuereinrichtungen 16A bis 16C enthalten Host-Adapter 24A bis 24C zur
Erleichterung der Verbindungen mit dem Hostrechnern 14a bzw. 14b bzw. 14c.
Der Hostrechner 14 hat typischerweise Verbindung zu einem
Anschluß des
Host-Adaperts 24 über die
SCSI-Host-Busleitung 24.
-
Die Steuereinrichtungen 16a bis 16d enthalten
weiter jeweils einen Globalspeicher 30, wobei dieser jeweils
als Globalspeicher 30a bzw. 30b bzw. 30c bzw. 30d eingezeichnet
ist. Der Host-Adapter 24 in jeder Steuereinrichtung hat über mindestens
einen Systembus 31 Verbindung zu dem globalen Speicher 30.
Außerdem
sind mit dem globalen Speichersystem 30 in jeder der Steuereinrichtungen 16 Plattenlaufwerk-Steuerleitsysteme 32 verbunden,
und genauer gesagt, Plattenlaufwerk-Steuerleiteinrichtungen 32a und 32b in
der Steuereinrichtung 16a, Plattenlaufwerk-Steuerleitein richtungen 32c und 32d in der
Steuereinrichtung 16b, Plattenlaufwerk-Steuerleiteinrichtungen 32e und 32f in
der Steuereinrichtung 16c und Plattenlaufwerk-Steuerleiteinrichtungen 32g und 32h in
der Steuereinrichtung 16d. Die Plattenlaufwerk-Steuerleiteinrichtungen 32 haben Verbindung
mit dem Host-Adapter 24 über den globalen Speicher 30.
Zwar ist dies nicht dargestellt, doch kann der globale Speicherstrang 30 einen
Cache-Speicher zur Speicherung von Daten sowie verschiedene Datenstrukturen
zur Aufrechterhaltung der Steuerinformation und zum Unterhalten
der Verbindungen zwischen den Hostrechnern 14 und den Geräten 18 enthalten.
-
Die Plattenlaufwerk-Steuerleiteinrichtungen 32 steuern
die Speichergeräte 18.
Jede der Plattenlaufwerk-Steuerleiteinrichtungen 32a bis 32h enthält einen
jeweiligen der Anschlüsse 34a bis 34h.
In der beschriebenen Ausführungsform
sind die Plattenlaufwerk-Steuerleiteinrichtungen 32 in
der Steuereinrichtung 16 in Paaren installiert. So sind
nur zwei Plattenlaufwerk-Steuerleiteinrichtungen in jeder der Steuereinrichtungen 16 dargestellt.
Es versteht sich jedoch, daß zusätzliche
Plattenlaufwerk-Steuerleiteinrichtungen durch das System 10 verwendet
werden können.
-
Die Plattenlaufwerk-Steuerleiteinrichtungen in
den Steuereinrichtungen 16a bis 16d haben Verbindung
mit den jeweiligen globalen Speichern 30a bis 30d über jeweils
zugeordnete Busse 36a bis 36d. Während einer
Schreiboperation liest die Plattenlaufwerk-Steuerleiteinrichtung 32 Daten,
welche in dem globalen Speicher 30 gespeichert sind, über den Host-Adapter 24 aus
und schreibt diese Daten in entsprechende logische Speichervolumen
ein. Während einer
Leseoperation und in Abhängigkeit
von einem Lesebefehl liest die Plattenlaufwerk-Steuerleiteinrichtung 32 Daten
von einem logischen Speichervolumen aus und schreibt diese Daten
in den globalen Speicher 30 für die spätere Weitergabe durch den Host-Adapter 24 an
den anfragenden Hostrechner 14 ein.
-
In dem System
10 von
1A und
1B ist jede der Steuereinrichtungen
16 mit
einem Schaltnetz
38 verbunden. Das Schaltnetz
38 enthält eine Anzahl
von Netzanschlüssen
(FP) gezeigt als FP
40a, FP
40b, ..., FP
40h.
Jeder Anschluß in
jeder Plattenlaufwerk-Steuerleiteinrichtung ist mit einem jeweils
anderen der Netzanschlüsse
40 verbunden. Wie
dargestellt sind die Anschlüsse
34a bis
34h mit den
Netzanschlüssen
40a bis
40h jeweils über Verbindungen
oder Kopplungen
42a bis
42h gekoppelt. Das Schaltnetz
gestattet es jeder Steuereinrichtung
12 mit anderen Steuereinrichtungen
12 verbunden
zu werden, wenn die anderen Steuereinrichtungen als entfernte Datenspeichersysteme
dienen, die eine Hintergrundkapazität in Form gespiegelter Speicherung
für die
Daten bieten, die in dem Datenspeichersystem
12 gespeichert
sind. Mit Bezug auf irgendeine der Steuereinrichtungen
16 ist
eine entfernte Steuereinrichtung oder ein entferntes System irgendein
anderes Steuersystem
16, das gespiegelte Kopien von Daten
unterhält,
welche in einer gegebenen Steuereinrichtung
16 gespeichert
sind, oder Daten speichert, bezüglich
welcher die betreffende Steuereinrichtung
16 selbst gespiegelte
Kopien unterhält.
Somit ist irgendeine Steuereinrichtung
16 und eine andere
Steuereinrichtung, welche eine entfernte Steuereinrichtung ist (und
somit die Funktion einer entfernen Datenspeicherung mit Bezug auf
die betreffende Steuereinrichtung bietet) als eine gespiegelte Konfiguration
oder eine gespiegelte Anordnung zu bezeichnen. Eine Prozedur der
entfernten Datenspiegelung und des Wiederauffindens kann unter Verwendung
bekannten Techniken durchgeführt
werden, beispielsweise denjenigen, wie sie in dem oben erwähnten Patent
5,742,792 beschrieben sind.
-
In der beschriebenen Ausführungsform
ist das Schaltnetz 38 ein Fibre-Channel-Netz. Es können jedoch andere Schaltprotokolle
von einer Einheit zu vielen Einheiten, beispielsweise Gigabit Ethernet, verwendet
werden. Es kommen andere Systemausführungen in Betracht. Beispielsweise
versteht es sich, daß die
Datenspeichersysteme 12 nicht auf einen Hostrechner beschränkt zu sein
brauchen, wie dies dargestellt ist. Beispielsweise kann das Datenspeichersystem 12 mit
mehr als einem Hostrechner gekoppelt sein. Alternativ braucht, wie
dies für
das Datenspeichersystem 12d gezeigt ist, das Datenspeichersystem 12 überhaupt
nicht mit einem Host-Gerät
gekoppelt zu sein. So ein Systemdatenspeicher kann nur verwendet
werden, um Einschreibungen in Verbindung mit Schreibanforderungen durchzuführen, welche
von einem der anderen Datenspeichersysteme 12a bis 12c empfangen
werden, so daß aktualisierte
Information, welche durch den Host-Adapter in dem betreffenden anderen
Speichersystem gespeichert wird, auch in dem entfernten Datenspeichersystem 12d gespeichert
wird, wodurch die Information aufrechterhalten wird, die in dem
anderen Speichersystem, beispielsweise dem Datenspeichersystem 12a gespeichert
ist, nämlich
in einer gespiegelten Bedingung in dem entfernten Datenspeichersystem 12d.
Auch kann der Host-Adapter 24 eine Mehrzahl von Host-Adaptern
enthalten, welche jeweils einen unterschiedlichen Host-Bus/Host-Rechner
unterhalten. Es können mehr
oder weniger alternative Datenspeichersysteme, wie sie in den 1A und 1B gezeigt sind, vorgesehen sein. Es
können
mehr als zwei Anschlüsse je
Datenspeichersystem vorhanden sein.
-
Nunmehr sei 2 betrachtet. Jede Plattenlaufwerk-Steuerleiteinrichtung 32 enthält einen
Prozessor 50, der mit einem örtlichen, nichtflüchtigen Speicher
(NVM) 52 über
einen internen Bus 54 gekoppelt ist. Der Prozessor 50 steuert
die Gesamtoperationen der Plattenlaufwerk-Steuerleiteinrichtung 32 und
die Kommunikationen mit dem örtlichen
Speicher 52. Der nichtflüchtige Speicher 52 speichert Firmware 56 und
Parameterdaten in einem Parameterspeicher 58. Außerdem sind
in dem örtlichen
Speicher 52 verschiedenerlei Datenstrukturen 60 enthalten,
d. h. Konfigurationstopologie-Tabellen 64, welche Konfigurationsinformationen
für die
Plattenlaufwerk-Steuerleiteinrichtung 32 sowie für das System 10 festhalten.
Die Tabellen 64 enthalten eine Tabelle 64a bezüglich entfernter
Systeme, eine Tabelle 64b bezüglich Gerätegruppen, eine Tabelle 64c bezüglich Steuerleiteinrichtungen
(oder Prozessoren) und eine Tabelle 64d bezüglich logischer
Verbindungen. Die Funktionalität
dieser Datenstrukturen wird später
beschrieben.
-
Es sei weiterhin 2 betrachtet. Die Firmware 56 enthält eine
Anzahl von Prozessen, welche von dem Prozessor 50 ausgeführt werden,
um den Datentransfer zwischen dem Hostrechner 14 (wenn vorhanden),
dem globalen Speicher 32 und den Speichergeräten 18 zu
steuern. Zusätzlich
erfordert die Firmware 56 Prozesse zur Steuerung der Kommunikationen
zwischen dem Anschluß 34 und
den Anschlüssen
in anderen Steuereinrichtungen über
das Schaltnetz 38. Zu diesem Zwecke ist die Firmware 68 so
ausgebildet, das sie einen Verbindungsinitialisierungsprozess 66 und
einen Prozeß 68 der
Auffindung einer einzelnen Verbindung enthält, wie beschrieben wird. Die
Firmware 56, die Datenstrukturen 60 und der Parameterspeicher 58 werden
jedes Mal ausgelesen, wenn das Datenspeichersystem initialisiert wird.
Die Firmware 56 wird zu dem flüchtigen Speicher 52 zur
Initialisierungszeit für
die nachfolgende Ausführung
durch den Prozessor 50 kopiert.
-
Die verschiedenen Konfigurationstopologietabellen 64 sind
in den 3A bis 3D dargestellt. Zunächst sei
auf 3A Bezug genommen.
Eine Tabelle 64a der entfernten Systeme enthält einen
Eintrag 70 für
jedes Steuereinrichtungs-/Datenspeichersystem, welches in einer
gespiegelten Anordnung mit dem Datenspeichersystem involviert ist.
Jeder Eintrag 70 enthält
eine Steuereinrichtungs-(System-)Seriennummer 72; eine
Steuereinrichtungs-(System-) Modellnummer 74 und eine Firmware-(Code-)Niveauidentifizierung 76.
Andere systemspezifische Informationen können gegebenenfalls einbezogen sein.
-
Es sei jetzt auf 3B Bezug genommen. Die Gerätegruppentabelle
enthält
einen Eintrag für jede
Gerätegruppe 78,
also 78a, 78b, 78k, wobei der Eintrag
folgendes enthält:
einen Gerätegruppennamen 80;
einen Zeiger zu einem entfernten Speichersystem, das die Gerätegruppe 82 bedient;
eine Liste von Geräten 84 in
Zuordnung zu Charakteristiken 86 (einschließlich RDF
Parametern). Bezugnehmend nunmehr auf die 3C ist zu sehen, daß die Prozessorniveautabelle 64c einen
Eintrag 90 für
den Prozessor jeder Plattenlaufwerk-Steuerleitvorrichtung enthält und jeder
Eintrag 90 einen entsprechenden Rahmen (beispielsweise
WWN-Name oder IP-Name) 92 und eine Liste von Zeigern zu
Gerätegruppen
enthält,
welche von dem Prozessor 94 unterstützt werden. Bezugnehmend auf 3D ist festzustellen, daß die Tabelle 96 bezüglich der
logischen Verbindungen Verbindungseinträge 98 enthält. Jeder davon
enthält
folgendes: einen Verbindungszustand 100; einen Zeiger zu
einem der Prozessoren 102 und einen Zeiger zu einer der
Gerätegruppen 104.
-
Bezüglich der 3A bis 3D ist
zu sagen, daß die
Tabellen 64a, 64b und 64c durch den Systembenutzer
konfiguriert werden. Die Verbindungstabelle 64d wird durch den
Prozeß 66 der
Verbindungsinitialisierung und den Prozeß 68 der Verbindungsauffindung
(2) erzeugt, wie zu
beschreiben ist.
-
In 4 ist
einen beispielsweise Form eines World Wide Name (WWN) 106,
welcher in dem Feld 92 der Prozessorentabelle 64c identifiziert
ist, gezeigt. Der WWN-Name 106 bildet für jeden Prozessor, der in einer
RDF-Konfiguration involviert ist, einen einzigartigen Namen. Der
WWN-Name 106 enthält
ein verkäuferspezifisches
Verkäufernummernfeld 108 zur
Identifizierung des Herstellers der Steuereinrichtung, ein Seriennummernfeld 110 zur
Identifizierung der Seriennummer der Steuereinrichtung 16 und
eine Leitnummer 112 zur Identifizierung des Anschluß-Prozessors.
In der gezeigten Ausführung
sind die Längen
der Felder 118, 110 und 112 28 Bit bzw. 30
Bit bzw. 6 Bit.
-
Es sei auf 5 Bezug genommen. Hier ist eine beispielsweise
logische Gestaltung des Systems 10 (von den 1A und 1B) gezeigt. In diesem Beispiel sind
zehn Gerätegruppen
S1, S2, S3, S4, S5 sowie
T1, T2, T3, T4 und T5 vorgesehen, welche auch durch jeweilige
Bezugszahlen 120a, 120b, 120c, 120d, 120e, 122a, 122b, 122c, 122d und 122e bezeichnet
sind. Fünf
der Gerätegruppen,
nämlich
S1 bis S5, sind
Quellen-Gerätegruppen,
und die Gerätegruppen
T1 bis T5 sind Zielgerätegruppen.
In dem gezeigten Beispiel sind die Steuereinrichtungen in folgender
Weise für
eine Fern-Datenspiegelungsmöglichkeit
konfiguriert: Die Steuereinrichtung 16a versorgt die Gerätegruppen
S1, S2 und T4; die Steuereinrichtung 16b versorgt
die Gerätegruppen
S3, S5 und T1; die Steuereinrichtung 16c versorgt
die Gerätegruppen
S4, T3 und T5; und die Steuereinrichtung 16d versorgt
die Gerätegruppe
T2. Die Geräte in der Quellen-Gerätegruppe
S1 in der Steuereinrichtung 16a werden
in Geräten
in der entsprechenden Ziel-Gerätegruppe
T1 in der Steuereinrichtung 16b gespiegelt. Die
Geräte
in der Quellen-Gerätegruppe
S2 (in der Steuereinrichtung 16a)
werden in der Ziel-Gerätegruppe
T2 (in der Steuereinrichtung 16d gespiegelt, usw.
Jede Steuereinrichtung hat zwölf
unterschiedliche mögliche
logische Verbindungen zur Verfügung. Beispielsweise
kann die Steuereinrichtung 16b ihre zwei Anschlüsse, nämlich Anschluß 34c und 34d verwenden,
um die folgenden logischen Verbindungen zu gewinnen: Anschluß 34c zum
Anschluß 34e,
An schluß 34c zum
Anschluß 34f,
Anschluß 34c zum Anschluß 34g,
Anschluß 34c zum
Anschluß 34h,
Anschluß 34c zum
Anschluß 34a,
Anschluß 34c zum Anschluß 34b,
ferner Anschluß 34c zum
Anschluß 34b,
ferner Anschluß 34d zum
Anschluß 34e,
Anschluß 34d zum
Anschluß 34f,
Anschluß 34d zum Anschluß 34g,
Anschluß 34d zum
Anschluß 34h,
Anschluß 34d zum
Anschluß 34a und
Anschluß 34d zum
Anschluß 34b.
Bei der besonderen Konfiguration, die in dieser Zeichnung gezeigt
ist, muß ein
Anschluß,
der eine bestimmte Gerätegruppe
versorgt, beispielsweise die Gerätegruppe
S3, in Kommunikation mit einem Anschluß für die entsprechende
Gerätegruppe
sein, im vorliegenden Falle T3. Wie in der Zeichnung
gezeigt ist, wobei die Schaltarchitektur und die beiden Anschlüsse/Prozessoren
je Steuereinrichtung verwendet werden, kann eine Verbindung zwischen
zwei Gerätegruppen,
beispielsweise S3 und T3 mit
einer von vier möglichen
logischen Verbindungen erreicht werden: Anschluß 34c mit Anschluß 34e,
Anschluß 34c mit
Anschluß 34f,
Anschluß 34d mit
Anschluß 34e und
Anschluß 34d mit
Anschluß 34f.
-
Es sei nun auf 6 Bezug genommen. Hier ist ein Beispiel
einer Topologiegraphik gezeigt, welche durch die Steuereinrichtung 16b für die Systemkonfiguration
von 5 aufrechterhalten
würde.
Auf dem ersten Niveau enthält
die Entfernt-Systeminformation 64a eine Repräsentation
der Steuereinrichtungen 16a, (Seriennummer 012345678) und 16c (Seriennummer
0136357760) entsprechend Eintragungen in der Tabelle 64a bezüglich der
entfernten Systeme (3A).
Das nächste
Niveau zeigt die Gerätegruppe
T1, welche auf die Steuereinrichtung 16a hinweist,
da die Steuereinrichtung 16a die Gerätegruppe S1 unterhält, welche
das RBF-Gegenstück
für die
Gerätegruppe
T1 ist. In ähnlicher Weise weisen die Gerätegruppen
S3 und S5 auf die
Steuereinrichtung 16c hin, da diese Steuereinrichtung diese
Gerätegruppen
mit den jeweiligen gespiegelten Gerätegruppen T3 und
T5 in Beziehung setzt. Diese Gerätegruppendarstellungen
entsprechen jeweils einem Eintrag in der Gerätegruppentabelle 64b (3B). Das nächste Niveau
zeigt, welcher der Prozessoren (Prozessoren, die den Anschlüssen 34c und 34d zugeordnet
sind) so konfiguriert ist, daß er
jeweils welche Gerätegruppen
versorgt. Wie die Zeichnung (welche der Tabelle 64c von 3C entspricht) zum Ausdruck
bringt. ist ein Prozessor für
eine der Steuerleiteinrichtungen 32c bis 32d so konfiguriert,
daß er die
Gerätegruppen
T1 und S3 versorgt,
so daß er
auf diese hinweist. Der Prozessor für die andere der Steuerleiteinrichtungen 32c und 32d ist
so konfiguriert, daß er
die Gerätegruppe
S5 versorgt und somit auf sie hinweist.
Das untere Niveau zeigt die verschiedenen logischen Verbindungen,
welche eingerichtet werden (durchgezogene Linien/Pfeile) oder welche
gewünscht
werden (gestrichelte Linien/Pfeile). Wie gezeigt, sind logische
Verbindungen bereits für
T1 und S3 eingerichtet
und die Pfeile geben die Zeigerdaten wieder, welche in den Eintragungen
der Tabelle der logischen Verbindungen 64d (3D) gespeichert sind. Für diese
eingerichteten Verbindungen ist der Verbindungszustand aktiv und
der Zustandswert, welcher in dem Feld 100 der Tabelle 64d gespeichert
ist, ist "0xff".
-
Zur Einrichtung logischer Verbindungen,
beispielsweise derjenigen zwischen den Gerätegruppen S5 und
T5, muß ein
Anschluß (genauer
gesagt, der zugeordnete Prozessor der Plattenlaufwerk-Steuerleiteinrichtung)
den Verbindungsinitialisierungsprozeß 66 und den Prozeß 68 bezüglich der
Auffindung der einzelnen Verbindung durchführen, wie nachfolgend unter
Bezugnahme auf die 7 bzw. 8 beschrieben wird.
-
Es sei auf 7 Bezug genommen. Der Verbindungsinitialisierungsprozeß 66 (Prozeß 66)
beginnt damit, daß von
dem Schaltnetz 40 eine Liste von Anschlüssen gewonnen wird, welche
mit dem Schaltnetz 40 verbunden sind (Schritt 130).
Vorzugsweise enthält
diese Liste den WWN-Namen für
jeden dieser Anschlüsse.
Der Prozeß 66 schreitet
zur Prüfung
der ersten Eintragung auf der Liste (Schritt 132) fort.
Der Prozeß 66 endet,
wenn der WWN-Name des Anschlusses größer als der oder gleich dem WWN-Namen
des Anschlusses ist, mit welchem der Prozeß durchgeführt wird, nachfolgend "OUR_WWN" (Schritt 134).
Wenn festgestellt wird, daß der
WWN-Name größer als
der oder gleich dem OUR_WWN ist, dann endet der Prozeß 66,
wenn es eine andere Eintragung auf der Liste gibt (Schritt 136).
Wenn keine weitere Eintragungen auf der Liste sind, dann endet der
Prozeß 66 (Schritt 137).
Wenn eine andere zu überprüfende Eintragung
vorhanden ist. dann schreitet der Prozeß 66 zu der nächsten Eintragung
auf der Liste (Schritt 138) fort und kehrt zu dem Schritt 134 zurück. Wenn
die Feststellung in dem Schritt 134 anzeigt, daß WWN kleiner
als OUR_WWN ist, dann prüft
der Prozessor 66, ob die Lieferantennummer oder Verkäufernummer
gleich der Lieferantennummer für
den Anschluß ist,
für welchen
der Prozeß durchgeführt wird,
oder "OUR_VENDOR_NUMBER" (Schritt 140).
Ist dies nicht der Fall, dann ignoriert der Prozeß 66 die
betreffende Lieferantennummer und schreitet zu dem Schritt 136 fort.
Wenn die Lieferantennummern dieselben sind, dann extrahiert der
Prozeß 66 die
Seriennummer und die Leitnummer von dem WWN-Namen (Schritt 142).
Der Prozeß 66 bestimmt,
welche Gerätegruppe,
wenn überhaupt,
durch den WWN-Namen angesprochen ist (Schritt 144). Das bedeutet,
der Prozeß bestimmt,
ob die Seriennummer, die aus dem WWN-Namen extrahiert worden ist, mit
der Seriennummer übereinstimmt,
auf welche irgendeinen Gerätegruppe
hinweist. Wenn keine solche Übereinstimmung
herrscht, dann kehrt der Prozeß 66 zu
dem Schritt 136 zurück.
Wenn eine Übereinstimmung
für jede
Gerätegruppe,
welche durch die Seriennummer angesprochen ist, besteht, dann führt der
Prozeß 66 folgendes
aus: der Prozeß 66 bestimmt,
ob bereits eine logische Verbindung für die Gerätegruppe und die Seriennummer
(Schritt 146) existiert. Wenn eine logische Verbindung
bereits errichtet worden ist, dann kehrt der Prozeß zu dem Schritt 136 zurück. Wenn
keine logische Verbindung existiert, dann fügt der Prozeß 66 eine
Verbindung zu der Verbindungstabelle hinzu, indem der Zustand gleich
eins gesetzt wird und Zeiger hinzugefügt werden, welche auf eine
Gerätegruppe
hinweisen, welche durch die passende Seriennummer und den Prozessor
angesprochen ist, der auf diese Gerätegruppe hinweist (Schritt 148).
Der Prozeß 46 initiiert
den Prozeß 68 bezüglich der
Auffindung einer einzelnen Verbindung zur Einrichtung einer Verbindung
zu dem entfernten Prozessor, der durch die WWN-Leitnummer identifiziert
wird (Schritt 150). Der Prozeß 66 kehrt dann zu
dem Schritt 136 zurück.
Der Prozeß 66 führt somit
die Schritte 134 bis 150 für jeden Anschluß durch,
der auf der Liste dargestellt ist. Der Prozeß 66 wird als ein
Hintergrundprozeß durchgeführt und
wird entsprechend einem Zeitgeberparameter wiederholt, der in dem
Parameterspeicher 58 eingestellt ist (2).
-
Nun sei auf 8 Bezug genommen. Hier ist ein detailliertes
Flußdiagramm
eines Prozesses 68 bezüglich
der Auffindung einer einzelnen Verbindung (Prozeß 68) gezeigt. Der
Prozeß 68 initiiert
einen Einlog-Prozeß für den Anschluß, welcher
die Verbindungsversuche (Initiatoranschluß) und das Einloggen ins Netz
(Schritt 160) initiiert. In der beschriebenen Ausführungsform
eines FC-Schalters wird das Einloggen unter Verwendung bekannter
FC-Einlogtechniken durchgeführt.
Der Prozeß 68 für den Initiatoranschluß initiiert
die Kontaktaufnahme mit dem entfernten Anschluß (antwortender Anschluß) durch Aussenden
einer Synchronisationsnachricht zu dem antwortenden Anschluß (Schritt 162).
Die Synchronisation kann in dieser Weise durch Rückstellen des antwortenden
Anschlusses erreicht werden. Wenn eine Auszeit vor Empfang einer
Antwort auftritt oder der Verbindungsversuch durch das Netz zurückgewiesen
wird, da die Verbindung von dem Netz zu dem antwortenden Anschluß nicht
zustande gekommen ist (Schritt 164), dann versucht der
Prozeß 68 die Synchronisation
erneut nach Ablauf einer vorbestimmten Wiederversuchsverzögerung (Schritt 166). Anderenfalls
wird eine Antwort von dem antwortenden Anschluß empfangen und die Synchronisationsnachricht
veranlaßt
den antwortenden Anschluß, sein
eigenes FC-Einloggen durchzuführen
und einen Verbindungseintrag für
den Anschluß mit
einem Verbindungszustand eins als Teil seines eigenen Verbindungsauffindungsprozesses
(Schritt 168) zu erzeugen. Der Initiatoranschluß liest
die Konfigurationsinformation für
die Gerätegruppe,
welche durch den entfernten Anschluß bezeichnet wird, und vergleicht sie
mit der Konfiguration für
die Gerätegruppe
(Schritt 170). Er bietet die Gerätegruppe dem antwortenden Anschluß an, welcher
die antwortende Gruppe dazu veranlaßt, festzustellen, ob sie die
Gerätegruppe durch
Lesen der Konfigurationsdaten für
die Gerätegruppe
des Initiatoranschlusses und Vergleichen mit der Konfigurationsinformation
unterstützt,
welche für die
ferne Gerätegruppe
gespeichert ist (Schritt 172). Wenn der Prozeß eine Anzeige über eine
Fehlübereinstimmung
nicht detektiert, oder nicht empfängt, d.h., wenn die Verbindungsauffindung
erfolgreich ist (Schritt 170), so veranlaßt er den
Initiatoranschluß zu einer
Vorstellung seines Verbindungszustandes auf einen "0xff"-Wert (Schritt 176).
Wenn anderenfalls der Prozeß 68 feststellt,
daß die
Verbindungsauffindung aufgrund einer RWF-Fehlübereinstimmung/Zurückweisung
nicht erfolgreich war, dann überdeckt der
Prozeß 68 die
Information über
den Fehler (notiert den WWN-Namen des fernen Anschlusses), so daß der Prozeß 68 wiederholte
Versuche zur Herstellung einer Verbindung vermeiden kann, welche
nicht eingerichtet werden kann, was auf Konfigurationsbeschränkungen
oder Fehlübereinstimmungen
beruht (Schritt 178).
-
Während
einer einzelnen Verbindungsauffindung bewirkt somit der Prozeß 68,
daß die
Zustandsmaschinen sowohl in dem Initiatoranschluß als auch in dem antwortenden
Anschluß versuchen,
ihren Zustand von "1" auf "0xff" vorzuschalten, mit
vier möglichen
Ergebnissen: "ff" (Verbindung eingerichtet); Auszeit
(Fehler) mit neuerlichem Versuch; "Verbindung ab"-Zurückweisung;
oder RDF-Zurückweisung. Die
Verbindung ist erfolgreich eingerichtet worden, wenn beide Zustandsmaschinen
ihren Verbindungszustand auf "ff" vorgestellt haben.
-
Man erkennt, daß zahlreiche andere Modifikationen
in Verbindung mit der Erfindung vorgenommen werden können. Die
Steuereinrichtungen 16 können weiter einen Spiegelungsservice
unterstützen,
welcher feststellt, welche Plattenlaufwerk-Steuerleiteinrichtungen
in Verbindung mit den Steuergeräten,
welche sie steuern, primär
verantwortlich für die
Verbindung von Anfragen von einem Host-Rechner sind. Diese Politik
kann zu Beginn eines Systemaufbaus festgelegt werden, wobei die
erwarteten Belastungen in Betracht gezogen werden.
-
Vorzugsweise ist jedoch die Verwirklichung einer
Spiegelungsservicepolitik dynamisch. Das bedeutet, die Spiegelungsservicepolitik
kann periodisch in Abhängigkeit
von Statistiken modifiziert werden, welche die Natur der Lese- und
Schreibanfragen an das Datenspeichersystem
12 beschreiben,
um die Spiegelungsservicepolitik während des Betriebes des Datenspeichersystems
12 zu ändern. Ein
Beispiel einer dynamischen Spiegelungsservicepolitik (DMSP) ist
in dem US-Patent
6,112,257 beschrieben.
-
Hinzufügungen, Wegnahmen und andere Modifikationen
der bevorzugten Ausführungsformen der
Erfindung ergeben sich für
den Fachmann auf diesem Gebiet und liegen im Umfang der nachfolgenden
Ansprüche.
-
Zusammenfassung
-
Es wird ein Mechanismus für eine Fernspiegelung
von Speichereinrichtungen durch Datenspeichersysteme in einer geschalteten
Umgebung im Verhältnis
eins-zu-viele geschaffen. Jedes Datenspeichersystem enthält eine
Plattenlaufwerk-Steuerleiteinrichtung, welche so ausgebildet ist,
daß sie mindestens
eine Gerätegruppe
steuert, welche in einer gespiegelten Konfiguration mit einer entsprechenden
Gerätegruppe
betrieben wird, die durch eines der anderen Datenspeichersysteme
gesteuert wird. Für
jede Gerätegruppe
und die entsprechende Gerätegruppe
sind erste Anschlüsse,
welche der Gerätegruppe
zugeordnet sind, und zweite Anschlüsse vorgesehen, die der entsprechenden
Gerätegruppe zugeordnet
sind. Ein Schaltelement dient dazu, einen der ersten Anschlüsse mit
mindestens einem der zweiten Anschlüsse so zu verbinden, daß Daten
zwischen den Anschlüssen
für jede
Gerätegruppe
und die entsprechend zugeordnete Gerätegruppe ausgetauscht werden
können.
Die Pattenlaufwerk-Steuerleiteinrichtung wählt aus, welcher erste Anschluß mit welchem
zweiten Anschluß über das
Schaltelement verbunden werden soll, wenn eine logische Verbindung
eingerichtet werden soll. Somit ist jeder Anschluß, der mit
der Schalteinrichtung verbunden ist, in der Lage, vielfache Verbindungen
zu vielfachen Bestimmungsorten für
eine erhöhte
Verbindungsmöglichkeit,
Redundanz und Arbeitsqualität
(Belastungsausgleich) ohne zusätzliche
Hardware zu schaffen.