-
Hintergrund der Erfindung
-
1. Technisches Gebiet
-
Diese
Anwendung bezieht sich auf Computer-Speichervorrichtungen und insbesondere
auf ein Verfahren und eine Einrichtung zur Bestimmung von Vorrichtungseigenschaften
für eine
Datenspeichervorrichtung, wie in den Präambeln der Ansprüche 1 und
7 dargestellt.
-
2. Beschreibung des Standes
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, daß mehreren
Host-Systemen den Zugriff auf die einzige Speichervorrichtung ermöglicht wird,
können
die Host-Systeme darin gespeicherte Daten gemeinsam nutzen.
-
US-Patent
Nr. 5,895,493 offenbart ein Verfahren und eine zugehörige Einrichtung
zur Verwaltung von Management-Informationen, welche zu einem Speicher-Subsystem
gehören,
das an eine Vielzahl von Host-Systemen angeschlossen ist. Konfigurations- und andere Management-Informationen
in Bezug auf ein Speicher-Subsystem sind in einem reservierten Bereich
des Speicher-Subsystems gespeichert, welcher als Host- Speicherbereich (HSR)
bezeichnet wird. Die Konfigurations-Informationen werden beim Speichern
in dem HSR durch das Speicher-Subsystem mit einem Zeitstempel versehen. Ein
Host-System, welches die Konfiguration oder den Zustand des Speicher-Subsystems
verändert, schreibt
eine geeignete Nachricht an den HSR, um die Veränderung der Management-Information
anzuzeigen. Alle Host-Systeme fragen periodisch den HSR ab (pollen
den HSR), um den gegenwärtigen Verwaltungszustand
und Konfigurationsinformationen zu ermitteln. Während des Abrufens (Pollens) wird
ein Zeitstempel von dem HSR abgerufen und mit einem lokal in einem
der Host-Systeme
gespeicherten Zeitstempelwert verglichen, um zu ermitteln, ob die
in dem HSR gespeicherten Informationen neuer sind als die lokal
gespeicherten Informationen. Wenn dies der Fall ist, werden die
lokalen Informationen aktualisiert.
-
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 daß 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,
daß 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.
-
Zusammenfassung
der Erfindung
-
Ziel
der Erfindung ist die Verbesserung der Kommunikation zwischen Speichervorrichtungen, insbesondere
die Verringerung der Anzahl der Zugriffe auf den globalen Speicher.
Dieses Ziel führt
zu der Erfindung, wie sie in den Ansprüchen 1 und 7 definiert ist.
-
Weitere
Verbesserungen werden durch die Unteransprüche bereitgestellt.
-
Das
dynamische Erzeugen eines Kommunikationspfads zwischen ersten und
zweiten Speichervorrichtungen beinhaltet die Erzeugung einer Verbindung
zu einem Quell-Laufwerk
auf der ersten Speichervorrichtung und die Angabe, daß 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, daß 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 Angabe, daß das Quell-Laufwerk bereit ist, Daten auf dem Kommunikationspfad zu überragen.
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 Anschluß 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, daß 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, daß 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, daß 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, daß 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, daß 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.
-
Erfindungsgemäß umfaßt das dynamische Erzeugen
eines Kommunikationspfads zwischen ersten und zweiten Speichervorrichtungen
ferner 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, daß das
Quell-Laufwerk nicht bereit ist, Daten auf dem Kommunikations pfad
zu übertragen,
und die anfängliche
Angabe, daß Teile
von einem der folgenden, nämlich
dem Ziel-Laufwerk und dem Quell-Laufwerk, 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, daß 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 dem 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 Anschluß 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, daß Teile des Ziel-Laufwerks
keine gültigen Daten
enthalten. Das dynamische Erzeugen eines Kommunikationspfads zwischen
ersten und zweiten Speichervorrichtungen kann ferner nach der Angabe, daß 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,
daß Teile
des Quell-Laufwerks keine gültigen
Daten enthalten. Das dynamische Erzeugen eines Kommunikationspfads
zwischen ersten und zweiten Speichervorrichtungen kann ferner nach
der Angabe, daß 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, daß 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,
daß 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.
-
Des
weiteren umfaßt
erfindungsgemäß 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, daß 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, daß 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, daß 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 Anschluß 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 veranlaßt, daß zu Anfang angegeben wird,
daß 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, daß 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, daß 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.
-
Des
weiteren umfaßt
erfindungsgemäß 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, daß das Quell-Laufwerk
nicht bereit ist, Daten auf dem Kommunikationspfad zu übertragen,
und anfänglich
angibt, daß 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, daß 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, kann eine Tabelle
abändern, welche
Konfigurationsinformationen für
die erste Speichervorrichtung enthält. 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 Anschluß 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äß der vorliegenden
Erfindung umfaßt 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,
daß das
erste Laufwerk von einem Quell-Laufwerk in ein Ziel-Laufwerk umgewandelt wird,
ohne das erste Laufwerk zu zerstören,
Veranlassen, daß 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.
-
Gemäß der vorliegenden
Erfindung umfaßt ferner
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,
daß das
erste Laufwerk von einem Quell-Laufwerk
in ein Ziel-Laufwerk umgewandelt wird, ohne das erste Laufwerk zu
zerstören,
Veranlassen, daß 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 veranlaßt. 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.
-
Des
weiteren umfaßt
erfindungsgemäß 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 veranlaßt,
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
veranlaßt,
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 veranlaßt, 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äß der vorliegenden
Erfindung umfaßt 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.
-
Gemäß der vorliegenden
Erfindung umfaßt ferner
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 gespeicher ten 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 Anschluß an die Aktualisierung der
gespeicherten Konfigurationsdaten auch die Aktualisierung des ersten und
zweiten gespeicherten Wertes umfassen.
-
Gemäß der vorliegenden
Erfindung umfaßt ferner
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.
-
Gemäß der vorliegenden
Erfindung umfaßt ferner
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 Anschluß an
die Aktualisierung der gespeicherten Konfigurationsdaten aktualisiert.
-
Gemäß der vorliegenden
Erfindung umfaßt ferner
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 gespei cherten 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.
-
Gemäß der vorliegenden
Erfindung umfaßt ferner
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 Teil 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 Anschluß 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 Flußdiagramm,
welches die Funktionsweise des hier beschriebenen Systems darstellt.
-
3 ist
ein Flußdiagramm,
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 Flußdiagramm,
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 Flußdiagramm,
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 Flußdiagramm,
welches eine alternative Ausführungsform
des hier beschriebenen Systems darstellt.
-
Detaillierte Beschreibung
verschiedener Ausführungsformen
-
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, daß die
Daten auf der Fernspeichervorrichtung 26 identisch mit
den Daten auf der lokalen Speichervorrichtung 24 sind.
Es ist anzumerken, daß eine
Zeitverzögerung
bei der Übertragung
von Daten von der lokalen Speichervorrichtung 24 auf die
Fernspeichervorrichtung 26 auftreten kann, so daß 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 umfaßt eine RDF-Adaptereinheit
(RA) 30, und die Fernspeichervorrichtung 26 umfaßt 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 umfaßt, und
die Speichervorrichtung 26, welche eine Mehrzahl von Platten 34a, 34b, 34c umfaßt. Die
hier beschriebene RDF-Funktionalität kann angewendet
werden, so daß unter
Verwendung 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,
daß 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 RA 30 der lokalen Speichervorrichtung 24. Ähnlich existiert
ein Datenpfad zwischen den DAs 36a–36c und dem RA 32 der Fernspeichervorrichtung 26.
-
Die
lokale Speichervorrichtung 24 umfaßt 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
umfaßt
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 umfaßt, 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, daß 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, daß der
Host 22 RDF-Laufwerke während des
Betriebs des Systems erzeugt und zerstört. Es ist anzumerken, daß RDF-Laufwerke
paarweise erzeugt und zerstört
werden können,
so daß 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, daß ein
Hostrechner einen Systemfernaufruf indirekt an eine oder mehrere
11 Datenspeichervorrichtungen durch Ebenen von anderen Datenspeichervorrichtungen
ausgibt. Der Befehl kann angeben, daß 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 veranlaßt 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, daß 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 vorliegenden Erörterung
Hinweise auf die Erzeugung von Laufwerken dahingehend aufgefaßt werden,
daß sie
die Erzeugung von Verbindungen zu vorhandenen Laufwerken umfassen. Ähnlich können Hinweise
auf die Zerstörung
von Laufwerken dahingehend aufgefaßt werden, daß sie die
einfache Zerstörung
von RDF-Verbindungen
zu diesen, wenn dies angemessen ist, umfassen. Es ist anzumerken,
daß 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 Flußdiagramm 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, daß 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, daß 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 Zuordnungstabelle
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 Anschluß an
Schritt 60 ist die Verarbeitung beendet.
-
Wenn
in Schritt 52 ermittelt wird, daß 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 umfaßt
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 Anschluß an
Schritt 66 ist die Verarbeitung beendet.
-
Wenn
im Testschritt 64 ermittelt wird, daß 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 umfaßt 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, daß R1- und
R2-Laufwerke paarweise erzeugt werden, so daß ein Scheitern bei der Erzeugung
eines der Laufwerke an dem zweiten Standort bewirkt, daß 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
Anschluß an
Schritt 74 ist die Verarbeitung beendet.
-
Wenn
im Testschritt 70 ermittelt wird, daß 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, daß 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, daß 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, daß RDF-Vorgänge zwischen
R1 und R2 beginnen können.
Es ist anzumerken, daß 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, daß 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, daß der
Vorgang erfolgreich war, an den Host 22 zurückgesendet
wird. Im Anschluß an Schritt 79 ist die
Verarbeitung beendet. Es ist anzumerken, daß 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, daß 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, daß 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, daß 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 Speichervorrichtungen 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, daß 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 Flußdiagramm 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, daß 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, daß 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, daß 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, daß die Spur,
auf die der Host 22 schreibt oder von der er liest, ungültig ist,
die Steuerung von Schritt 86 zu einem Schritt 68,
in welchem das R2-Laufwerk für
den Lese/Schreib-Vorgang unter Verwendung von RDF verwendet wird.
Es ist anzumerken, daß 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, daß die
Daten von dem Host 22 an das R2-Laufwerk geliefert werden.
Im Anschluß an Schritt 88 ist
die Verarbeitung beendet. Wenn alternativ im Testschritt 86 ermittelt
wird, daß 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 Anschluß 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 umfaßt
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, daß bestimmte
Laufwerke ein R1/R2-RDF-Paar bilden, wogegen die dynamischen Konfigurationsdaten 94 den
statischen Konfigurationsdaten 92 vorrangig sind, indem
sie angeben, daß 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 Flußdiagramm 100 die
Bestimmung einer Konfiguration eines bestimmten logischen Geräts dar.
Es ist anzumerken, daß 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, daß 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 Anschluß an Schritt 104 ist
die Verarbeitung beendet.
-
Wenn
im Testschritt 102 ermittelt wird, daß 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,
daß 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 umfaßt 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 umfaßt 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 umfaßt eine
Verbindung zum Anschluß 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 umfaßt, muß 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 muß 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,
daß 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,
daß die
HAs 112–114,
die DAs 116–118 und
der RA 126 in der Lage sind, Zugriff auf genaue Informationen
zu haben, welche die Einrich tungskonfiguration 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/Ausgabebezogene 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 Flußdiagramm 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
Eingabe/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, daß 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 Anschluß an Schritt 174 ist
die Verarbeitung beendet.
-
Wenn
im Testschritt 172 ermittelt wird, daß 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 Anschluß an Schritt 174 ist
die Verarbeitung beendet.
-
Wenn
im Testschritt 178 ermittelt wird, daß 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 Anschluß 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 daß zuerst
ein Eingabe/Ausgabe-Vorgang ausgeführt werden muß.
-
Es
ist anzumerken, daß 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, daß der
Host kontinuierliche Datenvorgänge
auf die andere Vorrichtung ausführt.
-
Bezugnehmend
auf 9 stellt ein Flußdiagramm 50' eine alternative
Ausführungsform
zu der in Verbindung mit dem Flußdiagramm 50 in 2 beschriebenen
Ausführungsform
dar. Das Flußdiagramm 50 in 2 zeigt
ein System, in welchem zwei Befehle, Erzeugen und Zerstören, vorhanden sind.
Das durch das Flußdiagramm 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 veranlaßt,
daß das
R1-Laufwerk zum R2-Laufwerk wird, und veranlaßt, daß 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 Flußdiagramm 50 in 2 erörtert wird.
Wenn andererseits in Schritt 52' ermittelt wird, daß 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 Flußdiagramm 50 in 2 erörtert ist.
-
Wenn
im Testschritt 53 ermittelt wird, daß kein Erzeugungsbefehl ausgegeben
wurde, dann wurde ein R1/R2-Austauschbefehl ausgegeben. Das heißt, bei
einem System mit drei Befehlen sieht ein Eliminierungsprozeß vor, daß wenn in
Schritt 52' ermittelt
wird, daß 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, daß 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 daß 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, daß 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 Mißerfolg)
an den Host zurückgesendet
werden. Im Anschluß an
Schritt 198 ist die Verarbeitung beendet.
-
Es
ist anzumerken, daß 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, als lokale
Speichervorrichtung 24 verwendeten Vorrichtung umgesetzt
werden, einschließlich möglicherweise
einer weiteren Rechenvorrichtung, einer Netzwerksverbindung, etc.,
welche konfiguriert 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.