-
HINTERGRUND DER ERFINDUNG
-
Die
vorliegende Erfindung bezieht sich allgemein auf ein Speichersystem
zum Durchführen
des Kopierens (dezentrales Kopieren) von Daten an ein anderes Speichersystem,
das sich an einem entfernten Ort befindet. Insbesondere bezieht
sich die Erfindung auf ein Informationsverarbeitungssystem zum Durchführen des
dezentralen Kopierens in der Art, bei der die Reihenfolge des Schreibens
von Daten von einem Host-Computer an ein Speichersystem nicht mit
der Reihenfolge der Übertragung
von Daten von einem Speichersystem übereinstimmt, das die Daten
von dorthin in ein anderes Speichersystem schreibt.
-
In
einem Informationsverarbeitungssystem mit einem Host-Computer und
mehreren Speichersystemen ist als Technik zum Durchführen des
Kopierens von Daten zwischen den Speichersystemen das dezentrale
Kopieren bekannt.
-
Unter
dezentralem Kopieren ist eine Technik zu verstehen, bei der mehrere
Speichersysteme, die physikalisch voneinander getrennt sind, das
Kopieren der Daten durchführen,
das heißt
das doppelte Schreiben der Daten zwischen den Speichersystemen ohne
Zwischenschaltung des Host-Computers.
-
Das
Speichersystem ist ein System mit mehreren Speichergeräten und
einer Steuereinheit zum Steuern dieser Speichergeräte.
-
In
dem Informationsverarbeitungssystem, das das dezentrale Kopieren
durchführt,
sind die Speichersysteme, die jeweils an physikalisch voneinander
entfernten Orten aufgestellt sind, über Standleitungen oder öffentliche
Leitungen elektrisch miteinander verbunden. Von den logischen Speicherbereichen
(nachstehend als „logische
Volumes" bezeichnet,
soweit zutreffend), die ein bestimmtes Speichersystem aufweist,
ist das logische Volume mit derselben Kapazität wie das logische Volume,
das Gegenstand des dezentralen Kopierens ist (nachstehend kurz als
das „Quellvolume" bezeichnet, soweit
zutreffend) in dem Speichersystem garantiert, in das das logische
Volume als Quelle des Kopierens kopiert wird. Dieses garantierte
logische Volume (nachstehend als das „Zielvolume" bezeichnet, soweit
zutreffend) ist so gebildet, dass es eine Eins-zu-Eins-Entsprechung
mit dem logischen Volume als Quelle des Kopierens aufweist.
-
Die
Daten des logischen Volumes als Quelle des Kopierens werden über die
zugehörige
Standleitung oder öffentliche
Zeitung in das logische Volume als Ziel des Kopierens kopiert.
-
Wenn
die in dem logischen Volume als Quelle des Kopierens enthaltenen
Daten aktualisiert werden, werden die aktualisierten Daten über die
zugehörige
Standleitung oder dergleichen in das Speichersystem mit dem logischen
Volume als Ziel des Kopierens übertragen,
und die aktualisierten Daten werden auch in das logische Volume
als Ziel des Kopierens entsprechend dem logischen Volume als Quelle
des Kopierens geschrieben.
-
Wenn
die Technik des dezentralen Kopierens benutzt wird, kann in dem
Informationsverarbeitungssystem mit mehreren Speichersystemen das
logische Volume mit demselben Inhalt in mehreren Speichersystemen
gehalten werden.
-
Die
Technik im Hinblick auf das dezentrale Kopieren ist in US-Patent
5.742.792 beschrieben. In US-Patent 5.742.792 ist außerdem eine
als adaptives Kopieren bezeichnete Technik beschrieben.
-
Unter
adaptivem Kopieren ist eine der dezentralen Kopiertechniken zu verstehen.
Das adaptive Kopieren ist ein dezentrales Kopierverfahren, bei dem
vor dem Kopieren der vom Host-Computer auf das lokale Speichergerät geschriebenen
Daten in das dezentrale Speichergerät die Informationen, die den
Abschluss des Schreibens anzeigen, an den Host-Computer zurückgegeben
werden.
-
Beim
adaptiven Kopieren ist die Übertragungsreihenfolge
der Daten nicht serialisiert, und daher sich kann die Reihenfolge
des Schreibens der Daten auf das logische Volume als Quelle des
Kopierens durch den Host-Computer von der Reihenfolge der Übertragung
dieser Daten an das logische Volume als Ziel des Kopierens in manchen
Fällen
unterscheiden (nachstehend wird dieses dezentrale Kopieren als dezentrales
Kopieren „ohne
Garantie hinsichtlich der Reihenfolge" bezeichnet, soweit zutreffend).
-
Wenn
der Host-Computer wiederholt Daten an dieselbe Position in dem Zielvolume
auf der Grundlage dieser Eigenschaft schreibt, können nur die Daten, die als
letzte dorthin geschrieben worden sind, an das Speichersystem mit
dem logischen Volume als Ziel des Kopierens übermittelt werden. Daher kann
die Last auf dem Netzwerk wie zum Beispiel der Standleitung zwischen
den Speichersystemen verringert werden.
-
Wenn
andererseits der Host-Computer, in dem das im so genannten offenen
System verwendete Dateisystem enthalten ist, die Daten an das Speichersystem
im Allgemeinen, den Puffer und dergleichen schreibt, die im Host-Computer
vorgesehen sind, wodurch ein Befehl zum Übertragen der Daten von einem
Anwendungsprogramm an das Dateisystem asynchron zum Vorgang des
Schreibens der Daten an das Speichersystem erteilt wird.
-
Wenn
jedoch die Daten in der Datei aufgrund verschiedener Probleme zerstört werden,
wird zur Aufrechterhaltung der Kohärenz der Dateisystemstruktur
im Hinblick auf mindestens das Verzeichnis und die Metadaten wie
zum Beispiel den i-Knoten, die zur Verwaltung des Dateisystems verwendet
werden, der Vorgang des Ausgebens eines Befehls zum Übertragen
der Daten, das heißt
des Verzeichnisses und der Metadaten, vom Host-Computer an das Speichersystem
synchron mit dem Ausgeben des Schreibbefehls vom Anwendungsprogramm,
das auf dem Host-Computer läuft,
an das Dateisystem ausgeführt.
Die vorstehend erwähnte
Technik ist in einem Artikel „The
Design and Implementation of a Log-Structured File System" von Mendel Resenblum und
John K. Ousterhout in ACM Transactions on Computer Systems, Vol.
10, Nr. 1, Februar 1992, Seite 29, beschrieben.
-
Durch
Ausführung
einer solchen Verarbeitung gehen die Metadaten, auch wenn die Daten
in der Datei, die in dem Host-Computer gepuffert ist, aufgrund des
asynchronen Schreibens durch einen plötzlichen Ausfall der Stromversorgung
oder dergleichen verloren gehen, auf keinen Fall verloren. Auf diese
Weise bleibt die Kohärenz
der Dateisystemstruktur erhalten, und der Schaden kann auf ein Minimum
beschränkt
werden, auch wenn die Daten selbst verloren sind.
-
WO-A-98/20419
beschreibt ein Verfahren und System zur Aufrechterhaltung einer
logisch konsistenten Datensicherung mit minimaler Datenübertragung.
Wenn in einem Massenspeicher gespeicherte Daten nach einer bestimmten
Schnappschusszeit T1 aktualisiert werden sollen, werden die Daten
zuerst in einem Schnappschussspeicher gesichert, ehe die Daten in
dem Massenspeicher aktualisiert werden. Als Ergebnis können die
zum Schnappschusszeitpunkt T1 in dem Massenspeicher gespeicherten
Daten auf der Grundlage der im Schnappschussspeicher gesicherten
nicht aktualisierten Daten und der im Massenspeicher gespeicherten
zusätzlichen
Daten reproduziert werden.
-
WO-A-01/04754
beschreibt ein Verfahren zum dezentralen Kopieren von Daten mit
einem prospektiven Anhaltebefehl. Eine primäre Steuereinheit hält das Senden
von Aktualisierungsinformationen an eine sekundäre Steuereinheit als Reaktion
auf einen Anhaltebefehl von einem Computer an.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Das
dezentrale Kopieren ohne Garantie hinsichtlich der Reihenfolge wird
ausgeführt,
wodurch die Last, die auf das Netzwerk der Standleitung oder dergleichen
zwischen den Speichersystemen einwirkt, verringert werden kann.
-
Beim
dezentralen Kopieren ohne Garantie hinsichtlich der Reihenfolge
nach der bisherigen Technik wird jedoch bis zur Kohärenz der
Metadaten in dem Zielvolume nicht berücksichtigt, die Kohärenz der
Dateisystemstruktur aufrechtzuerhalten, und daher besteht die Gefahr,
dass ein großer
Teil der Dateien verloren geht.
-
Im
Einzelnen kann das Dateisystem des Host-Computers, wenn die Daten,
die vom Dateisystem in das logische Volume als Quelle des Kopierens geschrieben
worden sind, nicht synchron mit dem Vorgang des Schreibens der Daten
an das Dateisystem an das logische Volume als Ziel des Kopierens übertragen
werden, im Hinblick auf die Verzeichnisstruktur des Speichersystems
mit dem logischen Volume als Ziel des Kopierens möglicherweise
nicht den in bestimmten Fällen
vorgesehenen Zustand annehmen.
-
Unter
den vorstehenden Umständen
werden die Daten des Speichersystems mit dem logischen Volume als
Quelle des Kopierens zerstört,
auch wenn ein Dateisystem-Wiederherstellungsprogramm wie zum Beispiel
fsck für
das Speichersystem mit dem logischen Volume als Ziel des Kopierens
läuft,
es aber nicht effektiv arbeitet, und als Folge ist die Möglichkeit
hoch, dass viele Dateien verloren gehen. Dies liegt daran, dass
fsck auf der Annahme beruht, dass kein Widerspruch zwischen der
Verzeichnisstruktur des Speichersystems mit dem Quellvolume und
der Verzeichnisstruktur des Speichersystems mit dem Zielvolume besteht.
-
Angesichts
der vorstehenden Ausführungen ist
die vorliegende Erfindung gemacht worden, um die vorstehend genannten
Probleme mit der bisherigen Technik zu lösen, und daher ist ein Ziel
der vorliegenden Erfindung die Bereitstellung einer Einrichtung
zur Aufrechterhaltung der Kohärenz
der Dateisystemstruktur in dem Zielvolume auch beim Durchführen des
dezentralen Kopierens ohne Garantie hinsichtlich der Reihenfolge,
so dass, auch wenn die Daten im Quellvolume zerstört werden,
die Daten im Quellvolume von dem Zielvolume durch Aufrechterhaltung
der Kohärenz
des Quellvolumes wiederhergestellt werden.
-
Zum
Erreichen des vorstehend genannten Ziels stellt die vorliegende
Erfindung ein Verfahren und ein System gemäß der Definition in den anliegenden
unabhängigen
Ansprüchen
bereit. Sie sieht ein Speichersystem mit einem Host-Computer, einem
Hauptspeichergerät
und einem Unterspeichergerät
vor, das elektrisch mit dem Hauptspeichergerät verbunden ist, wobei ein
Befehl vom Host-Computer an das Hauptspeichergerät gesendet wird, um die Daten
des Hauptspeichergeräts
zu einem Zeitpunkt, an dem der Befehl ausgegeben wird, aufrechtzuerhalten,
und die festen Daten werden auf das Unterspeichergerät kopiert.
-
Das
Speichersystem ist so aufgebaut, dass die Daten, die in dem Hauptspeichergerät aufrechterhalten
werden, an das Unterspeichergerät übertragen
werden, und nach Abschluss der Übertragung der
aufrechterhaltenen Daten wird ein Signal, das den Abschluss der Übertragung
der Daten anzeigt, vom Hauptspeichergerät an das Unterspeichergerät übertragen,
so dass mit dem Empfang des Signals, das den Abschluss der Datenübertragung
angibt, als Wendepunkt die Daten in dem Unterspeichergerät strukturiert
sind.
-
Darüber hinaus
besteht der Schritt des Aufrechterhaltens des Status der Daten darin,
die Daten in einen ersten Speicherbereich des Hauptspeichergeräts zu speichern,
bis der Befehl vom Host-Computer ausgegeben wird, und nach Ausgeben
des Befehls vom Host-Computer die Daten, die zum Zeitpunkt der Ausgabe
des Befehls in dem ersten Speicherbereich gespeichert waren, in
einen zweiten Speicherbereich der Hauptspeichergerät zu kopieren,
und in dem Schritt der Übertragung
der Daten können
die Daten, die in den zweiten Speicherbereich kopiert worden sind,
auch an das Unterspeichergerät übertragen
werden.
-
Darüber hinaus
werden in dem Schritt des Strukturierens der Daten die aufrechterhaltenen
Daten, die übertragen
worden sind, in einen dritten Speicherbereich des Unterspei chergeräts gespeichert,
so dass mit den Daten, die im dritten Speicherbereich gehalten werden,
die aufrechterhaltenen Daten auch in einem vierten Speicherbereich
des Unterspeichergeräts
strukturiert werden können.
-
Das
Speichersystem umfasst ein Hauptspeichergerät mit einem ersten Speicherbereich,
einem zweiten Speicherbereich und einer Haupt-Plattensteuereinheit,
die elektrisch mit einem Host-Computer verbunden ist, und ein Unterspeichergerät mit einem
dritten Speicherbereich, einem vierten Speicherbereich und einer
Unter-Plattensteuereinheit, die elektrisch mit dem Hauptspeichergerät verbunden
ist, wobei die Haupt-Plattensteuereinheit eine Einrichtung zum Aufzeichnen
von Daten, die vom Host-Computer gesendet worden sind, in dem ersten
Speicherbereich, bis ein Befehl vom Host-Computer ausgegeben wird,
eine Einrichtung zum Kopieren der Daten, die in dem ersten Speicherbereich
aufgezeichnet worden sind, in den zweiten Speicherbereich als Reaktion
auf den vom Host-Computer ausgegebenen Befehl und eine Einrichtung
zum Senden der kopierten Daten an das Unterspeichergerät aufweist.
Weiter umfasst die Unter-Plattensteuereinheit eine Einrichtung zum
Empfangen der an sie gesendeten Daten und zum Halten der empfangenen
Daten in dem dritten Speicherbereich und eine Einrichtung zum Strukturieren
der Daten, die zu einem Zeitpunkt, an dem der Befehl vom Host-Computer ausgegeben
worden ist, in dem ersten Speicherbereich gehalten werden, in dem
vierten Speicherbereich unter Verwendung der Daten, die in dem dritten
Speicherbereich gehalten werden.
-
Der
Host-Computer gibt einen Einfrierbefehl an das Speichersystem als
Ziel der Datenübertragung
aus, und das Speichersystem als Quelle der Datenübertragung überträgt die Daten, die zum Zeitpunkt
der Ausgabe des Einfrierbefehls in dem Speichersystem enthalten
sind, und deren Anordnung (nachstehend kurz als das „Volume-Image" bezeichnet, soweit
zutreffend) an das Speichersystem als Ziel der Datenübertragung.
Der Abschluss der gesamten Datenübertra gung
wird gemeldet, was bedeutet, dass das Volume-Image zu einem Zeitpunkt, an
dem der Einfrierbefehl ausgegeben worden ist, bereits an das Speichersystem
als Ziel der Datenübertragung übertragen
worden ist.
-
In
dem Speichersystem als Ziel der Datenübertragung werden die Daten
des Volume-Images zu einem Zeitpunkt der Ausgabe des Einfrierbefehls
in der Quelle der Datenübertragung
gehalten, und wenn die Meldung zur Anzeige des Abschlusses der Datenübertragung
beim nächsten
Mal gegeben wird, wird das Volume-Image mit den übertragenen Daten aktualisiert.
-
Als
Ergebnis ist es möglich,
wenn das Platteneinheitssystem in der Quelle der Datenübertragung
an einem beliebigen Zeitpunkt unbrauchbar geworden ist, das Volume-Image
zu benutzen, das in dem Speichersystem als Ziel der Datenübertragung gehalten
wird.
-
Die
Unteransprüche
beziehen sich auf bevorzugte Modifikationen der Erfindung.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Die
vorstehenden und weitere Ziele sowie die Vorteile der vorliegenden
Erfindung werden aus der nachstehenden Beschreibung einer bevorzugten Ausführungsform
und für
das Verständnis
der vorliegenden Erfindung nützlicher
Beispiele unter Bezugnahme auf die anliegenden Zeichnungen ersichtlich.
-
1 zeigt
ein Blockdiagramm mit einer Konfiguration eines Computersystems,
auf das die Ausführungsform
der vorliegenden Erfindung angewendet ist.
-
2A bis 2C zeigen
jeweils schematische Ansichten zur Erläuterung des Datenflusses nach
der Ausführungsform.
-
3 zeigt
ein Blockdiagramm mit der internen Konfiguration einer DKC.
-
4 zeigt
ein Ablaufdiagramm zur Erläuterung
des Schreibvorgangs nach der Ausführungsform.
-
5 zeigt
ein Ablaufdiagramm zur Erläuterung
des dezentralen Haupt-Kopiervorgangs nach der Ausführungsform.
-
6 zeigt
ein Ablaufdiagramm zur Erläuterung
des dezentralen Unter-Kopiervorgangs nach der Ausführungsform.
-
7 zeigt
ein Ablaufdiagramm zur Erläuterung
des Haupt-Einfriervorgangs nach der Ausführungsform.
-
8 zeigt
ein Ablaufdiagramm zur Erläuterung
des Unter-Einfriervorgangs nach der Ausführungsform.
-
9 zeigt
ein Ablaufdiagramm zur Erläuterung
des Unter-Wiederherstellungsvorgangs nach der Ausführungsform.
-
10 zeigt
ein Ablaufdiagramm zur Erläuterung
des Lesevorgangs nach der Ausführungsform.
-
11 zeigt
eine schematische Ansicht zur Erläuterung des Ablaufs des Einfrierbefehls
nach der Ausführungsform.
-
12 zeigt
ein Blockdiagramm mit einer Konfiguration eines Computersystems,
auf das ein erstes nützliches
Beispiel zum Verständnis
der vorliegenden Erfindung angewendet ist.
-
13A bis 13D zeigen
jeweils schematische Ansichten zur Erläuterung des Datenflusses nach
dem ersten Beispiel.
-
14 zeigt
eine schematische Ansicht zur Erläuterung des Ablaufs eines Einfrierbefehls
nach dem ersten Beispiel.
-
15 zeigt
ein Ablaufdiagramm zur Erläuterung
des Schreibvorgangs A nach dem ersten Beispiel.
-
16 zeigt
ein Ablaufdiagramm zur Erläuterung
des Haupt-Einfriervorgangs A nach dem ersten Beispiel.
-
17 zeigt
ein Ablaufdiagramm zur Erläuterung
des dezentralen Unter-Kopiervorgangs A nach dem ersten Beispiel.
-
18 zeigt
ein Ablaufdiagramm zur Erläuterung
des Unter-Einfriervorgangs A nach dem ersten Beispiel.
-
19 zeigt
ein Blockdiagramm mit einer Konfiguration eines Computersystems,
auf das ein zweites nützliches
Beispiel zum Verständnis
der vorliegenden Erfindung angewendet ist.
-
20A bis 20D zeigen
jeweils schematische Ansichten zur Erläuterung des Datenflusses nach
dem zweiten Beispiel.
-
21 zeigt
eine schematische Ansicht zur Erläuterung des Ablaufs eines Einfrierbefehls
nach dem zweiten Beispiel.
-
22 zeigt
ein Ablaufdiagramm zur Erläuterung
des Schreibvorgangs B nach dem zweiten Beispiel.
-
23 zeigt
ein Ablaufdiagramm zur Erläuterung
des Haupt-Einfriervorgangs B nach dem zweiten Beispiel.
-
24 zeigt
ein Ablaufdiagramm zur Erläuterung
des Haupt-Kopiervorgangs B nach dem zweiten Beispiel.
-
25 zeigt
ein Ablaufdiagramm zur Erläuterung
des dezentralen Haupt-Kopiervorgangs B nach dem zweiten Beispiel.
-
26 zeigt
ein Ablaufdiagramm zur Erläuterung
des Haupt-Einfrierabschlussvorgangs nach dem zweiten Beispiel.
-
27 zeigt
ein Ablaufdiagramm zur Erläuterung
des Unter-Einfriervorgangs nach dem zweiten Beispiel.
-
28 zeigt
ein Ablaufdiagramm zur Erläuterung
des dezentralen Unter-Kopiervorgangs B nach dem zweiten Beispiel.
-
BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
-
Die
bevorzugte Ausführungsform
der vorliegenden Erfindung wird nachstehend unter Bezugnahme auf
die anliegenden Zeichnungen ausführlich beschrieben.
-
1 zeigt
ein Blockdiagramm mit einer Konfiguration einer Ausführungsform
eines Computersystems 1000, auf das die vorliegende Erfindung angewendet
ist.
-
Das
Computersystem 1000 umfasst einen Host-Computer 1010,
ein Hauptspeichergerät 1180, ein
Unterspeichergerät 1190 zum
Ausführen
des dezentralen Kopierens zwischen dem Hauptspeichergerät 1180 und
dem Unterspeichergerät 1190,
einen Unter-Host-Computer 1020 und ein Netzwerk 1050, über das
das Hauptspeichergerät 1180 und
das Unterspeichergerät 1190 miteinander
verbunden sind.
-
Das
Unterspeichergerät 1190 wird
verwendet, wenn das Hauptspeichergerät 1180 aufgrund einer
Störung
oder dergleichen unbrauchbar wird. Der Unter-Host-Computer 1020 übernimmt,
wenn der Host-Computer 1010 oder das Hauptspeichergerät 1180 unbrauchbar
werden, die Verarbeitung, die im Wesentlichen der Host-Computer 1010 ausführen soll,
unter Verwendung der Daten im Unterspeichergerät 1190.
-
Für das Netzwerk 1050 wird
angenommen, dass es sich um ein gemeinsam genutztes Netzwerk wie
zum Beispiel das Internet handelt und dass die Datenübertragungsrate
nicht so hoch ist. Bei der vorliegenden Ausführungsform wird angenommen,
dass das dezentrale Kopieren zwischen dem Hauptspeichergerät 1180 und
dem Unterspeichergerät 1190 ohne
Garantie hinsichtlich der Reihenfolge ausgeführt wird, wobei keine starke
Last auf das Netzwerk 1050 einwirkt. Im Übrigen kann
die Datenübertragungsrate
des Netzwerks 1050 auch hoch sein.
-
Das
Hauptspeichergerät 1180 umfasst
eine Hauptplatteneinheit 1130, in der die vom Host-Computer 1010 übertragenen
Daten gespeichert werden, und eine Haupt-Plattensteuereinheit 1030 (nachstehend
kurz als „DKC" bezeichnet, soweit
zutreffend) zum Steuern der Hauptplatteneinheit 1130.
-
In
der vorliegenden Ausführungsform
gibt der Host-Computer 1010 einen Befehl zum „Einfrieren" an das Hauptspeichergerät 1180 aus
(nachstehend als „Einfrierbefehl" bezeichnet, soweit
zutreffend).
-
Der
Begriff „Einfrieren" hat die Bedeutung von
Halten für
das Unterspeichergerät 1190 desselben
Volume-Images wie auf dem Hauptspeichergerät 1180 zu dem Zeitpunkt,
an dem der Host-Computer 1010 den Befehl ausgegeben hat.
-
Die
Hauptplatteneinheit 1130 umfasst ein Hauptvolume 1120 und
ein Hauptdifferenzialvolume 1140. Das Hauptvolume und das
Hauptdifferenzialvolume können
jeweils entweder das logische Volume oder das physikalische Volume
sein. Im Fal le des logischen Volumes, wie bei der vorliegenden Ausführungsform,
können
in der Hauptplatteneinheit in bestimmten Fällen mehrere Volumes vorhanden
sein. Andererseits weist die Hauptplatteneinheit im Falle des physikalischen
Volumes weiter mehrere Platteneinheiten auf, die jeweils das physikalische
Volume bilden. Darüber
hinaus kann die Hauptplatteneinheit auch im Falle des logischen
Volumes aus mehreren Platteneinheiten gebildet sein.
-
In
dem Hauptvolume 1120 werden die Daten gespeichert, die
vom Host-Computer 1010 an das Hauptspeichergerät 1180 übertragen
worden sind.
-
In
dem Hauptdifferenzialvolume 1140 werden für einen
Zeitraum, der von einem Zeitpunkt, an dem das Hauptspeichergerät 1180 den
Einfrierbefehl vom Host-Computer 1010 empfangen hat, bis
zu einem Zeitpunkt reicht, an dem der Vorgang des Einfrierens abgeschlossen
ist (nachstehend wird dieser Zeitraum kurz als „im eingefrorenen Zustand" bezeichnet, soweit
zutreffend), die Daten gespeichert, die vom Host-Computer 1010 übertragen
worden sind.
-
Die
Haupt-DKC 1030 weist einen Haupteinfriermodus 1060,
eine Hauptbitmap 1070 und eine Hauptdifferenzialbitmap 1080 in
dem Speicher auf.
-
Der
Haupteinfriermodus 1060 zeigt, ob die Haupt-DKC 1030 selbst
den Vorgang des Einfrierens ausführt
oder nicht. Wenn zum Beispiel festgestellt wird, dass die Haupt-DKC 1030 selbst
den Vorgang des Einfrierens ausführt,
wird der Modus 1.
-
In
der Hauptbitmap 1070 und der Hauptdifferenzialbitmap 1080 entsprechen
die Bits jeweils einem Block in dem Hauptvolume 1120.
-
Die
Hauptbitmap 1070 zeigt die Blöcke im Hauptvolume 1120.
Diese Blöcke
sind die Daten, die noch nicht an die Unter-DKC 1040 übertragen
worden sind, neben den im Hauptvolume 1120 gespeicherten
Daten, bevor das Hauptspeichergerät 1180 den Einfrierbefehl
vom Host-Computer 1010 erhält.
-
Die
Hauptdifferenzialbitmap 1080 zeigt die Blöcke, die
die Daten enthalten, die die Hauptplatteneinheit 1130 vom
Host-Computer 1010 empfangen hat, während die Haupt-DKC 1030 den
Vorgang des Einfrierens ausführt.
-
Die
Daten sind im Hauptdifferenzialvolume 1140 in einem log-strukturierten
Postscript-Dateiformat gespeichert. Die Blocknummern zur Angabe
der entsprechenden Blöcke
im Hauptvolume 1120 sind ebenfalls in den gespeicherten
Daten enthalten.
-
Wenn
die in das Hauptvolume 1120 zu schreibenden Schreibdaten
empfangen werden, während
die Haupt-DKC 1030 den Vorgang des Einfrierens ausführt, prüft die Haupt-DKC 1030 die Hauptdifferenzialbitmap 1080.
Liegen die zu schreibenden Schreibdaten bereits im Hauptdifferenzialvolume 1140 vor,
werden die zuvor in das Hauptdifferenzialvolume 1140 geschriebenen
Daten so gelöscht,
dass im Hauptdifferenzialvolume 1140 nicht mehrere in denselben
Block geschriebene Daten vorliegen.
-
Das
Unterspeichergerät 1190 umfasst
eine Unterplatteneinheit 1160, in der die Daten gespeichert
sind, die dezentral von dem Hauptspeichergerät 1180 kopiert worden
sind, und eine Unter-DKC 1040 zum Steuern der Unterplatteneinheit 1160.
-
Die
Unterplatteneinheit 1160 umfasst ein Untervolume 1150,
ein Unterdifferenzialvolume A 1170 und ein Unterdifferenzialvolume
B 1175.
-
In
dem Untervolume 1150 ist das Volume-Image des Hauptvolumes 1120 zu
einem bestimmten Zeitpunkt gespeichert, genau genommen zu einem
Zeitpunkt, an dem der Host-Computer 1010 zuvor den Einfrierbefehl
an das Hauptspeichergerät 1180 ausgegeben
hat.
-
In
dem Unterdifferenzialvolume A 1170 sind die Daten gespeichert,
die in das Hauptspeichergerät 1180 geschrieben
wurden, während
und nachdem der Host-Computer 1010 zuvor den Einfrierbefehl
an das Hauptspeichergerät 1180 ausgegeben
hat.
-
Die
Blöcke
des Untervolumes 1150 und des Hauptvolumes 1120 weisen
eine Eins-zu-Eins-Entsprechung auf.
-
Die
Unter-DKC 1040 weist einen Untereinfriermodus 1090,
eine Unterbitmap 1100 und eine Unterdifferenzialbitmap 1110 in
einem Speicher (nicht gezeigt) auf.
-
Der
Wert des Untereinfriermodus 1090 wird 0, wenn die Unter-DKC 1040 den
Vorgang des Einfrierens nicht ausführt; er wird 1 oder 2, wenn
die Unter-DKC 1040 den Vorgang des Einfrierens ausführt.
-
Die
Unterbitmap 1100 und die Unterdifferenzialbitmap 1110 sind
mit derselben Anzahl von Bits wie die Anzahl der Blöcke in dem
Untervolume A 1150 aufgebaut, und ein Bit entspricht einem
Block.
-
Die
Unterbitmap 1100 zeigt das Vorhandensein oder Fehlen der
Daten an, die im Unterdifferenzialvolume A 1170 gespeichert
sind.
-
Die
Unterdifferenzialbitmap 1110 zeigt das Vorhandensein oder
Fehlen der Daten an, die im Unterdifferenzialvolume B 1175 gespeichert
sind.
-
Die
Daten sind im Unterdifferenzialvolume A 1170 und im Unterdifferenzialvolume
B 1175 ähnlich dem
Hauptdifferenzialvolume 1140 jeweils in einem log-strukturierten
Dateiformat gespeichert. Die Blocknummern zur Angabe der entsprechenden
Blöcke
im Untervolume 1150 sind ebenfalls in den Daten enthalten,
die jeweils hierin gespeichert sind.
-
Die
Unter-DKC 1040 führt
denselben Verarbeitungsvorgang wie in der Haupt-DKC 1030 aus,
um die alten Daten so zu löschen,
dass im Unterdifferenzialvolume A 1170 und im Unterdifferenzialvolume
B 1175 nicht zwei oder mehr Daten enthalten sind, die demselben
Block entsprechen.
-
Während bei
der vorliegenden Ausführungsform
der Host-Computer 1010 den
Einfrierbefehl ausgibt, kann alternativ die Haupt-DKC 1030 oder
die Unter-DKC 1040 den Einfrierbefehl ausgeben.
-
Das
Anwendungsprogramm, das auf dem Host-Computer 1010 läuft, gibt
einen Befehl zum Schreiben von Daten an das Hauptspeichergerät 1180 aus.
In der Praxis kann jedoch der Fall eintreten, dass die Daten in
den Cache- oder Pufferspeicher des Host-Computers 1010 geschrieben
werden und damit der Inhalt der im Hauptspeichergerät 1180 gespeicherten
Daten der Zustand wird, den das Anwendungsprogramm nicht beabsichtigt
(das heißt
die Daten, die geschrieben werden sollten, sind tatsächlich noch
nicht geschrieben worden).
-
Wenn
in diesem Zustand der Host-Computer 1010 aufgrund eines
Ausfalls der Stromversorgung heruntergefahren ist und das Dateisystem-Wiederherstellungsprogramm
wie zum Beispiel fsck für
das Hauptspeichergerät 1180 ausgeführt wird,
besteht die Möglichkeit,
dass die Daten, die nicht im Hauptspeichergerät 1180 gespiegelt
sind, verloren gehen.
-
Um
zu verhindern, dass die Daten, die nicht im Hauptspeichergerät 1180 gespiegelt
sind, verloren gehen, sollte die Haupt-DKC 1030 oder dergleichen
den Befehl zum Einfrieren nicht frei ausgeben, sondern der Einfrierbefehl
sollte ausgegeben werden, nachdem der Host-Computer 1010 alle
nicht gespiegelten Daten im Cache- oder Pufferspeicher an das Hauptspeichergerät 1180 geschrieben
hat.
-
2A bis 2C zeigen
den Datenfluss nach der vorliegenden Ausführungsform.
-
2A zeigt
eine schematische Ansicht des Datenflusses in dem Zustand, in dem
der Host-Computer 1010 den Einfrierbefehl noch nicht ausgegeben hat,
das heißt
im normalen Zustand.
-
Die
Daten, die vom Host-Computer 1010 übertragen worden sind, werden
in das Hauptvolume 1120 geschrieben (angedeutet durch einen
Pfeil A100). Die Daten, die neu in das Hauptvolume 1120 geschrieben
worden sind, werden aus dem Hauptvolume 1120 an die Haupt-DKC 1030 ausgelesen,
um an die Unter-DKC 1040 übertragen und in das Unterdifferenzialvolume 1170 geschrieben
zu werden (angedeutet durch einen Pfeil B110).
-
Zu
einem beliebigen Zeitpunkt in 2A ist im
Untervolume 1150 dasselbe Volume-Image wie im Hauptvolume 1120 zu
dem Zeitpunkt gespeichert, an dem der Host-Computer 1010 den
Einfrierbefehl das letzte Mal ausgegeben hat.
-
2B zeigt
eine schematische Ansicht des Datenflusses von einem Zeitpunkt,
nachdem der Host-Computer 1010 den Einfrierbefehl ausgegeben hat,
bis zu einem Zeitpunkt, an dem die Haupt-DKC 1030 einen
Benachrichtigungsbefehl, der angibt, dass alle Daten übertragen
worden sind (nachstehend als „Abschluss
der Übertragung
aller eingefrorenen Daten" bezeichnet,
soweit zutreffend) an die Unter-DKC 1040 ausgibt.
-
Wenn
die vom Host-Computer 1010 gesendeten Daten die Daten sind,
die in dem Block der Hauptplatteneinheit 1130 gespeichert
werden sollen, in der Daten zu einem Zeitpunkt, an dem der Host-Computer 1010 den
Einfrierbefehl ausgegeben hat, bereits an die Unter-DKC 1040 gesendet
worden sind, werden sie unverändert
an das Hauptvolume 1120 geschrieben (angedeutet durch einen
Pfeil C120). Wenn andererseits die Daten, die vom Host-Computer 1010 gesendet
worden sind, die Daten sind, die in dem Block gespeichert werden
sollen, der die noch nicht an die Unter-DKC 1040 gesendeten
Daten enthält,
werden sie in das Hauptdifferenzialvolume 1140 geschrieben
(angedeutet durch einen Pfeil D130).
-
Der
Block, der die Daten enthält,
die im Hauptvolume 1120 gespeichert sind und die zu einem
Zeitpunkt, an dem der Einfrierbefehl vom Host-Computer 1010 ausgegeben
worden ist, noch nicht an die Unter-DKC 1040 gesendet worden
sind, wird aus dem Hauptvolume 1120 an die Haupt-DKC 1030 ausgelesen,
um an die Unter-DKC 1040 übertragen und in das Unterdifferenzialvolume
A 1170 geschrieben zu werden (angedeutet durch einen Pfeil E140).
-
Die
Haupt-DKC 1030, entsprechend dem Inhalt der Hauptbitmap 1070, überträgt alle
Differenzdaten zwischen dem Hauptvolume 1120 und dem Untervolume 1150 zu
einem Zeitpunkt, an dem der Einfrierbefehl vom Host-Computer 1010 ausgegeben worden
ist, an das Unterdifferenzialvolume A 1170. Nach Abschluss
der gesamten Datenübertragung
infor miert die Haupt-DKC 1030 die Unter-DKC 1040, dass
alle eingefrorenen Daten übertragen
worden sind.
-
Zu
einem beliebigen Zeitpunkt in 2B ist im
Untervolume 1150 das Volume-Image mit demselben Inhalt
wie jenes Volume-Image gespeichert, das das Hauptvolume 1120 zu
einem Zeitpunkt enthielt, an dem der Host-Computer 1010 den
Einfrierbefehl das letzte Mal ausgegeben hat.
-
2C zeigt
eine schematische Ansicht des Datenflusses von einem Zeitpunkt,
an dem die Haupt-DKC 1030 die Unter-DKC 1040 informiert
hat, dass alle eingefrorenen Daten übertragen worden sind, bis
zu einem Zeitpunkt, an dem die Haupt-DKC 1030 mit den im
Hauptdifferenzialvolume 1140 gespeicherten Daten die im
Hauptvolume 1120 gespeicherten Daten aktualisiert und auch
die Unter-DKC 1040 mit den im Unterdifferenzialvolume A 1170 gespeicherten
Daten die im Untervolume 1150 gespeicherten Daten aktualisiert.
-
Die
Daten, die vom Host-Computer 1010 übertragen worden sind, werden
in das Hauptvolume 1120 geschrieben (angedeutet durch einen
Pfeil F150).
-
Die
Daten, die im Hauptvolume 1120 gespeichert sind, werden
auf der Grundlage der Daten aktualisiert, die im Hauptdifferenzialvolume 1140 gespeichert
sind (angedeutet durch einen Pfeil C160). Wenn jedoch der Block,
der die Daten enthält,
die Gegenstand der Aktualisierung werden, bereits mit den Daten,
die vom Host-Computer 1010 übertragen worden sind, aktualisiert
worden ist, wird die Aktualisierung der Daten im Hauptvolume 1120 entsprechend
dem im Hauptdifferenzialvolume 1140 gespeicherten Daten
nicht durchgeführt.
-
Die
Daten, die vom Host-Computer 1010 nach dem Einfrierbefehl
vom Host-Computer 1010 an die Hauptplatteneinheit 1130 übertragen
worden sind, werden aus dem Hauptvolume 1120 an die Haupt-DKC 1030 ausgelesen,
um an die Unter-DKC 1040 übertragen
und im Unterdifferenzialvolume B 1175 gespeichert zu werden
(angedeutet durch einen Pfeil H170).
-
Die
Unter-DKC 1040 liest die Daten im Unterdifferenzialvolume
A 1170 an die Unter-DKC 1040 aus, um die Daten
im Untervolume 1150 zu speichern (angedeutet durch einen
Pfeil I180).
-
Zu
einem beliebigen Zeitpunkt in 2C werden
die im Untervolume 1150 gespeicherten Daten mit den im
Unterdifferenzialvolume A 1170 gespeicherten Daten kombiniert,
wodurch das Volume-Image des Hauptvolumes 1120 zu einem
Zeitpunkt, an dem der Host-Computer 1010 den Einfrierbefehl
dieses Mal an die Haupt-DKC 1030 ausgegeben hat, reproduziert
wird.
-
Nach
den vorstehenden Ausführungen,
wie in 2A und 2B gezeigt,
sind die Daten des Volume-Images mit demselben Inhalt wie die Daten des
Volume-Images in der Hauptplatteneinheit 1120 zu einem
Zeitpunkt, an dem der Einfrierbefehl das letzte Mal vom Host-Computer 1010 ausgegeben wurde,
im Untervolume 1150 enthalten. In 2C können die
Daten des Volume-Images mit demselben Inhalt wie die Daten des Volume-Images
in der Hauptplatteneinheit 1120 zu einem Zeitpunkt, an dem
der Einfrierbefehl dieses Mal ausgegeben wurde, durch Kombinieren
der im Untervolume 1150 gespeicherten Daten mit den Daten
im Unterdifferenzialvolume A 1170 reproduziert werden.
-
Mit
anderen Worten, die Volume-Images, die mit den Volume-Images in
der Hauptplatteneinheit 1120 zu einem Zeitpunkt übereinstimmen,
an dem der Host-Computer 1010 den Einfrierbefehl ausgegeben
hat, werden in der Unterplatteneinheit 1160 vorbereitet.
-
3 zeigt
ein Blockdiagramm der Haupt-DKC 1030.
-
Die
Haupt-DKC 1030 umfasst eine Host-Schnittstelle 1210,
eine Laufwerkschnittstelle 1230, eine Netzwerkschnittstelle 1220,
eine CPU 1240, einen ROM 1250, einen RAM 1260 und
eine DMA-Steuerung 1270 für den direkten Speicherzugriff.
-
Das
Programm, das auf der CPU 1240 läuft, ist im ROM 1250 gespeichert.
-
Der
Haupteinfriermodus 1060, die Hauptbitmap 1070 und
die Hauptdifferenzialbitmap 1080 sind im RAM 1260 gespeichert.
Der RAM wird auch als Cachespeicher verwendet.
-
Die
CPU 1240 steuert das Hauptspeichergerät 1180. In der CPU 1240 läuft ein
Multitasking-Betriebssystem, so dass ein Schreibvorgang 2000,
ein Haupt-Einfriervorgang 2600 und dergleichen parallel miteinander
verarbeitet werden können.
-
Die
Unter-DKC 1040 weist auch dieselbe Konfiguration wie die
Haupt-DKC 1030 auf. In der Unter-DKC 1040 ist
jedoch die Host-Schnittstelle 1210 elektrisch mit dem Unter-Host-Computer 1020 verbunden,
und die Laufwerkschnittstelle 1230 ist elektrisch mit der
Unterplatteneinheit 1160 verbunden. Im RAM 1260 sind
der Untereinfriermodus 1090, die Unterbitmap 1100 und
die Unterdifferenzialbitmap 1110 gespeichert.
-
4 zeigt
ein Ablaufdiagramm des Schreibvorgangs 2000, der in der
Haupt-DKC 1030 ausgeführt
wird, wenn der Host-Computer 1010 den Schreibbefehl zum
Schreiben von Daten und die zu schreibenden Daten (nachstehend kurz
als „Schreibdaten" bezeichnet, soweit
zutreffend) an das Hauptspeichergerät 1180 sendet.
-
Die
Haupt-DKC 1030 empfängt
die Schreibdaten über
die Host-Schnittstelle 1210 (Schritt 2010) und
stellt fest, ob der im RAM 1260 gespeicherte Haupteinfriermodus 1060 eingeschaltet
ist oder nicht (Schritt 2020).
-
Wenn
in Schritt 2020 festgestellt wird, dass der Haupteinfriermodus 1060 ausgeschaltet
ist, setzt die Haupt-DKC 1030 das Bit in der Hauptbitmap 1070,
das dem Block mit dem Hauptvolume 1120 entspricht, in das
die von der Haupt-DKC 1030 empfangenen Schreibdaten geschrieben
werden, auf 1 (Schritt 2030).
-
Die
Haupt-DKC 1030 steuert die Hauptplatteneinheit 1130 so,
dass die Schreibdaten in das Hauptvolume 1120 geschrieben
werden (Schritt 2040). Die Haupt-DKC 1030 prüft selbst,
ob ein dezentraler Haupt-Kopiervorgang 2200 ausgeführt wird oder
nicht (Schritt 2050). Wenn in Schritt 2050 festge stellt
wird, dass der dezentrale Haupt-Kopiervorgang 2200 nicht
ausgeführt
wird, ist der dezentrale Verarbeitungsvorgang abgeschlossen, nachdem
die Haupt-DKC 1030 den dezentralen Haupt-Kopiervorgang 2200 ausgeführt hat.
Wenn andererseits in Schritt 2050 festgestellt wird, dass
der dezentrale Haupt-Kopiervorgang 2200 ausgeführt wird,
ist der Schreibvorgang 2000 abgeschlossen.
-
Wird
in Schritt 2020 festgestellt, dass der Haupteinfriermodus 1060 eingeschaltet
ist, prüft
die Haupt-DKC 1030, ob das Bit in der Hauptbitmap 1070,
das dem Block entspricht, in das die empfangenen Schreibdaten geschrieben
werden sollen, 1 ist oder nicht (Schritt 2060). Wird in
Schritt 2060 festgestellt, dass das entsprechende Bit 0
ist, wird der Vorgang in Schritt 2030 ausgeführt. Wird
andererseits in Schritt 2060 festgestellt, dass das entsprechende
Bit 1 ist, wird das Bit in der Hauptdifferenzialbitmap 1080,
das dem Block im Hauptvolume 1120 entspricht, in dem die
empfangenen Schreibdaten gespeichert werden sollen, auf 1 gesetzt
(Schritt 2070).
-
Die
Haupt-DKC 1030 steuert die Hauptplatteneinheit 1130 so,
dass die Blocknummerninformation im Hauptvolume 1120 zu
den empfangenen Schreibdaten hinzugefügt wird, und danach werden die
Schreibdaten in das Hauptdifferenzialvolume 1140 geschrieben
(Schritt 2080). Danach wird der Vorgang in Schritt 2050 ausgeführt.
-
5 zeigt
ein Ablaufdiagramm zur Erläuterung
eines dezentralen Haupt-Kopiervorgangs 2200, den die Haupt-DKC 1030 ausführt.
-
Der
dezentrale Haupt-Kopiervorgang 2200 ist der Verarbeitungsvorgang,
der von dem vorstehend beschriebenen Schreibvorgang 2000 und
von dem weiter unten beschriebenen Haupt-Einfriervorgang 2600 aufgerufen
wird.
-
Die
Haupt-DKC 1030 stellt fest, ob das entsprechende Bit in
der Hauptbitmap 1070 auf 1 gesetzt ist oder nicht und ob
der Block, der die im RAM 1260 gespeicherten Daten enthält, im Hauptvolume 1120 vorhanden
ist oder nicht (Schritt 2230). Wird in Schritt 2230 festgestellt,
dass der der Bedingung entsprechende Block darin enthalten ist,
gibt die Haupt-DKC 1030 den betreffenden Block an, um den Vorgang
in Schritt 2260 auszuführen.
-
Wird
andererseits in Schritt 2230 festgestellt, dass der der
Bedingung entsprechende Block fehlt, prüft die Haupt-DKC 1030,
ob das Bit 1 in der Hauptbitmap 1070 enthalten ist oder
nicht (Schritt 2240). Wird in Schritt 2240 festgestellt,
dass das Bit 1 nicht in der Hauptbitmap 1070 enthalten
ist, ist der dezentrale Haupt-Kopiervorgang 2200 abgeschlossen.
-
Wird
andererseits in Schritt 2240 festgestellt, dass das Bit
1 in der Hauptbitmap 1070 enthalten ist, gibt die Haupt-DKC 1030 den
Block an, der dem Bit 1 in der Hauptbitmap 1070 entspricht,
um die Daten in dem so angegebenen Block aus dem Hauptvolume 1120 auszulesen
und die so ausgelesenen Daten im RAM 1260 zu speichern
(Schritt 2250).
-
Die
Haupt-DKC 1030 setzt das dem angegebenen Block entsprechende
Bit in der Hauptbitmap 1070 auf null (Schritt 2260).
Die Haupt-DKC 1030 überträgt die ausgelesenen
Daten über
die Netzwerkschnittstelle 1220 an die Unter-DKC 1040 (Schritt 2270).
-
Nach
Empfang der Meldung von der Unter-DKC 1040, dass die Unter-DKC 1040 die
betreffenden Daten empfangen hat (Schritt 2280), kehrt
die Haupt-DKC 1030 zu dem Verarbeitungsvorgang in Schritt 2230 zurück.
-
6 zeigt
ein Ablaufdiagramm zur Erläuterung
eines dezentralen Unter-Kopiervorgangs 2400, den die Unter-DKC 1040 zu
dem Zeitpunkt ausführt, wenn
die Haupt-DKC 1030 die Daten an die Unter-DKC 1040 gesendet
hat.
-
Die
Unter-DKC 1040 empfängt
die Daten, die von der Haupt-DKC 1030 gesendet worden sind, über die
Netzwerkschnittstelle 1220 (Schritt 2410) und
sendet dann die Meldung zur Anzeige des Empfangs der Daten an die
Haupt-DKC 1030 (Schritt 2420).
-
Die
Unter-DKC 1040 stellt fest, ob der im RAM 1260 gespeicherte
Untereinfriermodus 1090 den Wert 2 hat oder nicht (Schritt 2430),
und wenn in Schritt 2430 festgestellt wird, dass der betreffende Wert
nicht 2 ist, steuert sie die Unterplatteneinheit 1160 so,
dass die empfangenen Daten in das Unterdifferenzialvolume A 1170 geschrieben
werden (Schritt 2440).
-
Die
Unter-DKC 1040 setzt das Bit in der Unterbitmap 1100,
das dem Block mit den geschriebenen Daten entspricht, auf 1, um
den dezentralen Unter-Kopiervorgang 2400 abzuschließen (Schritt 2450).
-
Wird
andererseits in Schritt 2430 festgestellt, dass der Untereinfriermodus 1090 den
Wert 2 hat, steuert die Unter-DKC 1040 die Unterplatteneinheit 1160 so,
dass die empfangenen Daten in das Unterdifferenzialvolume B 1175 geschrieben
werden (Schritt 2460).
-
Die
Unter-DKC 1040 setzt das Bit in der Unterdifferenzialbitmap 1110,
das dem Block mit den geschriebenen Daten entspricht, auf 1, um
den dezentralen Unter-Kopiervorgang 2400 abzuschließen (Schritt 2470).
-
7 zeigt
ein Ablaufdiagramm zur Erläuterung
eines Haupt-Einfriervorgangs 2600, den die Haupt-DKC 1030 zu
dem Zeitpunkt ausführt,
wenn der Host-Computer den Einfrierbefehl ausgegeben hat.
-
Nach
Empfang des Einfrierbefehls vom Host-Computer 1010 über die
Host-Schnittstelle 1210 schaltet die Haupt-DKC 1030 den
Haupteinfriermodus 1060 ein, der im RAM 1260 gespeichert ist
(Schritt 2610).
-
Die
Haupt-DKC 1030 sendet den Einfrierbefehl an die Unter-DKC 1040 (Schritt 2620).
Die Haupt-DKC 1030 stellt fest, ob die Haupt-DKC 1030 selbst
den dezentralen Kopiervorgang 2200 ausführt oder nicht (Schritt 2625).
-
Wird
in Schritt 2625 festgestellt, dass die Haupt-DKC 1030 selbst
den dezentralen Kopiervorgang 2200 ausführt, führt die Haupt-DKC 1030 nach Ausführen des
Wartens für
ei nige Zeit (zum Beispiel mehrere Millisekunden) (Schritt 2635)
den Verarbeitungsvorgang in Schritt 2640 aus.
-
Wird
andererseits in Schritt 2625 festgestellt, dass die Haupt-DKC 1030 selbst
nicht den dezentralen Kopiervorgang 2200 ausführt, wird
der dezentrale Haupt-Kopiervorgang 2200 ausgeführt (Schritt 2630),
um den Verarbeitungsvorgang in Schritt 2640 auszuführen.
-
In
Schritt 2640 stellt die Haupt-DKC 1030 fest, ob
alle Bits in der Hauptbitmap 1070 null sind oder nicht.
Ist das Bit mit dem Wert 1 in der Hauptbitmap 1070 enthalten,
führt die
Haupt-DKC 1030, weil die an die Unter-DKC 1040 zu
sendenden Daten noch in der Hauptplatteneinheit 1130 sind,
erneut die Vorgänge
nach Schritt 2625 aus, bis alle Bits in der Hauptbitmap 1070 null
sind.
-
Wird
andererseits in Schritt 2640 festgestellt, dass alle Bits
in der Hauptbitmap 1070 null sind, sendet die Haupt-DKC 1030 die
Information, dass die eingefrorenen Daten bereits übertragen
worden sind, an die Unter-DKC 1040 (Schritt 2650).
-
Die
Haupt-DKC 1030 stellt fest, ob alle Werte in der Hauptdifferenzialbitmap 1080 null
sind oder nicht (Schritt 2660).
-
Wird
in Schritt 2660 festgestellt, dass alle Werte in der Hauptdifferenzialbitmap 1080 nicht
null sind, steuert die Haupt-DKC 1030 die Hauptplatteneinheit 1130 so,
dass die Daten in dem Block, in dem das Bit in der Hauptdifferenzialbitmap 1080 auf
1 gesetzt ist, aus dem Hauptdifferenzialvolume 1140 ausgelesen
werden (Schritt 2670), um in den Block geschrieben zu werden,
der dem Hauptvolume 1120 entspricht (Schritt 2680).
-
Die
Haupt-DKC 1030 setzt das Bit in der Hauptdifferenzialbitmap 1080,
das dem Block mit den geschriebenen Daten entspricht, auf null (Schritt 2690),
während
sie das entsprechende Bit in der Hauptbitmap 1070 auf 1
setzt, um zu dem Vorgang in Schritt 2660 zurückzukehren
(Schritt 2695).
-
Wird
andererseits in Schritt 2660 festgestellt, dass alle Werte
in der Hauptdifferenzialbitmap 1080 null sind, wartet die
Haupt-DKC 1030 auf die Abschlussmeldung von der Unter-DKC 1040 (Schritt 2700).
Nach Empfang der von der Unter-DKC 1040 gesendeten Abschlussmeldung
(Schritt 2710) schaltet die Haupt-DKC 1030 den
im RAM 1260 gespeicherten Haupteinfriermodus 1060 aus
(Schritt 2720), um ein Signal zur Anzeige der Abschlussmeldung
für den
Einfriervorgang an den Host-Computer 1010 zu senden, um
den Haupt-Einfriervorgang 2600 abzuschießen (Schritt 2730).
-
Nach
Abschluss des Vorgangs in Schritt 2650 kann der Vorgang
in Schritt 2700 ausgeführt werden,
und der Aktualisierungsvorgang für
das Hauptdifferenzialvolume (Schritte 2660 bis 2695) kann
nach Abschluss des Haupt-Einfriervorgangs ausgeführt werden.
-
8 zeigt
ein Ablaufdiagramm zur Erläuterung
eines Unter-Einfriervorgangs 2800, den die Unter-DKC 1040 zu
dem Zeitpunkt ausführt,
wenn die Haupt-DKC 1030 den Einfrierbefehl an die Unter-DKC 1040 ausgegeben
hat.
-
Nach
Empfang des Einfrierbefehls von der Haupt-DKC 1030 setzt
die Unter-DKC 1040 den im RAM 1260 gespeicherten
Untereinfriermodus 1090 auf 1 (Schritt 2810),
um auf die Meldung von der Haupt-DKC 1030 zu warten, die
angibt, dass alle eingefrorenen Daten übertragen worden sind (Schritt 2820).
-
Nach
Empfang der Meldung zur Anzeige des Abschlusses der Übertragung
aller eingefrorenen Daten von der Haupt-DKC 1030 setzt
die Unter-DKC 1040 den Untereinfriermodus 1090 auf
2 (Schritt 2825).
-
Die
Unter-DKC 1040 stellt fest, ob das entsprechende Bit in
der im RAM 1260 gespeicherten Unterbitmap 1100 auf
1 gesetzt ist oder nicht, und auch, ob der entsprechende Block mit
den Daten im RAM 1260 enthalten ist oder nicht (Schritt 2830).
-
Wird
in Schritt 2830 festgestellt, dass der entsprechende Block
im RAM 1260 enthalten ist, führt die Unter-DKC 1040 den
Vorgang in Schritt 2860 aus. Wird andererseits in Schritt 2830 festgestellt,
dass der entsprechende Block nicht im RAM 1260 enthalten
ist, wird geprüft,
ob der Block, in dem das entsprechende Bit in der Unterbitmap 1100 auf
1 gesetzt ist, vorhanden ist oder nicht (Schritt 2840).
-
Wird
in Schritt 2840 festgestellt, dass der Block, in dem das
entsprechende Bit in der Unterbitmap 1100 auf 1 gesetzt
ist, vorhanden ist, liest die Unter-DKC 1040 die dem Bit
1 entsprechenden Daten aus dem Unterdifferenzialvolume A 1170 in
den RAM 1260 aus (Schritt 2850), um die betreffenden Daten
in den Block im Untervolume 1150 zu schreiben, der den
in den RAM 1260 gelesenen Daten entspricht (Schritt 2860).
-
Die
Unter-DKC 1040 setzt das Bit in der Unterbitmap 1100,
das den bereits geschriebenen Daten entspricht, auf null (Schritt 2870),
um zu dem Vorgang in Schritt 2830 zurückzukehren.
-
Wird
andererseits in Schritt 2840 festgestellt, dass der Block,
in dem das entsprechende Bit in der Unterbitmap 1100 auf
1 gesetzt ist, fehlt, setzt die Unter-DKC 1040 den Untereinfriermodus 1090 auf
null (Schritt 2880), um die Meldung zur Anzeige des Abschlusses
des Unter-Einfriervorgangs an die Haupt-DKC 1030 zu senden
(Schritt 2890), um den Unter-Einfriervorgang 2800 abzuschließen.
-
9 zeigt
ein Ablaufdiagramm zur Erläuterung
eines Unter-Wiederherstellungsvorgangs 3000, den die Unter-DKC 1040 entsprechend
dem vom Unter-Host-Computer 1020 erhaltenen Befehl ausführt, wenn
der Host-Computer 1010 und das Hauptspeichergerät 1180 aufgrund
einer Katastrophe oder dergleichen beide vollständig unbrauchbar geworden sind.
-
Nach
Empfang des vom Unter-Host-Computer 1020 ausgegebenen Befehls
stellt die Unter-DKC 1040 fest, ob der Untereinfriermodus 1090 auf
1 gesetzt ist oder nicht (Schritt 3010). Wird in Schritt 1040 festgestellt,
dass der Untereinfriermodus 1090 den Wert 1 hat, hält die Unter-DKC 1040 den
Unter-Einfriervorgang 2800 an, den die Unter-DKC 1040 selbst ausführt (Schritt 3040),
um den Untereinfriermodus auf null zu setzen (Schritt 3050).
-
Die
Unter-DKC 1040 initialisiert alle Werte in der Unterdifferenzialbitmap
mit null (Schritt 3060), um die Informationen im Unterdifferenzialvolume
A 1170 und im Unterdifferenzialvolume B 1175 zu
löschen (Schritt 3070).
-
Die
Unter-DKC 1040 sendet die Abschlussmeldung an den Unter-Host-Computer 1020 (Schritt 3080),
um den Unter-Wiederherstellungsvorgang 3000 abzuschließen.
-
Wird
andererseits in Schritt 3010 festgestellt, dass der Untereinfriermodus 1090 nicht
1 ist, prüft
die Unter-DKC 1040,
ob der Untereinfriermodus 1090 null ist oder nicht (Schritt 3020).
Wird in Schritt 3020 festgestellt, dass der Untereinfriermodus 1090 null ist,
führt die
Unter-DKC 1040 den
Vorgang in Schritt 3060 aus. Wird andererseits in Schritt 3020 festgestellt,
dass der Untereinfriermodus 1090 nicht null ist, wartet
die Unter-DKC 1040, bis der Untereinfriermodus 1090 null
wird, um den Vorgang in Schritt 3020 auszuführen (Schritt 3030).
-
Durch
Ausführen
des Unter-Wiederherstellungsvorgangs 3000 wird das Volume-Image
des Hauptvolumes 1120 zu einem Zeitpunkt, an dem der Einfrierbefehl
das letzte Mal oder dieses Mal vom Host-Computer 1010 an
die Haupt-DKC 1030 ausgegeben worden ist, in das Untervolume 1150 kopiert. Danach
kann der Unter-Host-Computer 1020 das kopierte Volume-Image frei verwenden.
-
10 zeigt
ein Ablaufdiagramm zur Erläuterung
eines Lesevorgangs 3200, den die Haupt-DKC 1030 zu
dem Zeitpunkt ausführt,
wenn der Host-Computer 1010 den Lesebefehl zum Lesen von
Daten an das Hauptspeichergerät 1180 ausgegeben
hat.
-
Nach
Empfang des vom Host-Computer 1010 ausgegebenen Lesebefehls
prüft die Haupt-DKC 1030,
ob die Daten, die vom Host-Computer 1010 angefordert worden
sind, im RAM 1260 enthalten sind oder nicht (Schritt 3205).
-
Wird
in Schritt 3205 festgestellt, dass die angeforderten Daten
nicht im RAM 1260 enthalten sind, prüft die Haupt-DKC 1030 den
Haupteinfriermodus (Schritt 3210). Wird in Schritt 3210 festgestellt,
dass der Haupteinfriermodus 1060 ausgeschaltet ist, liest die
Haupt-DKC 1030 die angeforderten Daten aus dem Hauptvolume 1130 aus
(Schritt 3220), um die betreffenden Daten an den Host-Computer 1010 zu übertragen
und den Lesevorgang 3200 abzuschließen (Schritt 3230).
-
Wird
andererseits in Schritt 3210 festgestellt, dass der Haupteinfriermodus 1060 eingeschaltet
ist, prüft
die Haupt-DKC 1030, ob das Bit in der Hauptdifferenzialbitmap 1080,
das den vom Host-Computer 1010 angeforderten Daten entspricht,
1 ist oder nicht (Schritt 3240).
-
Wird
in Schritt 3240 festgestellt, dass das entsprechende Bit
null ist, führt
die Haupt-DKC 1030 den Vorgang in Schritt 3220 aus.
Wird andererseits in Schritt 3240 festgestellt, dass das
entsprechende Bit 1 ist, sucht die Haupt-DKC 1030 die
vom Host-Computer 1010 angeforderten Daten auf dem Hauptdifferenzialvolume 1140,
um die so gefundenen Daten auszulesen und den Vorgang in Schritt 3230 auszuführen (Schritt 3250).
-
Wird
andererseits in Schritt 3205 festgestellt, dass die angeforderten
Daten im RAM 1260 enthalten sind, führt die Haupt-DKC 1030 den
Vorgang in Schritt 3230 aus.
-
11 zeigt
eine schematische Ansicht zur Erläuterung des Sendens und Empfangens
des Einfrierbefehls zwischen den im Host-Computer 1000 enthaltenen
Geräten.
-
In 11 stellt
die vertikale Achse die Zeitbasis dar. Dies bedeutet, dass die Zeit
verstreicht, während
sich die Position in der Abbildung weiter nach unten verschiebt.
-
Der
Host-Computer 1010 gibt den Einfrierbefehl an die Haupt-DKC 1030 aus,
und als Reaktion auf den an sie ausgegebenen Einfrierbefehl gibt
die Haupt-DKC 1030 den Einfrierbefehl an die Unter-DKC 1040 aus.
-
Nach Übertragen
des Volume-Images des Hauptvolumes 1120 zum Zeitpunkt des
Empfangs des Einfrierbefehls an die Unter-DKC 1040 sendet die
Haupt-DKC 1030 die Meldung zur Anzeige des Abschlusses
der Übertragung
aller eingefrorenen Daten an die Unter-DKC 1040.
-
Die
Unter-DKC 1040 spiegelt die Daten des Hauptvolumes 1120 zu
einem Zeitpunkt der Ausgabe des Einfrierbefehls an das Untervolume 1150 und
informiert nach Abschluss des Spiegelns der Daten die Haupt-DKC 1030 über den
Abschluss des Einfrierens. Als Reaktion darauf informiert die Haupt-DKC 1030 den
Host-Computer 1010 über
den Abschluss des Einfrierens.
-
Durch
Anwendung der Konfiguration nach der vorliegenden Ausführungsform
können
die Daten, die sich zu einem Zeitpunkt, an dem der Einfrierbefehl
vom Host-Computer 1010 ausgegeben wird, in der Hauptplatteneinheit
befinden, in der Unterplatteneinheit gehalten werden, und damit
kann, auch wenn die Daten zerstört
werden, der Verlust an Daten auf ein Minimum verringert werden.
-
Mit
anderen Worten, das Unterspeichergerät 1190 hält die Daten
zu einem Zeitpunkt der Ausgabe des Einfrierbefehls und hält gleichzeitig
als Differenzialdaten die Daten, die an und nach diesem Zeitpunkt
geschrieben worden sind. Dieses Einfrieren wird in regelmäßigen Intervallen
durchgeführt,
wodurch, wenn die Daten des Hauptspeichergeräts 1180 aus irgendeinem
Grund nicht verwendet werden können,
alle Daten zu einem Zeitpunkt, an dem sie das letzte Mal eingefroren
worden sind, aus dem Unterspeichergerät 1190 erhalten werden
können.
-
Auch
wenn die Beschreibung der vorliegenden Ausführungsform von der Annahme
ausgeht, dass mehrere Volumes in der Hauptplatteneinheit 1130 enthalten
sind, ist nicht beabsichtigt, die vorliegende Erfindung hierauf
zu beschränken.
Das heißt, mehrere
Platteneinheiten können
in dem Hauptspeichergerät 1180 enthalten
sein, und jede der Plat teneinheiten kann die Funktion des Volumes
selbst übernehmen.
Dies gilt auch für
die Unterplatteneinheit 1160.
-
12 zeigt
ein Blockdiagramm mit einer Konfiguration eines ersten Beispiels
des Computersystems 1000, das nicht unter den Umfang der
Ansprüche
fällt,
aber für
das Verständnis
der vorliegenden Erfindung nützlich
ist.
-
Ein
Unterschied des vorliegenden Beispiels gegenüber der vorstehend beschriebenen
Ausführungsform
ist der, dass die Kopie des kohärenten
Volume-Images zu dem Zeitpunkt, an dem der Einfrierbefehl vom Host-Computer 1010 ausgegeben
worden ist, einmal in der Hauptplatteneinheit 1130 erzeugt
wird und die Daten von dem so erzeugten Volume an die Unter-DKC übertragen
werden.
-
Das
vorliegende Beispiel unterscheidet sich von der Ausführungsform
auch darin, dass zwei Volumes für
das Unterspeichergerät
vorgesehen sind, und eines davon wird das Volume, das verwendet wird,
um das kohärente
Volume zu erzeugen.
-
Nachstehend
werden die Unterschiede gegenüber
dem Computersystem 1000 nach der Ausführungsform beschrieben. Die
hier nicht beschriebenen Teile weisen denselben Aufbau wie bei der
Ausführungsform
auf und sind daher mit denselben Bezugszeichen versehen.
-
Eine
Hauptplatteneinheit 1130' umfasst
ein Haupt-Hauptvolume 1300 und ein Haupt-Untervolume 1310.
-
In
dem Haupt-Hauptvolume 1300 sind die Daten gespeichert,
die vom Host-Computer 1010 übertragen worden sind. Das
Haupt-Untervolume 1310 wird beim Kopieren des Volume-Images des Haupt-Hauptvolumes 1300 zu
einem Zeitpunkt verwendet, an dem der Einfrierbefehl ausgegeben
wurde. Die Blöcke
des Haupt-Hauptvolumes 1300 und des Haupt-Untervolumes 1310 weisen
jeweils eine Eins-zu-Eins-Entsprechung auf.
-
Die
Haupt-DKC 1030' weist
eine Hauptbitmap A 1340, eine Hauptbitmap B 1350 und
eine Hauptbitmap C 1360 auf, die alle im RAM 1260 enthalten
sind.
-
Die
Hauptbitmap A 1340 zeigt, wenn das enthaltene Bit für den diesem
Bit entsprechenden Block 1 ist, dass der Inhalt der Daten, die im
Haupt-Hauptvolume 1300 gespeichert sind, von dem der Daten abweicht,
die im Haupt-Untervolume 1310 gespeichert sind.
-
Während die
Hauptbitmap B 1350 auch den Unterschied zwischen dem Haupt-Hauptvolume 1300 und
dem Haupt-Untervolume 1310 zeigt, wird nur das Bit, das
dem Block entspricht, in dem nach dem Senden des Einfrierbefehls
vom Host-Computer 1010 die Daten in das Haupt-Hauptvolume 1300 geschrieben
worden sind, auf 1 gesetzt.
-
Die
Hauptbitmap C 1360 zeigt, dass ein Unterschied im Inhalt
zwischen dem Haupt-Untervolume 1310 und einem Unter-Hauptvolume 1320 besteht.
-
Eine
Unterplatteneinheit 1160' umfasst
ein Unter-Hauptvolume 1320 und ein Unter-Untervolume 1330.
-
In
das Unter-Hauptvolume 1320 werden die Daten geschrieben,
die von der Haupt-DKC 1030' übertragen
worden sind. In dem Unter-Untervolume 1330 wird das Volume-Image
des Haupt-Hauptvolumes 1300 zu einem Zeitpunkt aufgebaut,
an dem der Einfriervorgang das letzte Mal ausgeführt wurde.
-
Eine
Unter-DKC 1040' weist
eine Unterbitmap A 1370 auf, die den Unterschied zwischen dem
Unter-Hauptvolume 1320 und dem Unter-Untervolume 1330 zeigt.
Die Unterbitmap A 1370 ist im RAM 1260 enthalten.
Im vorliegenden Beispiel wird der Untereinfriermodus 1090 nicht
verwendet.
-
13A bis 13D zeigen
jeweils schematische Ansichten zur Erläuterung des Datenflusses nach
dem ersten Beispiel.
-
In 13A ist der Datenfluss für den Fall gezeigt, dass der
Host-Computer 1010 den Einfrierbefehl nicht ausgibt.
-
Die
Daten, die vom Host-Computer 1010 übertragen worden sind, werden
in das Haupt-Hauptvolume 1300 geschrieben (angedeutet durch
einen Pfeil J190).
-
Dann
wird angenommen, dass im Unter-Untervolume 1330 die Daten
des Volume-Images des Haupt-Hauptvolumes 1300 zu einem
Zeitpunkt gespeichert sind, an dem der Host-Computer 1010 den Einfrierbefehl
das letzte Mal ausgegeben hat.
-
In 13B ist der Datenfluss für einen Zeitraum gezeigt, der
von einem Zeitpunkt, an dem ein Host-Computer 1010 den
Einfrierbefehl ausgegeben hat, bis zu einem Zeitpunkt reicht, an
dem das Hauptspeichergerät 1180 im
Haupt-Untervolume 1310 die Kopie
des Volume-Images des Haupt-Hauptvolumes 1300 zu
einem Zeitpunkt erzeugt, an dem das Hauptspeichergerät 1180 den
Einfrierbefehl ausgegeben hat.
-
Die
Hauptplatteneinheit 1130 kopiert die Daten aus dem Haupt-Hauptvolume 1300 in
das Haupt-Untervolume 1310 (angedeutet durch einen Pfeil
L210).
-
Während die
Daten, die die Haupt-DKC 1030' empfangen hat, in das Haupt-Hauptvolume 1300 geschrieben
werden (angedeutet durch einen Pfeil K200), werden im Falle des
Schreibens der Daten in den Block, in dem das Kopieren in das Haupt-Untervolume 1310 noch
nicht ausgeführt
worden ist, nach Abschluss des Vorgangs des Kopierens der Daten,
angedeutet durch den Pfeil L210, die Daten in das Haupt-Hauptvolume 1300 geschrieben.
-
In 13C ist der Datenfluss für einen Zeitraum gezeigt, der
von einem Zeitpunkt, an dem das Volume-Image des Haupt-Hauptvolumes 1300 zu
einem Zeitpunkt, an dem der Host-Computer 1010 den Einfrierbefehl
ausgegeben hat, im Haupt-Untervolume 1310 erzeugt worden
ist, bis zu einem Zeitpunkt reicht, an dem das im Haupt-Untervolume 1310 erzeugte
Volume-Image in dem Unter-Hauptvolume 1320 erzeugt wird,
das die Unter-DKC 1040' verwaltet.
-
Die
Daten, die vom Host-Computer 1010 übertragen worden sind, werden
in das Haupt-Hauptvolume 1300 geschrieben (angedeutet durch
einen Pfeil M220). Die Daten des Haupt-Untervolumes 1310 werden an
die Haupt-DKC 1030' ausgelesen, um
an die Unter-DKC 1040' übertragen
und in das Unter- Hauptvolume 1320 geschrieben
zu werden (angedeutet durch einen Pfeil N230).
-
In 13D ist der Datenfluss für einen Zeitraum gezeigt, der
von einem Zeitpunkt, an dem das Volume-Image des Haupt-Hauptvolumes 1300 zu
einem Zeitpunkt, an dem der Host-Computer 1010 den Einfrierbefehl
an das Unter-Hauptvolume 1320 ausgegeben hat, erzeugt worden
ist, bis zu einem Zeitpunkt reicht, an dem das so erzeugte Volume-Image in
das Unter-Untervolume 1330 kopiert wird.
-
Die
Daten, die vom Host-Computer 1010 übertragen worden sind, werden
in das Haupt-Hauptvolume 1300 geschrieben (angedeutet durch
einen Pfeil O240).
-
Die
Unter-DKC 1040' steuert
das Kopieren der Daten aus dem Unter-Hauptvolume 1320 in
das Unter-Untervolume 1330 (angedeutet durch einen Pfeil
P250).
-
Im
vorliegenden Beispiel wird das Kopieren der Daten zum Duplizieren
des Volume-Images des Haupt-Hauptvolumes 1300 so ausgeführt, dass
von den Daten, die im Quellvolume und im Zielvolume gespeichert
sind, nur die Differenzialdaten dem Differenzialkopieren unterzogen
werden.
-
In 13A, 13B und 13C enthält das
Unter-Untervolume 1330 das
Volume-Image des Haupt-Hauptvolumes 1300 zu einem Zeitpunkt, an dem
der Host-Computer 1010 den Einfrierbefehl das letzte Mal
ausgegeben hat.
-
In 13D enthält
das Unter-Hauptvolume 1320 das Volume-Image des Haupt-Hauptvolumes 1300 zu
einem Zeitpunkt, an dem der Host-Computer 1010 den Einfrierbefehl
dieses Mal ausgegeben hat.
-
Daher
wird das Volume-Image des Haupt-Hauptvolumes 1300 zu einem
Zeitpunkt, an dem der Host-Computer 1010 den Einfrierbefehl
ausgibt, in jedem Fall gehalten.
-
14 zeigt
eine schematische Ansicht zur Erläuterung des Ablaufs eines Einfrierbefehls
in dem Computersystem 1000 nach dem vorliegenden Beispiel.
In der Abbildung stellt die vertikale Achse die Zeitbasis dar. Dies
bedeu tet, dass die Zeit verstreicht, während sich die Position in
der Abbildung weiter nach unten verschiebt.
-
Der
Host-Computer 1010 gibt den Einfrierbefehl an die Haupt-DKC 1030' aus. Als Reaktion
auf den an sie ausgegebenen Einfrierbefehl führt die Haupt-DKC 1030' ein Differenzialkopieren
(nachstehend wird das Differenzialkopieren als „Aufteilung" bezeichnet, soweit
zutreffend) aller Daten, die im Haupt-Hauptvolume 1300 zu
einem Zeitpunkt gespeichert sind, an dem der Einfrierbefehl ausgegeben
wurde, in das Haupt-Untervolume 1310 aus. Nach Abschluss
des Differenzialkopierens liest die Haupt-DKC 1030' die Daten des
Haupt-Untervolumes 1310 aus, um die so ausgelesenen Daten
an die Unter-DKC 1040' zu
senden. Danach schreibt die Unter-DKC 1040' die von der Haupt-DKC 1030' empfangenen
Daten in das Unter-Hauptvolume 1320.
-
Die
Haupt-DKC 1030' gibt
den Einfrierbefehl an die Unter-DKC 1040' aus. Nach Empfang des Einfrierbefehls
teilt die Unter-DKC 1040' das
Volume-Image des Unter-Hauptvolumes 1320 auf das Unter-Untervolume 1330 auf.
Nach Abschluss der Aufteilung sendet die Unter-DKC 1040' die Meldung zur
Anzeige des Abschlusses des Einfrierens an die Haupt-DKC 1030'. Nach Empfang
dieser Meldung informiert die Haupt-DKC 1030' den Host-Computer 1010 über den
Abschluss des Einfrierens.
-
15 zeigt
ein Ablaufdiagramm zur Erläuterung
eines Schreibvorgangs A 3400, den die Haupt-DKC 1030' ausführt, wenn
der Host-Computer 1010 die Daten an das Hauptspeichergerät 1180 überträgt.
-
Die
Haupt-DKC 1030' empfängt die
Schreibdaten vom Host-Computer 1010 (Schritt 3410),
um zu prüfen,
ob der Haupteinfriermodus 1060 eingeschaltet ist oder nicht
(Schritt 3420).
-
Wird
in Schritt 3420 festgestellt, dass der Haupteinfriermodus 1060 eingeschaltet
ist, prüft
die Haupt-DKC 1030',
ob das Bit in der Hauptbitmap A 1340, das dem Block entspricht,
in dem die übertragenen
Daten gespeichert sind, 1 ist (Schritt 3430).
-
Wird
in Schritt 3420 festgestellt, dass das Bit in der Hauptbitmap
A 1340 null ist, führt
die Haupt-DKC 1030' den
Vorgang in Schritt 3470 aus. Wird andererseits in Schritt 3420 festgestellt,
dass das Bit in der Hauptbitmap A 1340 auf 1 gesetzt ist, steuert
die Haupt-DKC 1030' die
Hauptplatteneinheit 1130 so, dass die Daten, die in dem
Bit 1 entsprechenden Block gespeichert sind, aus dem Haupt-Hauptvolume 1300 in
das Haupt-Untervolume 1310 kopiert werden (Schritt 3440).
-
Nach
Abschluss des Kopierens setzt die Haupt-DKC 1030' das entsprechende
Bit in der Hauptbitmap A 1340 auf null (Schritt 3450)
und setzt außerdem
das entsprechende Bit in der Hauptbitmap C 1360 auf 1 (Schritt 3460).
-
Die
Haupt-DKC 1030' setzt
das Bit in der Hauptbitmap B 1350, das dem Block entspricht,
in dem die übertragenen
Daten gespeichert sind, auf 1 (Schritt 3470), um die Schreibdaten
in den entsprechenden Block des Haupt-Hauptvolumes 1300 zu schreiben
und den Schreibvorgang A 3400 abzuschließen (Schritt 3480).
-
Wird
andererseits in Schritt 3420 festgestellt, dass der Haupteinfriermodus
ausgeschaltet ist, setzt die Haupt-DKC 1030' das entsprechende Bit in der Hauptbitmap
A auf 1, um den Vorgang in Schritt 3480 auszuführen (Schritt 3490).
-
16 zeigt
ein Ablaufdiagramm zur Erläuterung
des Haupt-Einfriervorgangs A 3600, den die Haupt-DKC 1030' ausführt, wenn
der Host-Computer 1010 den Einfrierbefehl an die Haupt-DKC 1030' ausgegeben
hat.
-
Nach
Empfang des Einfrierbefehls vom Host-Computer 1010 (Schritt 3610)
schaltet die Haupt-DKC 1030' den
Haupteinfriermodus ein (Schritt 3620), um festzustellen,
ob alle Bits in der Hauptbitmap A 1340 null sind oder nicht
(Schritt 3630).
-
Wird
in Schritt 3630 festgestellt, dass alle Bits in der Hauptbitmap
A 1340 nicht null sind, gibt die Haupt-DKC 1030' den Block an,
in dem das Bit in der Hauptbitmap A 1340 auf 1 gesetzt
ist (Schritt 3640). Dann liest die Haupt-DKC 1030' den angegebenen
Block des Haupt-Hauptvolumes 1300 aus, um die Hauptplatteneinheit 1130' so zu steuern,
dass der so ausgelesene Block in das Haupt-Untervolume 1310 kopiert
wird (Schritt 3650).
-
Nach
Abschluss des Kopierens des angegebenen Blocks setzt die Haupt-DKC 1030' das entsprechende
Bit in der Hauptbitmap A 1340 auf null (Schritt 3660),
während
sie das entsprechende Bit in der Hauptbitmap C 1360 auf
1 setzt, um zu dem Verarbeitungsvorgang in Schritt 3630 zurückzukehren (Schritt 3670).
-
Wird
in Schritt 3630 festgestellt, dass alle Bits in der Hauptbitmap
A 1340 null sind, prüft
die Haupt-DKC 1030',
ob alle Bits in der Hauptbitmap C 1360 null sind oder nicht
(Schritt 3680).
-
Wird
in Schritt 3680 festgestellt, dass alle Bits in der Hauptbitmap
C 1360 nicht null sind, setzt die Haupt-DKC 1030' das Bit in
der Hauptbitmap C 1360 auf 1 (Schritt 3690), um
den dem Bit entsprechenden Block des Haupt-Untervolumes 1310 auszulesen
und den so ausgelesenen Block an die Unter-DKC 1040' zu senden (Schritt 3700).
-
Die
Haupt-DKC 1030' setzt
das entsprechende Bit in der Hauptbitmap C 1360 auf null,
um zu dem Verarbeitungsvorgang in Schritt 3680 zurückzukehren
(Schritt 3710).
-
Wird
andererseits in Schritt 3680 festgestellt, dass alle Bits
in der Hauptbitmap C 1360 null sind, gibt die Haupt-DKC 1030' den Einfrierbefehl
an die Unter-DKC 1040' aus
(Schritt 3720), um auf das Senden der Meldung zur Anzeige
des Abschlusses des Einfrierens an sie von der Unter-DKC 1040' zu warten (Schritt 3730).
-
Nach
Empfang der Meldung zur Anzeige des Abschlusses des Einfrierens
von der Unter-DKC 1040' (Schritt 3740)
kopiert die Haupt-DKC 1030' den Inhalt
der Hauptbitmap B 1350 in die Hauptbitmap A 1340 (Schritt 3750),
um alle Bits in der Hauptbitmap B 1350 auf null zu setzen
(Schritt 3760). Die Haupt-DKC 1030' schaltet den Haupteinfriermodus 1060 aus
(Schritt 3770), um die Meldung zur Anzeige des Abschlusses
des Einfrierens an den Host-Computer 1010 zu senden und
den Haupt-Einfriervorgang A 3600 abzuschließen (Schritt 3780).
-
17 zeigt
ein Ablaufdiagramm zur Erläuterung
des dezentralen Unter-Kopiervorgangs A 3800, den die Unter-DKC 1040 ausführt, wenn
der Vorgang des dezentralen Kopierens für die Unter-DKC 1040 in
Schritt 3700 des Haupt-Einfriervorgangs A 3600 ausgeführt wird.
-
Nach
Empfang der Daten von der Haupt-DKC 1030' (Schritt 3810) steuert
die Unter-DKC 1040 die Unterplatteneinheit 1160 so,
dass die empfangenen Daten in den entsprechenden Block des Unter-Hauptvolumes 1320 geschrieben werden
(Schritt 3820).
-
Nach
Abschluss des Schreibens der Daten setzt die Unter-DKC 1040 das
entsprechende Bit in der Unterbitmap A 1370 auf 1, um den
dezentralen Unter-Kopiervorgang A 3800 abzuschließen (Schritt 3830).
-
18 zeigt
ein Ablaufdiagramm zur Erläuterung
eines Unter-Einfriervorgangs A 4000, den die Unter-DKC 1040' ausführt, wenn
die Haupt-DKC 1030' den
Einfrierbefehl an die Unter-DKC 1040' ausgegeben hat.
-
Die
Unter-DKC 1040',
die den Einfrierbefehl von der Haupt-DKC 1030' empfangen hat,
prüft,
ob alle Bits in der Unterbitmap A 1370 null sind oder nicht
(Schritt 4010).
-
Wird
in Schritt 4010 festgestellt, dass alle Bits in der Unterbitmap
A 1370 nicht null sind, steuert die Unter-DKC 1040' die Unterplatteneinheit 1160' so, dass sie
den Block des Unter-Hauptvolumes 1320 auswählt, der
dem Bit 1 in der Unterbitmap A 1370 entspricht (Schritt 4020),
um den so ausgewählten
Block auszulesen und den so ausgelesenen Block in den entsprechenden
Block des Unter-Untervolumes 1330 zu kopieren (Schritt 4030).
-
Nach
Abschluss des Kopierens des entsprechenden Blocks setzt die Unter-DKC 1040' das entsprechende
Bit in der Un terbitmap A 1370 auf null, um zu dem Verarbeitungsvorgang
in Schritt 4010 zurückzukehren
(Schritt 4040).
-
Wird
andererseits in Schritt 4010 festgestellt, dass alle Bits
in der Unterbitmap A 1370 null sind, sendet die Unter-DKC 1040' die Meldung
zur Anzeige des Abschlusses des Einfrierens an die Haupt-DKC 1030', um den Unter-Einfriervorgang
A 4000 abzuschließen
(Schritt 4050).
-
Weil
die Daten des Volume-Images des Haupt-Hauptvolumes 1300 zu
einem Zeitpunkt, an dem der Host-Computer 1010 den Einfrierbefehl
das letzte Mal ausgegeben hat, entweder im Unter-Untervolume 1330 oder
im Unter-Hauptvolume 1320 gespeichert sind, wird im vorliegenden
Beispiel der dem Unter-Wiederherstellungsvorgang 3000 entsprechende
Verarbeitungsvorgang unnötig.
-
Wenn
die Leseanforderung vom Host-Computer 1010 erfolgt ist,
müssen
die Vorgänge
wie bei der Ausführungsform
nicht ausgeführt
werden, und die Daten des Haupt-Hauptvolumes 1300 brauchen nur übertragen
zu werden.
-
19 zeigt
ein Blockdiagramm mit einer Konfiguration eines zweiten Beispiels
des Computersystems 1000, das nicht unter den Umfang der
Ansprüche
fällt,
aber für
das Verständnis
der vorliegenden Erfindung nützlich
ist.
-
Im
vorliegenden Beispiel ist der Punkt verbessert, dass das dezentrale
Kopieren in 13A bis 13D nur
in 13C ausgeführt
wird und damit das Netzwerk im ersten Beispiel nicht effektiv genutzt
werden kann.
-
Die
nachstehende Beschreibung bezieht sich daher nur auf den Unterschied
gegenüber
dem ersten Beispiel.
-
Eine
Haupt-DKC 1030'' weist eine
Hauptbitmap D 1380 auf, die im RAM 1260 enthalten
ist.
-
Die
Hauptbitmap D 1380 zeigt die Daten, die noch nicht in das
Haupt-Untervolume 1310 kopiert sind und die im Haupt-Hauptvolume 1300 gespeichert
sind, das heißt
der Block mit den Daten, die vor Ausgeben des Einfrierbefehls durch
dezentrales Kopieren in das Unter-Hauptvolume 1320 kopiert
worden sind.
-
Eine
Unter-DKC 1040'' weist eine
Unterbitmap B 1390 auf.
-
Die
Unterbitmap B 1390 zeigt den Block, der aus einer Haupt-DKC 1030'' durch dezentrales Kopieren in
das Unter-Hauptvolume 1320 kopiert
worden ist, als und nachdem der Einfrierbefehl dieses Mal ausgegeben
worden ist, aber bevor der Einfrierbefehl das nächste Mal ausgegeben wird.
-
Im
vorliegenden Beispiel nimmt der Haupteinfriermodus einen ganzzahligen
Wert von 0 bis 3 an. Der Untereinfriermodus ist entweder ein- oder ausgeschaltet.
-
20A bis 20D zeigen
jeweils schematische Ansichten zur Erläuterung des Datenflusses in
dem Computersystem 1000 nach dem vorliegenden Beispiel.
-
Nachstehend
wird das vorliegende Beispiel im Vergleich zu 13A bis 13D beschrieben, die
den Datenfluss in dem Computersystem 1000 nach dem ersten
Beispiel zeigen.
-
In 20A werden die Daten, die vom Host-Computer 1010 in
das Haupt-Hauptvolume 1300 geschrieben worden sind, an
die Unter-DKC 1040'' übertragen,
bevor der Host-Computer 1010 den Einfrierbefehl ausgibt
(angedeutet durch einen Pfeil R270). Der Pfeil Q260 entspricht dem
Pfeil J190 in 13A.
-
Der
Pfeil S280 und der Pfeil T290 in 20B zeigen
den Datenfluss entsprechend dem Pfeil K200 bzw. dem Pfeil L210 in 13B.
-
Die
Daten, die bereits in das Haupt-Untervolume 1310 kopiert
worden sind (angedeutet durch einen Pfeil T290), aber noch nicht
an das Unter-Hauptvolume 1320 übertragen worden sind, werden
aus dem entsprechenden Block des Haupt-Untervolumes 1310 durch die
Haupt-DKC 1030'' an die Unter-DKC 1040'' übertragen, um in das Unter-Hauptvolume 1320 geschrieben
zu werden (angedeutet durch einen Pfeil K300).
-
Der
Pfeil V310 und der Pfeil W320 in 20C entsprechen
dem Pfeil M220 bzw. dem Pfeil N230 in 13C.
-
Der
Pfeil X330 und der Pfeil Z350 in 20D entsprechen
dem Pfeil O bzw. dem Pfeil P in 13.
-
Die
Daten, die neu in das Haupt-Hauptvolume 1300 geschrieben
worden sind (angedeutet durch einen Pfeil X330), werden in das Unter-Hauptvolume 1320 kopiert
(angedeutet durch einen Pfeil Y340), bevor der Host-Computer 1010 den
nächsten Einfrierbefehl
ausgibt.
-
Wenn
die Daten für
den Block, der noch nicht aus dem Unter-Hauptvolume 1320 in
das Unter-Untervolume 1300 kopiert worden ist, von der Haupt-DKC 1030'' durch die Unter-DKC 1040'' empfangen worden sind, kopiert
die Unter-DKC 1040'' die Daten in
dem Block, der den zuvor empfangenen Daten entspricht, aus dem Unter-Hauptvolume 1320 in das
Unter-Untervolume 1330 (angedeutet durch einen Pfeil Z350).
Danach steuert die Unter-DKC 1040'' die
Unterplatteneinheit 1160' so,
dass die Daten in den entsprechenden Block des Unter-Hauptvolumes 1320 geschrieben
werden.
-
21 zeigt
eine schematische Ansicht zur Erläuterung des Ablaufs des Einfrierbefehls
in dem Computersystem 1000 nach dem vorliegenden Beispiel.
In der Abbildung stellt die vertikale Achse die Zeitbasis dar. Dies
bedeutet, dass die Zeit verstreicht, während sich die Position in
der Abbildung weiter nach unten verschiebt.
-
Ein
Vergleich von 21 mit 14 macht deutlich,
dass ein Unterschied darin besteht, dass das dezentrale Kopieren
für einen
längeren
Zeitraum ausgeführt
wird.
-
22 zeigt
ein Ablaufdiagramm zur Erläuterung
eines Schreibvorgangs B 4200, den die Haupt-DKC 1030'' ausführt, wenn die Daten vom Host-Computer 1010 an
das Hauptspeichergerät 1180 übertragen
worden sind.
-
Die
Haupt-DKC 1030'' empfängt die
Schreibdaten vom Host-Computer 1010 (Schritt 4210),
um festzustellen, ob der Haupteinfriermodus 1060 null ist oder
nicht (Schritt 4220). Wird in Schritt 4220 festgestellt,
dass der Haupteinfriermodus 1060 nicht null ist, prüft die Haupt-DKC 1030'', ob der Haupteinfriermodus 1060 den
Wert 1 hat oder nicht (Schritt 4230).
-
Wird
in Schritt 4230 festgestellt, dass der Haupteinfriermodus 1060 nicht
1 ist, prüft
die Haupt-DKC 1030'', ob der Haupteinfriermodus 1060 den
Wert 2 hat oder nicht (Schritt 4240).
-
Wird
in Schritt 4240 festgestellt, dass der Haupteinfriermodus 1060 den
Wert 2 hat, führt
die Haupt-DKC 1030'' den Vorgang
in Schritt 4260 aus. Wird andererseits in Schritt 4240 festgestellt,
dass der Haupteinfriermodus 1060 nicht 2 ist (das heißt es wird
festgestellt, dass er den Wert 3 hat), setzt die Haupt-DKC 1030'' das Bit in der Hauptbitmap D 1380,
das dem übertragenen
Block entspricht, auf null (Schritt 4250).
-
Die
Haupt-DKC 1030'' setzt das Bit,
das den Schreibdaten in der Hauptbitmap A 1340 entspricht, auf
1 (Schritt 4260) und steuert die Hauptplatteneinheit 1130'' so, dass die Schreibdaten in dem
entsprechenden Black des Haupt-Hauptvolumes 1300 gespeichert
werden, um den Hauptschreibvorgang B 4200 abzuschließen (Schritt 4270).
-
Wird
andererseits in Schritt 4220 festgestellt, dass der Haupteinfriermodus 1060 null
ist, setzt die Haupt-DKC 1030'' das
entsprechende Bit in der Hauptbitmap C 1380 auf null, um
den Vorgang in Schritt 4250 auszuführen (Schritt 4280).
-
Wenn
in Schritt 4230 festgestellt wird, dass der Haupteinfriermodus 1060 den
Wert 1 hat, prüft die
Haupt-DKC 1030'' außerdem,
ob das entsprechende Bit in der Hauptbitmap A 1340 auf
1 gesetzt ist oder nicht (Schritt 4290). Wird in Schritt 4290 festgestellt,
dass das entsprechende Bit null ist, führt die Haupt-DKC 1030'' den Vorgang in Schritt 4330 aus. Wird
andererseits in Schritt 4290 festgestellt, dass das entsprechende
Bit 1 ist, steuert die Haupt-DKC 1030'' die
Hauptplatteneinheit 1160' so,
dass die Daten des Blocks des Haupt-Hauptvolumes 1300,
der dem betreffenden Bit entspricht, in den entsprechenden Block
des Haupt-Untervolumes 1310 kopiert werden (Schritt 4300).
-
Die
Haupt-DKC 1030'' setzt das Bit
in der Hauptbitmap A 1340, das den kopierten Daten entspricht,
auf null (Schritt 4310). Die Haupt-DKC 1030'' setzt das Bit in der Hauptbitmap
C 1360, das den kopierten Daten entspricht, auf 1 (Schritt 4320).
Darüber
hinaus setzt die Haupt-DKC 1030'' das
Bit in der Hauptbitmap B 1350, das den kopierten Daten
entspricht, auf 1 (Schritt 4330), um zu dem Verarbeitungsvorgang
in Schritt 4270 zurückzukehren.
-
23 zeigt
ein Ablaufdiagramm zur Erläuterung
eines Haupt-Einfriervorgangs B 4400, den die Haupt-DKC 1030'' ausführt, wenn der Host-Computer 1010 den
Einfrierbefehl an die Haupt-DKC 1030'' ausgegeben
hat.
-
Nach
Empfang des Einfrierbefehls vom Host-Computer 1010 (Schritt 4410)
setzt die Haupt-DKC 1030'' den Haupteinfriermodus 1060 auf 1,
um den Haupt-Einfriervorgang B 4400 abzuschließen (Schritt 4420).
-
24 zeigt
ein Ablaufdiagramm zur Erläuterung
eines Haupt-Kopiervorgangs 4600, der von der Haupt-DKC 1030'' zum Zeitpunkt des Einschaltens
der Stromversorgung des Hauptspeichergeräts 1180 aktiviert
wird und den die Haupt-DKC 1030'' weiter
als eine Aufgabe ausführt.
-
Die
Haupt-DKC 1030'' prüft, ob der
Haupteinfriermodus 1060 den Wert 1 hat oder nicht (Schritt 4610).
Wird in Schritt 4610 festgestellt, dass der Haupteinfriermodus 1060 den
Wert 1 hat, prüft
die Haupt-DKC 1030'', ob das Bit
1 in den in der Hauptbitmap A 1340 enthaltenen Bits vorhanden
ist oder nicht (Schritt 4620).
-
Wird
in Schritt 4610 festgestellt, dass das Bit 1 in den in
der Hauptbitmap A 1340 enthaltenen Bits vorhanden ist,
steuert die Haupt-DKC 1030'' die Hauptplatteneinheit 1130'' so, dass der dem betreffenden
Bit entsprechende Block ausgewählt
wird (Schritt 4630), und die Daten des Blocks, der dem
so ausgewählten
Bit des Haupt-Hauptvolumes 1300 entspricht, werden in den
entsprechenden Block des Haupt-Untervolumes 1310 kopiert
(Schritt 4640).
-
Nach
Abschluss des Kopierens setzt die Haupt-DKC 1030'' das entsprechende Bit in der Hauptbitmap
A 1340 auf null (Schritt 4650), während sie
das entsprechende Bit in der Hauptbitmap C 1360 auf 1 setzt,
um zu dem Verarbeitungsvorgang in Schritt 4620 zurückzukehren
(Schritt 4660).
-
Wird
andererseits in Schritt 4610 festgestellt, dass der Haupteinfriermodus
nicht 1 ist, führt
die Haupt-DKC 1030'' den Vorgang
in Schritt 4680 aus.
-
Wenn
in Schritt 4620 festgestellt wird, dass das Bit 1 in
der Hauptbitmap A 1340 nicht enthalten ist, setzt die Haupt-DKC 1030'' außerdem den Haupteinfriermodus 1060 auf
2 (Schritt 4670) und wartet einige Zeit, um zu dem Verarbeitungsvorgang
in Schritt 4610 zurückzukehren
(Schritt 4680).
-
25 zeigt
ein Ablaufdiagramm zur Erläuterung
eines dezentralen Haupt-Kopiervorgangs 4800, der von der
Haupt-DKC 1030'' zum Zeitpunkt des Einschaltens
der Stromversorgung des Hauptspeichergeräts aktiviert wird und den die
Haupt-DKC 1030'' als eine Aufgabe
ausführt.
-
Die
Haupt-DKC 1030'' prüft, ob der
Haupteinfriermodus 1060 null oder 3 ist (Schritt 4810).
Wird in Schritt 4810 festgestellt, dass der Haupteinfriermodus 1060 null
oder 3 ist, prüft
die Haupt-DKC 1030'', ob der Block,
in dem das Bit in der Hauptbitmap A 1340 auf 1 gesetzt
ist, vorhanden ist oder nicht (Schritt 4820). Wenn ja,
wählt die
Haupt-DKC 1030'' den betreffenden
Block aus (Schritt 4830).
-
Die
Haupt-DKC 1030'' setzt das Bit
in der Hauptbitmap D 1380, das dem ausgewählten Block entspricht, auf
1 (Schritt 4840), um den entsprechenden Block aus dem Haupt-Hauptvolume 1300 auszulesen
und den so ausgelesenen Black an die Unter-DKC 1040'' zu senden (Schritt 4850).
-
Die
Haupt-DKC 1030'' empfängt die
Meldung zur Anzeige des Empfangs der Daten von der Unter-DKC 1040'', um zu dem Verarbeitungsvorgang in
Schritt 4810 zurückzukehren
(Schritt 4860).
-
Wird
andererseits in Schritt 4820 festgestellt, dass der Block,
in dem das Bit in der Hauptbitmap A 1340 auf 1 gesetzt
ist, fehlt, wartet die Haupt-DKC 1030'' einige
Zeit (zum Beispiel mehrere Millisekunden), um zu dem Verarbeitungsvorgang
in Schritt 4810 zurückzukehren
(Schritt 4870).
-
Wenn
in Schritt 4810 festgestellt wird, dass der Haupteinfriermodus 1060 weder
null noch 3 ist, prüft
die Haupt-DKC 1030'' außerdem, ob der Block vorhanden
ist oder nicht, in dem die Hauptbitmap C 1360 auf 1 gesetzt
ist und auch die Hauptbitmap D 1380 null ist (Schritt 4880).
-
Wird
in Schritt 4880 festgestellt, dass der Block, der die vorstehend
genannten Bedingungen erfüllt,
vorhanden ist, wählt
die Haupt-DKC 1030'' den betreffenden
Block aus (Schritt 4890), um das entsprechende Bit in der
Hauptbitmap C 1360 auf null zu setzen (Schritt 4900).
Die Haupt-DKC 1030'' liest den so
ausgewählten
Block aus dem Haupt-Untervolume 1310 aus und überträgt den so
ausgelesenen Block an die Unter-DKC 1040'' (Schritt 4910).
-
Die
Haupt-DKC 1030'' empfängt die
Meldung zur Anzeige des Empfangs der Daten von der Unter-DKC 1040'', um zu dem Verarbeitungsvorgang in
Schritt 4810 zurückzukehren
(Schritt 4920).
-
Wird
andererseits in Schritt 4880 festgestellt, dass der Block,
in dem die Hauptbitmap C 1360 auf 1 gesetzt ist und auch
die Hauptbitmap D 1380 null ist, nicht vorhanden ist, prüft die Haupt-DKC 1030'', ob der Haupteinfriermodus 1060 den
Wert 2 hat oder nicht (Schritt 4930).
-
Wird
in Schritt 4930 festgestellt, dass der Haupteinfriermodus 1060 den
Wert 2 hat, löscht
die Haupt-DKC 1030'' alle Bits in
der Hauptbitmap D 1380 auf null (Schritt 4940)
und setzt den Haupteinfriermodus 1060 auf 3 (Schritt 4950);
danach gibt sie den Einfrierbefehl an die Unter-DKC 1040'' aus, um zu dem Verarbeitungsvorgang
in Schritt 4810 zurückzukehren
(Schritt 4960).
-
Wird
andererseits in Schritt 4930 festgestellt, dass der Haupteinfriermodus 1060 nicht
2 ist, wartet die Haupt-DKC 1030'' einige Zeit (zum Beispiel mehrere
Millisekunden), um zu dem Verarbeitungsvorgang in Schritt 4810 zurückzukehren
(Schritt 4970).
-
26 zeigt
ein Ablaufdiagramm zur Erläuterung
eines Haupt-Einfrierabschlussvorgangs 5000, den die Haupt-DKC 1030'' zu dem Zeitpunkt ausführt, wenn
sie die Meldung zur Anzeige des Abschlusses des Einfrierens von
der Unter-DKC 1040'' empfangen hat.
-
Nach
Empfang der Meldung zur Anzeige des Abschlusses des Einfrierens
von der Unter-DKC 1040'' (Schritt 5010)
setzt die Haupt-DKC 1030'' den Haupteinfriermodus 1060 auf
null (Schritt 5020) und informiert den Host-Computer 1010 über den
Abschluss des Einfrierens, um den Haupt-Einfrierabschlussvorgang 5000 abzuschließen (Schritt 5030).
-
27 zeigt
ein Ablaufdiagramm zur Erläuterung
eines Unter-Einfriervorgangs 5200, den die Unter-DKC 1040'' zu dem Zeitpunkt ausführt, wenn die
Haupt-DKC 1030'' den Einfrierbefehl
an die Unter-DKC 1040'' ausgegeben
hat.
-
Nach
Empfang des Einfrierbefehls von der Haupt-DKC 1030'' (Schritt 5210) schaltet
die Unter-DKC 1040'' den Untereinfriermodus 1090 ein (Schritt 5220),
um zu prüfen,
ob das Bit 1 in der Unterbitmap A 1370 enthalten ist oder
nicht (Schritt 5230).
-
Wird
in Schritt 5230 festgestellt, dass das Bit 1 in der Unterbitmap
A 1370 enthalten ist, steuert die Unter-DKC 1040'' die Unterplatteneinheit 1160' so, dass der
dem betreffenden Bit entsprechende Block ausgewählt wird (Schritt 5240),
und der so ausgewählte
Block des Unter-Hauptvolumes 1320 wird ausgelesen,
um in den entsprechenden Block des Unter-Untervolumes 1330 kopiert
zu werden (Schritt 5250).
-
Die
Unter-DKC 1040'' setzt das entsprechende
Bit in der Unterbitmap A 1370 auf null, um zu dem Verarbeitungsvorgang
in Schritt 5230 zurückzukehren
(Schritt 5260).
-
Wird
andererseits in Schritt 5230 festgestellt, dass das Bit
1 nicht in der Unterbitmap A 1370 enthalten ist, kopiert
die Unter-DKC 1040'' die Unterbitmap
B 1390 in die Unterbitmap A 1370 (Schritt 5270),
um alle Bits in der Unterbitmap B 1390 auf null zu setzen
(Schritt 5280).
-
Die
Unter-DKC 1040'' schaltet den
Untereinfriermodus 1090 aus (Schritt 5290) und
informiert die Haupt-DKC 1040'' über den
Abschluss des Einfrierens, um den Unter-Einfriervorgang 5200 abzuschließen (Schritt 5300).
-
28 zeigt
ein Ablaufdiagramm zur Erläuterung
eines dezentralen Unter-Kopiervorgangs B 5400, den die
Unter-DKC 1040'' zu dem Zeitpunkt ausführt, wenn
in Schritt 4910 des dezentralen Haupt-Kopiervorgangs B 4800 die
Haupt-DKC 1030'' das dezentrale
Kopieren der Daten an die Unter-DKC 1040'' ausführt.
-
Nach
Empfang der Daten von der Haupt-DKC 1030'' (Schritt 5410)
informiert die Unter-DKC 1040'' die
Haupt-DKC 1030'' über den
Empfang der Daten (Schritt 5420).
-
Danach
prüft die
Unter-DKC 1040'', ob der Untereinfriermodus 1090 eingeschaltet
ist oder nicht (Schritt 5430). Wird in Schritt 5430 festgestellt,
dass der Untereinfriermodus 1090 eingeschaltet ist, prüft die Unter-DKC 1040'', ob das Bit 1 in der Unterbitmap A 1370 enthalten
ist oder nicht (Schritt 5440). Wird in Schritt 5440 festgestellt,
dass das Bit 1 nicht in der Unterbitmap A 1370 enthalten
ist, führt
die Unter-DKC 1040'' den Vorgang
in Schritt 5470 aus.
-
Wird
andererseits in Schritt 5440 festgestellt, dass das Bit
1 in der Unterbitmap A 1370 enthalten ist, steuert die
Unter-DKC 1040'' die Unterplatteneinheit 1160'' so, dass der Block des Unter-Hauptvolumes 1320,
der dem Bit 1 entspricht, ausgelesen und in den entsprechenden Block
des Unter-Untervolumes 1330 kopiert wird (Schritt 5450).
-
Die
Unter-DKC 1040'' setzt das entsprechende
Bit in der Unterbitmap A 1370 auf null (Schritt 5460),
während
sie das entsprechende Bit in der Unterbitmap B 1390 auf
1 setzt (Schritt 5470). Die Unter-DKC 1040'' steuert die Unterplatteneinheit 1160' so, dass die
empfangenen Daten in das Un ter-Hauptvolume 1320 geschrieben
werden, um den dezentralen Unter-Kopiervorgang B 5400 abzuschließen (Schritt 5480).
-
Wird
andererseits in Schritt 5430 festgestellt, dass der Untereinfriermodus 1090 ausgeschaltet
ist, setzt die Unter-DKC 1040'' das
entsprechende Bit in der Unterbitmap A 1370 auf 1, um den
Vorgang in Schritt 5480 auszuführen (Schritt 5490).
-
Weil
das Volume-Image des Haupt-Hauptvolumes 1300 zu einem Zeitpunkt,
an dem der Host-Computer 1010 den Einfrierbefehl das letzte Mal
ausgegeben hat, in Form der im Unter-Untervolume 1330 gespeicherten
Daten oder in Form der Kombination der im Unter-Untervolume 1330 und
im Unter-Hauptvolume 1320 gespeicherten
Daten gehalten wird, wird im vorliegenden Beispiel der dem Unter-Wiederherstellungsvorgang 3000 entsprechende
Verarbeitungsvorgang unnötig.
-
Wenn
die Anforderung zum Lesen der Daten vom Host-Computer 1010 erfolgt
ist, können
die Daten des Haupt-Hauptvolumes 1300 dorthin übertragen
werden.
-
Nachstehend
wird eine bevorzugte Modifikation der vorliegenden Erfindung beschrieben.
-
Ein
Unterschied der Modifikation gegenüber den anderen Beispielen
und der Ausführungsform
ist der, dass die Daten, die vom Hauptspeichergerät 1130 an
das Unterspeichergerät 1160 übertragen werden,
verschlüsselt
werden.
-
Die
Modifikation wird nachstehend auf der Grundlage des ersten Beispiels
beschrieben. Selbstverständlich
kann die vorliegende Modifikation aber auch bei der Ausführungsform
und dem zweiten Beispiel angewendet werden.
-
Bei
der vorliegenden Modifikation werden, wenn die Daten vom Haupt-Hauptvolume 1300 an das
Haupt-Untervolume 1310 übertragen
werden, die zu übertragenden
Daten verschlüsselt
(codiert).
-
Darüber hinaus
werden die verschlüsselten Daten
vom Haupt-Untervolume 1310 an das Unter-Hauptvolume 1320 übertragen,
und wenn die verschlüsselten
Daten vom Unter-Haupt volume 1320 in das Unter-Untervolume 1330 übertragen
werden, werden die betreffenden Daten decodiert.
-
Als
Ergebnis werden die verschlüsselten
Daten in dem Netzwerk 1050 übertragen. Nachstehend wird
der Unterschied gegenüber
dem ersten Beispiel beschrieben.
-
Bei
der vorliegenden Modifikation werden in 13B die
Daten vom Haupt-Hauptvolume 1300 in das Haupt-Untervolume 1310 kopiert,
wobei die Daten verschlüsselt
(codiert) werden (angedeutet durch einen Pfeil L210).
-
Darüber hinaus
werden in 13D in der Unter-DKC 1040' die Daten vom
Unter-Hauptvolume 1320 in das Unter-Untervolume 1330 kopiert, wobei die
verschlüsselten
Daten decodiert werden (angedeutet durch einen Pfeil P250).
-
In 14 werden
die gespeicherten Daten verschlüsselt,
wenn die Haupt-DKC 1030' geteilt wird.
Darüber
hinaus werden, wenn die Unter-DKC 1040' geteilt wird, die gespeicherten
Daten, die bereits verschlüsselt
sind, decodiert.
-
In
Schritt 3440 in 15 kopiert
die Haupt-DKC 1030' die
in dem entsprechenden Block gespeicherten Daten aus dem Haupt-Hauptvolume 1300 in
das Haupt-Untervolume 1310, nachdem die betreffenden Daten
verschlüsselt
worden sind.
-
In
Schritt 3650 in 16 steuert
die Haupt-DKC 1030' die
Hauptplatteneinheit 1130' so, dass
der entsprechende Block des Haupt-Hauptvolumes 1300 ausgelesen
wird, um verschlüsselt
zu werden, und die verschlüsselten
Daten werden in das Haupt-Untervolume 1310 kopiert.
-
In
Schritt 4030 in 18 steuert
die Unter-DKC 1040' die
Unterplatteneinheit 1160' so,
dass der entsprechende Block des Unter-Hauptvolumes 1320 an
die Unter-DKC 1040' ausgelesen
wird und die verschlüsselten
Daten decodiert werden, um sie in den entsprechenden Block des Unter-Untervolumes 1330 zu
kopieren.
-
Durch
Anwendung der Konfiguration nach der vorliegenden Modifikation kann
das eingefrorene Volume-Image in jeder der Platteneinheiten sichergestellt
werden, wobei die Sicherheit der übertragenen Daten gewährleistet
ist.
-
Durch
Anwendung der Konfiguration nach der vorliegenden Erfindung kann,
auch wenn das dezentrale Kopieren ohne Garantie hinsichtlich der
Reihenfolge ausgeführt
wird, das Volume-Image mit ausgezeichneter Kohärenz sichergestellt werden.
-
Auch
wenn die vorliegende Erfindung insbesondere unter Bezugnahme auf
die Beispiele und die bevorzugte Ausführungsform gezeigt und beschrieben
worden ist, ist ersichtlich, dass sich für den Fachmann verschiedene Änderungen
und Modifikationen ergeben, ohne vom Umfang der Erfindung abzuweichen.
Der Umfang der Erfindung ist daher ausschließlich durch die anliegenden
Ansprüche
festgelegt.