DE69031443T2 - Verfahren und Anordnung zur Steuerung von Schattenspeichern - Google Patents

Verfahren und Anordnung zur Steuerung von Schattenspeichern

Info

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
Application number
DE69031443T
Other languages
English (en)
Other versions
DE69031443D1 (de
Inventor
Robert G Bean
Scott H Davis
William L Goleman
David W Thiel
James A Zahrobsky
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.)
Digital Equipment Corp
Original Assignee
Digital Equipment Corp
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 Digital Equipment Corp filed Critical Digital Equipment Corp
Publication of DE69031443D1 publication Critical patent/DE69031443D1/de
Application granted granted Critical
Publication of DE69031443T2 publication Critical patent/DE69031443T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/2082Data synchronisation
    • 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
    • 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

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.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • 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.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSBEISPIELE Zeichnungen
  • 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.
  • Struktur und Operation
  • 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.
DE69031443T 1989-06-30 1990-06-22 Verfahren und Anordnung zur Steuerung von Schattenspeichern Expired - Fee Related DE69031443T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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