-
Die
vorliegende Erfindung betrifft ein Verfahren zur Steuerung eines
Speichereinrichtungscontrollers, einen Speichereinrichtungscontroller
und ein Speichersystem.
-
2. Beschreibung der verwandten
Techniken
-
Es
gibt eine gut bekannte Kopieverwaltungsfunktion, die in einem Speichersystem
verwendet wird, welches eine Informationsverarbeitungsvorrichtung
und eine Diskarrayeinheit beinhaltet, die zur Kommunikation miteinander
verbunden sind. Die Funktion verwaltet Primärvolumendaten im Duplikat, indem
sie Daten in Echtzeit von einem Primärvolumen auf ein Sekundärvolumen
kopiert. Das Primär(Master-)Volumen,
das eine Kopierquelle ist, und das Sekundär(Sub-)Volumen, das ein Kopierziel
ist, sind gepaart.
-
In
einem solchen Speichersystem laufen Daten jedoch während Kommunikationen
zwischen der Informationsverarbeitungsvorrichtung und der Diskarrayeinheit
häufig
von einem Primärvolumen
in andere Primärvolumen über. Wenn
bei einer solchen Gelegenheit der Versuch unternommen wird, die
Daten zu sichern, muss eine Mehrzahl von Paaren (von Primär- und Sekundärvolumen)
aus dem gepaarten Zustand zurückgesetzt
werden. Wenn Daten in einem Primärvolumen,
für das
das Paar bereits zurückgesetzt
ist, während
des sequentiellen Zurücksetzens
gepaarter Zustände
aktualisiert werden, werden die Daten nicht in ihrem entsprechenden
Sekundärvolumen
aktualisiert, während
Daten in einem Primärvolumen,
dessen Paarzustand nicht zurückgesetzt
ist, in ihrem entsprechenden Sekundärvolumen manchmal aktualisiert
werden.
-
US 5 692 155 offenbart ein
Datenspeichersystem, das Mehrfach-Duplexpaare entweder über ein
einzelnes Speichersubsystem oder mehrere Speichersubsysteme atomar
aussetzt. Die Duplexpaare werden so ausgesetzt, dass die Daten auf
den sekundären
DASDs der Duplexpaare in einer sequenzbeständigen Reihenfolge bewahrt
werden. Ein Hostprozessor im Datenspeichersystem, der eine Anwendung
betreibt, erzeugt Aufzeichnungen und Aufzeichnungsupdates, die in
die primären
DASDs der Duplexpaare zu schreiben sind. Der Speichercontroller
leitet Kopien der Aufzeichnungen und Aufzeichnungsupdates an die
sekundären
DASDs der Duplexpaare. Die Sequenzbeständigkeit wird auf den sekundären DASDs
durch Stilllegen der Duplexpaare und anschließendes Aussetzen der Duplexpaare
mit Änderung
der Aufzeichnung aufrechterhalten. Das Stilllegen der Duplexpaare
erlaubt es, irgendeine in Gang befindliche aktuelle Schreib-E/A
zur primären DASD
zu vervollständigen.
Der Speichercontroller sperrt dann irgendwelche nachfolgenden Schreib-E/A
von dem Hostprozessor aus, indem er für solche nachfolgenden Schreibrequests
ein Long-Busy-Signal ausgibt.
-
US 6 301 643 offenbarte
ein System zur Aufrechterhaltung der Konsistenz von Daten in Speichereinrichtungen.
Ein Sperrzeitwert wird für
das System bereitgestellt. Dann erhält das System Information über Datenschreibvorgänge an eine
erste Speichereinrichtung, einschließlich Information über den
Datenschreibvorgängen
zugeordnete Zeitstempelwerte, die eine Reihenfolge der Datenschreibvorgänge zur ersten
Speichereinrichtung angeben. Zumindest eine Gruppe von Datenschreibvorgängen, die
Zeitstempelwerte aufweisen, die zeitlich früher liegen als der Sperrzeitwert,
wird dann gebildet. Das System überträgt dann
die Datenschreibvorgänge
in den Gruppen an eine zweite Speichereinrichtung zur dortigen Speicherung.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Es
ist Aufgabe der vorliegenden Erfindung, ein Verfahren zur Steuerung
eines Speichereinrichtungscontrollers, einen Speichereinrichtungscontroller
und ein Speichersystem bereitzustellen, die imstande sind, Datenkopien
unter Aufrechterhaltung der Konsistenz zwischen den in einer Mehrzahl
von Speichervolumen gespeicherten Daten zu verwalten.
-
Diese
Aufgaben werden durch ein Speichersystem gemäß Anspruch 1 oder 6, einen
Speichereinrichtungscontroller gemäß Anspruch 11 und ein Verfahren
zur Steuerung eines Speichereinrichtungscontrollers gemäß Anspruch
12 gelöst.
-
Die
Speichereinrichtung und der Speichereinrichtungscontroller können in
einer Diskarrayeinheit beinhaltet sein. Die Informationsverarbeitungsvorrichtung
und die Diskarrayeinheit sind in dem Speichersystem beinhaltet.
-
Speichervolumen
sind in der Diskarrayeinheit oder der Speichereinrichtung vorgesehene
Speicherressourcen und sie sind in physikalische Volumen und logische
Volumen unterteilt. Ein physikalisches Volumen ist ein physikalischer
Speicherbereich, der in einem Disklaufwerk der Diskarrayeinheit oder
Speichereinrichtung vorgesehen ist, und ein logisches Volumen ist
ein Speicherbereich, der in einem physikalischen Volumen logisch
zugeordnet ist.
-
Das „gepaart" bedeutet einen Zustand,
in dem zwei Speichervolumen, wie oben beschrieben, miteinander in Übereinstimmung
gebracht werden.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Nun
werden bevorzugte Ausführungsformen der
vorliegenden Erfindung in Verbindung mit den beigefügten Zeichnungen
beschrieben, in denen:
-
1 ein
Gesamtblockdiagramm eines Speichersystems in einem Ausführungsbeispiel
der vorliegenden Erfindung ist;
-
2 ein
Blockdiagramm einer Informationsverarbeitungsvorrichtung eines Ausführungsbeispiels
der vorliegenden Erfindung ist;
-
3 ein
Blockdiagramm eines Kanaladapters ist, der in einem Speichereinrichtungscontroller des
Ausführungsbeispiels
der vorliegenden Erfindung vorgesehen ist;
-
4 eine
Tabelle ist, die in einem gemeinsamen Speicher gespeichert ist,
der in dem Speichereinrichtungscontroller des Ausführungsbeispiels
der vorliegenden Erfindung vorgesehen ist;
-
5 Paare
von Speichervolumen des Ausführungsbeispiels
der vorliegenden Erfindung ist;
-
6 ein
Flussdiagramm der Verarbeitungen des Speichereinrichtungscontrollers
zum Splitten eines Paars zur Erläuterung
der vorliegenden Erfindung ist;
-
7 ein
Flussdiagramm der Verarbeitungen des Speichereinrichtungscontrollers
zum Splitten eines Paars und zum Eingeben/Ausgeben der Datenelemente
des gesplitteten Paars zur Erläuterung
der vorliegenden Erfindung ist;
-
8 eine
Tabelle ist, die in dem gemeinsamen Speicher gespeichert ist, der
in dem Speichereinrichtungscontroller des Ausführungsbeispiels der vorliegenden
Erfindung vorgesehen ist; und
-
9 ein
Flussdiagramm der Verarbeitungen des Speichereinrichtungscontrollers
zum Splitten eines Paars ist.
-
DETAILLIERTE BESCHREIBUNG
DER ERFINDUNG
-
Nachstehend
werden die bevorzugten Ausführungsformen
der vorliegenden Erfindung unter Bezugnahme auf die beigefügten Zeichnungen
detailliert beschrieben.
-
=== Gesamtkonfiguration ===
-
Zunächst wird
das Speichersystem in einer Ausführungsform
der vorliegenden Erfindung unter Bezugnahme auf das in 1 gezeigte
Blockdiagramm beschrieben.
-
Eine
Informationsverarbeitungsvorrichtung 100 ist ein Computer,
der mit einer CPU (Zentraleinheit), einem Speicher usw. versehen
ist. Die CPU der Informationsverarbeitungsvorrichtung 100 führt verschiedene
Arten von Programmen zur Realisierung verschiedener Funktionen der
Vorrichtung 100 aus. Die Informationsverarbeitungsvorrichtung 100 wird zum
Beispiel als Kerncomputer in einem Geldautomaten in einer Bank,
einem Flugticketreservierungssystem oder dergleichen eingesetzt.
-
Die
Informationsverarbeitungsvorrichtung 100 ist mit einem
Speichereinrichtungscontroller 200 zur Kommunikation mit
dem Controller 200 verbunden. Die Informationsverarbeitungsvorrichtung 100 gibt
Dateneingabe-/-ausgabebefehle (Requests) an den Speicherein richtungscontroller 200 aus,
um Daten von/zu den Speichereinrichtungen 300 zu lesen/schreiben.
Die Informationsverarbeitungsvorrichtung 100 sendet/empfangt
auch verschiedene Befehle an den/von dem Speichereinrichtungscontroller 200 zum
Verwalten der Speichereinrichtungen 300. Beispielsweise
werden die Befehle zum Verwalten von Kopien von Daten verwendet,
die in den Speichervolumen gespeichert sind, die in den Speichereinrichtungen 300 vorgesehen
sind.
-
2 zeigt
ein Blockdiagramm der Informationsverarbeitungsvorrichtung 100.
-
Die
Informationsverarbeitungsvorrichtung 100 ist durch eine
CPU 110, einen Speicher 120, einen Port 130,
ein Medienlesegerät 140,
eine Eingabeeinrichtung 150 und eine Ausgabeeinrichtung 160 konfiguriert.
-
Die
CPU 110 steuert die gesamte Informationsverarbeitungsvorrichtung 100 und
führt die
in dem Speicher 120 gespeicherten Programme aus, um verschiedene
Funktionen der Vorrichtung 100 zu realisieren. Das Medienlesegerät 140 liest
Programme und Daten, die auf dem Aufzeichnungsmedium 170 aufgezeichnet
sind. Der Speicher 120 speichert die von dem Lesegerät 140 gelesenen
Programme und Daten. Entsprechend kann das Medienlesegerät 170 verwendet
werden, um ein Speichereinrichtungsmanagementprogramm 121 und
ein Anwendungsprogramm 122, die auf dem Medium 170 aufgezeichnet
sind, zu lesen und sie in dem Speicher 120 zu speichern.
Das Aufzeichnungsmedium 170 kann irgendeine flexible Disk,
CD-ROM-Disk, irgendein
Halbleiterspeicher usw. sein. Das Medienlesegerät 140 kann auch in
die Informationsverarbeitungsvorrichtung 100 eingebaut
oder als externe Einrichtung vorgesehen sein. Die Eingabeeinrichtung 150 wird
von der Bedienperson benutzt, um an die In formationsverarbeitungsvorrichtung 100 adressierte
Daten einzugeben. Die Eingabeeinrichtung 150 kann irgendeine
Tastatur, Maus usw. sein. Die Ausgabeeinrichtung 160 gibt
Informationen nach außen aus.
Die Ausgabeeinrichtung 160 kann irgendein Anzeigeschirm,
Drucker usw. sein. Der Port 130 dient zur Kommunikation
mit dem Speichereinrichtungscontroller 200. In diesem Zusammenhang
können das
Speichereinrichtungsmanagementprogramm 121 und das Anwendungsprogramm 122 durch
den Port 130 von einer anderen Informationsverarbeitungsvorrichtung 100 empfangen
und in dem Speicher 120 gespeichert werden.
-
Das
Speichereinrichtungsmanagementprogramm 121 verwaltet Kopien
von Daten, die in den Speichervolumen gespeichert sind, die in den
Speichereinrichtungen 300 vorgesehen sind. Der Speichereinrichtungscontroller 200 verwaltet
Kopien von Daten unter Verwendung verschiedener Kopiemanagementbefehle,
die von der Informationsverarbeitungsvorrichtung 100 erhalten
werden.
-
Das
Anwendungsprogramm 122 realisiert die Funktionen der Informationsverarbeitungsvorrichtung 100.
Beispielsweise realisiert das Programm 122 Funktionen eines
Geldautomaten einer Bank und Funktionen eines Flugticketreservierungssystems,
wie vorstehend beschrieben.
-
Als
Nächstes
wird der Speichereinrichtungscontroller 200 unter erneuter
Bezugnahme auf 1 beschrieben. Der Speichereinrichtungscontroller 200 steuert
die Speichereinrichtungen 300 nach Maßgabe der von der Informationsverarbeitungsvorrichtung 100 erhaltenen
Befehle. Wenn zum Beispiel der Speichereinrichtungscontroller von
der Informationsverarbeitungsvorrichtung 100 einen Dateneingabe-/-ausgaberequest
empfangt, gibt er Daten in ein in einer Speichereinrichtung 300 vorgesehenes
Speichervolumen ein oder aus diesem aus.
-
Der
Speichereinrichtungscontroller 200 ist durch einen Kanaladapter 210,
einen Cache-Speicher 220, einen gemeinsamen Speicher 230,
einen Disk-Adapter 240, ein Managementterminal (SPV: SerVice-Prozessor) 260 und
eine Verbindungseinheit 250 konfiguriert.
-
Der
Kanaladapter 210, der mit einer Kommunikationsschnittstelle
mit der Informationsverarbeitungsvorrichtung 100 versehen
ist, tauscht mit der Informationsverarbeitungsvorrichtung 100 Dateneingabe-/-ausgabebefehle
usw. aus.
-
3 zeigt
ein Blockdiagramm des Kanaladapters 210.
-
Der
Kanaladapter 210 ist durch eine CPU 211, einen
Cache-Speicher 212, einen Steuerspeicher 213,
einen Port 215 und einen Bus 216 konfiguriert.
-
Die
CPU 211 steuert den gesamten Kanaladapter 210 durch
Ausführen
eines im Steuerspeicher 213 gespeicherten Steuerprogramms 214.
Das im Steuerspeicher 213 gespeicherte Steuerprogramm 214 ermöglicht es
somit in dieser Ausführungsform, dass
Datenkopien verwaltet werden. Der Cache-Speicher 212 speichert
vorübergehend
Daten, Befehle usw., die mit der Informationsverarbeitungsvorrichtung 100 ausgetauscht
werden sollen. Der Port 215 ist eine Kommunikationsschnittstelle,
die zur Kommunikation mit der Informationsverarbeitungsvorrichtung 100 und
anderen in dem Speichereinrichtungscontroller 200 vorgesehenen
Einrichtungen verwendet wird. Der Bus 216 ermöglicht die
gegenseitige Verbindung zwischen jenen Einrichtungen.
-
Es
sei wieder zu 1 zurückgekehrt. Der Cache-Speicher 220 speichert
vorübergehend
Daten, die zwischen dem Kanaladapter 210 und dem Disk-Adapter 240 ausgetauscht
werden sollen. Mit anderen Worten, wenn der Kanaladapter 210 einen Schreibbefehl
als Dateneingabe-/-ausgabebefehl von der Informationsverarbeitungsvorrichtung 100 erhält, schreibt
der Kanaladapter 210 den Befehl in den gemeinsamen Speicher 230 bzw.
die von der Informationsverarbeitungsvorrichtung 100 empfangenen
Zieldaten in den Cache-Speicher 220. Dann liest der Disk-Adapter 240 die
Zieldaten gemäß dem in
den gemeinsamen Speicher geschriebenen Schreibbefehl aus dem Cache-Speicher 220 und schreibt
die gelesenen Daten in eine Speichereinrichtung 300.
-
Das
Managementterminal 260 ist eine Art Informationsverarbeitungsvorrichtung,
die für
die Wartung/das Management des Speichereinrichtungscontrollers 200 und
der Speichereinrichtungen 300 eingesetzt wird. Beispielsweise ändert das
Managementterminal 260 das im Kanaladapter 210 ausgeführte Steuerprogramm 214 in
ein anderes. Das Managementterminal 260 kann in den Speichereinrichtungscontroller 200 eingebaut
oder getrennt sein. Das Managementterminal 260 kann auch
für die Wartung/das
Management des Speichereinrichtungscontrollers 200 und
der Speichereinrichtungen 300 vorgesehen oder als allgemeine
Informationsverarbeitungsvorrichtung zur Wartung/zum Management
konfiguriert sein. Die Konfiguration des Managementterminals 260 ist
dieselbe wie diejenige der Informationsverarbeitungsvorrichtung 100,
die in 2 gezeigt ist. Konkret gesagt, das Managementterminal 260 ist
durch eine CPU 110, einen Speicher 120, einen
Port 130, ein Aufzeichnungsmedienlesegerät 140,
eine Eingabeeinrichtung 150 und eine Ausgabeeinrichtung 160 konfiguriert.
Infolgedessen kann das im Kanaladapter 210 auszuführende Steuerprogramm
durch das Medienlesegerät 140 des
Managementterminals 260 aus dem Aufzeichnungsmedium 170 gelesen
oder von der Informationsverarbeitungsvorrichtung 100,
die durch den Port 130 des Managementterminals 260 mit
ihm verbunden ist, empfangen werden.
-
Der
Disk-Adapter 240 steuert die Speichereinrichtungen 300 nach
Maßgabe
der von dem Kanaladapter 210 empfangenen Befehle.
-
Jede
der Speichereinrichtungen 300 ist mit einem von der Informationsverarbeitungsvorrichtung 100 zu
benutzenden Speichervolumen versehen. Speichervolumen sind Speicherressourcen,
die in den Speichereinrichtungen 300 vorgesehen und in physikalische
Volumen, welche in Disklaufwerken der Speichereinrichtungen 300 bereitgestellte
physikalische Speicherbereiche sind, und logische Volumen, die logisch
in jenen physikalischen Volumen zugeteilte Speicherbereiche sind,
unterteilt sind. Die Disklaufwerke können beispielsweise irgendwelche Festplattenlaufwerke,
flexiblen Disklaufwerke, Halbleiter-Speichereinrichtungen usw. sein.
Der Disk-Adapter 240 und jede der Speichereinrichtungen 300 können direkt,
wie in 1 gezeigt, oder durch ein Netzwerk miteinander
verbunden sein. Die Speichereinrichtungen 300 können auch
mit dem Speichereinrichtungscontroller 200 zu einem vereinigt
sein.
-
Auf
den gemeinsamen Speicher 230 kann sowohl von dem Kanaladapter 210 als
auch dem Disk-Adapter 240 zugegriffen werden. Der gemeinsame
Speicher dient zum Empfangen/Senden von Dateneingabe-/-ausgaberequests/-befehlen
und Speichern von Verwaltungsinformation usw. des Speichereinrichtungscontrollers 200 und
der Speichereinrichtungen 300. In dieser Ausführungsform
speichert der gemeinsame Speicher 230 eine Konsistenzgruppenmanagementtabelle 231 und
eine Paarmanagementtabelle 232, wie in 4 gezeigt.
-
=== Paarmanagementtabelle ===
-
Die
Paarmanagementtabelle 232 wird zur Verwaltung von Kopien
von Daten eingesetzt, die in den Speichereinrichtungen 300 gespeichert
sind. Die Tabelle 232 weist Spalten mit „Paar", „Primärvolumen", „Subvolumen", „Paarzustand" und „Konsistenzgruppe" auf.
-
Die „Paar"-Spalte enthält Paarnamen.
Ein Paar bedeutet eine Kombination aus zwei Speichervolumen. 5 zeigt
ein Beispiel von gepaarten Speichervolumen. In 5 sind
zwei Paare, d. h. die Paare A und B, bezeichnet. Das eine der gepaarten Volumen
und das andere der gepaarten Volumen werden als ein Primärvolumen
und ein Sekundärvolumen
gemanagt. In 5 ist ein Primärvolumen
als Hauptvolumen und ein Sekundärvolumen
als Subvolumen beschrieben. Eine Mehrzahl von Sekundärvolumen
kann mit einem Primärvolumen
kombiniert werden.
-
Es
sei zu der in 4 gezeigten Paarmanagementtabelle 232 zurückgekehrt.
Die „Primär"-Spalte beschreibt
mit Sekundärvolumen
gepaarte Primärvolumen,
während
die „Sekundär"-Spalte mit Primärvolumen
gepaarte Sekundärvolumen
beschreibt.
-
Die „Paarzustand"-Spalte beschreibt
den Zustand von jedem Paar von Volumen. Der „Paarzustand" ist in „gepaart", „gesplittet" und „resynch." eingeteilt.
-
Das „gepaart" gibt an, dass Daten
in einem Sekundärvolumen
mit den Daten in ihrem entsprechenden Primärvolumen, die von der Informationsverarbeitungsvorrichtung 100 geschrieben
wurden, aktualisiert werden. Die Konsistenz der in einem Paar aus
Primär-
und Sekundärvolumen
gespeicherten Daten wird mit einer solchen Überein stimmung, die zwischen
jenen Primär-
und Sekundärvolumen
gesetzt ist, sichergestellt.
-
Das „gesplittet" gibt an, dass Daten
in einem Sekundärvolumen
mit den Daten in ihrem entsprechenden Primärvolumen, die von der Informationsverarbeitungsvorrichtung 100 geschrieben
wurden, nicht aktualisiert werden. Konkret gesagt, während sich
Primär-
und Sekundärvolumen
in einem solchen „gesplitteten" Zustand befinden,
wird die Übereinstimmung
zwischen jenen Volumen zurückgesetzt. Infolgedessen
ist die Datenkonsistenz zwischen jenen Primär- und Sekundärvolumen
nicht sichergestellt. Da Daten jedoch in irgendeinem Sekundärvolumen,
das sich im „gesplitteten" Zustand befindet, nicht
aktualisiert werden, können
die Daten in Sekundärvolumen
währenddessen
gesichert werden, beispielsweise können in Sekundärvolumen
gespeicherte Daten in einem Magnetband oder dergleichen gespeichert
werden. Dies ermöglicht
es, Daten zu sichern, während
die Daten in Primärvolumen
während des
Sicherungsvorgangs kontinuierlich für einen Job verwendet werden,
der von der Informationsverarbeitungsvorrichtung 100 ausgeführt worden
ist.
-
Das „resynch." bezeichnet einen Übergangszustand
eines Paars von Volumen, beispielsweise von „gesplittet" zu „gepaart". Konkreter gesagt,
bedeutet das „resynch." einen Zustand, in
dem Daten in einem Sekundärvolumen
mit den in ihr entsprechendes Primärvolumen geschriebenen Daten
aktualisiert werden, während
sich das Paar im „gesplitteten" Zustand befindet.
Wenn die Daten im Sekundärvolumen aktualisiert
sind, ändert
sich der Zustand des Paars in „gepaart".
-
Zur
Bildung eines Paars von Speichervolumen oder zum Ändern des
Zustand des Paars von „gepaart"/"gesplittet" in „gesplittet"/"gepaart" instruiert die Bedienperson die Informationsverarbeitungsvorrichtung 100,
in der das Speichereinrichtungsmanagementprogramm 121 ausgeführt wird,
durch die Eingabeeinrichtung 150. Ein Befehl von der Bedienperson
wird dann an den Kanaladapter 210 des Speichereinrichtungscontrollers 200 gesendet.
Danach führt
der Kanaladapter 210 das Steuerprogramm 214 zur
Bildung eines Paars von Speichervolumen oder zur Änderung
des Zustand des Paars nach Maßgabe des
Befehls aus. Gemäß dem Zustand
des gebildeten Paars von Speichervolumen steuert der Kanaladapter 210 die
Objektspeichervolumen, wobei er beispielsweise ein Sekundärvolumen
mit einer Kopie von Daten aktualisiert, die in ihrem entsprechenden Primärvolumen
aktualisiert werden, wenn jene Volumen „gepaart" sind.
-
Wie
vorstehend beschrieben, ändert
der Kanaladapter 210 die Zustände von Paaren einen nach dem
anderen sequentiell. Der Grund dafür ist, dass ein Primärvolumen
mit einer Mehrzahl von Sekundärvolumen,
wie vorstehend beschrieben, gepaart werden kann, und wenn die Zustände einer
Mehrzahl von Paaren gleichzeitig geändert werden, kommt es dazu,
dass das Management von Primärvolumen kompliziert
wird.
-
Das
Bilden eines Paars von Volumen und Ändern des Zustand von jedem
Paar von Volumen kann auch automatisch zu einer vorgegebenen Zeit oder
nach Maßgabe
eines Befehls, der von einer anderen Informationsverarbeitungsvorrichtung 100 empfangen
wird, die durch den Port 130 verbunden ist, unabhängig von
Anweisungen von der Bedienperson erfolgen.
-
=== Konsistenzgruppe ===
-
Die „Konsistenzgruppe"-Spalte beschreibt die
Nummer jeder Konsistenzgruppe (Paargruppe), die aus Paaren von Volumen
besteht. Eine Konsistenzgruppe bedeutet eine Gruppe einer Mehrzahl von
zu steu ernden Speichervolumenpaaren, so dass die Zustände jener
Paare zusammen zu dem „gesplittet" geändert werden.
Konkret gesagt, eine Mehrzahl von Paaren in einer Konsistenzgruppe
wird so gesteuert, dass ihre Zustände gleichzeitig zu dem „gesplittet" geändert werden
(nachfolgend wird diese Verarbeitung als der Synchronismus unter
den Zustandsänderungen
zu dem Zustand „gesplittet" bezeichnet), während die
Zustände
einer Mehrzahl gepaarter Volumen einer nach dem anderen sequentiell geändert werden,
wie oben beschrieben.
-
Beispielsweise
sei nun angenommen, dass die Informationsverarbeitungsvorrichtung 100 Daten in
ein Speichervolumen schreibt, während
die Paarzustände
einer Mehrzahl gepaarter Volumen in einer Konsistenzgruppe sequentiell
von „gepaart" zu „gesplittet" geändert werden.
Wenn keine Konsistenzgruppe gebildet wird und die Daten in ein gepaartes Primärvolumen
geschrieben werden, nachdem der Paarzustand zu dem „gesplittet" geändert worden
ist, werden die Daten nicht in ihr entsprechendes Sekundärvolumen
geschrieben. Wenn die Daten in ein gepaartes Primärvolumen
geschrieben werden, dessen Zustand noch nicht zu dem „gesplittet" geändert ist, werden
die Daten auch in das Sekundärvolumen
geschrieben. Wenn das gepaarte Primärvolumen zu jenem Zeitpunkt
jedoch zu einer Konsistenzgruppe gehört, werden die Daten ungeachtet
des Paarzustand des Primärvolumens
(ob es in dem Zustand „gesplittet" ist oder nicht)
nicht in ihr entsprechendes Sekundärvolumen geschrieben. Der Grund
dafür ist,
dass die Daten in das Primärvolumen
geschrieben werden, nachdem das Paarsplitten (Zurücksetzen
der Übereinstimmung
zwischen Primär-
und Sekundärvolumen)
in der Konsistenzgruppe begonnen wird.
-
Das
Bilden einer Konsistenzgruppe mit einer Mehrzahl von Paaren auf
diese Weise ist effektiv für einen
Fall, in dem Daten in einer Mehrzahl von Speichervolumen zu speichern
sind, beispielsweise, wenn Schreibdaten zu groß sind, um in einem Speichervolumen
gespeichert zu werden, und wenn so gesteuert wird, dass ein Dateidatenelement
in einer Mehrzahl von Speichervolumen gespeichert wird.
-
Ein
derartiger sichergestellter Synchronismus der Paarzustandsänderungen
von Volumen zu dem Zustand „gesplittet" in einer Konsistenzgruppe ist
auch effektiv zum Schreiben/Lesen von Daten in/aus Sekundärvolumen,
das von der Informationsverarbeitungsvorrichtung 100 angefordert
wird.
-
Konkret
gesagt, wenn noch keine Konsistenzgruppe gebildet ist, können Daten
in/aus irgendeinem gepaarten Sekundärvolumen geschrieben/gelesen
werden, nachdem der Paarzustand zu dem „gesplittet" geändert worden
ist, während
es verhindert wird, dass Daten in/aus irgendeinem Sekundärvolumen
geschrieben/gelesen werden, dessen Paarzustand nicht zu „gesplittet" geändert ist.
-
Ein
Batchsplitempfangsflag (Identifikationsinformation) der Konsistenzgruppenmanagementtabelle 231 wird
verwendet, um den Synchronismus solcher Paarzustandsänderungen
von Volumen zu dem „gesplittet" in der obigen Konsistenzgruppe
sicherzustellen.
-
Als
Nächstes
werden zur Erläuterung
der Erfindung Verarbeitungen zur Sicherstellung eines derartigen
Synchronismus, die grundsätzlich
möglich sind,
unter Bezugnahme auf das in 6 gezeigte Flussdiagramm
beschrieben.
-
=== Verarbeitungsablauf ===
-
Die
folgenden Verarbeitungen werden durch die in dem Kanaladapter 210 vorgesehene
CPU 211 unter Verwendung des Steuerprogramms 214 (Programm)
ausgeführt,
das aus Codes zur Realisierung verschiedener Vorgänge besteht.
-
Zuerst
empfängt
der Kanaladapter 210 von der Informationsverarbeitungsvorrichtung 100 einen Paarsplittingrequest
(Splittingbefehl), der an eine Konsistenzgruppe adressiert ist (S1000).
Der Kanaladapter 210 schaltet dann das Batchsplitempfangsflag
in der Konsistenzgruppenmanagementtabelle 231 ein, die
in dem gemeinsamen Speicher 230 gespeichert ist (S1001).
Danach beginnt der Kanaladapter 210 den Paarzustand eines
nicht-gesplitteten Paars von Volumen in der Konsistenzgruppe nach „gesplittet" zu ändern (S1003).
Konkret gesagt, setzt der Kanaladapter 210 die Übereinstimmung
zwischen dem Primärvolumen
und dem Sekundärvolumen
in dem Paar zurück
und stoppt das Aktualisieren (Updaten) der Daten in dem Sekundärvolumen
mit den in das Primärvolumen
geschriebenen Daten. Der Kanaladapter 210 ändert dann
die Beschreibung für das
Paar in der „gepaart"-Spalte in der Paarmanagementtabelle 232 zu „gesplittet" (S1004). Jene Verarbeitungen
werden für
jedes Paar in der Konsistenzgruppe wiederholt. Wenn die Zustände aller
Paare in der Konsistenzgruppe zu „gesplittet" geändert sind (S1005),
schaltet der Kanaladapter 210 das Batchsplitflag ab und
verlässt
dann den Verarbeitungsablauf.
-
Wenn
der Kanaladapter 210 während
der obigen Verarbeitung einen Lese-/Schreibrequest von der Informationsverarbeitungsvorrichtung 100 erhält, überprüft der Adapter 210,
ob der Request an ein nicht-gesplittetes
Speichervolumen, das heißt,
ein „gepaartes" Speichervolumen
(für das
die Übereinstimmung
mit seinem Sekundärvolumen
nicht zurückgesetzt
ist) adressiert ist oder nicht (S1006). Wenn das Prüfergebnis
JA (adressiert) lautet, ändert der
Adapter 210 den Paarzustand des Volumens zu „gesplittet" (S1007). Der Adapter 210 ändert dann
die Beschreibung des Paars in der Paarzustandspalte in der Paarmanagementtabelle 232 zu „gesplittet" (S1008) und führt die
Datenlese-/-schreibverarbeitung (Eingabe-/Ausgabeverarbeitung) aus
(S1009).
-
Wenn
andererseits das Prüfergebnis
in (S1006) NEIN (nicht adressiert) lautet, bedeutet dies, dass der
Befehl an ein „gesplittetes" Volumen adressiert
ist. Der Adapter 210 führt
somit die Lese-/Schreibverarbeitung für das Speichervolumen (S1009)
umgehend aus.
-
Infolgedessen
wird der Synchronismus der Paarzustandsänderungen von „gepaarten" Volumen zu dem „gesplittet" in einer Konsistenzgruppe
sichergestellt.
-
In
dem in 6 gezeigten Flussdiagramm, wenn der Kanaladapter 210 einen
Lese-/Schreibrequest von der Informationsverarbeitungsvorrichtung 100 erhält, während er
gepaarte Volumen in einer Konsistenzgruppe sequentiell splittet, überprüft der Adapter 210,
ob der Request an ein nicht-gesplittetes Paar von Volumen adressiert
ist oder nicht (S1006), um die Lese-/Schreibverarbeitung auszuführen (S1009).
Gemäß der beanspruchten
Erfindung jedoch unterdrückt
der Adapter 210 die Ausführung der von der Informationsverarbeitungsvorrichtung 100 angeforderten
Lese-/Schreibverarbeitung, während der
Adapter 210 gepaarte Volumen in einer Konsistenzgruppe
sequentiell splittet. In diesem Zusammenhang kann der Adapter 210 die
Lese-/Schreibverarbeitung ausführen,
nachdem der Adapter 210 das Splitten aller gepaarter Volumen
in der Konsistenzgruppe vervollständigt hat und das Batchsplitflag abschaltet.
-
7 zeigt
ein Flussdiagramm für
Verarbeitungen durch den Kanaladapter 210 im Detail.
-
Zuerst
bildet der Kanaladapter 210 eine Konsistenzgruppe für beide
Paare A und B nach Maßgabe
eines von der Informationsverarbeitungsvorrichtung 100 empfangenen
Befehls (S2000 bis S2002). Der Befehl wird zum Beispiel von der
Bedienperson durch die Eingabeeinrichtung 150 der Informationsverarbeitungsvorrichtung 100 eingegeben.
Der an die Informationsverarbeitungsvorrichtung 100 eingegebene
Befehl wird durch das Speichereinrichtungsmanagementprogramm 121 an
den Kanaladapter 210 gesendet. Ein solcher Befehl ist der
in 7 gezeigte „paircreate
-g GRP0". Bei Empfang
des Befehls bildet der Kanaladapter 210 eine Konsistenzgruppe,
dann zeichnet er vorgegebene Daten jeweils in der Paarmanagementtabelle 232 und
der Konsistenzgruppenmanagementtabelle 231 auf, die in
dem gemeinsamen Speicher 230 gespeichert sind. 4 zeigt,
wie die vorgegebenen Daten in jenen Tabellen 231 und 232 gespeichert
werden. Aber obwohl der Zustand des Paars A in der Paarzustandspalte
in der in 4 gezeigten Paarmanagementtabelle 232 als „gesplittet" beschrieben ist,
ist der Zustand des Paars A zu jenem Zeitpunkt tatsächlich „gepaart". Gleichermaßen ist,
obwohl in der Batchsplitempfangsflag-Spalte für die Konsistenzgruppe 0 in
der Konsistenzgruppenmanagementtabelle 231 „EIN" beschrieben ist,
der tatsächliche
Zustand zu jenem Zeitpunkt in der Tat „AUS".
-
Wenn
der Kanaladapter 210 von der Informationsverarbeitungsvorrichtung 100 einen
Lese-/Schreibrequest (R/W1) für
das Speichervolumen 1 in dem Paar A empfängt (S2008), führt er die
Lese-/Schreibverarbeitung wie üblich
aus (S2009). Der Grund dafür
ist, dass in der Batchsplitempfangsflag-Spalte für die Konsistenzgruppe 0 in
der Konsistenzgruppenmanagementtabelle 231 „AUS" geschrieben ist.
-
Danach
weist die Informationsverarbeitungsvorrichtung 100 den
Kanaladapter 210 an, das Paar B in der Konsistenzgruppe
0 mit einem Befehl (S2003) zu spalten. Der in 7 gezeigte „pairsplit
-g GRP0" ist ein
Beispiel für
den zu jenem Zeitpunkt ausgegebenen Befehl. Dieser Befehl kann auch
von der Bedienperson durch die Eingabeeinrichtung 150 der
Informationsverarbeitungsvorrichtung 100 eingegeben werden.
-
Der
Kanaladapter 210 schaltet dann das Batchsplitempfangsflag
für die
Konsistenzgruppe 0 in der Konsistenzgruppenmanagementtabelle 231 ein, die
in dem gemeinsamen Speicher 230 gespeichert ist (S2004),
um das Splitten jedes Paars sequentiell zu beginnen (S2005, S2006). 4 zeigt
die Paarmanagementtabelle 232, in der das Paar A gesplittet ist.
Bei Vervollständigung
des Splittens aller Zielpaare schaltet der Kanaladapter 210 das
Batchsplitempfangsflag AUS und verlässt die Verarbeitung (S2007).
-
Wenn
der Kanaladapter 210 von der Informationsverarbeitungsvorrichtung 100 einen
an das Speichervolumen 3 des Paars B adressierten Lese-/Schreibrequest
(R/W2) empfängt
(S2010), während
der Kanaladapter 210 das Batchsplitempfangsflag nach dem
Empfang eines an die Konsistenzgruppe 0 adressierten Splittingbefehls
von der Informationsverarbeitungsvorrichtung 100 EIN schaltet (S2004),
führt der
Kanaladapter 210 die Lese-/Schreibverarbeitung wie üblich aus
(S2011). Der Grund dafür
ist, dass für
die Konsistenzgruppe 0 in der Konsistenzgruppenmanagementtabelle 231 noch „AUS" in der Batchsplitempfangs-Spalte
gesetzt ist.
-
Wenn
jedoch der Kanaladapter 210 von der Informationsverarbeitungsvorrichtung 100 einen
an das Speichervolumen 3 des Paars B adressierten Lese-/Schreibrequest
(R/W3) empfangt (S2012), nachdem er das Batchsplitempfangsflag EIN
geschaltet hat (S2004), splittet der Kanaladapter 210 das
Paar B (S2013), dann führt
er die Lese/Schreibverarbeitung aus (S2014).
-
Wie
vorstehend beschrieben, bezieht sich der Kanaladapter 210,
wenn er von der Informationsverarbeitungsvorrichtung 100 einen
Lese-/Schreibrequest erhält,
auf das Batchsplitempfangsflag, um zu überprüfen, ob es nach dem Beginn
des Zurücksetzens
des Paarzustand von jedem Paar in der Konsistenzgruppe ist oder
nicht, dass der Lese-/Schreibbefehl ausgegeben worden ist.
-
Wenn
der Kanaladapter 210 den Lese-/Schreibrequest (R/W4) nach
der Vervollständigung
des Splittens des Paars A in (S2005) empfängt, führt der Kanaladapter 210 die
Lese-/Schreibverarbeitung (S2016) aus. Der Grund dafür ist, dass „gesplittet" für das Paar
A in der Paarungsspalte in der Paarmanagementtabelle 232 gesetzt
ist und der Kanaladapter 210 weiß, dass „gesplittet" angibt, dass das
Paar A gesplittet ist.
-
In
diesem Zusammenhang wird keine Splitverarbeitung für das Paar
B in (S2005) durchgeführt, da
das Paar B bereits während
der Lese/Schreibverarbeitung in (S2013) gesplittet worden ist.
-
Da
das Batchsplitempfangsflag wie vorstehend beschrieben bereitgestellt
wird, ist der Synchronismus zwischen den Paarzustandsänderungen
aller Paare in einer Konsistenzgruppe zu dem „gesplittet" sichergestellt.
-
=== Konsistenzgruppenmanagementtabelle
===
-
Als
Nächstes
erfolgt eine Beschreibung einer anderen Ausführungsform der vorliegenden
Erfindung bezüglich
der Verwaltungsinformation in der Konsistenzgruppenmanagementtabelle 231.
-
In
dieser Ausführungsform
ist jeder Splitstartzeitpunkt in der Konsistenzgruppenmanagementtabelle 231,
wie in 8 gezeigt, aufge zeichnet. In dem in 8 gezeigten
Beispiel wird das Splitten von Paaren in der Konsistenzgruppe 0
um 12:00 begonnen. Wenn das Splitten aller Paare in der Konsistenzgruppe
0 abgeschlossen ist, wird die Beschreibung in der Splitstartzeitpunkt-Spalte
in „-" geändert.
-
Ein
Splitstartzeitpunkt wird mit einem Befehl spezifiziert, der von
der Informationsverarbeitungsvorrichtung 100 empfangen
wird. Ein solcher Splitstart kann auch so spezifiziert sein, dass
er sofort mit einem Befehl gestartet wird; bei einer solchen Gelegenheit
ist kein konkreter Zeitpunkt spezifiziert. In diesem Zusammenhang
wird die aktuelle Zeit in der Splitstartzeitpunkt-Spalte aufgezeichnet.
-
In
der vorliegenden Ausführungsform
vergleicht der Kanaladapter 210, wenn er einen Lese-/Schreibbefehl
von der Informationsverarbeitungsvorrichtung 100 erhält, den
in dem Lese-/Schreibbefehl (Request) aufgezeichneten Lese/Schreibbefehl-Ausgabezeitpunkt
mit dem Zeitpunkt, der in der Splitstartzeitpunkt-Spalte der Konsistenzgruppenmanagementtabelle 231 beschrieben ist.
Wenn der Befehlsausgabezeitpunkt später liegt, führt der
Kanaladapter 210 die Lese/Schreibverarbeitung nach dem
Ende des Splittens aus.
-
Deshalb
ist es möglich,
den Synchronismus unter den Zustandsänderungen von Paaren in einer Konsistenzgruppe
in das „gesplittet" sicherzustellen.
-
=== Verarbeitungsablauf ===
-
Als
Nächstes
wird zur Erläuterung
der Erfindung unter Bezugnahme auf das in 9 gezeigte Flussdiagramm
im Detail beschrieben, wie die vorstehenden Verarbeitungen möglicherweise
ausgeführt
werden können.
-
Die
Verarbeitungen werden durch die CPU 211 des Kanaladapters 210 unter
Verwendung des Steuerprogramms 214 ausgeführt, das
aus Codes zur Realisierung verschiedener Betriebsvorgänge besteht.
-
Zuerst
empfängt
der Kanaladapter 210 einen an eine Konsistenzgruppe adressierten
Paarsplitrequest (Splitbefehl) von der Informationsverarbeitungsvorrichtung 100 (S3000).
Der Kanaladapter 210 zeichnet dann den in dem Splitbefehl
aufgezeichneten Splitstartzeitpunkt in der Splitstartzeitpunkt-Spalte
der Konsistenzgruppenmanagementtabelle 231 auf, die in
dem gemeinsamen Speicher 230 gespeichert ist (S3001). Danach
vergleicht der Kanaladapter 210 den Splitstartzeitpunkt
mit der aktuellen Zeit, um zu überprüfen, ob
der Splitstartzeitpunkt vergangen ist oder nicht (S3003). Wenn das
Prüfergebnis JA
(vergangen) lautet, beginnt der Kanaladapter 210 die Zustandsänderung
eines nicht-gesplitteten Paars in der Konsistenzgruppe zu „gesplittet" (S3004). Konkret
gesagt, setzt der Kanaladapter 210 die Übereinstimmung zwischen Primär- und Sekundärvolumen des
Paars zurück
und unterdrückt
die Aktualisierung (Update) der Daten in dem Sekundärvolumen
mit den in dem Primärvolumen
geschriebenen Daten. Dann ändert
der Kanaladapter 210 die Beschreibung für das Paar in der Paarzustandspalte
in der Paarmanagementtabelle 232 zu „gesplittet" (S3005). Die obigen
Verarbeitungen werden für
alle Paare in der Konsistenzgruppe wiederholt. Wenn die Zustände aller Paare
in der Konsistenzgruppe in „gesplittet" geändert sind
(S3006), ändert
der Kanaladapter 210 die Beschreibung für das Paar in der Splitstartzeitpunkt-Spalte
zu „-" und verlässt die
Verarbeitung (S3007).
-
Wenn
der Kanaladapter 210 während
der obigen Verarbeitung von der Informationsverarbeitungsvorrichtung 100 einen
Lese-/Schreibrequest empfängt, überprüft der Kanaladapter 210,
ob der Request an ein nicht-gesplittetes Paar adressiert ist oder
nicht, das heißt,
ein „gepaartes” Speichervolumen
(die Übereinstimmung
wird nicht zurückgesetzt) (S3008).
Wenn das Prüfergebnis
JA (adressiert) lautet, vergleicht der Kanaladapter 210 den
in dem Befehl aufgezeichneten Befehlsausgabezeitpunkt mit dem Splitstartzeitpunkt
(S3010). Wenn der Befehlsausgabezeitpunkt später liegt, ändert der Kanaladapter 210 den
Paarzustand zu „gesplittet" (S3011), dann ändert er
die Beschreibung für
das Paar in der Paarzustandspalte in der Paarmanagementtabelle 232 in „gesplittet" (S3012). Danach
führt der
Kanaladapter 210 die Lese-/Schreibverarbeitung (Eingabe-/Ausgabeverarbeitung)
aus (S3013).
-
Wenn
andererseits der Lese-/Schreibbefehl in (S3008) an ein gesplittetes
Paar adressiert wird, d. h. ein „gesplittetes" Speichervolumen
oder der im Request aufgezeichnete Befehlsausgabezeitpunkt früher liegt
als der Splitstartzeitpunkt, liest/schreibt der Kanaladapter 210 Daten
aus dem/in das Speichervolumen (S3009).
-
Deshalb
ist es möglich,
den Synchronismus unter den Zustandsänderungen der Paare in einer Konsistenzgruppe
zu „gesplittet" sicherzustellen.
-
In
dem in 9 gezeigten Flussdiagramm, wenn der Kanaladapter 210 einen
Lese-/Schreibrequest von der Informationsverarbeitungsvorrichtung 100 empfangt,
während
er Paare in einer Konsistenzgruppe sequentiell splittet, überprüft der Kanaladapter 210,
ob der Request an ein nicht-gesplittetes Speichervolumen adressiert
ist oder nicht (S3008) und führt
die Lese-/Schreibverarbeitung aus (S3009, S3013). Gemäß der Erfindung
jedoch unterdrückt
der Kanaladapter 210 die Ausführung der Lese-/Schreibverarbeitung
selbst dann, wenn er einen Lese-/Schreibrequest von der Informationsverarbeitungsvorrichtung 100 empfängt, während er
Paare in einer Konsistenzgruppe sequentiell splittet, wie oben beschrieben.
Der Kanal adapter 210 führt
die Lese-/Schreibverarbeitung nach Vervollständigung des Splittens aller
Paare in der Konsistenzgruppe und Ändern der Beschreibung für das Paar
in der Splitstartzeitpunkt-Spalte zu „-" aus.
-
In
der vorliegenden Ausführungsform
werden Konsistenzgruppen durch Speichereinrichtungen 300 gebildet,
die jeweils mit demselben Speichereinrichtungscontroller verbunden
sind. Jedoch ist die vorliegende Erfindung nicht auf diese Ausführungsform
beschränkt.
In der vorliegenden Ausführungsform
sollten Konsistenzgruppen bevorzugt durch Speichereinrichtungen 300 gebildet
werden, die jeweils mit einer Mehrzahl von Speichereinrichtungscontrollern
verbunden sind. In diesem Zusammenhang kann eine Konsistenzgruppe über einer Mehrzahl
von Speichereinrichtungscontrollern 200 gebildet werden,
die miteinander in Kommunikation kommen, um die Konsistenzgruppenmanagementtabelle 231 und
die Paarmanagementtabelle 232 zu erzeugen. Die Konsistenzgruppenmanagementtabelle 231 und
die Paarmanagementtabelle 232 können durch einen der Speichereinrichtungscontroller 200 gemanagt
und mit anderen Speichereinrichtungscontrollern 200 geteilt
werden, oder jeder jener Speichereinrichtungscontroller verwaltet
dieselbe Tabelle. Des Weiteren sollten Volumen, die durch eine Mehrzahl
von Speichereinrichtungscontrollern 200 gesteuert werden,
bei dieser Ausführungsform
vorzugsweise gepaart sein. In diesem Zusammenhang könnte ein
Paar über
einer Mehrzahl von Speichereinrichtungscontrollern 200 gebildet
werden und diese Speichereinrichtungscontroller 200 kommen
miteinander in Kommunikation, um die Konsistenzgruppenmanagementtabelle 231 und
die Paarmanagementtabelle 232 zu erzeugen. In diesem Zusammenhang können die
Konsistenzgruppenmanagementtabelle 231 und die Paarmanagementtabelle 232 durch
einen der Speichereinrichtungscontroller 200 gemanagt und
mit anderen Speichereinrich tungscontrollern 200 geteilt
werden, oder diese Speichereinrichtungscontroller verwalten jeweils
dieselbe Tabelle.
-
Obwohl
die Ausführungsformen
der vorliegenden Erfindung beschrieben worden sind, dient die Beschreibung
nur zu Veranschaulichungszwecken, und es versteht sich, dass Änderungen
und Variationen vorgenommen werden können, ohne vom Umfang der folgenden
Ansprüche
abzuweichen.