-
Diese
Anwendung bezieht sich auf die am 4. August 2004 eingereichte
japanische Patentanmeldung 2004-228203 und
leitet die Priorität
von dieser ab.
-
Die
vorliegende Erfindung betrifft eine Datenspeicherungs-Verarbeitungstechnologie,
beispielsweise das Kopieren von Daten zwischen mehreren Speichersystemen.
-
In
den letzten Jahren ist, um Kunden ständig einen kontinuierlichen
Dienst bereitzustellen, eine Technologie zum Kopieren von Daten
zwischen Speichersystemen sehr wichtig geworden, so dass ein Datenverarbeitungssystem
selbst dann noch Dienste bereitstellen kann, falls ein Problem in
einem ersten Speichersystem aufgetreten ist. Ein Beispiel einer Technologie
zum Kopieren der im ersten Speichersystem gespeicherten Informationen
in ein zweites und ein drittes Speichersystem ist dasjenige, das
in dem folgenden Patentdokument offenbart ist.
-
In
US-A-5 170 480 ist
eine Technologie offenbart, durch die eine mit einem ersten Speichersystem
verbundene erste Computervorrichtung die im ersten Speichersystem
gespeicherten Daten über eine
Kommunikationsverbindung zwischen der ersten Computervorrichtung
und einer zweiten Computervorrichtung zu der zweiten Computervorrichtung überträgt und die
zweite Computervorrichtung diese Daten zu einem zweiten Speichersystem überträgt, das
mit der zweiten Computervorrichtung verbunden ist.
-
Die
in
US-A-5 170 480 offenbarte
Technologie verwendet stets eine erste Computervorrichtung und eine
zweite Computervorrichtung, um Daten zu kopieren. Die erste Computervorrichtung
führt normale
Aufgaben aus, und die durch die Datenkopierverarbeitung an der ersten
Computervorrichtung erzeugte Belastung ist nicht unerheblich. Weil überdies eine
Kommunikationsverbindung zwischen der ersten Computervorrichtung
und dem ersten Speichersystem für
die Übertragung
der Daten verwendet wird, ergibt sich das Problem, dass die Daten
für die Kopie
einen Konflikt mit der für
normale Aufgaben benötigten
Datenübertragung
hervorrufen können,
wodurch bewirkt wird; dass die Datenbezugszeit und die Datenaktualisierungszeit,
die für
normale Aufgaben benötigt
werden, zunehmen.
-
Überdies
erscheint es auch als wünschenswert,
die Funktionsweise des Kopierens von Daten aus dem ersten Speichersystem
in das zweite Speichersystem (beispielsweise durch Verkürzen der zum
Kopieren der Daten benötigten
Zeitdauer) zu verbessern.
-
Falls
weiterhin ein bestimmtes Ereignis auftritt (beispielsweise falls
der freie Speicherplatz am Ziel für die kopierten Daten ausgeht),
kann der Prozess zum Kopieren der Daten von dem ersten Speichersystem
in das zweite Speichersystem unterbrochen werden, es erscheint jedoch
als wünschenswert,
den Zeitraum von der Zeit, zu der der Datenkopierprozess unterbrochen
wird, bis zu der Zeit, zu der er wieder beginnt, zu verkürzen.
-
In
US 6 226 651 B1 ist
eine integrierte DBMS-Lösung
für das
Wiedergewinnen einer Datenbank einer ersten Stelle auf der Grundlage
der Wartung einer Schattenkopie der Daten der Datenbank der ersten
Stelle und auf der Grundlage von Protokollen an einer fernen Stelle
offenbart. Sowohl das DBMS der ersten Stelle als auch das DBMS der
fernen Stelle können
ein Vorausschreibprotokoll, bei dem Protokolldatensätze in eine
Protokolldatenreihe geschrieben werden, bevor Datenbankaktualisierungen
in den Speicher der fernen Stelle eingegeben werden, unterstützen. Die
ferne Stelle dient mindestens zwei Funktionen, nämlich als ein "Verfolgungs"-DBMS und als ein "Übernahme"-DBMS. Die Verfolgungsfunktion unterhält eine
Schattenkopie der Datenreihen der Datenbank der ersten Stelle an
der fernen Stelle. Die mehrphasige Übernahmefunktion verwendet
die Schattenkopien zum Aktualisieren der Datenreihen der Datenbank
der fernen Stelle und ersetzt sie durch Datenreihen der Datenbank
der ersten Stelle, die durch eine nicht eingeplante Katastrophe
an der ersten Stelle nicht verfügbar
wurden.
-
In
EP 1 400 899 A ist
ein Verfahren zum Speichern von Daten in einem fehlertoleranten
Speicheruntersystem mit einem Array fehlerunabhängiger Datenspeichereinheiten
durch Unterteilen des Speicherbereichs an den Speichereinheiten
in einen logischen Spiegelbereich und einen logischen Streifenbereich
offenbart, so dass, wenn Daten in dem Spiegelbereich gespeichert
werden, die Daten dupliziert werden, indem eine Duplikatkopie der
Daten an einem Paar von Speichereinheiten unterhalten wird, und,
wenn Daten an dem Streifenbereich gespeichert werden, Daten als
Streifen von Blöcken
gespeichert werden, welche Datenblöcke und zugeordnete Fehlerkorrekturblöcke einschließen.
-
Die
vorliegende Erfindung löst
vorzugsweise eine oder mehrere der folgenden Aufgaben. Eine Aufgabe
der vorliegenden Erfindung besteht darin, eine Datenübertragung
bei einer Datenkopie zwischen mehreren Speichersystemen auszuführen, ohne
die Computervorrichtung der höchsten
Ebene des Speichersystems zu beeinträchtigen. Eine weitere Aufgabe
der vorliegenden Erfindung besteht darin, das Beeinträchtigen
von Kommunikationen zwischen dem Speichersystem und der Computervorrichtung zu
vermeiden.
-
Eine
weitere Aufgabe der vorliegenden Erfindung besteht darin, die Funktionsweise
der Datenkopie von einem ersten Speichersystem zu einem zweiten
Speichersystem zu verbessern.
-
Eine
weitere Aufgabe der vorliegenden Erfindung besteht darin, den Zeitraum
von der Unterbrechung einer Datenkopie von einem ersten Speichersystem
in ein zweites Speichersystem bis zur Wiederaufnahme der Datenkopie
zu verkürzen.
-
Andere
Aufgaben der vorliegenden Erfindung werden anhand der folgenden
Beschreibung verständlich
werden.
-
Das
Speichersystem gemäß einem
ersten Aspekt der vorliegenden Erfindung ist ein Speichersystem
nach Anspruch 1.
-
Das
erste Speichersystem und das zweite Speichersystem können jeweils
eine eigentliche Speichervorrichtung sein, oder sie können Systeme sein,
die mehrere Speichervorrichtungen aufweisen. Im letztgenannten Fall
sind beispielsweise der erste Speicherbereich und der zweite Speicherbereich
jeweils logische Datenträger,
und sie können
in getrennten Speichervorrichtungen bereitgestellte Speicherbereiche
sein.
-
Gemäß dem ersten
Modus zum Implementieren der vorliegenden Erfindung ist jeder der
mehreren Speicherbereiche in einen Aktualisierungsinformations-Unterbereich
zum Speichern der Aktualisierungsinformationen der Datenreihe und
einen Daten-Unterbereich zum Speichern der Daten der Datenreihe
unterteilt. In diesem Fall speichert der Steuerabschnitt die ersten
Daten in dem Daten-Unterbereich des ersten Speicherbereichs und
die zweiten Daten in dem Daten-Unterbereich des zweiten Speicherbereichs.
-
Gemäß einem
zweiten Modus zum Implementieren der vorliegenden Erfindung sind
in dem ersten Implementationsmodus die in der zweiten Datenreihe
enthaltenen zweiten Daten Daten, die anschließend an die in der ersten Datenreihe
enthaltenen ersten Daten gespeichert werden.
-
Gemäß einem
dritten Modus zum Implementieren der vorliegenden Erfindung erzeugt
das zweite Speichersystem einen Datenreihen-Lesebefehl zum Auslesen
der Datenreihe und sendet den so erzeugten Datenreihen-Lesebefehl
und einen Bereichsidentifizierungscode zum Identifizieren von jedem
der mehreren Speicherbereiche zu dem ersten Speichersystem. Der
Steuerabschnitt empfängt
den Datenreihen-Lesebefehl und den Bereichsidentifizierungscode
von dem zweiten Speichersystem, liest Aktualisierungsinformationen
von den mehreren Speicherbereichen in Reaktion auf den Datenreihen-Lesebefehl
aus, liest ferner den Aktualisierungsinformationen entsprechende Daten
aus dem Speicherbereich der mehreren Speicherbereiche aus, der dem
empfangenen Bereichsidentifizierungscode entspricht, und sendet
die aus den Aktualisierungsinformationen und den so ausgelesenen
Daten zusammengesetzte Datenreihe zu dem zweiten Speichersystem.
-
Gemäß einem
vierten Modus zum Implementieren der vorliegenden Erfindung weist
das erste Speichersystem weiter auf: eine Datenträgerreihe, die
aus einem oder mehreren logischen Datenträgern zum Speichern der Datenreihen
gebildet ist. Die Datenträgerreihe
ist in mehrere Unter-Datenträgerbereiche
unterteilt. Jeder der mehreren Speicherbereiche stellt einen Unter-Datenträgerbereich
dar. Jeder der mehreren Unter-Datenträgerbereiche erstreckt sich über einen
oder mehrere logische Datenträger.
-
Gemäß einem
fünften
Modus zum Implementieren der vorliegenden Erfindung ist in dem vierten
Implementationsmodus jeder der einen oder mehreren logischen Datenträger in einen
Aktualisierungsinformationsbereich zum Speichern der Aktualisierungsinformationen
der Datenreihen und einen Datenbereich zum Speichern der Daten der
Datenreihen unterteilt. Wenigstens der Datenbereich des Aktualisierungsinformationsbereichs
und der Datenbereich sind in mehrere Unter-Datenbereiche unterteilt.
Falls es einen logischen Datenträger
gibt, stellt jeder der mehreren Unter-Datenträgerbereiche einen Unter-Datenbereich
dar, während,
wenn es mehrere logische Datenträger
gibt, jeder der mehreren Unter-Datenträgerbereiche
eine Unter-Datenbereichsgruppe darstellt, die durch eine Gruppe
von mehreren Unter-Datenbereichen gebildet ist, die jeweils in den
mehreren logischen Datenträgern
vorgesehen sind.
-
Gemäß einem
sechsten Modus zum Implementieren der vorliegenden Erfindung ändert der Steuerabschnitt
im fünften
Implementationsmodus das Speicherziel für die in der Datenreihe enthaltenen
Daten für
jeden Unter-Datenträgerbereich.
-
Gemäß einem
siebten Modus zum Implementieren der vorliegenden Erfindung ist
im vierten Implementationsmodus die Anzahl der Unter-Datenträgerbereiche
größer oder
gleich der Anzahl der logischen Datenträger.
-
Gemäß einem
achten Modus zum Implementieren der vorliegenden Erfindung erzeugt
das zweite Speichersystem einen Datenreihen-Lesebefehl zum Auslesen
der Datenreihe und sendet diesen zu dem ersten Speichersystem. Der
Steuerabschnitt empfängt
den Datenreihen-Lesebefehl von dem zweiten Speichersystem, liest
mehrere Datenreihen in Reaktion auf den Datenreihen-Lesebefehl aus dem
Datenreihen-Speicherbereich aus und sendet sie zum zweiten Speichersystem.
-
Gemäß einem
neunten Modus zum Implementieren der vorliegenden Erfindung liest
der Steuerabschnitt im achten Implementationsmodus mehrere Daten
aus aufeinander folgenden Bereichen des Datenreihen-Speicherbereichs,
liest mehrere Aktualisierungsdaten, die jeweils den mehreren Daten
entsprechen, aus dem Datenreihen-Speicherbereich, erzeugt die mehreren
Datenreihen mit den mehreren Daten und den mehreren so ausgelesenen
Aktualisierungsdaten und sendet sie zum zweiten Speichersystem.
-
Gemäß einem
zehnten Modus zum Implementieren der vorliegenden Erfindung weist
das erste Speichersystem weiter einen Cache-Speicher zum Zwischenspeichern
von Datenreihen auf, die zwischen dem zweiten Speichersystem und
dem Datenreihen-Speicherbereich ausgetauscht werden. Das zweite
Speichersystem erzeugt einen Datenreihen-Lesebefehl zum Auslesen
der Datenreihe und sendet diesen zum ersten Speichersystem. In diesem
Fall empfängt
der Steuerabschnitt den Datenreihen-Lesebefehl von dem zweiten Speichersystem, liest
in Reaktion auf den Datenreihen-Lesebefehl eine Datenreihe aus dem
Datenreihen-Speicherbereich in den Cache-Speicher, sendet die in den Cache-Speicher
ausgelesene Datenreihe zum zweiten Speichersystem, liest eine Datenreihe
aus dem Datenreihen-Speicherbereich in den Cache-Speicher, bevor
der nächste
Datenreihen-Lesebefehl empfangen wird, und sendet die in dem Cache-Speicher
gespeicherte Datenreihe zu dem zweiten Speichersystem, wenn der
nächste
Datenreihen-Lesebefehl empfangen wird.
-
Gemäß einem
elften Modus zum Implementieren der vorliegenden Erfindung weist
das zweite Speichersystem einen zweiten logischen Datenträger auf.
Der erste logische Datenträger
zum Speichern von Daten ist mit mehreren Unterbereichen versehen,
und das erste Speichersystem weist ferner einen Differenzinformations-Speicherbereich
zum Speichern der sich auf den ersten logischen Datenträger beziehenden
Differenzinformationen auf. Die Differenzinformationen weisen einen
Einstellwert auf, der angibt, ob es einen Unterschied zwischen dem ersten
logischen Datenträger
und dem zweiten logischen Datenträger bezüglich der in jedem der mehreren
Unterbereiche in dem ersten logischen Datenträger gespeicherten Daten gibt.
Der Steuerabschnitt nimmt auf die Differenzinformationen Bezug und
erzeugt die Datenreihe für
bestimmte Daten nicht, falls der zu den bestimmten Daten gehörende Einstellwert angibt,
dass kein Unterschied besteht.
-
Das
Datenverarbeitungssystem gemäß einem
zweiten Aspekt der vorliegenden Erfindung ist in Anspruch 13 dargelegt.
-
Das
Datenverarbeitungsverfahren gemäß einem
dritten Aspekt der vorliegenden Erfindung ist in Anspruch 14 dargelegt.
-
Kurzbeschreibung der Zeichnung
-
1 ist
ein Blockdiagramm, das die logische Zusammensetzung gemäß einem
Modus zum Implementieren der vorliegenden Erfindung zeigt,
-
2 ist
ein Blockdiagramm des Speichersystems gemäß einem Modus zum Implementieren der
vorliegenden Erfindung,
-
3 ist
ein Diagramm, das die Beziehung zwischen Aktualisierungsinformationen
und Schreibdaten gemäß einem
Modus zum Implementieren der vorliegenden Erfindung zeigt,
-
4 ist
ein Diagramm, das ein Beispiel von Datenträgerinformationen gemäß einem
Modus zum Implementieren der vorliegenden Erfindung zeigt,
-
5 ist
ein Diagramm, das ein Beispiel von Paarinformationen gemäß einem
Modus zum Implementieren der vorliegenden Erfindung zeigt,
-
6 ist
ein Diagramm, das ein Beispiel von Gruppeninformationen gemäß einem
Modus zum Implementieren der vorliegenden Erfindung zeigt,
-
7 ist
ein Diagramm, das ein Beispiel von Zeigerinformationen gemäß einem
Modus zum Implementieren der vorliegenden Erfindung zeigt,
-
8 ist
ein Diagramm, das den Aufbau eines logischen Journal-Datenträgers gemäß einem Modus
zum Implementieren der vorliegenden Erfindung zeigt,
-
9 ist
ein Flussdiagramm, das eine Prozedur zum Einleiten einer Kopie von
Daten gemäß einem
Modus zum Implementieren der vorliegenden Erfindung zeigt,
-
10 ist ein Flussdiagramm zum Beschreiben eines
anfänglichen
Kopierprozesses gemäß einem
Modus zum Implementieren der vorliegenden Erfindung,
-
11 ist ein Diagramm zum Beschreiben eines Befehlsempfangsprozesses
gemäß einem
Modus zum Implementieren der vorliegenden Erfindung,
-
12 ist ein Flussdiagramm eines Befehlsempfangsprozesses
gemäß einem
Modus zum Implementieren der vorliegenden Erfindung,
-
13 ist ein Flussdiagramm eines Journal-Erzeugungsprozesses
gemäß einem
Modus zum Implementieren der vorliegenden Erfindung,
-
14 ist ein Diagramm zum Beschreiben eines Journal-Lese-Empfangsprozesses
gemäß einem
Modus zum Implementieren der vorliegenden Erfindung,
-
15 ist ein Flussdiagramm eines Journal-Lese-Empfangsprozesses
gemäß einem
Modus zum Implementieren der vorliegenden Erfindung,
-
16 ist ein Diagramm zum Beschreiben eines Journal-Lese-Befehlsprozesses
gemäß einem Modus
zum Implementieren der vorliegenden Erfindung,
-
17 ist ein Flussdiagramm eines Journal-Lese-Befehlsprozesses
gemäß einem
Modus zum Implementieren der vorliegenden Erfindung,
-
18 ist ein Flussdiagramm eines Journal-Speicherprozesses
gemäß einem
Modus zum Implementieren der vorliegenden Erfindung,
-
19 ist ein Diagramm zum Beschreiben eines Umspeicherprozesses
gemäß einem
Modus zum Implementieren der vorliegenden Erfindung,
-
20 ist ein Flussdiagramm eines Umspeicherprozesses
gemäß einem
Modus zum Implementieren der vorliegenden Erfindung,
-
21 ist ein Diagramm, das ein Beispiel von Aktualisierungsinformationen
gemäß einem
Modus zum Implementieren der vorliegenden Erfindung zeigt,
-
22 ist ein Diagramm, das ein Beispiel von Aktualisierungsinformationen
in einem Journal-Erzeugungsprozess gemäß einem Modus zum Implementieren
der vorliegenden Erfindung zeigt,
-
23 zeigt einen Überblick eines Zusammensetzungsbeispiels
eines Datenverarbeitungssystems in Bezug auf eine erste Ausführungsform
eines Modus zum Implementieren der vorliegenden Erfindung,
-
24 zeigt ein Beispiel der Zusammensetzung der
Zeigerinformationen 700A gemäß der ersten Ausführungsform
eines Modus zum Implementieren der vorliegenden Erfindung,
-
25 zeigt die Zusammensetzung der in 24 dargestellten Zeigerinformationen 700A,
worin die Zusammensetzung dieser Informationen in mehreren logischen
Journal-Datenträgern #1A,
#2A, #3A dargestellt ist,
-
26 zeigt ein Beispiel der Zusammensetzung der
Zeigerinformationen 700A bei einer ersten Modifikation
gemäß der ersten
Ausführungsform
eines Modus zum Implementieren der vorliegenden Erfindung,
-
27 zeigt ein Beispiel der Zusammensetzung mehrerer
logischer Journal-Datenträger
#1A, #2A, #3A gemäß einer zweiten
Ausführungsform
eines Modus zum Implementieren der vorliegenden Erfindung,
-
28 zeigt ein Beispiel der Zusammensetzung von
Gebietsinformationen zum Verwalten mehrerer Gebiete gemäß einer
zweiten Ausführungsform eines
Modus zum Implementieren der vorliegenden Erfindung,
-
29 zeigt ein Beispiel der Zusammensetzung von
Zeigerinformationen 700A entsprechend 27 und 28,
-
30 zeigt einen Abschnitt eines anfänglichen
Kopierprozesses gemäß einer
dritten Ausführungsform
eines Modus zum Implementieren der vorliegenden Erfindung,
-
31A zeigt eine erste GUI-Bildschirmdarstellung,
-
31B zeigt eine zweite GUI-Bildschirmdarstellung,
-
32A zeigt eine dritte GUI-Bildschirmdarstellung,
-
32B zeigt eine vierte GUI-Bildschirmdarstellung,
-
33A zeigt eine fünfte GUI-Bildschirmdarstellung
und
-
33B zeigt eine sechste GUI-Bildschirmdarstellung.
-
Detaillierte
Beschreibung der bevorzugten Ausführungsform Nachstehend werden
ein Modus zum Implementieren der vorliegenden Erfindung und mehrere
Ausführungsformen,
die auf diesem Implementationsmodus beruhen, mit Bezug auf die Zeichnung
beschrieben. Zuerst werden die Grundmerkmale der Datenverarbeitung
unter Verwendung von Journalen mit Bezug auf die 1 bis 22 als
ein Modus zum Implementieren der vorliegenden Erfindung beschrieben.
Danach werden Anwendungen dieser Datenverarbeitung mit Bezug auf 23 und folgende als Ausführungsformen, die auf diesem
Implementationsmodus beruhen, beschrieben.
-
1 ist
ein Blockdiagramm, das einen Überblick über die
logische Zusammensetzung eines Datenverarbeitungssystems in Bezug
auf einen Modus zum Implementieren der vorliegenden Erfindung zeigt.
-
Das
Datenverarbeitungssystem 1 wird durch Verbinden eines Host-Computers 180 und
eines Speichersystems 100A durch einen Verbindungsweg 190 und
durch Verbinden des Speichersystems 100A und eines Speichersystems 100B zum
Halten einer Kopie der im Speichersystem 100A gespeicherten Daten
durch einen Verbindungsweg 200 gebildet. In der folgenden
Beschreibung wird, um in einfacher Weise zwischen dem die zu kopierenden
Daten (mit anderen Worten die ursprünglichen Daten) enthaltenden
Speichersystem 100A und dem die kopierten Daten enthaltenden
Speichersystem 100B unterscheiden zu können, das die zu kopierenden
Daten enthaltende Speichersystem 100A als das "erste Speichersystem 100A" bezeichnet und das
die kopierten Daten enthaltende Speichersystem 100B als das "zweite Speichersystem 100B" bezeichnet. Überdies
kann der Begriff "Speichersystem 100" einfach verwendet
werden, um entweder 100A oder 100B zu bezeichnen. Überdies
wird der Speicherbereich eines Speichersystems 100 verwaltet,
indem er in getrennte Bereiche unterteilt wird, und diese unterteilten
Speicherbereiche werden als "logische
Datenträger" bezeichnet.
-
Ein
Speichersystem 100 weist mehrere logische Datenträger 230 auf.
Die Kapazität
der logischen Datenträger 230 und
ihre physikalischen Speicherpositionen (physikalischen Adressen)
in dem Speichersystem 100 können durch ein Wartungsendgerät in der
Art eines mit dem Speichersystem 100 verbundenen Computers
oder durch den Host-Computer 180 bestimmt werden. Die physikalische
Adresse jedes logischen Datenträgers 230 ist
in Datenträgerinformationen 400 gespeichert
(siehe 4), welche nachstehend beschrieben
werden. Die physikalische Adresse umfasst beispielsweise eine Nummer (Speichervorrichtungsnummer),
welche eine Speichervorrichtung innerhalb des Speichersystems 100 (beispielsweise
ein Festplattenlaufwerk) identifiziert, und einen Zahlenwert, der
einen Speicherbereich in dieser Speichervorrichtung eindeutig identifiziert,
beispielsweise eine Position von der Kopfposition des Speicherbereichs
der Speichervorrichtung. In der folgenden Beschreibung wird die
physikalische Adresse als eine Reihe angenommen, die eine Speichervorrichtungsnummer und
eine Position vom Kopf des Speicherbereichs der Speichervorrichtung
aufweist. Überdies
ist in der folgenden Beschreibung der logische Datenträger 230 ein
Speicherbereich in einer Speichervorrichtung, es ist jedoch auch
möglich,
dafür zu
sorgen, dass ein logischer Datenträger Speicherbereichen in mehreren
Speichervorrichtungen entspricht, indem die logische Adresse und
die physikalische Adresse konvertiert werden (mit anderen Worten
durch Zuordnen).
-
Wenn
auf in einem Speichersystem 100 gespeicherte Daten Bezug
genommen wird oder sie aktualisiert werden, können die den logischen Datenträger 230 identifizierende
Nummer (eine logische Datenträgernummer)
und der den Speicherbereich eindeutig identifizierende Zahlenwert,
beispielsweise die Position vom Kopf des Speicherbereichs des logischen
Datenträgers 230,
universell spezifiziert werden, und es wird nachstehend eine Reihe,
die eine logische Datenträgernummer
und eine Position vom Kopf des Speicherbereichs eines logischen
Datenträgers 230 enthält (die
Position an der logischen Adresse) als "logische Adresse" bezeichnet.
-
In
der folgenden Beschreibung wird zum leichten Unterscheiden zwischen
den zu kopierenden Daten und den kopierten Daten ein zu kopierende
Daten speichernder logischer Datenträger als ein "erster logischer
Datenträger" bezeichnet und ein
kopierte Daten speichernder logischer Datenträger als ein "zweiter logischer
Datenträger" bezeichnet. Überdies
wird ein Paar, das einen ersten logischen Datenträger und
einen zweiten logischen Datenträger
aufweist, als ein "Paar" bezeichnet. Die
Beziehungen, Zustände
und dergleichen der ersten logischen Datenträger und der zweiten logischen
Datenträger
sind in nachstehend beschriebenen Weginformationen 500 (siehe 5)
enthalten.
-
Zum
Aufrechterhalten der Aktualisierungssequenz der Daten zwischen den
jeweiligen logischen Datenträgern 230 sind
als Gruppen bekannte Verwaltungseinheiten bereitgestellt. Beispielsweise
aktualisiert der Host-Computer 180 erste Daten in dem ersten
logischen Datenträger
(DATA1) 230 und liest dann diese ersten Daten aus und führt eine
Verarbeitung zum Aktualisieren zweiter Daten in dem ersten logischen
Datenträger
(DATA2) 230 unter Verwendung des Zahlenwerts der ersten
Daten aus. Falls die Kopierverarbeitung zum Kopieren von Daten von dem
ersten logischen Datenträger
(DATA1) 230 zu dem zweiten logischen Datenträger (COPY1) 230 unabhängig von
der Kopierverarbeitung zum Kopieren von Daten von dem ersten logischen
Datenträger (DATA2) 230 zu
dem zweiten logischen Datenträger (COPY2) 230 ausgeführt wird,
kann die Kopierverarbeitung zum Kopieren der zweiten Daten zum zweiten
logischen Datenträger
(COPY2) 230 vor der Kopierverarbeitung zum Kopieren der
ersten Daten zum zweiten logischen Datenträger (COPY1) 230 ausgeführt werden.
Falls die Kopierverarbeitung zum Kopieren der ersten Daten zum zweiten
logischen Datenträger
(COPY1) 230 infolge eines Fehlers oder dergleichen zwischen
der Kopierverarbeitung zum Kopieren der zweiten Daten zum zweiten
logischen Datenträger
(COPY2) 230 und der Kopierverarbeitung zum Kopieren der
ersten Daten zum zweiten logischen Datenträger (COPY1) 230 unterbrochen wird,
werden die Daten im zweiten logischen Datenträger (COPY1) 230 und
die Daten im zweiten logischen Datenträger (COPY2) 230 zueinander
inkonsistent. Um die Konsistenz zwischen den Daten im zweiten logischen
Datenträger
(COPY1) 230 und im zweiten logischen Datenträger (COPY2) 230 selbst in
Fällen
dieser Art aufrechtzuerhalten, werden die logischen Datenträger 230,
welche die Datenaktualisierungssequenz bewahren müssen, in
der gleichen Gruppe registriert, und es wird jedes Mal dann, wenn die
Daten aktualisiert werden, eine Aktualisierungsnummer in den nachstehend
beschriebenen Gruppeninformationen 600 (siehe 6)
zugewiesen, und die Daten werden in der Reihenfolge der Aktualisierungsnummern
in den zweiten logischen Datenträger
kopiert. Beispielsweise bilden in 1 der
logische Datenträger
(DATA1) 230 und der logische Datenträger (DATA2) 230 des
ersten Speichersystems 100A eine Gruppe 1. Der logische
Datenträger (COPY1) 230,
der eine Kopie des logischen Datenträgers (DATA1) 230 ist,
und der logische Datenträger
(COPY2) 230, der eine Kopie des logischen Datenträgers (DATA2) 230 ist,
bilden die Gruppe 1 im zweiten Speichersystem 100B.
-
Um
die Daten im zweiten logischen Datenträger zu aktualisieren, wenn
die Daten im ersten logischen Datenträger aktualisiert werden, erzeugt
das erste Speichersystem 100A ein Journal (nachstehend
beschrieben), welches es in einem logischen Datenträger 230 im
ersten Speichersystem 100A speichert. Im vorliegenden Implementationsmodus ist
in jeder Gruppe ein logischer Datenträger zum Speichern nur des Journals
für diese
Gruppe (nachstehend als "logischer
Journal-Datenträger" bezeichnet) 230 bereitgestellt.
In 1 wird der logische Journal-Datenträger (JNL1) 230 der
Gruppe 1 im ersten Speichersystem 100A zugeordnet und der
logische Journal-Datenträger
(JNL2) 230 der Gruppe 1 im zweiten Speichersystem 100B zugeordnet.
-
Der
logische Journal-Datenträger
(JNL2) 230 speichert ein vom ersten Speichersystem 100A zum
zweiten Speichersystem 100B übertragenes Journal. Durch
Speichern des Journals im logischen Journal-Datenträger (JNL2) 230 ist
es beispielsweise, wenn die Last am zweiten Speichersystem 100B hoch
ist, möglich,
die Daten im zweiten logischen Datenträger 100B zu aktualisieren,
nachdem eine Zeit verstrichen ist und die Last am zweiten Speichersystem 100B abgenommen
hat, statt die Daten im zweiten logischen Datenträger 100B zu
aktualisieren, wenn das Journal empfangen wird. Falls es mehrere Verbindungswege 200 gibt,
werden weiterhin mehrere Journale überlagernd vom ersten Speichersystem 100A zum
zweiten Speichersystem 100B übertragen, so dass die Übertragungskapazität der Verbindungswege 200 wirksam
verwendet werden kann. Um die Aktualisierungssequenz zu bewahren,
ist es möglich,
dass sich eine große
Anzahl von Journalen in dem zweiten Speichersystem 100B akkumulieren kann,
der Cache-Speicher
(nachstehend beschrieben) kann jedoch durch Entnehmen aller Journale, die
nicht sofort zum Aktualisieren der Daten im zweiten logischen Datenträger verwendet
werden können,
zum logischen Journal-Datenträger
(JNL2) 230 freigegeben werden.
-
Ein
Journal enthält
die gleichen Schreibdaten wie jene, die in anderen logischen Datenträgern als
dem logischen Journal-Datenträger
(beispielsweise dem ersten logischen Datenträger oder dem zweiten logischen
Datenträger)
gespeichert sind, und Aktualisierungsinformationen. "Schreibdaten" bedeuten zu schreibende
Daten, die zusammen mit einem Schreibbefehl vom Host-Computer 180 übertragen werden. "Aktualisierungsinformationen" sind Informationen
zum Verwalten dieser Schreibdaten, und sie umfassen beispielsweise,
wie in 21 dargestellt ist, die Zeit,
zu der der Schreibbefehl empfangen wurde, die Gruppennummer, die
Aktualisierungsdaten der Gruppeninformationen 600 (nachstehend
beschrieben), die logische Adresse des Schreibbefehls, die Datengröße der Schreibdaten und
die logische Adresse des die Schreibdaten speichernden logischen
Journal-Datenträgers und
dergleichen. Die Aktualisierungsinformationen können auch nur eine von der
Zeit, zu der der Schreibbefehl empfangen wurde, oder der Aktualisierungsnummer speichern.
Falls es eine Schreibbefehl-Erzeugungszeit in einem Schreibbefehl
vom Host-Computer 180 gibt, kann die Erzeugungszeit in
diesem Schreibbefehl an Stelle der Zeit, zu der der Schreibbefehl
empfangen wurde, gespeichert werden.
-
Ein
Beispiel der Aktualisierungsinformationen in einem Journal wird
nun mit Bezug auf 3 und 21 beschrieben.
Nachstehend wird die Position vom Kopf eines Speicherbereichs des
logischen Datenträgers 230 (mit
anderen Worten eine Position in Bezug auf die Kopfposition) der
Einfachheit halber als "Adresse" bezeichnet.
-
Anhand
der in 21 dargestellten Aktualisierungsinformationen 310 ist
ersichtlich, dass ein Schreibbefehl um 22:22:10 (Stunden:Minuten:Sekunden)
am 17. März
1999 empfangen wurde. Überdies
kann entnommen werden, dass dieser Schreibbefehl ein Befehl ist,
der angibt, dass die Schreibdaten beginnend mit der Adresse 700
des logischen Daten trägers 230 mit
der logischen Datenträgernummer "1" zu schreiben sind und dass die Datengröße der Schreibdaten 300 ist. Überdies
ist auch ersichtlich, dass die in dem Journal enthaltenen Schreibdaten
beginnend mit der Adresse 1500 in dem logischen Journal-Datenträger 230 mit
einer logischen Datenträgernummer "4" zu schreiben sind. Überdies kann auch entnommen
werden, dass der logische Datenträger 230 mit einer
logischen Datenträgernummer "1" zur Gruppe 1 gehört und dass diese Aktualisierung
die vierte Datenaktualisierung seit Beginn der Datenkopie für die Gruppe
1 ist.
-
Wie
beispielsweise in 3 dargestellt ist, wird der
logische Journal-Datenträger
verwendet, indem er in einen Speicherbereich zum Speichern von Aktualisierungsinformationen
(einen Aktualisierungsinformationsbereich) und einen Speicherbereich
zum Speichern von Schreibdaten (einen Schreibdatenbereich) unterteilt
wird (es sei bemerkt, dass das Symbol "#4" angibt,
dass die logische Datenträgernummer "4" ist). Die Aktualisierungsinformationen
werden in der Aktualisierungsnummernreihenfolge, beginnend am Kopf
des Aktualisierungsinformationsbereichs, im Aktualisierungsinformationsbereich
gespeichert, und wenn das Ende des Aktualisierungsinformationsbereichs
erreicht wird, werden die Aktualisierungsinformationen mit der nächsten Aktualisierungsnummer,
beginnend am Kopf des Aktualisierungsinformationsbereichs, gespeichert.
Schreibdaten werden der Reihe nach, beginnend am Kopf des Schreibdatenbereichs,
im Schreibdatenbereich gespeichert, und wenn das Ende des Schreibdatenbereichs
erreicht wird, werden die nächsten
Schreibdaten, beginnend am Kopf des Schreibdatenbereichs, gespeichert.
Das Verhältnis
zwischen der Größe des Aktualisierungsinformationsbereichs
und der Größe des Schreibdatenbereichs
kann ein festes Verhältnis sein,
oder es kann ein veränderliches
Verhältnis
sein, das durch ein spezifisches Endgerät in der Art des Wartungsendgeräts, des
Host-Computers 180 oder dergleichen festgelegt wird. Diese
Informationen können
in die Zeigerinformationen 700 (siehe 7) aufgenommen
werden, wie nachstehend beschrieben wird. In der folgenden Beschreibung
wird der logische Journal-Datenträger in einen Aktualisierungsinformationsbereich
und einen Schreibdatenbereich für
die Verwendung unterteilt, es ist jedoch auch möglich, ein Verfahren zu verwenden,
bei dem das Journal, mit anderen Worten eine Reihe von Aktualisierungsinformationen
und Schreibdaten, beginnend am Kopf des logischen Datenträgers, kontinuierlich gespeichert
wird.
-
Überdies
wird ein Beispiel eines Vorgangs zum Spiegeln einer an einem ersten
logischen Datenträger
des ersten Speichersystems 100A vorgenommenen Datenaktualisierung
in einen zweiten logischen Datenträger des zweiten Speichersystems 100B mit
Bezug auf 1 breit beschrieben.
- (1) Wenn das erste Speichersystem 100A einen Schreibbefehl,
der sich auf die Daten im ersten logischen Datenträger (DATA1) 230 bezieht,
vom Host-Computer 180 empfängt, aktualisiert es die Daten
im ersten logischen Datenträger
(DATA1) 230 und speichert ein Journal im logischen Journal-Datenträger (JNL1) 230 durch
einen Befehlsempfangsprozess 210 und einen Lese-/Schreibprozess 220,
welche nachstehend beschrieben werden (270 in 1).
- (2) Das zweite Speichersystem 100B liest das Journal
durch einen nachstehend beschriebenen Journalleseprozess 240 aus
dem ersten Speichersystem 100A aus und speichert es durch
einen Lese-/Schreibprozess 220 (280 in 1)
im logischen Journal-Datenträger
(JNL2) 230.
- (3) Wenn das erste Speichersystem 100A einen Befehl
zum Lesen des Journals aus dem zweiten Speichersystem 100B empfängt, liest
es das Journal aus dem logischen Journal-Datenträger (JNL1) 230 aus
und sendet es durch einen Befehlsempfangsprozess 210 und
einen Lese-/Schreibprozess 220, wie nachstehend beschrieben
wird (280 in 1), zum zweiten Speichersystem 100B.
- (4) Unter Verwendung der Zeigerinformationen 700 liest
das zweite Speichersystem 100B das Journal in einer Sequenz mit
der Aktualisierungsnummer aus dem logischen Journal-Datenträger (JNL2) 230 aus
und aktualisiert die Daten im zweiten logischen Datenträger (COPY1) 230 durch
einen Umspeicherprozess 250 und einen Lese-/Schreibprozess 220 (290 in 1).
-
2 ist
ein Blockdiagramm, in dem ein Beispiel des Aufbaus des ersten Speichersystems 100A dargestellt
ist. Nachstehend wird der Einfachheit halber angenommen, dass das
erste Speichersystem 100A und das zweite Speichersystem 100B ähnlich aufgebaut
sind, und das erste Speichersystem 100A wird als ein repräsentatives
Beispiel zum Beschreiben des Aufbaus der Speichersysteme 100 angenommen.
Das erste Speichersystem 100A und das zweite Speichersystem 100B brauchen
jedoch nicht notwendigerweise den gleichen Aufbau zu haben.
-
Das
erste Speichersystem 100A ist ein Platten-Array-System, wie beispielsweise
ein RAID-(Redundant Array of Independent Disks)-System. Das erste
Speichersystem 100A umfasst beispielsweise ein Steueruntersystem 101 zum
Steuern der von dem ersten Speichersystem 100A ausgeführten Verarbeitung,
eine RAID-Gruppe 210 und einen Wartungsprozessor (SVP) 281.
Das Steueruntersystem 101 umfasst beispielsweise mehrere
DKAs 120, mehrere Kanaladapter (nachstehend als CHA bezeichnet) 110,
einen Cache-Speicher 130, einen geteilt verwendeten Speicher 140 und
einen Schaltsteuerabschnitt 270.
-
Die
RAID-Gruppe 210 umfasst mehrere Speichervorrichtungen 150,
und sie stellt beispielsweise redundanten Speicher auf der Grundlage
von RAIDs, in der Art eines RAID1- oder eines RAID5-Systems, bereit. Die
jeweiligen Speichervorrichtungen 150 können durch Speichervorrichtungen in
der Art eines Festplattenlaufwerks (oder einer Plattenvorrichtung
selbst), einer Halbleiterspeichervorrichtung, eines magnetooptischen
Plattenlaufwerks (oder einer magnetooptischen Platte selbst) und
dergleichen gebildet sein. Mindestens ein oder mehrere logische
Datenträger 230,
welche logische Speicherbereiche bilden, können in die physikalischen Speicherbereiche
gesetzt werden, die von den jeweiligen Speichervorrichtungen 150 bereitgestellt
werden. Mehrere vom Host-Computer 180 verwendete Daten
können
in den logischen Datenträgern 230 gespeichert
werden. Überdies
ist es auch möglich, Steuerinformationen
und dergleichen in einem separaten logischen Datenträger 230 zu
speichern und diesen als einen Systembereich zu verwenden. Überdies
brauchen nicht alle Speichervorrichtungen 150 innerhalb
des Rahmens des ersten Speichersystems 100A positioniert
zu werden. Beispielsweise ist es möglich, einen logischen Datenträger, der
zu einem anderen Speichersystem (nicht dargestellt) gehört, als
einen logischen Datenträger
des ersten Speichersystems 100A zu verwenden. In der folgenden
Beschreibung können
Fälle auftreten,
in denen ein logischer Datenträger
als "Datenträger" abgekürzt wird.
-
Die
jeweiligen DKAs 120 steuern die Datenübertragung und den Datenempfang
zwischen den jeweiligen Speichervorrichtungen 150. Jeder
der DKAs 120 kann aus einem Mikrocomputersystem bestehen,
das beispielsweise eine CPU, einen ROM, einen RAM und dergleichen
aufweist. Mehrere DKAs 120 werden im ersten Speichersystem 100A bereitgestellt.
Die DKAs 120 übertragen
Blockebenendaten auf der Grundlage eines SCSI- oder iSCSI-Protokolls
oder dergleichen zwischen den Speichervorrichtungen 150.
-
Ähnlich den
DKAs 120 kann jeder der mehreren CHAs 110 durch
ein Mikrocomputersystem gebildet sein. Mehrere Host-CHAs 110A zum
Ausführen
einer Datenkommunikation mit dem Host-Computer 180 über den
Verbindungsweg 190 und ein oder mehrere System-CHAs 110B zum
Ausführen
einer Datenkommunikation mit den anderen Speichersystemen 100 über den
Verbindungsweg 200 sind in die mehreren CHAs 110 aufgenommen.
Mindestens einer der Verbindungswege 190 und 280 kann
ein Kommunikationsnetz oder eine zweckgebundene Wegleitung sein. Überdies
können
die Host-CHAs 110A jeweils entsprechend dem Typ des Host-Computers 180 präpariert
werden (beispielsweise abhängig
davon, ob es sich um einen Server oder eine Großrechnervorrichtung oder dergleichen
handelt).
-
Der
Cache-Speicher 130 kann beispielsweise durch einen flüchtigen
oder einen nichtflüchtigen Halbleiterspeicher
gebildet sein. Der Cache-Speicher 130 speichert Schreibdaten
(in den logischen Datenträger
geschriebene Daten) vom Host-Computer 180.
Weiterhin speichert der Cache-Speicher 130 aus dem logischen
Datenträger 230 ausgelesene Daten
(nachstehend als "Lesedaten" bezeichnet).
-
Der
geteilt verwendete Speicher 140 kann beispielsweise durch
einen nichtflüchtigen
oder einen flüchtigen
Halbleiterspeicher gebildet sein. Der geteilt verwendete Speicher 140 speichert
beispielsweise verschiedene vom Host-Computer 180 empfangene
Befehle und Steuerinformationen und dergleichen, die zum Steuern
des ersten Speichersystems 100A verwendet werden. Die Befehle
und Steuerinformationen und dergleichen können in redundanter Weise durch
mehrere geteilt verwendete Speicher 140 gespeichert werden.
Der Cache-Speicher 130 und der geteilt verwendete Speicher 140 können als
voneinander getrennte Speicher aufgebaut sein, oder es kann alternativ
ein Abschnitt eines einzigen Speichers als ein Cache-Speicherbereich verwendet werden
und der restliche Abschnitt des Speichers als ein geteilt verwendeter
Speicherbereich verwendet werden.
-
Der
Schaltsteuerabschnitt 270 ist jeweils mit den verschiedenen
DKAs 120, dem Host-CHA 110A, dem System-CHA 110B,
dem Cache-Speicher 130 und dem geteilt verwendeten Speicher 140 verbunden.
Der Schaltsteuerabschnitt 270 kann beispielsweise durch
einen sehr schnellen Kreuzschienenschalter oder dergleichen gebildet
sein.
-
Der
SVP 281 stellt die Zustände
der jeweiligen Abschnitte des ersten Speichersystems 100A beispielsweise über ein
internes Netz (in der Art eines LANs) 282 zusammen und überwacht
diese. Der SVP 281 kann die sich auf die internen Zustände beziehenden
gesammelten Daten entweder direkt als Rohdaten oder als verarbeitete
statistische Daten an ein externes Verwaltungsendgerät (nicht
dargestellt) ausgeben. Beispiele von Informationen, die durch den
SVP 280 gesammelt werden können, sind die Vorrichtungszusammensetzung,
Stromversorgungsalarme, Temperaturalarme, die Ein-/Ausgabegeschwindigkeit
und dergleichen. Der Systemadministrator kann die Einstellungen
der RAID-Zusammensetzung ändern
oder eine Verarbeitung zum Abschalten verschiedener Typen von Paketen
(beispielsweise der CHAs 110 und der DKAs 120)
von dem Verwaltungsendgerät über den
SVP 280 implementieren.
-
Als
nächstes
wird ein Beispiel der von dem ersten Speichersystem 100A ausgeführten Verarbeitung
beschrieben. Der Host-CHA 110A empfängt Schreibbefehle und Schreibdaten
von dem Host-Computer 180 über den Verbindungsweg 190. Der
so empfangene Schreibbefehl wird im geteilt verwendeten Speicher 140 gespeichert,
und die so empfangenen Schreibdaten werden im Cache-Speicher 130 gespeichert.
Die DKAs 120 beziehen sich in regelmäßigen Intervallen auf den geteilt
verwendeten Speicher 140. Wenn der DKA 120 einen
im geteilt verwendeten Speicher 140 gespeicherten nicht
verarbeiteten Schreibbefehl entdeckt, liest er die Schreibdaten
aus dem Cache-Speicher 130 aus und führt eine Adresskonvertierung
und dergleichen entsprechend diesem Schreibbefehl aus. Der DKA 120 speichert
die Schreibdaten in den jeweiligen Speichervorrichtungen 150,
welche den vom Schreibbefehl bezeichneten logischen Datenträger 230 bilden.
-
Nun
wird ein Fall beschrieben, in dem ein Lesebefehl vom Host-Computer 180 verarbeitet
wird. Wenn ein Host-CHA 110A einen Lesebefehl vom Host-Computer 180 empfängt, speichert
er diesen Lesebefehl im geteilt verwendeten Speicher 140. Falls
der DKA 120 einen nicht verarbeiteten Lesebefehl im geteilt
verwendeten Speicher 140 entdeckt, liest er Daten aus den
jeweiligen Speichervorrichtungen 150, die den vom Lesebefehl
bezeichneten logischen Datenträger 230 bilden.
Der DKA 120 speichert die so gelesenen Daten im Cache-Speicher 130. Überdies
teilt der DKA 120 dem Host-CHA 110A über den
geteilt verwendeten Speicher 140 mit, dass das Auslesen
der angeforderten Daten abgeschlossen wurde. Der Host-CHA 110A liest
Daten aus dem Cache-Speicher 130 ein und überträgt diese
zum Host-Computer 180.
-
Ein
Beispiel einer Datenkopie (nachstehend in manchen Fällen auch
als "Fernkopie" bezeichnet), die
zwischen dem ersten Speichersystem 100A und dem zweiten
Speichersystem 100B über
den Verbindungsweg 200 (der auch als "Fernkopierleitung" bezeichnet werden kann) ausgeführt wird,
wird nun beschrieben. Die Fernkopie ist nicht mit einem Schreibbefehl
oder einem Lesebefehl vom Host-Computer 180 verbunden,
sondern sie ist vielmehr ein Datenkopierprozess, der ansprechend
auf Schreibbefehle und Lesebefehle ausgeführt wird, die zwischen den Speichersystemen 100A und 100B gesendet
und empfangen werden, ohne dass ein Eingriff des Host-Computers 180 erforderlich
wäre.
-
Falls
insbesondere beispielsweise das Steueruntersystem 101A des
ersten Speichersystems 100A Schreibdaten in den ersten
logischen Datenträger
(DATA1) 230 schreibt, der mit dem zweiten logischen Datenträger (COPY1) 230 ein
Paar bildet, überträgt es die
Schreibdaten und den entsprechenden Schreibbefehl über den
Verbindungsweg 200 zum zweiten Speichersystem 100B.
Dadurch werden die aktualisierten Daten synchron mit dem Aktualisieren
der Daten im zweiten Speichersystem 100B gespeichert.
-
Überdies
erzeugt das Steueruntersystem 101A des ersten Speichersystems 100A jedes
Mal dann, wenn der erste logische Datenträger (DATA1) aktualisiert wird,
ein Journal, wie vorstehend beschrieben wurde, und speichert es
beispielsweise im logischen Journal-Datenträger (JNL1) 230, und
falls es einen Lesebefehl vom zweiten Speichersystem 100B empfängt (oder
falls es einen Schreibbefehl an das zweite Speichersystem 100B ausgegeben
hat), wird das Journal im logischen Journal-Datenträger (JNL1) 230 über den
Verbindungsweg 200 zum zweiten Speichersystem 200B übertragen.
Folglich wird das Journal in dem zweiten Speichersystem 100B nicht synchronisiert
in Bezug auf das Speichern des Journals im ersten Speichersystem 100A gespeichert. Überdies
wird der zweite logische Datenträger (COPY1) 230 durch
Ausführen
eines Umspeicherprozesses in dem zweiten Speichersystem 100B unter
Verwendung dieses Journals zu einer Kopie des ersten logischen Datenträgers (DATA1) 230.
-
Vorstehend
wurde ein Beispiel des Aufbaus eines Speichervorrichtungssystems 100 gemäß dem vorliegenden
Implementationsmodus vorgestellt. Es erübrigt sich zu bemerken, dass
es nicht erforderlich ist, das Speichersystem 100 auf den
vorstehend erwähnten
Aufbau zu beschränken.
Beispielsweise ist das Steueruntersystem 101 nicht auf
den vorstehend erwähnten
Aufbau beschränkt,
und es kann beispielsweise aus einem Speicher, der in der Lage ist, Steuerinformationen,
Schreibdaten und dergleichen zu speichern, einer Schnittstellenvorrichtung
zum Kommunizieren mit dem Host-Computer (nachstehend als "I/F" abgekürzt), einer
I/F zum Kommunizieren mit den anderen Speichersystemen, einer I/F zum
Kommunizieren mit den Speichervorrichtungen 150 und einem
Steuerabschnitt (beispielsweise einer CPU) zum Steuern der Kommunikation über diese
I/F und dergleichen auf der Grundlage der Informationen im Speicher
bestehen. Überdies
können
im Speichersystem eine erste Datenübertragung, die vom Host-Computer 180 (oder
einem anderen Speichersystem) zum Cache-Speicher 130 über einen
CHA 110 und den Schaltsteuerabschnitt 270 ausgeführt wird,
und die zweite Datenübertragung,
die vom Cache-Speicher 130 zum Host-Computer (oder einem anderen Speichersystem) über den
Schaltsteuerabschnitt 270 und einen CHA 110 ausgeführt wird, gleichzeitig
ausgeführt
werden, vorausgesetzt, dass der die erste Datenübertragung steuernde CHA 110 und
der die zweite Datenübertragung
steuernde CHA 110 verschieden sind und/oder die Cache-Speicher, die
die Übertragungsquelle
und das Übertragungsziel
der Daten bilden, verschieden sind (beispielsweise unter der Voraussetzung,
dass die Cache-Speicheradresse
der Übertragungsquelle
von der Cache- Speicheradresse
des Übertragungsziels
verschieden ist). Ähnlich
können
im Speichersystem 100 eine dritte Datenübertragung, die von einer Speichervorrichtung 150 über einen
DKA 120 und den Schaltsteuerabschnitt 270 zum
Cache-Speicher 130 ausgeführt wird, und eine vierte Datenübertragung, die
vom Cache-Speicher 130 über
den Schaltsteuerabschnitt 270 und einen DKA 120 zu
einer Speichervorrichtung 150 ausgeführt wird, gleichzeitig ausgeführt werden,
vorausgesetzt, dass der die dritte Datenübertragung steuernde DKA 120 und
der die vierte Datenübertragung
steuernde DKA 120 verschieden sind und/oder die Cache-Speicher,
die die Übertragungsquelle
und das Übertragungsziel
der Daten bilden, verschieden sind (beispielsweise unter der Voraussetzung,
dass die Cache-Speicheradresse der Übertragungsquelle
von der Cache-Speicheradresse
des Übertragungsziels
verschieden ist). Überdies
können
die erste Datenübertragung
oder die zweite Datenübertragung
und die dritte Datenübertragung
und/oder die vierte Datenübertragung
gleichzeitig ausgeführt
werden, vorausgesetzt dass das Übertragungsziel
bei der ersten Datenübertragung oder
die Übertragungsquelle
bei der zweiten Datenübertragung
von dem Übertragungsziel
bei der dritten Datenübertragung
und/oder der Übertragungsquelle bei
der vierten Datenübertragung
verschieden ist. Überdies
müssen
zum Ausführen
einer synchronisierten Übertragung
dieser Art die jeweiligen Übertragungswege
(beispielsweise der Übertragungsweg zwischen
dem CHA 110 und dem Schaltsteuerabschnitt 270,
der Übertragungsweg
zwischen dem DKA 120 und dem Schaltsteuerabschnitt 270 und
der Übertragungsweg
zwischen dem Schaltsteuerabschnitt 270 und dem Cache-Speicher 130)
eine geeignete Bandbreite (Übertragungsgeschwindigkeit) aufweisen.
Falls beispielsweise ein Schaltsteuerabschnitt 270 mit
zwei CHAs 110, zwei DKAs 120 und zwei Cache-Speichern 130 verbunden
ist, bringt eine überlagerte Übertragung
keine Vorteile, falls die Bandbreite zwischen dem Schaltsteuerabschnitt 270 und
den Cache-Speichern 130 nicht größer oder gleich der Bandbreite
zwischen den CHAs 110 (oder den DKAs 120) und
dem Schaltsteuerabschnitt 270 ist, und es ist daher wünschenswert,
dass diese Bandbreite mindestens zwei Mal so groß ist wie die Bandbreite zwischen
den CHAs 110 (oder den DKAs 120) und dem Schaltsteuerabschnitt 270. Überdies sollten
die Schreibgeschwindigkeit und die Auslesegeschwindigkeit der Speichervorrichtung 150 und
die Schreibgeschwindigkeit und die Auslesegeschwindigkeit des Cache-Speichers 130 höher sein
als die Übertragungsgeschwindigkeit
auf dem Weg zwischen der Speichervorrichtung 150 und dem
Cache-Speicher 130, und sie sind wünschenswerterweise Geschwindigkeiten,
die keine Unterlauffehler oder Überlauffehler
zwischen diesen Elementen hervorrufen.
-
Die
Datenträgerinformationen 400,
die Weginformationen 500, die Gruppeninformationen 600 und
die Zeigerinformationen 700 werden als Typen von Steuerinformationen
in einem Speicher gespeichert, auf den durch den CHA 110 und
den DKA 120 Bezug genommen werden kann, beispielsweise
im geteilt verwendeten Speicher 140. Diese Bestandteile
werden nachstehend beschrieben.
-
4 zeigt
ein Beispiel des Aufbaus der Datenträgerinformationen 400.
-
Die
Datenträgerinformationen 400 sind
Informationen zum Verwalten mehrerer logischer Datenträger 230,
und sie umfassen Informationselemente, welche die jedem logischen
Datenträger
zugeordnete logische Datenträgernummer,
den Datenträgerstatus,
das Datenträgerformat,
die Kapazität
(beispielsweise in Einheiten von Gigabytes), die Paarnummer und
die physikalische Adresse angeben.
-
Der
Datenträgerstatus
für jeden
logischen Datenträger
ist ein Informationselement, das den Status dieses logischen Datenträgers angibt,
beispielsweise "normal", "erster", "zweiter", "abnorm", "nicht verwendet" oder dergleichen.
Ein logischer Datenträger 230,
der einen Datenträgerstatus "normal" oder "erster" aufweist, ist ein
logischer Datenträger 230,
auf den durch den Host-Computer 180 normal zugegriffen
werden kann. Ein logischer Datenträger 230, der einen
Datenträgerstatus "zweiter" aufweist, ist ein
logischer Datenträger 230,
auf den ein Zugriff vom Host-Computer 180 zugelassen werden
kann. Ein logischer Datenträger 230,
der einen Datenträgerstatus "erster" aufweist, ist ein
logischer Datenträger,
für den
eine Datenkopie ausgeführt
wird (mit anderen Worten ein erster logischer Datenträger) 230. Ein
logischer Datenträger 230,
der einen Datenträgerstatus "zweiter" aufweist, ist ein
logischer Datenträger,
der zum Kopieren von Daten verwendet wird (mit anderen Worten ein
zweiter logischer Datenträger) 230.
Ein logischer Datenträger 230,
der einen Datenträgerstatus "abnorm" aufweist, ist ein
logischer Datenträger 230,
auf den infolge eines Problems nicht normal zugegriffen werden kann.
Hier bedeutet ein "Problem" beispielsweise ein
Problem in dem Plattenlaufwerk 110, das den logischen Datenträger 230 enthält. Ein
logischer Datenträger 230,
der einen Datenträgerstatus "nicht verwendet" aufweist, gibt einen
logischen Datenträger 230 an,
der nicht verwendet wird.
-
Die
Paarnummer jedes logischen Datenträgers ist eine Nummer zum Identifizieren
eines Paars, das aus einem ersten logischen Datenträger und
einem zweiten logischen Datenträger
besteht. Insbesondere ist die Paarnummer für jeden logischen Datenträger eine
Paarnummer zum Identifizieren von Weginformationen 500 (nachstehend
beschrieben), die gültig
sind, wenn der diesem logischen Datenträger entsprechende Datenträgerstatus "erster" oder "zweiter" ist.
-
Entsprechend
den in 4 dargestellten Datenträgerinformationen 400 ist
beispielsweise der logische Datenträger 230 mit einer
logischen Datenträgernummer "1" ein erster logischer Datenträger (mit anderen
Worten ein logischer Datenträger,
dessen Daten kopiert werden) mit einem Formattyp "OPEN3" und einer Speicherkapazität von 3
GB, der Daten von der Kopfposition des Speicherbereichs der Speichervorrichtung 150 mit
einer Speichervorrichtungsnummer "1" speichert
und auf den zugegriffen werden kann. Zusätzlich dazu, dass sie Informationen
enthalten, die sich auf die mehreren logischen Datenträger 230 in
dem Speichersystem 100 beziehen, in dem diese Datenträgerinformationen 400 bereitgestellt sind,
können
die Datenträgerinformationen 400 auch Informationen
aufzeichnen, die sich auf einen oder mehrere logische Datenträger 230 in
einem anderen Speichersystem 100 beziehen, das über den
Verbindungsweg 200 mit diesem Speichersystem 100 verbunden
ist.
-
5 zeigt
ein Beispiel der Zusammensetzung von Weginformationen 500.
-
Die
Weginformationen 500 sind Informationen zum Verwalten von
Paaren, welche Informationselemente einschließen, die beispielsweise die
jedem Paar zugeordnete Paarnummer, den Paarstatus, die Nummer des
ersten Speichersystems, die Nummer des ersten logischen Datenträgers, die Nummer
des zweiten Speichersystems, die Nummer des zweiten logischen Datenträgers, die
Gruppennummer und die kopierte Adresse angeben.
-
Der
Paarstatus für
jedes Paar ist ein Informationselement, das den Status dieses Paars
angibt, der beispielsweise "normal", "abnorm", "nicht verwendet", "nicht kopiert", "kopierend" oder dergleichen
sein kann. Ein Paarstatus "normal" gibt an, dass eine
Datenkopie des ersten logischen Datenträgers 230 normal ausgeführt wurde.
Ein Paarstatus "abnorm" gibt an, dass eine
Kopie des ersten logischen Datenträgers 230 infolge eines
Problems nicht ausgeführt
wurde. Hier bedeutet ein "Problem" beispielsweise eine
Unterbrechung des Verbindungswegs 200. Ein Paarstatus "nicht verwendet" gibt an, dass die
Paarnummerninformationen, die diesem Paarstatus entsprechen, nicht
gültig
sind. Ein Paarstatus "kopierend" gibt an, dass die
anfängliche
Kopierverarbeitung, wie nachstehend beschrieben wird, gerade abläuft. Ein
Paarstatus "nicht
kopiert" gibt an,
dass die anfängliche
Kopierverarbeitung, wie nachstehend beschrieben wird, noch nicht
ausgeführt
wurde.
-
Die
Nummer des ersten Speichersystems für jedes Paar ist eine Nummer,
die das erste Speichersystem 100A angibt, das den ersten
logischen Datenträger 230 enthält, der
dieses Paar bildet.
-
Die
Nummer des zweiten Speichersystems für jedes Paar ist eine Nummer,
die das zweite Speichersystem 100B angibt, das den zweiten
logischen Datenträger 230 enthält, der
dieses Paar bildet.
-
Falls
das Speichersystem 100, das die Weginformationen 500 bereitstellt,
das erste Speichersystem 100A ist, ist die Gruppennummer
für das
Paar die Gruppennummer der Gruppe, zu der der dieses Paar bildende
erste logische Datenträger 230 gehört, und
falls das Speichersystem 100, das die Weginformationen 500 bereitstellt,
ein zweites Speichersystem ist, ist es die Gruppennummer der Gruppe,
zu der der zweite logische Datenträger 230, der dieses Paar
bildet, gehört.
-
Die
kopierte Adresse für
jedes Paar wird nachstehend mit Bezug auf die anfängliche
Kopierverarbeitung beschrieben.
-
Entsprechend
den in 5 dargestellten Weginformationen 500 ist
beispielsweise das Paar mit einer Paarnummer "1" ein
Paar, das durch einen ersten logischen Datenträger mit einer logischen Datenträgernummer "1" und einen zweiten logischen Datenträger mit
einer logischen Datenträgernummer "1" gebildet ist, und es ist ersichtlich,
dass die Datenkopierverarbeitung normal ausgeführt wurde.
-
6 zeigt
ein Beispiel der Zusammensetzung von Gruppeninformationen 600.
-
Die
Gruppeninformationen 600 sind Informationen zum Verwalten
von einer oder mehreren Gruppen, die durch mehrere logische Datenträger 230 gebildet
sind, und sie enthalten Informationselemente, welche beispielsweise
die jeder Gruppe zugeordnete Gruppennummer, den Gruppenstatus, die
Reihe von Paaren, die Nummer des logischen Journal-Datenträgers und
die Aktualisierungsnummer angeben.
-
Der
Gruppenstatus für
jede Gruppe ist ein Informationselement, welches den sich auf diese
Gruppe beziehenden Status angibt, beispielsweise "normal", "abnorm", "nicht verwendet" oder dergleichen. Ein
Gruppenstatus "normal" gibt an, dass der
Paarstatus von mindestens einem der Paare, die durch die Paarreihe
identifiziert sind, welche dieser Gruppe zugeordnet ist, "normal" ist. Ein Gruppenstatus "abnorm" gibt an, dass der
Paarstatus aller Paare, die durch die Paarreihe identifiziert sind,
welche dieser Gruppe zugeordnet ist, "abnorm" ist. Ein Gruppenstatus "nicht verwendet" gibt an, dass die
Gruppennummerninformationen für
die entsprechende Gruppe nicht gültig
sind.
-
Die
Paarreihe für
jede Gruppe umfasst die Paarnummern der Paare, die durch die jeweiligen
logischen Datenträger
in dieser Gruppe gebildet sind. Falls das Speichersystem 100 mit
diesen Gruppeninformationen 600 ein erstes Speichersystem 100A ist, enthält die Paarreihe
alle Paarnummern, die jeweils allen zu dieser Gruppe gehörenden ersten
logischen Datenträgern
entsprechen. Falls andererseits das Speichersystem 100 mit
diesen Gruppeninformationen 600 ein zweites Speichersystem 100B ist,
enthält die
Paarreihe alle Paarnummern, die jeweils allen zu dieser Gruppe gehörenden zweiten
logischen Datenträgern
entsprechen.
-
Die
Nummer des logischen Journal-Datenträgers für jede Gruppe gibt eine Nummer
zum Identifizieren des zu dieser Gruppe gehörenden logischen Journal-Datenträgers an.
-
Die
Aktualisierungsnummer für
jede Gruppe ist eine Nummernreihe in den Aktualisierungsinformationen
des Journals, die verwendet wird, um die Datenaktualisierungssequenz
in dem zweiten Speichersystem 100B zu bewahren. Die Aktualisierungsnummer
einer Gruppe hat einen Anfangswert "1", falls
jedoch anschließend
Daten in einen ersten logischen Datenträger in dieser Gruppe geschrieben werden,
wird 1 zu der nur dieser Gruppe entsprechenden Aktualisierungsnummer
addiert.
-
Unter
der Annahme, dass die in 6 dargestellten
Gruppeninformationen 600 beispielsweise in einem ersten
Speichersystem 100A bereitgestellte Gruppeninformationen
sind, ist anhand dieser Gruppeninformationen ersichtlich, dass die
eine Gruppennummer "1" aufweisende Gruppe
einen ersten logischen Datenträger,
der ein Paar mit einer Paarnummer "1" bildet,
einen ersten logischen Datenträger, der
ein Paar mit einer Paarnummer "2" bildet, und einen
logischen Journal-Datenträger
mit einer logischen Datenträgernummer "4" enthält. Überdies ist ersichtlich, dass
die Datenkopierverarbeitung für
die eine Gruppennummer "1" aufweisende Gruppe
normal ausgeführt
wurde.
-
7 zeigt
ein Beispiel der Zusammensetzung von Zeigerinformationen 700. 8 zeigt
die Inhalte, die durch die in 7 dargestellten
Zeigerinformationen 700 identifiziert sind.
-
Wie
in 7 dargestellt ist, werden die Zeigerinformationen 700 für jede Gruppe
präpariert
und verwendet, um den logischen Journal-Datenträger, der in der entsprechenden
Gruppe enthalten ist, zu verwalten. Die Zeigerinformationen 700 enthalten
Informationselemente, welche beispielsweise eine Aktualisierungsinformationsbereichs-Kopfadresse, eine
Schreibdatenbereichs-Kopfadresse, eine Neueste-Aktualisierungsinformations-Adresse,
eine Älteste-Aktualisierungsinformations-Adresse,
eine Neueste-Schreibdaten-Adresse, eine Älteste-Schreibdaten-Adresse,
eine Lesebeginnadresse und eine Neuversuchs-Anfangsadresse angeben.
-
Die
Aktualisierungsinformationsbereichs-Kopfadresse ist die logische
Adresse der Kopfposition des Speicherbereichs, der die Aktualisierungsinformationen
des logischen Journal-Datenträgers (des
Aktualisierungsinformationsbereichs) speichert.
-
Die
Schreibdatenbereichs-Kopfadresse ist die logische Adresse der Kopfposition
des Speicherbereichs, der die Schreibdaten des logischen Journal-Datenträgers (des
Schreibdatenbereichs) speichert.
-
Die
Neueste-Aktualisierungsinformations-Adresse ist die logische Adresse
der Kopfposition, die zum Speichern der Aktualisierungsinformationen
in einem Journal verwendet wird, wenn das nächste Journal gespeichert wird
(mit anderen Worten Informationen, welche angeben, wo mit dem Schreiben
der in dem nächsten
Journal enthaltenen Aktualisierungsinformationen zu beginnen ist).
-
Die Älteste-Aktualisierungsinformations-Adresse
ist die logische Adresse der Kopfposition des Bereichs, in dem die
Aktualisierungsinformationen des ältesten Journals (nämlich des
Journals mit der kleinsten Aktualisierungsnummer) gespeichert sind.
-
Die
Neueste-Schreibdaten-Adresse ist die logische Adresse der Kopfposition,
die zum Speichern der Schreibdaten in einem Journal verwendet wird,
wenn das nächste
Journal gespeichert wird (mit anderen Worten Informationen, die
angeben, wo mit dem Schreiben der im nächsten Journal enthaltenen Schreibdaten
zu beginnen ist).
-
Die Älteste-Schreibdaten-Adresse
ist die logische Adresse der Kopfposition des Bereichs, in dem die
Schreibdaten in dem ältesten
Journal (nämlich
dem Journal mit der kleinsten Aktualisierungsnummer) gespeichert
sind.
-
Die
Lesebeginnadresse und die Neuversuchs-Anfangsadresse sind Informationselemente, die
nur vom ersten Speichersystem 100A verwendet werden. Diese
Informationen werden bei der Journallese-Empfangsverarbeitung verwendet,
welche nachstehend beschrieben wird. Eine detaillierte Beschreibung
der Lesebeginnadresse und der Neuversuchs-Anfangsadresse wird nachstehend
gegeben.
-
Anhand
der in dem Beispiel in den 7 und 8 dargestellten
Zeigerinformationen 700 ist ersichtlich, dass der Bereich
zum Speichern der Aktualisierungsinformationen in dem Journal (der
Aktualisierungsinformationsbereich) der Bereich von der Adresse
0 (der Kopfposition) des logischen Journal-Datenträgers #4
bis zur Adresse 699 von diesem ist und dass der Bereich zum Speichern
der Schreibdaten in dem Journal (der Schreibdatenbereich) der Bereich
von der Adresse 700 des logischen Journal-Datenträgers #4
bis zur Adresse 2699 von diesem ist. Überdies ist ersichtlich, dass
die Aktualisierungsinformationen eines Journals in dem Bereich zwischen
der Adresse 200 und der Adresse 499 des logischen Journal-Datenträgers #4
gespeichert werden und die Aktualisierungsinformationen des nächsten Journals
von der Adresse 500 des logischen Journal-Datenträgers #4
an geschrieben werden. Überdies
ist auch ersichtlich, dass die Schreibdaten des Journals im Bereich
zwischen der Adresse 1300 und der Adresse 2199 des logischen Journal-Datenträgers #4
gespeichert werden und die Schreibdaten des nächsten Journals von der Adresse
2200 des logischen Journal-Datenträgers #4 an geschrieben werden.
-
Vorstehend
wurde ein Beispiel der Zusammensetzung der Zeigerinformationen 700 gegeben. In
der Beschreibung des vorliegenden Implementationsmodus wird eine
Konfiguration beschrieben, bei der ein logischer Journal-Datenträger jeder
Gruppe zugeordnet ist, es ist jedoch auch möglich, mehrere logische Journal-Datenträger einer
Gruppe zuzuordnen. Insbesondere ist es beispielsweise auch möglich, zwei
logische Journal-Datenträger
einer Gruppe zuzuordnen, Zeigerinformationen 700 für jeden
logischen Journal-Datenträger
bereitzustellen (oder Informationselemente aufzunehmen, die sich
auf die mehreren logischen Journal-Datenträger in den Zeigerinformationen 700 beziehen)
und Journale alternierend in den logischen Journal-Datenträgern zu speichern.
Dadurch ist es möglich,
die Aufgabe des Schreibens von Journalen auf die Festplatte 150 zu verteilen,
und es kann daher eine verbesserte Funktionsweise erwartet werden. Überdies
kann die Leistungsfähigkeit
des Auslesens von Journalen verbessert werden. Als ein weiteres
konkretes Beispiel ist es auch möglich,
zwei logische Journal-Datenträger
einer Gruppe zuzuordnen, wobei nur einer der logischen Journal-Datenträger unter
Normalbedingungen verwendet wird und der andere logische Journal-Datenträger in Fällen verwendet
wird, in denen die Leistungsfähigkeit
des ersten logischen Journal-Datenträgers bei
der Verwendung abgenommen hat. Ein Beispiel einer Verringerung der
Leistungsfähigkeit
ist ein Fall, in dem der logische Journal-Datenträger aus
mehreren Speichervorrichtungen 150 besteht, Daten durch
ein RAID5-Verfahren gespeichert werden und an einer dieser mehreren
Speichervorrichtungen 150 ein Fehler auftritt.
-
Überdies
können
die Datenträgerinformationen 400,
die Weginformationen 500, die Gruppeninformationen 600,
die Zeigerinformationen 700 und dergleichen, die vorstehend
beschrieben wurden, in dem geteilt verwendeten Speicher 140 gespeichert werden.
Die Erfindung ist jedoch nicht hierauf beschränkt, und diese Informationen
können
beispielsweise auch in konzentrierter oder verteilter Art in mindestens
einem von dem Cache-Speicher 130, den CHAs 110,
den DKAs 120 und den Speichervorrichtungen 150 gespeichert
werden. Überdies
kann jedes Speichersystem 100, zusätzlich zu den Steuerinformationen,
die sich auf es selbst beziehen, mit Steuerinformationen versehen
werden, die sich zumindest auf die anderen Speichersysteme 100 beziehen,
mit denen es kommunizieren kann (beispielsweise mindestens eine
von den Datenträgerinformationen 400,
den Weginformationen 500, den Gruppeninformationen 600 und
den Zeigerinformationen 700). In diesem Fall können überdies
jedes Mal dann, wenn die Steuerinformationen in einem der anderen Speichersysteme 100 aktualisiert
werden, die aktualisierten Inhalte in den diesem anderen Speichersystem 100 entsprechenden
Steuerinformationen widergespiegelt werden, welche im ersten Speichersystem 100 bereitgestellt
sind.
-
Als
nächstes
wird ein Beispiel einer Prozedur zum Einleiten einer Datenkopie
von einem ersten Speichersystem 100A zu einem zweiten Speichersystem 100B mit
Bezug auf 9 beschrieben.
- (1) Es wird nun ein Gruppenerzeugungsschritt (Schritt 900)
beschrieben.
-
Der
Benutzer bezieht sich auf die Gruppeninformationen 600 des
ersten Speichersystems 100A durch ein Wartungsendgerät oder den
Host-Computer 180 und erfasst eine Gruppennummer A, die
einen Gruppenstatus "nicht
verwendet" aufweist.
Der Benutzer legt die Gruppennummer A fest und gibt eine Gruppenerzeugungsanweisung
durch den SVP 281 oder den Host- Computer 180 an das erste Speichersystem 100A aus.
Nach dem Empfang der Gruppenerzeugungsanweisung ändert das erste Speichersystem 100A den
Gruppenstatus der festgelegten Gruppennummer A (den Gruppenstatus
in den Gruppeninformationen 600, die im ersten Speichersystem 100A enthalten
sind) auf "normal".
-
Ähnlich bezieht
sich der Benutzer auf die Gruppeninformationen 600 des
zweiten Speichersystems 100B und erfasst eine Gruppennummer
B mit einem Gruppenstatus "nicht
verwendet". Der
Benutzer legt die Nummer des zweiten Speichersystems und die Gruppennummer
B fest und gibt eine Gruppenerzeugungsanweisung durch den SVP 281 oder den
Host-Computer 180 an
das erste Speichersystem 100A aus. Das erste Speichersystem 100A empfängt diese
Nummer des zweiten Speichersystems, die Gruppennummer B und die
Gruppenerzeugungsanweisung und überträgt die Gruppennummer
B und die Gruppenerzeugungsanweisung, die so empfangen wurden, zum
zweiten Speichersystem 100B, das durch die so empfangene
Nummer des zweiten Speichersystems spezifiziert ist. Das zweite
Speichersystem 100B empfängt die Gruppenerzeugungsanweisung
und ändert
ansprechend auf diese Anweisung den Gruppenstatus der empfangenen
Gruppennummer B (den Gruppenstatus in den im zweiten Speichersystem 100B enthaltenen
Gruppeninformationen 600) auf "normal". In einem Modifikationsbeispiel kann
der Benutzer auch eine Gruppennummer B festlegen und eine Gruppenerzeugungsanweisung durch
den SVP 281 des zweiten Speichersystems 100B oder
einen Host-Computer 180, der mit dem zweiten Speichersystem 100B verbunden
ist, an das zweite Speichersystem 100B ausgeben.
- (2) Nun wird ein Paarregistrierungsschritt
(Schritt 910) beschrieben.
-
Der
Benutzer gibt eine Paarregistrierungsanweisung, welche Informationen,
die ein Datenkopierobjekt angeben, und Informationen, die ein Datenkopierziel
angeben, spezifiziert, durch den SVP 281 oder den Host-Computer 180 an
das erste Speichersystem 100A aus. Die "Informationen, die das Datenkopierobjekt
angeben" sind beispielsweise
Informationen, die eine Gruppennummer A der Gruppe des Datenkopierobjekts
(mit anderen Worten der Datenkopierquelle) und die Nummer des entsprechenden ersten
logischen Datenträgers
enthalten. Die "Informationen,
die das Datenkopierziel angeben" sind
beispielsweise Informationen, die die Nummer des zweiten Speichersystems 100B,
das die kopierten Daten enthält,
die Nummer des zweiten logischen Datenträgers, der die kopierten Daten
enthält,
und die Gruppennummer B der Gruppe, zu der dieser zweite logische
Datenträger
gehört,
enthalten.
-
Nach
dem Empfang dieser Paarregistrierungsanweisung erfasst das erste
Speichersystem 100A eine Paarnummer mit einem Paarstatus "nicht verwendet" von den Weginformationen 500 und
führt die
folgende Verarbeitung in Bezug auf die verschiedenen Informationselemente
aus, die der so erfassten Paarnummer entsprechen (die verschiedenen
Informationselemente, die die Weginformationen 500 im ersten
Speichersystem 100A bilden). Mit anderen Worten ändert das
erste Speichersystem 100A das Informationselement "Paarstatus" von "nicht verwendet" zu "nicht kopiert", setzt die Nummer
des ersten Speichersystems, die das erste Speichersystem 100A in
dem Informationselement "Nummer
des ersten Speichersystems" angibt,
setzt die festgelegte Nummer des ersten logischen Datenträgers in
dem Informationselement "Nummer
des ersten logischen Datenträgers", setzt die festgelegte
Nummer des zweiten Speichersystems in dem Informationselement "Nummer des zweiten
Speichersystems",
setzt die festgelegte Nummer des zweiten logischen Datenträgers in
dem Informationselement "Nummer
des zweiten logischen Datenträgers" und setzt die festgelegte
Gruppennummer A in dem Informationselement "Gruppennummer". Überdies
bezieht sich das erste Speichersystem 100A auf die Gruppeninformationen 600,
die innerhalb dieses ersten Speichersystems 100A bereitgestellt
sind, addiert die vorstehend erwähnte
erfasste Paarnummer zu der Paarreihe, die der festgelegten Gruppennummer
A entspricht, und ändert
den Datenträgerstatus
entsprechend der fest gelegten Nummer des ersten logischen Datenträgers (den
Datenträgerstatus
in den im ersten Speichersystem 100A bereitgestellten Datenträgerinformationen 400)
zu "primär".
-
Das
erste Speichersystem 100A überträgt die Nummer des ersten Speichersystems,
welche das erste Speichersystem 100A angibt, und die Gruppennummer
B, die Nummer des ersten logischen Datenträgers und die Nummer des zweiten
logischen Datenträgers,
die vom Benutzer festgelegt wurden, zum zweiten Speichersystem 100B,
das der vom Benutzer spezifizierten Nummer des zweiten Speichersystems
entspricht. Das zweite Speichersystem 100B erfasst eine
nicht verwendete Paarnummer aus den Weginformationen 500 und
führt die folgende
Verarbeitung in Bezug auf die verschiedenen Informationselemente
aus, die der so erfassten Paarnummer entsprechen (die verschiedenen
Informationselemente, die die Weginformationen 500 im zweiten
Speichersystem 100B bilden). Mit anderen Worten setzt das
zweite Speichersystem 100B das Informationselement "Paarstatus" auf "nicht kopiert", die Nummer des
ersten Speichersystems, die das erste Speichersystem 100A in
dem Informationselement "Nummer
des ersten Speichersystems" angibt, die
festgelegte Nummer des ersten logischen Datenträgers in dem Informationselement "Nummer des ersten
logischen Datenträgers", die Nummer des zweiten
Speichersystems, die das zweite Speichersystem B in dem Informationselement "Nummer des zweiten
Speichersystems" angibt,
die festgelegte Nummer des zweiten logischen Datenträgers in
dem Informationselement "Nummer
des zweiten logischen Datenträgers" und die festgelegte
Gruppennummer B in dem Informationselement "Gruppennummer". Überdies
bezieht sich das zweite Speichersystem 100B auf die Gruppeninformationen 600, die
innerhalb dieses zweiten Speichersystems 100B bereitgestellt
sind, addiert die vorstehend erwähnte erfasste
Paarnummer zu der Paarreihe, die der festgelegten Gruppennummer
B entspricht, und ändert den
Datenträgerstatus
entsprechend der festgelegten Nummer des zweiten logischen Datenträgers (den
Datenträgerstatus
in den im zweiten Speichersystem 100B bereitgestellten
Datenträgerinformationen 400)
zu "sekundär".
-
Die
Verarbeitung in dem vorstehend beschriebenen Schritt 910 wird
für alle
Paare der Datenkopierobjekte ausgeführt.
-
In
der vorstehenden Beschreibung werden die Registrierung eines logischen
Datenträgers
in einer Gruppe und das Festlegen von Paaren logischer Datenträger gleichzeitig
ausgeführt,
diese Prozesse können
jedoch auch zu verschiedenen Zeiten ausgeführt werden.
- (3)
Nun wird ein Schritt zum Registrieren eines logischen Journal-Datenträgers beschrieben (Schritt 920).
-
Der
Benutzer gibt eine Anweisung zum Registrieren eines zum Speichern
eines Journals verwendeten logischen Datenträgers (eines logischen Journal-Datenträgers) in
einer Gruppe (eine Anweisung zum Registrieren eines logischen Journal-Datenträgers) durch
den SVP 281 oder den Host-Computer 180 an das erste Speichersystem 100A aus. Die
Anweisung zum Registrieren eines logischen Journal-Datenträgers umfasst
beispielsweise eine Gruppennummer und eine logische Datenträgernummer.
-
Das
erste Speichersystem 100A registriert die festgelegte logische
Datenträgernummer
als die Nummer des logischen Journal-Datenträgers der Gruppeninformationen 600 der
festgelegten Gruppennummer. Der Datenträgerstatus der Datenträgerinformationen 400 dieses
logischen Datenträgers wird
auf "normal" gesetzt.
-
Ähnlich bezieht
sich der Benutzer durch den SVP 281 oder den Host-Computer 180 auf
die Datenträgerinformationen 400 des
zweiten Speichersystems 100B und gibt eine Anweisung zum
Registrieren eines logischen Journal-Datenträgers an das erste Speichersystem 100A aus,
wodurch eine Nummer des zweiten Speichersystems, eine Gruppennummer B
und eine logische Datenträgernummer
zur Verwendung für
den logischen Journal-Datenträger
spezifiziert werden. Das erste Speichersystem 100A überträgt die Anweisung
zum Registrieren des logischen Journal-Datenträgers, die Gruppennummer B und die logische
Datenträgernummer,
die so empfangen wurden, zu dem durch die festgelegte Nummer des zweiten
Speichersystems identifizierten zweiten Speichersystem 100B.
Das zweite Speichersystem 100B bezieht sich auf die in
diesem zweiten Speichersystem 100B bereitgestellten Gruppeninformationen 600 und
registriert die empfangene logische Datenträgernummer als das Informationselement "Nummer des logischen
Journal-Datenträgers", das der empfangenen
Gruppennummer B entspricht. Überdies
bezieht sich das zweite Speichersystem 100B auf die in
diesem zweiten Speichersystem 100B bereitgestellten Datenträgerinformationen 400 und
setzt das Informationselement "Datenträgerstatus", das der empfangenen
logischen Datenträgernummer
entspricht, auf "normal".
-
Der
Benutzer kann auch die Gruppennummer und die logische Datenträgernummer
festlegen, die für
den logischen Journal-Datenträger
zu verwenden sind, und eine Anweisung zum Registrieren des logischen
Journal-Datenträgers
durch einen SVP 281 des zweiten Speichersystems 100B oder
durch einen Host-Computer 180, der mit dem zweiten Speichersystem 100B verbunden
ist, an das zweite Speichersystem 100B ausgeben.
-
Die
Verarbeitung im vorstehenden Schritt 920 wird mit Bezug
auf alle logischen Datenträger ausgeführt, die
als logische Journal-Datenträger
verwendet werden. Die Sequenz aus den Schritten 910 und 920 braucht
keine zufällige
Sequenz zu sein.
- (4) Nun wird ein Kopierprozess-Anfangsschritt (Schritt 930)
beschrieben.
-
Der
Benutzer legt eine Gruppennummer zum Einleiten eines Datenkopierprozesses
fest und gibt eine Anweisung zum Einleiten eines Datenkopierprozesses
durch den SVP 281 oder den Host-Computer 180 an
das erste Speichersystem 100A aus. Das erste Speichersystem 100A bezieht
sich auf die in diesem ersten Speichersystem 100A bereitgestellten Paarinformationen 400 und
setzt alle kopierten Adressen für
die festgelegte Gruppennummer auf "0".
-
Das
erste Speichersystem 100A weist das durch die Nummer des
zweiten Speichersystems, entsprechend der festgelegten Gruppennummer, spezifizierte
zweite Speichersystem 100B an, einen Journal-Leseprozess
und einen Umspeicherprozess einzuleiten, welche nachstehend beschrieben
werden.
-
Das
erste Speichersystem 100A leitet einen nachstehend beschriebenen
anfänglichen
Kopierprozess ein.
- (5) Nun wird ein Schritt
zum Abschließen
des anfänglichen
Kopierens (Schritt 940) beschrieben.
-
Wenn
das anfängliche
Kopieren abgeschlossen wurde, teilt das erste Speichersystem 100A dem in
Schritt 930 spezifizierten zweiten Speichersystem 100B das
Ende des anfänglichen
Kopierprozesses mit. Das zweite Speichersystem 100B bezieht
sich auf die in diesem zweiten Speichersystem 100B enthaltenen
Weginformationen 500 und ändert jeden Paarstatus, der
der festgelegten Gruppennummer entspricht (den Paarstatus der zweiten
logischen Datenträger)
auf "normal".
-
10 ist ein Flussdiagramm eines anfänglichen
Kopierprozesses.
-
Beim
anfänglichen
Kopierprozess werden Journale in Einheitsgrößen für den gesamten Speicherbereich
des das Datenkopierobjekt bildenden ersten logischen Datenträgers in
einer Sequenz von der Kopfposition des Speicherbereichs unter Verwendung
der kopierten Adressen in den Weginformationen 500 erzeugt.
Die kopierte Adresse hat einen Anfangswert von 0, und jedes Mal
dann, wenn ein Journal erzeugt wird, wird der so erzeugte Datenträger zu diesem
Wert addiert. Beim anfänglichen Kopierprozess
werden Journale von der Kopfposition des Speicherbereichs des logischen
Datenträgers bis
zur Adresse unmittelbar vor der kopierten Adresse erzeugt. Durch
Ausführen
eines anfänglichen
Kopierprozesses ist es möglich,
Daten, die nicht im ersten logischen Datenträger aktualisiert worden sind, zum
zweiten logischen Datenträger
zu übertragen.
In der folgenden Beschreibung wird der Host-CHA 110A im ersten Speichersystem 100A als
diese Verarbeitung implementierend beschrieben, sie kann stattdessen
jedoch auch durch den DKA 120 implementiert werden.
- (1) Der Host-CHA 110A im ersten Speichersystem 100A findet
einen ersten logischen Datenträger
mit einem Paarstatus "nicht
kopiert" in einem Paar,
das zu der verarbeiteten Gruppe gehört (nachstehend als "erster logischer
Datenträger
A" bezeichnet),
auf der Grundlage der Gruppeninformationen 600 und der
Weginformationen 500 im ersten Speichersystem 100A und
aktualisiert den so gefundenen Paarstatus, der sich auf den ersten
logischen Datenträger
A bezieht, zu "kopierend" und wiederholt dann
die anschließenden Prozesse
(Schritte 1010 und 1020). Falls der erste logische
Datenträger
A nicht existiert, beendet der Host-CHA 110A die Verarbeitung
(Schritt 1030).
- (2) Falls in Schritt 1020 der logische Datenträger A existiert,
erzeugt der Host-CHA 110A ein Journal für eine Einheitsdatengröße (beispielsweise
1 MB an Daten). Der Journal-Erzeugungsprozess wird nachstehend beschrieben
(Schritt 1040).
- (3) Der Host-CHA 110A addiert die Datengröße des erzeugten
Journals zur kopierten Adresse (Schritt 1050).
- (4) Die vorstehend erwähnte
Verarbeitung wird wiederholt, bis die kopierte Adresse die Kapazität des ersten
logischen Datenträgers
A erreicht (Schritt 1060). Falls die kopierte Adresse nicht gleich
der Kapazität
des ersten logischen Datenträgers
A ist, bedeutet dies, dass ein Journal für den ganzen Speicherbereich
des ersten logischen Datenträgers
A erzeugt worden ist, und der Paarstatus wird daher zu "normal" aktualisiert, und
es wird die Verarbeitung eines anderen ersten logischen Datenträgers eingeleitet
(Schritt 1070).
-
In
dem vorstehend erwähnten
Flussdiagramm wurden die ersten logischen Datenträger als unabhängig behandelt
beschrieben, es ist jedoch auch möglich, dass Journale für mehrere
Daten, die jeweils in mehreren ersten logischen Datenträgern gespeichert
sind, gleichzeitig verarbeitet werden.
-
11 zeigt die Sequenz eines Befehlsempfangsprozesses 210,
und 12 ist ein Flussdiagramm eines
Befehlsempfangsprozesses 210. 13 ist
ein Flussdiagramm eines Journal-Erzeugungsprozesses. Nachstehend
wird ein Vorgang, bei dem das erste Speichersystem 100A einen
Schreibbefehl vom Host-Computer 180 für den ersten logischen Datenträger 230,
der ein Datenkopierobjekt bildet, empfängt, mit Bezug auf die 11 bis 13 beschrieben.
Weiterhin wird in der folgenden Beschreibung angenommen, dass es
einen ersten logischen Datenträger
und einen logischen Journal-Datenträger gibt,
die zu einer bestimmten Gruppe des ersten Speichersystems 100A gehören, wobei
der erste logische Datenträger
als "erster logischer
Datenträger 230PA" bezeichnet wird
und der logische Journal-Datenträger
als "logischer Journal-Datenträger JA" bezeichnet wird.
- (1) Der Host-CHA 110A im ersten Speichersystem 100A empfängt einen
Zugriffsbefehl vom Host-Computer 180 (Schritt 1200).
Der Zugriffsbefehl enthält
einen Befehl in der Art eines Lesebefehls, eines Schreibbefehls
oder eines Journal-Lesebefehls
(nachstehend beschrieben), eine logische Adresse, die sich auf den
Befehl bezieht, einen Datenträger
und dergleichen. Nachstehend wird die logische Adresse in dem Zugriffsbefehl als
logische Adresse A bezeichnet, die logische Datenträgernummer
als logische Datenträgernummer
A bezeichnet, die Position in dem logischen Datenträger als
logische Datenträgerposition
A bezeichnet und der Datenträger
als Datenträger
A bezeichnet. Überdies
wird der durch die logische Datenträgernummer A festgelegte logische
Datenträger
als logischer Datenträger
A bezeichnet.
- (2) Der Host-CHA 110A untersucht den Zugriffsbefehl
(Schritte 1210 und 1215). Falls bei der Untersuchung
in Schritt 1215 herausgefunden wird, dass der Zugriffsbefehl
ein Journal-Lesebefehl ist, wird die nachstehend beschriebene Journal-Leseempfangsverarbeitung
ausgeführt
(Schritt 1220). Falls der Zugriffsbefehl ein von einem Journal-Lesebefehl
oder einem Journal-Schreibbefehl verschiedener Befehl, beispielsweise
ein Lesebefehl, ist, wird die Leseverarbeitung in Übereinstimmung
mit diesem Lesebefehl ausgeführt
(Schritt 1230).
- (3) Falls bei der Untersuchung in Schritt 1210 herausgefunden
wird, dass der Zugriffsbefehl ein Schreibbefehl ist, bezieht sich
der Host-CHA 110A auf die Datenträgerinformationen 400 und untersucht
den Datenträgerstatus
des logischen Datenträgers
A (Schritt 1240). Falls bei der Untersuchung in Schritt 1240 der
Datenträgerstatus des
logischen Datenträgers
A ein anderer Status als "normal" oder "erster" ist, bedeutet dies,
dass der Zugriff auf den logischen Datenträger A nicht möglich ist,
und der Host-CHA 110A teilt dem Host-Computer 180 daher
eine abnorme Beendigung mit (Schritt 1245).
- (4) Falls bei der Untersuchung in Schritt 1240 herausgefunden
wird, dass der Datenträgerstatus des
logischen Datenträgers
A "normal" oder "erster" ist, reserviert
der Host-CHA 110A den Cache-Speicher 130 (oder
einen Speicherbereich mit einer vorgeschriebenen Größe in diesem Speicher 130)
und teilt dem Host-Computer 180 mit, dass die Vorbereitungen
für den
Datenempfang abgeschlossen wurden. Der Host-Computer 180 empfängt diese
Mitteilung und überträgt Schreibdaten
zum ersten Speichersystem 100A. Der Host-CHA 110A empfängt die
Schreibdaten und speichert sie im Cache-Speicher 130 (Schritt 1250 und 1100 in 11).
- (5) Der Host-CHA 110A bezieht sich auf den Datenträgerstatus
im logischen Datenträger
A und untersucht, ob der logische Datenträger A ein Datenkopierobjekt
ist (mit anderen Worten, ob er ein erster logischer Datenträger ist)
(Schritt 1260). Falls bei der Untersuchung in Schritt 1260 herausgefunden
wird, dass der Datenträgerstatus "erster" ist, bedeutet dies,
dass der logische Datenträger
A ein Datenkopierobjekt ist, und der Host-CHA 110A führt daher
eine Journal-Erzeugungsverarbeitung aus, wie nachstehend beschrieben
wird (Schritt 1265).
- (6) Falls bei der Untersuchung in Schritt 1260 herausgefunden
wird, dass der Datenträgerstatus "normal" ist oder falls der
Journal-Erzeugungsprozess in Schritt 1265 abgeschlossen
wurde, gibt der Host-CHA 110A einen Befehl an den DKA 120 aus,
um die Schreibdaten an die Speichervorrichtung 150 auszugeben,
die den logischen Datenträger
A bereitstellt (1140 in 11),
und er teilt dem Host-Computer 180 den
Abschluss mit (Schritte 1270 und 1280). Anschließend speichert der
den Schreibbefehl für
die Schreibdaten empfangende DKA 120 die Schreibdaten durch
einen Lese-/Schreibprozess 220 (1110 in 11) in der Speichervorrichtung 150, die
den logischen Datenträger
A bereitstellt.
-
Als
nächstes
wird die Journal-Erzeugungsverarbeitung beschrieben.
- (1) Der Host-CHA 110A untersucht den Datenträgerstatus
des logischen Journal-Datenträgers 230JA,
der zu der Gruppennummer gehört,
die der logischen Datenträgernummer
A entspricht, auf der Grundlage der Datenträgerinformationen 400,
der Weginformationen 500 und der Gruppeninformationen 600 (Schritt 1310).
Falls bei der Untersuchung in Schritt 1310 herausgefunden
wird, dass der Datenträgerstatus
des logischen Journal-Datenträgers "abnorm" ist, bedeutet dies, dass
das Journal nicht in diesem logischen Journal-Datenträger gespeichert werden kann,
und der Host-CHA 110A ändert
den Gruppenstatus daher zu "abnorm" und beendet die
Verarbeitung (Schritt 1315). In diesem Fall kann der Host-CHA 110A beispielsweise
eine Verarbeitung zum Ändern
des logischen Journal-Datenträgers
zu einem normalen logischen Datenträger ausführen.
- (2) Falls bei der Untersuchung in Schritt 1310 herausgefunden
wird, dass der logische Journal-Datenträger normal ist, setzt der Host-CHA 110A den
Journal-Erzeugungsprozess fort. Die Inhalte des Journal-Erzeugungsprozesses ändern sich abhängig davon,
ob er als Teil eines anfänglichen Kopierprozesses
oder als Teil eines Befehlsempfangsprozesses implementiert ist (Schritt 1320). Falls
der Journal-Erzeugungsprozess Teil eines Befehlsempfangsprozesses
ist, implementiert der Host-CHA 110A die Verarbeitung von
Schritt 1330 an. Falls der Journal-Erzeugungsprozess Teil
eines anfänglichen
Kopierprozesses ist, implementiert der Host-CHA 110A die
Verarbeitung von Schritt 1370 an.
- (3) Falls der Journal-Erzeugungsprozess Teil eines Befehlsempfangsprozesses
ist, untersucht der Host-CHA 110A, ob die logische Adresse
A, die zu schreiben ist, in dem anfänglichen Kopierprozess verarbeitet
worden ist (Schritt 1330). Falls der Paarstatus des logischen
Datenträgers A "nicht kopiert" ist, bedeutet dies,
dass der Journal-Erzeugungsprozess
später
in einem anfänglichen
Kopierprozess auszuführen
ist, und der Host-CHA 110A beendet daher den Prozess, ohne
ein Journal zu erzeugen (Schritt 1335). Falls der Paarstatus
des logischen Datenträgers
A "kopierend" ist oder falls die
kopierte Adresse kleiner oder gleich der logischen Adressposition
A ist, bedeutet dies, dass der Journal-Erzeugungsprozess später in einem
anfänglichen
Kopierprozess auszuführen
ist, und der Host-CHA 110A beendet daher den Prozess, ohne
ein Journal zu erzeugen (Schritt 1335). In anderen Fällen als
den vorstehend erwähnten,
mit anderen Worten, falls der Paarstatus des logischen Datenträgers A "kopierend" ist und die kopierte
Adresse höher
als die logische Adressposition A ist oder falls der Paarstatus
des logischen Datenträgers
A "normal" ist, bedeutet dies,
dass der anfängliche
Kopierprozess bereits abgeschlossen wurde, und der Host-CHA 110A setzt
daher den Journal-Erzeugungsprozess
fort.
- (4) Als nächstes
untersucht der Host-CHA 110A, ob ein Journal im logischen
Journal-Datenträger gespeichert
werden kann. Insbesondere untersucht der Host-CHA 110A unter
Verwendung der Zeigerinformationen 700, ob im Aktualisierungsinformationsbereich
nicht verwendeter Platz vorhanden ist (Schritt 1340). Falls
die Neueste-Aktualisierungsinformations-Adresse und die Älteste-Aktualisierungsinformations-Adresse
in den Zeigerinformationen 700 gleich sind, bedeutet dies,
dass in dem Aktualisierungsinformationsbereich kein ungenutzter
Platz vorhanden ist, und der Host-CHA 110A beendet daher
den Prozess als "es
ist nicht gelungen, ein Journal zu erzeugen" (Schritt 1390).
Falls
bei der Untersuchung in Schritt 1340 in dem Aktualisierungsinformationsbereich
ein nicht verwendeter Platz vorhanden ist, untersucht der Host-CHA 110A auf
der Grundlage der Zeigerinformationen 700, ob es möglich ist,
Schreibdaten in dem Schreibdatenbereich zu speichern (Schritt 1345).
Falls die Summe aus der Neueste-Schreibdaten-Adresse und dem Datenträger A größer oder
gleich der Älteste-Schreibdaten-Adresse
ist, bedeutet dies, dass die Schreibdaten nicht im Schreibdatenbereich
gespeichert werden können, weshalb
der Host-CHA 110A den Prozess als "es ist nicht gelungen, ein Journal zu
erzeugen" beendet
(Schritt 1390).
- (5) Falls ein Journal gespeichert werden kann, erfasst der Host-CHA 110A die
der fraglichen Gruppe (der Gruppe, zu der der logische Journal-Datenträger JA1
gehört)
entsprechende Aktualisierungsnummer (die in den Gruppeninformationen 600 enthaltene
Aktualisierungsnummer), die logische Adresse zum Speichern der Aktualisierungsinformationen
und die logische Adresse zum Speichern der Schreibdaten und erzeugt
Aktualisierungsinformationen im Cache-Speicher 130. Überdies
legt der Host-CHA 110A einen Zahlenwert, der gleich der
erfassten Aktualisierungsnummer plus 1 ist, als die neue Aktualisierungsnummer
in den Gruppeninformationen 600 fest. Die logische Adresse
zum Speichern der Aktualisierungsinformationen ist die Neueste-Aktualisierungsinformations-Adresse
in den Zeigerinformationen 700, und der Host-CHA 110A legt
den Wert dieser Adresse plus der Größe der Aktualisierungsinformationen
als eine frische Neueste-Aktualisierungsinformations-Adresse in
den Zeigerinformationen 700 fest. Die logische Adresse
zum Speichern der Schreibdaten ist die Neueste-Schreibdaten-Adresse in den Zeigerinformationen 700,
und der Host-CHA 110A legt den Wert der Neueste-Schreibdaten-Adresse
plus dem Datenträger
A als eine frische Neueste-Schreibdaten-Adresse in den Zeigerinformationen 700 fest.
Der
Host-CHA 110A legt die Werte und die Gruppennummer, die
vorstehend erfasst wurden, die Zeit, zu der der Schreibbefehl empfangen
wurde, die logische Adresse A in dem Schreibbefehl und den Datenträger A in
den Aktualisierungsinformationen fest (Schritt 1350, 1120 in 11). Falls beispielsweise im Fall der in 6 dargestellten Gruppeninformationen 600 und
der in 7 dargestellten Zeigerinformationen 700 ein
Schreibbefehl einer Datengröße 100 an
der Position der Adresse 800 des zur Gruppe 1 gehörenden ersten logischen
Datenträgers
#1 empfangen wird, werden Aktualisierungsinformationen in der Art
der in 22 dargestellten erzeugt. Die
Aktualisierungsnummer in den Gruppeninformationen ist 5, die Neueste-Aktualisierungsinformations-Adresse in
den Zeigerinformationen ist 600 (wobei die Größe der Aktualisierungsinformationen
als 100 angenommen wird), und die Neueste-Schreibdaten-Adresse ist
2300.
- (6) Der Host-CHA 110A weist den DKA 120 an, die
Aktualisierungsinformationen und die Schreibdaten in dem Journal
in die Speichervorrichtung 150 zu schreiben, und beendet
dann normal (Schritt 1360; 1130, 1140, 1150 in 11).
- (7) Falls der Journal-Erzeugungsprozess Teil eines anfänglichen
Kopierprozesses ist, implementiert der Host-CHA 110A die
Verarbeitung von Schritt 1370 an. Der Host-CHA 110A untersucht, ob
ein Journal erzeugt werden kann. Insbesondere untersucht der Host-CHA 110A unter
Verwendung der Zeigerinformationen 700, ob im Aktualisierungsinformationsbereich
nicht verwendeter Platz vorhanden ist (Schritt 1370). Falls
die Neueste-Aktualisierungsinformations-Adresse und die Älteste-Aktualisierungsinformations-Adresse in
den Zeiger informationen 700 gleich sind, bedeutet dies,
dass in dem Aktualisierungsinformationsbereich kein ungenutzter
Platz vorhanden ist, und der Host-CHA 110A beendet daher
den Prozess als "es
ist nicht gelungen, ein Journal zu erzeugen" (Schritt 1390). Bei dem im
vorliegenden Implementationsmodus beschriebenen anfänglichen
Kopierprozess werden die Schreibdaten in dem Journal aus dem ersten
logischen Datenträger
gelesen, und weil der Schreibdatenbereich nicht verwendet wird,
ist es dann nicht erforderlich, auf nicht verwendeten Platz in dem
Schreibdatenbereich zu prüfen.
- (8) Falls anhand der Untersuchung in Schritt 1370 herausgefunden
wird, dass ein Journal erzeugt werden kann, erfasst der Host-CHA 110A den
in den Aktualisierungsinformationen festgelegten Zahlenwert und
erzeugt Aktualisierungsinformationen in dem Cache-Speicher 130.
Die Aktualisierungsnummer wird anhand der Gruppeninformationen 600 für die fragliche
Gruppe erfasst, und der Host-CHA 110A erzeugt einen Wert,
der gleich dieser Aktualisierungsnummer plus eins ist, als eine
neue Aktualisierungsnummer in den Gruppeninformationen 600.
Die logische Adresse zum Speichern der Aktualisierungsinformationen
ist die Position der Neueste-Aktualisierungsinformations-Adresse
in den Zeigerinformationen 700, und der Host-CHA 110A legt
den Wert dieser Adresse plus der Größe der Aktualisierungsinformationen
als die frische Neueste-Aktualisierungsinformations-Adresse in den
Zeigerinformationen 700 fest.
Der Host-CHA 110A legt
die Werte und die Gruppennummer, die vorstehend erfasst wurden,
die Anfangszeit des Prozesses, die in dem anfänglichen Kopierprozess verwendete
logische Adresse, die je Operation in dem anfänglichen Kopierprozess verarbeitete
Datenmenge, die logische Adresse des logischen Journal-Datenträgers, der die
Schreibdaten speichert, und die in dem anfänglichen Kopierprozess verwendete
logische Adresse in den Aktualisierungsinformationen fest (Schritt 1380; 1120 in 11).
- (9) Der Host-CHA 110A weist den DKA 120 an, die
Aktualisierungsinformationen in die Speichervorrichtung 150 zu
schreiben (er weist mit anderen Worten den DKA 120 an,
die Informationen beginnend mit der vorstehend erwähnten frischen Neueste-Aktualisierungsinformations-Adresse
in dem logischen Journal-Datenträger 230JA zu schreiben),
und er beendet normal (Schritt 1385; 1140 und 1160 in 11).
-
Das
vorstehend Erwähnte
war eine Beschreibung, die sich auf die 11 bis 13 bezog. In
der vorstehenden Beschreibung werden die Aktualisierungsinformationen
vorübergehend
im Cache-Speicher 130 gespeichert, sie können jedoch auch
vorübergehend
im geteilt verwendeten Speicher 140 oder dergleichen gespeichert
werden.
-
Überdies
braucht das Schreiben der Schreibdaten in die Speichervorrichtung 150 nicht asynchron
zu erfolgen, und es braucht mit anderen Worten nicht unmittelbar
nach Schritt 1360 und Schritt 1385 ausgeführt zu werden.
Falls der Host-Computer 180 einen
anderen Schreibbefehl an die logische Adresse A implementiert hat,
werden die Schreibdaten in dem Journal überschrieben, und die Schreibdaten
in dem Journal müssen
daher, bevor sie vom Host-Computer 180 empfangen werden,
in die Speichervorrichtung 150 geschrieben werden, die
der logischen Adresse des die Aktualisierungsinformationen speichernden
logischen Journal-Datenträgers
entspricht. Alternativ können
sie in einen getrennten Cache-Speicher
zurückgezogen
werden und später
entsprechend der logischen Adresse des die Aktualisierungsinformationen
speichernden logischen Journal-Datenträgers in die Speichervorrichtung 150 geschrieben
werden.
-
Weiterhin
werden in dem vorstehend beschriebenen Journal-Erzeugungsprozess
Journale in der Speichervorrichtung 150 gespeichert (mit
anderen Worten im logischen Journal-Datenträger 230JA), es ist
jedoch auch möglich,
Cache-Speicher 130 mit
einer vorgeschriebenen Größe für das Speichern
der Journale vorab zu präparieren
und die Journale dann in einer Speichervorrichtung 150 zu speichern,
wenn alle Cache-Speicher verwendet worden sind. Der Datenträger des
Cache-Speichers für
die Journale kann auch beispielsweise über einen SVP 281 spezifiziert
werden.
-
Ferner
ist der Lese-/Schreibprozess 220 ein durch den DKA 120 ansprechend
auf einen durch den DKA 120 von einem CHA 110 oder
einem anderen DKA 120 empfangenen Befehl implementierter Prozess.
Genauer gesagt, ist der Lese-/Schreibprozess 220 beispielsweise
ein Prozess, durch den die Daten in einem festgelegten Cache-Speicher 130 in den
Speicherbereich der Speichervorrichtung 150, entsprechend
einer festgelegten logischen Adresse, geschrieben werden, oder ein
Prozess, durch den Daten aus dem Speicherbereich in der Speichervorrichtung 150,
entsprechend einer festgelegten logischen Adresse, in einen festgelegten
Cache-Speicher 130 ausgelesen werden. Der Lese-/Schreibprozess 220 kann
beispielsweise durch die CPU in dem DKA 120 ausgeführt werden,
die ein bestimmtes Computerprogramm ausliest.
-
14 ist ein Diagramm zum Beschreiben des Betriebs
des Host-CHAs 110A des ersten Speichersystems 100A,
das einen Journal-Lesebefehl empfangen hat (nämlich zum Beschreiben eines Journal-Leseempfangsprozesses),
und 15 ist ein Flussdiagramm eines
Journal-Leseempfangsprozesses. Nachstehend wird ein Vorgang, bei
dem das erste Speichersystem 100A einen Journal-Lesebefehl
vom zweiten Speichersystem 100B empfängt, mit Bezug auf die 14 und 15 beschrieben.
In der folgenden Beschreibung werden der System-CHA 110B in
dem ersten Speichersystem 100A als "System-CHA 110BP" bezeichnet und der
System-CHA 110B in dem zweiten Speichersystem 100B als "System-CHA 110BS" bezeichnet.
- (1) Der System-CHA 110BP empfängt einen
Zugriffsbefehl vom System-CHA 110BS. Der Zugriffsbefehl
enthält
einen Identifizierer zum Angeben, dass es sich um einen Journal-Lesebefehl handelt,
eine Gruppennummer, die sich auf den Befehl bezieht, und einen Indikator,
der das Vorhandensein oder Nichtvorhandensein einer Neuversuchsanweisung
angibt. Nachstehend wird die Gruppennummer in dem Zugriffsbefehl
als die Gruppennummer A angenommen (Schritt 1220; 1410 in 14).
- (2) Der System-CHA 110BP bezieht sich auf die Gruppeninformationen 600 und
untersucht, ob der Gruppenstatus für die Gruppennummer A "normal" ist (Schritt 1510).
Falls der Gruppenstatus in Schritt 1510 ein anderer Status
als "normal", beispielsweise "Problem" ist, teilt der System-CHA 110BP den
Gruppenstatus dem System-CHA 110BS mit und beendet die
Verarbeitung. Der System-CHA 110BS führt die Verarbeitung entsprechend
dem so empfangenen Gruppenstatus aus. Falls der Gruppenstatus beispielsweise "Problem" ist, beendet der
System-CHA 110BS den Journal-Leseprozess (Schritt 1515).
- (3) Falls der Gruppenstatus der Gruppennummer A bei der Untersuchung
in Schritt 1510 "normal" ist, untersucht
der System-CHA 110BP den Status des logischen Journal-Datenträgers (Schritt 1520).
Falls der Datenträgerstatus
des logischen Journal-Datenträgers
bei der Untersuchung in Schritt 1520 nicht "normal" ist, falls der Status
beispielsweise "Problem" ist, ändert der
System-CHA 110BP den Gruppenstatus zu "Problem", teilt den geänderten Gruppenstatus dem System-CHA 110BS mit
und beendet die Verarbeitung. Der System-CHA 110BS führt die
Verarbeitung entsprechend dem so empfangenen Gruppenstatus aus.
Falls der Gruppenstatus beispielsweise "Problem" ist, beendet der System-CHA 110BS den
Journal-Leseprozess (Schritt 1525).
- (4) Falls bei der Untersuchung in Schritt 1520 herausgefunden
wird, dass der Datenträgerstatus des
logischen Journal-Datenträgers "normal" ist, untersucht
der System-CHA 110BP, ob der Journal-Lesebefehl eine Neuversuchsanweisung
ist (Schritt 1530).
- (5) Falls bei der Untersuchung in Schritt 1530 herausgefunden
wird, dass der Journal-Lesebefehl eine Neuversuchsanweisung ist,
sendet der System-CHA 110BP das zuvor übertragene Journal wieder zum
zweiten Speichersystem 100B. Der System-CHA 110BP reserviert
den Cache-Speicher 130 und weist den DKA 120 an,
der Größe der Aktualisierungs informationen
entsprechende Informationen, beginnend mit der Neuversuchs-Anfangsadresse,
die in den Zeigerinformationen 700 angegeben ist, in den
Cache-Speicher zu schreiben (1420 in 14).
-
Der
Lese-/Schreibprozess 220 in dem DKA 120 (beispielsweise
ein in die CPU des DKAs 120 gelesenes Computerprogramm)
liest die Aktualisierungsinformationen aus der Speichervorrichtung 150 (mit
anderen Worten dem logischen Journal-Datenträger 230JA) ein, speichert
diese Informationen im Cache-Speicher 130 und teilt das
Ende des Leseprozesses dem System-CHA 110BP mit, von dem
der Befehl ausgegangen ist (1430 in 14).
-
Der
System-CHA 110BP empfängt
die Mitteilung, welche das Ende des Aktualisierungsinformations-Leseprozesses
angibt, erfasst die logische Adresse der Schreibdaten und die Größe der Schreibdaten
und reserviert dann einen Cache-Speicher 130 und befiehlt
dem DKA 120, die Schreibdaten, beginnend mit der wie vorstehend
beschrieben erfassten logischen Adresse, in den reservierten Cache-Speicher 130 zu
schreiben (Schritt 1540; 1440 in 14).
-
Durch
den Lese-/Schreibprozess 220 liest der DKA 120 die
Schreibdaten aus der Speichervorrichtung 150 ein (insbesondere
die festgelegte logische Adresse), speichert die Schreibdaten im
reservierten Cache-Speicher 130 und teilt das Ende des Leseprozesses
dem System-CHA 110BP mit, von dem der Befehl ausgegangen
ist (1450 in 14).
-
Der
System-CHA 110BP empfängt
die Mitteilung, die das Ende des Schreibdaten-Leseprozesses angibt,
sendet die Aktualisierungsinformationen und die Schreibdaten zum
zweiten Speichersystem 100B, gibt den das Journal enthaltenden
Cache-Speicher 130 frei
und beendet dann die Verarbeitung (Schritt 1545; 1460 in 14).
- (6) Falls bei der Untersuchung
in Schritt 1530 herausgefunden wird, dass der Befehl keine
Neuversuchsanweisung ist, untersucht der System-CHA 110BP,
ob es ein Journal gibt, das nicht gesendet wurde, und sendet, falls
dies der Fall ist, dieses Journal zum zweiten Speichersystem 100B.
Der System-CHA 110BP vergleicht die Lesebeginnadresse in
den Zeigerinformationen 700 mit der Neueste-Aktualisierungsinformations-Adresse (Schritt 1550).
-
Falls
die Lesebeginnadresse gleich der Neueste-Aktualisierungsinformations-Adresse
ist, bedeutet dies, dass alle Journale zum zweiten Speichersystem 100B gesendet
worden sind, und der System-CHA 110BP sendet daher eine "keine Journale"-Nachricht zum zweiten
Speichersystem 100B (Schritt 1560), und wenn der
nächste
Journallesebefehl empfangen wird, gibt er den Speicherbereich der Journale,
die zum zweiten Speichersystem 100B gesendet worden sind,
frei (Schritt 1590).
-
In
dem Prozess zum Freigeben des Journal-Speicherbereichs setzt der
System-CHA 110BP die Neuversuchs-Anfangsadresse auf die Älteste-Aktualisierungsinformations-Adresse
in den Zeigerinformationen 700. Falls die Älteste-Aktualisierungsinformations-Adresse
die Kopfadresse des Schreibdatenbereichs erreicht hat, setzt der
System-CHA 110BP die Älteste-Aktualisierungsinformations-Adresse
auf Null. Der System-CHA 110BP ändert die Älteste-Schreibdaten-Adresse
in den Zeigerinformationen 700 auf den existierenden Wert
plus der Größe der entsprechend
dem vorhergehenden Journal-Lesebefehl gesendeten Schreibdaten. Falls
die Älteste-Schreibdaten-Adresse
eine logische Adresse erreicht hat, die gleich der Kapazität des logischen Journal-Datenträgers ist
oder diese übersteigt,
korrigiert der System-CHA 110BP die Adresse durch Subtrahieren
der Kopfadresse des Schreibdatenbereichs.
- (7)
Falls es in Schritt 1550 ein Journal gibt, das nicht gesendet
wurde, reserviert der System-CHA 110BP einen Cache-Speicher 130 und
befiehlt dem DKA 120, die Aktualisierungsinformationen von
der Lesebeginnadresse in den Zeigerinformationen 700 zu
dem so reservierten Cache-Speicher 130 zu schreiben (mit
anderen Worten Informationen der vorgeschriebenen Größe von der Lesebeginnadresse
auszulesen) (1420 in 14).
-
Durch
Ausführen
eines Lese-/Schreibprozesses 220 ansprechend auf diesen
Befehl liest der DKA 120 die Aktualisierungsinformationen
aus der Speichervorrichtung 150 (mit anderen Worten dem logischen
Journal-Datenträger 230JA)
ein, speichert diese Informationen im Cache-Speicher 130 und
teilt das Ende des Leseprozesses dem System-CHA 110BP mit,
von dem der Befehl ausgegangen ist (1430 in 14).
-
Der
System-CHA 110BP empfängt
die Mitteilung, die das Ende des Aktualisierungsinformations-Leseprozesses
angibt, erfasst die logische Adresse der Schreibdaten und die Größe der Schreibdaten
anhand der ausgelesenen Aktualisierungsinformationen und reserviert
dann einen Cache-Speicher 130 und weist den DKA 120 an, Schreibdaten
mit der erfassten Datengröße von der erfassten
logischen Adresse in den reservierten Cache-Speicher 130 einzulesen
(Schritt 1570; 1440 in 14).
-
Durch
den Lese-/Schreibprozess 220 liest der DKA 120 die
Schreibdaten aus der Speichervorrichtung 150 (insbesondere
die festgelegte logische Adresse des logischen Journal-Datenträgers 230JA) entsprechend
diesem Befehl ein, speichert die Schreibdaten im reservierten Cache-Speicher 130 und
teilt das Ende des Leseprozesses dem System-CHA 110BP mit
(1450 in 14).
-
Das
System-CHA 110BP empfängt
die Mitteilung, die das Ende des Schreibdaten-Leseprozesses angibt,
sendet die Aktualisierungsinformationen und die Schreibdaten zum
zweiten Speichersystem 100B (Schritt 1580) und
gibt den Cache-Speicher 130 frei,
der das Journal enthält
(1460 in 14). Der System-CHA 110BP legt
dann die Lesebeginnadresse als die Neuversuchs-Anfangsadresse in
den Zeigerinformationen 700 fest und legt einen durch Addieren
der Lesebeginnadresse zu der Aktualisierungsinformationsgröße des gesendeten
Journals erhaltenen Wert als die neue Lesebeginnadresse in den Zeigerinformationen 700 fest.
- (8) Wenn der vorhergehende Journal-Lesebefehl verarbeitet
wurde, gibt der System-CHA 110BP den Speicher bereich der
Journale frei, die zum zweiten Speichersystem 100B gesendet
worden sind (Schritt 1590).
-
Die
vorstehende Beschreibung bezog sich auf die 14 bis 15.
Bei dem vorstehend beschriebenen Journal-Leseempfangsprozess hat das erste Speichersystem 100A die
Journale einzeln nacheinander zu dem zweiten Speichersystem 100B übertragen,
es ist jedoch auch möglich,
mehrere Journale gleichzeitig zu dem zweiten Speichersystem 100B zu
senden. Die Anzahl der Journale, die durch einen Journal-Lesebefehl
gesendet werden können,
kann durch das zweite Speichersystem 100B im Journal-Lesebefehl
spezifiziert werden, oder sie kann durch den Benutzer zu einer vorgeschriebenen
Zeit, beispielsweise wenn die Gruppe registriert wird, für das erste
Speichersystem 100A oder das zweite Speichersystem 100B spezifiziert werden.
Weiterhin ist es auch möglich,
dass das erste Speichersystem 100A oder das zweite Speichersystem 100B die
Anzahl der durch einen einzigen Journal-Lesebefehl gesendeten Journale
in dynamischer Weise, abhängig
von der Übertragungskapazität, der Belastung
oder dergleichen des Verbindungswegs 200 zwischen dem ersten
Speichersystem 100A und dem zweiten Speichersystem 100B ändert. Überdies
kann das Journal-Übertragungsvolumen
an Stelle der Anzahl der Journale spezifiziert werden, indem die
Größe der Schreibdaten
in den Journalen berücksichtigt
wird. Dieses Übertragungsvolumen
kann auch dynamisch geändert
werden.
-
Überdies
werden bei dem vorstehend beschriebenen Journal-Leseempfangsprozess
die Journale von der Speichervorrichtung 150 in den Cache-Speicher 130 eingelesen,
falls sie sich jedoch im Cache-Speicher 130 befinden, braucht
die vorstehend erwähnte
Verarbeitung nicht ausgeführt
zu werden.
-
Weiterhin
wurde beschrieben, dass der Prozess zum Freigeben des Speicherbereichs
des Journals beim Journal-Leseempfangsprozess
implementiert wird, wenn der nächste
Journal-Lesebefehl verarbeitet wird, er kann jedoch auch implementiert
werden, unmittelbar nachdem die Journale zum zweiten Speichersystem 100B gesendet
worden sind. Überdies kann
das zweite Speichersystem 100B eine Aktualisierungsnummer
festlegen, bei der der Speicherbereich in dem Journal-Lesebefehl freigegeben
werden kann, wobei das erste Speichersystem 100A den Journal-Speicherbereich
entsprechend dieser Anweisung freigibt.
-
16 zeigt die Sequenz eines Journal-Lesebefehlsprozesses 240,
und 17 ist ein Flussdiagramm eines
Journal-Lesebefehlsprozesses 240. 18 ist
ein Flussdiagramm eines Journal-Speicherprozesses. Nachstehend wird
ein Vorgang beschrieben, bei dem der System-CHA 110BS des zweiten
Speichersystems 100B ein Journal aus dem ersten Speichersystem 100A ausliest
und dieses Journal in einem logischen Journal-Datenträger im zweiten
Speichersystem 100B (nachstehend als "logischer Journal-Datenträger 230JB" bezeichnet) speichert. Überdies
wird in 16 der Journal-Lesebefehlsprozess 240 als "JNLRD-Prozess 240" bezeichnet.
- (1) Der System-CHA 110BS reserviert
den Cache-Speicher 130 zum Speichern des Journals und erzeugt
einen Zugriffsbefehl, der einen Identifizierer, welcher angibt,
dass es sich um einen Journal-Lesebefehl handelt, die Gruppennummer in
dem ersten Speichersystem 100A, die sich auf diesen Befehl
bezieht, und einen Indikator, der zeigt, ob es sich um eine Neuversuchsanweisung handelt,
enthält.
Der System-CHA 110BS sendet diesen Zugriffsbefehl zum ersten
Speichersystem 100A. Nachstehend wird die Gruppennummer
in dem Zugriffsbefehl als die Gruppennummer A angenommen (Schritt 1700; 1610 in 16). Die Gruppennummer A kann beispielsweise erfasst werden,
indem der System-CHA 110BS auf die Gruppeninformationen 600,
die Weginformationen 500 oder dergleichen, die im zweiten
Speichersystem 100B enthalten sind, Bezug nimmt, die erste
logische Datenträgernummer
identifiziert, die der zweiten logischen Datenträgernummer entspricht, die in
der Gruppennummer enthalten ist, zu der der logische Journal-Datenträger 230JB gehört, und
dann beim ersten Speichersystem 100A eine Anfrage in Bezug
auf die Gruppennummer, zu der die identifizierte erste logische
Datenträgernummer
gehört,
vornimmt.
- (2) Der System-CHA 110BS empfängt eine Antwort und ein Journal
vom ersten Speichersystem 100A (1620 in 16). Der System-CHA 110BS untersucht
die so empfangene Antwort, und falls die Antwort "keine Journale" ist, bedeutet dies, dass
es in der Gruppe des ersten Speichersystems 100A, die der
festgelegten Gruppennummer A entspricht, keine Journale gibt. Daher
sendet der System-CHA 110BS nach Ablauf eines vorgeschriebenen
Zeitraums einen Journal-Lesebefehl zum ersten Speichersystem 100A (Schritte 1720 und 1725).
- (4) Falls die Antwort des ersten Speichersystems 100A" Gruppenstatus gibt
abnorm an" oder "Gruppenstatus gibt
nicht verwendet an" ist, ändert der
System-CHA 110BS den Gruppenstatus im zweiten Speichersystem 100B (den
Gruppenstatus der Gruppe, zu der der logische Journal-Datenträger 230JB gehört) zu dem
so empfangenen Status und beendet dann den Journal-Leseprozess (Schritte 1730 und 1735).
- (5) Falls die Antwort des ersten Speichersystems 100A eine
andere Antwort als die vorstehend erwähnte ist, falls sie mit anderen
Worten eine normale Beendigung angibt, bezieht sich der System-CHA 110BS auf
die Datenträgerinformationen 400 und
untersucht den Datenträgerstatus des
logischen Journal-Datenträgers 230JB (Schritt 1740).
Falls der Datenträgerstatus
des logischen Journal-Datenträgers 230JB "abnorm" ist, bedeutet dies,
dass das Journal nicht in dem logischen Journal-Datenträger 230JB gespeichert
werden kann, weshalb der System-CHA 110BS den Gruppenstatus,
der der Gruppe entspricht, zu der der logische Journal-Datenträger 230JB gehört, zu "abnorm" ändert und den Prozess dann
beendet (Schritt 1745). In diesem Fall kann der System-CHA 110BS beispielsweise
die Verarbeitung zum Ändern
des logischen Journal-Datenträgers
zu einem normalen logischen Datenträger ausführen und den Gruppenstatus
zu "normal" zurücksetzen.
- (6) Falls bei der Untersuchung in Schritt 1740 herausgefunden
wird, dass der Datenträgerstatus des
logischen Journal-Datenträgers "normal" ist, führt der
System-CHA 110BS die Journal-Speicherverarbeitung 1800 wie
nachstehend beschrieben aus. Falls der Journal-Speicherprozess 1800 normal
endet, sendet der System-CHA 110BS den nächsten Journal-Lesebefehl
(Schritt 1760). Stattdessen ist es auch möglich, dass
der System-CHA 110BS den nächsten Journal-Lesebefehl erzeugt
und sendet, wenn ein bestimmter Zeitraum nach der normalen Beendigung
des Journal-Speicherprozesses 1800 verstrichen ist. Der
System-CHA 110BS kann anschließend Journal-Befehle in periodischer
Weise, in vorgeschriebenen Zeitintervallen senden oder alternativ
die Zeit für
das Senden des nächsten
Journal-Befehls auf der Grundlage der Anzahl der empfangenen Journale,
des Übertragungsvolumens
in dem Verbindungsweg 200 und der Speicherkapazität des im
zweiten Speichersystem 100B enthaltenen logischen Journal-Datenträgers oder
der Belastung des zweiten Speichersystems 100B oder dergleichen
oder auf der Grundlage der im ersten Speichersystem 100A enthaltenen
Journal-Speicherkapazität
(oder der Zeigerinformationen 700 des ersten Speichersystems 100A),
die vom ersten Speichersystem 100A erfasst wurde, festlegen. Die
erwähnte
Informationsübertragung
kann durch einen Spezialbefehl implementiert werden, oder sie kann
in eine Antwort auf den Journal-Lesebefehl aufgenommen werden. Die
anschließende
Verarbeitung gleicht derjenigen von Schritt 1710 an.
- (7) Falls der Journal-Speicherprozess in Schritt 1800 nicht
normal endet, bedeutet dies, dass es ungenügend freien Platz im logischen
Journal-Datenträger
gibt, weshalb der System-CHA 110BS das empfangene Journal
verwirft und einen Journal-Lesebefehl, der eine Neuversuchsanweisung angibt,
sendet, wenn ein vorgeschriebener Zeitraum verstrichen ist (Schritt 1755).
Alternativ kann der System-CHA 110BS das Journal in einem
Cache-Speicher 230 halten und die Journal-Speicherverarbeitung
wieder ausführen,
wenn ein vorgeschriebener Zeitraum verstrichen ist. Dies liegt daran,
dass es eine Möglichkeit
gibt, dass der nicht verwendete Platz in dem logischen Journal-Datenträger zugenommen
hat, wenn der vorgeschriebene Zeitraum verstrichen ist, weil ein Umspeicher- Prozess 250 (nachstehend
beschrieben) implementiert wurde. Im Fall dieses Verfahrens braucht
ein Indikator, der zeigt, ob der Befehl eine Neuversuchsanweisung
ist, nicht in den Journal-Lesebefehl aufgenommen zu werden.
-
Als
nächstes
wird der in 18 dargestellte Journal-Speicherprozess 1800 beschrieben.
- (1) Der System-CHA 110BS untersucht,
ob ein Journal in dem logischen Journal-Datenträger 230JB gespeichert
werden kann. Insbesondere untersucht der System-CHA 110BS unter
Verwendung der im zweiten Speichersystem 100B enthaltenen
Zeigerinformationen 700, ob es in dem Aktualisierungsinformationsbereich
nicht verwendeten Platz gibt (Schritt 1810). Falls die Neueste-Aktualisierungsinformations-Adresse und
die Älteste-Aktualisierungsinformations-Adresse
in den Zeigerinformationen 700 gleich sind, bedeutet dies,
dass in dem Aktualisierungsinformationsbereich kein ungenutzter
Platz vorhanden ist, und der System-CHA 110BS beendet daher
den Prozess als "es
ist nicht gelungen, ein Journal zu erzeugen" (Schritt 1820).
- (2) Falls bei der Untersuchung in Schritt 1810 in dem
Aktualisierungsinformationsbereich ein nicht verwendeter Platz vorhanden
ist, untersucht der System-CHA 110BS auf der Grundlage
der Zeigerinformationen 700, ob es möglich ist, Schreibdaten in
dem Schreibdatenbereich zu speichern (Schritt 1830). Falls
die Summe aus der Neueste-Schreibdaten-Adresse und dem Datenträger der
Schreibdaten größer oder
gleich der Älteste-Schreibdaten-Adresse
ist, bedeutet dies, dass die Schreibdaten nicht im Schreibdatenbereich gespeichert
werden können,
weshalb der System-CHA 110BS den Prozess als "es ist nicht gelungen,
ein Journal zu erzeugen" beendet
(Schritt 1820).
- (3) Falls das Journal gespeichert werden kann, ändert der
System-CHA 110BS die in den Aktualisierungsinformationen
des Journals, die durch den Journal-Leseprozess 240 empfangen
wurden, enthaltene Gruppennummer und die logische Adresse für die Schreibdaten
in dem logischen Journal-Datenträger (nachstehend
als "Journal-Schreibdatenadresse" bezeichnet). Insbesondere ändert der
System-CHA 110BS die Gruppennummer in den Aktualisierungsinformationen
zu der Gruppennummer des zweiten Speichersystems 100B (die
Gruppennummer der Gruppe, zu der der logische Journal-Datenträger 230JB gehört) und ändert die
Journal-Schreibdatenadresse in den Aktualisierungsinformationen zu
der Neueste-Schreibdaten-Adresse in den vom zweiten Speichersystem 100B bereitgestellten Zeigerinformationen 700.
Der System-CHA 110BS ändert
die Neueste-Aktualisierungsinformations-Adresse
in den Zeigerinformationen 700 zu dem Wert der existierenden
Neueste-Aktualisierungsinformations-Adresse plus der Größe der Aktualisierungsinformationen.
Der System-CHA 110BS ändert
auch die Neueste-Schreibdaten-Adresse
in den Zeigerinformationen 700 zu dem Wert der existierenden
Neueste-Schreibdaten-Adresse plus der Größe der Schreibdaten (Schritt 1840).
- (4) Der System-CHA 110BS reserviert den Cache-Speicher 130,
speichert die Aktualisierungsinformationen und die Schreibdaten
im reservierten Cache-Speicher 130, weist den DKA 120 an, die
Aktualisierungsinformationen und die Schreibdaten in eine Speichervorrichtung 150 (mit
anderen Worten in den logischen Journal-Datenträger 230JB) zu schreiben,
und beendet dann den Prozess als "Journal erfolgreich erzeugt" (Schritt 1850; 1630 in 16). Danach schreibt der DKA 120 durch
den Lese-/Schreibprozess 220 die im Cache-Speicher 130 gespeicherten
Aktualisierungsinformationen und die Schreibdaten in die Speichervorrichtung 150 und
gibt dann den Cache-Speicher 130 frei,
der reserviert wurde (1640 in 16).
-
Überdies
werden in dem vorstehend beschriebenen Journal-Speicherprozess Journale in der Speichervorrichtung 150 gespeichert,
es ist jedoch auch möglich,
Cache-Speicher 130 mit einer vorgeschriebenen Größe für das Speichern
der Journale vorab zu präparieren
und dann die Journale von allen Cache-Speichern in einer Speichervorrichtung 150 zu
speichern, wenn alle Cache-Speicher verwendet worden sind. Der für die Journale
verwendete Cache-Speicherdatenträger kann
beispielsweise auch durch einen SVP 281 spezifiziert werden.
-
19 ist ein Diagramm zum Beschreiben eines Umspeicherprozesses 250,
und 20 ist ein Flussdiagramm dieses
Umspeicherprozesses 250. Nachstehend wird ein Vorgang,
bei dem der Host-CHA 110A des zweiten Speichersystems 100B Daten
unter Verwendung eines Journals aktualisiert, mit Bezug auf die 19 und 20 beschrieben. Der
Umspeicherprozess 250 kann durch einen getrennten CHA 110 (beispielsweise
den System-CHA 110BS) oder durch den DKA 120 des
zweiten Speichersystems 100B ausgeführt werden.
- (1)
Der Host-CHA 110A bezieht sich auf die Gruppeninformationen 600 und
untersucht, ob der Gruppenstatus der aus mehreren Gruppennummern
ausgewählten
Gruppennummer "normal" ist (Schritt 2010).
Falls bei der Untersuchung in Schritt 2010 herausgefunden
wird, dass der Gruppenstatus ein von "normal" verschiedener Status, beispielsweise "Problem", ist, beendet der Host-CHA 110A den
Umspeicherprozess 250 (Schritt 2015).
- (2) Falls in Schritt 2010 herausgefunden wird, dass
der Gruppenstatus "normal" ist, bezieht sich der
Host-CHA 110A auf die Gruppeninformationen 600,
die Datenträgerinformationen 400 und dergleichen
und untersucht den Datenträgerstatus
entsprechend der zur ausgewählten
Gruppennummer gehörenden
logischen Journal-Datenträgernummer
(Schritt 2020). Falls bei der Untersuchung in Schritt 2020 herausgefunden
wird, dass der Datenträgerstatus
des logischen Journal-Datenträgers 230JB "abnorm" ist, bedeutet dies, dass
auf den logischen Datenträger
nicht zugegriffen werden kann, weshalb der Host-CHA 110A den
Gruppenstatus, der der ausgewählten
Gruppennummer entspricht, zu "abnorm" ändert und die Verarbeitung
beendet (Schritt 2025).
- (3) Falls in Schritt 2020 herausgefunden wird, dass
der Datenträgerstatus
des logischen Journal-Datenträgers 230JB "normal" ist, untersucht der
Host-CHA 110A, ob ein Journal existiert, das umzuspeichern
ist. Insbesondere erfasst der Host-CHA 110A die Älteste-Aktualisierungsinformations-Adresse
und die Neueste-Aktualisierungsinformations-Adresse in den Zeigerinformationen 700 und
vergleicht diese Adressen. Falls die Älteste-Aktualisierungsinformations-Adresse und
die Neueste-Aktualisierungsinformations-Adresse gleich sind, bedeutet
dies, dass kein Journal vorhanden ist, weshalb der Host-CHA 110A den
Umspeicherprozess vorübergehend beendet
und ihn neu einleitet, sobald ein vorgeschriebener Zeitraum verstrichen
ist (Schritt 2030).
- (4) Falls ein Journal als Ergebnis der Untersuchung in Schritt 2030 umzuspeichern
ist, führt
der Host-CHA 110A die folgende Verarbeitung in Bezug auf
das Journal, das die älteste
(kleinste) Aktualisierungsnummer aufweist, aus. Die Aktualisierungsinformationen
in dem Journal mit der ältesten
(kleinsten) Aktualisierungsnummer werden, beginnend mit der Älteste-Aktualisierungsinformations-Adresse,
die in den Zeigerinformationen 700 angegeben ist, gespeichert.
Der Host-CHA 110A reserviert
einen Cache-Speicher 130 und weist den DKA 120 an,
Informationen, die der Größe der Aktualisierungsinformationen
entsprechen (mit anderen Worten die Aktualisierungsinformationen
selbst), aus der Älteste-Aktualisierungsinformations-Adresse
in den Cache-Speicher 130 zu lesen (1910 in 19).
-
Der
durch den DKA 120 ausgeführte Lese-/Schreibprozess 220 beinhaltet
das Lesen der Aktualisierungsinformationen aus der Speichervorrichtung 150 (mit
anderen Worten dem logischen Journal-Datenträger 230JB), das Speichern
dieser Aktualisierungsinformationen in einem reservierten Cache-Speicher 130 und
das anschließende
Mitteilen des Abschlusses des Lesevorgangs zu dem Host-CHA 110 (1920 in 19).
-
Der
Host-CHA 110A empfängt
die Mitteilung, die den Abschluss des Aktualisierungsinformations-Leseprozesses
angibt, erfasst die logische Adresse der Schreibdaten und die Größe der Schreibdaten
und reserviert dann einen Cache-Speicher 130 und
weist den DKA 120 an, dieser Datengröße entsprechende Daten (mit
anderen Worten einen Teil der Schreibdaten) von der erfassten logischen
Adresse in den Cache-Speicher 130 zu lesen (1930 in 19).
-
Der
von dem DKA 120 ausgeführte
Lese-/Schreibprozess 220 beinhaltet das Lesen der Schreibdaten
aus der Speichervorrichtung 150 (mit anderen Worten aus
der festgelegten logischen Adresse), das Speichern dieser Schreibdaten
im Cache-Speicher 130 und das anschließende Mitteilen des Abschlusses
des Lesevorgangs zum Host-CHA 110 (Schritt 2040; 1940 in 19).
- (5) Der Host-CHA 110A legt
die zu aktualisierende logische Adresse des zweiten logischen Datenträgers (mit
anderen Worten die logische Adresse des Schreibbefehls (siehe 21)) anhand der Aktualisierungsinformationen fest
und weist den DKA 120 an, die Schreibdaten an die durch
diese logische Adresse identifizierte Adresse des zweiten logischen
Datenträgers 230SB zu schreiben
(Schritt 2050; 1950 in 19).
Der durch den DKA 120 ausgeführte Lese-/Schreibprozess 220 beinhaltet
das Schreiben der im Cache-Speicher 130 gespeicherten Schreibdaten
in den Speicherbereich der Speichervorrichtung 150, der
der logischen Adresse im zweiten logischen Datenträger (der
logischen Adresse des Schreibbefehls) entspricht, und das anschließende Freigeben
des Cache-Speichers 130 und das Mitteilen des Abschlusses
des Schreibvorgangs zum Host-CHA 110A (1960 in 19).
- (6) Der Host-CHA 110A empfängt die Schreibprozess-Abschlussmitteilung
und gibt den Journal-Speicherbereich frei. In dem Prozess zum Freigeben
des Journal-Speicherbereichs ändert der
Host-CHA 110A die Älteste-Aktualisierungsinformations-Adresse
in den Zeigerinformationen 700, die im zweiten Speichersystem 100B bereitgestellt
sind, zu einem Wert, der gleich der aktuellen Älteste-Aktualisierungsinformations-Adresse plus
der Aktualisierungsinformationsgröße ist. Falls die Älteste-Aktualisierungsinformations-Adresse die Kopfadresse
des Schreibdatenbereichs erreicht hat, setzt der Host-CHA 110A die
Kopfadresse des Schreibdatenbereichs auf 0. Der Host-CHA 110A ändert die Älteste-Schreibdaten-Adresse
in den Zeigerinformationen 700 zu einem Wert, der gleich
der existierenden Älteste-Schreibdaten-Adresse
plus der Größe der Schreibdaten,
die geschrieben worden sind, ist. Falls die Älteste-Schreibdaten-Adresse eine logische
Adresse erreicht hat, die gleich der Kapazität des logischen Journal-Datenträgers ist
oder diese übersteigt,
korrigiert der Host-CHA 110A die Adresse durch Subtrahieren
der Kopfadresse des Schreibdatenbereichs. Anschließend leitet
der Host-CHA 110A den nächsten
Umspeicherprozess ein (Schritt 2060).
-
Die
vorstehende Beschreibung bezog sich auf die 19 bis 20. Überdies
werden bei dem vorstehend beschriebenen Umspeicherprozess 250 die
Journale aus der Speichervorrichtung 150 in den Cache-Speicher 130 eingelesen,
falls sie sich jedoch im Cache-Speicher 130 befinden, braucht
die vorstehend erwähnte
Verarbeitung nicht ausgeführt
zu werden.
-
Überdies
wird in dem Journal-Leseempfangsprozess und dem Journal-Lesebefehlsprozess 240,
die vorstehend beschrieben wurden, das zu sendende Journal entsprechend
den Zeigerinformationen 700 durch das erste Speichersystem 100A festgelegt,
das zu sendende Journal kann jedoch auch durch das zweite Speichersystem 100B festgelegt
werden. Beispielsweise addiert der System-CHA 110BS eine
Aktualisierungsnummer zu dem Journal-Lesebefehl. In diesem Fall
kann, damit der den Journal-Lesebefehl empfangende System-CHA 110BP die
logische Adresse der Aktualisierungsinformationen mit der vom zweiten
Speichersystem 100B festgelegten Aktualisierungsnummer
bestimmen kann, in dem Journal-Leseempfangsprozess eine Tabelle
oder ein Index in dem geteilt verwendeten Speicher 140 des
ersten Speichersystems 100A bereitgestellt werden, um auf
der Grundlage der Aktualisierungsnummer die logische Adresse zu
bestimmen, an der die Aktualisierungsinformationen gespeichert werden.
-
Überdies
wurde in dem Journal-Leseempfangsprozess und dem Journal-Lesebefehlsprozess 240,
die vorstehend beschrieben wurden, ein Journal-Lesebefehl verwendet,
es ist jedoch auch möglich,
einen normalen Lesebefehl zu verwenden. Beispielsweise können die
Gruppeninformationen 600 und die Zeigerinformationen 700 in
dem ersten Speichersystem 100A zuvor zum zweiten Speichersystem 100B übertragen
werden, und das zweite Speichersystem 100B kann dann die
Daten im logischen Journal-Datenträger des ersten Speichersystems 100A (mit
anderen Worten das Journal) lesen.
-
Überdies
werden in dem vorstehend beschriebenen Journal-Leseempfangsprozess die Journale in
der Reihenfolge ihrer Aktualisierungsnummern vom ersten Speichersystem 100A zum zweiten
Speichersystem 100B gesendet, sie brauchen jedoch nicht
in der Reihenfolge der Aktualisierungsnummern gesendet zu werden. Überdies
ist es auch möglich,
dass mehrere Journal-Lesebefehle vom ersten Speichersystem 100A zum
zweiten Speichersystem 100B gesendet werden. In diesem
Fall kann zum Verarbeiten der Journale in der Reihenfolge der Aktualisierungsnummer
beim Umspeicherprozess eine Tabelle oder ein Index im zweiten Speichersystem 100B bereitgestellt
werden, so dass die logische Adresse, an der, die Aktualisierungsinformationen
gespeichert werden, anhand der Aktualisierungsnummer bestimmt werden
kann.
-
In
dem vorstehend beschriebenen Datenverarbeitungssystem 1 erzeugt
das erste Speichersystem 100A Journale und überträgt diese
Journale zum zweiten Speichersystem 100B, und das zweite
Speichersystem 100B kopiert Daten auf der Grundlage der
Journale, die es vom ersten Speichersystem 100A empfängt. Auf
diese Weise wird der mit dem ersten Speichersystem 100A verbundene
Host-Computer 180 nicht durch den Datenkopierprozess belastet,
weshalb der Verbindungsweg 190 zwischen dem ersten Speichersystem 100A und
dem Host-Computer 180 nicht verwendet zu werden braucht.
-
Vorstehend
wurde ein Implementationsmodus beschrieben, der sich auf die grundlegende
Datenverarbeitung unter Verwendung von Journalen bezog. Nachstehend
werden mehrere Ausführungsformen
beschrieben, die sich auf die Anwendung der Datenverarbeitung unter
Verwendung von Journalen beziehen.
-
(Ausführungsform
1)
-
23 zeigt einen Überblick über ein Beispiel des Aufbaus
eines Datenverarbeitungssystems, das sich auf eine erste Ausführungsform
eines Modus zum Implementieren der vorliegenden Erfindung bezieht.
Die folgende Beschreibung konzentriert sich in erster Linie auf
die Unterschiede in Bezug auf den vorstehend erwähnten Implementationsmodus,
und Punkte, die mit dem vorstehend erwähnten Implementationsmodus übereinstimmen,
werden kurz erklärt
oder aus dieser Beschreibung fortgelassen. Überdies sind in der folgenden
Beschreibung die Bezugszahl 101A an das Steueruntersystem
des ersten Speichersystems 100A angehängt und die Bezugszahl 101B an
jenes des zweiten Speichersystems 100B angehängt. Überdies
enthalten die Datenträgerinformationen,
Weginformationen, Gruppeninformationen und Zeigerinformationen,
die im ersten Speichersystem 100A bereitgestellt sind,
Informationen, die sich auf das erste Speichersystem 100A beziehen,
und es ist das Suffix A an sie angehängt. Mindestens eine von den
Datenträgerinformationen 400A,
den Weginformationen 500A, den Gruppeninformationen 600A und
den Zeigerinformationen 700A kann sich im Steueruntersystem 101B befinden,
und es kann sich ähnlich
mindestens eine von den Datenträgerinformationen 400B,
den Weginformationen 500B, den Gruppeninformationen 600B und
den Zeigerinformationen 700B im Steueruntersystem 101A befinden.
Falls überdies
in diesem Fall eines der Informationselemente aktualisiert wird
(beispielsweise die Weginformationen 500A), können sich
die aktualisierten Inhalte durch den Verbindungsweg 200 in
den gleichen Informationen (beispielsweise den Weginformationen 500A)
widerspiegeln, die im anderen Steueruntersystem enthalten sind.
Weiterhin enthalten die Datenträgerinformationen,
die Weginformationen, die Gruppeninformationen und die Zeigerinformationen,
die im zweiten Speichersystem 100B bereitgestellt sind,
Informationen, die sich auf das zweite Speichersystem 100B beziehen,
und es ist das Suffix B an sie angehängt. In 23 gibt
das Symbol "#" in einem logischen
Datenträger
die logische Datenträgernummer
an. Weiterhin ist das Referenzsymbol "P" an
den ersten logischen Datenträger
(als "P-VOL" dargestellt) angehängt, das
Referenzsymbol "S" an den zweiten logischen
Datenträger
(als "S-VOL" dargestellt) angehängt, das
Referenzsymbol "A" an die logischen Journal-Datenträger im ersten
Speichersystem 100A (als "JNLVOL" dargestellt) angehängt und das Referenzsymbol "B" an die logischen Journal-Datenträger im zweiten
Speichersystem 100B angehängt. Nachstehend wird, wenn
auf einen logischen Datenträger Bezug
genommen wird, um die Beschreibung leichter verständlich zu
machen, eine Kombination des an den logischen Datenträger angehängten Symbols
# und des vorstehend erwähnten
Referenzsymbols an Stelle von Bezugszahlen, wie "230", verwendet.
-
Mehrere
logische Journal-Datenträger,
beispielsweise drei logische Journal-Datenträger #1A, #2A und #3A, sind
in einer bestimmten Gruppe 102A der mehreren im ersten
Speichersystem 100A eingerichteten Gruppen enthalten. Überdies
enthält
die Gruppe 102 beispielsweise auch einen ersten logischen
Datenträger
#4P, der ein logischer Datenträger ist,
in dem Journale nicht gespeichert werden und nur Schreibdaten gespeichert
werden.
-
Mehrere
logische Journal-Datenträger,
beispielsweise drei logische Journal-Datenträger #1B, #2B und #3B, sind
in einer bestimmten Gruppe 102B der mehreren im zweiten
Speichersystem 100B eingerichteten Gruppen enthalten. Überdies
enthält
die Gruppe 102 beispielsweise auch einen zweiten logischen
Datenträger
#4S, der ein logischer Datenträger
ist, in dem Journale nicht gespeichert werden und nur Schreibdaten
gespeichert werden. Um den Inhalt der vorliegenden Ausführungsform
leichter verständlich
zu machen, wird angenommen, dass die Anzahl der logischen Journal-Datenträger, die
in der Gruppe 102A enthalten sind, und die Anzahl der logischen Journal-Datenträger, die
in der Gruppe 102B enthalten sind, gleich sind, diese Nummern
können
jedoch auch verschieden sein. Überdies
können
auch die jeweiligen Speicherkapazitäten der logischen Journal-Datenträger #1A,
#2A und #3A verschieden sein. Das Gleiche gilt für die logischen Journal-Datenträger #1B,
#2B und #3B.
-
Falls
das Steueruntersystem 101A einen Schreibbefehl und Schreibdaten
für den
ersten logischen Datenträger
#4P vom Host-Computer 180 empfangen hat, speichert es die
Schreibdaten entsprechend diesem Schreibbefehl im ersten logischen Datenträger #42.
Weiterhin bezieht sich das Steueruntersystem 101A auf die
Gruppeninformationen 600, legt die Aktualisierungsnummer
entsprechend der Gruppennummer der Gruppe 102A fest (nachstehend
auch als "SEQ#" bezeichnet) und
erzeugt ein Journal, das die so festgestellte Aktualisierungsnummer
und dergleichen enthält.
Das Steueruntersystem 101A wählt einen ersten logischen
Journal-Datenträger,
der ein Speicherziel für
die Aktualisierungsinformationen in dem Journal bildet, und einen
zweiten logischen Journal-Datenträger, der
ein Speicherziel für die
Schreibdaten in dem Journal bildet, aus den mehreren logischen Journal-Datenträgern #1A,
#2A und #3A aus. Es speichert die in dem erzeugten Journal enthaltenen
Aktualisierungsinformationen in dem so ausgewählten ersten logischen Journal-Datenträger und
die in dem erzeugten Journal enthaltenen Schreibdaten in dem zweiten
so gewählten
logischen Journal-Datenträger.
Nachstehend wird eine konkretere Beschreibung gegeben.
-
24 zeigt ein Beispiel der Zusammensetzung der
Zeigerinformationen 700A gemäß der ersten Ausführungsform
eines Modus zum Implementieren der vorliegenden Erfindung. 25 zeigt die Zusammensetzung der in 24 dargestellten Zeigerinformationen 700A,
und diese Informationen bestehen aus mehreren logischen Journal-Datenträgern #1A,
#2A, #3A. Nachstehend wird die Zusammensetzung der Zeigerinformationen 700A im
ersten Speichersystem 100A und der mehreren logischen Journal-Datenträger #1A,
#2A und #3A mit Bezug auf die 24 und 25 beschrieben,
diese Beschreibung kann jedoch auch auf das zweite Speichersystem 100B angewendet
werden.
-
Von
den mehreren Informationselementen in den Zeigerinformationen 700A sind
die Kopfadresse des Aktualisierungsinformationsbereichs, die Kopfadresse
des Schreibdatenbereichs, die Neueste-Schreibdaten-Adresse und die Älteste-Schreibdaten-Adresse
für jeden
der logischen Journal-Datenträger registriert,
die sich in der entsprechenden Gruppe befinden.
-
Entsprechend
dem Beispiel in den 24 und 25 werden
die Aktualisierungsinformationen und die Schreibdaten, die das gleiche
Journal bilden, in einem getrennten logischen Journal-Datenträger gespeichert.
Insbesondere ist es möglich,
die Aktualisierungsinformationen und die Schreibdaten jeweils beispielsweise
durch die folgenden Verfahren zu speichern.
-
(Verfahren zum Speichern von Aktualisierungsinformationen
in dem Journal)
-
Das
Steueruntersystem 101A wählt einen logischen Journal-Datenträger aus
den mehreren logischen Journal-Datenträgern, beispielsweise den logischen
Journal-Datenträger
#1A mit der neuesten Nummer, aus, speichert die Aktualisierungsinformationen 310,
beginnend mit der Kopfposition des ausgewählten logischen Journal-Datenträgers #1A
und fährt
dann damit fort, die Informationselemente entsprechend dem logischen
Journal-Datenträger
#1, die in den Zeigerinformationen 700A enthalten sind, jedes
Mal dann, wenn eine Aktualisierung geschieht, zu aktualisieren.
Falls das Steueruntersystem 101A folglich feststellt, dass
der ausgewählte
logische Journal-Datenträger
#1A bis zum Ende des Aktualisierungsinformationsbereichs (der Kopfadresse
des Schreibdatenbereichs) verwendet worden ist, wählt es einen
getrennten logischen Journal-Datenträger, beispielsweise den logischen
Journal-Datenträger #2A
mit der nächstletzten
Nummer, aus und speichert die Aktualisierungsinformationen 310 von
der Kopfposition des ausgewählten
logischen Journal- Datenträgers #2A.
Danach wählt
das Steueruntersystem 101A, falls der Speicherbereich bis
zum Ende des Aktualisierungsinformationsbereichs (der Kopfadresse
des Schreibdatenbereichs) in dem logischen Journal-Datenträger #2 verwendet
wurde, ähnlich
einen anderen logischen Journal-Datenträger, beispielsweise den logischen
Journal-Datenträger
#3, aus und speichert die Aktualisierungsinformationen 310,
beginnend mit der Kopfposition dieses logischen Journal-Datenträgers. Falls
der Speicherbereich bis zum Ende des Aktualisierungsinformationsbereichs
des logischen Journal-Datenträgers
#3 (bis zur Kopfadresse des Schreibdatenbereichs) verwendet worden
ist und es keinen anderen nicht verwendeten logischen Journal-Datenträger gibt,
speichert das Steueruntersystem 101A die Aktualisierungsinformationen 310 beginnend
mit der Kopfposition des anfänglich
ausgewählten
logischen Journal-Datenträgers #1A.
Beim Speichern der Aktualisierungsinformationen können die
mehreren logischen Journal-Datenträger entsprechend einer zuvor
festgelegten Sequenz (beispielsweise einer im geteilt verwendeten
Speicher 260 festgelegten Sequenz oder dergleichen) ausgewählt werden,
oder sie können
in zufälliger
Weise ausgewählt
werden. Weiterhin können ähnlich dem
nachstehend beschriebenen Verfahren zum Speichern von Schreibdaten
erste und zweite Aktualisierungsinformationen mit angrenzenden Aktualisierungsnummern
(beispielsweise mit aufeinander folgenden Aktualisierungsnummern)
zwischen getrennten logischen Journal-Datenträgern geteilt werden, statt
im gleichen logischen Journal-Datenträger gespeichert zu werden.
-
(Verfahren zum Speichern von Schreibdaten
in dem Journal)
-
Das
Steueruntersystem 101A ändert
den das Speicherziel für
die Schreibdaten bildenden logischen Journal-Datenträger für jedes
Journal. Falls es insbesondere beispielsweise N logische Journal-Datenträger (beispielsweise
3 logische Journal-Datenträger)
in der Gruppe 102A gibt, teilt das Steueruntersystem 101A die
Aktualisierungsnummer in den ein Paar bildenden Aktualisierungsinformationen
mit den zu speichernden Schreibdaten (beispielsweise 5) durch N
(beispielsweise 3) und speichert die Schreibdaten, die in dem dem
Restwert (beispielsweise 2) entsprechenden logischen Journal-Datenträger, nämlich dem
logischen Journal-Datenträger
#2A, zu speichern sind. Die Speicherzieladresse für die Schreibdaten
in dem logischen Journal-Datenträger (beispielsweise
#2A) bildet die Neueste-Schreibdaten-Adresse, die diesem logischen
Journal-Datenträger
entspricht, in den Zeigerinformationen 700A. Die ersten
und zweiten Schreibdaten mit benachbarten Aktualisierungsnummern
werden nicht notwendigerweise in dem gleichen logischen Journal-Datenträger gespeichert,
sondern sie können,
entsprechend den Anforderungen, in dem gleichen logischen Journal-Datenträger gespeichert
werden (beispielsweise falls die Schreibdatenbereiche der anderen
logischen Journal-Datenträger
voll sind). Weiterhin können ähnlich wie
beim vorstehend beschriebenen Aktualisierungsinformations-Speicherverfahren
die ersten und die zweiten Schreibdaten mit benachbarten Aktualisierungsnummern
im selben logischen Journal-Datenträger gespeichert werden, und
sie können, falls
dieser logische Journal-Datenträger
voll wird, in einem anderen logischen Journal-Datenträger gespeichert
werden.
-
Die
vorstehende Beschreibung bezog sich auf ein Verfahren zum Speichern
der Aktualisierungsinformationen und der Schreibdaten in dem Journal.
Falls dieses Speicherverfahren verwendet wird, kann die folgende
Verarbeitung beispielsweise in dem Journal-Erzeugungsprozess ausgeführt werden
(beispielsweise Schritt 1345 in 13 und Schritt 1830 in 18), der in dem vorstehend erwähnten Implementationsmodus
beschrieben wurde.
-
Das
Steueruntersystem 101A wählt den logischen Journal-Datenträger, der
das Speicherziel für die
Schreibdaten bildet, aus mehreren logischen Journal-Datenträgern aus
und beurteilt auf der Grundlage der verschiedenen Informations elemente, die
dem ausgewählten
logischen Journal-Datenträger
entsprechen (der in den Zeigerinformationen 100A registrierten
Informationselemente), ob Schreibdaten in diesem logischen Datenträger gespeichert
werden können.
Insbesondere teilt das Steueruntersystem 101A beispielsweise
die Aktualisierungsnummer in den ein Paar bildenden Aktualisierungsinformationen
mit den zu speichernden Schreibdaten (beispielsweise 5) durch die
Anzahl der logischen Journal-Datenträger N, die
in der Gruppe 102A existieren (beispielsweise 3), und beurteilt,
ob die Schreibdaten in dem logischen Journal-Datenträger gespeichert
werden können,
der dem Rest dieser Divisionsoperation entspricht (beispielsweise
2) (nämlich
dem logischen Journal-Datenträger
#2A). Falls ein negatives Beurteilungsergebnis erhalten wird, beendet
das Steueruntersystem 101A den Prozess als "es ist nicht gelungen,
ein Journal zu erzeugen" (Schritt 1390 in 13 und Schritt 1830 in 18). Statt den Prozess zu beenden, kann das Steueruntersystem 101A auch
auf der Grundlage der Datengröße der Schreibdaten
und der Zeigerinformationen 700A und dergleichen nach einem
logischen Journal-Datenträger
suchen, der ausreichend freien Platz aufweist, um die Schreibdaten
zu speichern, und dann die Schreibdaten in dem freien Platz des
durch diese Suche gefundenen logischen Journal-Datenträgers speichern.
-
Gemäß der vorstehend
beschriebenen ersten Ausführungsform
werden mehrere logische Journal-Datenträger für eine Gruppe präpariert,
und erste und zweite Schreibdaten mit benachbarten Aktualisierungsnummern
(beispielsweise aufeinander folgenden Aktualisierungsnummern) werden
in getrennten logischen Journal-Datenträgern gespeichert. Daher ist
es möglich,
dafür zu
sorgen, dass das Schreiben der Schreibdaten das Lesen des Journals
("pipelineartig") überlappt,
und die Leistungsfähigkeit
beim Kopieren wird auf diese Weise verbessert. Falls es insbesondere
einen logischen Journal-Datenträger
gibt, hängt
die Leistungsfähigkeit beim
Lesen (oder beim Schreiben) für
die Schreibdaten von der Leistungsfähigkeit der diesen logischen Journal-Datenträger bereitstellenden
Speichervorrichtung 150 ab. Gemäß der vorliegenden Ausführungsform
werden mehrere logische Journal-Datenträger präpariert
und die Schreibdaten in Journalen mit benachbarten Aktualisierungsnummern
in verschiedenen logischen Journal-Datenträgern gespeichert. Daher ist
es möglich,
mehrere Speichervorrichtungen 150 gleichzeitig zu verwenden,
und die Leistungsfähigkeit
des Lesens (oder Schreibens) des Journals kann daher verbessert
werden. Um diese verbesserte Leistungsfähigkeit zufrieden stellend
zu erreichen, ist es wünschenswert,
dass die mehreren logischen Journal-Datenträger in getrennten Speichervorrichtungen 150 bereitgestellt
werden. Falls überdies
jeder logische Journal-Datenträger über mehrere
Speichervorrichtungen 150 bereitgestellt wird, ist es,
wenn mehrere logische Journal-Datenträger bereitgestellt werden,
wünschenswert,
dass alle der mehreren Speichervorrichtungen 150 oder ein
Teil von diesen, die einen logischen Journal-Datenträger bereitstellen,
nicht alle der mehreren Speichervorrichtungen 150 oder
einen Teil von diesen, die einen anderen logischen Journal-Datenträger bereitstellen, überlappen.
-
Gemäß der vorstehend
beschriebenen ersten Ausführungsform
kann nach Schritt 1580 in 15 und
vor dem Empfang eines Journal-Lesebefehls von dem zweiten Speichersystem 100B das Steueruntersystem 101A einen
Leseprozess autonom implementieren, um ein oder mehrere folgende Journale
(mit anderen Worten das Journal mit der nächsten Aktualisierungsnummer
von den in Schritt 1580 gesendeten Journalen) zu lesen.
Wenn dadurch der nächste
Journallesebefehl empfangen wird, gibt es in dem Leseprozess in
Schritt 1570 eine erhöhte
Wahrscheinlichkeit, dass sich das diesem Befehl entsprechende Journal
bereits im Cache-Speicher 130 befindet,
weshalb die Zeit vom Empfang des Journal-Lesebefehis bis zum Senden eines
Journals zum zweiten Speichersystem 100B entsprechend diesem
Befehl verringert werden kann. Hierbei kann beispielsweise der Begriff "ein oder mehrere
folgende Journale" als
Journale bis zur Aktualisierungsnummer, die gleich der Summe der
vorhergehenden Aktualisierungsdaten plus der Anzahl n der logischen
Journal-Datenträger
ist, angesehen werden. In diesem Fall werden in dem zweiten Speichersystem 100B die
Schreibdaten in dem Journal fortlaufend in dem gleichen logischen
Journal-Datenträger gespeichert.
-
Überdies
können
gemäß der ersten
Ausführungsform,
wie vorstehend beschrieben wurde, die ersten und zweiten Aktualisierungsinformationen
mit angrenzenden Aktualisierungsnummern (beispielsweise aufeinander
folgenden Aktualisierungsnummern), ähnlich dem Verfahren zum Speichern
der Schreibdaten, in getrennten logischen Journal-Datenträgern gespeichert
werden.
-
Überdies
brauchen gemäß dieser
ersten Ausführungsform
die mehreren logischen Journal-Datenträger, die zur selben Gruppe
gehören, nicht
die gleiche Speicherkapazität
zu haben.
-
Weiterhin
ist es gemäß der ersten
Ausführungsform
auch möglich,
das Folgende als ein Modifikationsbeispiel zu implementieren:
-
(A) Erste Modifikation der ersten Ausführungsform
-
Das
Steueruntersystem 101B des zweiten Speichersystems 100B überlagert
m Journal-Lesebefehle (wobei m eine ganze Zahl größer gleich
2 ist) und sendet die m überlagerten
Journal-Lesebefehle zum ersten Speichersystem 100A. Das
Steueruntersystem 101B fügt eine Nummer (nachstehend
als "TAG#" bezeichnet) zum
Identifizieren des Journal-Lesebefehls in jedem der m überlagerten
Journal-Lesebefehle ein. Die TAG# reicht von 1 bis m. Falls es insbesondere
beispielsweise drei überlagerte
Journal-Lesebefehle gibt, fügt
das Steueruntersystem 101B eine TAG#1 in den ersten Journal-Lesebefehl der drei überlagerten
Journal-Lesebefehle ein, fügt
eine TAG#2 in den zweiten Journal-Lesebefehl ein, fügt eine
TAG#3 in den dritten Journal-Lesebefehl ein und sendet dann die
drei überlagerten
Journal-Lesebefehle zum ersten Speichersystem 100A. In
diesem Fall werden in dem ersten Speichersystem 100A, wie
in 26 dargestellt ist, spezifische Informationselemente
in den Zeigerinformationen 700A (beispielsweise die Lesebeginnadresse
und die Neuversuchs-Anfangsadresse) in gleicher Zahl wie die Anzahl
der überlagerten
Befehle m bereitgestellt, so dass sie mit anderen Worten für jede TAG#
bereitgestellt werden. Die Anzahl m der überlagerten Befehle kann beispielsweise
gleich der Anzahl der in der Gruppe 102A bereitgestellten
logischen Journal-Datenträger
sein. Falls weiterhin entsprechend den in 26 dargestellten
Zeigerinformationen 700A die Schreibdaten aus dem TAG#1
entsprechenden logischen Journal-Datenträger #1A
ausgelesen werden, sind die Lesebeginnadresse und die Neuversuchs-Anfangsadresse,
die der TAG#1 entsprechen, die Adresse "150" von
der Kopfposition in dem logischen Datenträger mit der Nummer "1".
-
Nachstehend
wird eine konkretere Beschreibung dieses ersten Modifikationsbeispiels
gegeben.
-
Das
Steueruntersystem 101B des zweiten Speichersystems 100B implementiert
die in 17 dargestellte Journal-Lesebefehlsverarbeitung
für jede
TAG#.
-
Wenn
das Steueruntersystem 101A des ersten Speichersystems 100A einen
Journal-Lesebefehl empfangen hat, implementiert es die mit Bezug
auf 15 beschriebene Journal-Empfangsverarbeitung.
Beim Journal-Empfangsprozess liest das Steueruntersystem 101A die
Aktualisierungsinformationen 310 aus der durch die Neuversuchs-Anfangsadresse
und die Leseanfangsadresse entsprechend der TAG# (die Informationselemente,
die in den Zeigerinformationen 700A enthalten sind) angegebenen logischen
Adresse aus (Schritte 1570 und 1540). Durch den
Journal-Empfangsprozess wird ein Aktualisierungsinformationen enthaltendes
Journal zu dem zweiten Speichersystem 100B gesendet. In
diesem Fall hängt
das Steueruntersystem 101A zum Identifizieren des Journal-Lesebefehls, auf
dessen Grundlage das Journal erfasst wurde, die TAG# in dem entsprechenden
Journal-Lesebefehl an das erfasste Journal an und sendet das Journal
dann mit der angehängten
TAG# zum zweiten Speichersystem 100B.
-
Falls
das Steueruntersystem 101B des zweiten Speichersystems 100B ein
Journal empfängt,
implementiert es die mit Bezug auf 18 beschriebene
Journal-Speicherverarbeitung. In diesem Fall berechnet das Steueruntersystem 101B die
logische Adresse zum Speichern der Aktualisierungsinformationen
in dem Journal auf der Grundlage der TAG# und der Aktualisierungsnummer
in dem empfangenen Journal und der Zeigerinformationen 700B und untersucht
auf der Grundlage der berechneten logischen Adresse und der Größe der Aktualisierungsinformationen,
ob Aktualisierungsinformationen in dem durch die TAG# identifizierten
logischen Journal-Datenträger
gespeichert werden können
(Schritt 1810 in 18). Überdies
untersucht das Steueruntersystem 101B auf der Grundlage
der Datengröße der Schreibdaten
in den Aktualisierungsinformationen und der Zeigerinformationen 700B,
ob Schreibdaten in dem identifizierten logischen Journal-Datenträger gespeichert
werden können
(Schritt 1830 in 18). Der
logische Journal-Datenträger,
in dem die Aktualisierungsinformationen und die Schreibdaten gespeichert
sind, ist der logische Journal-Datenträger, der der TAG# entspricht.
-
Auf
diese Weise kann eine sogar noch größere Kopierleistungsfähigkeit
erreicht werden, indem Journal-Lesebefehle in überlagerter Weise gesendet werden.
-
(B) Zweite Modifikation der ersten Ausführungsform
-
Die
zweite Modifikation ist eine weitere Modifikation des ersten Modifikationsbeispiels,
wobei das erste Speichersystem 100A mehrere Journale erfasst
und sie ansprechend auf einen Journal-Lesebefehl zum zweiten Speichersystem 100B sendet. Nachstehend
wird eine konkretere Beschreibung gegeben.
-
Bei
dem mit Bezug auf 15 beschriebenen Journal-Empfangsprozess erfasst
das Steueruntersystem 101A des ersten Speichersystems 100A die
in den aufeinander folgenden Speicherbereichen desselben logischen
Journal-Datenträgers
gespeicherten Schreibdaten und sendet sie. Insbesondere stellt das
Steueruntersystem 101A beispielsweise in 25 anhand der Zeigerinformationen 700A und dergleichen
sicher, dass die zwei in aufeinander folgenden Bereichen des logischen
Journal-Datenträgers
#1A registrierten Schreibdaten der Aktualisierungsnummer 1 bzw.
der Aktualisierungsnummer 4 entsprechen. Dadurch erzeugt es die
Aktualisierungsnummer 1 einschließende Aktualisierungsinformationen
und ein Journal, das diesen entsprechende Schreibdaten enthält, und
die Aktualisierungsnummer 4 einschließende Aktualisierungsinformationen und
ein Journal, das diesen entsprechende Schreibdaten enthält, ansprechend
auf einen Journal-Lesebefehl
und überträgt sie zum
zweiten Speichersystem 100B. Nach der Verarbeitung in Schritt 1590 (oder 1545)
in 15 bestimmt das Steueruntersystem 101A die
logische Adresse zum Speichern der zwei oder mehr Aktualisierungsinformationen,
die jeweils in zwei oder mehr Journalen enthalten sind, die anschließend zu
erzeugen sind. In diesem Fall ist die logische Adresse gleich der
Lesebeginnadresse plus dem Wert, der durch Multiplizieren der Nummer
m von TAG# mit der Aktualisierungsinformationsgröße erhalten wird.
-
Das
Steueruntersystem 101B des zweiten Speichersystems 100B,
das die Journale empfangen hat, implementiert die mit Bezug auf 18 beschriebene Journal-Speicherverarbeitung,
in diesem Fall werden die Schreibdaten in dem empfangenen Journal
jedoch von der Neueste-Schreibdaten-Adresse in dem logischen Journal-Datenträger gespeichert,
die der an das empfangene Journal angehängten TAG# entspricht. Falls
in dem Beispiel in 25 das Steueruntersystem 101B zwei
Journale mit der Aktualisierungsnummer 1 und der Aktualisierungsnummer
4 empfangen hat, schreibt es die Schreibdaten in dem Journal mit
der Aktualisierungsnummer 1, beginnend mit der logischen Adresse
700, in den logischen Journal-Datenträger #1 und speichert dann die
Schreibdaten in kontinuierlicher Weise nach diesen Schreibdaten
in dem Journal mit der Aktualisierungsnummer 4.
-
(Ausführungsform
2)
-
Als
nächstes
wird eine zweite Ausführungsform
eines Modus zum Implementieren der vorliegenden Erfindung beschrieben.
Die zweite Ausführungsform
ist ein weiteres Beispiel für
die Anwendung der vorstehend beschriebenen ersten Ausführungsform.
Die folgende Beschreibung konzentriert sich in erster Linie auf
die Unterschiede gegenüber der
vorstehend erwähnten
ersten Ausführungsform, und
Punkte, die mit der vorstehend erwähnten ersten Ausführungsform übereinstimmen,
werden kurz erklärt
oder fortgelassen.
-
Gemäß der zweiten
Ausführungsform
wird der Schreibdatenbereich in dem logischen Journal-Datenträger in mehrere
Unterschreibbereiche unterteilt. Die mehreren Unterschreibbereiche
können jeweils
die gleiche Speicherkapazität
aufweisen oder verschiedene Speicherkapazitäten haben. Gemäß dieser
zweiten Ausführungsform
haben sie jeweils die gleiche Speicherkapazität. Mit anderen Worten wird
gemäß der zweiten
Ausführungsform
der Schreibdatenbereich in dem logischen Journal-Datenträger gleich
in mehrere Unterschreibbereiche unterteilt. Nachstehend werden die
einzelnen Unterschreibbereiche als "Gebiete" bezeichnet.
-
27 zeigt ein Beispiel des Aufbaus mehrerer logischer
Journal-Datenträger
#1A, #2A, #3A. 28 zeigt ein Beispiel der Zusammensetzung
von Gebietsinformationen für
die Verwaltung mehrerer Gebiete. 29 zeigt
ein Beispiel der Zusammensetzung von Zeigerinformationen 700A entsprechend
den 27 und 28.
Nachstehend werden mehrere logische Journal-Datenträger #1A,
#2A und #3A in dem ersten Speichersystem 100A, die Gebietsinformationen 701 und
die Zeigerinformationen 700A mit Bezug auf die 27 bis 29 beschrieben,
diese Beschreibung kann jedoch auch auf das zweite Speichersystem 100B angewendet
werden.
-
Wie
in 27 dargestellt ist, ist der Schreibdatenbereich
in den mehreren logischen Journal-Datenträgern #1A, #2A und #3A gleich
in mehrere Gebiete (beispielsweise vier Gebiete) eingeteilt. Eine Gebietsnummer
zum Identifizieren des Gebiets in dem logischen Journal-Datenträger (beispielsweise #0-#3)
ist an jedes Gebiet in jedem der logischen Journal-Datenträger angehängt.
-
Weiterhin
sind, wie in 27 dargestellt ist, die Schreibdatenbereiche
aller logischer Journal-Datenträger
in ähnlicher
Weise auch jeweils in mehrere Gebiete eingeteilt. Mit anderen Worten
hat jeder der logischen Journal-Datenträger #1A, #2A und #3A einen
Schreibdatenbereich mit der gleichen Speichergröße und der gleichen Anzahl
von Gebieten. Daher weisen mindestens die mehreren Schreibdatenbereiche
der mehreren logischen Journal-Datenträger #1A, #2A und #3A jeweils
die gleiche Größe auf (die mehreren
Aktualisierungsinformationsbereiche können jeweils die gleiche Größe oder
unterschiedliche Größen aufweisen).
-
Weiterhin
wird, wie in 27 dargestellt ist, die gleiche
Gebietsnummer nicht zwei Mal in jedem einzelnen logischen Journal-Datenträger verwendet, sondern
es werden in den mehreren logischen Journal-Datenträgern #1A,
#2A und #3A (mit anderen Worten innerhalb derselben Gruppe 102A)
gemeinsame Gebietsnummern verwendet. Insbesondere gibt es in jedem
der logischen Journal-Datenträger #1A,
#2A und #3A vier Gebiete, die jeweils mit den Gebietsnummern #0-#4
bezeichnet sind. Mit anderen Worten ist jeder Schreibdatenbereich
jedes logischen Journal-Datenträgers
in mehrere Unterschreibbereiche unterteilt, und ein Gebiet ist durch
jeden Unterschreibbereich der mehreren logischen Journal-Datenträger gebildet.
Anders ausgedrückt,
wird durch Spezifizieren einer Gebietsnummer (beispielsweise #0)
ein Unterschreibbereich in jedem der mehreren logischen Journal-Datenträger #1A,
#2A und #3A identifiziert, und der Satz der identifizierten Unterschreibbereiche
bildet ein Gebiet, das der spezifizierten Gebietsnummer entspricht.
Anders ausgedrückt, erstreckt
sich jedes Gebiet über
mehrere logische Datenträger
#1A-#3A, die zur selben Gruppe 102A gehören.
-
Ein
Beispiel der Zusammensetzung der Gebietsinformationen 701 zum
Verwalten von Gebieten dieser Art ist in 28 dargestellt.
-
Insbesondere
registrieren die Gebietsinformationen 701 für jede Gebietsnummer,
in welchem der mehreren logischen Journal-Datenträger #1A-#1C
sich das Gebiet, das dieser Gebietsnummer entspricht, befindet.
Der Ort des Gebiets wird durch eine Reihe angegeben, welche die
logische Anfangsadresse und die Endadresse enthält, und diese Reihen existieren
in gleicher Anzahl wie die Anzahl der zu derselben Gruppe 102A gehörenden logischen
Journal-Datenträger
#1A-#1C. Die logische Anfangsadresse
gibt die logische Adresse an, bei der das Speichern der Schreibdaten
beginnt, und die logische Endadresse gibt die logische Adresse an,
bei der das Speichern der Schreibdaten endet. Überdies geben in den Gebietsinformationen 701 die
Nummern #1-#3, die jeweils für
die mehreren Sätze
der logischen Anfangsadresse und der logischen Endadresse registriert
sind, die Speicherreihenfolge der Schreibdaten an.
-
Es
ist möglich,
das Folgende beispielsweise anhand der Gebietsinformationen 701 dieser
Art zu bestimmen.
-
Es
ist ersichtlich, dass in dem Gebiet mit der Gebietsnummer 0 das
Speichern der Schreibdaten zunächst
an der Adresse 700 in dem logischen Journal-Datenträger #1A
beginnt, und, falls Schreibdaten bis zur Position der Adresse 1119
im Datenträger
#1A gespeichert worden sind, das Speichern der Schreibdaten anschließend an
der Position der Adresse 700 im logischen Journal-Datenträger #2A
beginnt. Falls die Schreibdaten bis zur Position der Adresse 1119 im
logischen Journal-Datenträger #2A
gespeichert worden sind, wird das Speichern der Speichervorrichtung
anschließend
an der Position der Adresse 700 im logischen Journal-Datenträger #3A
begonnen.
-
Es
ist ersichtlich, dass in dem Gebiet mit der Gebietsnummer 2 das
Speichern der Schreibdaten zunächst
an der Adresse 1200 im logischen Journal-Datenträger #2A beginnt, und, falls
Schreibdaten bis zur Position der Adresse 1699 im Datenträger 2A gespeichert
worden sind, das Speichern der Schreibdaten anschließend an
der Position der Adresse 1200 im logischen Journal-Datenträger #23A
beginnt.
-
Auf
diese Weise ist es durch Ändern
des logischen Journal-Datenträgers,
an dem das Speichern der Schreibdaten zunächst beginnt, für jede Gebietsnummer
möglich,
dass alle logischen Journal-Datenträger #1A-#3A parallel funktionieren.
-
Falls
Schreibdaten auf der Grundlage der vorstehend beschriebenen Gebietsinformationen 701 in
den jeweiligen logischen Journal-Datenträgern #1A-3A zu speichern sind,
haben die Zeigerinformationen 700A die in 29 dargestellte Zusammensetzung. Mit anderen Worten
werden die Kopfadresse des Aktualisierungsinformationsbereichs und
die Kopfadresse des Schreibdatenbereichs für jede logische Journal-Datenträgernummer
präpariert
und die Neueste-Schreibdaten-Adresse,
die Älteste-Schreibdaten-Adresse,
die Lesebeginnadresse und die Neuversuchs-Anfangsadresse für jede Gebietsnummer präpariert.
Durch Einstellen der Neueste-Schreibdaten-Adresse,
der Älteste-Schreibdaten-Adresse,
der Lesebeginnadresse und der Neuversuchs-Anfangsadresse ist es
möglich,
mehrere Schreibdaten mit angrenzenden (beispielsweise aufeinander
folgenden) Aktualisierungsnummern in getrennte Gebiete zu schreiben.
-
Gemäß dieser
zweiten Ausführungsform gleicht
das Verfahren zum Speichern der Aktualisierungsinformationen demjenigen
gemäß der ersten Ausführungsform,
das Verfahren zum Speichern von Schreibdaten ist jedoch verschieden.
-
Beispielsweise ändert für jedes
Journal das Steueruntersystem 101A das Gebiet, in dem die Schreibdaten
in diesem Journal gespeichert werden. Genauer gesagt, teilt das
Steueruntersystem 101A, falls es n Gebiete gibt (wobei beispielsweise
n = 4 ist), die Aktualisierungsnummer in dem Journal (beispielsweise
12) durch die Anzahl der Gebiete (beispielsweise 4) und speichert
die in dem Journal enthaltenen Schreibdaten in dem Gebiet, das dem
Rest dieser Divisionsoperationen entspricht (beispielsweise 0) (nämlich Gebietsnummer
0). Die Speicherzieladresse in diesem Gebiet ist die Neueste-Schreibdaten-Adresse,
die der Nummer des Gebiets entspricht (die Neueste-Schreibdaten-Adresse,
die in den Zeigerinformationen 700A registriert ist). Das
Steueruntersystem 101A ist auf der Grundlage der Zeigerinformationen 700A und
der Gebietsinformationen 701 in der Lage, festzustellen,
ob die Speicherzieladresse die Endadresse (beispielsweise die Adresse
1200) eines Teils eines bestimmten Gebiets (beispielsweise #0),
das in einem bestimmten logischen Journal-Datenträger (beispielsweise
#1A) bereitgestellt ist, erreicht hat. Überdies verwendet das Steueruntersystem 101A in
diesem Fall die Gebietsinformationen 701 zum Lokalisieren
der Anfangsadresse eines anderen Teils desselben Gebiets in einem
anderen logischen Journal-Datenträger, die als die nächste Speicherzieladresse
festzulegen ist (es bestimmt beispielsweise, dass die Adresse 700
des logischen Journal-Datenträgers
#2A die nächste
Speicherzieladresse ist). Das Steueruntersystem 101A ist
dann in der Lage, diese Speicherzieladresse als die Neueste-Schreibdaten-Adresse
festzulegen und Schreibdaten von dieser Anfangsadresse an zu speichern.
-
Falls
dieses Schreibdaten-Speicherverfahren verwendet wird, kann die folgende
Verarbeitung beispielsweise in dem Journal-Erzeugungsprozess ausgeführt werden
(beispielsweise Schritt 1345 in 13 und
Schritt 1830 in 18),
der in dem vorstehend erwähnten
Implementationsmodus beschrieben wurde.
-
Das
Steueruntersystem 101A teilt die Aktualisierungsnummer
in dem Journal (beispielsweise 12) durch die Anzahl n der Gebiete
(beispielsweise 4) und beurteilt, ob es möglich ist, die in dem Journal enthaltenen
Schreibdaten in dem Gebiet zu speichern, das dem Rest der Divisionsoperation
entspricht (beispielsweise 0) (nämlich
dem Gebiet #0). Falls ein negatives Beurteilungsergebnis erhalten wird,
beendet das Steueruntersystem 101A den Prozess als "es ist nicht gelungen,
ein Journal zu erzeugen" (Schritt 1390 in 13 und Schritt 1830 in 18). Statt den Prozess zu beenden, kann das Steueruntersystem 101A auch
auf der Grundlage der Datengröße der Schreibdaten
und der Zeigerinformationen 700A und dergleichen nach einem
weiteren Gebiet suchen, das ausreichend freien Platz aufweist, um
die Schreibdaten zu speichern, und dann die Schreibdaten in dem
freien Platz des durch diese Suche gefundenen Gebiets speichern.
-
Gemäß der vorstehend
beschriebenen zweiten Ausführungsform
werden die Schreibdatenbereiche der logischen Journal-Datenträger in mehrere Gebiete
unterteilt und die Schreibdaten in Journalen mit benachbarten (beispielsweise
aufeinander folgenden) Aktualisierungsnummern in verteilter Weise in
verschiedenen Gebieten gespeichert. Dadurch ist es möglich, die
Kopierleistung unabhängig
von der Anzahl der logischen Journal-Datenträger, die zur selben Gruppe
gehören,
zu verbessern (mit anderen Worten selbst dann, wenn es einen logischen
Journal-Datenträger
in einer Gruppe gibt). Beispielsweise kann die Zeit, während derer
eine Speichervorrichtung 150 einen Lesebefehl (oder einen
Schreibbefehl) nicht empfangen kann, wirksam beseitigt werden, weshalb
die Leistungsfähigkeit
der Speichervorrichtung vorteilhafterweise verwendet werden kann. Um
diese verbesserte Leistungsfähigkeit
zufrieden stellend zu erreichen, ist es wünschenswert, dass die mehreren
logischen Journal-Datenträger
in getrennten Speichervorrichtungen 150 bereitgestellt
werden. Falls überdies
jeder logische Journal-Datenträger über mehrere
Speichervorrichtungen 150 bereitgestellt wird, ist es,
wenn mehrere logische Journal-Datenträger bereitgestellt werden,
wünschenswert, dass
alle der mehreren Speichervorrichtungen 150 oder ein Teil
von diesen, die einen logischen Journal-Datenträger bereitstellen, nicht alle
der mehreren Speichervorrichtungen 150 oder einen Teil
von diesen, die einen anderen logischen Journal-Datenträger bereitstellen, überlappen. Überdies
ist es auch wünschenswert,
dass die mehreren Gebiete in getrennten Speichervorrichtungen 150 bereitgestellt werden.
-
Gemäß der vorstehend
beschriebenen zweiten Ausführungsform
kann das Steueruntersystem 101A nach Schritt 1580 in 15 und vor dem Empfang eines Journal-Lesebefehls
vom zweiten Speichersystem 100B autonom einen Leseprozess
für das
Journal implementieren, von dem erwartet wird, dass es als nächstes übertragen
wird. Wenn der nächste
Journal-Lesebefehl empfangen wird, gibt es dadurch in dem Leseprozess
in Schritt 1570 eine erhöhte Wahrscheinlichkeit, dass
sich das diesem Befehl entsprechende Journal bereits in dem Cache-Speicher 130 befindet,
weshalb die Zeit vom Empfang des Journal-Lesebefehls bis zum Senden eines
Journals zum zweiten Speichersystem 100B entsprechend diesem
Befehl verringert werden kann. Hierbei kann "ein Journal, von dem erwartet wird, dass
es als nächstes übertragen
wird" beispielsweise so
ausgelegt werden, dass es das Journal mit der Aktualisierungsnummer
bedeutet, die gleich der zuvor verarbeiteten Aktualisierungsnummer
plus der Anzahl p der Gebiete ist. In diesem Fall werden in dem zweiten
Speichersystem 100B die Schreibdaten in dem Journal kontinuierlich
im selben Unterschreibbereich desselben logischen Journal-Datenträgers gespeichert.
-
Überdies
können
gemäß der zweiten
Ausführungsform
die Aktualisierungsinformationsbereiche der mehreren logischen Journal-Datenträger (oder
des einen logischen Journal-Datenträgers), die zu derselben Gruppe
gehören,
jeweils ähnlich
wie bei den Schreibdatenbereichen in mehrere Unterbereiche (Gebiete)
unterteilt werden. In diesem Fall können die ersten und die zweiten
Aktualisierungsinformationen, die angrenzende Aktualisierungsnummern aufweisen
(beispielsweise aufeinander folgende Aktualisierungsnummern), ähnlich dem
Verfahren zum Speichern der Schreibdaten, in getrennten Unterbereichen
(Gebieten) gespeichert werden.
-
Weiterhin
gibt es gemäß der zweiten
Ausführungsform
keine Grenze für
die Anzahl p der Gebiete, um jedoch ein Lesebefehl (oder ein Schreibbefehl)
an alle logischen Journal-Datenträger auszugeben, die zur selben
Gruppe gehören,
ist die Anzahl p der Gebiete wünschenswerterweise
größer oder
gleich der Anzahl n der logischen Journal-Datenträger (mit anderen Worten p >= n).
-
Weiterhin
ist es gemäß der zweiten
Ausführungsform
auch möglich,
das Folgende als ein Modifikationsbeispiel zu implementieren:
-
(A) Erste Modifikation der zweiten Ausführungsform
-
Das
Steueruntersystem 101B des zweiten Speichersystems 100B gibt
mehrere Journal-Lesebefehle aus. Das Steueruntersystem 101B fügt eine Gebietsnummer
in jeden der überlagerten
Journal-Lesebefehle ein. Das Steueruntersystem 101B führt die
mit Bezug auf 17 beschriebene Journal-Lesebefehlsverarbeitung
unabhängig
für jede Gebietsnummer
aus.
-
Wenn
das Steueruntersystem 101A des ersten Speichersystems 100A einen
Journal-Lesebefehl empfangen hat, implementiert es die mit Bezug
auf 15 beschriebene Journal-Empfangsverarbeitung.
In dem Journalempfangsprozess bezieht sich das Steueruntersystem 101A auf
die Zeigerinformationen 700A und liest die Aktualisierungsinformationen 310 aus
der logischen Adresse aus, die durch der Gebietsnummer entsprechende
bestimmte Informationselemente angegeben wird (nämlich der Neuversuchs-Anfangsadresse
und der Lesebeginnadresse) (Schritte 1570 und 1540).
-
Falls
das Steueruntersystem 101B des zweiten Speichersystems 100B ein
Journal empfängt,
implementiert es die mit Bezug auf 18 beschriebene
Journal-Speicherverarbeitung. In diesem Fall berechnet das Steueruntersystem 101B die
logische Adresse zum Speichern der Aktualisierungsinformationen
in dem Journal auf der Grundlage der Gebietsnummer und der Aktualisierungsnummer
in dem empfangenen Journal und der Zeigerinformationen 700B und
untersucht auf der Grundlage der berechneten logischen Adresse und
der Größe der Aktualisierungsinformationen,
ob Aktualisierungsinformationen in dem spezifischen logischen Journal-Datenträger gespeichert
werden können
(Schritt 1810 in 18). Überdies
untersucht das Steueruntersystem 101B auf der Grundlage
der Datengröße der Schreibdaten
in den Aktualisierungsinformationen und der Zeigerinformationen 700B,
ob Schreibdaten in dem identifizierten logischen Journal-Datenträger gespeichert
werden können
(Schritt 1830 in 18). Der
logische Journal-Datenträger,
in dem die Aktualisierungsinformationen und die Schreibdaten gespeichert
sind, ist der logische Journal-Datenträger, der dem Gebiet entspricht.
In Schritt 1830 in 18 kann das
Steueruntersystem 101B untersuchen, ob Schreibdaten in
dem der Gebietsnummer entsprechenden Gebiet gespeichert werden können.
-
(B) Zweite Modifikation der zweiten Ausführungsform
-
Die
zweite Modifikation ist eine weitere Modifikation des ersten Modifikationsbeispiels,
wobei das erste Speichersystem 100A mehrere Journale erfasst
und sie ansprechend auf einen Journal-Lesebefehl zum zweiten Speichersystem 100B sendet.
Eine konkretere Beschreibung wird nachstehend gegeben.
-
Bei
dem mit Bezug auf 15 beschriebenen Journal-Empfangsprozess erfasst
das Steueruntersystem 101A des ersten Speichersystems 100A die
in aufeinander folgenden Speicherbereichen desselben Gebiets gespeicherten
Schreibdaten und sendet diese. Insbesondere stellt das Steueruntersystem 101A beispielsweise
in 27 anhand der Zeigerinformationen 700A und
dergleichen fest, dass die beiden in aufeinander folgenden Bereichen
des logischen Datenträgers
#1A des Unterschreibbereichs registrierten Schreibdaten der Aktualisierungsnummer
8 bzw. der Aktualisierungsnummer 12 entsprechen. Dadurch erzeugt
es die Aktualisierungsnummer 8 einschließende Aktualisierungsinformationen und
ein Journal, das diesen entsprechende Schreibdaten enthält, und
die Aktualisierungsnummer 12 einschließende Aktualisierungsinformationen
und ein Journal, das diesen entsprechende Schreibdaten enthält, ansprechend
auf einen Journal-Lesebefehl und überträgt sie zum
zweiten Speichersystem 100B. Nach der Verarbeitung in Schritt 1590 (oder 1545)
in 15 bestimmt das Steueruntersystem 101A die
logische Adresse zum Speichern der zwei, oder mehr Aktualisierungsinformationen,
die jeweils in zwei oder mehr Journalen enthalten sind, die anschließend zu
erzeugen sind. In diesem Fall ist die logische Adresse gleich der
Lesebeginnadresse plus dem Wert, der durch Multiplizieren der Anzahl
p der Gebiete mit der Aktualisierungsinformationsgröße erhalten
wird.
-
Das
Steueruntersystem 101B des zweiten Speichersystems 100B,
das die Journale empfangen hat, implementiert die mit Bezug auf 18 beschriebene Journal-Speicherverarbeitung,
in diesem Fall werden die Schreibdaten in dem empfangenen Journal
jedoch von der Neueste-Schreibdaten-Adresse in dem Gebiet gespeichert,
die der an das empfangene Journal angehängten Gebietsnummer entspricht.
Falls in dem Beispiel in 27 das Steueruntersystem 101B zwei
Journale mit der Aktualisierungsnummer 8 und der Aktualisierungsnummer
12 empfangen hat, schreibt es die Schreibdaten in dem Journal mit
der Aktualisierungsnummer 1, beginnend mit der logischen Adresse
700, in den logischen Journal-Datenträger #8 und speichert dann die Schreibdaten
in kontinuierlicher Weise nach diesen Schreibdaten in dem Journal
mit der Aktualisierungsnummer 12.
-
(Dritte Ausführungsform)
-
Als
nächstes
wird eine dritte Ausführungsform
eines Modus zum Implementieren der vorliegenden Erfindung beschrieben.
Diese dritte Ausführungsform
bezieht sich auf die vom ersten Speichersystem 100A in
einem Fall, in dem die Aktualisierungsinformationen oder die Schreibdaten
in dem Journal nicht gespeichert werden können, ausgeführte Verarbeitung.
Eine konkrete Beschreibung wird nachstehend gegeben.
-
Falls
bei der mit Bezug auf 13 beschriebenen Journal-Erzeugungsverarbeitung
das Steueruntersystem 101A in dem ersten Speichersystem 100A die
Aktualisierungsinformationen oder die Schreibdaten nicht speichern
kann, kann das Kopieren in der Gruppe, die sich auf diesen Prozess
bezieht, nicht fortgesetzt werden (1390 in 13). In diesem Fall ändert das Steueruntersystem 101A den Gruppenstatus
in den Gruppeninformationen 600A auf "unterbrochen" und implementiert die folgende Verarbeitung.
Ein Gruppenstatus "unterbrochen" bedeutet, dass der
Journal-Erzeugungsprozess unterbrochen wurde und die Konsistenz
zwischen den Daten in dem ersten logischen Datenträger P und
dem zweiten logischen Datenträger
S nicht erreicht wurde.
-
Gemäß dieser
dritten Ausführungsform
stellt das Steueruntersystem 101A Differenzinformationen bereit.
Die Differenzinformationen sind Informationen, die für jeden
Speicherbereich einer vorgeschriebenen Größe angeben, ob es einen Unterschied
zwischen dem ersten logischen Datenträger und dem zweiten logischen
Datenträger
gibt (beispielsweise für
jedes kB, für
jede logische Adresse, für
jedes Speichervolumen, das dem in einem anfänglichen Kopiervorgang verarbeiteten
Datenvolumen entspricht, oder für
einen Faktor oder ein Maß davon). Differenzinformationen
sind für
alle ersten logischen Datenträger
P erforderlich. Die Differenzinformationen werden in einem vorgeschriebenen
Speicherbereich, beispielsweise einem Speicher, der von dem Kanalsteuerabschnitt 110 und
dem DKA 120 konsultiert werden kann, gespeichert (insbesondere
in einem geteilt verwendeten Speicher 140).
-
(A: Verarbeitung, die implementiert wird,
wenn ein Journal nicht gespeichert werden kann (Gruppenstatus: unterbrochen))
-
Bevor
der Gruppenstatus einer bestimmten Gruppe "unterbrochen" wird, setzt das Steueruntersystem 101A zuvor
den Wert der Differenzinformationen für den ersten logischen Datenträger P in
der Gruppe auf "kein
Unterschied". Das
Steueruntersystem 101A liest das älteste Journal aus den logischen Journal-Datenträgern in
dieser Gruppe auf der Grundlage der Zeigerinformationen 700A aus
und setzt den Wert, der sich auf das älteste Journal in den Differenzinformationen
bezieht (beispielsweise den Wert, der der logischen Adresse des ältesten
Journals entspricht), auf "Unterschied". Das Steueruntersystem 101A entfernt
dann das älteste
Journal aus dem logischen Journal-Datenträger. Das Steueruntersystem 101A führt diesen
Prozess für
alle Journale aus.
-
(B: Verarbeitung, die implementiert wird,
wenn ein Journal nicht gespeichert werden kann (Gruppenstatus: unterbrochen))
-
Falls
bei der vorstehend beschriebenen Verarbeitung (A: Verarbeitung,
die implementiert wird, wenn ein Journal nicht gespeichert werden
kann (Gruppenstatus: unterbrochen)) das Steueruntersystem 101A einen
Schreibbefehl und Schreibdaten vom Host-Computer 180 empfangen
hat, setzt es, statt ein Journal für diese Schreibdaten zu erzeugen, den
Wert in den Differenzinformationen auf "Unterschied". Insbesondere bezieht sich das Steueruntersystem 101A beispielsweise
in Schritt 1265 in 12 auf
den Gruppenstatus und setzt, falls der Gruppenstatus "unterbrochen" ist, die entsprechende
logische Adresse (den entsprechenden Ort in den Differenzinformationen)
auf "Unterschied", ohne ein Journal
zu erzeugen.
-
(C: Wiedereinleiten des Kopierens nach
dem Unterbrechen des Kopierens (Unterbrechungszustand))
-
Das
Steueruntersystem 101A empfängt eine spezifizierte Gruppennummer
und einen Kopierneueinleitbefehl vom Host- Computer 180 oder vom Wartungsendgerät und leitet
den Kopierprozess für
die der spezifizierten Gruppennummer entsprechende Gruppe, ansprechend
auf diesen Kopierneueinleitbefehl, neu ein. Ein Beispiel einer spezifischen
Verarbeitungssequenz wird nachstehend beschrieben. Mit anderen Worten ändert das
Steueruntersystem 101A, wenn die vorstehend beschriebene
Verarbeitung beendet wurde (A: Verarbeitung, die implementiert wird,
wenn ein Journal nicht gespeichert werden kann (Gruppenstatus: unterbrochen)),
den Gruppenstatus der für
die Kopierneueinleitverarbeitung spezifizierten Gruppe auf "nicht kopiert". Das Steueruntersystem 101A implementiert
dann einen anfänglichen Kopierprozess,
wie in 10 beschrieben wurde. Bei diesem
anfänglichen
Kopierprozess prüft
das Steueruntersystem 101A, wie in 30 dargestellt ist,
nach Schritt 1020 jeden Ort der Differenzinformationen 1021 entsprechend
dem ersten logischen Datenträger,
der das Objekt des anfänglichen
Kopierprozesses ist (beispielsweise die Orte, die jeder logischen
Adresse entsprechen), um zu bestätigen,
ob sie "Unterschied" oder "kein Unterschied" angeben (Schritt 1021).
Falls "Unterschied" in den Differenzinformationen
festgelegt ist, führt
das Steueruntersystem 101A in Schritt 1040 einen
Journal-Erzeugungsprozess aus, und falls "kein Unterschied" festgelegt ist, führt es die Verarbeitung in
Schritt 1050 aus. Wenn der Paarstatus für alle ersten logischen Datenträger in der
festgelegten Gruppe infolge dieser Verarbeitung "normal" geworden ist, führt das Steueruntersystem 101A den
Gruppenstatus auf "normal" zurück. Daraufhin
werden alle in den Differenzinformationen festgelegten Werte auf "kein Unterschied" geändert, und
es wird der Normalbetrieb wieder aufgenommen, wobei mit anderen
Worten immer dann ein Journal erzeugt wird, wenn Daten aktualisiert
werden.
-
Gemäß dieser
vorstehend beschriebenen dritten Ausführungsform werden Differenzinformationen 1021 verwendet,
um zu identifizieren, ob die Schreibdaten, für die ein Journal zu erzeugen
ist, Schreibdaten sind, die einen Unterschied zwischen dem ersten
logischen Datenträger
P und dem zweiten logischen Datenträger S enthalten, und es wird kein
Journal erzeugt, falls die Schreibdaten keinen solchen Unterschied
enthalten. Folglich werden Journale nicht unnötig erzeugt, und die Zeit,
die erforderlich ist, bis der zweite logische Datenträger S mit
dem ersten logischen Datenträger
P übereinstimmt,
kann verkürzt
werden.
-
(Ausführungsform
4)
-
Als
nächstes
wird eine vierte Ausführungsform
eines Modus zum Implementieren der vorliegenden Erfindung beschrieben.
Diese vierte Ausführungsform
betrifft ein Beispiel eines Verfahrens zum Festlegen verschiedener
Informationen zum Erreichen mindestens eines der vorstehend erwähnten Implementationsmodi
und der vorstehend erwähnten ersten
bis dritten Ausführungsform.
Nachstehend wird eine Bildschirmdarstellung einer GUI (graphischen
Benutzerschnittstelle), die verwendet wird, wenn dieses Verfahrensbeispiel
angenommen wird, beschrieben. Die nachstehend beschriebene GUI-Bildschirmdarstellung
wird als eine GUI-Bildschirmdarstellung
angenommen, die durch im SVP 281 installierte Software
bereitgestellt wird, und sie kann auf einer Vielzahl von Computern
angezeigt werden, die mit dem SVP 281 verbunden sind.
-
31A zeigt ein Beispiel einer ersten GUI-Bildschirmdarstellung.
-
Die
erste GUI-Bildschirmdarstellung ist eine Bildschirmdarstellung zum
Einrichten des Aktualisierungsinformationsbereichs, des Schreibdatenbereichs
und der Anzahl der Gebiete, und diese Bildschirmdarstellung wird
beispielsweise für
jede Gruppe bereitgestellt.
-
Insbesondere
ist es beispielsweise in dem "Meta/Daten-Verhältnis"-Kästchen möglich, das
Verhältnis
der Speicherkapazität
zwischen dem Aktualisierungsinformationsbereich und dem Schreibdatenbereich
festzulegen. In dem Beispiel in 31A ist das
Verhältnis
auf "16" gesetzt, was bedeutet,
dass, wenn die Speicherkapazität
eines logischen Journal-Datenträgers
beispielsweise 170 GB ist, der Aktualisierungsinformationsbereich
10 GB ist und der Schreibdatenbereich 160 GB ist. Die für bestimmte Informationselemente
der Zeigerinformationen 700A festgelegten Werte werden
auf der Grundlage der auf dieser Bildschirmdarstellung festgelegten
Werte bestimmt.
-
Insbesondere
kann die Anzahl der Gebiete in dem "Gebiet"-Kästchen
festgelegt werden. In dem Beispiel in 31A ist
diese Anzahl auf "32" gesetzt, was bedeutet,
dass in einem oder mehreren Schreibdatenbereichen 32 Gebiete
festgelegt sind.
-
31B zeigt ein Beispiel einer zweiten GUI-Bildschirmdarstellung.
-
Diese
zweite GUI-Bildschirmdarstellung ist eine Bildschirmdarstellung,
auf der der Benutzer bestimmte Einstellungen bestätigen kann.
-
Insbesondere
wird die Gruppennummer (beispielsweise "70")
beispielsweise in der Spalte angezeigt, die "JNL-Gruppe" entspricht.
-
Informationen,
die sich auf den Gruppenstatus beziehen, werden in der "Attribut" entsprechenden Spalte
angezeigt. Falls der Gruppenstatus insbesondere beispielsweise "normal" ist, wird die der
vorstehend erwähnten
Gruppennummer (beispielsweise "70") entsprechende Gruppe
entweder als eine Kopierquelle (Master) oder ein Kopierziel (Umspeichern)
angezeigt. Falls der Gruppenstatus "unterbrochen" ist, wird "unterbrochen" angezeigt, und falls das anfängliche
Kopieren gerade abläuft,
wird "Kopieren" angezeigt.
-
Das
Kästchen "JNL-Größe (GB)" gibt die Gesamtspeicherkapazität der logischen
Journal-Datenträger
an.
-
Das
Kästchen "JNL-Datenträger" gibt die Anzahl
der logischen Journal-Datenträger
an.
-
Überdies
sind die der Gruppennummer zugeordneten logischen Journal-Datenträger beispielsweise
in dem durch die Bezugszahl 5001 angegebenen Anzeigebereich
aufgelistet.
-
32A zeigt ein Beispiel einer dritten GUI-Bildschirmdarstellung.
-
Die
dritte GUI-Bildschirmdarstellung ist eine Bildschirmdarstellung
zum Erfassen von Informationen in Bezug auf eine Gruppe und zum
Vornehmen von Einstellungen in Bezug auf eine Gruppe.
-
Beispielsweise
wird das durch eine Bezugszahl 5003 angegebene Menü "JNL-Datenträger" vom Benutzer ausgewählt, wenn
ein neuer logischer Journal-Datenträger zu einer vom Benutzer ausgewählten Gruppe
hinzuzufügen
ist. Der Benutzer kann einen logischen Datenträger hinzufügen, um einen für eine Gruppe
registrierten logischen Journal-Datenträger zu bilden, indem er beliebige
der logischen Datenträger
aus einer durch eine Bezugszahl 5005 angegebenen Liste
beispielsweise auf einer in 32B dargestellten
vierten GUI-Bildschirmdarstellung
auswählt.
-
Auf
der dritten GUI-Bildschirmdarstellung wird das durch die Bezugszahl 5004 angegebene Menü "Option ändern" vom Benutzer ausgewählt, wenn
die Bildschirmdarstellung in 31A anzuzeigen
ist.
-
Wenngleich
hier auf eine detailliertere Beschreibung verzichtet wird, wird
die dritte GUI-Bildschirmdarstellung auch verwendet, um nicht verwendete
Gruppen zu untersuchen (dort ist die "Attribut"-Spalte leer). Überdies wird die dritte GUI-Bildschirmdarstellung
auch verwendet, wenn der Benutzer den Gruppenstatus bestätigen möchte. Überdies wird
die dritte GUI-Bildschirmdarstellung auch verwendet, wenn der Benutzer
Operationen in Gruppeneinheiten ausführt (Anweisungen gibt), wie
das Einleiten eines anfänglichen
Kopierprozesses oder dergleichen.
-
33A zeigt ein Beispiel einer fünften GUI-Bildschirmdarstellung.
-
Die
fünfte
GUI-Bildschirmdarstellung ist eine Bildschirmdarstellung zum Spezifizieren
Paare bildender logischer Datenträger und zum Bestätigen des
Status dieser Paare.
-
In
der fünften
GUI-Bildschirmdarstellung gibt die Spalte "Status" den Paarstatus an. Ein Eintrag "SMPL" in der diesem Element
entsprechenden Spalte gibt einen logischen Datenträger an,
der nicht gepaart ist, und ein Eintrag "PAAR" gibt
einen logischen Datenträger
an, der gepaart ist und für
den eine Datenkopie normal ausgeführt wurde. Falls der logische
Datenträger
ein erster logischer Datenträger ist,
wird "P" unterhalb des Bildzeichens 5006 und links
davon angegeben, und falls der logische Datenträger ein zweiter logischer Datenträger ist,
wird "S" angegeben. Überdies
wird in der "Status"-Spalte "unterbrochen" angezeigt, falls
der Gruppenstatus "unterbrochen" ist, und "Kopieren" angezeigt, falls
das anfängliche
Kopieren gerade ausgeführt
wird.
-
Überdies
ist es in der fünften
GUI-Bildschirmdarstellung möglich,
ein Paar zu erzeugen, wenn das durch eine Bezugszahl 5008 angegebene
Menü "Paarerzeugung" ausgewählt wird.
Falls insbesondere ein erster logischer Datenträger ausgewählt, rechts angeklickt und
das Menü "Paarerzeugung" in dem sich ergebenden
Pop-up-Fenster ausgewählt wird,
wird eine sechste Bildschirmdarstellung in der Art der in 33B dargestellten angezeigt. Auf dieser Bildschirmdarstellung
kann ein Paar erzeugt werden, indem ein zweiter logischer Datenträger und eine
erste/zweite Gruppennummer und dergleichen ausgewählt werden.
-
Vorstehend
wurden ein bevorzugter Implementationsmodus und mehrere Ausführungsformen der
vorliegenden Erfindung beschrieben, die vorliegende Erfindung ist
jedoch nicht auf diesen Implementationsmodus dieser Ausführungsformen
beschränkt,
und sie kann natürlich
auf verschiedene Arten modifiziert werden, ohne vom Grundgedanken der
Erfindung abzuweichen.
-
Beispielsweise
wird in der vorstehenden Beschreibung eine "Nummer" verwendet, um jedes Element zu identifizieren,
es ist jedoch auch möglich,
einen beliebigen Kennungstyp außer
einer Nummer zu verwenden, der dieses Element identifizieren kann. Insbesondere
ist die Kennung zum Identi fizieren eines Speichersystems 100 beispielsweise
nicht auf eine Nummer beschränkt,
und sie kann auch ein WWN (weltweiter Name), ein iSCSI-Name, eine IP-Adresse,
eine MAC-Adresse oder dergleichen sein.
-
Überdies
kann ein Journal auch dadurch in dem zweiten Speichersystem 100B gespeichert
werden, dass das erste Speichersystem 100A das Journal
und einen Journal-Schreibbefehl zum zweiten Speichersystem 100B sendet.
Falls ein Verfahren eingesetzt wird, bei dem Journal-Lesebefehle
verwendet werden, ist es dem zweiten Speichersystem 100B möglich, Befehle
entsprechend seinem eigenen Status in der Art seiner Belastung oder
dergleichen auszugeben, wodurch die Zweckmäßigkeit des zweiten Speichersystems 100B verbessert
wird. Falls ein Verfahren eingesetzt wird, bei dem Journal-Schreibbefehle verwendet
werden, ist es dem ersten Speichersystem 100A möglich, Befehle
entsprechend seinem eigenen Status in der Art seiner Belastung oder
dergleichen auszugeben, wodurch die Zweckmäßigkeit des ersten Speichersystems 100A verbessert
wird.
-
Falls
das Steueruntersystem 101A weiterhin feststellt, dass die
in einem logischen Journal-Datenträger des ersten Speichersystems 100A gespeicherten
Aktualisierungsinformationen umgespeichert wurden, beispielsweise
dadurch, dass das zweite Speichersystem 100B auf der Grundlage
eines diese Aktualisierungsinformationen enthaltenden Journals einen
Umspeicherprozess implementiert hat, oder falls das die Aktualisierungsinformationen
enthaltende Journal zum zweiten Speichersystem 100B gesendet
wurde, kann das Steueruntersystem 101A diese Aktualisierungsinformationen
entfernen. Der erstgenannte Fall kann beispielsweise festgestellt werden,
indem das Steueruntersystem 101B des zweiten Speichersystems 100B jedes
Mal dann, wenn ein Umspeicherprozess auf der Grundlage eines Journals
ausgeführt
wird, die Aktualisierungsnummer in dem Journal zu dem ersten Speichersystem 100A sendet.