DE602004005666T2 - Speichervorrichtung für asynchrone entfernte Datenspiegelung - Google Patents

Speichervorrichtung für asynchrone entfernte Datenspiegelung Download PDF

Info

Publication number
DE602004005666T2
DE602004005666T2 DE602004005666T DE602004005666T DE602004005666T2 DE 602004005666 T2 DE602004005666 T2 DE 602004005666T2 DE 602004005666 T DE602004005666 T DE 602004005666T DE 602004005666 T DE602004005666 T DE 602004005666T DE 602004005666 T2 DE602004005666 T2 DE 602004005666T2
Authority
DE
Germany
Prior art keywords
data
disk controller
primary
dkc
update data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE602004005666T
Other languages
English (en)
Other versions
DE602004005666D1 (de
Inventor
Yoshiaki c/o Hitachi Ltd Muto
Hisaharu c/o Hitachi Ltd Takeuchi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of DE602004005666D1 publication Critical patent/DE602004005666D1/de
Application granted granted Critical
Publication of DE602004005666T2 publication Critical patent/DE602004005666T2/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2071Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
    • G06F11/2074Asynchronous techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2064Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring while ensuring consistency

Description

  • Die Anmeldung beansprucht die Priorität aus der am 23. März 2004 eingereichten japanischen Patentanmeldung Nr. JP 2004-85032.
  • Die Erfindung betrifft Speichervorrichtungen zum Ausführen asynchroner Fernkopiervorgänge zwischen Primär- und Sekundär-Plattensteuerungen. Insbesondere betrifft die Erfindung Techniken, die für Adaption an die Übertragung von Aktualisierungsdaten wirkungsvoll sind.
  • Herkömmlicherweise werden beim Ausführen eines asynchronen Fernkopiervorgangs zwischen einer Primär-Plattensteuerung einer Speichervorrichtung und einer Sekundär-Plattensteuerung derselben, mittels Aktualisierungsdaten von der Primär-Plattensteuerung an die Sekundär-Plattensteuerung, alle Schreibdaten an die Primär-Plattensteuerung übertragen.
  • Die Veröffentlichung Nr. 2003-202962 zu einer ungeprüften japanischen Patentanmeldung offenbart eine Speichervorrichtung, die dazu vorgeschlagen wurde, das Ziel einer Minimierung einer Beeinträchtigung des Funktionsvermögens selbst bei erhöhtem Abstand zwischen Steuerungen zu erreichen. Um dieses Ziel zu erreichen, werden, nachdem eine Abschlussmitteilung betreffend Schreibdaten von der Primär-Plattensteuerung zurückgeliefert wurde, die Schreibdaten direkt an eine zweite Sekundär-Plattensteuerung übertragen, und diese speichert die empfangenen Daten in einen nichtflüchtigen Speicher ein, wodurch eine Datensicherung ausgeführt wird. Außerdem wird eine vorbestimmte Referenzzeit eingestellt, um es zu ermöglichen, dass alle vor der Referenzzeit auftretenden Schreibdaten gesichert werden, und um zu ermöglichen, dass alle nach diesen Zeitpunkt auftretenden Daten aufgegeben werden.
  • EP 1150210 A offenbart ein Fernkopiersystem, das Daten in Plattenuntersysteme einer Fernzentrale kopiert, um sie in den Plattenuntersystemen der Hauptzentrale zu duplizieren, wobei die Plattenuntersysteme Seriennummern und Zeitpunkte für die Daten vergeben, was gleichzeitig mit dem Schreiben der Daten in die Speichervorrichtungen im Plattenuntersystem erfolgt, und wobei sie diese Daten an die anderen Plattenuntersysteme übertragen, die die zwei oder mehr Daten in der Abfolge der Seriennummern anordnen, den ältesten Zeitpunkt innerhalb des letzten Zeitpunkts erkennen, wie er für jedes der Plattenuntersysteme in Verbindung mit den Plattenuntersystemen vergeben wurde, und die Daten, die mit einem Zeitpunkt versehen sind, der nicht später als der erkannte älteste Zeitpunkt liegt, sind die Objekte für die Schreibvorgänge in jede der Plattenspeichervorrichtungen.
  • Proceedings of USENIX Technical Conference (San Antonio, TX), Seiten 253–268, Juni 2003 enthält einen Artikel, der ein als Seneca bezeichnetes neues Protokoll zur asynchronen Fernspiegelung offenbart, das eine Verbindung von Schreibvorgängen, asynchrone Ausbreitung und Zustellung in Reihenfolge unterstützt.
  • Bei der herkömmlichen Speichervorrichtung bestehen jedoch die nachfolgend beschriebenen Probleme. Wenn beim Fernkopieren Aktualisierungsdaten von der Primär-Plattensteuerung an die Sekundär-Plattensteuerung zu übertragen sind, werden alle Schreibdaten als Aktualisierungsdaten an die Primär-Plattensteuerung übertragen. Aus diesem Grund treten bei einem Zugriffsmuster, bei dem Daten wiederholt im selben Datensatz überschrieben werden, die übertragenen Daten zu, was zu Problemen wie einer I/O-Verzögerung führt.
  • Bei der in der Veröffentlichung Nr. 2003-202962 zu einer ungeprüften japanischen Patentanmeldung offenbarten Vorrichtung bestehen ähnliche Probleme. Das heißt, dass Schreibdaten für die Primär-Plattensteuerung an die Sekundär-Plattensteuerung übertragen werden und im nichtflüchtigen Speicher derselben gespeichert werden. Infolgedessen nehmen, bei einem Übertragungsmuster, bei dem Daten wiederholt im selben Datensatz überschrieben werden, die Übertragungsdaten zu, was zu Problemen wie einer I/O-Verzögerung führt.
  • Es ist eine Aufgabe der Erfindung, eine Speichervorrichtung zu schaffen, bei der die Datenmenge von Übertragungsdaten von einer Sekundär-Plattensteuerung an eine Primär-Plattensteuerung bei einem Fernkopiervorgang verringert werden kann und auch für Korrektheit der Daten gesorgt werden kann.
  • Außerdem ist es eine andere Aufgabe der Erfindung, eine Speichervorrichtung zu schaffen, bei der die Erkennung eines Verlaufspunkts beim Klären der Datenkorrektheit durch eine Sekundär-Plattensteuerung leicht ausgeführt werden kann.
  • Eine Speichervorrichtung gemäß der Erfindung verfügt über eine Primär-Plattensteuerung mit einem Cache-Speicher und einem Steuerspeicher, wobei sie mit einem Hostcomputer verbunden ist; eine mit der Primär-Plattensteuerung verbundene Platteneinrichtung; eine Sekundär-Plattensteuerung mit einem Cache-Speicher und einem Steuerspeicher; und eine mit der Sekundär-Plattensteuerung verbundene Platteneinrichtung, wobei der Cache-Speicher der Primär-Plattensteuerung über einen ersten Bereich zum Speichern von in die Platteneinrichtung zu schreibenden Aktualisierungsdaten und einen zweiten Bereich zum Speichern von an die Sekundär-Plattensteuerung zu übertragenden Aktualisierungsdaten verfügt; wobei die Primär-Plattensteuerung Zeitmarkierungen und Annahmenummern für vom Hostcomputer gelieferte Aktualisierungsdaten bereitstellt, die in den zweiten Bereich des Cache-Speichers als an die Steuerspeicher zu übertragende Aktualisierungsdaten einzuspeichern sind, sie die gespeicherten Aktualisierungsdaten an die Sekundär-Plattensteuerung überträgt und sie einen Fernkopiervorgang an die Sekundär-Plattensteuerung ausführt. Die Speichervorrichtung führt in der Primär-Plattensteuerung ein Überschreiben von Aktualisierungsdaten in denselben Datensätzen während einer spezifizierten Zeit zwischen einem vorgegebenen ersten Basispunkt und einem vorgegebenen zweiten Basispunkt hinsichtlich der im zweiten Bereich des Cache-Speichers gespeicherten Aktualisierungsdaten aus, die an die zweite Sekundär-Plattensteuerung zu übertragen sind; und in der Sekundär-Plattensteuerung sorgt sie für eine Handhabung der Aktualisierungsdaten zwischen dem ersten Basispunkt und dem zweiten Basispunkt als echten, korrekten Daten, wobei beim Aktualisieren von Aktualisierungsdaten im selben Datensatz wie bei im Cache-Speicher der Primär-Plattensteuerung gespeicherten Aktualisierungsdaten Information zur Anzahl der Überschreibvorgänge betreffend die Aktualisierungsdaten im Steuerspeicher abgespeichert wird; und in der Sekundär-Plattensteuerung die Aktualisierungsdaten entsprechend der Information der Zeitmarkierung, der Annahmenummer und der Anzahl der Überschreibvorgänge verifiziert wird.
  • Vorzugsweise sind in der Speichervorrichtung gemäß der Erfindung ein Modus zum Überschreiben und ein Modus ohne Überschreiben von Aktualisierungsdaten im selben Datensatz wie bei im Cache-Speicher der Primär-Plattensteuerung gespeicherten Aktualisierungsdaten vorhanden, wobei beim Empfangen eines Modusumschaltbefehls vom Hostcomputer Modusumschaltinformation im Cache-Speicher der Primär-Plattensteuerung abgespeichert werden kann, wobei sie an die Sekundär-Plattensteuerung übertragen werden kann; und wobei in der Sekundär- Plattensteuerung der Betriebsmodus entsprechend der von der Primär-Plattensteuerung übertragenen Modusumschaltinformation geändert wird.
  • In den Zeichnungen ist Folgendes dargestellt:
  • 1 ist eine Konfigurationsansicht, die die Konfiguration einer Speichervorrichtung gemäß einer ersten Ausführungsform der Erfindung zeigt;
  • 2 ist eine Ansicht, die Schreibdatenverwaltungsinformation in der Speichervorrichtung gemäß der ersten Ausführungsform der Erfindung zeigt;
  • 3 ist eine erläuternde Ansicht zum Erläutern einer üblichen Schreibdaten-Übertragungsoperation;
  • 4 ist eine erläuternde Ansicht zum Erläutern einer SchreibdatenÜbertragungsoperation bei der Speichervorrichtung gemäß der ersten Ausführungsform der Erfindung;
  • 5 ist ein Flussdiagramm zum Veranschaulichen einer Operation zum Speichern von Schreibdaten seitens einer Primär-DKC (dies steht für "Plattensteuerung") der Speichervorrichtung in einen Cache-Speicher gemäß der ersten Ausführungsform der Erfindung;
  • 6 ist ein Flussdiagramm zum Veranschaulichen der Operation einer Verarbeitung mit asynchronem Zyklus seitens der Primär-DKC der Speichervorrichtung gemäß der ersten Ausführungsform der Erfindung;
  • 7 ist ein Flussdiagramm zum Veranschaulichen einer Operation zum Speichern von Schreibdaten seitens einer Sekundär-DKC der Speichervorrichtung einen Cache-Speicher gemäß der ersten Ausführungsform der Erfindung;
  • 8 ist eine erläuternde Ansicht zum Erläutern einer Verifizieroperation für eine Annahmenummer bei der Speichervorrichtung gemäß der ersten Ausführungsform der Erfindung;
  • 9 ist eine erläuternde Ansicht zum Erläutern einer Schreibdaten-Übertragungsoperation bei der Speichervorrichtung gemäß der zweiten Ausführungsform der Erfindung;
  • 10 ist ein Flussdiagramm zum Veranschaulichen einer Operation zum Speichern von Schreibdaten seitens der Primär-DKC der Speichervorrichtung in den Cache-Speicher gemäß der zweiten Ausführungsform der Erfindung;
  • 11 ist ein Flussdiagramm zum Veranschaulichen der Operation einer Verarbeitung gemäß einem asynchronen Zyklus seitens der Primär-DKC der Speichervorrichtung gemäß der zweiten Ausführungsform der Erfindung;
  • 12 ist ein Flussdiagramm zum Veranschaulichen der Operation einer Synchronisierungspunktspezifizierung durch einen Hostcomputer der Speichervorrichtung gemäß der zweiten Ausführungsform der Erfindung;
  • 13 ist ein Flussdiagramm zum Veranschaulichen der Operation zum Speichern von Schreibdaten seitens der Sekundär-DKC der Speichervorrichtung in den Cache-Speicher gemäß der zweiten Ausführungsform der Erfindung;
  • 14 ist eine erläuternde Ansicht zum Erläutern einer Schreibdaten-Übertragungsoperation der Speichervorrichtung gemäß einer dritten Ausführungsform der Erfindung;
  • 15 ist ein Flussdiagramm zum Veranschaulichen der Operation zum Speichern von Schreibdaten seitens der Primär-DKC der Speichervorrichtung in den Cache-Speicher sowie der Datenübertragungsoperation gemäß der dritten Ausführungsform der Erfindung;
  • 16 ist ein Flussdiagramm zum Veranschaulichen der Operation zum Speichern von Schreibdaten seitens der Sekundär-DKC der Speichervorrichtung in den Cache-Speicher gemäß der dritten Ausführungsform der Erfindung;
  • 17 ist eine erläuternde Ansicht zum Erläutern einer Modusumschaltoperation der Speichervorrichtung gemäß einer fünften Ausführungsform der Erfindung;
  • 18 ist eine erläuternde Ansicht zum Erläutern einer Modusumschaltoperation seitens der Primär-DKC der Speichervorrichtung gemäß der fünften Ausführungsform der Erfindung;
  • 19 ist ein Flussdiagramm zum Veranschaulichen der Operation zum Speichern von Schreibdaten seitens der Sekundär-DKC der Speichervorrichtung in den Cache-Speicher gemäß der fünften Ausführungsform der Erfindung;
  • 20 ist eine erläuternde Ansicht zum Erläutern einer Modusumschaltoperation einer Speichervorrichtung gemäß einer sechsten Ausführungsform der Erfindung; und
  • 21 ist ein Flussdiagramm zum Veranschaulichen der Operation zum Speichern von Schreibdaten seitens der Sekundär-DKC der Speichervorrichtung in den Cache-Speicher gemäß der sechsten Ausführungsform der Erfindung.
  • Unter Bezugnahme auf die beigefügten Zeichnungen werden nachfolgend Ausführungsformen der Erfindung detailliert beschrieben. Allgemein sind in allen Zeichnungen, auf die bei der Beschreibung der Ausführungsformen Bezug genommen wird, dieselben oder ähnliche Teile und Elemente mit denselben Zahlen/Symbolen gekennzeichnet, und zugehörige wiederholte Beschreibungen werden weggelassen.
  • (ERSTE AUSFÜHRUNGSFORM)
  • <Konfiguration der Speichervorrichtung>
  • Unter Bezugnahme auf die 1 wird nachfolgend die Konfiguration einer Speichervorrichtung gemäß einer ersten Ausführungsform beschrieben. Die 1 ist eine Konfigurationsansicht, die die Konfiguration einer Speichervorrichtung gemäß einer ersten Ausführungsform der Erfindung zeigt.
  • Gemäß der 1 besteht die Speichervorrichtung aus einer Primär-Plattensteuerung 100 (die nachfolgend als "Primär-DKC" bezeichnet wird), mit der ein Hostcomputer 120 verbunden ist, mindestens einer Platteneinrichtung 110 in Verbindung mit der Primär-DKC 100, einer Sekundär-Plattensteuerung 200 (die nachfolgend als "Sekundär-DKC" bezeichnet wird) und mindestens einer Platteneinrichtung 210 in Verbindung mit der Sekundär-DKC 200.
  • Die Primär-DKC 100 verfügt über einen primären Schreibdaten-Annahmeabschnitt 101, einen primären Schreibdaten-Sendeabschnitt 102, einen Cache-Speicher 103, einen Steuerspeicher 104 und einen Plattendaten-Sende/Empfangs-Abschnitt 108.
  • Der Cache-Speicher 103 speichert vom Cache-Speicher 120 gelieferte Schreibdaten 151, die durch den primären Schreibdaten-Annahmeabschnitt 101 empfangen werden. Die so im Cache-Speicher 103 eingespeicherten Schreibdaten 151 werden dann in die Platteneinrichtung 110 geschrieben.
  • Der Steuerspeicher 104 speichert die zum Verwalten der Schreibdaten 151 verwendete Schreibdatenverwaltungsinformation 105; einen zum Verwalten von Annahmenummer (SEQ#) der Schreibdaten 151 verwendeten SEQ#-Masterdatensatz 106; sowie Basispunktverwaltungsinformation 107, die zum Verwalten von Basispunkten zwischen der DKC 100 und der Sekundär-DKC 200 verwendet wird.
  • Der Plattendaten-Sende/Empfangs-Abschnitt 108 führt in Verbindung mit der Platteneinrichtung 110 Daten-Sende/Empfangs-Vorgänge aus.
  • Busse und Switches verbinden beispielsweise den primären Schreibdaten-Annahmeabschnitt 101, den primären Schreibdaten-Sendeabschnitt 102, den Cache-Speicher 103, den Steuerspeicher 104 und den Plattendaten-Sende/Empfangs-Abschnitt 108.
  • Der Sekundär-DKC 200 verfügt über einen sekundären Schreibdaten-Annahmeabschnitt 201, einen Cache-Speicher 202, einen Steuerspeicher 203, einen sekundären Schreibdatenkorrektheitaufrechterhalteabschnitt 204 sowie einen Plattendaten-Sende/Empfangs-Abschnitt 208.
  • Der Cache-Speicher 202 speichert vom primären Schreibdaten-Sendeabschnitt 102 der Primär-DKC 100 gelieferte Schreibdaten 151 ein, die vom sekundären Schreibdaten-Annahmeabschnitt 201 empfangen wurden. Die so im Cache-Speicher 202 gespeicherten Schreibdaten 151 werden dann sekundären Schreibdaten-Annahmeabschnitt 201.
  • Der Steuerspeicher 202 speichert zum Verwalten der Schreibdaten 151 verwendete Schreibdatenverwaltungsinformation 105 sowie zum Verwalten der Basispunkte zwischen der DKC 100 und der Sekundär-DKC 200 verwendete Basispunktverwaltungsinformation 107.
  • Der Plattendaten-Sende/Empfangs-Abschnitt 208 führt Daten-Sende/Empfangs-Vorgänge in Verbindung mit der Platteneinrichtung 210 aus.
  • Busse und Switches verbinden beispielsweise den sekundären Schreibdaten-Annahmeabschnitt 201, den Cache-Speicher 202, den Steuerspeicher 203, den sekundären Schreibdatenkorrektheitaufrechterhalteabschnitt 204 und den Plattendaten-Sende/Empfangs-Abschnitt 208.
  • Bei der vorliegenden Ausführungsform führt die oben beschriebene Speichervorrichtung einen Fernkopiervorgang für Datenkorrektheit pro Aktualisierungsdatensatzeinhet zwischen der Plattensteuerung 100 und der Sekundär-DKC 200 aus.
  • <Schreibdatenverwaltungsinformation>
  • Unter Bezugnahme auf die 2 wird die in den Steuerspeichern 104 und 203 abzuspeichernde Schreibdatenverwaltungsinformation 105 nachfolgend beschrieben. Die 2 ist eine Ansicht, die ein Beispiel von Schreibdatenverwaltungsinformation zeigt.
  • Gemäß der 2 wird die Schreibdatenverwaltungsinformation 105 entsprechend Schreibdaten 151 erzeugt, und sie besteht aus einer Platteneinrichtungsadresse 130, einer Schreibadresse 131, einem Schreibzeitpunkt 132, einer Annahmenummer 133, einem Schreibdatenzeiger 134 und einem Übertragungserfordernisbit 135.
  • Die Platteneinrichtungsadresse 130 und die Schreibadresse 131 bilden Information, die die Positionen von Schreibdaten in den Platteneinrichtungen 110 und 210 spezifiziert und die als Anweisungen mit einer vom Hostcomputer 120 zu liefernden Schreibanforderung 150 bereitgestellt wird.
  • Information zum Schreibzeitpunkt 132 wird in der Schreibanforderung 150 als Zeitmarkierung 152 ("T/S") bereitgestellt, die den Schreibzeitpunkt für die Schreibdaten 151 vom Hostcomputer 120 repräsentiert. Wenn die Zeitmarkierung 152 nicht vom Hostcomputer 120 bereitgestellt wird, wird durch die Primär-DKC 100 ein Timer in dieser bereitgestellt.
  • Die Annahmenummer 133 ist Information, die der SEQ#-Masterdatensatz 106 für Schreibdaten 151 in der Abfolge angenommener Schreibdaten 151 unter Bezugnahme auf ihn bereitstellt.
  • Der Schreibdatenzeiger 134 bildet Information eines Zeigers auf entsprechende Schreibdaten 151.
  • Gemeinsam mit den Schreibdaten 151 werden diese Einzelinformationen in den Cache-Speichern 103 und 202 abgespeichert und für verschiedene Operationen verwendet, wie das Schreiben von Schreibdaten 151 in die Platteneinrichtungen 110 und 210, das Übertragen von Schreibdaten 151 von der Primär-DKC 100 an die Sekundär-DKC 200, ein Neuordnen einzelner Schreibdaten 151, und ein Prüfen auf das Auftreten eines Fehlens von Schreibdaten 151 im Sekundär-DKC 200.
  • Das Übertragungserfordernisbit 135 stellt Information dar, die anzeigt, ob Schreibdaten 151 von der Primär-DKC 100 an die Sekundär-DKC 200 zu übertragen sind. Genauer gesagt, wird beispielsweise dann, wenn das Übertragungserfordernisbit 135 "EIN" ist, bestimmt, dass Schreibdaten 151 von der Primär-DKC 100 an die Sekundär-DKC 200 zu übertragen sind und die Schreibanforderung 150 von der Primär-DKC 100 an die Sekundär-DKC 200 zu übertragen ist. Dann wird, nach Abschluss der Übertragung, das den Schreibdaten 151 entsprechende Übertragungserfordernisbit 135 auf "AUS" geschaltet.
  • <Übertragungsoperation für Daten von der Primär-DKC zur Sekundär-DKC>
  • Nachfolgend wird eine Übertragungsoperation betreffend die erste Ausführungsform der Erfindung für Schreibdaten von der Primär-DKC 100 zur Sekundär-DKC 200 beschrieben. Die 3 ist eine erläuternde Ansicht zum Erläutern einer üblichen Übertragungsoperation für Schreibdaten. Die 4 ist eine erläuternde Ansicht zum Erläutern einer Schreibdaten-Übertragungsoperation bei der Segment gemäß der ersten Ausführungsform der Erfindung. Die 5 ist ein Flussdiagramm zum Veranschaulichen der Operation des Einspeicherns von Schreibdaten seitens der Primär-DKC in den Cache-Speicher. Die 6 ist ein Flussdiagramm zum Veranschaulichen der Operation der Verarbeitung in einem asynchronen Zyklus seitens der Primär-DKC. Die 7 ist ein Flussdiagramm zum Veranschaulichen der Operation des Einspeicherns von Schreibdaten seitens der Sekundär-DKC in den Cache-Speicher.
  • Als Erstes wird eine übliche Schreibdaten-Übertragungsoperation beschrieben, bevor die Schreibdaten-Übertragungsoperation von der Primär-DKC in die Sekundär-DKC gemäß der vorliegenden Ausführungsform beschrieben wird.
  • Gemäß der üblichen Schreibdaten-Übertragungsoperation werden, wie es in der 3 dargestellt ist, seitens der Primär-DKC 100, gesondert von den in die Platteneinrichtung 110 zu schreibenden Daten, durch den Hostcomputer 120 bereitgestellte Zeitmarkierungen 152 für Aktualisierungs-I/O-Daten ((1), (2), (3), (4), (5, (6) und (7), wie in der 3 dargestellt) und durch die Primär-DKC bereitgestellte Annahmenummern 133 gemeinsam mit Schreibdaten 151 von Aktualisierungsdaten als an die Sekundär-DKC 200 zu übertragende Aktualisierungsdaten gespeichert (was nachfolgend als "Nebendatei" bezeichnet wird), und die Aktualisierungs-I/O-Daten werden abgeschlossen, bevor die Daten an die Sekundär-DKC 200 übertragen werden. Danach überträgt die Primär-DKC 100 die Nebendatei asynchron zur Host-I/O.
  • In der Sekundär-DKC 200 werden die Daten von der angenommenen Nebendatei in zeitserieller Reihenfolge auf Grundlage des Schreibzeitpunkts 132 und der Annahmenummer 133 sortiert, und es wird die Korrektheit der Daten bis zu einem Verlaufspunkt (beispielsweise bis B' seitens der Sekundär-DKC, wie in der 3 dargestellt) überprüft.
  • Bei dieser Operation werden selbst bei einem Zugriffsmuster (wie A, A' und A'''), das wiederholt im selben Drehzahl in der Primär-DKC 100 überschrieben wird, alle Daten als Aktualisierungs-I/O-Daten in der Nebendatei abgespeichert und an die Sekundär-DKC 200 übertragen.
  • Gemäß der 4 kann, während einer spezifizierten Zeit von einem Basispunkt 1 bis zu einem Basispunkt 2, in einer Nebendatei im Cache-Speicher 103 der Primär-DKC 100 derselbe Drehzahl über einen Drehzahl geschrieben werden, der noch nicht an die Sekundär-DKC 200 übertragen wurde (in der 4 können beispielsweise die Aktualisierungsdaten B' über den Datensatz B geschrieben werden).
  • Bei der Körper, die auf solche Weise aufgebaut ist, dass innerhalb der vorgegebenen Zeit ein Überschreiben von Datensätzen in der Nebendatei ermöglicht ist, können eine Verringerung der Übertragungsdatenmenge und eine Verringerung des Verarbeitungsoverheads realisiert werden.
  • In der Primär-DKC 100 erfolgt, während die Nebendateien sequenziell an die Sekundär-DKC 200 übertragen werden können, ein Überschreiben, wenn Aktualisierungs-I/O-Daten für einen Drehzahl in nicht übertragenen Datensätzen in der Nebendatei vorliegen. Die in der Sekundär-DKC 200 empfangene Nebendatei wird während der spezifizierten Zeit im Cache-Speicher 202 aufbewahrt, und nach dem Annehmen aller Daten während der spezifizierten Zeit wird die Nebendatei anschließend als echte Daten behandelt.
  • Die Basispunkte in der Primär-DKC 100 und der Sekundär-DKC 200 werden bei einer Anfangsoperation definiert, bei der zwischen der Primär-DKC 100 und der Sekundär-DKC 200 ein Fernpaar geschaffen wird.
  • Durch eine Operation seitens der Primär-DKC 100 wird, wie es in der 5 dargestellt ist, als Erstes, wenn Aktualisierungs-I/O-Daten vom Hostcomputer 120 vorliegen, ermittelt, ob eine Zeitmarkierung 152 dieser Aktualisierungs-I/O-Daten größer als ein aktueller Basispunkt 2 (Basispunkt 1 + spezifizierte Zeit) ist (in S100 ('S' = Schritt)). Wenn in S100 die Zeitmarkierung 152 als größer ermittelt wird, werden, da die Zeit nicht innerhalb der spezifizierten Zeit liegt, Aktualisierungsdaten innerhalb der Aktualisierungs-I/O-Daten zur Nebendatei hinzugefügt (in S103). Wenn in S100 die Zeitmarkierung 152 als dem Basispunkt 2 entsprechend oder kleiner ermittelt wird, wird ermittelt, ob in der Nebendatei ein den Aktualisierungs-I/O-Daten entsprechender Drehzahl vorhanden ist (in S101).
  • Wenn in S101 ermittelt wird, dass in der Nebendatei keine Aktualisierungs-I/O-Daten vorhanden sind, fügt, da dort kein Drehzahl zum Überschreiben enthalten ist, die Operation Aktualisierungsdaten in den Aktualisierungs-I/O-Daten zur Nebendatei hinzu (in S103). Wenn in S101 ermittelt wird, dass in der Nebendatei ein den Aktualisierungs-I/O-Daten entsprechender Drehzahl vorhanden ist, werden die Aktualisierungsdaten in den Aktualisierungs-I/O-Daten über die Daten im Drehzahl in der Nebendatei geschrieben (in S102).
  • Dann wird, seitens der Primär-DKC 100, wie es in der 6 dargestellt ist, durch eine Verarbeitung mit asynchronem Zyklus, eine Verarbeitung zur Übertragung an die Sekundär-DKC 200 für die Daten von der Oberseite der Nebendatei her ausgeführt (in S110).
  • Durch eine Operation seitens der Sekundär-DKC 200 wird, wie es in der 7 dargestellt ist, die Nebendatei durch die Primär-DKC 100 angenommen und als Nebendatei abgespeichert, die seitens der Sekundär-DKC 200 zu verarbeiten ist. Danach wird ermittelt, ob die Zeitmarkierung 152 größer als ein aktueller Basispunkt 2 (Basispunkt 1 + spezifizierte Zeit) ist (in S120). In diesem Fall werden die Nebendateien von der Primär-DKC 100 kontinuierlich angenommen, bis in S120 ermittelt wird, dass die Zeitmarkierung 152 größer als der Basispunkt 2 ist. Wenn in S120 ermittelt wird, dass die Zeitmarkierung 152 größer als der Basispunkt 2 ist, ermittelt die Operation, ob in den Annahmenummern 133 für Aktualisierungsdaten innerhalb der Zeit vom Basispunkt 1 bis zum Basispunkt 2 eine Weglassung vorhanden ist (in S121).
  • Wenn in S121 ermittelt wird, dass in den Annahmenummern 133 eine Weglassung vorhanden ist, wird, da von der Primär-DKC 100 nicht alle Aktualisierungsdaten innerhalb der Zeit vom Basispunkt 1 zum Basispunkt 2 angenommen wurden, die Nebendatei erneut von der Primär-DKC 100 angenommen und als Nebendatei abgespeichert, die in der Sekundär-DKC 200 zu verarbeiten ist.
  • Wenn in S121 ermittelt wird, dass in den Annahmenummern 133 keine Weglassung vorliegt, werden die Daten in der Zeit vom Basispunkt 1 bis zum Basispunkt 2 als echte, korrekte Daten an einen normalen Cache im Cache-Speicher 202 bewegt (in S122). Danach werden die Daten im normalen Cache in die Platteneinrichtung 210 geschrieben, wodurch die Daten zu echten, korrekten Daten werden.
  • <Verifizieroperation für Annahmenummern>
  • Unter Bezugnahme auf die 8 wird nachfolgend die Verifizieroperation für Annahmenummern 131 in S121 in der 7 beschrieben. Die 8 ist eine erläuternde Ansicht zum Erläutern der Verifizieroperation für die empfangenen Nummern.
  • Wenn derselbe Drehzahl in der Nebendatei im Cache-Speicher 103 der Primär-DKC 100 durch Aktualisierungsdaten überschrieben wird, ist es schwierig, zu ermitteln, ob seitens der Sekundär-DKC 200 alle Nebendateien angenommen wurden.
  • Dann wird, bei der vorliegenden Ausführungsform, mittels Verwaltungsinformation für die Nebendatei, Information zur Anzahl der Überschreibvorgänge an Datensätzen zusätzlich zur Zeitmarkierung 152 und zur Annahmenummer 133 bereitgestellt.
  • Beispielsweise werden beim in der 8 dargestellten Beispiel von Aktualisierungs-I/O-Daten ((1), (2), (3), (4) und (5) in der 8) vom Hostcomputer 120, da die durch (4) dargestellten Aktualisierungs-I/O-Daten (B') demselben Datensatz wie dem Datensatz B entsprechen, Aktualisierungsdaten in B' über den Datensatz B geschrieben. In diesem Fall ist die Annahmenummer 133 des Datensatzes B nicht die von B', und es wird die Annahmenummer des Datensatzes B aufrechterhalten, und "1" wird als Information zur Anzahl der Überschreibvorgänge am Datensatz B hinzugefügt.
  • Die Sekundär-DKC 200 nimmt, beim Verifizieren der Anzahl eingetroffener Datensätze (die beim in der 8 dargestellten Beispiel 3 ist) während der spezifizierten Zeit vom Basispunkt 1 bis zum Basispunkt 2 entsprechend den Annahmenummern 133, auf die Information zur Anzahl von Überschreibvorgängen (die beim in der 8 dargestellten Beispiel 1 ist), Bezug, und es erfolgt ein Vergleich mit einer ersten Annahmenummer 133 der Nebendatei in der nächsten spezifizierten Zeit (die beim in der 8 dargestellten Beispiel "5" ist). Dadurch kann verifiziert werden, ob alle Nebendateien angenommen wurden. Das heißt, dass die Anzahl eingetroffener Datensätze dann, wenn die Aktualisierungsdaten keine Überschreibungsdaten sind, entsprechend der erhaltenen Information dadurch verifiziert werden kann, dass die Information zur Anzahl eingetroffener Datensätze, die entsprechend den Aktualisierungsdaten 133 erhalten wird, und die Information zur Anzahl von Überschreibvorgängen an einzelnen Datensätzen addiert werden. Demgemäß kann, entsprechend der Anzahl eingetroffener Datensätze und der ersten Annahmenummer 133 der Nebendatei in der nächsten spezifizierten Zeit verifiziert werden, ob alle Nebendateien angenommen wurden.
  • Bei der vorliegenden Ausführungsform erfolgt ein Überschreiben in der spezifizierten Zeit vom Basispunkt 1 bis zum Basispunkt 2 in dieselben Datensätze, die noch nicht zur Sekundär-DKC 200 übertragen wurden und in der Nebendatei im Cache-Speicher 103 der Primär-DKC 100 vorhanden sind. Demgemäß kann beim Ausführen eines asynchronen Fernkopiervorgangs bei aufrechterhaltener Korrektheit der Daten in zeitlichen Reihen mit Einheiten eines Aktualisierungsdatensatzes selbst dann, wenn Aktualisierungs-I/O-Daten für dieselben Datensätze vorliegen, eine Verringerung der Übertragungsdaten und eine Verkleine rung des Verarbeitungsoverheads implementiert werden, während die Datenkorrektheit gewährleistet ist.
  • Als Beispiel sei angenommen, dass 1000 iops (Eingabe-/Ausgabeoperationen pro Sekunde) für Aktualisierungen vom Hostcomputer 120 für denselben Datensatz mit 4 kB/Datensatz erfolgen. In diesem Fall ist herkömmlicherweise eine Übertragung von 4 MB Daten (4 kB/Datensatz × 1000 iops = 4 MB) erforderlich; jedoch kann gemäß der vorliegenden Ausführungsform die Datenmenge auf maximal 4 kB verringere werden.
  • (ZWEITE AUSFÜHRUNGSFORM)
  • Bei dieser Ausführungsform wird anstelle der Basispunkte 1 und Basispunkte 2, die sowohl von Primär-DKC 100 als auch der Sekundär-DKC 200 bei der ersten Ausführungsform verwaltet werden, ein Synchronisierungspunkt, der den Zeitpunkt repräsentiert, zu dem das Überschreiben beendet wird, von der Primär-DKC 100 an die Sekundär-DKC 200 übertragen, und in der Sekundär-DKC 200 wird keine Basispunktverwaltung ausgeführt.
  • Die Speichervorrichtung dieser Ausführungsform hat dieselbe Konfiguration wie die erste Ausführungsform.
  • <Übertragungsoperation für Schreibdaten von der Primar-DKC an die Sekundär-DKC>
  • Nachfolgend wird eine Übertragungsoperation gemäß der zweiten Ausführungsform der Erfindung für Schreibdaten von der Primär-DKC 100 an die Sekundär-DKC 200 beschrieben. Die 9 ist eine erläuternde Ansicht zum Erläutern einer Schreibdaten-Übertragungsoperation der Speichervorrichtung gemäß der zweiten Ausführungsform der Erfindung. Die 10 ist ein Flussdiagramm zum Veranschaulichen der Operation zum Speichern von Schreibdaten seitens der Primär-DKC in den Cache-Speicher. Die 11 ist ein Flussdiagramm zum Veranschaulichen der Operation einer Verarbeitung mit asynchronem Zyklus seitens der Primär-DKC. Die 12 ist ein Flussdiagramm zum Veranschaulichen der Operation einer Synchronisierungspunktanweisung vom Hostcomputer. Die 13 ist ein Flussdiagramm zum Veranschaulichen der Operation des Speicherns von Schreibdaten seitens der Sekundär-DKC in den Cache-Speicher.
  • Gemäß der 9 kann, bei der Erfindung, innerhalb der Zeit vom Basispunkt 1 bis zum Synchronisierungspunkt (Datensatz S in der 9) derselbe Datensatz über einen Datensatz, der noch nicht an die Sekundär-DKC 200 übertragen wurde, in einer Nebendatei im Cache-Speicher 103 der Primär-DKC 100 überschrieben werden (in der 9 können beispielsweise die Aktualisierungsdaten B' über den Datensatz B geschrieben werden).
  • Bei der Konfiguration, die so aufgebaut ist, dass ein Überschreiben von Datensätzen in der Nebendatei innerhalb der vorgegebenen Zeit möglich ist, können eine Verringerung der Übertragungsdatenmenge und eine Verringerung des Verarbeitungsoverheads erzielt werden.
  • In der Primär-DKC 100 wird, während die Nebendateien sequenziell an die Sekundär-DKC 200 übertragen werden können, ein Überschreibvorgang dann ausgeführt, wenn Aktualisierungs-I/O-Daten für einen Datensatz in nicht übertragenen Datensätzen in der Nebendatei vorhanden sind. Die in der Sekundär-DKC 200 empfangene Nebendatei wird im Cache-Speicher 202 aufbewahrt, bis der Synchronisierungspunkt übertragen wird, und nachdem alle Daten in der Zeit angenommen wurden, bis der Synchronisierungspunkt übertragen wurde, wird die Nebendatei anschließend als echte Daten behandelt.
  • Die Basispunkte 1 in der Primär-DKC 100 und der Sekundär-DKC 200 werden bei einer Anfangsoperation zum Erzeugen eines Fernpaars zwischen der Primär-DKC 100 und der Sekundär-DKC 200 definiert. Danach wird der Datensatz 2, in der Primär-DKC 100, entsprechend einer spezifizierten Zeit verwaltet, ähnlich wie bei der ersten Ausführungsform, wobei der Synchronisierungspunkt nahe am Basispunkt 2 an die Sekundär-DKC 200 übertragen wird. Außerdem kann vom Hostcomputer 120 ein Synchronisierungspunkt wahlfrei spezifiziert werden, wodurch es einem Benutzer möglich ist, die Synchronisierung bei einer asynchronen Kopieroperation wahlfrei zu kontrollieren.
  • Durch eine Operation seitens der Primär-DKC 100 wird, wie es in der 10 dargestellt ist, als Erstes, wenn Aktualisierungs-I/O-Daten vom Hostcomputer 120 vorhanden sind, ermittelt, ob eine Zeitmarkierung 152 derselben größer als der aktuelle Basispunkt 2 (Basispunkt + spezifizierte Zeit) ist (in S130). Wenn in S130 die Zeitmarkierung 152 als größer ermittelt wird, wird für die Nebendatei ein Synchronisierungspunkt spezifiziert (in S133), und es werden Aktualisierungsdaten innerhalb der Aktualisierungs-I/O-Daten zur Nebendatei hinzugefügt (in S134). Wenn in S134 die Zeitmarkierung 152 als mit dem Basispunkt 2 übereinstimmend oder kleiner ermittelt wird, wird ermittelt, ob ein den Aktualisierungs-I/O-Daten entsprechender Datensatz in der Nebendatei vorhanden ist (in S131).
  • Wenn in S131 ermittelt wird, dass in der Nebendatei keine Aktualisierungs-I/O-Daten enthalten sind, da dort kein Datensatz zum Überschreiben vorhanden ist, fügt die Operation Aktualisierungsdaten in den Aktualisierungs-I/O-Daten zur Nebendatei hinzu (in S134). Wenn in S131 ermittelt wird, dass in der Nebendatei ein den Aktualisierungs-I/O-Daten entsprechender Datensatz vorhanden ist, werden die Aktualisierungsdaten in den Aktualisierungs-I/O-Daten über die Daten im Datensatz in der Nebendatei geschrieben (in S132).
  • Dann wird, seitens der Primär-DKC 100, wie es in der 11 dargestellt ist, durch einen asynchronen Zyklus die Verarbeitung der Datenübertragung zur Sekundär-DKC 200 für die Daten von der Oberseite der Nebendatei aus ausgeführt (in S140). Außerdem wird, durch eine Verarbeitung entsprechend einem asynchronen Zyklus, ermittelt, ob die aktuelle Zeit größer als ein aktueller Basispunkt 2 (Basispunkt 1 + spezifizierte Zeit) ist (in S141). Wenn die aktuelle Zeit größer als der aktuelle Basispunkt 2 (Basispunkt 1 + spezifizierte Zeit) ist, wird für die Nebendatei ein Synchronisierungspunkt spezifiziert (in S142).
  • Die Spezifikationen im in der 10 dargestellten S133 und im in der 11 dargestellten S142 werden jeweils nahe dem Zeitpunkt des durch die Primär-DKC 100 verwalteten Basispunkts 2 angewandt. Entsprechend einer beliebigen der Spezifikationen wird der Synchronisierungspunkt spezifiziert; und nach der Spezifizierung des Synchronisierungspunkts wird der spezifizierte Punkt als Basispunkt 1 verwaltet, um dadurch eine Doppelspezifizierung von Synchronisierungspunkten zu verhindern.
  • Durch eine Operation beim Empfangen einer Synchronisierungsanforderung durch den Hostcomputer 120 wird, nach diesem Vorgang, zu diesem Zeitpunkt ein Synchronisierungspunkt für die Nebendatei spezifiziert, wie es in der 12 dargestellt ist.
  • Durch eine Operation seitens der Sekundär-DKC 200 wird, wie es in der 13 dargestellt ist, die Nebendatei durch die Primär-DKC 100 angenommen und als seitens der Sekundär-DKC 200 zu verarbeitende Nebendatei abgespeichert. Dann wird ermittelt, ob die Nebendatei eine solche eines Synchronisierungspunkts ist (in S160). Die Nebendateien werden kontinuierlich von der Primär-DKC 100 angenommen, bis in S160 eine Nebendatei ermittelt wird, die eine solche eines Synchronisierungspunkts ist. Wenn in S160 ermittelt wird, dass eine Nebendatei eine solche eines Synchronisierungspunkts ist, ermittelt die Operation, ob die Annahmenummern 133 zwischen dem Basispunkt 1 bis zum Synchronisierungspunkt angenommen wurden (in S161).
  • Wenn in S161 ermittelt wird, dass nicht alle Annahmenummern 133 empfangen wurden, wird die Nebendatei erneut von der Primär-DKC 100 angenommen und als in der Sekundär-DKC 200 zu verarbeitende Nebendatei abgespeichert (in S162).
  • Wenn in S161 ermittelt wird, dass alle Annahmenummern 133 angenommen wurden, werden Daten im Zeitraum vom Basispunkt 1 bis zum Basispunkt 2 als echte, korrekte Daten in einen normalen Cache im Cache-Speicher 202 bewegt (in S163). Danach werden die Daten im normalen Cache in die Platteneinrichtung 210 geschrieben, wodurch sie zu echten, korrekten Daten starten.
  • Bei der vorliegenden Ausführungsform erfolgt ein überschreiben während der spezifizierten Zeit vom Basispunkt 1 bis zum Basispunkt 2 für einige Datensätze, die nicht an die Sekundär-DKC 200 übertragen wurden und die in der Nebendatei im Cache-Speicher 103 der Primär-DKC 100 vorhanden sind. Demgemäß können dann, wenn ein asynchroner Fernkopiervorgang zeitseriell mit Einheiten eines Aktualisierungsdatensatzes unter Aufrechterhaltung der Datenkorrektheit ausgeführt wird, selbst dann, wenn es sich um Aktualisierungs-I/O-Daten für dieselben Datensätze handelt, eine Verringerung der Übertragungsdatenmenge und eine Verkleinerung des Verarbeitungsoverheads realisiert werden, während die Datenkorrektheit gewährleistet ist.
  • Als Beispiel sei angenommen, dass 1000 iops für Aktualisierungen vom Hostcomputer 120 für denselben Datensatz mit 4 kB/Datensatz erfolgen. In diesem Fall ist herkömmlicherweise eine Übertragung von 4 MB Daten (4 kB/Datensatz × 1000 iops = 4 MB) erforderlich; jedoch kann gemäß der vorliegenden Ausführungsform die Datenmenge auf maximal 4 kB verringert werden.
  • Ferner kann in der Sekundär-DKC 200 ein Verlaufspunkt dadurch erfasst werden, dass alleine der Synchronisierungspunkt erfasst wird, ohne dass Basispunkte verwaltet werden, und ein Benutzer ist in die Lage versetzt, den Synchronisierungspunkt vom Hostcomputer 120 wahlfrei zu kontrollieren. Wenn beispielsweise ein Synchronisierungspunkt unmittelbar nach einer Übergabe an ein DBMS (Datenbankverwaltungssystem) spezifiziert wird, kann verifiziert werden, dass die Übergabe in der Sekundär-DKC 200 eingetroffen ist.
  • (DRITTE AUSFÜHRUNGSFORM)
  • Diese Ausführungsform ist so aufgebaut, dass Aktualisierungsdaten nicht asynchron von der Primär-DKC 100 an die Sekundär-DKC 200 übertragen werden, und dass die Nebendatei während der spezifizierten Zeit vom Basispunkt 1 bis zum Basispunkt 2 nicht übertragen wird, sondern dass die Nebendateien zu einem Zeitpunkt über der spezifizierten Zeit als Charge an die Sekundär-DKC 200 übertragen werden.
  • Die Speichervorrichtung gemäß der vorliegenden Ausführungsform verfügt über dieselbe Konfiguration wie die erste Ausführungsform.
  • <Übertragungsoperation für Schreibdaten von der Primar-DKC an die Sekundär-DKC>
  • Nachfolgend wird die Übertragungsoperation gemäß der dritten Ausführungsform der Erfindung für Schreibdaten von der Primär-DKC 100 an die Sekundär-DKC 200 der Speichervorrichtung beschrieben. Die 14 ist eine Erläuterung der Ansicht zum Erläutern einer Schreibdaten-Übertragungsoperation der Speichervorrichtung gemäß der dritten Ausführungsform. Die 15 ist ein Flussdiagramm zum Veranschaulichen der Operation zum Speichern von Schreibdaten seitens der Primär-DKC in den Cache-Speicher sowie der Datenübertragungsoperation. Die 16 ist ein Flussdiagramm zum Veranschaulichen der Operation zum Speichern von Schreibdaten seitens der Sekundär-DKC in den Cache-Speicher.
  • Gemäß der 14 kann bei der vorliegenden Erfindung, im Zeitpunkt vom Basispunkt 1 bis zum Basispunkt 2, derselbe Datensatz über einen Datensatz, der noch nicht an die Sekundär-DKC 200 übertragen wurde, in einer Nebendatei im Cache-Speicher 103 der Primär-DKC 100 geschrieben werden (in der 14 kön nen beispielsweise die Aktualisierungsdaten B' über den Datensatz B geschrieben werden).
  • Bei dieser Konfiguration, die so ausgebildet ist, dass ein Überschreiben von Datensätzen in der Nebendatei in der vorgegebenen Zeit ermöglicht ist, können eine Verringerung der Übertragungsdatenmenge und eine Verkleinerung des Verarbeitungsoverheads erzielt werden.
  • In der Primär-DKC 100 wird die Nebendatei nicht während der spezifizierten Zeit vom Basispunkt 1 bis zum Basispunkt 2 an die Sekundär-DKC 200 übertragen, sondern es erfolgt ein Überschreiben, wenn Aktualisierungs-I/O-Daten für einen Datensatz in nicht übertragenen Datensätzen in der Nebendatei vorliegen. Die in der Sekundär-DKC 200 empfangene Nebendatei wird während einer spezifizierten Zeit im Cache-Speicher 202 aufbewahrt, und nach dem Annehmen aller Daten während der spezifizierten Zeit wird dann die Nebendatei als echte Daten gehandhabt.
  • Die Basispunkte in der Primär-DKC 100 und der Sekundär-DKC 200 werden bei einer Anfangsoperation zum Erzeugen eines Fernpaars zwischen der Primär-DKC 100 und der Sekundär-DKC 200 definiert.
  • Durch eine Operation seitens der Primär-DKC 100 wird, wie es in der 15 dargestellt ist, wenn Aktualisierungs-I/O-Daten vom Hostcomputer 120 vorhanden sind, als Erstes ermittelt, ob eine Zeitmarkierung 152 der Aktualisierungs-I/O-Daten größer als ein aktueller Basispunkt 2 (Basispunkt 1 + spezifizierte Zeit) ist (in S170). Wenn in S170 ermittelt wird, dass die Zeitmarkierung 152 dem Basispunkt 2 entspricht oder kleiner wird, wird ermittelt, ob in den Nebendateien der Datensatz in den Aktualisierungs-I/O-Daten vorhanden ist (in S171).
  • Wenn in S171 ermittelt wird, dass in der Nebendatei keine Aktualisierungs-I/O-Daten vorhanden sind, da dort kein zu überschreibender Datensatz vorhanden ist, fügt die Operation Aktualisierungsdaten in den Aktualisierungs-I/O-Daten zur Nebendatei hinzu (in S173). Wenn in S171 ermittelt wird, dass in der Nebendatei ein dem Aktualisierungs-I/O-Daten entsprechender Datensatz enthalten ist, werden die Aktualisierungsdaten in den Aktualisierungs-I/O-Daten über die Daten im Datensatz in der Nebendatei geschrieben (in S172).
  • Wenn in S170 ermittelt wird, dass die Zeitmarkierung 152 größer als der Basispunkt 2 isst, werden, da die Zeit nicht innerhalb der spezifizierten Zeit liegt, Aktualisierungsdaten in den Aktualisierungs-I/O-Daten zur Nebendatei hinzugefügt (in S174), und die Nebendateien in der Zeit vom Basispunkt 1 bis zum Basispunkt 2 werden als Charge an die Sekundär-DKC 200 übertragen (in S175).
  • Seitens der Sekundär-DKC 200 wird, wie es in der 16 dargestellt ist, die Nebendatei in der Zeit vom Basispunkt 1 bis zum Basispunkt 2 als in der Sekundär-DKC 200 zu verarbeitende Nebendatei angenommen und abgespeichert, und danach wird ermittelt, ob in Annahmenummern 133 für Aktualisierungsdaten in der Zeit vom Basispunkt 1 bis zum Basispunkt 2 eine Weglassung vorhanden ist (in S180).
  • Wenn in S180 ermittelt wird, dass in den Annahmenummern 133 eine Weglassung vorhanden ist, wird, da nicht alle Daten in der Zeit vom Basispunkt 1 bis zum Basispunkt 2 durch die Primär-DKC 100 angenommen wurden, die Nebendatei erneut von der Primär-DKC 100 angenommen und als in der Sekundär-DKC 200 zu verarbeitende Nebendatei abgespeichert.
  • Wenn in S180 ermittelt wird, dass in den Annahmenummern 133 keine Weglassung vorhanden ist, werden Daten in der Zeit vom Basispunkt 1 bis zum Basispunkt 2 als echte, korrekte Daten in einen normalen Cache im Cache-Speicher 202 bewegt (in S181). Danach werden die Daten im normalen Cache in die Platteneinrichtung 210 geschrieben, wobei die Daten zu echten, korrekten Daten werden.
  • Bei der vorliegenden Ausführungsform erfolgt ein Überschreiben während der spezifizierten Zeit vom Basispunkt 1 bis zum Basispunkt 2 für einige Datensätze, die nicht an die Sekundär-DKC 200 übertragen wurden und die in der Nebendatei im Cache-Speicher 102 der Primär-DKC 100 vorhanden sind. Demgemäß können, wenn ein asynchroner Fernkopiervorgang zeitseriell mit Einheiten eines Aktualisierungsdatensatzes ausgeführt wird, wobei die Datenkorrektheit aufrechterhalten bleibt, selbst dann, wenn Aktualisierungs-I/O-Daten für dieselben Datensätze vorliegen, eine Verringerung der Übertragungsdatenmenge und eine Verkleinerung des Verarbeitungsoverheads erzielt werden, während die Datenkorrektheit gewährleistet ist.
  • Als Beispiel sei angenommen, dass 1000 iops für Aktualisierungen vom Hostcomputer 120 für denselben Datensatz mit 4 kB/Datensatz erfolgen. In diesem Fall ist herkömmlicherweise eine Übertragung von 4 MB Daten (4 kB/Datensatz × 1000 iops = 4 MB) erforderlich; jedoch kann gemäß der vorliegenden Ausführungsform die Datenmenge auf maximal 4 kB verringert werden.
  • Außerdem sei angenommen, dass die Nebendateien sequenziell und asynchron von der Primär-DKC 100 übertragen werden. In diesem Fall kann selbst dann, wenn Aktualisierungs-I/O-Daten für denselben Datensatz vorliegen, ein Fall angenommen werden, bei dem die Daten bereits übertragen wurden, so dass die Aktualisierungsdaten selbst innerhalb der spezifizierten Zeit erneut übertragen werden sollten. Wenn jedoch die Aktualisierungsdaten während der spezifizierten Zeit vom Basispunkt 1 bis zum Basispunkt 2 als Charge übertragen werden, kann die Effizienz beim Überschreiben der Nebendatei verbessert werden, und es kann die Übertragungsdatenmenge weiter verkleinert werden.
  • Ferner können in der Sekundär-DKC 200, da die Daten während der spezifizierten Zeit als Charge angenommen werden, die angenommenen Daten im Zustand gehandhabt werden, in dem die spezifizierte Zeit transparent ist.
  • (VIERTE AUSFÜHRUNGSFORM)
  • Diese Ausführungsform ist so aufgebaut, dass Datenkorrektheit selbst dann gewährleistet werden kann, wenn bei jeder der Ausführungsformen 1 bis 3 das Fernpaar aufgehoben wird, da eine Kommunikation zwischen der Primär-DKC 100 und der Sekundär-DKC 200 durch einen Fehler im Kommunikationspfad oder dergleichen verhindert ist.
  • Die Speichervorrichtung der vorliegenden Ausführungsform verfügt über dieselbe Konfiguration wie die erste Ausführungsform.
  • <Operation bei einem Fehler im Kommunikationspfad>
  • Nachfolgend wird die Operation bei einem Fehler im Kommunikationspfad bei der Speichervorrichtung gemäß der vierten Ausführungsform der Erfindung beschrieben.
  • Wenn die Kommunikation zwischen der Primär-DKC 100 und der Sekundär-DKC 200 auf Grund eines Fehlers im Kommunikationspfad oder dergleichen verhindert ist, sollte das Fernkopierpaar aufgehoben werden. Selbst bei der Aufhebung sollte die Datenkorrektheit in der Sekundär-DKC 200 gewährleistet sein, und nachdem die Aufhebung gelöscht wurde, sollten sich Daten zum Zeitpunkt der Aufhebung ohne Weglassung in der Sekundär-DKC 200 widerspiegeln.
  • In diesem Fall handhabt, wenn nicht alle Nebendateiinhalte während der übertragung der Nebendatei in der spezifizierten Zeit an die Sekundär-DKC 200 übertragen werden können (wegen eines Fehlers im Kommunikationspfad oder dergleichen), die Sekundär-DKC 200 die Daten bis zum verifizierten Zeitpunkt als echte Daten, wie dies herkömmlich der Fall ist, wenn sie auf Grundlage der SEQ#-Überschreibvorgänge verifizieren kann, dass innerhalb der Periode kein Überschreiben vorliegt. Jedoch sollten bereits an die Sekundär-DKC 200 übertragene Daten in der Primär-DKC 100 als nicht übertragene Daten gehandhabt werden.
  • Dann wird, bei der vorliegenden Ausführungsform, die Operation bei einem Fehler im Kommunikationspfad unter Verwendung des Übertragungserfordernisbits in der Schreibdatenverwaltungsinformation, wie in der 2 dargestellt, kontrolliert.
  • Zunächst ist die Anordnung dergestalt, dass das in der 2 dargestellte Übertragungserfordernisbit 135 auf "EIN" geschaltet wird, wenn Aktualisierungsdaten als Nebendatei in der Primär-DKC 100 abgespeichert wurden, während das Übertragungserfordernisbit 135 auf "AUS" geschaltet wird, wenn die Übertragung an die Sekundär-DKC 200 abgeschlossen ist, wobei die Nebendatei in der spezifizierten Zeit aus der Primär-DKC 100 gelöscht werden kann, wenn die Übertragung aller Nebendateien während der spezifizierten Zeit normal abgeschlossen wurde.
  • Wenn jedoch nicht alle Nebendateien während der spezifizierten Zeit übertragen werden können, und wenn die Übertragung im Verlauf fehlschlug (wegen eines Fehlers im Kommunikationspfad oder dergleichen), werden alle Daten in der Nebendatei als Differenzdaten verwaltet, die an die Sekundär-DKC 200 übertragen werden sollten, und zwar unabhängig vom "EIN"/"AUS"-Zustand des Übertragungserfordernisbits 135 in der Nebendatei.
  • Außerdem wird bei einem schnell reparierbaren Übertragungsfehler keine Aufhebung herbeigeführt, und die Datenübertragung wird entsprechend dem Zustand dem Übertragungserfordernisbits 135 fortgesetzt.
  • Demgemäß wird, bei der vorliegenden Ausführungsform, eine Datenübertragung unter Verwendung des Übertragungserfordernisbits 135 in der Schreibdatenverwaltungsinformation 105, wenn ein normaler Modus vorliegt, ausgeführt. Wenn jedoch ein Fehler im Kommunikationspfad auftritt, werden alle Daten in der Nebendatei als Differenzdaten gehandhabt, die unabhängig vom "EIN"/"AUS"-Zustand des Übertragungserfordernisbits 135 an die Sekundär-DKC 200 übertragen werden sollten. Infolgedessen können dann, wenn die Speichervorrichtung in einen Zustand gelangt ist, in dem das Fernkopierpaar aufgehoben werden sollte (Fehler im Kommunikationspfad oder dergleichen), auch bereits an die Sekundär-DKC 200 übertragene Daten als Differenzdaten gehandhabt werden.
  • (FÜNFTE AUSFÜHRUNGSFORM)
  • Diese Ausführungsform ist so aufgebaut, dass, bei jeder der Ausführungsformen 1 bis 3, ein Umschalten zwischen einem Überschreibmodus zum Überschreiben der Nebendatei und einem herkömmlichen Modus, um die Nebendatei nicht zu überschreiben, ausgeführt wird.
  • Die Speichervorrichtung der vorliegenden Ausführungsform verfügt über dieselbe Konfiguration wie die erste Ausführungsform.
  • <Modusumschaltoperation>
  • Nachfolgend wird die Modusumschaltoperation der Speichervorrichtung gemäß der fünften Ausführungsform beschrieben.
  • Die 17 ist eine erläuternde Ansicht zum Erläutern einer Modusumschaltoperation der Speichervorrichtung gemäß der fünften Ausführungsform. Die 16 ist ein Flussdiagramm zum Erläutern der Modusumschaltoperation seitens der Primär-DKC. Die 19 ist ein Flussdiagramm zum Veranschaulichen der Operation zum Speichern von Schreibdaten seitens der Sekundär-DKC in den Cache-Speicher.
  • Bei der vorliegenden Ausführungsform kann, wie es in der 17 dargestellt ist, eine Modusumschaltanweisung während der spezifizierten Zeit vom Basispunkt 1 bis zum Basispunkt 2 vom Hostcomputer 120 spezifiziert werden (ein Beispiel sind die in (5) in der 17 dargestellten Daten, die vom Hostcomputer 120 angenommen werden).
  • Auf diese Weise kann die Modusumschaltanweisung seitens der Primär-DKC 100 spezifiziert werden, wodurch die Operation wahlfrei zwischen dem Überschreibmodus und dem herkömmlichen Modus umgeschaltet werden kann.
  • Wenn eine Modusumschaltanweisung spezifiziert wurde, teilt die o diese Anweisung der Sekundär-DKC 200 mit, und sie führt nach dieser Zeit eine Modusumschaltung aus, und die Sekundär-DKC 200 führt eine Modusumschaltung entsprechend der von der Primär-DKC 100 empfangenen Modusumschaltanweisung aus.
  • Durch eine Operation seitens der Primär-DKC 100 wird, wie es in der 18 dargestellt ist, wenn Aktualisierungs-I/O-Daten vom Hostcomputer 120 vorhanden sind, als Erstes ermittelt, ob es sich bei den I/O-Daten um eine Modusumschaltanweisung handelt (in S190). Wenn in S190 ermittelt wird, dass die I/O-Daten keiner Modusumschaltanweisung entsprechen, wird eine normale I/O-Verarbeitung ausgeführt (in S191).
  • Wenn in S190 ermittelt wird, dass die I/O-Daten einer Modusumschaltanweisung entsprechen, wird diese in der Nebendatei abgespeichert. Dann wird die Nebendatei an die Sekundär-DKC 200 übertragen, um dieser dadurch die Modusumschaltanweisung mitzuteilen (in S192), und es wird ein Modusumschalten ausgeführt (in S193).
  • Durch eine Operation seitens der Sekundär-DKC 200 wird, wie es in der 19 dargestellt ist, die Nebendatei von der Primär-DKC 100 angenommen und als seitens der Sekundär-DKC 200 zu verarbeitende Nebendatei abgespeichert. Danach wird ermittelt, ob die Zeitmarkierung 152 größer als der aktuelle Basispunkt 2 (Basispunkt 1 + spezifizierte Zeit) ist (in S200). Wenn in S200 ermittelt wird, dass die Zeitmarkierung 152 größer als der Basispunkt 2 ist, werden die Nebendateien kontinuierlich von der Primär-DKC 100 angenommen, bis in S200 ermittelt wird, dass die Zeitmarkierung 152 größer als der Basispunkt 2 ist. Dann verifiziert, wenn in S200 ermittelt wird, dass die Zeitmarkierung 152 größer als der Basispunkt 2 ist, die Operation, ob in der Nebendatei eine Modusumschaltanweisung vorhanden ist, um zu ermitteln, ob ein Modusumschalten erforderlich ist (in S201).
  • Wenn in S201 ermittelt wird, dass ein Modusumschalten erforderlich ist, wird ein Modusumschalten der DKC ausgeführt (in S202). Wenn in S201 ermittelt wird, dass ein Modusumschalten erforderlich ist, wird ermittelt, ob in den Annahmenummern 133 für Aktualisierungsdaten in der Zeit vom Basispunkt 1 bis zum Basispunkt 2 eine Weglassung vorliegt (in S203).
  • Wenn in S203 ermittelt wird, dass in den Annahmenummern 133 eine Weglassung vorliegt, wird, da nicht alle Aktualisierungsdaten während der Zeit vom Basispunkt 1 bis zum Basispunkt 2 von der Primär-DKC 100 angenommen wurden, die Nebendatei erneut von ihr angenommen und als in der Sekundär-DKC 200 zu verarbeitende Nebendatei abgespeichert.
  • Wenn in S203 ermittelt wird, dass in den Annahmenummern 133 keine Weglassung vorliegt, werden Daten in der Zeit vom Basispunkt 1 bis zum Basispunkt 2 als echte, korrekte Daten in den normalen Cache im Cache-Speicher 202 bewegt (in S204). Danach werden die Daten im normalen Cache in die Platteneinrichtung 210 geschrieben, wodurch die Daten zu echten, korrekten Daten werden.
  • Bei der vorliegenden Ausführungsform sollte, über den Speichermodus der Nebendatei im Überschreibmodus zum Überschreiben derselben, für die Zeit bis zum Positionierabschnitt 2 oder zum Synchronisierungspunkt abgewartet werden, bis die Daten seitens der Sekundär-DKC 200 als echte Daten gehandhabt werden. Während die Zeitverzögerung in Bezug auf die Primär-DKC 100 zunimmt, wenn auf die Übereinstimmung zwischen der Primär-DKC 100 und der Sekundär-DKC 200 Nachdruck gelegt wird, wie beim Umschalten des Modus auf den herkömmlichen Modus, kann ein Umschalten des Speichermodus der Nebendatei während des Betriebs erfolgen, was eine Einstellung beispielsweise der Übereinstimmung der Daten in der Primär-DKC 100 und der Sekundär-DKC 200, der Datenverlustmenge in der Sekundär-DKC 200 bei einem Ausfall der Primär-DKC 100, ermöglicht.
  • Bei der vorliegenden Ausführungsform kann, wie es beim Beispiel zum Spezifizieren der Modusumschaltanweisung vom Hostcomputer 120 beispielhaft angegeben ist, die Umschaltanweisung für den Überschreibmodus und den herkömmlichen Modus durch eine Bestimmung der Primär-DKC 100 spezifiziert werden (beispiels weise kann die Bestimmung dann erfolgen, wenn die Nebendatei auf Grund übermäßiger Aktualisierungs-I/O-Daten vollständig gefüllt ist).
  • (SECHSTE AUSFÜHRUNGSFORM)
  • Diese Ausführungsform ist so aufgebaut, dass, bei der fünften Ausführungsform, dann, wenn die Konfiguration aus mehreren Primär-DKCs 100 und einer einzelnen Sekundär-DKC 200 besteht, und wenn die Datenkorrektheit gewährleistet ist, der Betriebsmodus in der Sekundär-DKC 200 in Einheiten der Primär-DKCs 100 gehandhabt wird.
  • Die Speichervorrichtung der vorliegenden Ausführungsform verfügt über dieselbe Konfiguration wie die erste Ausführungsform, wobei die Konfiguration so ausgebildet ist, dass mehrere Primär-DKCs 100 mit einer einzelnen Sekundär-DKC 200 verbunden sind.
  • <Modusumschaltung von mehreren Primar-DKCs>
  • Nachfolgend wird die Modusumschaltoperation der Speichervorrichtung gemäß der sechsten Ausführungsform beschrieben.
  • Die 20 ist eine erläuternde Ansicht zum Erläutern der Modusumschaltoperation der Speichervorrichtung gemäß der sechsten Ausführungsform. Die 21 ist ein Flussdiagramm zum Veranschaulichen der Operation des Speicherns von Schreibdaten seitens einer Sekundär-DKC in den Cache-Speicher.
  • Bei der vorliegenden Ausführungsform werden, wie es in der 20 dargestellt ist, seitens der Sekundär-DKC 200 Modusumschaltanweisungen von den mehreren Primär-DKCs 100 gehandhabt. Seitens der Sekundär-DKC 200 bleibt der Betriebsmodus zum Erzeugen echter Daten unverändert, bis die Betriebsmodi aller Primär-DKCs 100 miteinander übereinstimmen; der Betriebsmodus seitens der Sekundär-DKC 200 wird dann geändert, wenn die Betriebsmodi aller Primär-DKCs 100 in Übereinstimmung miteinander gebracht wurden. Außerdem wird, wenn eine Mischung des Überschreibmodus und des herkömmlichen Modus (Synchronisiermodus) vorliegt, die Nebendatei in der Sekundär-DKC 200 in allen Fällen im Überschreiomodus gehandhabt.
  • Durch eine Operation seitens der Primär-DKC 100 wird, ähnlich wie bei der Operation bei der in der 18 dargestellten fünften Ausführungsform, wenn Aktualisierungs-I/O-Daten vom Hostcomputer 120 vorhanden sind, als Erstes ermittelt, ob es sich bei den I/O-Daten um eine Modusumschaltanweisung handelt (in S190). Wenn in S190 ermittelt wird, dass es sich bei den I/O-Daten um keine Modusumschaltanweisung handelt, wird eine normale I/O-Verarbeitung ausgeführt (in S191).
  • Wenn in S190 ermittelt wird, dass es sich bei den I/O-Daten um eine Modusumschaltanweisung handelt, wird diese in die Nebendatei eingespeichert. Dann wird die Nebendatei an die Sekundär-DKC 200 übertragen, um dieser dadurch die Modusumschaltanweisung mitzuteilen (S192), und es wird eine Modusumschaltung ausgeführt (in S193).
  • Durch eine Operation seitens der Sekundär-DKC 200 wird, wie es in der 21 dargestellt ist, die Nebendatei durch die Primär-DKC 100 akzeptiert und als seitens der Sekundär-DKC 200 zu verarbeitende Nebendatei abgespeichert. Danach wird ermittelt, ob in der Nebendatei eine Modusumschaltanweisung vorhanden ist, um zu ermitteln, ob eine Modusumschaltung erforderlich ist (in S210).
  • Wenn in S210 ermittelt wird, dass ein Modusumschalten erforderlich ist, wird ein Modusumschalten der DKC ausgeführt (in S211). Wenn in S210 ermittelt wird, dass kein Modusumschalten erforderlich ist, wird ermittelt, ob die Anweisung eine Aufhebungsanweisung ist (in S212). Wenn in S212 ermittelt wird, dass die Anweisung eine Aufhebungsanweisung ist, wird ein Paar aus dem Primär-DKC 100 und dem Sekundär-DKC 200 aufgehoben (in S213).
  • Wenn in S212 ermittelt wird, dass die Anweisung keine Aufhebungsanweisung ist, wird ermittelt, ob der aktuelle Zustand der Überschreibmodus ist (in S214). Wenn in S214 ermittelt wird, dass der aktuelle Zustand nicht der Überschreibmodus ist, wird die Operation im Synchronisiermodus, der der herkömmliche Modus ist, ausgeführt; außerdem kann ein Eintreffen von Daten vor der Nebendatei verifiziert werden, wobei die Daten als echte Daten gehandhabt werden (in S215).
  • Wenn in S214 ermittelt wird, dass der aktuelle Zustand der Überschreibmodus ist, wird ermittelt, ob die Zeitmarkierung 152 größer als der aktuelle Basis- Punkt 2 (Basispunkt 1 + spezifizierte Zeit), ist (in S216). Wenn in S216 ermittelt wird, dass die Zeitmarkierung 152 größer als der Basispunkt 2 ist, werden die Nebendateien von der Primär-DKC 100 kontinuierlich angenommen, bis in S216 ermittelt wird, dass die Zeitmarkierung 152 größer als der Basispunkt 2 ist. Dann wird, wenn in S216 ermittelt wird, dass die Zeitmarkierung 152 größer als der Basispunkt 2 ist, ermittelt, ob in den Annahmenummern 133 für Aktualisierungsdaten während der Zeit vom Basispunkt 1 bis zum Basispunkt 2 eine Weglassung vorhanden ist (in S217).
  • Wenn in S217 ermittelt wird, dass in den Annahmenummern 133 eine Weglassung vorhanden ist, wird, da nicht alle Aktualisierungsdaten während der Zeit vom Basispunkt 1 bis zum Basispunkt 2 von der Primär-DKC 100 angenommen wurden, die Nebendatei erneut von ihr angenommen, und sie wird als in der Sekundär-DKC 200 zu verarbeitende Nebendatei abgespeichert.
  • Wenn in S217 ermittelt wird, dass in den Annahmenummern 133 keine Weglassung vorhanden ist, wird ein Abschlussflag für eine Nebendatei der Primär-DKC 100 auf "EIN" geschaltet. Dann wird ermittelt, ob alle Nebendateien anderer Primär-DKCs 100 abgeschlossen sind (in S219). Wenn in S219 ermittelt wird, dass nicht alle Nebendateien der anderen Primär-DKCs 100 abgeschlossen sind, werden die Nebendateien von der Primär-DKC 100 angenommen und als seitens der Sekundär-DKC 200 zu verarbeitende Nebendateien abgespeichert.
  • Wenn in S219 ermittelt wird, dass alle Nebendateien der anderen Primär-DKCs 100 abgeschlossen sind, wird ermittelt, ob die angewiesenen Modi aller Primär-DKCs 100 jeweils dem Synchronisiermodus, der der herkömmliche Modus ist, entsprechen (in S220). Wenn in S220 ermittelt wird, dass jede Primär-DKC 100 im Synchronisiermodus arbeitet, wird der Ausführungsmodus jeder der gesamten Primär-DKCs 100 auf den Synchronisiermodus umgeschaltet (in S221), und die Daten während der Zeit vom Basispunkt 1 bis zum Basispunkt 2 werden als echte, korrekte Daten gehandhabt.
  • Wenn in S220 ermittelt wird, dass der Anweisungsmodus aller der Primär-DKCs 100 nicht der Synchronisiermodus ist, bleibt der Ausführungsmodus aller der Primär-DKCs 100 unverändert auf dem Synchronisiermodus (in S221), und die Daten während der Zeit vom Basispunkt 1 bis zum Basispunkt 2 werden als echte, korrekte Daten gehandhabt.
  • Wenn bei der vorliegenden Ausführungsform eine Änderung der Betriebsmodi zwischen den mehreren Primär-DKCs 100 und der einzelnen Sekundär-DKC 200 auftritt, werden die Betriebsmodi seitens der Sekundär-DKC 200 gehandhabt, wobei der Betriebsmodus seitens der Sekundär-DKC 200 geändert wird, wenn die Betriebsmodi der mehreren Primär-DKCs 100 miteinander übereinstimmen. Demgemäß wird, ohne Verwendung einer zusätzlichen Kommunikationseinrichtung, eine Nichtübereinstimmung der Betriebsmodi bei der Steuerung der Sekundär-DKC 200 tolerierbar. Außerdem kann die Betriebsmodusänderungstechnik leicht in der Umgebung der mehreren Primär-DKCs 100 verwendet werden.
  • Demgemäß erfolgte für die vorliegende Ausführungsform eine Beschreibung unter Bezugnahme auf ein Beispiel, bei dem die Modusumschaltanweisung vom Hostcomputer 120 ausgegeben wird. Jedoch kann die Anordnung dergestalt sein, dass, ähnlich wie bei der fünften Ausführungsform, die Umschaltanweisung für den Überschreibmodus und den herkömmlichen Modus durch eine Bestimmung durch die Primär-DKC 100 spezifiziert wird (beispielsweise kann die Bestimmung dann erfolgen, wenn die Nebendatei auf Grund übermäßiger Aktualisierungs-I/O-Daten vollständig gefüllt ist).
  • Gemäß der Erfindung können beim Ausführen eines asynchronen Fernkopiervorgangs zum Erzielen korrekter zeitserieller Daten in Einheiten eines Aktualisierungsdatensatzes selbst dann, wenn Aktualisierungs-I/O-Daten für dieselben Datensätze vorliegen, eine Verringerung der Übertragungsdatenmenge und eine Verkleinerung des Verarbeitungsoverheads realisiert werden, während die Datenkorrektheit gewährleistet ist.
  • Ferner kann, gemäß der Erfindung, da in der Primär-Plattensteuerung ein Synchronisierungspunkt verwendet wird, ein Verlaufspunkt dadurch erkannt werden, dass alleine der Synchronisierungspunkt in der Signalpegel erkannt wird, und in dieser kann der Synchronisierungspunkt wahlfrei kontrolliert werden.

Claims (9)

  1. Speichervorrichtung, aufweisend: eine mit einem Hostcomputer (120) verbindbare primäre Plattensteuerung (100) mit einem Cache-Speicher (103) und einem Steuerspeicher (104), eine mit der primären Plattensteuerung (100) verbundene erste Platteneinrichtung (110), eine sekundäre Plattensteuerung (200) mit einem Cache-Speicher (202) und einem Steuerspeicher (203), und eine mit der sekundären Plattensteuerung verbundene zweite Platteneinrichtung (210), wobei der Cache-Speicher (103) der primären Plattensteuerung (100) einen ersten Bereich zum Speichern von Aktualisierungsdaten (151) aufweist, die in die erste Platteneinrichtung (110) geschrieben werden sollen, die primäre Plattensteuerung (100) Aktualisierungsdaten, die vom Hostcomputer (120) empfangen werden, um als Aktualisierungsdaten, die zur sekundären Plattensteuerung (200) übertragen werden sollen, gespeichert zu werden, mit Zeitmarkierungen (132) und Annahmenummern (133) versieht und eingerichtet ist, die gespeicherten Aktualisierungsdaten zur sekundären Plattensteuerung zu übertragen und einen Fernkopiervorgang zur sekundären Plattensteuerung auszuführen, und die sekundäre Plattensteuerung eingerichtet ist, die Aktualisierungsdaten zwischen einem vorgegebenen ersten Basispunkt und einem vorgegebenen zweiten Basispunkt als konsistente echte Daten zu behandeln, dadurch gekennzeichnet, daß der Cache-Speicher (103) der primären Plattensteuerung (100) außerdem einen zweiten Bereich zum Speichern von Aktualisierungsdaten aufweist, die zur sekundären Plattensteuerung (200) übertragen werden sollen, die primäre Plattensteuerung (100) eingerichtet ist, Aktualisierungsdaten eines entsprechenden Datensatzes während einer bestimmten Zeit zwischen dem ersten Basispunkt und dem zweiten Basispunkt über Aktualisierungsdaten des bereits im zweiten Bereich des Cache- Speichers (103) gespeicherten Datensatzes, die zur sekundären Plattensteuerung (200) übertragen werden sollen, drüberzuschreiben, im Steuerspeicher (104) Informationen über die Anzahl an Überschreibungen für die Aktualisierungsdaten gespeichert werden, wenn die Aktualisierungsdaten im gleichen Datensatz über Aktualisierungsdaten aktualisiert werden, die im Cache-Speicher der primären Plattensteuerung (100) gespeichert sind, und die Aktualisierungsdaten in der sekundären Plattensteuerung (200) entsprechend den Informationen der Zeitmarkierung (132), der Annahmenummer (133) und der Anzahl an Überschreibungen verifiziert werden.
  2. Vorrichtung nach Anspruch 1, wobei die Zeitmarkierungen (132) vom Hostcomputer (120) oder der primären Plattensteuerung (100) geliefert werden, die Annahmenummern (133) von der primären Plattensteuerung (100) gemäß Annahmeinformationen in den Aktualisierungsdaten des Hostcomputers (120) geliefert werden und diese Informationen in den Steuerspeicher (104) gespeichert werden.
  3. Vorrichtung nach Anspruch 1, wobei der erste und der zweite Basispunkt zwischen der primären Plattensteuerung (100) und der sekundären Plattensteuerung (200) synchronisiert werden.
  4. Vorrichtung nach Anspruch 1, wobei der zweite Basispunkt in der primären Plattensteuerung (100) als Synchronisationspunkt in den Cache-Speicher (103) der primären Plattensteuerung gespeichert wird und Aktualisierungsdaten zwischen dem ersten Basispunkt und dem Synchronisationspunkt in der sekundären Plattensteuerung (200) als konsistente echte Daten behandelt werden.
  5. Vorrichtung nach Anspruch 1, wobei in Reaktion auf eine Synchronisationsanforderung vom Hostcomputer (120) der Synchronisationspunkt in den Cache-Speicher (103) der primären Plattensteuerung (100) gespeichert wird.
  6. Vorrichtung nach Anspruch 1, wobei die primäre Plattensteuerung (100) die Aktualisierungsdaten zwischen dem ersten und dem zweiten Basispunkt im Block an die sekundäre Plattensteuerung (200) überträgt.
  7. Vorrichtung nach Anspruch 1, wobei ein Modus zum Drüberschreiben von Aktualisierungsdaten im gleichen Datensatz über Aktualisierungsdaten, die im Cache-Speicher (103) der primären Plattensteuerung (100) gespeichert sind, und ein Modus, um sie nicht drüberzuschreiben, vorgesehen sind, die primäre Plattensteuerung aufgrund der Menge an im zweiten Bereich des Cache-Speichers (103) in der primären Plattensteuerung gespeicherten Aktualisierungsdaten eine Modusumschaltung festlegt und Modusumschaltinformationen an die sekundäre Plattensteuerung (200) übertragen werden, und ein Betriebsmodus in der sekundären Plattensteuerung (200) entsprechend den von der primären Plattensteuerung (100) übertragenen Modusumschaltinformationen geändert wird.
  8. Vorrichtung nach Anspruch 7, wobei mehrere Plattensteuerungen (100) vorgesehen sind und die Modusumschaltinformationen von jeder der mehreren Plattensteuerungen an die sekundäre Plattensteuerung (200) übertragen werden, und der Betriebsmodus in der sekundären Plattensteuerung geändert wird, wenn alle von der Vielzahl primärer Plattensteuerungen übertragenen Modusumschaltinformationen miteinander übereinstimmen.
  9. Vorrichtung nach Anspruch 7, wobei die Modusumschaltinformationen entsprechend einem Bearbeitungszustand der Aktualisierungsdaten in der primären Plattensteuerung in den Cache-Speicher (103) der primären Plattensteuerung (100) gespeichert werden.
DE602004005666T 2004-03-23 2004-10-06 Speichervorrichtung für asynchrone entfernte Datenspiegelung Active DE602004005666T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004085032A JP4549709B2 (ja) 2004-03-23 2004-03-23 ストレージ装置
JP2004085032 2004-03-23

Publications (2)

Publication Number Publication Date
DE602004005666D1 DE602004005666D1 (de) 2007-05-16
DE602004005666T2 true DE602004005666T2 (de) 2007-12-27

Family

ID=34858404

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602004005666T Active DE602004005666T2 (de) 2004-03-23 2004-10-06 Speichervorrichtung für asynchrone entfernte Datenspiegelung

Country Status (4)

Country Link
US (2) US7171517B2 (de)
EP (1) EP1580662B1 (de)
JP (1) JP4549709B2 (de)
DE (1) DE602004005666T2 (de)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007528520A (ja) * 2003-05-31 2007-10-11 エヌエイチエヌ コーポレーション 検索エンジンに登録されたウェブサイトを管理するための方法およびシステム
JP4355674B2 (ja) * 2005-03-17 2009-11-04 富士通株式会社 リモートコピー方法及びストレージシステム
US7464126B2 (en) * 2005-07-21 2008-12-09 International Business Machines Corporation Method for creating an application-consistent remote copy of data using remote mirroring
KR100825721B1 (ko) 2005-12-08 2008-04-29 한국전자통신연구원 객체 기반 스토리지 시스템에서 사용자 파일 관리자 내의시간 기반 캐쉬 일관성 유지 시스템 및 방법
JP4942418B2 (ja) * 2006-08-04 2012-05-30 株式会社日立製作所 計算機システム及びそのスナップショット作成方法
JP2009104488A (ja) * 2007-10-24 2009-05-14 Hitachi Ltd ストレージ装置及びその制御方法並びにストレージシステム
US8909827B2 (en) * 2008-01-30 2014-12-09 International Business Machines Corporation Method to allow a host to replace logical path resources it owns
US8214341B2 (en) * 2008-03-31 2012-07-03 International Business Machines Corporation Determining when to apply writes received to data units being transferred to a secondary storage
JP5217765B2 (ja) * 2008-08-13 2013-06-19 日本電気株式会社 ディスクアレイ装置間の遠隔データコピー方法、システムおよびプログラム
JP2010198329A (ja) 2009-02-25 2010-09-09 Nec Corp ストレージ装置、ストレージ管理方法及びストレージ管理プログラム
US8843449B2 (en) * 2009-06-16 2014-09-23 Bmc Software, Inc. Unobtrusive copies of actively used compressed indices
JP5183650B2 (ja) * 2010-02-17 2013-04-17 株式会社日立製作所 計算機システム,計算機システムにおけるバックアップ方法及びプログラム
US9092667B2 (en) 2012-08-27 2015-07-28 Symbol Technologies, Llc Arrangement for and method of reading forms in correct orientation by image capture
JP5963324B2 (ja) 2014-08-11 2016-08-03 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 仮想シーケンシャルアクセスボリュームのデータのコピー方法、システム
GB2532732B (en) * 2014-11-25 2019-06-26 Ibm Integrating a communication bridge into a data procesing system
US10033810B2 (en) 2015-12-03 2018-07-24 International Business Machines Corporation Recovery point objective via dynamic usage of bind segments in a global mirror environment
US10133510B2 (en) 2017-01-19 2018-11-20 International Business Machines Corporation Apparatus, method, and program product for data integrity during asynchronous remote copy

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5544347A (en) * 1990-09-24 1996-08-06 Emc Corporation Data storage system controlled remote data mirroring with respectively maintained data indices
US5446871A (en) * 1993-03-23 1995-08-29 International Business Machines Corporation Method and arrangement for multi-system remote data duplexing and recovery
US5437022A (en) * 1992-12-17 1995-07-25 International Business Machines Corporation Storage controller having additional cache memory and a means for recovering from failure and reconfiguring a control unit thereof in response thereto
US5574950A (en) * 1994-03-01 1996-11-12 International Business Machines Corporation Remote data shadowing using a multimode interface to dynamically reconfigure control link-level and communication link-level
JP2708386B2 (ja) * 1994-03-18 1998-02-04 インターナショナル・ビジネス・マシーンズ・コーポレイション 同時更新及び複写手順を通して重複データベースを回復させる方法及び装置
US6052797A (en) * 1996-05-28 2000-04-18 Emc Corporation Remotely mirrored data storage system with a count indicative of data consistency
US5901327A (en) * 1996-05-28 1999-05-04 Emc Corporation Bundling of write data from channel commands in a command chain for transmission over a data link between data storage systems for remote data mirroring
US6021408A (en) * 1996-09-12 2000-02-01 Veritas Software Corp. Methods for operating a log device
US5832515A (en) * 1996-09-12 1998-11-03 Veritas Software Log device layered transparently within a filesystem paradigm
US5996054A (en) * 1996-09-12 1999-11-30 Veritas Software Corp. Efficient virtualized mapping space for log device data storage system
US6167531A (en) * 1998-06-18 2000-12-26 Unisys Corporation Methods and apparatus for transferring mirrored disk sets during system fail-over
US6397307B2 (en) * 1999-02-23 2002-05-28 Legato Systems, Inc. Method and system for mirroring and archiving mass storage
JP4044717B2 (ja) 2000-03-31 2008-02-06 株式会社日立製作所 記憶サブシステムのデータ二重化方法及びデータ二重化システム
US6377022B1 (en) * 2000-04-24 2002-04-23 Theodore Rhoads Rechargeable coffee bean and spice mill
JP3578075B2 (ja) * 2000-10-13 2004-10-20 日本電気株式会社 ディスクアレイ制御装置及びディスクアレイ制御方法
JP2002318718A (ja) * 2001-04-20 2002-10-31 Nippon Telegr & Teleph Corp <Ntt> データベースレプリケーション方法、そのプログラム及び記録媒体
US6629211B2 (en) * 2001-04-20 2003-09-30 International Business Machines Corporation Method and system for improving raid controller performance through adaptive write back/write through caching
JP2003323261A (ja) * 2002-04-26 2003-11-14 Hitachi Ltd ディスク制御システム、ディスク制御装置、ディスクシステム、及びその制御方法
US6842825B2 (en) 2002-08-07 2005-01-11 International Business Machines Corporation Adjusting timestamps to preserve update timing information for cached data objects
JP3797328B2 (ja) 2003-01-15 2006-07-19 株式会社日立製作所 記憶制御装置
US7055009B2 (en) * 2003-03-21 2006-05-30 International Business Machines Corporation Method, system, and program for establishing and maintaining a point-in-time copy
US7380082B2 (en) * 2003-03-25 2008-05-27 Emc Corporation Reading virtual ordered writes at local storage device
US7051176B2 (en) * 2003-03-25 2006-05-23 Emc Corporation Reading data provided to a remote storage device
US7114033B2 (en) * 2003-03-25 2006-09-26 Emc Corporation Handling data writes copied from a remote data storage device
US6898685B2 (en) * 2003-03-25 2005-05-24 Emc Corporation Ordering data writes from a local storage device to a remote storage device
US7120824B2 (en) 2003-05-09 2006-10-10 International Business Machines Corporation Method, apparatus and program storage device for maintaining data consistency and cache coherency during communications failures between nodes in a remote mirror pair
US20040260735A1 (en) 2003-06-17 2004-12-23 Martinez Richard Kenneth Method, system, and program for assigning a timestamp associated with data
US7133982B2 (en) * 2003-06-18 2006-11-07 International Business Machines Corporation Method, system, and article of manufacture for consistent copying of storage volumes
US7228456B2 (en) * 2003-12-01 2007-06-05 Emc Corporation Data recovery for virtual ordered writes for multiple storage devices
US7054883B2 (en) * 2003-12-01 2006-05-30 Emc Corporation Virtual ordered writes for multiple storage devices
US7228396B2 (en) * 2004-03-08 2007-06-05 Emc Corporation Switching between virtual ordered writes mode and synchronous or semi-synchronous RDF transfer mode
JP4476683B2 (ja) * 2004-04-28 2010-06-09 株式会社日立製作所 データ処理システム

Also Published As

Publication number Publication date
US7171517B2 (en) 2007-01-30
JP4549709B2 (ja) 2010-09-22
US20050216658A1 (en) 2005-09-29
EP1580662A1 (de) 2005-09-28
US20070101078A1 (en) 2007-05-03
JP2005275582A (ja) 2005-10-06
DE602004005666D1 (de) 2007-05-16
EP1580662B1 (de) 2007-04-04
US7600089B2 (en) 2009-10-06

Similar Documents

Publication Publication Date Title
DE602004005666T2 (de) Speichervorrichtung für asynchrone entfernte Datenspiegelung
DE69636330T2 (de) Verfahren für On-line- und Echzeit-Datenmigration
DE69938378T2 (de) Kopieren von Daten in Speichersystemen
DE69724846T2 (de) Mehrweg-Ein/Ausgabespeichersysteme mit Mehrweg-Ein/Ausgabeanforderungsmechanismus
DE69923621T2 (de) Verfahren und Vorrichtung zu korrekten und vollständigen Übertragungen in einem fehlertoleranten verteilten Datenbanksystem
DE602005000972T2 (de) Speichersystem und Datenverarbeitungssystem
DE4235193C2 (de) Netzwerksystem und zugehöriges Softwareverwaltungsverfahren
DE4497149B4 (de) Computerbezogenes Verfahren zur Datenreplikation in Peer-to-Peer-Umgebung
DE60038364T2 (de) Computersystem und Speicherauszugsdatenverwaltungsverfahren
DE10112941B4 (de) System und Verfahren für das parallele Lesen von primären und sekundären Sicherungen zur Wiederherstellung mehrerer gemeinsam benutzter Datenbankdateien
DE69628682T2 (de) System und Verfahren um die Belastung einer Mehrzahl von Datei-Servern zu verteilen
DE60312746T2 (de) Wiederherstellung nach fehlern in datenverarbeitungsanlagen
DE60030397T2 (de) Belastungsverteilung in einem Netzwerk
DE60318477T2 (de) Vorrichtung zur dateiaktualisierung
DE602004006084T2 (de) Fernkopiersystem mit garantierter Konsistenz eines Daten-Paares
DE60220418T2 (de) Verfahren und Anbieter zur Systemsynchronisation
DE602005002532T2 (de) Cluster-datenbank mit ferndatenspiegelung
DE3301628A1 (de) Schaltungsanordnung fuer den datenaustausch zwischen zwei rechnern
DE102004056216A1 (de) Fernkopiersystem und Speichersystem
DE10392181T5 (de) Dynamische RDF-Gruppen
DE60318337T2 (de) Speicherkontrollervorichtung versehen mit einem Trennungsbefehl von Volumenpaaren und Verfahren dazu
DE19839680A1 (de) Verfahren und Vorrichtung zur Veränderung des Speicherinhalts von Steuergeräten
DE602004003327T2 (de) Computersystem und Verfahren zum Wiederanlauf mittels entferntem Kopieren
DE69723500T2 (de) Datenqualitätsverwaltungssystem
EP1225511A1 (de) Verfahren und system zur akten-verwaltung in verteilten umgebungen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition