-
Technisches Gebiet
-
Diese
Anwendung bezieht sich auf Computer-Speichervorrichtungen und insbesondere
auf die Kommunikation zwischen Speichervorrichtungen.
-
Stand der Technik
-
Hostprozessor-Systeme
(Leitrechner-Systeme) können
Daten unter Verwendung einer Speichervorrichtung speichern und abrufen,
welche eine Vielzahl von Host-Schnittstelleneinheiten (Host-Adapter),
Plattenlaufwerken und Plattenschnittstelleneinheiten (Plattenadapter)
enthält.
Derartige Speichervorrichtungen werden beispielsweise von EMC Corporation
aus Hopkinton, Massachusetts, geliefert und sind in
US-Patent
Nr. 5,206,939 von Yanai et al.,
5,778,394 von Galtzur et al.,
US-Patent Nr. 5,845,147 von
Vishlitzky et al. und
US-Patent
Nr. 5,857,208 von Ofek offenbart. Die Host-Systeme greifen
auf die Speichervorrichtung durch eine Vielzahl mit diesem bereitgestellter
Kanäle
zu. Host-Systeme liefern der Speichervorrichtung durch die Kanäle Daten
und Zugriffs-Steuerungsinformationen, und die Speichervorrichtung
liefert den Host-Systemen ebenfalls durch die Kanäle Daten.
Die Host-Systeme adressieren nicht unmittelbar die Plattenlaufwerke
der Speichervorrichtung, sondern greifen vielmehr auf den Host-Systemen
als eine Vielzahl logischer Platteneinheiten [logical disk units]
erscheinende Einheiten zurück.
Die logischen Platteneinheiten können
den tatsächlichen
Plattenlaufwerken entsprechen oder nicht. Dadurch, dass mehreren
Host-Systemen der Zugriff auf die einzige Speichervorrichtung ermöglicht wird,
können
die Host-Systeme darin gespeicherte Daten gemeinsam nutzen.
-
US-Patent Nr. 6,044,444 von
Ofek offenbart ein Verfahren zum Umkehren eines Kommunikationspfades
zwischen einem ersten Laufwerk auf einer ersten Speichervorrichtung
und einem zweiten Laufwerk auf einer zweiten Speichervorrichtung
gemäß dem Oberbegriff
des Anspruchs 1. Jedes Datenlaufwerk ist als lokales Primärlaufwerk
eines ferngespiegelten Laufwerkpaares oder als Sekundärlaufwerk eines
ferngespiegelten Laufwerkpaares konfiguriert. Normalerweise greift
ein Host-Computer direkt entweder auf ein lokales oder auf ein primäres Laufwerk zu,
und auf das Primärlaufwerk
geschriebene Daten werden automatisch über die Verbindung an ein entsprechendes
Sekundärlaufwerk
gesendet. Es wird vorgeschlagen, die Host-Datenverarbeitung mit einem Primärlaufwerk
auszusetzen und geänderte Spuren
des Primärlaufwerks
zum Sekundärlaufwerk zu
kopieren. Sobald dieser Kopiervorgang abgeschlossen ist, kann die
Datenverarbeitung wieder aufgenommen werden. Es wird erwähnt, dass
vor der Wiederaufnahme der Host-Datenverarbeitung die verbundenen
Datenspeichersysteme erneut konfiguriert werden könnten, um
die Rollen des Primärlaufwerks
und des Sekundärlaufwerks
umzukehren. Allerdings gibt Ofek keinerlei Offenbarung oder Anregung
der genauen Maßnahmen
zur Durchführung des
Umkehrschritts, des Aussetzungsschritts und des Wiederaufnahmeschritts.
-
In
einigen Fällen
kann es wünschenswert sein,
Daten von einer Speichervorrichtung in eine andere zu kopieren.
Beispielsweise kann es, wenn ein Host Daten in eine erste Speichervorrichtung schreibt,
wünschenswert
sein, diese Daten in eine zweite, an einem anderen Ort bereitgestellte
Speichervorrichtung zu kopieren, so dass wenn ein Unglück auftritt,
welches die erste Speichervorrichtung betriebsunfähig macht,
der Host (oder ein anderer Host) den Betrieb unter Verwendung der
Daten der zweiten Speichervorrichtung wieder aufnehmen kann. Eine
derartige Fähigkeit
bietet beispielsweise das von der EMC Corporation in Hopkinton,
Massachusetts, bereitgestellte Remote Data Facility (RDF)-Produkt.
Bei RDF kann ein Benutzer eine erste Speichervorrichtung als Master-Speichervorrichtung
und eine zweite Speichervorrichtung als Slave-Speichervorrichtung
benennen. Andere Ausführungen
von RDF können
ein Peer-to-Peer-Verhältnis zwischen den
lokalen und entfernten Speichervorrichtungen bieten. Der Host wirkt
direkt mit der lokalen Speichervorrichtung zusammen, jedoch wird
jede in der lokalen Speichervorrichtung vorgenommene Datenveränderung
unter Verwendung von RDF automatisch einer entfernten Speichervorrichtung
zugeführt.
Die lokalen und entfernten Speichervorrichtungen können durch
eine Datenverbindung wie einen ESCON-Link oder einen Fiber-Channel-Link
verbunden sein. Die RDF-Funktionalität kann mit einem an jeder der
Speichervorrichtungen vorgesehenen RDF-Adapter (RA) unterstützt werden.
-
In
einigen Fällen
kann es wünschenswert sein,
das RDF-Konfigurationssystem
abzuändern. Jedoch
erfordern derartige Abänderungen
in vielen Fällen
ausgebildete Techniker, die eine besondere Software und Nicht-Standard-Verbindungen
zu den lokalen Speichervorrichtungen verwenden. Es ist wünschenswert,
den RDF-Konfigurations-Abänderungsvorgang
zu automatisieren, um einem Host die Abänderung der RDF-Konfiguration
zu ermöglichen. Außerdem ist
es wünschenswert,
dass das Zulassen dynamischer Abänderungen
der RDF-Konfiguration den Betrieb der Speichervorrichtung nicht
beeinträchtigt,
wenn einzelne Vorrichtungen darin auf die dynamischen Konfigurationsinformationen
zugreifen müssen.
-
Offenbarung der Erfindung
-
Aufgabe
der Erfindung ist die Verbesserung der Kommunikation zwischen Speichervorrichtungen.
Diese Aufgabe führt
zu einem Satz von Ausführungsformen,
der hier vollständig
beschrieben wird und in den Ansprüchen einer Serie paralleler
Patentanmeldungen beansprucht wird. Die genannte Aufgabe ist in
vorteilhafter Weise im Wesentlichen durch Anwendung der in den unabhängigen Ansprüchen beschriebenen
Merkmale gelöst.
Weitere Verbesserungen sehen die abhängigen Ansprüche vor.
-
Gemäß einer
Ausführungsform
beinhaltet das dynamische Erzeugen eines Kommunikationspfads zwischen
ersten und zweiten Speichervorrichtungen die Erzeugung einer Verbindung
zu einem Quell-Laufwerk auf der ersten Speichervorrichtung und die
Angabe, dass das Quell-Laufwerk
nicht bereit ist, Daten auf dem Kommunikationspfad zu übertragen,
nach der erfolgreichen Erzeugung der Verbindung zum Quell-Laufwerk
Erzeugung einer Verbindung zu einem Ziel-Laufwerk auf der zweiten
Speichervorrichtung und die anfängliche
Angabe, dass Teile eines der beiden Laufwerke, nämlich Ziel-Laufwerk und Quell-Laufwerk, keine gültigen Datenkopien
enthalten, wobei das Ziel-Laufwerk
Daten von dem Quell-Laufwerk annimmt, und nach erfolgreicher Erzeugung
der Verbindungen zu dem Quell- und dem Ziel-Laufwerk die Angabe, dass das Quell-Laufwerk bereit
ist, Daten auf dem Kommunikationspfad zu übertragen. Das dynamische Erzeugen
eines Kommunikationspfads zwischen den ersten und zweiten Speichervorrichtungen
kann auch die Erzeugung mindestens eines der Laufwerke, nämlich des Quell-Laufwerks
und des Ziel-Laufwerks, umfassen. Die Erzeugung der Verbindung zu
dem Quell-Laufwerk kann die Abänderung
einer Tabelle umfassen, welche Konfigurationsinformationen für die erste Speichervorrichtung
enthält.
Die Erzeugung der Verbindung zu dem Ziel-Laufwerk kann die Abänderung einer
Tabelle umfassen, welche Konfigurationsinformationen für die zweite
Speichervorrichtung enthält. Das
dynamische Erzeugen eines Kommunikationspfads zwischen ersten und
zweiten Speichervorrichtungen kann ferner im Anschluss an die erfolglose
Erzeugung einer Verbindung zu dem Ziel-Laufwerk die Zerstörung der
Verbindung zu dem Quell-Laufwerk umfassen;
in diesem Fall kann ein Fehler zurückgegeben werden. Zu Anfang
kann angegeben werden, dass Teile des Ziel-Laufwerks keine gültigen Daten enthalten; in
diesem Fall kann das dynamische Erzeugen eines Kommunikationspfades
zwischen ersten und zweiten Speichervorrichtungen ferner nach der
Angabe, dass das Quell-Laufwerk bereit ist, Daten auf dem Kommunikationspfad
zu übertragen,
das Initiieren eines im Hintergrund ablaufenden Kopiervor gangs umfassen,
um Daten von dem Quell-Laufwerk auf das Ziel-Laufwerk zu kopieren. Zu Anfang kann
angegeben werden, dass Teile des Quell-Laufwerks keine gültigen Daten
enthalten; in diesem Fall kann das dynamische Erzeugen eines Kommunikationspfads
zwischen ersten und zweiten Speichervorrichtungen ferner nach der
Angabe, dass das Quell-Laufwerk bereit ist, Daten auf dem Kommunikationspfad
zu übertragen,
das Initiieren eines im Hintergrund ablaufenden Kopiervorgangs umfassen, um
Daten von dem Ziel-Laufwerk auf das Quell-Laufwerk zu kopieren.
Der Host kann einen Eingabe/Ausgabe-Vorgang [I/O Operation] auf einem bestimmten Teil
des Quell-Laufwerks
ausführen;
in diesem Fall kann das dynamische Erzeugen eines Kommunikationspfads
zwischen ersten und zweiten Speichervorrichtungen ferner als Reaktion
auf die Angabe, dass der bestimmte Teil ungültige Daten enthält, das
Kopieren von dem bestimmten Teil entsprechenden Daten von dem Ziel-Laufwerk
auf das Quell-Laufwerk vor Beendigung des Eingabe/Ausgabe-Vorgangs umfassen.
-
Gemäß einer
weiteren Ausführungsform
beinhaltet das dynamische Erzeugen eines Kommunikationspfads zwischen
ersten und zweiten Speichervorrichtungen das Erzeugen einer Verbindung
zu einem Ziel-Laufwerk
auf der ersten Speichervorrichtung, nach erfolgreichem Erzeugen
der Verbindung zu dem Ziel-Laufwerk das Erzeugen einer Verbindung
zu einem Quell-Laufwerk auf der zweiten Speichervorrichtung und
die Angabe, dass das Quell-Laufwerk nicht bereit ist, Daten auf
dem Kommunikationspfad zu übertragen,
und die anfängliche Angabe,
dass Teile eines der folgenden, nämlich des Ziel-Laufwerks und
des Quell-Laufwerks, keine gültigen
Kopien von Daten enthalten, wobei das Ziel-Laufwerk Daten von dem
Quell-Laufwerk annimmt, und nach erfolgreichem Erzeugen der Verbindungen
zu dem Quell- und dem Ziel-Laufwerk die Angabe, dass das Quell-Laufwerk
bereit ist, Daten auf dem Kommunikationspfad zu übertragen. Das dynamische Erzeugen
eines Kommunikationspfads zwischen ersten und zweiten Speichervorrichtungen kann
ferner das Erzeugen mindestens eines der folgenden, nämlich des
Quell-Laufwerks und des Ziel-Laufwerks, umfassen. Das Erzeugen der
Verbindung zu einem Ziel-Laufwerk kann die Abänderung einer Tabelle umfassen,
welche Konfigurationsinformationen für die erste Speichervorrichtung
enthält. Das
Erzeugen der Verbindung zu dem Quell-Laufwerk kann die Abänderung
einer Tabelle umfassen, welche Konfigurationsinformationen für die zweite Speichervorrichtung
enthält.
Das dynamische Erzeugen eines Kommunikationspfads zwischen ersten und
zweiten Speichervorrichtungen kann ferner im Anschluss an die erfolglose
Erzeugung einer Verbindung zu dem Quell-Laufwerk die Zerstörung der
Verbindung zu dem Ziel-Laufwerk
umfassen; in diesem Fall kann eine Fehlerangabe zurückgegeben
werden. Zu Anfang kann angegeben werden, dass Teile des Ziel-Laufwerks
keine gültigen
Daten enthalten. Das dynamische Erzeugen eines Kommunikationspfads
zwischen ersten und zweiten Speichervorrichtungen kann ferner nach
der Angabe, dass das Quell-Laufwerk
bereit ist, Daten auf dem Kommunikationspfad zu übertragen, das Initiieren eines
im Hintergrund ablaufenden Kopiervorgangs umfassen, um Daten von
dem Quell-Laufwerk auf das Ziel-Laufwerk zu kopieren. Zu Anfang
kann angegeben werden, dass Teile des Quell-Laufwerks keine gültigen Daten enthalten. Das
dynamische Erzeugen eines Kommunikationspfads zwischen ersten und
zweiten Speichervorrichtungen kann ferner nach der Angabe, dass
das Quell-Laufwerk bereit ist, Daten auf dem Kommunikationspfad
zu übertragen,
das Initiieren eines im Hintergrund ablaufenden Kopiervorgangs umfassen,
um Daten von dem Ziel-Laufwerk auf das Quell-Laufwerk zu kopieren.
Das dynamische Erzeugen eines Kommunikationspfads zwischen ersten und
zweiten Speichervorrichtungen kann ferner umfassen, dass der Host
einen Eingabe/Ausgabe-Vorgang auf einem bestimmten Teil des Quell-Laufwerks ausführt. Das
dynamische Erzeugen eines Kommunikationspfads zwischen ersten und
zweiten Speichervorrichtungen kann ferner als Reaktion auf die Angabe,
dass der bestimmte Teil ungültige
Daten enthält,
das Kopieren von dem bestimmten Teil entsprechenden Daten von dem
Ziel-Laufwerk auf das Quell-Laufwerk vor Beendigung des Eingabe/Ausgabe-Vorgangs
umfassen.
-
Ferner
umfasst gemäß einer
weiteren Ausführungsform
ein Computerprogrammprodukt, welches einen Kommunikationspfad zwischen
ersten und zweiten Speichervorrichtungen erzeugt, ausführbaren
Programmcode, welcher eine Verbindung zu einem Quell-Laufwerk auf
der ersten Speichervorrichtung erzeugt und angibt, dass das Quell-Laufwerk nicht bereit
ist, Daten auf dem Kommunikationspfad zu übertragen, ausführbaren
Programmcode, der eine Verbindung zu einem Ziel-Laufwerk auf der zweiten
Speichervorrichtung erzeugt und anfänglich angibt, dass Teile eines
der folgenden, nämlich
des Ziel-Laufwerks
und des Quell-Laufwerks, keine gültigen
Kopien von Daten enthalten, nachdem die Verbindung zu dem Quell-Laufwerk
erfolgreich erzeugt wurde, wobei das Ziel-Laufwerk Daten von dem Quell-Laufwerk annimmt,
und ausführbaren
Programmcode, der angibt, dass das Quell-Laufwerk bereit ist, Daten
auf dem Kommunikationspfad zu übertragen,
nachdem die Verbindungen zu dem Quell- und dem Ziel-Laufwerk erfolgreich
erzeugt wurden. Das Computerprogrammprodukt kann ferner ausführbaren
Programmcode umfassen, der mindestens eines der folgenden, nämlich des
Quell-Laufwerks und des Ziel-Laufwerks,
erzeugt. Der ausführbare Programmcode,
der die Verbindung zu dem Quell-Laufwerk erzeugt, ändert eine
Tabelle ab, welche Konfigurationsinformationen für die erste Speichervorrichtung
enthalten kann. Der ausführbare Programmcode,
der die Verbindung zu dem Ziel-Laufwerk erzeugt, kann eine Tabelle
abändern, welche
Konfigurationsinformationen für
die zweite Speichervorrichtung enthält. Das Computerprogrammprodukt
kann ferner ausführbaren
Programmcode umfassen, der im Anschluss an die erfolglose Erzeugung
einer Verbindung zu dem Ziel-Laufwerk die Verbindung zu dem Quell-Laufwerk
zerstört;
in diesem Fall kann eine Fehlerangabe zurückgegeben werden. Das Computerprogrammprodukt
kann ferner ausführbaren
Programmcode umfassen, der veranlasst, dass zu Anfang angegeben wird,
dass Teile des Quell-Laufwerks keine gültigen Daten enthalten. Das Computerprogrammprodukt
kann ferner ausführbaren
Programmcode umfassen, der einen im Hintergrund ablaufenden Kopiervorgang
initiiert, um Daten von dem Ziel-Laufwerk auf das Quell-Laufwerk
zu kopieren, nachdem angegeben wurde, dass das Quell-Laufwerk bereit
ist, Daten auf dem Kommunikationspfad zu übertragen. Das Computerprogrammprodukt
kann ferner ausführbaren
Programmcode umfassen, der einem gewünschten Teil entsprechende
Daten als Reaktion auf die Angabe, dass der gewünschte Teil ungültige Daten
enthält,
von dem Ziel-Laufwerk auf das Quell-Laufwerk kopiert, bevor ein
Eingabe/Ausgabe-Vorgang beendet wird.
-
Ferner
umfasst gemäß einer
weiteren Ausführungsform
ein Computerprogrammprodukt, welches dynamisch einen Kommunikationspfad
zwischen ersten und zweiten Speichervorrichtungen erzeugt, ausführbaren
Programmcode, welcher eine Verbindung zu einem Ziel-Laufwerk auf der
ersten Speichervorrichtung erzeugt, ausführbaren Programmcode, der eine
Verbindung zu einem Quell-Laufwerk auf der zweiten Speichervorrichtung erzeugt
und angibt, dass das Quell-Laufwerk
nicht bereit ist, Daten auf dem Kommunikationspfad zu übertragen,
und anfänglich
angibt, dass Teile eines der folgenden, nämlich des Ziel-Laufwerks und
des Quell-Laufwerks, keine gültigen
Kopien von Daten enthalten, nachdem die Verbindung zu dem Ziel-Laufwerk erfolgreich
erzeugt wurde, wobei das Ziel-Laufwerk Daten von dem Quell-Laufwerk
annimmt, und ausführbaren
Programmcode, der angibt, dass das Quell-Laufwerk bereit ist, Daten
auf dem Kommunikationspfad zu übertragen,
nachdem die Verbindungen zu dem Quell- und dem Ziel-Laufwerk erfolgreich erzeugt
wurden. Das Computerprogrammprodukt kann ferner ausführbaren
Programmcode umfassen, der mindestens eines der folgenden, nämlich des
Quell-Laufwerks und des Ziel-Laufwerks, erzeugt. Ausführbarer
Programmcode, der die Verbindung zu dem Quell-Laufwerk erzeugt,
kann eine Tabelle abändern,
welche Konfigurationsinformationen für die erste Speichervorrichtung enthält. Ausführbarer
Programmcode, der die Verbindung zu dem Ziel-Laufwerk erzeugt, kann eine Tabelle
abändern,
welche Konfigurationsinformationen für die zweite Speichervorrichtung
enthält.
Das Computerprogrammprodukt kann ferner ausführbaren Programmcode umfassen,
der im Anschluss an die erfolglose Erzeugung einer Verbindung zu
dem Quell-Laufwerk die Verbindung zu dem Ziel-Laufwerk zerstört; in diesem
Fall kann eine Fehlerangabe zurückgegeben
werden.
-
Gemäß einer
weiteren Ausführungsform
umfasst die Umkehr eines Kommunikationspfads zwischen einem ersten
Laufwerk auf einer ersten Speichervorrichtung und einem zweiten
Laufwerk auf einer zweiten Speichervorrichtung das Aussetzen der Kommunikation
zwischen dem ersten und zweiten Laufwerk, während die Vorgänge für andere
Laufwerke der Speichervorrichtungen aufrechterhalten werden, Veranlassen,
dass das erste Laufwerk von einem Quell-Laufwerk in ein Ziel-Laufwerk
umgewandelt wird, ohne das erste Laufwerk zu zerstören, Veranlassen,
dass das zweite Laufwerk von einem Ziel-Laufwerk in ein Quell-Laufwerk
umgewandelt wird, ohne das zweite Laufwerk zu zerstören, und Wiederaufnahme
der Kommunikation zwischen dem ersten und dem zweiten Laufwerk.
Das Veranlassen der Umwandlung des ersten Laufwerks von einem Quell-Laufwerk
in ein Ziel-Laufwerk kann die Abänderung
einer Tabelle der ersten Speichervorrichtung umfassen. Das Veranlassen
der Umwandlung des zweiten Laufwerks von einem Quell-Laufwerk in
ein Ziel-Laufwerk kann die Abänderung
einer Tabelle der zweiten Speichervorrichtung umfassen. Das Aussetzen
der Kommunikation kann das Versetzen des ersten Laufwerks in einen
Nicht-Bereit-Zustand umfassen. Die Wiederaufnahme der Kommunikation
kann das Versetzen des zweiten Laufwerks in einen Bereit-Zustand
umfassen. Die Umkehr des Kommunikationspfades zwischen einem ersten
Laufwerk auf einer ersten Speichervorrichtung und einem zweiten Laufwerk
auf einer zweiten Speichervorrichtung kann auch das Zurückgeben
eines Ergebnisses umfassen, welches die erfolgreiche Umkehr des
Kommunikationspfades angibt.
-
Ferner
umfasst gemäß einer
weiteren Ausführungsform
die Verwaltung von Laufwerken auf Speichervorrichtungen den Empfang
eines Befehls, welcher die Umkehr eines Kommunikationspfades zwischen
einem ersten Laufwerk auf einer ersten Speichervorrichtung und einem
zweiten Laufwerk auf einer zweiten Speichervorrichtung anfordert,
das Aussetzen der Kommunikation zwischen dem ersten und zweiten
Laufwerk, während
die Vorgänge
für andere
Laufwerke der Speichervorrichtungen aufrechterhalten werden, Veranlassen,
dass das erste Laufwerk von einem Quell-Laufwerk in ein Ziel-Laufwerk umgewandelt
wird, ohne das erste Laufwerk zu zerstören, Veranlassen, dass das
zweite Laufwerk von einem Ziel-Laufwerk in ein Quell-Laufwerk umgewandelt
wird, ohne das zweite Laufwerk zu zerstören, und Wiederaufnahme der
Kommunikation zwischen dem ersten und dem zweiten Laufwerk. Der
Befehl kann ein einziger Multihop-, Multiexecute-Befehl (Mehrsprung-,
Mehrfachausführungs-Befehl)
sein, der die Ausführung
von Vorgängen
auf der ersten und zweiten Speichervorrichtung veranlasst. Das Veranlassen
der Umwandlung des ersten Laufwerks von einem Quell-Laufwerk in
ein Ziel-Laufwerk kann die Abänderung
einer Tabelle der ersten Speichervorrichtung umfassen. Das Veranlassen
der Umwandlung des zweiten Laufwerks von einem Quell-Laufwerk in
ein Ziel-Laufwerk kann die Abänderung
einer Tabelle der zweiten Speichervorrichtung umfassen. Das Aussetzen
der Kommunikation kann das Versetzen des ersten Laufwerks in einen Nicht-Bereit-Zustand umfassen.
Die Wiederaufnahme der Kommunikation kann das Versetzen des zweiten
Laufwerks in einen Bereit-Zustand umfassen. Die Verwaltung von Laufwerken
auf Speichervorrichtungen kann das Zurückgeben eines Ergebnisses umfassen,
welches die erfolgreiche Umkehr des Kommunikationspfades angibt.
-
Ferner
umfasst gemäß einer
weiteren Ausführungsform
ein Computerprogrammprodukt, welches einen Kommunikationspfad zwischen
einem ersten Laufwerk auf einer ersten Speichervorrichtung und einem zweiten
Laufwerk auf einer zweite Speichervorrichtung umkehrt, ausführbaren
Programmcode, welcher die Kommunikation zwischen dem ersten und
dem zweiten Laufwerk aussetzt, während
er die Vorgänge
für andere
Laufwerke der Speichervorrichtung aufrechterhält, ausführbaren Programmcode, welcher
die Umwandlung des ersten Laufwerks von einem Quell-Laufwerk in
ein Ziel-Laufwerk veranlasst, ohne das erste Laufwerk zu zerstören, ausführbaren
Programmcode, welcher die Umwandlung des zweiten Laufwerks von einem
Ziel-Laufwerk in ein Quell-Laufwerk veranlaßt, ohne das zweite Laufwerk
zu zerstören,
und ausführbaren
Programmcode, welcher die Kommunikation zwischen dem ersten und
dem zweiten Laufwerk wiederaufnimmt. Ausführbarer Programmcode, welcher
die Umwandlung des ersten Laufwerks von einem Quell-Laufwerk in ein
Ziel-Laufwerk veranlasst,
kann eine Tabelle der ersten Speichervorrichtung abändern. Ausführbarer Programmcode,
welcher die Umwandlung des zweiten Laufwerks von einem Quell-Laufwerk
in ein Ziel-Laufwerk veranlasst, kann eine Tabelle der zweiten Speichervorrichtung
abändern.
Ausführbarer Programmcode,
welcher die Kommunikation aussetzt, kann das erste Laufwerk in einen
Nicht-Bereit-Zustand versetzen. Ausführbarer Programmcode, welcher
die Kommunikation wiederaufnimmt, kann das zweite Laufwerk in einen
Bereit-Zustand versetzen. Ein Computerprogrammprodukt, welches einen
Kommunikationspfad zwischen einem ersten Laufwerk auf einer ersten
Speichervorrichtung und einem zweiten Laufwerk auf einer zweiten
Speichervorrichtung umkehrt, kann auch ausführbaren Programmcode umfassen,
welcher ein Ergebnis zurückgibt,
das die erfolgreiche Umkehr des Kommunikationspfades angibt.
-
Gemäß einer
weiteren Ausführungsform
umfasst die Bestimmung von Vorrichtungseigenschaften das Erlangen
eines ersten global zugreifbaren Wertes, wenn der erste global zugreifbare
Wert einem gespeicherten ersten Wert entspricht, das Erlangen von
Vorrichtungseigenschafts-Daten von einem relativ schnellen Speicher,
wenn der erste global zugreifbare Wert nicht dem gespeicherten ersten
Wert entspricht, das Erlangen eines zweiten global zugreifbaren
Wertes, wenn der zweite global zugreifbare Wert einem gespeicherten
zweiten Wert entspricht, das Erlangen von Vorrichtungseigenschafts-Daten
von einem relativ schnellen Speicher, wenn der zweite global zugreifbare
Wert nicht dem gespeicherten zweiten Wert entspricht, das Erlangen
von Vorrichtungseigenschafts-Daten von einem relativ langsamen Speicher
und Aktualisieren des relativ schnellen Speichers, des gespeicherten
ersten Wertes und des gespeicherten zweiten Wertes. Der global zugreifbare
erste Wert kann Vorrichtungs-Eingabe/Ausgabe-Informationen umfassen. Die global zugreifbaren Werte
können
in einem globalen Speicher gespeichert sein, der für eine Mehrzahl
von Prozessoren zugreifbar ist. Der relativ langsame Speicher kann
ein globaler Speicher sein, der für eine Mehrzahl von Prozessoren
zugreifbar ist. Der relativ schnelle Speicher kann lokal einem Prozessor
zugeordnet sein, der auf den ersten und den zweiten gespeicherten Wert
zugreift. Der zweite gespeicherte Wert kann angeben, ob eine Vorrichtung
eine Quelle oder ein Ziel für
Daten in einer Datenfernübertragungs-Verbindung
ist.
-
Ferner
umfasst gemäß einer
weiteren Ausführungsform
der Zugriff auf eine Vorrichtung das Erlangen von Statusinformationen,
welche angeben, wie auf die Vorrichtung zugegriffen werden kann,
die Überprüfung mindestens
eines Teils der Statusinformationen, um zu ermitteln, ob sich die
Konfiguration der Vorrichtung geändert
hat, wenn sich die Konfiguration der Vorrichtung nicht geändert hat,
den Zugriff auf gespeicherte Konfigurationsdaten von dem relativ
schnellen Speicher und, wenn sich die Konfiguration der Vorrichtung
geändert
hat, den Zugriff auf neue Konfigurationsinformationen von dem relativ langsamen
Speicher und Aktualisieren der gespeicherten Konfigurationsdaten
mit den neuen Konfigurationsinformationen. Der relativ langsame
Speicher kann ein globaler Speicher sein, der für eine Mehrzahl von Prozessoren
zugreifbar ist. Der relativ schnelle Speicher kann lokal einem Prozessor
zugeordnet sein, der auf den schnellen Speicher zugreift. Die gespeicherten
Konfigurationsdaten können
angeben, ob eine Vorrichtung eine Quelle oder ein Ziel für Daten
in einer Datenfernübertragungs-Verbindung
ist. Die Überprüfung mindestens
eines Teils der Statusinformationen kann die Ermittlung umfassen, ob
der Teil der Statusinformationen gleich einem ersten gespeicherten
Wert ist. Der Zugriff auf eine Vorrichtung kann, wenn der Teil der
Statusinformationen nicht gleich dem ersten gespeicherten Wert ist,
auch das Erlangen zusätzlicher
Statusinformationen umfassen und die Ermittlung, ob ein Teil der
zusätzlichen
Statusinformationen gleich einem zweiten gespeicherten Wert ist.
Der Zugriff auf eine Vorrichtung kann im Anschluss an die Aktualisierung
der gespeicherten Konfigurationsdaten auch die Aktualisierung des
ersten und zweiten gespeicherten Wertes umfassen.
-
Ferner
umfasst gemäß einer
weiteren Ausführungsform
ein Computerprogrammprodukt, welches Vorrichtungseigenschaften bestimmt,
ausführbaren
Programmcode, welcher einen ersten global zugreifbaren Wert erlangt,
ausführbaren
Programmcode, welcher Vorrichtungseigenschafts-Daten von einem relativ
schnellen Speicher erlangt, wenn der erste global zugreifbare Wert
einem gespeicherten ersten Wert entspricht, ausführbaren Programmcode, welcher
einen zweiten global zugreifbaren Wert erlangt, wenn der erste global
zugreifbare Wert nicht dem gespeicherten ersten Wert entspricht,
ausführbaren
Programmcode, welcher Vorrichtungseigenschafts-Daten von einem relativ
schnellen Speicher erlangt, wenn der zweite global zugreifbare Wert einem
gespeicherten zweiten Wert entspricht, und ausführbaren Programmcode, welcher
Vorrichtungseigenschafts-Daten von einem relativ langsamen Speicher
erlangt und den relativ schnellen Speicher, den gespeicherten ersten
Wert und den gespeicherten zweiten Wert aktualisiert, wenn der zweite
global zugreifbare Wert nicht dem gespeicherten zweiten Wert entspricht.
Der global zugreifbare erste Wert kann Vorrichtungs-Eingabe/Ausgabe-Informationen umfassen.
Der zweite gespeicherte Wert kann angeben, ob eine Vorrichtung eine
Quelle oder ein Ziel für Daten
in einer Datenfernübertragungs-Verbindung ist.
-
Ferner
umfasst gemäß einer
weiteren Ausführungsform
ein Computerprogrammprodukt, welches auf eine Vorrichtung zugreift,
ausführbaren
Programmcode, welcher Statusinformationen erlangt, welche angeben,
wie auf die Vorrichtung zugegriffen werden kann, ausführbaren
Programmcode, welcher mindestens einen Teil der Statusinformationen überprüft, um zu
ermitteln, ob sich die Konfiguration der Vorrichtung geändert hat,
ausführbaren
Programmcode, welcher auf gespeicherte Konfigurationsdaten von einem
relativ schnellen Speicher zugreift, wenn sich die Konfiguration
der Vorrichtung nicht geändert hat,
und ausführbaren
Programmcode, welcher auf neue Konfigurationsinformationen von einem
relativ langsamen Speicher zugreift und die gespeicherten Konfigurationsdaten
mit den neuen Konfigurationsinformationen aktualisiert, wenn sich
die Konfiguration der Vorrichtung geändert hat. Die gespeicherten Konfigurationsdaten
können
angeben, ob eine Vorrichtung eine Quelle oder ein Ziel für Daten
in einer Datenfernübertragungs-Verbindung
ist. Ausführbarer Programmcode,
welcher mindestens einen Teil der Statusinformationen überprüft, kann
ausführbaren Programmcode
umfassen, welcher ermittelt, ob der Teil der Statusinformationen
gleich einem ersten gespeicherten Wert ist. Ein Computerprogrammprodukt,
welches auf eine Vorrichtung zugreift, kann auch ausführbaren
Programmcode umfassen, welcher zusätzliche Statusinformationen
erlangt und ermittelt, ob ein Teil der zusätzlichen Statusinformationen
gleich einem zweiten gespeicherten Wert ist, wenn der Teil der Statusinformationen
nicht gleich dem ersten gespeicherten Wert ist. Ein Computerprogrammprodukt,
welches auf eine Vorrichtung zugreift, kann auch ausführbaren
Programmcode umfassen, welcher den ersten und zweiten gespeicherten
Wert im Anschluss an die Aktualisierung der gespeicherten Konfigurationsdaten
aktualisiert.
-
Ferner
umfasst gemäß einer
weiteren Ausführungsform
eine Einrichtung, welche Vorrichtungseigenschaften bestimmt, Mittel
zum Erlangen eines ersten global zugreifbaren Wertes, Mittel zum
Erlangen von Vorrichtungseigenschafts-Daten von einem relativ schnellen
Speicher, wenn der erste global zugreifbare Wert einem gespeicherten
ersten Wert entspricht, Mittel zum Erlangen eines zweiten global
zugreifbaren Wertes, wenn der erste global zugreifbare Wert nicht
dem gespeicherten ersten Wert entspricht, Mittel zum Erlangen von
Vorrichtungseigenschafts-Daten von einem relativ schnellen Speicher, wenn
der zweite global zugreifbare Wert einem gespeicherten zweiten Wert
entspricht, Mittel zum Erlangen von Vorrichtungseigenschafts-Daten
von einem relativ langsamen Speicher und Aktualisieren des relativ
schnellen Speichers, des gespeicherten ersten Wertes und des gespeicherten
zweiten Wertes, wenn der zweite global zugreifbare Wert nicht dem
gespeicherten zweiten Wert entspricht. Der global zugreifbare erste
Wert kann Vorrichtungs-Eingabe/Ausgabe-Informationen [device I/O
information] umfassen. Die global zugreifbaren Werte können in einem
globalen Speicher gespeichert werden, welcher für eine Mehrzahl von Prozessoren
zugreifbar ist. Der relativ langsame Speicher kann ein globaler Speicher
sein, welcher für
eine Mehrzahl von Prozessoren zugreifbar ist. Der relativ schnelle
Speicher kann lokal einem Prozessor zugeordnet sein, welcher auf
den ersten und zweiten gespeicherten Wert zugreift. Der zweite gespeicherte
Wert kann angeben, ob eine Vorrichtung eine Quelle oder ein Ziel
für Daten
in einer Datenfernübertragungs-Verbindung ist.
-
Ferner
umfasst gemäß einer
weiteren Ausführungsform
eine Einrichtung, welche auf eine Vorrichtung zugreift, Mittel zum
Erlangen von Statusinformationen, welche angeben, wie auf die Vorrichtung
zugegriffen werden kann, Mittel zum Überprüfen mindestens eines Teils
der Statusinformationen, um zu ermitteln, ob sich die Konfiguration
der Vorrichtung geändert
hat, Mittel zum Zugreifen auf gespeicherte Konfigurationsdaten von
einem relativ schnellen Speicher, wenn sich die Konfiguration der
Vorrichtung nicht geändert
hat, und Mittel zum Zugreifen auf neue Konfigurationsinformationen
von einem relativ langsamen Speicher und zum Aktualisieren der gespeicherten
Konfigurationsdaten mit den neuen Konfigurationsinformationen, wenn
sich die Konfiguration der Vorrichtung geändert hat. Der relativ langsame Speicher
kann ein globaler Speicher sein, welcher für eine Mehrzahl von Prozessoren
zugreifbar ist. Der relativ schnelle Speicher kann lokal einem Prozessor zugeordnet
sein, welcher auf den schnellen Speicher zugreift. Die gespeicherten
Konfigurationsdaten können
angeben, ob eine Vorrichtung eine Quelle oder ein Ziel für Daten
in einer Datenfernübertragungs-Verbindung
ist. Mittel zum Überprüfen mindestens
eines Teils der Statusinformationen können Mittel zum Ermitteln,
ob der Teil der Statusinformationen gleich einem ersten gespeicherten
Wert ist, umfassen. Die Einrichtung kann ferner Mittel zum Erlangen
zusätzlicher
Statusinformationen umfassen und zum Ermitteln, ob ein Teil der
zusätzlichen
Statusinformationen gleich einem zweiten gespeicherten Wert ist,
wenn der Teil der Statusinformationen nicht gleich dem ersten gespeicherten
Wert ist. Die Einrichtung kann ferner Mittel zum Aktualisieren des
ersten und zweiten gespeicherten Wertes im Anschluss an die Aktualisierung
der gespeicherten Konfigurationsdaten umfassen.
-
Kurze Beschreibung der Zeichnungen
-
1 ist
ein schematisches Diagramm, welches einen Host, eine lokale Speichervorrichtung
und eine Fern-Datenspeichervorrichtung
zeigt, welche in Verbindung mit dem hier beschriebenen System verwendet
werden.
-
2 ist
ein Flussdiagramm, welches die Funktionsweise des hier beschriebenen
Systems darstellt.
-
3 ist
ein Flussdiagramm, welches die Ermittlung, welche Laufwerke für Schreib/Lese-Vorgänge gemäß dem hier
beschriebenen System zu verwenden sind, darstellt.
-
4 ist
ein Diagramm, welches einen globalen Speicher für Speichervorrichtungen gemäß dem hier
beschriebenen System darstellt.
-
5 ist
ein Flussdiagramm, welches eine Hierarchie zum Ermitteln, ob statische
oder dynamische Konfigurationsdaten in Verbindung mit der Bewertung
der Remote Data Facility (RDF)-Konfiguration
einer Vorrichtung gemäß dem hier
beschriebenen System zu verwenden sind, darstellt.
-
6 ist
ein schematisches Diagramm, welches im Detail eine Speichervorrichtung
und Komponenten hiervon zeigt, welche in Verbindung mit dem hier
beschriebenen System verwendet werden.
-
7 ist
ein Diagramm, welches einen Bereitschafts-Puffer und einen Satz
Bytes darstellt, welche in Verbindung mit dem hier beschriebenen
System verwendet werden.
-
8 ist
ein Flussdiagramm, welches Schritte darstellt, die in Verbindung
mit dem Zugriff auf den Bereitschafts-Puffer und den Satz Bytes,
wie sie in 7 aufgeführt sind, ausgeführt werden.
-
9 ist
ein Flussdiagramm, welches eine alternative Ausführungsform des hier beschriebenen Systems
darstellt.
-
Ausführungsform(en)
der Erfindung
-
Bezugnehmend
auf 1 zeigt ein Diagramm 20 ein Verhältnis zwischen
einem Host 22, einer lokalen Speichervorrichtung 24 und einer
Fernspeichervorrichtung 26. Der Host 22 liest
und schreibt Daten von der bzw. auf die lokale Speichervorrichtung 24 über einen
Host-Adapter 28,
welcher die Schnittstelle zwischen dem Host 22 und der
lokalen Speichervorrichtung 24 erleichtert. Daten von der lokalen
Speichervorrichtung 24 werden auf die Fernspeichervorrichtung 26 über eine
RDF-Verbindung 29 kopiert, um zu bewirken, dass die Daten
auf der Fernspeichervorrichtung 26 identisch mit den Daten auf
der lokalen Speichervorrichtung 24 sind. Es ist anzumerken,
dass eine Zeitverzögerung
bei der Übertragung
von Daten von der lokalen Speichervorrichtung 24 auf die
Fernspeichervorrichtung 26 auftreten kann, so dass die
Fernspeichervorrichtung 26 zu bestimmten Zeitpunkten Daten
enthalten kann, die nicht identisch mit den Daten auf der lokalen Speichervorrichtung 24 sind.
Die Kommunikation zwischen Datenspeichervorrichtungen oder -systemen,
wie SymmetrixTM-Datenspeichersystemen von EMC Corporation,
kann beispielsweise durch Verwendung des RDF-Produktes erleichtert
werden, wie es ebenfalls von EMC Corporation bereitgestellt wird.
-
Die
lokale Speichervorrichtung 24 umfasst eine RDF-Adaptereinheit
(RA) 30, und die Fernspeichervorrichtung 26 umfasst
eine RA 32. Die RAs 30, 32 sind an die
RDF-Verbindung 29 angeschlossen und sind ähnlich dem
Host-Adapter 28, werden jedoch zur Datenübertragung
zwischen den Speichervorrichtungen 24, 26 verwendet.
Die in Verbindung mit den RAs 30, 32 verwendete
Software wird unten detaillierter erörtert.
-
Die
Speichervorrichtungen 24, 26 können eine oder mehrere Platten
umfassen, wobei jede einen unterschiedlichen Teil der auf jeder
der Speichervorrichtungen 24, 26 gespeicherten
Daten enthält. 1 zeigt
die Speichervorrichtung 24, welche eine Mehrzahl von Platten 33a, 33b, 33c umfasst,
und die Speichervorrichtung 26, welche eine Mehrzahl von Platten 34a, 34b, 34c umfasst.
Die hier beschriebene RDF-Funktionalität kann angewendet werden, so dass
unter Verwen dung der RDF die Daten für mindestens einen Teil der
Platten 33a–33c der
lokalen Speichervorrichtung 24 auf mindestens einen Teil
der Platten 34a–34c der
Fernspeichervorrichtung 26 kopiert werden. Es ist möglich, dass
andere Daten der Speichervorrichtungen 24, 26 nicht
zwischen den Speichervorrichtungen 24, 26 kopiert
werden und somit nicht identisch sind.
-
Jede
der Platten 33a–33c ist
an eine entsprechende Plattenadaptereinheit (DA) 35a, 35b, 35c angeschlossen,
welche Daten an eine entsprechende der Platten 33a–33c liefert
und Daten von einer entsprechenden der Platten 33a–33c empfängt. Ähnlich wird
eine Mehrzahl von DAs 36a, 36b, 36c der
Fernspeichervorrichtung 26 verwendet, um Daten an entsprechende
der Platten 34a–34c zu
liefern und Daten von entsprechenden der Platten 34a–34c zu
empfangen. Ein Datenpfad existiert zwischen den DAs 35a–35c,
dem HA 28 und der RA 30 der lokalen Speichervorrichtung 24. Ähnlich existiert
ein Datenpfad zwischen den DAs 36a–36c und der RA 32 der Fernspeichervorrichtung 26.
-
Die
lokale Speichervorrichtung 24 umfasst auch einen globalen
Speicher 37, welcher zur Erleichterung der Übertragung
von Daten zwischen den DAs 35a–35c, dem HA 28 und
der RA 30 verwendet werden kann. Der Speicher 37 kann
Parameter von Systemaufrufen, Aufgaben, die von einem oder mehreren
der DAs 35a–35c,
dem HA 28 und der RA 30 auszuführen sind, und einen Cache-Speicher
für von einer
oder mehreren der Platten 33a–33c entnommene Daten
enthalten. Ähnlich
umfasst die Fernspeichervorrichtung 26 einen globalen Speicher 38,
der Parameter von Systemaufrufen, Aufgaben, die von einem oder mehreren
der DAs 36a–36c und
der RA 32 auszuführen
sind, und einen Cache-Speicher für von
einer oder mehreren der Platten 34a–34c entnommene Daten
enthalten kann. Die Verwendung der Speicher 37, 38 ist
unten detaillierter beschrieben.
-
Der
Speicherplatz in der lokalen Speichervorrichtung 24, welcher
den Platten 33a–33c entspricht,
kann in eine Mehrzahl von Laufwerken oder logischen Geräten unterteilt
sein. Die logischen Geräte
(Vorrichtungen) können
dem physischen Speicherplatz der Platten 33a–33c entsprechen
oder nicht. So kann beispielsweise die Platte 33a eine Mehrzahl
von logischen Geräten
enthalten, oder alternativ könnte
ein einziges logisches Gerät
beide Platten 33a, 33b umfassen. Ähnlich kann
der Speicherplatz für
die Fernspeichervorrichtung 26, welche die Platten 34a–34c umfasst,
in eine Mehrzahl von Laufwerken oder logischen Geräten unterteilt
sein, wobei jedes der logischen Geräte einer oder mehr der Platten 34a–34c entsprechen
kann oder nicht.
-
Das
Bereitstellen einer RDF-Abbildung zwischen Teilen der lokalen Speichervorrichtung 24 und der
Fernspeichervorrichtung 26 beinhaltet die Einrichtung eines
logischen Geräts
auf der Fernspeichervorrichtung 26, welches eine Fern-Spiegelung [remote
mirror] für
ein logisches Gerät
auf der lokalen Speichervorrichtung 24 ist. Der Host 22 liest
und schreibt Daten von der bzw. auf die lokale(n) Speichervorrichtung 24,
und die RDF-Abbildung bewirkt, dass abgeänderte Daten von der lokalen
Speichervorrichtung 24 auf die Fernspeichervorrichtung 26 unter
Verwendung der RAs 30, 32 und der RDF-Verbindung 29 übertragen
werden. Beim stationären
Betrieb enthält
das logische Gerät
auf der Fernspeichervorrichtung 26 Daten, welche identisch
sind mit den Daten des logischen Geräts auf der lokalen Speichervorrichtung 24.
Das logische Gerät
auf der lokalen Speichervorrichtung 24, auf welches von
dem Host 22 zugegriffen wird, wird als "R1-Laufwerk" (oder einfach "R1")
bezeichnet, während
das logische Gerät auf
der Fernspeichervorrichtung 26, welches eine Kopie der
Daten auf dem R1-Laufwerk
enthält, "R2-Laufwerk" (oder einfach "R2") genannt wird. So liest
und schreibt der Host Daten von dem bzw. auf das R1-Laufwerk, und
die RDF erledigt das automatische Kopieren und Aktualisieren der
Daten von dem R1-Laufwerk zum R2-Laufwerk.
-
In
manchen Situationen kann es nützlich sein,
zuzulassen, dass der Host 22 RDF-Laufwerke während des
Betriebs des Systems erzeugt und zerstört. Es ist anzumerken, dass
RDF-Laufwerke paarweise erzeugt und zerstört werden können, so dass ein R1/R2-Paar
zerstört
werden kann oder ein R1/R2-Paar erzeugt werden kann. Die Erzeugung oder
Zerstörung
von R1/R2-Paaren kann von dem Host 22 initiiert werden.
Der Host kann einen Multihop-/Multiexecute-Systembefehl an Datenspeichervorrichtungen
senden. Der Multihop-/Multiexecute-Systembefehl ist ein einziger Systembefehl,
der mehrfachen Speichervorrichtungen zugeführt wird und Vorgänge angibt,
die von den mehrfachen Speichervorrichtungen auszuführen sind.
Der Befehl ermöglicht
es, dass ein Hostrechner einen Systemfernaufruf indirekt an eine
oder mehrere Datenspeichervorrichtungen durch Ebenen von anderen
Datenspeichervorrichtungen ausgibt. Der Befehl kann angeben, dass
eine oder mehrere beliebige der Datenspeichervorrichtungen den Befehl
ausführen
sollen. Beispielsweise kann der Host 22 einen Multihop-/Multiexecute-Systembefehl
senden, welcher die Zerstörung
eines bestimmten R1/R2-Paares anfordert, wobei das R1-Laufwerk sich
auf der lokalen Speichervorrichtung 24 und das R2-Laufwerk
auf der Fernspeichervorrichtung 26 befindet, indem jede
der Speichervorrichtungen 24, 26 veranlasst wird,
lokal eine Tabelle abzuändern
(unten detaillierter erörtert), welche
intern von jeder der Speichervorrichtungen 24, 26 verwendet
wird, um die Einrichtung und Verwaltung von RDF-Laufwerken zu regeln.
Die Erzeugung eines R1/R2-Paares beinhaltet die Erzeugung eines
R1-Laufwerks auf einer Speichervorrichtung und die Erzeugung eines
R2-Laufwerks auf einer anderen Speichervorrichtung.
-
Es
ist ferner anzumerken, dass es in einigen Fällen nützlich sein kann, eine RDF-Verbindung
zu einem oder mehreren vorhandenen Laufwerken einzurichten. So kann
beispielsweise ein vorhandenes Quell-Laufwerk unter Verwendung der RDF mit
einem neu erzeugten Ziel-Laufwerk
verbunden werden. Dementsprechend können in der vorlie genden Erörterung
Hinweise auf die Erzeugung von Laufwerken dahingehend aufgefasst
werden, dass sie die Erzeugung von Verbindungen zu vorhandenen Laufwerken
umfassen. Ähnlich
können
Hinweise auf die Zerstörung
von Laufwerken dahingehend aufgefaßt werden, dass sie die einfache
Zerstörung
von RDF-Verbindungen zu diesen, wenn dies angemessen ist, umfassen.
Es ist anzumerken, dass sowohl im Falle der Erzeugung oder Zerstörung neuer
Laufwerke als auch im Falle der einfachen Erzeugung oder Zerstörung der
Verbindungen zu vorhandenen Laufwerken dieselben Tabellen (unten
erörtert),
welche RDF-Verbindungsdaten enthalten, abgeändert werden.
-
Bezugnehmend
auf 2 stellt ein Flussdiagramm 50 Schritte
dar, die in Verbindung mit der Erzeugung oder Zerstörung von
R1/R2-Paaren ausgeführt werden.
Die Verarbeitung beginnt mit einem ersten Schritt 52, wo
ermittelt wird, ob ein Zerstörungsbefehl
ausgegeben wird. Bei einigen Ausführungsformen werden nur Erzeugungs-
oder Zerstörungsbefehle
ausgegeben. Wenn ein Befehl kein Zerstörungsbefehl ist, ist der Befehl
somit ein Erzeugungsbefehl. Wenn in Schritt 52 ermittelt
wird, dass ein Zerstörungsbefehl
ausgegeben wurde, dann geht die Steuerung von Schritt 52 zu
einem Schritt 54, in welchem im Hintergrund ablaufende
Eingabe/Ausgabe-Vorgänge,
wie z. B. im Hintergrund ablaufendes Kopieren, ausgesetzt werden.
Vor der Zerstörung des
R1/R2-Paares ist es nützlich,
zunächst
alle im Hintergrund ablaufenden Eingabe/Ausgabe-Vorgänge auszusetzen.
Bei anderen Ausführungsformen
ist der Schritt 54 nicht notwendig und wird nicht ausgeführt, da
die Zerstörung
der Laufwerke bewirkt, dass im Hintergrund ablaufende Eingabe/Ausgabe-Vorgänge (und
andere Vorgänge,
an denen das R1/R2-Paar beteiligt ist) automatisch aufhören.
-
Auf
Schritt 54 folgt ein Schritt 56, in welchem eine
Zuordnungstabelle auf der dem R1-Laufwerk entsprechenden Speichervorrichtung
abgeändert wird.
Die Zuordnungstabelle enthält
dynamische Informationen über
die RDF-Konfiguration einer Speichervorrichtung. Die Zuord nungstabelle
kann eine zweidimensionale Matrix enthalten, welche durch logische
Geräteidentifizierungen
(zum Beispiel Nummern) und durch Spiegelungszahlen für jedes
der logischen Geräte
indexiert ist. Bei einigen Ausführungsformen
kann jede Vorrichtung bis zu vier Spiegelungen aufweisen. Andere
Ausführungsformen können mehr
als vier Spiegelungen einsetzen. Einträge in der Zuordnungstabelle
können
angeben, ob eine Spiegelung für
eine Vorrichtung eine lokale Spiegelung, ein R1-Laufwerk, ein R2-Laufwerk
oder eine andere Art Spiegelung, wie z. B. ein BCV (Business Continuance
Volume, d. h. Laufwerk ohne Beeinträchtigung des laufenden Betriebs)
oder eine RAID (Redundant Array of Independent Disks, d. h. redundanter
Verbund unabhängiger
Platten)-Spiegelung, ist.
-
In
Schritt 56 wird die Zuordnungstabelle auf der Speichervorrichtung,
welche das R1-Laufwerk enthält,
abgeändert,
um das R1-Laufwerk zu entfernen. Auf Schritt 56 folgt ein
Schritt 58, in welchem die Zuordnungstabelle auf der Speichervorrichtung,
welche das R2-Laufwerk enthält,
abgeändert
wird, um das R2-Laufwerk zu entfernen. Auf Schritt 58 folgt
ein Schritt 60, in welchem das Ergebnis der zuvor ausgeführten Vorgänge (z.
B. Erfolg oder Mißerfolg)
zurückgesendet
wird. Im Anschluss an Schritt 60 ist die Verarbeitung beendet.
-
Wenn
in Schritt 52 ermittelt wird, dass kein Zerstörungsbefehl
ausgegeben wird (und somit ein Erzeugungsbefehl ausgegeben wird),
dann geht die Steuerung von Schritt 52 zu einem Schritt 62,
in welchem das R1- oder das R2-Laufwerk an einem ersten Standort
erzeugt wird. Bei einer Ausführungsform gibt
der Host den Multihop-/Multiexecute-Befehl an eine erste Speichervorrichtung,
wie z. B. die lokale Speichervorrichtung 24, aus; in diesem
Fall wäre
der erste Standort die lokale Speichervorrichtung 24 (d. h.
der erste Standort, der den Befehl empfängt). Bei einer hier dargestellten
Ausführungsform
ist der erste Standort, an dem die Erzeugung eines R1/R2-Paares
versucht wird, die lokale Speichervorrichtung 24, welche
direkt an den Host 22 angeschlossen ist. Die Erzeugung
an dem ersten Standort umfasst die Abänderung der entsprechenden
Zuordnungstabelle. Auf Schritt 62 folgt ein Testschritt 64,
in welchem ermittelt wird, ob die Erzeugung des R1- oder R2-Laufwerks
in Schritt 62 erfolgreich war. Wenn dies nicht der Fall
ist, geht die Steuerung von Schritt 64 zu einem Schritt 66,
in welchem eine Fehlerangabe an den Host 22 zurückgesendet
wird. Im Anschluss an Schritt 66 ist die Verarbeitung beendet.
-
Wenn
im Testschritt 64 ermittelt wird, dass die Erzeugung des
R1- oder R2-Laufwerks
in Schritt 62 erfolgreich war, dann geht die Steuerung
von Schritt 64 zu einem Schritt 68, in welchem
das R1- oder gegebenenfalls das R2-Laufwerk an einem zweiten Standort
erzeugt wird. Die Erzeugung an dem zweiten Standort umfasst die
Abänderung
der entsprechenden Zuordnungstabelle. Der zweite Standort kann die
zweite Speichervorrichtung sein, welche den Befehl empfängt. Bei
einer hier dargestellten Ausführungsform
ist der zweite Standort die Fernspeichervorrichtung 26,
welche einen Befehl von dem Host 22 über die lokale Speichervorrichtung 24 empfängt.
-
Auf
Schritt 68 folgt ein Testschritt 70, in welchem
ermittelt wird, ob die Erzeugung in Schritt 68 erfolgreich
war. Wenn im Testschritt 70 ermittelt wird, daß die Erzeugung
an dem zweiten Standort nicht erfolgreich war, dann geht die Steuerung
von Schritt 70 zu einem Schritt 72, in welchem
der erste Standort, der erzeugt wurde, zerstört wird. Es ist anzumerken, dass
R1- und R2-Laufwerke paarweise erzeugt werden, so dass ein Scheitern
bei der Erzeugung eines der Laufwerke an dem zweiten Standort bewirkt, dass
das Laufwerk, welches an dem ersten Standort erfolgreich erzeugt
wurde, in Schritt 72 zerstört wird. Auf Schritt 72 folgt
ein Schritt 74, in welchem ein Fehler an den Host 22 zurückgesendet
wird auf ähnliche Weise,
wie ein Fehler in Schritt 66 zurückgesendet wird, wie oben erörtert. Im
Anschluss an Schritt 74 ist die Verarbeitung beendet.
-
Wenn
im Testschritt 70 ermittelt wird, dass die Erzeugung des
R1- oder R2-Laufwerks
an dem zweiten Standort in Schritt 68 erfolgreich war,
geht die Steuerung von Schritt 70 zu einem Schritt 75,
in welchem ungültige
Spuren für
jede der Speichervorrichtungen 24, 26 festgelegt
werden. Die ungültigen Spuren
werden verwendet, um Unterschiede zwischen dem R1- und dem R2-Laufwerk
anzuzeigen. In Fällen,
in denen das R1-Laufwerk die anfänglichen Daten
enthält,
werden sämtliche
Spuren des R1-Laufwerks auf ungültig
gesetzt, was angibt, dass alle R1-Daten von den R2-Daten abweichen
und daher von R1 nach R2 kopiert werden müssen. Wenn das R2-Laufwerk
die zu verwendenden anfänglichen Daten
enthält,
dann werden sämtliche
Spuren des R2-Laufwerks auf ungültig
gesetzt, und ein Sync-Befehl wird an die das R1-Laufwerk enthaltende
Speichervorrichtung geliefert, um zu veranlassen, dass die Spuren
der dem R1-Laufwerk entsprechenden lokalen Spiegelung ungültig werden,
und so ein im Hintergrund ablaufendes Kopieren von Daten von R2 nach
R1 zu initiieren. Auf Schritt 75 folgt ein Schritt 78,
in welchem eine Nicht-Bereit-Angabe für das R1-Laufwerk gelöscht wird,
was angibt, dass RDF-Vorgänge
zwischen R1 und R2 beginnen können.
Es ist anzumerken, dass die Nicht-Bereit-Angabe sich auf die R1/R2-Verbindung
bezieht und nicht notwendigerweise auf die Fähigkeit von R1 und/oder R2,
Daten von einem Host anzunehmen. Es ist anzumerken, dass Daten in
von Spuren unterschiedlichen Einheiten organisiert werden können; in
diesem Fall würden
die hier offenbarten Vorgänge
in diesen wie auch immer gearteten Einheiten ausgeführt, welche anstelle
von Spuren verwendet werden.
-
Auf
Schritt 78 folgt ein Schritt 79, in welchem eine
Angabe, dass der Vorgang erfolgreich war, an den Host 22 zurückgesendet
wird. Im Anschluss an Schritt 79 ist die Verarbeitung beendet.
Es ist anzumerken, dass das Festsetzen von ungültigen Spuren und das Festsetzen
und Löschen
des Gerät-nicht-bereit-Status,
oben erörtert,
in einer anderen Reihenfolge als der in 2 gezeigten
und oben erörterten ausgeführt werden
kann, vorausgesetzt, die Einstellungen werden während des Erzeugungsvorgangs und
danach in einem geeigneten Zustand erhalten.
-
Bei
einigen Ausführungsformen
kann es nützlich
sein, die R1/R2-Laufwerke
in einer bestimmten Reihenfolge zu erzeugen und zu zerstören. Beispielsweise
kann es nützlich
sein, zunächst
das R2-Laufwerk
zu erzeugen, gefolgt von dem R1-Laufwerk. Ähnlich kann es nützlich sein,
zunächst
das R1-Laufwerk zu zerstören,
gefolgt von der Zerstörung
des R2-Laufwerks. Alternativ können
die Laufwerke in einer beliebigen Reihenfolge erzeugt und zerstört werden,
während
Vorgänge
gesteuert werden können
durch das Setzen einer Nicht-Bereit-Angabe für das R1-Laufwerk, wobei die
Nicht-Bereit-Angabe für
das R1-Volumen steuert, ob Vorgänge
[operations] stattfinden. Somit können die R1- und R2-Laufwerke
in einer beliebigen Reihenfolge erzeugt werden, jedoch wird die
Nicht-Bereit-Angabe des R1-Laufwerks
nicht auf bereit gesetzt, wenn nicht und bis sowohl R1 als auch
R2 erzeugt sind. Ähnlich ermöglicht das
Setzen der Nicht-Bereit-Angabe
für R1
in einem ersten Schritt, dass folgende Schritte zur Zerstörung von
R1 und R2 in einer beliebigen Reihenfolge stattfinden.
-
Bei
einigen Ausführungsformen
kann es nützlich
sein, zu veranlassen, dass der Befehl, welcher das R1/R2-Paar erzeugt,
die jeweiligen Laufwerke angibt, die sowohl für das R1-Laufwerk als auch
für das
R2-Laufwerk verwendet
werden sollen. Das heißt,
der Host 22 kann ein vorhandenes logisches Gerät von der
lokalen Speichervorrichtung 24 als R1-Laufwerk auswählen und
kann außerdem
ein vorhandenes logisches Gerät
von der Fernspeichervorrichtung 26 als R2-Laufwerk auswählen. Bei
einer alternativen Ausführungsform
kann es möglich
sein, zu veranlassen, dass die Fernspeichervorrichtung 26 ein
beliebiges ungenutztes logisches Gerät als R2-Laufwerk auswählt. Als
weitere Alternative kann eine API (Application Programming Interface
= Anwendungsprogrammierschnittstelle) auf eine der Speichervorrich tungen 24, 26 und/oder
den Host 22 gelegt werden, um das R2-Laufwerk in Fällen zu wählen, in denen der Systembefehl
eine spezifische Laufwerksidentifikation für das R2-Laufwerk erwartet.
-
Es
ist außerdem
anzumerken, dass Situationen auftreten können, in denen die anfänglichen
Daten für
ein neu erzeugtes R1/R2-Paar auf dem R2-Laufwerk gefunden werden.
Wenn beispielsweise an die Fernspeichervorrichtung 26 ein
Host (nicht gezeigt) angeschlossen ist, der versagt, kann es nützlich sein,
das System neu zu starten, wobei der Host 22 an die lokale
Speichervorrichtung 24 angeschlossen ist. Jedoch können sich
in diesem Fall die anfänglichen
Daten zum Starten auf dem R2-Laufwerk befinden (d. h. auf der Fernspeichervorrichtung 26).
So werden beim Start die anfänglichen
Daten von der R2-Vorrichtung
auf die R1-Vorrichtung kopiert, wonach der Host 22 normalen
RDF-Betrieb aufrechterhält,
wobei die R1-Vorrichtung sich auf der lokalen Speichervorrichtung 24 befindet
und die R2-Vorrichtung sich auf der Fernspeichervorrichtung 26 befindet.
Das Kopieren von der R2-Vorrichtung auf die R1-Vorrichtung (oder
von einer R1-Vorrichtung
auf eine R2-Vorrichtung) kann durch Verwendung eines im Hintergrund
ablaufenden Kopiervorgangs erfolgen.
-
Bezugnehmend
auf 3 stellt ein Flussdiagramm 80 den Betrieb
des Systems dar, nachdem ein R1/R2-Paar initialisiert wurde, aber
vor der Beendigung des im Hintergrund ablaufenden Kopiervorgangs.
Es ist anzumerken, dass der Host 22 von einem bzw. auf
ein R1-Laufwerk lesen und schreiben kann, auch wenn der im Hintergrund
ablaufende Kopiervorgang nicht beendet ist.
-
Die
Verarbeitung beginnt mit einem anfänglichen Testschritt 82,
in welchem ermittelt wird, ob das R2-Laufwerk die anfänglichen
Daten enthält.
Wenn dies nicht der Fall ist, dann geht die Steuerung von dem Testschritt 82 zu
einem Schritt 84, in welchem das R1-Laufwerk für den von
dem Host 22 angeforderten Lese/Schreib-Vorgang verwendet
wird.
-
Wenn
im Testschritt 82 ermittelt wird, daß angegeben ist, dass das R2-Laufwerk die anfänglichen Daten
enthält,
dann geht die Steuerung vom Testschritt 82 zu einem Testschritt 86,
in welchem ermittelt wird, ob die Spur, auf die geschrieben oder
von der gelesen wird, ungültig
ist. Eine ungültige
Spur zeigt an, dass die auf dem R2-Laufwerk befindlichen anfänglichen
Daten noch nicht auf das R1-Laufwerk zurückkopiert wurden. Das Festlegen
ungültiger
Spuren wird oben in Verbindung mit 1 erörtert. So geht,
wenn im Testschritt 86 ermittelt wird, dass die Spur, auf
die der Host 22 schreibt oder von der er liest, ungültig ist,
die Steuerung von Schritt 86 zu einem Schritt 88,
in welchem das R2-Laufwerk
für den Lese/Schreib-Vorgang
unter Verwendung von RDF verwendet wird. Es ist anzumerken, dass
in einigen Fällen
weniger als eine ganze Spur von dem Host beschrieben wird. So ist
es bei einer ungültigen
Spur, bei der R2 die anfänglichen
Daten enthält,
nützlich, zu
veranlassen, dass die Daten von dem Host 22 an das R2-Laufwerk
geliefert werden. Im Anschluss an Schritt 88 ist die Verarbeitung
beendet. Wenn alternativ im Testschritt 86 ermittelt wird,
dass die Spur, von der gelesen oder auf die geschrieben wird, nicht ungültig ist,
dann geht die Steuerung vom Testschritt 86 zu dem Schritt 84,
in welchem das R1-Laufwerk in einer herkömmlichen Weise verwendet wird.
Im Anschluss an Schritt 84 ist die Verarbeitung beendet.
-
Bezugnehmend
auf 4 zeigt ein Diagramm einen globalen Speicher,
welcher den Speicher 37 der lokalen Speichervorrichtung 24 oder
den Speicher 38 der Fernspeichervorrichtung 26 darstellen
könnte.
Der globale Speicher umfasst einen Speicherplatz für statische
Konfigurationsdaten 92 und einen Speicherplatz für dynamische
Konfigurationsdaten 94, wie z. B. die oben erörterte Zuordnungstabelle.
Statische Konfigurationsdaten 92 umfassen Konfigurationsinformationen
für die
Speichervorrichtung, welche in der Fabrik oder von einem Techniker eingerichtet
werden. Die statischen Konfigurationsdaten 92 können in
einer Datei bereitgestellt werden, die in einen globalen Halbleiterspeicher
gelesen wird, oder sie können
in nicht-flüchtigen
Teilen eines Halbleiterspeichers bereitgestellt werden.
-
Die
dynamischen Konfigurationsdaten 94 stellen die Konfiguration
des entsprechenden Systems dar, welche ausgehend von den statischen
Konfigurationsdaten 92 abgeändert wurde. So können beispielsweise
die statischen Konfigurationsdaten 92 angeben, dass bestimmte
Laufwerke ein R1/R2-RDF-Paar bilden, wogegen die dynamischen Konfigurationsdaten 94 den
statischen Konfigurationsdaten 92 vorrangig sind, indem
sie angeben, dass das bestimmte R1/R2-RDF-Paar im Folgenden zerstört wurde.
Die dynamischen Konfigurationsdaten 94 können auch
auf einer Platte gespeichert und in einen elektronischen Speicher
eingelesen werden und/oder können
in einem elektronischen Speicher gespeichert werden, welcher nicht-flüchtig ist.
Bei einigen Ausführungsformen
können
die dynamischen Konfigurationsdaten 94 den statischen Konfigurationsdaten 92 vorrangig
sein. Bei anderen Ausführungsformen
sind die dynamischen Konfigurationsdaten 94 lediglich zusätzlich und
können
nur in Fällen verwendet
werden, in denen für
ein Element kein Eintrag in den statischen Konfigurationsdaten 92 vorhanden
ist.
-
Bezugnehmend
auf 5 stellt ein Flussdiagramm 100 die Bestimmung
einer Konfiguration eines bestimmten logischen Geräts dar.
Es ist anzumerken, dass jeder Lese- oder Schreibzugriff von einem
bzw. auf ein logischen/s Gerät
die Kenntnis der Konfiguration des Geräts verwendet, um zu ermitteln, ob
beispielsweise das Gerät/die
Vorrichtung Bestandteil eines R1/R2-Paars ist.
-
Die
Verarbeitung beginnt mit einem ersten Schritt 102, in welchem
ermittelt wird, ob ein Eintrag für
das logische Gerät
in den dynamischen Konfigurationsdaten 94 vorhanden ist.
Wenn dies nicht der Fall ist, dann geht die Steuerung von Schritt 102 zu einem
Schritt 104, in welchem die statischen Konfigurationsdaten 92 konsultiert
werden, um die Konfiguration des Geräts zu bestimmen. Es ist anzumerken, dass
es für
jedes logische Gerät
möglich
ist, eine lokale, und somit leicht zugreifbare, Kopie der statischen
Konfigurationsdaten 92 zu haben, da sich die statischen
Konfigurationsdaten 92 definitionsgemäß nicht ändern. Im Anschluss an Schritt 104 ist
die Verarbeitung beendet.
-
Wenn
im Testschritt 102 ermittelt wird, dass ein Eintrag für das logische
Gerät in
den dynamischen Konfigurationsdaten 94 vorhanden ist, dann geht
die Steuerung vom Testschritt 102 zu einem Schritt 106,
in welchem die dynamischen Konfigurationsdaten 94 verwendet
werden, um die Konfiguration des logischen Geräts zu bestimmen. Es ist anzumerken,
dass es als Alternative möglich
ist, zunächst die
statischen Konfigurationsdaten 92 zu prüfen und dann zu prüfen, ob
ein vorrangiger Eintrag in den dynamischen Konfigurationsdaten 94 vorhanden
ist.
-
Bezugnehmend
auf 6 zeigt ein Diagramm eine Speichervorrichtung 110 mit
mehr Details. Die Speichervorrichtung 110 umfasst eine Mehrzahl
von Host-Adaptern (HA) 112–114 und eine Mehrzahl
von Plattenadaptern (DA) 116–118. Jeder der Plattenadapter 116–118 ist
an eine entsprechende einer Mehrzahl von Platten 120–122 angeschlossen.
Die Speichervorrichtung 110 umfasst auch einen globalen
Speicher 124, einen RDF-Adapter (RA) 126 und eine
Außenverbindung 128 zu
dem RA 126. Ein Bus 130 verbindet die HAs 112–114,
die DAs 116–118,
den globalen Speicher 124 und den RA 126. Jeder
der HAs 112–114 umfasst
eine Verbindung zum Anschluss an einen Host (nicht gezeigt).
-
Für jeden
Lese- und Schreib-Vorgang, der von einem der an einen der HAs 112–114 angeschlossenen
Hosts ausgeführt
wird, bestimmt der entsprechende der HAs 112–114,
wo die Daten anzuordnen sind. Wenn beispielsweise die Speichervorrichtung 110 ein
lokales Laufwerk eines R1/R2-Paares umfasst, muss der bestimmte
der HAs 112–114, der
die Daten von dem Host empfängt,
in der Lage sein, die Daten zu dem richtigen der Plattenadapter 116–118 zu
leiten, um die Daten an das R1-Laufwerk zu liefern, und muss auch
in der Lage sein, entsprechend die Daten an den RA 126 zu
leiten, der die Daten an das R2-Laufwerk auf einer anderen Speichervorrichtung
(nicht gezeigt) liefert. Zusätzlich
greifen in Verbindung mit einem im Hintergrund ablaufenden Kopiervorgang
die DAs 116–118 auf
Informationen zu, welche die Quelle und das Ziel der Daten angeben.
So würden
beispielsweise, wenn ein R1/R2-Paar zwischen der Speichervorrichtung 110 und
einer anderen Fernspeichervorrichtung (nicht gezeigt) eingerichtet
wird, dann die DAs 116–118 das im
Hintergrund ablaufende Kopieren von Daten von dem die anfänglichen
Daten enthaltenden Laufwerk (R1 oder R2) zu dem anderen Laufwerk
unterstützen. In
einem derartigen Fall greifen die DAs 116–118 auf Informationen
zu, welche angeben, wohin die Daten geleitet werden sollten (d.
h. welches Laufwerk das entsprechende der Laufwerke des R1/R2-Paares ist). Ähnlich ist
es nützlich,
dass der RA 126 auf die Konfigurationsinformationen für die Laufwerke
zugreift, um in der Lage zu sein, beispielsweise eingehende Daten
zu verarbeiten.
-
Entsprechend
ist es nützlich,
dass die HAs 112–114,
die DAs 116–118 und
der RA 126 in der Lage sind, Zugriff auf genaue Informationen
zu haben, welche die Einrichtungskonfiguration der Laufwerke auf
der Speichervorrichtung 110 angeben. Ein Weg zum Erlangen
der Informationen ist das Lesen der dynamischen Konfigurationsdaten 94 von
dem globalen Speicher 124 für jeden Lese- oder Schreib-Vorgang
und dann, wenn die Vorrichtung, für welche die Anfrage getätigt wird,
nicht in den dynamischen Konfigurationsdaten 94 gefunden
wird, auf die statischen Konfigurationsdaten 92 zuzugreifen.
Jedoch könnte
der Zugriff auf den globalen Speicher für jeden Eingabe/Ausgabe-Vorgang
sich nachteilig auf die Leistung der Speichervorrichtung 110 auswirken. Dementsprechend
wird ein effizienterer Mechanismus zur Bestimmung der Konfiguration
der Geräte der
Speichervorrichtung 110 bereitgestellt.
-
Bezugnehmend
auf 7 stellt ein Diagramm 150 einen Mechanismus
zur Verringerung der Anzahl der zur Bestimmung von Konfigurationsdaten verwendeten
Zugriffe auf den globalen Speicher dar. Ein Bereitschafts-Puffer 152 stellt
Daten dar, auf welche jedes Mal zugegriffen wird, wenn ein Eingabe/Ausgabe-Vorgang
ausgeführt
wird. Der Bereitschafts-Puffer 152 gibt nützliche
Eingabe/Ausgabe-bezogene Informationen an, wie z. B. den Zustand
der Vorrichtungen/Geräte
und/oder den Zustand des Systems. Somit wird auf den Bereitschafts-Puffer 152 für jeden
Eingabe/Ausgabe-Vorgang zugegriffen.
-
Der
Bereitschafts-Puffer 152 umfaßt ein Änderungsnummern-Feld 154,
welches bei einigen Ausführungsformen
ein Datenbyte ist, welches jedes Mal, wenn eine Vorrichtungskonfiguration
sich geändert
hat, inkrementiert wird. So kann eine einen Eingabe/Ausgabe-Vorgang
ausführende
Vorrichtung das Änderungsnummern-Feld 154 prüfen, um
zu ermitteln, ob eine weitere Anfrage notwendig ist.
-
Auf
einen Satz Bytes 156 kann zugegriffen werden als Reaktion
auf eine Änderung
des Änderungsnummern-Feldes 154.
Ein bestimmtes Byte 158 aus dem Satz Bytes 156 könnte verwendet
werden, um eine Veränderung
bei der dynamischen RDF-Konfiguration für die Speichervorrichtung anzuzeigen.
So kann die Kombination des Bereitschafts-Puffers 152 und des Satzes
Bytes 156 verwendet werden, um die Zugriffe auf den globalen Speicher 124 jedes
Mal, wenn ein Eingabe/Ausgabe-Vorgang ausgeführt wird, zu minimieren.
-
Bezugnehmend
auf 8 stellt ein Flussdiagramm 170 Schritte
dar, welche in Verbindung mit der Verwendung des Bereitschafts-Puffers 152 und
des Satzes Bytes 156 ausgeführt werden. Die Verarbeitung
beginnt mit einem ersten Schritt 172, in welchem eine einen
Einga be/Ausgabe-Vorgang ausführende Vorrichtung
ermittelt, ob das Bereitschafts-Pufferfeld 154 verändert (z.
B. inkrementiert) wurde. Wenn in Schritt 172 ermittelt
wird, daß das
Bereitschafts-Pufferfeld nicht verändert wurde, dann geht die
Steuerung von Schritt 172 zu einem Schritt 174,
in welchem die Vorrichtung, wie z. B. einer der HAs 112–114,
einer der DAs 116–118 und/oder
der RA 126, lokal gespeicherte Daten verwendet, um Konfigurationsinformationen
zu bestimmen. Das heißt, wenn
das Änderungsnummern-Feld 154 gleich
einer zuvor beobachteten Version des Änderungsnummern-Feldes 154 ist,
so gibt dies an, dass die RDF-Konfiguration keine Änderungen
erfahren hat. Somit geht die Steuerung von Schritt 172 zu
dem Schritt 174, in welchem eine lokal gespeicherte Kopie der
Konfigurationsdaten von der den Eingabe/Ausgabe-Vorgang ausführenden
Vorrichtung verwendet werden kann, um zu ermitteln, wie bestimmte
Daten zu bearbeiten sind. Im Anschluss an Schritt 174 ist die
Verarbeitung beendet.
-
Wenn
im Testschritt 172 ermittelt wird, dass sich das Änderungsnummern-Feld 154 verändert hat,
dann geht die Steuerung von Schritt 172 zu einem Schritt 176,
in welchem der Satz Bytes 156 entnommen wird. Der Satz
Bytes 156 kann beispielsweise in dem globalen Speicher 124 oder
in einem anderen Speicher, wie z. B. einem nicht-flüchtigen
elektronischen Speicher oder auf einer Platte, gespeichert sein.
-
Auf
Schritt 176 folgt ein Testschritt 178, in welchem
ermittelt wird, ob das Byte 158 in dem Satz Bytes 156,
welches einer RDF-Konfigurationsveränderung
entspricht, geändert
(z. B. inkrementiert) wurde. Wenn nicht, dann geht die Steuerung
von Schritt 178 zu Schritt 174, oben erörtert, in
welchem die gespeicherte lokale Kopie der Konfigurationsdaten verwendet
wird, um die RDF-Konfiguration zu bestimmen. Im Anschluss an Schritt 174 ist
die Verarbeitung beendet.
-
Wenn
im Testschritt 178 ermittelt wird, dass sich die RDF-Konfiguration geändert hat,
dann geht die Steuerung von Schritt 178 zu einem Schritt 180, in
welchem auf die dynamischen Konfigurationsdaten 94 in dem
globalen Speicher 124 zugegriffen wird. Auf Schritt 180 folgt
ein Schritt 182, in welchem die gespeicherte lokale Kopie
der Konfigurationsdaten mit der neuen Version der Daten von dem
globalen Speicher 124 aktualisiert wird. Auf Schritt 182 folgt
der Schritt 174, in welchem die lokal gespeicherte Version
der Konfigurationsdaten (welche gerade aktualisiert wurde) von der
Vorrichtung verwendet wird, um die RDF-Konfiguration zu bestimmen.
Im Anschluss an Schritt 174 ist die Verarbeitung beendet.
-
Bei
einigen Ausführungsformen
ist es möglich,
auch einen im Hintergrund ablaufenden Mechanismus aufzunehmen, der
periodisch auf die dynamischen Konfigurationsdaten von der Zuordnungstabelle
zugreift und die lokale Kopie der Konfigurationsdaten in der Speicherung
für jede
Vorrichtung aktualisiert. So kann jede Vorrichtung durch diese im
Hintergrund ablaufende Aufgabe aktualisiert werden, ohne dass zuerst
ein Eingabe/Ausgabe-Vorgang ausgeführt werden muss.
-
Es
ist anzumerken, dass der hier erörterte Mechanismus
zur Verwendung von Änderungsnummern
zur Steuerung der Zugriffe auf den globalen Speicher bei der Bestimmung
der RDF-Konfiguration des Systems ebenfalls auf andere Systemparameter, wie
z. B. die BCV-Konfiguration,
angewendet werden kann. Ein BCV (Business Continuance Volume) kann eine
konsistente, synchronisierte Kopie von Daten von einer anderen Vorrichtung
enthalten, welche zur Verwendung beispielsweise mit Host-Anwendungen konfiguriert
ist. Die BCV-Kopie der Daten kann unabhängig durch eine andere Anwendung
verwendet werden, um auf die Datenkopie einzuwirken, während zugelassen
wird, dass der Host kontinuierliche Datenvorgänge auf die andere Vorrichtung
ausführt.
-
Bezugnehmend
auf 9 stellt ein Flussdiagramm 50' eine alternative
Ausführungsform
zu der in Verbindung mit dem Flussdiagramm 50 in 2 beschriebenen
Ausführungsform
dar. Das Flussdiagramm 50 in 2 zeigt
ein System, in welchem zwei Befehle, Erzeugen und Zerstören, vorhanden sind.
Das durch das Flussdiagramm 50' in 9 dargestellte
System sieht zusätzlich
zu den oben erörterten
Erzeugungs- und Zerstörungsbefehlen
einen dritten Befehl vor, der R1 und R2 austauscht. Der Austausch
von R1 und R2 kann durch Verwendung eines einzigen Befehls ausgeführt werden,
welcher veranlasst, dass das R1-Laufwerk zum R2-Laufwerk wird, und
veranlasst, dass das R2-Laufwerk
zum R1-Laufwerk wird. Dies kann nützlich sein in Fällen, in
denen beispielsweise ein an eine lokale Speichervorrichtung angeschlossener
Host durch einen unterschiedlichen Host ersetzt wird, der an eine
entsprechende Fernspeichervorrichtung angeschlossen ist. Der Befehl
kann von dem Host geliefert werden. Der Host kann einen Multihop-/Multiexecute-Systembefehl senden,
wie auch an anderer Stelle hier beschrieben. Die Verarbeitung beginnt
mit einem ersten Schritt 52', in
welchem ermittelt wird, ob ein Zerstörungsbefehl ausgegeben wurde.
Wenn dies der Fall ist, dann geht die Steuerung von Schritt 52' zum Schritt 54,
welcher oben in Verbindung mit dem Flussdiagramm 50 in 2 erörtert wird.
Wenn andererseits in Schritt 52' ermittelt wird, dass kein Zerstörungsbefehl
ausgegeben wurde, dann geht die Steuerung von Schritt 52' zu einem Schritt 53,
in welchem ermittelt wird, ob ein Erzeugungsbefehl ausgegeben wurde.
Wenn ein Erzeugungsbefehl ausgegeben wurde, geht die Steuerung von
Schritt 53 zum Schritt 62, welcher oben in Verbindung
mit dem Flussdiagramm 50 in 2 erörtert ist.
-
Wenn
im Testschritt 53 ermittelt wird, dass kein Erzeugungsbefehl
ausgegeben wurde, dann wurde ein R1/R2-Austauschbefehl ausgegeben.
Das heißt,
bei einem System mit drei Befehlen sieht ein Eliminierungsprozess
vor, dass wenn in Schritt 52' ermittelt
wird, dass kein Zerstörungsbefehl
ausgegeben wurde, und wenn in Schritt 53 ermittelt wird,
daß kein
Erzeugungsbefehl ausgegeben wurde, dann ein R1/R2-Austauschbefehl ausgegeben
wurde. Alternativ kann ein bestimmter Teil eines Programmcodes auf
der Basis des empfangenen Befehls ausgeführt werden, welcher ein R1/R2-Austauschbefehl
sein könnte.
Für den
R1/R2-Austauschbefehl geht die Steuerung von Schritt 53 zu
einem Schritt 192, in welchem der Vorrichtung-nicht-bereit-Merker
[device not ready flag] für
R1 gesetzt wird. Das Setzen des Vorrichtung-nicht-bereit-Merkers
für R1
in Schritt 192 bewirkt, dass RDF-Vorgänge
für das
R1/R2-Paar aufhören.
Auf den Schritt 192 folgt ein Schritt 194, in
welchem ein Eintrag für
die Zuordnungstabelle, welche der das R1-Laufwerk enthaltenden Speichervorrichtung
entspricht, und ein Eintrag für
die Zuordnungstabelle, welche der das R2-Laufwerk enthaltenden Speichervorrichtung
entspricht, beide abgeändert werden,
so dass das R1-Laufwerk zum R2-Laufwerk wird und umgekehrt. Auf
Schritt 194 folgt ein Schritt 196, in welchem
das Vorrichtung-nicht-bereit-Bit
für die
neue R1-Vorrichtung gelöscht
wird. Das Löschen des
Vorrichtung-nicht-bereit-Bits für
das R1-Laufwerk in Schritt 196 ermöglicht es, dass RDF-Vorgänge wiederaufgenommen
werden. Wenn jedoch die RDF-Vorgänge
wiederaufgenommen werden, ist das vorherige R2-Laufwerk nun das
R1-Laufwerk, und das vorherige R1-Laufwerk ist nun das R2-Laufwerk. Auf
Schritt 196 folgt ein Schritt 198, in welchem
das Ergebnis der Vorgänge,
welche dem Befehl zum Austausch von R1 und R2 entsprechen, (d. h.
Erfolg oder Misserfolg) an den Host zurückgesendet werden. Im Anschluss
an Schritt 198 ist die Verarbeitung beendet.
-
Es
ist anzumerken, dass bei dem hier offenbarten System der Host 22 eine
allein operierende [standalone] Rechenvorrichtung, Teil eines Netzwerks,
eine andere Speichervorrichtung, ein Computer mit einigen Speicherfähigkeiten
und/oder eine beliebige Vorrichtung sein kann, welche in der Lage
ist, die hier offenbarte Funktionalität bereitzustellen. Ähnlich kann
das hier offenbarte System mit einer beliebigen geeigneten, als
lokale Speichervorrichtung 24 verwendeten Vorrichtung umgesetzt
werden, einschließlich
möglicherweise
einer weiteren Rechenvorrichtung, einer Netzwerkverbindung, etc.,
welche konfigu riert ist, um die lokale Speichervorrichtung 24 zu
emulieren und/oder auf andere Weise die hier offenbarte Funktionalität bereitzustellen.
-
Auch
wenn die Erfindung in Verbindung mit mehreren Ausführungsformen
offenbart wurde, werden Abänderungen
derselben für
Fachleute leicht ersichtlich sein.
-
Gemäß einer
Ausführungsform
kann ein Verfahren zur Umkehr eines Kommunikationspfades zwischen
einem ersten Laufwerk 33a–c auf einer ersten
Speichervorrichtung 24 und einem zweiten Laufwerk 34a–c auf
einer zweiten Speichervorrichtung 26 die folgenden Merkmale
umfassen:
Kommunikation zwischen dem ersten 33a–c und zweiten 34a–c Laufwerk;
Aussetzen der Kommunikation zwischen dem ersten 33a–c und
zweiten 34a–c Laufwerk,
während
die Vorgänge
für andere
Laufwerke der Speichervorrichtungen aufrechterhalten werden;
Veranlassen,
dass das erste Laufwerk 33a–c von einem Quell-Laufwerk in ein Ziel-Laufwerk
umgewandelt wird, ohne das erste Laufwerk 33a–c zu
zerstören;
Veranlassen,
dass das zweite Laufwerk 34a–c von einem Ziel-Laufwerk in ein Quell-Laufwerk
umgewandelt wird, ohne das zweite Laufwerk 34a–c zu zerstören; und
Wiederaufnahme
der Kommunikation zwischen dem ersten 33a–c und
dem zweiten 34a–c Laufwerk.
-
Das
Veranlassen der Umwandlung des ersten Laufwerks 33a–c von
einem Quell-Laufwerk in ein Ziel-Laufwerk kann die Abänderung
einer Tabelle der ersten Speichervorrichtung 24 umfassen.
Das Veranlassen der Umwandlung des zweiten Laufwerks 34a–c von
einem Quell-Laufwerk
in ein Ziel-Laufwerk kann die Abänderung
einer Tabelle der zweiten Speichervorrichtung 26 umfassen.
Das Aussetzen der Kom munikation kann das Versetzen des ersten Laufwerks 33a–c in
einen Nicht-Bereit-Zustand umfassen. Die Wiederaufnahme der Kommunikation
kann das Versetzen des zweiten Laufwerks 34a–c in
einen Bereit-Zustand
umfassen.
-
Das
genannte Verfahren kann ferner das Zurückgeben eines Ergebnisses umfassen,
welches die erfolgreiche Umkehr des Kommunikationspfades angibt.
-
Gemäß einer
Ausführungsform
kann ein Verfahren zur Verwaltung von Laufwerken auf Speichervorrichtungen
die Ausführung
des Verfahrens wie oben beschrieben bei Empfang eines Befehls umfassen,
welcher die Umkehr eines Kommunikationspfades zwischen dem genannten
ersten Laufwerk 33a–c auf
einer ersten Speichervorrichtung 24 und einem zweiten Laufwerk 34a–c auf
einer zweiten Speichervorrichtung 26 anfordert. Der Befehl
kann ein einziger Multihop-, Multiexecute-Befehl (Mehrsprung-, Mehrfachausführungs-Befehl)
sein, der die Ausführung von
Vorgängen
auf der ersten 24 und zweiten 26 Speichervorrichtung
veranlasst.
-
Gemäß einer
Ausführungsform
kann ein Computerprogrammprodukt, welches einen Kommunikationspfad
zwischen einem ersten Laufwerk 33a–c auf einer ersten
Speichervorrichtung 24 und einem zweiten Laufwerk 34a–c auf
einer zweiten Speichervorrichtung 26 umkehrt, ausführbaren
Programmcode zum Ausführen
des Verfahrens wie oben beschrieben umfassen.