DE69031443T2 - Verfahren und Anordnung zur Steuerung von Schattenspeichern - Google Patents
Verfahren und Anordnung zur Steuerung von SchattenspeichernInfo
- Publication number
- DE69031443T2 DE69031443T2 DE69031443T DE69031443T DE69031443T2 DE 69031443 T2 DE69031443 T2 DE 69031443T2 DE 69031443 T DE69031443 T DE 69031443T DE 69031443 T DE69031443 T DE 69031443T DE 69031443 T2 DE69031443 T2 DE 69031443T2
- Authority
- DE
- Germany
- Prior art keywords
- data
- storage medium
- log
- write
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 24
- 230000015654 memory Effects 0.000 title claims description 28
- 238000012545 processing Methods 0.000 claims description 16
- 238000012546 transfer Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 4
- 239000003607 modifier Substances 0.000 description 3
- 238000012937 correction Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2053—Error 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/2056—Error 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/2082—Data synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2053—Error 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/2056—Error 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/2064—Error 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2053—Error 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/2056—Error 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/2071—Error 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
- Communication Control (AREA)
- Color Television Systems (AREA)
Description
- Diese Erfindung betrifft eine Vorrichtung zum Speichern digitaler Daten. Das bevorzugte Ausführungsbeispiel wird in Verbindung mit einem System zum Bilden und Unterhalten einer oder mehrerer Duplikate oder "Schatten"-Kopien gespeicherter Daten beschrieben, um dadurch die Verfügbarkeit gespeicherter Daten zu verbessern.
- Ein typisches digitales Computersystem enthält ein oder mehrere Massenspeicheruntersysteme zum Speichern von Daten (die Programmbefehle enthalten können), die zu verarbeiten sind. In typischen Massenspeicheruntersystemen werden die Daten tatsächlich auf Festplatten gespeichert. Festplatten sind in ausgewählten radialen Abständen vom Zentrum aus in eine Vielzahl von Spuren aufgeteilt, und in Sektoren, die bestimmte winkelförmige Bereiche über jeder Spur definieren, wobei jede Spur und Gruppe aus einem oder mehreren Sektoren einen Block aufweist, in dem Daten gespeichert werden.
- Da gespeicherte Daten unabsichtlich zerstört oder unbrauchbar gemacht werden können, sind Systeme entwickelt worden, die mehrfache Kopien gespeicherter Daten erzeugen, und zwar normalerweise auf separaten Speichervorrichtungen, so daß die Daten dann, wenn sie auf einer der Vorrichtungen oder Festplatten beschädigt sind, aus einer mehreren der übrigen Kopien wiedergewonnen werden können. Derartige mehrfache Kopien sind als Schatten- bzw. Ergänzungsgruppe bekannt. In einer Schattengruppe sind typischerweise Daten, die in bestimmten Blöcken an einem Element der Schattengwppe gespeichert sind, dieselben wie die Daten, die in entsprechenden Blöcken an den anderen Elementen der Schattengruppe gespeichert sind. Es ist normalerweise erwünscht, mehreren Hostprozessoren zu erlauben, gleichzeitig (d.h. parallel) auf die Schattengruppe für Anfragen vom Lese- und Schreibtyp ("I/O"-Anfragen) zuzugreifen.
- Es ist manchmal nötig, zwei (oder mehrere) Speichervorrichtungen zu "verbinden", um eine vollständige Schattengruppe neu anzuordnen, wo die Vorrichtungen zuvor Elemente derselben Schattengruppe waren, aber gegenwärtig Daten enthalten, die gliltig sind, obwohl sie möglicherweise nicht konsistent sind. Daten in einem bestimmten Block sind dann gültig, wenn sie nicht fehlerbehaftet sind, d.h. wenn sie richtig sind, wie es durch eine Fehlerkorrekturtechnik bestimmt wird, oder dann, wenn sie nicht richtig sind, aber durch Verwenden der Fehlerkorrekturtechnik korrigierbar sind. Schattengruppenelemente haben Daten, die nicht konsistent sind, wenn sie entsprechende Blöcke haben, deren Dateninhalte unterschiedlich sind. Beispielsweise dann, wenn einer der Hosts nicht funktioniert (z.B. ausfällt), kann es sein, daß er ein ausstehendes Schreiben hatte, das zu einigen Schattengruppenelementen beendet wurde, aber nicht zu anderen, was in Daten resultiert, die nicht konsistent sind. Eine Verbindungsoperation stellt sicher, daß die an entsprechenden Blöcken der Schattengruppenelemente gespeicherten Daten konsistent sind, bestimmt aber nicht die Integrität (d.h. Genauigkeit) der in den Blöcken gespeicherten Daten, die nicht konsistent waren. Die Integrität der Daten wird durch Techniken auf höherer Ebene verifiziert (z.B. durch ein Anwenderprogramm).
- In der EP-0 303 856 ist eine Technik zum Managen identischer Paare von Speichervorrichtungen beschrieben, wobei Daten zu Datensätzen auf einer primären Speichervorrichtung geschrieben werden. Geänderte Datensätze werden dann wiederaufgefunden und in einer sekundären Speichervorrichtung dupliziert, und zwar als Ergebnis der Schreiboperation zur primären Speichervorrichtung.
- In der US-4 686 620 ist ein Verfahren zum Erzeugen einer Hilfskopie eines Datenbanksystems offenbart, wobei Änderungen in bezug auf "Seiten" in der Datenbank durch ein entsprechendes Bit in einem Bitmap bezeichnet werden. Von der Erzeugung einer Hilfskopie zur nächsten werden nur jene Seiten kopiert, die sich geändert haben, d.h. deren Bit im Bitmap sich geändert hat.
- Die Erfindung ist in den Ansprüchen 1 und 10 definiert und zeigt allgemein ein Schreibgeschichtenprotokoll, das beim bevorzugten Ausführungsbeispiel verwendet wird, um eine Managementoperation wie beispielsweise eine Verbindungsoperation an einer Schatten- bzw. Ergänzungsgruppe durchzuführen. Das bevorzugte Ausführungsbeispiel zeigt ein Verfahren zum Managen einer Schattengruppe von Speichermedien, auf die durch eine oder mehrere Datenquellen zugegriffen werden kann, wobei das Verfahren folgende Schritte aufweist: A. Unterhalten eines Protokolls aus Informationen, die Stellen innerhalb der Schattengruppen- Speichermedien betreffen, zu welchen Daten von wenigstens einer der Datenquellen geschrieben werden, und B. Ausführen einer Managementoperation durch: a. Zugreifen auf das Protokoll zum Bestimmen von Informationen, die eine oder mehrere der Stellen betreffen, zu denen Daten geschrieben worden sind, und b. Ausführen der Managementoperation in bezug auf die eine oder die mehreren Stellen, basierend auf den Ergebnissen des Schritts zum Zugreifen auf das Protokoll. Beim bevorzugten Ausführungsbeispiel weisen die Informationen die Adressen der Stellen auf, zu welchen die Daten geschrieben wurden, und eine Identifikation der Quelle oder der Quellen, von welchen Daten geschrieben wurden. Die Managementoperation wird in bezug auf Stellen ausgeführt, die auf der Basis der Quelle ausgewählt werden, von welchen Daten geschrieben wurden. Die Informationen werden im Protokoll für Daten, die zur Schattengruppe geschrieben sind, über eine vorbestimmte Zeitperiode gespeichert. Die Informationen im Protokoll betreffen Stellen innerhalb der Speichermedien, zu denen Daten von einer Vielzahl von Quellen geschrieben wurden.
- Das bevorzugte Ausführungsbeispiel der Erfindung läßt zu, daß ein System bestimmt, welche Abschnitte eines Schattengruppen-Speichermediums der Gegenstand eines Schreibbefehls gewesen sind, ohne auf die Quelle des Schreibbefehls zugreifen zu müssen (z.B. kann es sein, daß die Quelle nicht verfügbar oder unbekannt ist). Diese Informationen werden dazu verwendet, die Zeit wesentlich zu reduzieren, die zum Durchführen einer Verbindungsoperation erforderlich ist. Weil die einzigen Abschnitte der Schattengruppenelemente, die normalerweise nicht konsistent sind, jene sind, die der Gegenstand einer Schreiboperation gewesen sind, verschwendet das System keine Zeit durch ein Verbinden jedes Blocks von jedem Element der Schattengruppe, um Widersprüche zu korrigieren, sondern verbindet nur jene Blöcke, wo Daten vor kurzem geschrieben worden sind. Das Ergebnis ist eine signifikant effizientere Verbindungsoperation, die eine minimale Auswirkung auf 110-Anfragen zuläßt.
- Andere Vorteile und Merkmale der Erfindung werden aus der folgenden detaillierten Beschreibung der Erfindung und der beigefügten Ansprüche klar.
- Wir beschreiben zuerst kurz die Zeichnungen.
- Fig. 1 ist ein System gemäß der vorliegenden Erfindung unter Verwendung einer Schattengruppe.
- Fig. 2-6 stellen Datenstrukturen dar, die bei der Erfindung verwendet werden.
- Fig. 7 ist ein Flußdiagramm, das ein Verfahren zum Verbinden zweier Elemente einer Schattengruppe gemäß einem bevorzugten Ausführungsbeispiel der Erfindung darstellt.
- Gemäß Fig. 1 enthält ein Computersystem, das die Erfindung enthält, eine Vielzahl von Hosts 9, von denen jeder einen Prozessor 10, einen Speicher 12 (einschließlich eines Pufferspeichers) und eine Kommunikationsschnittstelle 14 enthält. Die Hosts 9 sind über ein Kommunikationsmedium 16 (z.B. durch eine virtuelle Schaltung) mit zwei oder mehreren Speicheruntersystemen direkt verbunden, die durch ein Bezugszeichen 17 identifiziert allgemein dargestellt sind (es sind zwei gezeigt).
- Jedes Speicheruntersystem 17 enthält eine Festplattensteuerung 18, die eine oder mehrere Festplatten 20 steuert, die die Elemente der Schattengruppe bilden. Die Festplattensteuerung 18 enthält einen Puffer 22, einen Prozessor 24 und einen Speicher 26 (z.B. einen flüchtigen Speicher). Der Prozessor 24 empfängt I/O- Anfragen von Hosts 9 und steuert ein Lesen von der Festplatte 20 und ein Schreiben zu ihr. Der Puffer 22 speichert temporär Daten, die in Verbindung mit einem Schreibbefehl empfangen werden, bevor die Daten zu einer Festplatte 20 geschrieben werden. Der Puffer 22 speichert auch Daten, die von einer Festplatte 20 gelesen werden, bevor die Daten in Antwort auf einen Lesebefehl zum Host übertragen werden. Der Prozessor 24 speichert verschiedene Arten von Informationen im Speicher 26, was unten ausführlicher beschrieben ist.
- Jeder Host 9 speichert in seinem Speicher 12 eine Tabelle, die Informationen über das System enthält, die die Hosts 9 zum Durchführen vieler Operationen benötigen. Beispielsweise werden die Hosts 9 I/O-Operationen zu den Speicheruntersystemen 17 durchführen und müssen wissen, welche Speicheruntersysteme zur Verwendung verfügbar sind, welche Festplatten in den Untersystemen gespeichert sind, etc. Wie es unten detaillierter beschrieben wird, werden die Hosts 9 das Verfahren für I/O-Operationen etwas abändern, wenn eine Verbindungsoperation in dem System durch einen bestimmten Host 9 ausgeführt wird. Daher wird die Tabelle Statusinformationen speichern, die irgendeine laufende Verbindungsoperation betreffen (sowie andere Operationen). Die Tabelle enthält auch andere Standardinformationen.
- Während jedes Speicheruntersystem mehrere Festplatten 20 enthalten kann, sind die Elemente der Schattengruppe derart ausgewählt, daß sie Festplatten in unterschiedlichen Speicheruntersystemen 17 enthalten. Daher kann ein Host auf jedes Element der Schattengruppe über seine Schnittstelle 14 und über ein Kommunikationsmedium 16 direkt zugreifen, ohne daß er auf zwei Schattengruppenelemente über dieselbe Festplattensteuerung 18 zugreifen muß. Dies wird einen "Einzelstellenfehler" im Fall eines Fehlers einer der Festplattensteuerungen 18 vermeiden. Anders ausgedrückt werden die Hosts dann, wenn die Elemente einer Schattengruppe eine gemeinsame Festplattensteuerung 18 haben, und wenn diese Steuerung 18 nicht funktioniert, nicht dazu fähig sein, irgendwelche I/O- Operationen erfolgreich durchzuführen. Beim bevorzugten System werden die Schattengruppenelemente "gemeinsam benutzt", so daß der Fehler einer Vorrichtung (z.B. einer Festplattensteuerung 18) nicht von I/O-Operationen abhalten wird, weil sie durch Verwenden eines anderen Schattengruppenelements durchgeführt werden können, auf das durch eine andere Festplattensteuerung zugegriffen wird.
- In einigen Fällen initiiert ein Host 9 eine Verbindungsoperation, bei welcher er Daten auf zwei Festplatten 20 mit Elementen einer Schattengruppe konsistent macht. Bei einer Verbindungsoperation initiiert der Host 9 mittels Schreib- und Lesebefehlen Lese- und Schreiboperationen. Vor einem weiteren Fortfahren wird es hilfreich sein, diese Befehle detaillierter zu beschreiben.
- Wenn ein Host 9 wünscht, Daten zu einer Festplatte 20 zu schreiben, die ein Element einer Schattengruppe aufweisen kann, gibt der Host einen Befehl aus, dessen Format in Fig. 2A dargestellt ist. Der Befehl enthält ein "Befehlsreferenznummern"-Feld, das den Befehl eindeutig identifiziert, und ein "Einheitennummern"-Feld, das die Einheit (z.B. die Festplatte 20) identifiziert, zu der Daten zu schreiben sind. Zum Erreichen von Schreiboperationen für jede Festplatte 20, die ein Element der Schattengruppe aufweist, gibt der Host einen separaten Schreibbefehl zu jeder Festplatte 20 mit der geeigneten Einheitennummer aus, die die Festplatte 20 identifiziert. Das "Operationscode"-Feld identifiziert, daß die Operation ein Schreiben ist. Das "Bytezahl"-Feld enthält einen Wert, der die Gesamtzahl von Bytes identifiziert, die die zu schreibenden Daten aufweisen, und die "Logikblocknummer" identifiziert die Anfangs-Speicherstelle auf der Festplatte, an der die Daten zu schreiben sind. Der "Pufferbeschreiber" identifiziert die Stelle im Hostspeicher 12, die die zu schreibenden Daten enthält.
- Die "Hostreferenznummer", der "Eintragslokalisierer" und der "Eintragsidentifizierer" werden in Zusammenhang mit einer "Schreibeintrags"- Eigenschaft verwendet, die unten detailliert beschrieben wird.
- Das Format eines Lesebefehls ist in Fig. 2B dargestellt und enthält Felder, die ähnlich den Schreibbefehlsfeldern sind. Für einen Lesebefehl enthält der Pufferbeschreiber die Stelle im Hostspeicher 12, wo die von der Festplatte gelesenen Daten zu speichern sind. Der Lesebefehl enthält nicht die Felder im Schreibbefehl, die zu der Schreibeintrags-Eigenschaft gehören, nämlich das Hostreferenznummern-Feld, das Eintragslokalisierer-Feld und das Eintragsidentifizierer-Feld (Fig. 2A).
- Wenn ein Host einmal einen Lese- oder Schreibbefehl überträgt, wird er durch die Festplattensteuerung 18 empfangen, die die Festplatte 20 bedient, die im "Einheitennummern"-Feld identifiziert ist. Für einen Schreibbefehl wird die Festplattensteuerung 18 die Schreiboperation in Verbindung mit der identifizierten Festplatte 20 durchführen und eine "Ende-Nachricht" zum Ursprungshost 9 zurückbringen. Das Format der Schreibbefehls-Ende-Nachricht ist in Fig. 3A dargestellt. Die Ende- Nachricht enthält eine Anzahl von Feldern einschließlich eines Befehlsreferenznummern-Felds, dessen Inhalte den Inhalten des Befehlsreferenznummern-Felds des Schreibbefehls entsprechen, der eine Speicheroperation initiierte, und eines Statusfeldes, das den Host darüber informiert, ob der Befehl erfolgreich beendet wurde oder nicht. Wenn die Festplatte 20 unfähig war, die Schreiboperation zu beenden, kann das Statusfeld einen Fehlercode enthalten, der die Art des Fehlers identifiziert.
- In Antwort auf einen Lesebefehl wird die Festplattensteuerung 18 die angefragten Daten von ihrer Festplatte 20 lesen und die Daten zum Speicher 12 des Ursprungshosts übertragen. Nachdem die Daten übertragen worden sind, wird eine Ende-Nachricht durch die Festplattensteuerung erzeugt und zum Ursprungshost gesendet, wobei das Format der Lesebefehls-Ende-Nachricht in Fig. 3B dargestellt ist. Die Lesebefehls-Ende-Nachricht ist ähnlich der Ende-Nachricht für den Schreibbefehl, mit der Ausnahme, daß die Lesebefehls-Ende-Nachricht kein Eintragslokalisierer- oder Eintragsidentifizierer-Feld enthält, das zu der Schreibgeschichteneintrags-Eigenschaft gehört, was unten beschrieben ist.
- Die Festplattensteuerung 18 unterhält auch ein Schreibgeschichtenprotokoll, das eine Anzahl von "Schreibgeschichteneinträgen" (Fig. 4) enthält, von denen jeder Informationen in bezug auf eine vor kurzem durchgeführte Schreiboperation speichert. Wie es oben beschrieben ist, enthält jedes der Speicheruntersysteme, die ein jeweiliges Schattengruppenelement bilden, einen Prozessor 24 und einen zugehörigen Speicher 26. Wenn eine Schreiboperation zu einem Schattengruppenelement durchgeführt wird, speichert seine Festplattensteuerung 18 in einem Schreibgeschichtenprotokoll in seinem Speicher 26 Informationen in einem Schreibgeschichteneintrag, der die Datenblöcke des Schattengruppenelements anzeigt, zu denen Daten geschrieben worden sind. Der Schreibgeschichteneintrag speichert auch Informationen, die die Quelle der Schreibbefehlsnachricht identifizieren (z.B. den Ursprungshost), die die Schreiboperation initiierte.
- Danach greift dann, wenn eine Verbindungsoperation nötig wird, ein Host 9, der die Verbindungsoperation managt, auf das Schreibgeschichtenprotokoll für jedes Schattengruppenelement zu, das an der Verbindungsoperation beteiligt ist, und bestimmt aus den Protokolleinträgen, welche Datenblöcke nicht konsistent sein können. Zum Beispiel dann, wenn einer der Hosts 9 in Fig. 1 ausfallen sollte, während eine Schreiboperation zu Elementen der Schattengruppe initiiert wird, kann ein Schattengruppenelement die Schreiboperation beendet haben, nicht aber ein anderes Schattengruppenelement, was die Daten an der Schattengruppe bis zu dem Ausmaß der einen Schreiboperation nicht konsistent werden läßt. Daher kann eine Verbindungsoperation durch einen richtig funktionierenden Host durchgeführt werden, aber sie muß nicht nur für die Datenblöcke durchgeführt werden, die der ausgefallene Host vor kurzem für ein Schreiben gesperrt hat, weil andere Datenblöcke konsistent sein werden. Daher wird der Host, der die Verbindungsoperation durchführt, auf das Schreibgeschichtenprotokoll zugreifen, das zu jedem Element der Schattengruppe gehört, bestimmen, welche Blöcke durch den Host beschrieben worden sind, der ausgefallen ist, und eine Verbindung bezüglich entsprechender Blöcke in der Schattengruppe durchführen. Da nur die Blöcke, die in der Schattengruppe beschrieben wurden, verbunden werden, wird die Operation viel schneller beendet, als wenn ein Host, der eine Verbindungsoperation managt, die Inhalte eines gesamten Schattengruppenelements für ein Kopieren zu einem anderen Schattengruppenelement sperrt.
- Wir werden zuerst beschreiben, wie das Schreibgeschichtenprotokoll erzeugt und unterhalten wird, und werden dann beschreiben, wie diese Informationen bei einer Verbindungsoperation verwendet wird. Wenn ein Schreibbefehl durch eine der Festplattensteuerungen 18 empfangen wird, bereitet die Festplattensteuerung einen Schreibgeschichteneintrag vor und speichert ihn in ihrem Speicher 26. Das Format eines Schreibgeschichteneintrags ist in Fig. 4 gezeigt. Die "Eintragsflags" zeigen den Zustand eines Schreibgeschichteneintrags an. Ein "Zugeordnet"-Flag wird gesetzt, wenn der Schreibgeschichteneintrag gegenwärtig zugeordnet ist (d.h. zum Speichern von Information über eine Schreiboperation verwendet wird). Die Inhalte eines "Einheitennummern"-Feldes identifizieren die spezifische Festplatte, zu der die Schreiboperation, die zu dem Schreibgeschichteneintrag gehört, adressiert wurde. Ein "Befehlsidentifizierer/Status"-Feld wird zum Identifizieren und Zuteilen des Status eines gegenwärtigen Befehls verwendet (Beispiele der in diesem Feld gespeicherten Information werden unten beschrieben).
- Die "Anfangs-Logikblocknummer" teilt die Adresse (Position) auf dem Festplattenvolumen zu, bei welcher die zugehörige Schreiboperation beginnt, und die "Übertragungslänge" bestimmt die Anzahl von Bytes von Daten, die zu der Festplatte des Elements geschrieben werden (d.h. diese Felder spezifizieren, welcher Teil des Schattengruppenelements potentiell modifiziert worden ist. Das "Hostreferenznummern"-Feld identifiziert den Host, von dem die Schreiboperation kam.
- Das "Eintragsidentifizierungs"-Feld enthält einen Wert, der durch einen Host zugeordnet wird, um einen Schreibgeschichteneintrag eindeutig zu identifizieren.
- Das "Eintragslokalisierer"-Feld enthält einen Wert, der durch das Schattengruppenelement zugeordnet wird, das die interne Stelle des Schreibgeschichteneintrags eindeutig identifiziert (d.h. die Stelle innerhalb des Speichers 26).
- Wenn eine Schattengruppen-Festplattensteuerung 18 einen Schreibbefehl von einem Host empfängt, führt die Steuerung die folgenden Operationen durch. Zuerst erklärt die Steuerung die Befehlsnachrichtenfelder für gültig und prüft den Zustand der Festplatte 20, um die Schreiboperation auf eine standardmäßige Weise für das gerade verwendete Protokoll durchzuführen. Wenn die Feldbestätigung oder die Zustandsprüfungen fehischlagen, weist das Schattengruppenelement den Befehl zurück, der eine Schreib-Ende-Nachricht ausgibt (Fig. 3A), deren Statusfeld den geeigneten Status enthält.
- Die Steuerung prüft dann ein Flag im Schreibbefehl, das die Inhalte darüber anzeigt, ob ein neuer Schreibgeschichteneintrag für den Befehl zuzuordnen ist, oder ob ein zuvor zugeordneter Schreibgeschichteneintrag nochmals verwendet wird. Wenn ein neuer Schreibgeschichteneintrag zuzuordnen ist, wird das "Hostreferenznummern/Eintragslokalisierer"-Feld die Hostreferenznummer enthalten. Die Steuerung wird die Gruppe von Schreibgeschichteneinträgen im Speicher 26 nach einem Eintrag absuchen, der gegenwärtig nicht zugeordnet ist -- d.h. einen Schreibgeschichteneintrag mit einem freien Flag für einen "zugeordneten Eintrag".
- Wenn kein nicht zugeordneter Schreibgeschichteneintrag gefunden werden kann, beendet die Steuerung 18 den Befehl und sendet eine Ende-Nachricht zum Host, dessen "Status"-Feld anzeigt, daß das Schreibgeschichtenprotokoll in bezug auf jenen Host ungültig ist. Die Steuerung wird auch alle Schreibgeschichteneinträge für den Host für ungültig erklären, der den Schreibbefehl ausgab, um einen anderen Host davon abzuhalten, sich bei einer Verbindungsoperation auf diese Einträge zu verlassen. Die Einträge können durch Verwenden eines "Geschichtenprotokoll"- Modifizierers für ungültig erklärt werden, der in jedem Eintrag enthalten ist, der anzeigt, ob jener Eintrag gültig oder ungültig ist.
- Wenn ein nicht zugeordneter Schreibgeschichteneintrag gefunden wird, führt die Steuerung 18 die folgenden Operationen in Verbindung mit dem Schreibgeschichteneintrag durch:
- a. Setzen des "Flags für einen zugeordneten Eintrag".
- b. Kopieren der Inhalte des "Einheitennummern"-Feldes der Befehlsnachricht zum "Einheitennummern"-Feld des Eintrags.
- c. Kopieren der Inhalte der "Operationscode"- und "Modifizierer"- Felder zum "Befehlsidentifizierer/Status"-Feld des Eintrags.
- d. Kopieren der Inhalte des "Bytezahl"- (oder "Logikblockzahl"-)Feldes der Befehlsnachricht zum "Übertragungslängen"-Feld des Eintrags.
- e. Kopieren der Inhalte des "Logikblocknummern "- (oder "Zielortlogikblocknummern"-)Feldes der Befehlsnachricht zum "Anfangs-Logikblocknummern"-Feld des Eintrags.
- f. Kopieren der Inhalte des "Hostreferenznummern"-Feldes der Befehlsnachricht zum "Hostreferenznummern"-Feld des Eintrags.
- g. Kopieren der Inhalte des "Eintragsidentifizierer"-Feldes der Befehlsnachricht zum "Eintragsidentifizierer"-Feld des Eintrags.
- h. Fortfahren mit einer normalen Verarbeitung des Befehls.
- Wenn ein zuvor verwendeter Schreibgeschichteneintrag nochmals zu verwenden ist, dann wird das "Hostreferenznummern/Eintragslokalisierer"-Feld den "Eintragslokalisierer" enthalten, der die Stelle des zu verwendenden Schreibgeschichteneintrags definiert. Dies kann dann auftreten, wenn beispielsweise ein Host 9 eine vorherige Schreibbefehlsnachricht erneut überträgt, die denselben Wert im "Hostreferenznummern"-Feld haben wird. Um dies zu erreichen, wird die Steuerung 18 zuerst bestimmen, ob der Wert, der im "Eintragslokalisierer"-Feld enthalten ist, eine der Gruppen der Schreibgeschichteneinträge in ihrem Schreibprotokoll identifiziert. Wenn die Inhalte des "Eintragslokalisierer"-Feldes keinen Eintrag in der Gruppe identifiziert, weist die Steuerung 18 den Befehl als ungültigen Befehl zurück. Wenn die Inhalte des "Eintragslokalisierers" einen der Einträge in der Gruppe von Schreibgeschichteneinträgen identifizieren, verwendet die Festplattensteuerung 18 den Wert im "Eintragslokalisierer"-Feld als Index in die Gruppe von Schreibgeschichteneinträgen, um den nochmals zu verwendenden Schreibgeschichteneintrag zu finden. Die Steuerung prüft dann das Setzen des Zuordnungseintrags-Flag des gefundenen Schreibgeschichteneintrags. Wenn dieses Flag frei ist, was anzeigt, daß der Eintrag tatsächlich nicht bereits zugeordnet wurde, weist die Steuerung 18 den Befehl mit einem Status eines Schreibgeschichteneintrags-Zugriffsfehlers zurück.
- Die Steuerung prüft dann das "Befehlsidentifizierer/Status"-Feld des identifizierten Schreibgeschichteneintrags, um zu sehen, ob der Eintrag gegenwärtig zu einem gerade in Verarbeitung befindlichen Befehl gehört, wie beispielsweise einem Schreibbefehl, der gerade ausgeführt wird -- d.h. die Steuerung bestimmt, ob ein "Codierungs"-Fiag innerhalb des "Operationscode"-Feldes frei ist. Das Codierungsflag wird gesetzt, wenn eine Operation beginnt, und wird gelöscht, wenn die Operation endet. Wenn der Eintrag zu einem gerade in Verarbeitung befindlichen Befehl gehört, weist die Steuerung den Befehl zurück und sendet eine Endnachricht zum Host, deren Statusfeld einen Schreibgeschichteneintrags-Zugriffsfehler identifiziert.
- Schließlich führt die Steuerung dann, wenn der Eintrag nicht zu einem gerade in Verarbeitung befindlichen Befehl gehört, die folgenden Operationen durch:
- a. Kopieren der Inhalte des "Einheitennummern"-Feldes der Befehlsnachricht zum "Einheitennummern"-Feld des Eintrags.
- b. Kopieren der Inhalte der "Operationscode"- und "Modifizierer"- Felder der Befehlsnachricht zum "Befehlsidentifizierer//Status"- Feld des Eintrags.
- c. Kopieren der Inhalte des "Bytezahl"- (oder "Logikblockzahl"-)Feldes der Befehlsnachricht zum "Übertragungslängen"-Feld des Eintrags.
- d. Kopieren der Inhalte des "Logikblocknummern"- (oder "Zielortlogikblocknummern"-)Feldes der Befehlsnachricht zum "Anfangs-Logikblocknummern"-Feld des Eintrags.
- e. Fortfahren mit einer normalen Verarbeitung des Befehls.
- Nachdem ein Schreibbefehl abgebrochen, abgeschlossen oder beendet ist, kopiert die Festplattensteuerung die "Codierungs"-, "Flags"- und "Status"- Endnachrichtenfelder in die geeigneten Felder des Schreibgeschichteneintrags, der zum Befehl gehört, und fährt dann mit einer standardmäßigen Verarbeitung fort.
- Zusätzlich setzt die Festplattensteuerung vor einem Zurückbringen der Endnachricht eines Schreibbefehls die "Hostreferenznummern"-, "Eintragsidentifizierer"- und "Eintragslokalisierer"-Endnachrichtenfelder gleich den Werten, die in den entsprechenden Feldern des Schreibgeschichteneintrags enthalten sind, der zu dem Befehl gehört. Es ist zu beachten, daß mit einer Ausnahme das gerade beschriebene Erfordernis auch durch Kopieren jener Felder direkt von der Befehlsnachricht zur Endenachricht erfüllt werden kann. Die einzige Ausnahme besteht darin, daß dann, wenn ein neuer Schreibgeschichteneintrag zugeordnet worden ist, die Steuerung das "Eintragslokalisierer"-Endnachrichtenfeld gleich dem Wert setzen muß, der im "Eintragslokalisierer"-Feld des zugehörigen Schreibgeschichteneintrags enthalten ist.
- Wie es unten erklärt wird, verwendet das System eine "Hostvergleichs"-Operation beim Durchführen einer Verbindung von zwei Schattengruppenelementen. Das Befehlsnachrichtenformat für die Hostvergleichsoperation ist in Fig. 6A gezeigt. Die Hostvergleichsoperation befiehlt der Festplattensteuerung, die die Festplatte unterstützt, die im "Einheitennummern"-Feld identifiziert ist, die Daten, die in einem Abschnitt eines Hostspeichers gespeichert sind, der im "Pufferbeschreiber"-Feld identifiziert ist, mit den Daten zu vergleichen, die auf der Festplatte an der Stelle gespeichert sind, die durch die "Logikblocknummern"- und "Bytezahl"-Felder identifiziert ist.
- Die Festplattensteuerung, die den Hostvergleichsbefehl empfängt, wird die angefragte Operation durch Lesen der identifizierten Daten vom Hostspeicher, durch Lesen der Daten vom identifizierten Abschnitt der Festplatte und durch Vergleichen der vom Host gelesenen Daten mit den von der Festplatte gelesenen Daten ausführen. Die Festplattensteuerung gibt dann eine Ende-Nachricht, deren Format in Fig. 6B gezeigt ist, zum Host aus, der den Hostvergleichsbefehl ausgab. Das Statusfeld der Endenachricht wird anzeigen, ob gefunden wurde, daß die verglichenen Daten identisch sind.
- Einer der Hosts des Systems wird Operationen zum Verbinden zweier Speichervorrichtungen steuern. Das System kann einen beliebigen Host zum Ausführen der Operation auswählen. Beispielsweise kann der Host mit dem besten Übertragungspfad (z.B. dem kürzesten Pfad) zur Schattengruppe ausgewählt werden. Während einer Verbindungsoperation wird der die Verbindung steuernde Host einen "Schreibgeschichtenmanagement"-Befehl zum Durchführen einer Anzahl von Operationen verwenden. Das Befehlsnachrichtenformat (d.h. die durch den Host zur Schattengruppe gesendete Nachricht) eines Schreibgeschichtenmanagementbefehls ist in Fig. 5A gezeigt. Fig. 5B stellt das Ende-Nachrichtenformat dar (d.h. die durch eine Festplattensteuerung eines Schattengruppenelements zum Host zurückgebrachte Nachricht). Der Host wählt eine bestimmte Operation aus, wenn die Operationen während der Verbindung benötigt werden, und bestimmt die Operation im "Operations"-Feld der Befehlsnachricht. Die anderen Felder enthalten andere Informationen, die unten ausführlicher erklärt werden, wenn jede Operation erklärt wird.
- Die Operation für ein "Auflösen einer Zuteilung von Allem" wird zum Auflösen einer Zuteilung aller Schreibgeschichteneinträge für die Festplatte verwendet, die im "Einheitennummern "-Feld identifiziert ist. Die Operation zum Auflösen einer Zuteilung von Allem macht alle Schreibprotokollräume verfügbar für neue Einträge. Beispielsweise werden nach einem Durchführen einer Verbindungsoperation die im Schreibgeschichtenprotokoll gespeicherten Einträge nicht länger benötigt, weil angenommen wird, daß die Elemente direkt nach einer Verbindung konsistent sind. Die Operation für eine Auflösung einer Zuteilung von Allem wird eine Zuteilung aller Schreibgeschichteneinträge auflösen (d.h. befreien), um sie für neue Information verfügbar zu machen, wenn ein neues Schreiben zur Schattengruppe durchgeführt wird.
- Ein Host kann eine Zuteilung nur jener Schreibprotokolleinträge, die zu einem bestimmten Host gehören, unter Verwendung einer Operation für ein "Auflösung einer Zuteilung durch eine Hostreferenznummer" auflösen. Dies kann gewünscht sein, wenn eine Verbindung durchgeführt war, und zwar als ein Ergebnis davon, daß ein bestimmter Host ausgefallen ist. Eine derartige Verbindung, wie sie unten ausführlicher beschrieben ist, würde ein Verbinden nur jener Blöcke enthalten, die mit Informationen vom ausgefallenen Host beschrieben wurden. Wenn jene Verbindung einmal beendet ist, werden die Schreibgeschichteneinträge, die zu jenem Host gehören, nicht länger nötig sein und können von der Zuteilung gelöst werden. Es wird nicht die Zuteilung aller Schreibgeschichteneinträge aufgelöst, weil dann, wenn ein anderer Host ausfällt, seine Einträge benötigt werden w(irden, um eine ähnliche Verbindung durchzuführen. Zum Ausführen dieser Operation löst jede Festplattensteuerung die Zuteilung aller Schreibgeschichteneinträge, die zu dem Host gehören, der im "Hostreferenznummern"-Feld für die im "Einheitennummern"-Feld identifizierten Festplatte identifiziert ist.
- Die Zuteilung eines bestimmten Schreibgeschichteneintrags kann unter Verwendung einer Operation zum "Auflösen einer Zuteilung durch einen Eintragslokalislerer" aufgelöst werden. Die Festplattensteuerung löst die Zuteilung des bestimmten Schreibgeschichteneintrags auf, der innerhalb des Schreibprotokolls an der Stelle angeordnet ist, die im "Eintragslokalisierer"-Feld bestimmt ist. Wenn die Inhalte des Eintragslokalisierer-Feldes keinen Eintrag innerhalb der Beschränkungen des Schreibgeschichtenprotokolls bestimmen (d.h. wenn es keinen Schreibgeschichteneintrag an der identifizierten Stelle gibt), wird der Befehl zurückgewiesen und eine Endnachricht wird als ungültiger Befehl zurückgebracht. Wenn der Wert, der im "Hostreferenznummern"-Feld des Schreibgeschichteneintrags enthalten ist, der durch den Eintragslokalisierer identifiziert wird, nicht gleich dem Wert ist, der im Befehlsnachrichten-"Hostreferenznummern"-Feld enthalten ist (d.h. wenn der im Befehl identifizierte Host auch nicht derselbe wie der Host ist, der im Schreibgeschichteneintrag identifiziert wird), wird der Befehl als ungültiger Befehl zurückgewiesen. Gleichermaßen weist die Steuerung dann, wenn der Wert der im "Eintragsidentifizierer"-Feld des Schreibgeschichteneintrags enthalten ist, der über den "Eintragslokalisierer" lokalisiert wird, nicht gleich dem Wert ist, der im Befehlsnach richten-"Eintragsidentifizierer"-Feld enthalten ist, den Befehl als ungültigen Befehl zurück.
- Die Operation zum "Lesen von Allem" wird zum Lesen von Information vom Schreibprotokoll eines Schattengruppenelements verwendet, das die Festplatte unterstützt, die im Einheitennummernfeld identifiziert wird. Wenn ein Host wünscht, die Gesamtanzahl von Schreibgeschichteneinträgen zu bestimmen, die im Schreibprotokoll gespeichert sind, wird das "Zähl"-Feld auf Null gesetzt, und die Festplattensteuerung setzt das Endnachrichten-"Zähl"-Feld des Befehls (siehe Fig. 6B) gleich der Anzahl von Schreibgeschichteneinträgen, die zu der identifizierten Einheit gehören. Die Operation zum Lesen von Allem wird auch dazu verwendet, alle Schreibprotokolleinträge von einem identifizierten Schattengruppenelement zu lesen. In diesem Fall ist das "Zähl"-Feld nicht Null, und die Festplattensteuerung überträgt die Anzahl von Schreibgeschichteneinträgen, die im "Zähl"-Feld bestimmt sind, zum Hostspeicher 12 (der im "Schreibgeschichtenpufferbeschreiber"-Feld spezifiziert ist), beginnend mit dem ersten Schreibgeschichteneintrag. Es ist zu beachten, daß nur jene Schreibgeschichteneinträge, die zu der im "Einheitennummern"-Feld identifizierten Einheit gehören, bei der Übertragung enthalten sind.
- Die Operation zum "Lesen durch eine Hostreferenznummer" wird zum Lesen von Information von den Schreibprotokollen verwendet, die zu einem bestimmten Host gehören. Wenn die "Zähl"-Feldnachricht Null ist, setzt die Festplattensteuerung das Endnachrichten-"Zähl"-Feld des Befehls gleich der Anzahl von Schreibgeschichteneinträgen, die zu sowohl dem Host, der im "Hostreferenznummern"-Feld identifiziert wird, als auch der Einheit, die im "Einheiten"-Feld identifiziert wird, gehören. Daher zählt die Steuerung nur jene Einträge, die aus einem Schreiben zu der identifizierten Einheit vom identifizierten Host resultierten.
- Wenn das "Zähl"-Feld bei einer Operation zum "Lesen durch eine Hostreferenznummer" nicht Null ist, überträgt die Steuerung die Anzahl von Schreibgeschichteneinträgen, die im "Zähl"-Feld spezifiziert sind, zu der Stelle im Hostspeicher 12, die im "Schreibgeschichtenpufferbeschreiber"-Feld spezifiziert ist, beginnend mit dem ersten Schreibgeschichteneintrag, der zu sowohl dem Host, der im "Hostreferenznummern"-Feld identifiziert wird, als auch zu der Einheit, die im "Einheitennummern "-Feld identifiziert wird, gehört.
- Wie es oben angegeben ist, ist das Endnachrichtenformat für den Schreibgeschichtenmanagementbefehl in Fig. 5B gezeigt. Das "Einheitenzuteilungs"-Feld wird die Gesamtanzahl von Schreibgeschichteneinträgen enthalten, die gegenwärtig zugeteilt sind und zu der Einheit gehören, die im Befehlsnachrichten-"Einheitennummern"-Feld identifiziert ist. Das "Bedienerzuteilungs"-Feld wird die Gesamtanzahl von Schreibgeschichteneinträgen enthalten, die gegenwärtig über jede Festplatte zugeteilt sind, die durch die bestimmte Festplattensteuerung be - dient wird. Das Feld zum "Nichtzuteilen eines Bedieners" enthält die Gesamtanzahl von Schreibgeschichteneinträgen, die gegenwärtig verfügbar sind.
- Nun sind der Schreibgeschichtenmanagementbefehl und seine zugehörigen Operationen detailliert beschrieben worden, und eine Verbindungsoperation unter Verwendung der Schreibprotokolleigenschaft wird unter Bezugnahme auf das Flußdiagramm der Fig. 7A-C beschrieben.
- Im Schritt 1 gibt der Host einen der Schreibgeschichtenmanagementbefehle, die oben beschrieben sind, zu jedem Schattengruppenelement aus, um Informationen von den Schreibprotokollen zu erhalten, die im Speicher 26 jeder Festplattensteuerung 18 gespeichert sind. Die verwendeten spezifischen Befehle werden von den Umständen abhängen, die die Notwendigkeit für die Verbindungsoperation erzeugten. Beispielsweise dann, wenn ein Host ausfällt und eine Verbindung durch einen der richtig funktionierenden Hosts durchgeführt wird, wird der die Verbindung durchführende Host vom Schreibprotokoll, das zu jedem Schattengruppenelement gehört, eine vollständige Liste aller Datenblöcke auf jener Elementenfestplatte erhalten, zu welcher der ausgefallene Host eine Schreiboperation durchgeführt hatte. Wie es oben erörtert ist, sind die einzigen Datenblöcke, die möglicherweise inkonsistent sein können, jene, zu welchen Daten durch den ausgefallenen Host geschrieben wurden.
- Zum Erhalten dieser Information wird der die Verbindung durchführende Host zuerst einen Schreibgeschichtenmanagementbefehl ausgeben, um eine Operation zum "Lesen einer Hostreferenznummer" zu jeder Festplattensteuerung durchzuführen, die ein Schattengruppenelement unterstützt, wobei das "Zähl"-Feld auf Null gesetzt ist. Der Befehl wird den ausgefallenen Host im "Hostreferenznummern "- Feld identifizieren. Wie es oben beschrieben ist, wird jede Festplattensteuerung seinen Befehl empfangen und wird eine Endnachricht zum Host senden, wobei das Zählfeld auf die Gesamtanzahl von Schreibgeschichteneinträgen in seinem Schreibprotokoll gesetzt ist, die aufgrund eines Schreibens vom ausgefallenen Host erzeugt wurden (Schritt 2).
- Dann wird der Host bestimmen, ob er weitere Schreibgeschichtenmanagementbefehle ausgeben muß (Schritt 3). Bei diesem Beispiel hat der Host Endnachrichten empfangen, die die Anzahl von Schreibgeschichteneinträgen spezifizieren, die in jedem Schreibgeschichtenprotokoll für den ausgefallenen Host enthalten sind. Der Host, der die Verbindung steuert, wird daher einen weiteren Befehl zu jeder Festplattensteuerung des Schattengruppenelements ausgeben müssen, die anzeigte, daß sie Schreibgeschichteneinträge für den ausgefallenen Host hatte. Eine Festplattensteuerung, die eine Endnachricht mit dem auf Null gesetzten "Zähl"-Feld zurückbrachte, hat keine Schreibgeschichteneinträge für den ausgefallenen Host, und der Host sendet keinen zweiten Befehl zu diesen Festplattensteuerungen. (Es ist zu beachten, daß in den seltenen Fällen, in denen jede Schattengruppensteuerung eine gültige Endnachricht mit dem auf Null gesetzten "Zähl"-Feld zurückbringt, was anzeigt, daß kein Schattengruppenelement mit Daten vom ausgefallenen Host beschrieben worden ist, keine Verbindungsoperation nötig ist und der Prozeß endet.)
- Daher wird ein zweiter Schreibgeschichtenmanagementbefehl zu jeder Festplattensteuerung mit benötigten Schreibgeschichteneinträgen gesendet (Schritt 1), wobei der Befehl wiederum die Operation zum "Lesen durch eine Hostreferenznummer" spezifiziert und den ausgefallenen Host identifiziert, wobei aber diesmal das "Zähl"-Feld auf die Anzahl von Schreibgeschichteneinträgen gesetzt ist, die das bestimmte Schreibgeschichtenprotokoll für den ausgefallenen Host hat. Diesmal liest jede Festplattensteuerung die Schreibgeschichteneinträge vom Speicher 26, sendet sie zum Speicher 12 des steuernden Host und gibt eine Endnachricht aus (Schritt 2). Der Host empfängt die Endnachrichten und wird in diesem Fall bestimmen, daß er keinen weiteren Befehl für ein Lesen durch eine Hostreferenznummer ausgeben muß, da er nun die gesamte benötigte Schreibgeschichteninformation haben wird.
- Der Host fährt damit fort (Schritt 4), eine Logikgruppennummerntabelle in seinem Speicher 12 zu bilden. Die Tabelle enthält Zahlen, die die "Gruppen" (d.h. Gruppen von Datenblöcken) in der Schattengruppe identifizieren, die zu verbinden sind. Der steuernde Host baut die Tabelle durch Auflisten von logischen Gruppennummern auf, die alle Gruppen identifizieren, die durch die Schreibgeschichteneinträge identifiziert werden, die durch die Schattengruppenelemente übertragen werden.
- Wenn ein jeweiliger Schreibgeschichteneintrag empfangen wird, bereitet der Host einen neuen Eintrag vor, von denen jeder durch einen Logikgruppenzähler identifiziert wird (der bei 1 beginnt und sich sequentiell erhöht. Der Eintrag enthält eine Zahl, die die Gruppe identifiziert, zu der die Daten geschrieben worden sind, und ein Festplattensteuerungsidentifizierer, der die Festplattensteuerung identifiziert, die den Schreibgeschichteneintrag sendete. Durch sequentielles Durchlaufen der Logikgruppennummerntabelle wird der Host dazu befähigt, jede Gruppe zu identifizieren, zu welcher Daten durch den ausgefallenen Host geschrieben worden sind.
- Der Host kann Logikgruppennummerntabelleneinträge nach unten zählen, wenn sie das Ergebnis von Schreibgeschichteneinträgen sind, wo entsprechende Einträge von jeder Festplattensteuerung empfangen wurden, die ein Schattengruppenelement unterstützt, weil dann, wenn ein Schreiben in jedem Schattengruppenelement durchgeführt worden ist, die Schattengruppe aufgrund jenes Schreibens nicht inkonsistent sein wird. Anders ausgedrückt wissen wir dann, da Schattengruppen Inkonsistenzen aufgrund eines Schreibens auftreten, das an einigen Elementen erfolgreich ist, aber an anderen Elementen fehlschlägt, wenn ein Schreibgeschichteneintrag, der einen spezifischen Schreibbefehl identifiziert, im Schreibprotokoll gefunden werden kann, das zu jedem Schattengruppenelement gehört, daß die Schreiboperation an jedem Element erfolgreich war, und Logikgruppenzahlen, die aus diesen Schreibgeschichteneinträgen gebildet werden, nicht verwendet werden müssen.
- Als nächstes setzt der Host im Schritt 5 einen Logikgruppenzähler gleich der ersten Logikgruppenzahlennummer in der Logikgruppennummerntabelle. Der Logikgruppenzähler wird zum Zugreifen auf eine Logikgruppennummer verwendet. Wenn sie im Schritt 5 auf Eins initialisiert wird, wird der erste Eintrag in der Logikgruppennummerntabelle identifiziert.
- Dann wählt der Host eines der Elemente als "Quelle" aus, und das andere Element als "Ziel" (Schritt 6). Der Host gibt einen Lesebefehl zur Festplattensteuerung aus, die der Quelle zum Lesen der Daten dient, die im Abschnitt der Festplatte gespeichert sind, der durch den gegenwärtigen Logikgruppenzähler identifiziert wird (Schritt 7). Der durch den Host ausgegebene Lesebefehl ist oben beschrieben und in Fig. 2B gezeigt. Die "Einheitennummer" wird gesetzt, um die Quellenfestplatte 20 mit der "logischen Blocknummer" und der "Bytezahl" zu beschreiben, die gemäß der Gruppe gesetzt sind, die gegenwärtig durch den Logikgruppenzähler identifiziert ist.
- Die Quelle empfängt den Lesebefehl und wird nach einem Lesen der identifizierten Daten von der Festplatte 20 zum Puffer 22 die Daten zum Hostspeicher 12 im Abschnitt senden, der durch das "Pufferbeschreiber"-Feld im Lesebefehl identifiziert wird. Die Quelle wird dann eine Endnachricht des Typs senden, der in Fig. 4B dargestellt ist, was den Host darüber informiert, daß die Leseoperation durchgeführt worden ist (Schritt 8).
- Nachdem der Host die Endnachricht empfängt (Schritt 9), wird der Host einen Vergleichshostbefehl zur Zielsteuerung ausgeben, um die von der Quelle gelesenen Daten mit den Daten in der entsprechenden Gruppe im Ziel zu vergleichen, um zu bestimmen, ob die Daten identisch sind (Schritt 10).
- Wenn ein Ergebnis von "Ja" erhalten wird, wird der Host prüfen, um zu sehen, ob der Logikgruppenzähler die letzte Logikgruppennummer in der Logikgruppennummerntabelle identifiziert (Schritt 13). Wenn das Ergebnis des Schritts 13 "Ja" ist, wird die Verbindungsoperation beendet. Sonst wird der Logikgruppenzähler inkrementiert (Schritt 14), und das Verfahren springt zurück zum Schritt 7, um die nächste Gruppe zu verarbeiten.
- Wenn ein Ergebnis von Nein zurückgebracht wurde, was anzeigt, daß die von den entsprechenden Gruppen an den zwei Verbindungselementen nicht identisch sind, wird der Host die folgenden Schritte implementieren, um die Daten konsistent zu machen.
- Der Host wird zunächst eine Kreuzungssystemsynchronisierung durch Senden einer Nachricht über ein Kommunikationsmedium 16 zu allen anderen Hosts im System aufbauen (Schritt 15). Jeder Host wird die gesendete Nachricht empfangen, wird alle ausstehenden I/O-Anfragen zur Schattengruppe beendet und wird neue I/O-Anfragen verzögern. Wenn dies einmal erreicht worden ist, sendet jeder Host eine "Bestätigungs"-Nachricht zu dem Host, der die Verbindung steuert, was anzeigt, daß er die Synchronisierungsanfrage eingehalten hat (Schritt 16).
- Nach einem Empfangen aller Bestätigungsnachrichten wird der Host einen weiteren Lesebefehl zur Quelle für dasselbe Lesen einer Gruppe im Schritt 7 unter Verwendung einer identischen Befehlsnachricht ausgeben (Schritt 17). Die Daten werden wiederum gelesen, weil ein anderer Host die Daten modifiziert haben kann, seit sie im Schritt 7 gelesen wurden. Die Quelle empfängt die Lesebefehlsnachricht und führt sie auf dieselbe Weise aus, wie es in Verbindung mit Schritt 8 oben beschrieben ist (Schritt 18). Der Host wird die Endnachricht von der Quelle noch einmal empfangen, wie oben im Schritt 9 (Schritt 19).
- Nun wird der Host einen Schreibbefehl zum Ziel unter Verwendung des Schreibbefehlsnachrichtenformats ausgeben, das in Fig. 2A gezeigt und oben beschrieben ist (Schritt 20). Der Schreibbefehl wird dem Ziel befehlen, die von der Quelle im Schritt 18 gelesenen Daten zur Gruppe in dem Ziel zu schreiben, das durch den Logikgruppenzähler identifiziert wird. Das Ziel empfängt den Schreibbefehl, führt ihn aus und sendet eine Endnachricht zum Host (Schritt 21). Diese Schritte werden darin resultieren, daß die Daten in den zwei entsprechenden Gruppen in der Quelle und dem Ziel konsistent sind. Es ist zu beachten, daß es aufgrund dessen, daß keine I/O-Anfragen während dieser Schritte verarbeitet werden (d.h. das System synchronisiert ist), keine Gefahr gibt, daß die Daten in der Quelle modifiziert werden, nachdem sie im Schritt 18 gelesen wurden, so daß die zur Gruppe des Ziels im Schritt 21 geschriebenen Daten identisch zu den Daten sein werden, die nun bei der entsprechenden Gruppe in der Quelle gespeichert sind.
- Nachdem der Host die Endnachricht empfängt, was anzeigt, daß das Schreiben beendet worden ist (Schritt 22), überträgt der Host eine Nachricht zu allen anderen Hosts, um die Kreuzsystemsynchronisierung zu beenden, wobei die Nachricht alle anderen Hosts darüber informiert, daß wieder normale I/O-Operationen aufgenommen werden können (Schritt 23). Der Host wird dann zum Schritt 13 zurückspringen und weitermachen, wie es oben beschrieben ist.
- Daher wählt der Host während einer Verbindungsoperation ein Schattengruppenelement als Quelle aus und vergleicht sequentiell die in jedem Datenblock (eine Gruppe zu einer Zeit) gespeicherten Daten mit Daten in den entsprechenden Datenblöcken im Ziel-Schattengruppenelement. Wenn der Host eine Inkonsistenz findet, wird das System temporär synchronisiert, während der Host die Inkonsistenz durch Lesen der inkonsistenten Daten von der Quelle und durch Schreiben der Daten zu der entsprechenden Gruppe im Ziel löst. Weil die Schattengruppenelemente, die normalerweise verbunden werden, nur eine sehr kleine Menge an Daten haben, die inkonsistent sind, wird eine Kreuzsystemsynchronisierung nur für eine kurze Zeit nötig sein, was in nur einer minimalen Unterbrechung der I/O- Operationen resultiert.
- Weil die Daten an beiden Schattengruppenelementen gleichermaßen gültig sind, wenn eine Gruppe am Schattengruppenelement, das als Quelle ausgewählt ist, zerstört ist (z.B. nicht gelesen werden kann), wird die entsprechende Gruppe am Zielort verwendet. D.h. der Zielort wirkt als Quelle für jene Gruppe. Daher kann eine Datenübertragung bei einer Verbindungsoperation in beiden Richtungen auftreten.
- Wenn ein Host im System eine Leseoperation durchführen muß, während ein weiterer Host gerade eine Verbindung durchführt, wie es oben beschrieben ist, muß der Host zuerst sicherstellen, daß die spezifische Stelle, zu welcher das Lesen gerichtet ist, konsistent ist. Um dies zu erreichen, wird der Host effektiv eine Verbindungsoperation an jenem spezifischen Abschnitt durchführen, indem er zuerst das Lesen zur Quelle ausgibt und dann einen Vergleichshostbefehl zum Zielort ausgibt, um zu bestimmen, ob die Daten konsistent sind. Wenn sie konsistent sind, dann fährt der Host mit seiner Verarbeitung der gelesenen Daten fort. Wenn sie nicht konsistent sind, dann wird der Host das System synchronisieren, die Daten von der Quelle erneut lesen und die Daten zum Zielort schreiben, wie es oben beschrieben ist.
- Da es einen beschränkten Raum in jedem Festplattensteuerungsspeicher 26 für das Schreibgeschichtenprotokoll gibt, werden die Hosts versuchen, so viele Schreibgeschichteneinträge wie möglich zur Verwendung verfügbar zu halten. Daher wird dann, wenn ein Host einen Schreibbefehl zu einem jeweiligen Element der Schattengruppe ausgibt und Endnachrichten von jeder Festplattensteuerung empfängt, was anzeigt, daß die Schreibanfrage erfolgreich durchgeführt wurde, der Host die Schreibgeschichteneinträge erneut verwenden, die den zu jeder Festplattensteuerung gesendeten Schreibanfragen zugeteilt wurden. Diese Einträge können wieder verwendet werden, weil dann, wenn ein Schreiben zu allen Elementen der Schattengruppe erfolgreich war, die Schattengruppe aufgrund jenes Schreibens nicht inkonsistent sein wird. Wie es oben erörtert ist, wird ein Host, der eine Verbindungsoperation durchführt, eine Zuteilung jener Einträge auflösen, die bei der Verbindungsoperation verwendet wurden, wenn die Operation einmal beendet ist.
- Das darstellende Ausführungsbeispiel beschreibt eine Verbindungsoperation, die an einem einzelnen Zielort durchgeführt wird, aber es können mehrere Zielorte verwendet werden, um dadurch drei oder mehrere Speichermedien zu verbinden. Gleichermaßen muß das System nicht dieselbe Elementenfestplatte wie die Quelle während der gesamten Verbindungsoperation verwenden, sondern kann andere Festplatten als Quelle verwenden.
- Die Schreibgeschichtenprotokolleigenschaft ist oben in Verbindung mit einer Verbindungsoperation in einer Schattengruppe beschrieben worden, und wird insbesondere dazu verwendet, die Effizienz einer Verbindungsoperation zu verbessern, indem bestimmt wird, welche Datenblöcke inkonsistente Daten enthalten können (d.h. Datenblöcke, die nicht mit Daten beschrieben worden sind, sollten keine inkonsistenten Daten enthalten und dürfen nicht verbunden werden). Jedoch gibt es andere mögliche Anwendungen einer Speichervorrichtung, die die Schreibprotokolleigenschaft enthält.
- Gleichermaßen kann die Erfindung, während das System der Fig. 1 das bevorzugte Ausführungsbeispiel ist, bei anderen Schattensystemen verwendet werden, wie beispielsweise denjenigen, die eine zentrale Steuerung" verwenden. Bei diesen Systemen greifen die Hosts auf die Schatten- bzw. Ergänzungsgruppenelemente durch eine zentrale Steuerung zu.
- Demgemäß soll die Erfindung nicht durch das oben beschriebene spezifische darstellende Ausführungsbeispiel beschränkt sein, sondern soll nur durch den Schutzbereich der beigefügten Ansprüche beschränkt sein.
Claims (18)
1. Verfahren zum Managen von Daten, die in einer Schatten- bzw.
Ergänzungsgruppe von Speichermedien mit einem ersten Speichermedlum (20) und
einem zweiten Speichermedium (20) gespeichert sind, auf die jeweils durch
eine Vielzahl von Datenverarbeitungsvorrichtungen (10) zugegriffen werden
kann, wobei die Daten in einer Vielzahl von Stellen des ersten
Speichermediums identisch zu Daten in einer entsprechenden Vielzahl von Stellen des
zweiten Speichermediums sind, wobei das Verfahren folgende Schritte
aufweist:
A. Unterhalten eines Protokolls von Informationen, die zu
Schreibbefehlen gehören, die von den Datenverarbeitungsvorrichtungen empfangen
werden, was folgende Schritte aufweist:
(i) Empfangen eines ersten Schreibbefehls von einer der
Datenverarbeitungsvorrichtungen (10), der zum ersten Speichermedium
gerichtet ist, wobei der erste Schreibbefehl erste Daten und eine erste
Adresseninformation enthält;
(ii) Schreiben der ersten Daten zu einer ersten Stelle im ersten
Speichermedium, die durch die erste Adresseninformation bestimmt wird;
(iii) Ausgeben einer ersten Endnachricht, die anzeigt, ob der Schritt zum
Schreiben zum ersten Speichermedium erfolgreich beendet wurde;
(iv) Schreiben der ersten Adresseninformation im Protokoll;
(v) Empfangen eines zweiten, zum zweiten Speichermedium
gerichteten Schreibbefehls von der einen der
Datenverarbeitungsvorrichtungen (10), wobei der zweite Schreibbefehl die ersten Daten und eine
zweite Adresseninformation enthält;
(vi) Schreiben der ersten Daten zu einer zweiten Stelle im zweiten
Speichermedium, die durch die zweite Adresseninformation bestimmt
wird;
(vii) Ausgeben einer zweiten Endnachricht, die anzeigt, ob der Schritt
zum Schreiben zum zweiten Speichermedium erfolgreich beendet
wurde; und
(viii) Schreiben der zweiten Adresseninformation im Protokoll; und
B. Implementieren einer Managementoperation nur an Stellen in der
Ergänzungsgruppe von Speichermedien, die durch die Adresseninformation
im Protokoll angezeigt wird, um Daten im ersten Speichermedium identisch zu
Daten zu machen, die in entsprechenden Stellen im zweiten Speichermedium
gespeichert sind, wenn eine erste oder eine zweite Endnachricht ausgegeben
wird, die anzeigt, daß eine Schreiboperation zu entweder dem ersten oder
dem zweiten Speichermedium nicht erfolgreich beendet wurde.
2. Verfahren nach Anspruch 1, wobei das Protokoll in einer Stelle (26)
unabhängig von der Ergänzungsgruppe von Speichermedien gespeichert wird.
3. Verfahren nach Anspruch 2, wobei die unabhängige Stelle (26) unabhängig
von jeder der Datenverarbeitungsvorrichtungen (10) ist.
4. Verfahren nach Anspruch 1, wobei wenigstens einer der ersten und zweiten
Schreibbefehle Informationen aufweist, die die Datenverarbeitungsvorrichtung
identifizieren, von der der Schreibbefehl empfangen wurde, und wobei der
Schritt zum Schreiben von Informationen zum Protokoll weiterhin ein
Schreiben der identifizierenden Informationen in das Protokoll aufweist.
5. Verfahren nach Anspruch 4, wobei die Managementoperation an Stellen
ausgeführt wird, die auf der Basis der Datenverarbeitungsvorrichtung
ausgewählt werden, von der Daten geschrieben wurden.
6. Verfahren nach Anspruch 1, wobei die erste und die zweite
Adresseninformation im Protokoll für Daten gespeichert wird, die zu den ersten und zweiten
Speichermedien über eine vorbestimmte Zeitperiode geschrieben werden.
7. Verfahren nach Anspruch 6, wobei aufeinanderfolgende der
Managementoperationen ausgeführt werden, wobei die vorbestimmte Zeitperiode gleich
der Zeit zwischen zwei aufeinanderfolgenden Managementoperationen ist.
8. Verfahren nach Anspruch 1, wobei das Protokoll von der Adresseninformation
gelöscht wird, nachdem die Managementoperation beendet ist.
9. Verfahren nach Anspruch 1, wobei der Schritt zum Unterhalten eines
Protokolls von Informationen ein Unterhalten eines ersten Protokolls von
Informationen
aufweist, die zu ersten Schreibbefehlen zum ersten Speichermedium
gehört, und eines zweiten Protokolls von Informationen, die zu zweiten
Schreibbefehlen zum zweiten Speichermedium gehört.
10. Gerät zum Managen von Daten, die in einer Schatten- bzw.
Ergänzungsgruppe von Speichermedien mit einem ersten Speichermedium (20) und einem
zweiten Speichermedium (20) gespeichert sind, auf die jeweils durch eine
Vielzahl von Datenverarbeitungsvorrichtungen (10) zugreifbar ist, wobei die
Daten in eine Vielzahl von Stellen des ersten Speichermediums identisch zu
Daten in einer entsprechenden Vielzahl von Stellen des zweiten
Speichermediums sind, wobei das Gerät folgendes aufweist:
eine Einrichtung zum Unterhalten eines Protokolls von Informationen, die
zu Schreibbefehlen gehören, die von den Datenverarbeitungsvorrichtungen
empfangen werden, wobei die Einrichtung zum Unterhalten folgendes
aufweist:
eine Einrichtung zum Empfangen eines ersten und eines zweiten
Schreibbefehls von einer der Datenverarbeitungsvorrichtungen (10), wobei
der erste Schreibbefehl erste Daten und eine erste Adresseninformation
enthält und der zweite Schreibbefehl die ersten Daten und eine zweite
Adresseninformation enthält;
eine Einrichtung zum Schreiben der ersten Daten zu einer ersten Stelle
im ersten Speichermedium, die durch die erste Adresseninformation bestimmt
wird, und zum Schreiben der ersten Daten zu einer zweiten Stelle im zweiten
Speichermedium, die durch die zweite Adresseninformation bestimmt wird;
eine Einrichtung zum Ausgeben einer ersten und einer zweiten
Endnachricht, die anzeigen, ob eine Schreiboperation zu jeweils dem ersten und dem
zweiten Speichermedium erfolgreich beendet wurde; und
eine Einrichtung zum Schreiben der ersten und zweiten
Adresseninformation ins Protokoll; und
eine Einrichtung zum Implementieren einer Managementoperation nur an
Stellen in der Ergänzungsgruppe von Speichermedien, die durch
Adresseninformation im Protokoll angezeigt wird, um Daten im ersten Speichermedium
identisch zu Daten zu machen, die in entsprechenden Stellen im zweiten
Speichermedium gespeichert sind, wenn eine erste oder zweite Endnachricht
ausgegeben wird, die anzeigt, daß eine Schreiboperation zu entweder dem
ersten oder dem zweiten Speichermedlum nicht erfolgreich beendet wurde.
11. Gerät nach Anspruch 10, wobei die Ergänzungsgruppe von Speichermedien
folgendes aufweist:
ein erstes Speicheruntersystem (17), das eine erste Festplattensteuerung
(18) und das erste Speichermedium (20) enthält; und
ein zweites Speicheruntersystem (17), das eine zweite
Festplattensteuerung (18) und das zweite Speichermedium (20) aufweist.
12. Gerät nach Anspruch 10, wobei wenigstens einer der ersten und zweiten
Schreibbefehle Informationen aufweist, die die Datenverarbeitungsvorrichtung
(10) identifizieren, von der der Schreibbefehl empfangen wurde, wobei das
Gerät weiterhin eine Einrichtung zum Schreiben der identifizierenden
Informationen in das Protokoll aufweist.
13. Gerät nach Anspruch 12, wobei die Managementoperation in bezug auf
Stellen ausgeführt wird, die auf der Basis der Datenverarbeitungsvorrichtung
ausgewählt werden, von der Daten geschrieben wurden.
14. Gerät nach Anspruch 10, wobei die Adresseninformation im Protokoll für
Daten gespeichert wird, die zu der Ergänzungsgmppe von Speichermedien
geschrieben werden, über eine vorbestimmte Zeitperiode.
15. Gerät nach Anspruch 14, wobei aufeinanderfolgende der
Managementoperationen ausgeführt werden, wobei die vorbestimmte Zeitperiode gleich der Zeit
zwischen zwei der Managementoperationen ist.
16. Gerät nach Anspruch 10, wobei die Einrichtung zum Unterhalten eines
Protokolls von Informationen ein erstes Protokoll von Informationen für die erste
Adresseninformation und ein zweites Protokoll von Informationen für die
zweite Adresseninformation unterhält.
17. Gerät nach Anspruch 16, wobei die Ergänzungsgruppe von Speichermedien
folgendes aufweist:
ein erstes Speicheruntersystem (17), das eine erste Festplattensteuerung
(18), einen ersten lokalen Speicher (26) und das erste Speichermedium (20)
enthält; und
ein zweites Speicheruntersystem (17), das eine zweite
Festplattensteuerung (18), einen zweiten lokalen Speicher (26) und das zweite
Speichermedium (20) enthält;
wobei das erste Protokoll von Informationen im ersten lokalen Speicher
gespeichert wird und das zweite Protokoll von Informationen im zweiten
lokalen Speicher gespeichert wird.
18. Gerät nach Anspruch 10, das weiterhin folgendes aufweist: eine Einrichtung
zum Löschen des Protokolls von Adresseninformationen, nachdem die
Manage-mentoperation beendet ist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US37425189A | 1989-06-30 | 1989-06-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69031443D1 DE69031443D1 (de) | 1997-10-23 |
DE69031443T2 true DE69031443T2 (de) | 1998-04-23 |
Family
ID=23475942
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69031443T Expired - Fee Related DE69031443T2 (de) | 1989-06-30 | 1990-06-22 | Verfahren und Anordnung zur Steuerung von Schattenspeichern |
Country Status (8)
Country | Link |
---|---|
US (1) | US5546536A (de) |
EP (1) | EP0405859B1 (de) |
JP (1) | JPH07111689B2 (de) |
AT (1) | ATE158424T1 (de) |
AU (1) | AU622333B2 (de) |
CA (1) | CA2020269A1 (de) |
DE (1) | DE69031443T2 (de) |
TW (1) | TW285727B (de) |
Families Citing this family (72)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2778786B2 (ja) * | 1990-03-02 | 1998-07-23 | 富士通株式会社 | データ更新・復元処理方式 |
US5446904A (en) * | 1991-05-17 | 1995-08-29 | Zenith Data Systems Corporation | Suspend/resume capability for a protected mode microprocessor |
JP3243919B2 (ja) * | 1994-02-23 | 2002-01-07 | 三菱電機株式会社 | ディスク装置、および、このディスク装置を使用したfaコントローラ |
DE69510251T2 (de) * | 1994-02-28 | 1999-11-25 | Canon K.K., Tokio/Tokyo | Informationsverarbeitungsverfahren und -vorrichtung |
JP3136258B2 (ja) * | 1995-09-27 | 2001-02-19 | 三菱電機株式会社 | ディスク更新ログ記録方式 |
US5862318A (en) * | 1995-10-26 | 1999-01-19 | Microsoft Corporation | System for generating a gapless series of identity values |
US5953742A (en) * | 1996-07-01 | 1999-09-14 | Sun Microsystems, Inc. | Memory management in fault tolerant computer systems utilizing a first and second recording mechanism and a reintegration mechanism |
JP3671595B2 (ja) * | 1997-04-01 | 2005-07-13 | 株式会社日立製作所 | 複合計算機システムおよび複合i/oシステム |
US5951695A (en) * | 1997-07-25 | 1999-09-14 | Hewlett-Packard Company | Fast database failover |
US6192460B1 (en) | 1997-12-16 | 2001-02-20 | Compaq Computer Corporation | Method and apparatus for accessing data in a shadow set after a failed data operation |
US6170063B1 (en) * | 1998-03-07 | 2001-01-02 | Hewlett-Packard Company | Method for performing atomic, concurrent read and write operations on multiple storage devices |
JP4689137B2 (ja) * | 2001-08-08 | 2011-05-25 | 株式会社日立製作所 | リモートコピー制御方法、及びストレージシステム |
US6128699A (en) * | 1998-10-27 | 2000-10-03 | Hewlett-Packard Company | Method for providing read/write access while copying data between shared storage devices |
US6341317B1 (en) * | 1998-12-30 | 2002-01-22 | Emc Corporation | Method and apparatus for managing a log of information in a computer system including an intelligent storage system |
US6408314B1 (en) | 1999-07-06 | 2002-06-18 | Synscort Incorporated | Method of performing a high-performance sort which gains efficiency by reading input file blocks sequentially |
US6415300B1 (en) | 1999-07-06 | 2002-07-02 | Syncsort Incorporated | Method of performing a high-performance backup which gains efficiency by reading input file blocks sequentially |
US6671705B1 (en) * | 1999-08-17 | 2003-12-30 | Emc Corporation | Remote mirroring system, device, and method |
US6684294B1 (en) * | 2000-03-31 | 2004-01-27 | Intel Corporation | Using an access log for disk drive transactions |
DE10053016A1 (de) * | 2000-10-17 | 2002-04-25 | Libelle Informatik Gmbh | Vorrichtung und Verfahren zur Datenspiegelung |
IL139628A0 (en) * | 2000-11-12 | 2002-02-10 | Eci Telecom Ltd | Data mirroring restoration in a distributed system |
US6823349B1 (en) * | 2001-09-21 | 2004-11-23 | Emc Corporation | Method and system for establishing, maintaining, and using a persistent fracture log |
US6587536B1 (en) * | 2002-03-18 | 2003-07-01 | Holtec International, Inc. | Method and apparatus for maximizing radiation shielding during cask transfer procedures |
US6928513B2 (en) * | 2002-03-26 | 2005-08-09 | Hewlett-Packard Development Company, L.P. | System and method for managing data logging memory in a storage area network |
US6993635B1 (en) * | 2002-03-29 | 2006-01-31 | Intransa, Inc. | Synchronizing a distributed mirror |
US7171396B2 (en) * | 2002-04-04 | 2007-01-30 | Hewlett-Packard Development Company, L.P. | Method and program product for specifying the different data access route for the first data set includes storing an indication of the different access for the first data set providing alternative data access routes to a data storage |
GB0227786D0 (en) * | 2002-11-29 | 2003-01-08 | Ibm | Improved remote copy synchronization in disaster recovery computer systems |
US7809762B1 (en) * | 2003-07-11 | 2010-10-05 | Bmc Software, Inc. | Outage-less database change operation |
CA2546304A1 (en) | 2003-11-13 | 2005-05-26 | Commvault Systems, Inc. | System and method for performing an image level snapshot and for restoring partial volume data |
US7137033B2 (en) * | 2003-11-20 | 2006-11-14 | International Business Machines Corporation | Method, system, and program for synchronizing subtasks using sequence numbers |
US7412577B2 (en) * | 2004-02-05 | 2008-08-12 | International Business Machines Corporation | Shared data mirroring apparatus, method, and system |
US7130971B2 (en) * | 2004-03-30 | 2006-10-31 | Hitachi, Ltd. | Assuring genuineness of data stored on a storage device |
US7809898B1 (en) * | 2004-05-18 | 2010-10-05 | Symantec Operating Corporation | Detecting and repairing inconsistencies in storage mirrors |
US7472129B2 (en) * | 2004-06-29 | 2008-12-30 | Microsoft Corporation | Lossless recovery for computer systems with map assisted state transfer |
US7360111B2 (en) * | 2004-06-29 | 2008-04-15 | Microsoft Corporation | Lossless recovery for computer systems with remotely dependent data recovery |
CA2632935C (en) * | 2005-12-19 | 2014-02-04 | Commvault Systems, Inc. | Systems and methods for performing data replication |
US7606844B2 (en) | 2005-12-19 | 2009-10-20 | Commvault Systems, Inc. | System and method for performing replication copy storage operations |
US7651593B2 (en) | 2005-12-19 | 2010-01-26 | Commvault Systems, Inc. | Systems and methods for performing data replication |
US8661216B2 (en) | 2005-12-19 | 2014-02-25 | Commvault Systems, Inc. | Systems and methods for migrating components in a hierarchical storage network |
US7617262B2 (en) | 2005-12-19 | 2009-11-10 | Commvault Systems, Inc. | Systems and methods for monitoring application data in a data replication system |
US8726242B2 (en) | 2006-07-27 | 2014-05-13 | Commvault Systems, Inc. | Systems and methods for continuous data replication |
US8290808B2 (en) | 2007-03-09 | 2012-10-16 | Commvault Systems, Inc. | System and method for automating customer-validated statement of work for a data storage environment |
US9495382B2 (en) | 2008-12-10 | 2016-11-15 | Commvault Systems, Inc. | Systems and methods for performing discrete data replication |
US8204859B2 (en) | 2008-12-10 | 2012-06-19 | Commvault Systems, Inc. | Systems and methods for managing replicated database data |
US8095828B1 (en) * | 2009-08-31 | 2012-01-10 | Symantec Corporation | Using a data storage system for cluster I/O failure determination |
US8504517B2 (en) | 2010-03-29 | 2013-08-06 | Commvault Systems, Inc. | Systems and methods for selective data replication |
US8504515B2 (en) | 2010-03-30 | 2013-08-06 | Commvault Systems, Inc. | Stubbing systems and methods in a data replication environment |
US8725698B2 (en) | 2010-03-30 | 2014-05-13 | Commvault Systems, Inc. | Stub file prioritization in a data replication system |
US8352422B2 (en) | 2010-03-30 | 2013-01-08 | Commvault Systems, Inc. | Data restore systems and methods in a replication environment |
WO2011150391A1 (en) | 2010-05-28 | 2011-12-01 | Commvault Systems, Inc. | Systems and methods for performing data replication |
US9298715B2 (en) | 2012-03-07 | 2016-03-29 | Commvault Systems, Inc. | Data storage system utilizing proxy device for storage operations |
US9471578B2 (en) | 2012-03-07 | 2016-10-18 | Commvault Systems, Inc. | Data storage system utilizing proxy device for storage operations |
US9342537B2 (en) | 2012-04-23 | 2016-05-17 | Commvault Systems, Inc. | Integrated snapshot interface for a data storage system |
US8862642B1 (en) | 2012-06-29 | 2014-10-14 | Emc Corporation | Endurant cache |
US9058326B1 (en) * | 2012-06-29 | 2015-06-16 | Emc Corporation | Recovery and flush of endurant cache |
US9336226B2 (en) | 2013-01-11 | 2016-05-10 | Commvault Systems, Inc. | Criteria-based data synchronization management |
US9886346B2 (en) | 2013-01-11 | 2018-02-06 | Commvault Systems, Inc. | Single snapshot for multiple agents |
US9639426B2 (en) | 2014-01-24 | 2017-05-02 | Commvault Systems, Inc. | Single snapshot for multiple applications |
US9753812B2 (en) | 2014-01-24 | 2017-09-05 | Commvault Systems, Inc. | Generating mapping information for single snapshot for multiple applications |
US9632874B2 (en) | 2014-01-24 | 2017-04-25 | Commvault Systems, Inc. | Database application backup in single snapshot for multiple applications |
US9495251B2 (en) | 2014-01-24 | 2016-11-15 | Commvault Systems, Inc. | Snapshot readiness checking and reporting |
US9774672B2 (en) | 2014-09-03 | 2017-09-26 | Commvault Systems, Inc. | Consolidated processing of storage-array commands by a snapshot-control media agent |
US10042716B2 (en) | 2014-09-03 | 2018-08-07 | Commvault Systems, Inc. | Consolidated processing of storage-array commands using a forwarder media agent in conjunction with a snapshot-control media agent |
US9448731B2 (en) | 2014-11-14 | 2016-09-20 | Commvault Systems, Inc. | Unified snapshot storage management |
US9648105B2 (en) | 2014-11-14 | 2017-05-09 | Commvault Systems, Inc. | Unified snapshot storage management, using an enhanced storage manager and enhanced media agents |
US10503753B2 (en) | 2016-03-10 | 2019-12-10 | Commvault Systems, Inc. | Snapshot replication operations based on incremental block change tracking |
GB2549737B (en) * | 2016-04-26 | 2019-05-08 | Advanced Risc Mach Ltd | An apparatus and method for managing address collisions when performing vector operations |
US10740022B2 (en) | 2018-02-14 | 2020-08-11 | Commvault Systems, Inc. | Block-level live browsing and private writable backup copies using an ISCSI server |
US11055184B2 (en) | 2018-12-19 | 2021-07-06 | Vmware, Inc. | In-place garbage collection of a sharded, replicated distributed state machine based on supersedable operations |
US10877881B2 (en) * | 2019-01-11 | 2020-12-29 | Vmware, Inc. | In-place garbage collection of a sharded, replicated distributed state machine based on mergeable operations |
US11042318B2 (en) | 2019-07-29 | 2021-06-22 | Commvault Systems, Inc. | Block-level data replication |
US11809285B2 (en) | 2022-02-09 | 2023-11-07 | Commvault Systems, Inc. | Protecting a management database of a data storage management system to meet a recovery point objective (RPO) |
US12056018B2 (en) | 2022-06-17 | 2024-08-06 | Commvault Systems, Inc. | Systems and methods for enforcing a recovery point objective (RPO) for a production database without generating secondary copies of the production database |
Family Cites Families (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3544777A (en) * | 1967-11-06 | 1970-12-01 | Trw Inc | Two memory self-correcting system |
US3668644A (en) * | 1970-02-09 | 1972-06-06 | Burroughs Corp | Failsafe memory system |
US4199810A (en) * | 1977-01-07 | 1980-04-22 | Rockwell International Corporation | Radiation hardened register file |
US4189781A (en) * | 1977-01-25 | 1980-02-19 | International Business Machines Corporation | Segmented storage logging and controlling |
JPS5637883A (en) * | 1979-09-04 | 1981-04-11 | Fanuc Ltd | Information rewrite system |
US4467421A (en) * | 1979-10-18 | 1984-08-21 | Storage Technology Corporation | Virtual storage system and method |
JPS607818B2 (ja) * | 1980-04-28 | 1985-02-27 | 横河電機株式会社 | フアイルのバツクアツプ方法 |
US4432057A (en) * | 1981-11-27 | 1984-02-14 | International Business Machines Corporation | Method for the dynamic replication of data under distributed system control to control utilization of resources in a multiprocessing, distributed data base system |
US4476526A (en) * | 1981-11-27 | 1984-10-09 | Storage Technology Corporation | Cache buffered memory subsystem |
US4450559A (en) * | 1981-12-24 | 1984-05-22 | International Business Machines Corporation | Memory system with selective assignment of spare locations |
US4636946A (en) * | 1982-02-24 | 1987-01-13 | International Business Machines Corporation | Method and apparatus for grouping asynchronous recording operations |
DE3208573C2 (de) * | 1982-03-10 | 1985-06-27 | Standard Elektrik Lorenz Ag, 7000 Stuttgart | 2 aus 3-Auswahleinrichtung für ein 3-Rechnersystem |
US4503534A (en) * | 1982-06-30 | 1985-03-05 | Intel Corporation | Apparatus for redundant operation of modules in a multiprocessing system |
EP0128945B1 (de) * | 1982-12-09 | 1991-01-30 | Sequoia Systems, Inc. | Sicherstellungsspeichersystem |
US4819154A (en) * | 1982-12-09 | 1989-04-04 | Sequoia Systems, Inc. | Memory back up system with one cache memory and two physically separated main memories |
JPS59142799A (ja) * | 1983-02-04 | 1984-08-16 | Hitachi Ltd | バツクアツプ用蓄電装置付二重化記憶装置 |
JPS59165162A (ja) * | 1983-03-11 | 1984-09-18 | インタ−ナシヨナル ビジネス マシ−ンズ コ−ポレ−シヨン | ボリューム回復方法 |
US4602368A (en) * | 1983-04-15 | 1986-07-22 | Honeywell Information Systems Inc. | Dual validity bit arrays |
JPS59201297A (ja) * | 1983-04-28 | 1984-11-14 | Nec Corp | 情報検証方式 |
US4600990A (en) * | 1983-05-16 | 1986-07-15 | Data General Corporation | Apparatus for suspending a reserve operation in a disk drive |
US4584681A (en) * | 1983-09-02 | 1986-04-22 | International Business Machines Corporation | Memory correction scheme using spare arrays |
US4608687A (en) * | 1983-09-13 | 1986-08-26 | International Business Machines Corporation | Bit steering apparatus and method for correcting errors in stored data, storing the address of the corrected data and using the address to maintain a correct data condition |
US4608688A (en) * | 1983-12-27 | 1986-08-26 | At&T Bell Laboratories | Processing system tolerant of loss of access to secondary storage |
US4638424A (en) * | 1984-01-12 | 1987-01-20 | International Business Machines Corporation | Managing data storage devices connected to a digital computer |
JPS60156150A (ja) * | 1984-01-25 | 1985-08-16 | Hitachi Ltd | 計算機間フアイル共有方式 |
US4755928A (en) * | 1984-03-05 | 1988-07-05 | Storage Technology Corporation | Outboard back-up and recovery system with transfer of randomly accessible data sets between cache and host and cache and tape simultaneously |
US4916605A (en) * | 1984-03-27 | 1990-04-10 | International Business Machines Corporation | Fast write operations |
US4617475A (en) * | 1984-03-30 | 1986-10-14 | Trilogy Computer Development Partners, Ltd. | Wired logic voting circuit |
US4959774A (en) * | 1984-07-06 | 1990-09-25 | Ampex Corporation | Shadow memory system for storing variable backup blocks in consecutive time periods |
US4686620A (en) * | 1984-07-26 | 1987-08-11 | American Telephone And Telegraph Company, At&T Bell Laboratories | Database backup method |
JPS6150293A (ja) * | 1984-08-17 | 1986-03-12 | Fujitsu Ltd | 半導体記憶装置 |
US4747038A (en) * | 1984-10-04 | 1988-05-24 | Honeywell Bull Inc. | Disk controller memory address register |
JPS61148546A (ja) * | 1984-12-24 | 1986-07-07 | Nec Corp | フアイル制御装置 |
JPH0622021B2 (ja) * | 1985-01-18 | 1994-03-23 | 富士通株式会社 | 多重化共用ファイルメモリの動的構成変更システム |
JPS61264599A (ja) * | 1985-05-16 | 1986-11-22 | Fujitsu Ltd | 半導体記憶装置 |
US4751639A (en) * | 1985-06-24 | 1988-06-14 | Ncr Corporation | Virtual command rollback in a fault tolerant data processing system |
US4710870A (en) * | 1985-07-10 | 1987-12-01 | Bell Communications Research, Inc. | Central computer backup system utilizing localized data bases |
US4814971A (en) * | 1985-09-11 | 1989-03-21 | Texas Instruments Incorporated | Virtual memory recovery system using persistent roots for selective garbage collection and sibling page timestamping for defining checkpoint state |
US4805095A (en) * | 1985-12-23 | 1989-02-14 | Ncr Corporation | Circuit and a method for the selection of original data from a register log containing original and modified data |
JPS62197858A (ja) * | 1986-02-26 | 1987-09-01 | Hitachi Ltd | システム間デ−タベ−ス共用方式 |
SE454730B (sv) * | 1986-09-19 | 1988-05-24 | Asea Ab | Forfarande och datorutrustning for stotfri omkoppling av funktionen fran aktiva enheter till beredskapsenheter i en centralenhet |
DE3853503T2 (de) * | 1987-08-20 | 1995-09-28 | Ibm | Verfahren und Vorrichtung zur Instandhaltung von Duplexpaarverteilten Geräten mittels einer Doppelkopiefunktion. |
JP2924905B2 (ja) * | 1988-03-25 | 1999-07-26 | エヌシーアール インターナショナル インコーポレイテッド | フアイル・バツクアツプ・システム |
KR900005300A (ko) * | 1988-09-13 | 1990-04-13 | 윌슨 디.파아고 | 핫 백업 파일 서버 시스템 |
US5089958A (en) * | 1989-01-23 | 1992-02-18 | Vortex Systems, Inc. | Fault tolerant computer backup system |
-
1990
- 1990-06-22 AT AT90306856T patent/ATE158424T1/de not_active IP Right Cessation
- 1990-06-22 DE DE69031443T patent/DE69031443T2/de not_active Expired - Fee Related
- 1990-06-22 EP EP90306856A patent/EP0405859B1/de not_active Expired - Lifetime
- 1990-06-28 JP JP2171307A patent/JPH07111689B2/ja not_active Expired - Lifetime
- 1990-06-29 AU AU57954/90A patent/AU622333B2/en not_active Ceased
- 1990-06-29 CA CA002020269A patent/CA2020269A1/en not_active Abandoned
- 1990-11-02 TW TW079109287A patent/TW285727B/zh active
-
1995
- 1995-03-23 US US08/409,905 patent/US5546536A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0405859A2 (de) | 1991-01-02 |
DE69031443D1 (de) | 1997-10-23 |
AU622333B2 (en) | 1992-04-02 |
TW285727B (de) | 1996-09-11 |
JPH07111689B2 (ja) | 1995-11-29 |
CA2020269A1 (en) | 1990-12-31 |
JPH03135638A (ja) | 1991-06-10 |
US5546536A (en) | 1996-08-13 |
ATE158424T1 (de) | 1997-10-15 |
EP0405859B1 (de) | 1997-09-17 |
EP0405859A3 (en) | 1991-12-04 |
AU5795490A (en) | 1991-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69031443T2 (de) | Verfahren und Anordnung zur Steuerung von Schattenspeichern | |
DE69021957T2 (de) | Verfahren und Anordnung zur Steuerung von Schattenspeichern. | |
DE69801112T2 (de) | Dateispeicherverwaltungssystem für schnappschusskopieroperationen | |
DE3805107C2 (de) | ||
DE68928546T2 (de) | Dateisystem für eine vielzahl von speicherklassen | |
DE69802437T2 (de) | Feinkörniger übereinstimmungsmechanismus für optimistische parallelsteuerung mit verriegelungsgruppen | |
DE69403192T2 (de) | Vorrichtung und verfahren zur datensicherung von speichereinheiten in einem rechnernetzwerk | |
DE69224589T2 (de) | Speicherplattenanordnung und Verfahren zur Bestimmung des Vorhandenseins korrekter Speichervorrichtungen | |
DE69022716T2 (de) | Mehrrechnersystem mit verteilten gemeinsamen Betriebsmitteln und dynamischer und selektiver Vervielfältigung globaler Daten und Verfahren dafür. | |
DE69322549T2 (de) | Verteilte Transaktionsverarbeitung mit einem Zwei-Phasen-Bindungsprotokoll mit erwarteter Bindung ohne Aufzeichnungspflicht | |
DE69126050T2 (de) | Verfahren zur Aktualisierung oder Wiedergabe gespeicherter Datengruppen und System zu dessen Erzeugung | |
DE60317383T2 (de) | Datenwiederherstellungsvorrichtung unter Verwendung von Journaldaten und Identifikationsinformation | |
DE3689664T2 (de) | Verfahren und Gerät zur Verwaltung von veralteten Datenobjekten. | |
DE69126067T2 (de) | Verfahren und Gerät zur Verwaltung von Zustandsidentifizierern zur effizienten Wiederherstellung | |
DE69030024T2 (de) | Verfahren zur Herstellung einer Duplikation von einer Datenbank | |
DE60018872T2 (de) | System und Methode für das Löschen von Datenbank-Aktualisierungsbilddateien nach Abschluss der dazugehörigen Transaktionen | |
DE69116065T2 (de) | Datenrückgewinnung in massenspeicherdatenbanksystemen | |
DE69710578T2 (de) | Verfahren zum unabhängigen und gleichzeitigen zugriff auf eine gemeinsame datensammlung | |
DE69730449T2 (de) | Erzeugung einer spiegeldatenkopie (bild) unter verwendung von referenzetiketten | |
DE602005000819T2 (de) | Aufrechterhaltung der konsistenz einer fernkopie unter verwendung von virtualisierung | |
DE112010004947B4 (de) | Wiederherstellung einer vollständigen Systemsicherung und inkrementeller Sicherungen unter Verwendung von mehreren gleichzeitigen Datenströmen von Einheiten | |
DE3779770T2 (de) | Instandhaltung der verfuegbarkeit eines wiederanlauffaehigen datenbasissystems. | |
DE69714344T2 (de) | Vorrichtung und Verfahren für die Verfügbarkeit und Wiedergewinnung von Dateien unter Verwendung von Sammlungen von Kopierspeicher | |
DE602005002024T2 (de) | Fernkopiersystem und Fernkopierverfahren | |
DE602005004166T2 (de) | Vorrichtung, system und verfahren zur reinitialisierung einer serialisierung von dateisystemen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8328 | Change in the person/name/address of the agent |
Free format text: GRUENECKER, KINKELDEY, STOCKMAIR & SCHWANHAEUSSER, 80538 MUENCHEN |
|
8339 | Ceased/non-payment of the annual fee |