DE60124867T2 - Speichergerät und Verfahren zur Datensicherung - Google Patents

Speichergerät und Verfahren zur Datensicherung Download PDF

Info

Publication number
DE60124867T2
DE60124867T2 DE2001624867 DE60124867T DE60124867T2 DE 60124867 T2 DE60124867 T2 DE 60124867T2 DE 2001624867 DE2001624867 DE 2001624867 DE 60124867 T DE60124867 T DE 60124867T DE 60124867 T2 DE60124867 T2 DE 60124867T2
Authority
DE
Germany
Prior art keywords
data
main
sub
dkc
volume
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE2001624867
Other languages
English (en)
Other versions
DE60124867D1 (de
Inventor
Hitachi Ltd. Kyosuke Chiyoda-ku Achiwa
Hitachi Ltd. Takashi Chiyoda-ku Oeda
Katsunori Int. Prop. Group Hitachi Ltd. Chiyoda-ku Nakamura
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority claimed from EP01110872A external-priority patent/EP1255198B1/de
Application granted granted Critical
Publication of DE60124867D1 publication Critical patent/DE60124867D1/de
Publication of DE60124867T2 publication Critical patent/DE60124867T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

  • 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.

Claims (6)

  1. Verfahren zur Datensicherung in einem Informationsverarbeitungssystem (1000) mit einem Host-Computer (1010), einem Hauptspeichergerät (1180), das eine erste Plattensteuereinheit (1030) zum Empfangen von Daten von dem Host und eine oder mehrere erste Speicherplatten (1130) aufweist, die jeweils in Kommunikation mit der ersten Speicherplatteneinheit (1030) stehen, und einem Unterspeichergerät (1190), das eine zweite Plattensteuereinheit (1040) und eine oder mehrere zweite Speicherplatten (1160) aufweist, die jeweils in Datenkommunikation mit dem Hauptspeichergerät stehen, wobei in dem Verfahren Daten von dem Hauptspeichergerät zu dem Unterspeichergerät gesichert werden, wobei ein Befehl zum Aufrechterhalten von ersten, in einem ersten Speicherbereich (1120) des Hauptspeichergeräts gespeicherten Daten von dem Host-Computer (1010) zu dem Hauptspeichergerät (1180) gesendet werden, in Reaktion auf den Befehl die erste Plattensteuereinheit (1030) die empfangenen Daten hält und die ersten Daten bei Erhalt der Instruktion zum Halten der Daten von dem ersten Speicherbereich (1120) in einen dritten Speicherbereich (1170) des Unterspeichergeräts (1190) überträgt, falls während der Übertragung das Hauptspeichergerät (1180) nachfolgende Daten von dem Host-Computer (1010) zum Aktualisieren entsprechender, in dem ersten Speicherbereich (1120) gespeicherter Daten erhält und die nachfolgenden Daten neue Daten entsprechend einem Abschnitt der gespeicherten Daten darstellen, die bereits zu dem Unterspeichergerät (1190) übertragen wurden, die nachfolgenden Daten in den ersten Speicherbereich (1120) gespeichert werden, falls die nachfolgenden Daten nicht zu dem Unterspeichergerät (1190) übertragen wurden, die nachfolgenden Daten in einen zweiten Speicherbereich (1140) des Hauptspeichergeräts (1180) gespeichert werden, nach Abschluß der Übertragung der ersten Daten ein erstes Signal von dem Hauptspeichergerät (1180) zu der zweiten Plattensteuereinheit (1040) des Unterspeichergeräts (1190) übermittelt wird, das den Abschluß anzeigt, und in Reaktion auf das erste Signal in dem dritten Speicherbereich (1170) gespeicherte Daten durch die zweite Plattensteuereinheit in einen vierten Speicherbereich (1150) in dem Unterspeichergerät (1190) kopiert werden.
  2. Verfahren nach Anspruch 1, wobei ferner nach Abschluß des Kopierens von in den dritten Speicherbereich (1170) gespeicherten Daten ein zweites Signal von dem Unterspeichergerät (1190) zu dem Hauptspeichergerät (1180) übermittelt wird, das den Abschluß anzeigt, falls das Hauptspeichergerät (1180) nach dem Übertragen des ersten Signals aber vor dem Empfang des zweiten Signals Daten von dem Host-Computer (1010) empfängt, die empfangenen Daten in den ersten Speicherbereich (1120) gespeichert, die Daten in das Unterspeichergerät (1190) übertragen und die Daten in einen fünften Speicherbereich (1175) in dem Unterspeichergerät (1190) gespeichert werden.
  3. Verfahren nach Anspruch 1, wobei beim Übertragen der aufrechterhaltenen Daten, die in dem ersten Speicherbereich (1120) gespeichert sind, ferner die ersten Daten verschlüsselt werden, um verschlüsselte Daten zu erzeugen, und die verschlüsselten Daten an das Unterspeichergerät (1190) gesendet werden, und wobei beim Kopieren der Daten, die in dem dritten Speicherbereich (1170) gespeichert sind, ferner die verschlüsselten Daten decodiert werden, um decodierte Daten zu erzeugen, und die decodierten Daten in den vierten Speicherbereich (1150) gespeichert werden.
  4. Speichersystem mit einem Hauptspeichergerät (1180), das eine erste Plattensteuereinheit (1030) zum Empfangen von Daten von einem Host-Computer (1010) und eine oder mehrere erste Speicherplatten (1130) aufweist, die jeweils in Datenkommunikation mit der ersten Plattensteuereinheit (1030) stehen, einem Unterspeichergerät (1190), das eine zweite Plattensteuereinheit (1040) und eine oder mehrere zweite Speicherplatten (1160) aufweist, die jeweils an die zweite Plattensteuereinheit (1040) angeschlossen sind, und einem Netzwerk (1050), an das das Hauptspeichergerät (1180) und das Unterspeichergerät (1190) angeschlossen sind, wobei die erste Plattensteuereinheit (1030) dazu ausgelegt ist, von dem Host-Computer (1010) empfangene Daten in einen ersten Speicherbereich (1120) des Hauptspeichergeräts (1180) zu speichern, die erste Plattensteuereinheit (1030) ferner dazu ausgelegt ist, in dem ersten Speicherbereich (1120) gespeicherte Daten an die zweite Plattensteuereinheit (1040) zu senden, die zweite Plattensteuereinheit (1040) dazu ausgelegt ist, von der ersten Plattensteuereinheit (1030) empfangene Daten in einen dritten Speicherbereich (1170) in dem Unterspeichergerät (1190) zu speichern, wobei die erste Plattensteuereinheit (1030) ferner dazu ausgelegt ist: einen Befehl zum Halten von Daten von dem Host-Computer (1010) zu empfangen, gespeicherte Daten, die in den ersten Speicherbereich (1120) bei Empfang des Befehls zum Halten von Daten gespeichert wurden, an die zweite Plattensteuereinheit (1040) zu senden, nach dem Empfangen des Befehls und vor Abschluß des Sendens der gespeicherten Daten nachfolgende Daten von dem Host-Computer (1010) zu empfangen, und die nachfolgenden Daten in den ersten Speicherbereich (1120) des Hauptspeichergeräts (1180) zu speichern, falls die nachfolgenden Daten neue Daten bezüglich eines Abschnitts der gespeicherten Daten darstellen, die bereits an das Unterspeichergerät (1190) gesendet wurden, die nachfolgenden Daten in einen zweiten Speicherbereich (1140) des Hauptspeichergeräts (1180) zu speichern, falls die nachfolgenden Daten neue Daten bezüglich eines Abschnitts der gespeicherten Daten darstellen, der noch nicht an das Unterspeichergerät (1190) gesendet wurde, und ein erstes Signal an die zweite Plattensteuereinheit (1040) zu senden, das den Abschluß des Sendens der gespeicherten Daten von dem ersten Speicherbereich (1120) darstellt, wobei die zweite Plattensteuereinheit (1040) dazu ausgelegt ist, in dem dritten Speicherbereich (1170) gespeicherte Daten in einen vierten Speicherbereich (1150) des Unterspeichergeräts (1190) zu kopieren, nachdem das erste Signal empfangen wurde.
  5. System nach Anspruch 4, wobei die zweite Plattensteuereinheit (1040) ferner dazu ausgelegt ist: ein zweites Signal zu senden, das den Abschluß des Kopierens von Daten von dem dritten Speicherbereich (1170) zu dem vierten Speicherbereich (1150) anzeigt, und Daten, die von der ersten Plattensteuereinheit (1030) nach dem Empfang des ersten Signals und vor dem Senden des zweiten Signals empfangen wurden, in einen fünften Speicherbereich (1175) des Unterspeichergeräts (1190) zu speichern.
  6. System nach Anspruch 4, wobei nach dem Empfang des ersten Signals, die zweite Plattensteuereinheit (1040) ferner dazu ausgelegt ist, Daten, die von der ersten Plattensteuereinheit (1030) nach dem Empfang des ersten Signals empfangen wurden, in den dritten Speicherbereich (1170) zu speichern, falls durch die empfangenen Daten zu aktualisierende Daten bereits in den vierten Speicherbereich (1150) kopiert wurden.
DE2001624867 2001-05-04 2001-05-04 Speichergerät und Verfahren zur Datensicherung Expired - Lifetime DE60124867T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP01110872A EP1255198B1 (de) 2001-02-28 2001-05-04 Speichergerät und Verfahren zur Datensicherung

Publications (2)

Publication Number Publication Date
DE60124867D1 DE60124867D1 (de) 2007-01-11
DE60124867T2 true DE60124867T2 (de) 2007-06-28

Family

ID=37562810

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2001624867 Expired - Lifetime DE60124867T2 (de) 2001-05-04 2001-05-04 Speichergerät und Verfahren zur Datensicherung

Country Status (1)

Country Link
DE (1) DE60124867T2 (de)

Also Published As

Publication number Publication date
DE60124867D1 (de) 2007-01-11

Similar Documents

Publication Publication Date Title
DE60001460T2 (de) Datenfernkopieren unter verwendung von potentiellen aufhebungsbefehlen
DE602005002024T2 (de) Fernkopiersystem und Fernkopierverfahren
DE60038364T2 (de) Computersystem und Speicherauszugsdatenverwaltungsverfahren
DE69311952T2 (de) Verfahren und System zur inkrementalen Datensicherung
DE602004006084T2 (de) Fernkopiersystem mit garantierter Konsistenz eines Daten-Paares
DE69032685T2 (de) Verfahren und system mit einem cache für offene dateien in einem netzwerkrechnersystem
DE68928546T2 (de) Dateisystem für eine vielzahl von speicherklassen
DE69714344T2 (de) Vorrichtung und Verfahren für die Verfügbarkeit und Wiedergewinnung von Dateien unter Verwendung von Sammlungen von Kopierspeicher
DE102004013114B4 (de) Plattenarrayvorrichtung
DE602004005415T2 (de) Rechnersystem zur Wiedergewinnung von Daten auf Basis von Datenprioritäten
DE69426264T2 (de) Datenfernkopierung
DE60213867T2 (de) Vorrichtung zur verwaltung von datenreplikation
DE69312781T2 (de) Verfahren und System zum Seitendatei Statusabrufen in einem Nullzeittyp Sicherungskopieprozess
DE69838898T2 (de) Doppelte Plattenspeichersteuerungen
DE69413977T2 (de) Anordnung und verfahren zur verteilten datenverwaltung in vernetzten rechnersystemen
DE60025749T2 (de) Dateisystemabbildübertragung zwischen ungleichen dateisystemen
DE10112941B4 (de) System und Verfahren für das parallele Lesen von primären und sekundären Sicherungen zur Wiederherstellung mehrerer gemeinsam benutzter Datenbankdateien
DE68927142T2 (de) Verriegelungs- und Lese-Minimierung in einem segmentierten Speicherraum
DE69030024T2 (de) Verfahren zur Herstellung einer Duplikation von einer Datenbank
DE69938378T2 (de) Kopieren von Daten in Speichersystemen
DE4497149B4 (de) Computerbezogenes Verfahren zur Datenreplikation in Peer-to-Peer-Umgebung
DE69831944T2 (de) Vorrichtung und verfahren zur sicherung eines plattenspeichersystem
DE602005001041T2 (de) Speicherauszugssystem
DE60318477T2 (de) Vorrichtung zur dateiaktualisierung
DE69801824T2 (de) Speicher für informationsteurung eines mehrhostrechnerspeichers

Legal Events

Date Code Title Description
8364 No opposition during term of opposition