DE60016371T2 - Vorrichtung und verfahren um die übereinstimmung der daten in einer gruppe von einspiegelungseinrichtungen gespeichert zu behalten - Google Patents

Vorrichtung und verfahren um die übereinstimmung der daten in einer gruppe von einspiegelungseinrichtungen gespeichert zu behalten Download PDF

Info

Publication number
DE60016371T2
DE60016371T2 DE60016371T DE60016371T DE60016371T2 DE 60016371 T2 DE60016371 T2 DE 60016371T2 DE 60016371 T DE60016371 T DE 60016371T DE 60016371 T DE60016371 T DE 60016371T DE 60016371 T2 DE60016371 T2 DE 60016371T2
Authority
DE
Germany
Prior art keywords
source storage
storage devices
storage device
source
mirroring
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 - Lifetime
Application number
DE60016371T
Other languages
English (en)
Other versions
DE60016371D1 (de
Inventor
Dan Arnon
Yuval Ofek
E. Douglas LECRONE
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.)
EMC Corp
Original Assignee
EMC 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 EMC Corp filed Critical EMC Corp
Publication of DE60016371D1 publication Critical patent/DE60016371D1/de
Application granted granted Critical
Publication of DE60016371T2 publication Critical patent/DE60016371T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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/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
    • 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/2069Management of state, configuration or failover
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft ein Verfahren und eine Vorrichtung zum Beibehalten einer Konsistenz von Daten, die in einer Gruppe von Spiegelungsvorrichtungen gespeichert sind.
  • Beschreibung des zugehörigen Standes der Technik
  • Eine Anzahl von Computersystemkonfigurationen spiegelt Information, die in Quellenspeichervorrichtungen gespeichert ist, zu Zielspeichervorrichtungen, die an Stellen angeordnet sein können, die von den Quellenspeichervorrichtungen entfernt sind. Ein Beispiel für ein solches Computersystem ist ein Datenspiegelungssystem 100, das nachfolgend in Zusammenhang mit 1 diskutiert wird.
  • Bei dem Datenspiegelungssystem 100 der 1 ist eine Host-CPU oder sind mehrere Host-CPUs 102 (über eine oder mehrere Kommunikationsverbindungen 114) mit einem Quellenspeichersystem 104 gekoppelt. Bei dem gezeigten Beispiel enthält das Quellenspeichersystem 104 eine Vielzahl von "Quellen"-Speichervorrichtungen 110a–f. Die Quellenspeichervorrichtungen 110a–f können in einem einzigen Quellenspeichersystem 104 enthalten sein, wie es in 1 gezeigt ist, oder mehrere Quellenspeichersysteme 104 können verwendet werden, und die Quellenspeichervorrichtungen 110a–f können über die mehreren Quellenspeichersysteme verteilt sein. Jedes Quellenspeichersystem 104 kann beispielsweise ein Speichersystem aus der SYMMETRIX-Reihe von Plattenanordnungen aufweisen, die von EMC Corporation, Hopkinton, MA erhältlich sind.
  • Die in den Quellenspeichervorrichtungen 100a–f gespeicherten Daten können entscheidend für den Betrieb der Host-CPU(s) 102 sein. Daher ist in dem Fall eine Zufallslösung wünschenswert, in welchem ein Problem bei irgendeiner der Quellenspeichervorrichtungen 110a–f erfahren wird, um sicherzustellen, dass die dadurch gespeicherten Daten nicht verloren werden, und um das Risiko zu minimieren, dass die Host-CPU(s) 102 aufgrund von Problemen mit den Quellenspeichervorrichtungen 110a–f ruiniert werden bzw. kaputtgehen. Potenzielle Probleme bei den Quellenspeichervorrichtungen 110a–f können beispielsweise Hardware- oder Softwarefehler enthalten, die veranlassen können, dass gespeicherte Daten nicht wiedergewinnbar sind. Zusätzlich könnten Katastrophenereignisse, wie beispielsweise ein Erdbeben oder eine andere Naturkatastrophe in der Zerstörung von einer oder mehreren der Quellenspeichervorrichtungen 110a–f resultieren.
  • Eine Lösung zum Schützen der in den Quellenspeichervorrichtungen 110a–f gespeicherten Daten besteht im Spiegeln der Daten in einer entsprechenden Gruppe von "Ziel"-Speichervorrichtungen. Das Datenspiegelungssystem 100 der 1 ist ein Beispiel für ein solches System, wobei das Quellenspeichersystem 104 (über Verbindungen 112a–f) mit einem Zielspeichersystem 106 gekoppelt ist. Das Zielspeichersystem 106 enthält eine Vielzahl von Zielspeichervorrichtungen 116a–f, die jeweils den Quellenspeichervorrichtungen 110a–f im Quellenspeichersystem 104 entsprechen. Da Daten zu irgendeiner der Quellenspeichervorrichtungen 110a–f geschrieben sind, sind sie auch zu einer entsprechenden der Zielspeichervorrichtung 116a–f im Zielspeichersystem 106 geschrieben. Wenn eine der Quellenspeichervorrichtungen 110a–f zerstört wird oder ein Fehler erfahren wird, der gespeicherte Daten nicht wiederherstellbar werden lässt, können die Daten aus der entsprechenden der Zielspeichervorrichtungen 116a–f ausgelesen werden. Die Zielspeichervorrichtungen 116a–f können in einem einzelnen Zielspeichersystem 106 enthalten sein, wie es in 1 gezeigt ist, oder mehrere Zielspeichersysteme 106 können verwendet werden, und die Zielspeichervorrichtungen 116a–f können über die mehreren Zielspeichersysteme 106 verteilt sein. Wie bei dem (den) Quellenspeichersystem(en) 104 kann jedes der Zielspeichersysteme 106 beispielsweise ein Speichersystem aus der SYMMETRIX-Reihe von Plattenanordnungen sein, die von EMC Corporation, Hopkinton, MA erhältlich sind.
  • Wenn jedes der Quellen- und Zielspeichersysteme 104 und 106 unter Verwendung von einer oder mehreren der SYMMETRIX-Reihe von Plattenanordnungen implementiert ist, die von EMC Corporation erhältlich sind, kann eine Eigenschaft, die SYMMETRIX-Ferndateneinrichtung (SRDF = SYMMETRIX Remote Data Facility) genannt wird, zum Implementieren der Verbindung dazwischen verwendet werden. SRDF ist in zahlreichen Publikationen beschrieben, die von EMC Corporation erhältlich sind, einschließlich SYMMETRIX Remote Data Facility Product Manual, P/M 200-999-554, rev. B, Juni 1995. SRDF ist auch im US-Patent Nr. 5,544,347 (Yanai) beschrieben.
  • Bei dem illustrativen Datenspiegelungssystem 100 der 1 sind eine erste, eine zweite und eine dritte Gruppe von Quellenspeichervorrichtungen 110a–b, 110c–d und 110e–f jeweils in dem Quellenspeichersystem 104 (jeweils über Verbindungen 112a–b, 112c–d und 112e–f) in Kommunikation mit entsprechenden ersten, zweiten und dritten Gruppen von Zielspeichervorrichtungen 116a–b, 116c–d und 116e–f im Zielspeichersystem 106. Die Verbindungen 112 werden hierin "Spiegelungsverbindungen" genannt, und der Ausdruck "Spiegelungskommunikation" wird hierin zur Bezugnahme auf eine Kommunikation zwischen Quellen- und Zielspeichersystemen 104 und 106 über die Spiegelungsverbindungen 112 verwendet, die zulässt, dass die Zielspeichervorrichtungen 116a–f durch die Quellenspeichervorrichtungen 110a–f gespeicherte Daten spiegeln. Wie es in 1 gezeigt ist, bilden die Quellenspeichervorrichtungen 110a–b, die Spiegelungsverbindungen 112a–b und die Zielspeichervorrichtungen 116a–b eine erste Spiegelungsgruppe 108a; die Quellenspeichervorrichtungen 110c–d, die Spiegelungsverbindungen 112c–d und die Zielspeichervorrichtungen 116c–d bilden eine zweite Spiegelungsgruppe 108b; und die Quellenspeichervorrichtungen 110e–f, die Spiegelungsverbindungen 112e–f und die Zielspeichervorrichtungen 116e–f bilden eine dritte Spiegelungsgruppe 108c. Eine "Spiegelungsgruppe" ist eine Gruppe von Speichervorrichtungen in den Quellen- und Zielspeichersystemen 104 und 106, zwischen welchen Daten über eine gemeinsame Gruppe von Spiegelungsverbindungen 112 transferiert werden können. Allgemein nutzen Speichervorrichtungen 110 und 116 keine Spiegelungsverbindungen 112 gemeinsam mit Speichervorrichtungen 110 und 116 in anderen Spiegelungsgruppen 108.
  • Zum Durchführen einer Schreiboperation zu dem Quellenspeichersystem 104 sendet eine Host-CPU 102 eine "I/O-Befehlskette" zu dem Quellenspeichersystem 104. Jede I/O-Befehlskette kann einen oder mehrere Befehle enthalten, die zu einem bestimmten logischen Volumen gerichtet sind, das durch das Quellenspeichersystem 104 gespeichert ist. Ein logisches Volumen ist eine Einheit von Information, die die Host-CPU 102 wahrnimmt, um einer einzelnen physikalischen Speichervorrichtung zu entsprechen, die aber innerhalb des Quellenspeichersystems 104 auf einem physikalischen Speicherraum bei einer oder mehreren Quellenspeichervorrichtungen 110 abgebildet werden kann. Eine I/O-Befehlskette für eine Schreiboperation ("eine Schreibanforderungs-Befehlskette") enthält verschiedene Anweisungen für das Quellenspeichersystem 104, das die I/O-Befehlskette empfängt, sowie die während der Operation zu schreibenden Daten. Die Host-CPU 102 empfängt allgemein nur eine einzige Nachricht von dem Quellenspeichersystem 104 in Reaktion bzw. in Antwort darauf wieder, dass sie eine Schreibanforderungs-Befehlskette sendet. Diese Nachricht zeigt allgemein entweder, (1) dass die I/O-Befehlskette durch das Quellenspeichersystem 104 "bergeben" (d.h. erfolgreich verarbeitet) worden ist, oder, (2) dass ein Fehler auftrat, der verhindert, dass die I/O-Befehlskette durch das Quellenspeichersystem 104 übergeben wird. Typischerweise wird das Quellenspeichersystem 104 die Nachricht "I/O-Befehlskette übergeben" nicht zurück zu der Host-CPU 102 liefern, solange und bis die Daten erfolgreich zu einer oder mehreren der Quellenspeichervorrichtungen 110 geschrieben worden sind, oder zu einem temporären Speicherraum (wie beispielsweise einem Cache) im Quellenspeichersystem 104.
  • Einer der Zwecke zum Spiegeln von Daten im Zielspeichersystem 106 besteht darin, dass dann, wenn die Daten auf dem Quellenspeichersystem 104 nicht wiedergewinnbar gemacht werden, die Daten aus dem Zielspeichersystem 106 ausgelesen werden können. Somit ist es wünschenswert, sicherzustellen, dass die Daten im Zielspeichersystem 106 intern konsistent sind und eine genaue Spiegelung der im Quellenspeichersystem 104 zu irgendeinem bestimmten Zeitpunkt reflektieren bzw. zeigen. Wenn die Daten im Zielspeichersystem 106 keine genaue Spiegelung der Daten im Quellenspeichersystem 104 für einen gegebenen Zeitpunkt darstellen, können die Daten im Zielspeichersystem 106 nicht wieder auf das Quellenspeichersystem 104 geladen werden, um das Quellenspeichersystem 104 wieder in einen gültigen Zustand zu versetzen. Wenn beispielsweise die Daten, die im Quellenspeichersystem 104 gespeichert sind und auf das Zielspeichersystem 106 gespiegelt sind, in einer Datenbank enthalten sind, aber die im Zielspeichersystem 106 gespeicherte Information kein genaues Abbild der Datenbank zu einem gegebenen Zeitpunkt reflektiert, dann kann, wenn auf einen Fehler getroffen wird, der verhindert, dass die Datenbank vom Quellenspeichersystem 104 wiedergewonnen wird, das Zielspeichersystem 106 nicht zum Wiedergewinnen der Datenbank verwendet werden, weil die dadurch gespeicherten Daten keine genaue Reflexion des Zustands der Datenbank zu irgendeinem bestimmten Zeitpunkt sind.
  • Bei einem Datenspiegelungssystem, wie beispielsweise dem in 1 gezeigten Datenspiegelungssystem 100, haben die Anmelder erkannt, dass Fehlfunktionen bei den Spiegelungsverbindungen 112a–f, die in dem Verlust einer Spiegelungskommunikation zwischen den Quellen- und Zielspeichersystemen 104 und 106 für eine der Spiegelungsgruppen 108a–c resultieren, verursachen können, dass ein Datenkonsistenzproblem unter bestimmten Umständen entsteht. Es soll beispielsweise angenommen werden, dass alle der Spiegelungsverbindungen 112a–b der Spiegelungsgruppe 108a nicht funktionierten, so dass eine Spiegelungskommunikation über die Spiegelungsverbindungen 112a–b gesperrt wurde, um dadurch zu verhindern, dass Updates bzw. Aktualisierungen für die Quellenspeichervorrichtungen 110a–b zu den Zielspeichervorrichtungen 116a–b transferiert werden. Es soll weiterhin angenommen sein, dass Spiegelungsoperationen über die Spiegelungsverbindungen 112c–d und 112e–f für die jeweiligen Spiegelungsgruppen 108b und 108c normal fortfahren würden, so dass Updates zu den Quellenspeichervorrichtungen 110c–f fortgesetzt zu den Zielspeichervorrichtungen 116c–f transferiert würden. Wenn unter diesen Umständen die in einer der Zielspeichervorrichtungen 116a–b gespeicherten Daten logisch auf die in irgendeiner der Zielspeichervorrichtungen 116c–f gespeicherten Daten bezogen waren (z.B. wenn sie Teile derselben Datenbank speicherten), dann würden die im Zielspeichersystem 106 gespeicherten Daten nicht einen gültigen Zustand der in dem Quellenspeichersystem 104 gespeicherten Daten zu irgendeinem bestimmten Zeitpunkt darstellen. Daher könnten die Daten auf dem Zielspeichersystem 106 dann, wenn das Quellenspeichersystem 104 einen Fehler in der oben beschriebenen Situation hätte, nicht zum Versetzen des Quellenspeichersystems 104 zurück in einen gültigen Zustand für irgendeinen bestimmten Zeitpunkt verwendet werden.
  • Das oben beschriebene Problem kann angesichts der folgenden illustrativen Situation besser verstanden werden, in welcher der (die) Host-CPU(s) 102 "abhängige" Dateneinheiten zu jeweiligen Quellenspeichervorrichtungen 110 schreibt (schreiben), wenn eine Spiegelungskommunikation für nur eine der Quellenspeichervorrichtungen 110 gesperrt ist, zu welchen die abhängigen Dateneinheiten geschrieben werden. Eine zweite Einheit von Daten ist abhängig von einer ersten Einheit von Daten, wenn die zweite Einheit von Daten eine Funktion der ersten Einheit von Daten ist, so dass dann, wenn die erste Einheit von Daten geändert wird, die zweite Einheit von Daten auch geändert werden muss, wenn sie den aktuellen Wert der ersten Einheit von Daten genau reflektieren soll. Beispielsweise dann, wenn erste, zweite und dritte Einheiten von Daten jeweils Werte "A", "B", und "A+B" darstellen, dann ist die dritte Einheit von Daten abhängig von sowohl den ersten als auch den zweiten Einheiten von Daten, wohingegen die ersten und zweiten Einheiten von Daten nicht voneinander abhängen.
  • Unter Verwendung dieses einfachen Beispiels von abhängigen Dateneinheiten würden in der oben beschriebenen Situation, in welcher eine Spiegelungskommunikation über die Spiegelungsverbindungen 112a–b gesperrt ist, aber über die Spiegelungsverbindungen 112c–f freigegeben ist, wenn der (die) Host-CPU(s) 102 anfangs die erste Einheit von Daten (d.h. den Wert "A") zu der Quellenspeichervorrichtung 110a in der Spiegelungsgruppe 108a ("der gesperrten Spiegelungsgruppe") schreibt (schreiben), und darauffolgend die dritte Einheit von Daten (d.h. den Wert "A+B") zu der Quellenspeichervorrichtung 110c in der Spiegelungsgruppe 108b ("eine betriebsfähige Spiegelungsgruppe") schreibt (schreiben), dann sowohl die ersten als auch dritten Einheiten von Daten zu dem Quellenspeichersystem 104 geschrieben werden, aber nur die dritte Einheit von Daten (und nicht die erste Einheit von Daten) würde zu dem Zielspeichersystem 106 geschrieben werden. Als Ergebnis würde das Zielspeichersystem 106 einen aktualisierten Wert von "A+B" speichern, ohne auch einen aktualisierten Wert von "A" zu speichern. Diese Inkonsistenz kann Probleme auferlegen, wenn es nötig wird, die Daten aus dem Zielspeichersystem 106 wiederzugewinnen.
  • Eine Technik, die in der Vergangenheit dazu verwendet worden ist, das oben beschriebene Dateninkonsistenzproblem zu vermeiden, hat darin bestanden, zu verhindern, dass das Quellenspeichersystem 104 irgendeine Schreibanforderungs-Befehlskette von einer Host-CPU 102 zu einer Quellenspeichervorrichtung 110a–f zu übergeben, wenn diese Quellenspeichervorrichtung 110a–f ein Element einer Spiegelungsgruppe 108 ist, das unfähig dazu ist, sich an einer Spiegelungskommunikation über ihre Spiegelungsverbindungen 112 zu beteiligen. Unter Verwendung dieser Technik wird deshalb, weil jede zu einer Quellenspeichervorrichtung 110 in einer gesperrten Spiegelungsgruppe 108 gerichtete Schreibanforderungs-Befehlskette nicht durch das Quellenspeichersystem 104 übergeben wird, die Host-CPU 102, die die I/O-Befehlskette sendet, wiederholt (nicht erfolgreich) versuchen, die Schreiboperation durchzuführen.
  • Es sollte erkannt werden, dass Anwendungsprogramme, die auf der (den) Host-CPU(s) 102 ausführen, typischerweise keine Ausführung einer Anweisung beginnen werden, die von einer Einheit von Daten abhängig ist, die durch eine vorherige Anweisung aktualisiert sind, bis die vorherige Anweisung endet, was erfordert, dass die I/O-Befehlskette, die die vorherige Anweisung implementiert, durch das Quellenspeichersystem 104 übergeben worden ist. Daher wird durch Verhindern, dass Schreibanforderungs-Befehlsketten, die zu Quellenspeichervorrichtungen 110a–f gerichtet sind, für welche eine Spiegelungskommunikation gesperrt worden ist, übergeben werden, sichergestellt, dass keine späteren Anweisungen, die von den Daten abhängen, die durch diese Schreibanforderungs-Befehlsketten zu schreiben sind, ausgeführt werden, um dadurch das oben diskutierte Dateninkonsistenzproblem zu vermeiden. Diesbezüglich werden die im Zielspeichersystem 106 gespeicherten Daten ein gültiger Spiegel der in dem Quellenspeichersystem 104 gespeicherten Daten bei der Stelle sein, bei welcher die Spiegelungsgruppe gesperrt wurde.
  • Es sollte erkannt werden, dass, obwohl die oben beschriebene Technik ein Dateninkonsistenzproblem vermeidet, sie es dadurch durchführt, dass sie verhindert, dass I/O-Befehlsketten, die zu Quellenspeichervorrichtungen 110 innerhalb einer gesperrten Spiegelungsgruppe gerichtet sind, jemals enden. Als Ergebnis wird die CPU 102, die die I/O-Befehlskette initiiert, wiederholt (nicht erfolgreich) versuchen, die Befehlskette auszuführen, was möglicherweise in einer Zerstörung der Anwendung oder eines anderen Programms, das die Befehlskette enthält, resultiert.
  • In US-A-5,901,327 sind zwei Datenspeichersysteme offenbart, die durch eine Datenverbindung für eine Fernspiegelung von Daten verbunden sind.
  • Zusammenfassung der Erfindung
  • Gemäß einem Aspekt der vorliegenden Erfindung wird ein Verfahren zur Verwendung in einem Datenspiegelungssystem zur Verfügung gestellt, das wenigstens einen Host, wenigstens ein Quellenspeichersystem und wenigstens ein Zielspeichersystem aufweist, wobei das wenigstens eine Quellenspeichersystem wenigstens eine erste und eine zweite Quellenspeichervorrichtung enthält, und das wenigstens eine Zielspeichersystem wenigstens eine erste und eine zweite Zielspeichervorrichtung enthält, wobei der wenigstens eine Host mit dem wenigstens einen Quellenspeichersystem gekoppelt ist, um Schreiboperationen zu der ersten und der zweiten Quellenspeichervorrichtung durchzuführen, wobei das wenigstens eine Quellenspeichersystem mit dem wenigstens einen Zielspeichersystem gekoppelt ist, um eine Spiegelungskommunikation von der ersten Quellenspeichervorrichtung zu der ersten Zielspeichervorrichtung und von der zweiten Quellenspeichervorrichtung zu der zweiten Zielspeichervorrichtung freizugeben, und das dadurch gekennzeichnet ist, dass es einen folgenden Schritt aufweist: (A) wenn eine Spiegelungskommunikation von der ersten Quellenspeichervorrichtung zu der ersten Zielspeichervorrichtung gesperrt ist, Sperren einer Spiegelungskommunikation von der zweiten Quellenspeichervorrichtung zu der zweiten Zielspeichervorrichtung, wobei die wenigstens erste und die wenigstens zweite Speichervorrichtung in einer ersten Gruppe von Quellenspeichervorrichtungen enthalten sind, die logisch zugehörige Daten speichern, für welche erwünscht ist, dass eine konsistente Darstellung auf dem wenigstens einen Zielspeichersystem beibehalten wird.
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung wird ein Quellenspeichersystem zur Verwendung in einem Datenspiegelungssystem zur Verfügung gestellt, das wenigstens einen Host und wenigstens ein Zielspeichersystem enthält, das wenigstens eine erste und eine zweite Zielspeichervorrichtung des Zielspeichersystems enthält, wobei das Quellenspeichersystem folgendes aufweist: wenigstens eine erste und eine zweite Quellenspeichervorrichtung, um mit dem wenigstens einen Host gekoppelt zu werden, um zu ermöglichen, dass der wenigstens eine Host Schreiboperationen zu der ersten und zu der zweiten Quellenspeichervorrichtung durchführt, und weiterhin um jeweils mit der wenigstens ersten und zweiten Zielspeichervorrichtung gekoppelt zu werden, um eine Spiegelungskommunikation von der wenigstens ersten und zweiten Quellenspeichervorrichtung zu der wenigstens ersten und zweiten Zielspeichervorrichtung zu ermöglichen, und gekennzeichnet durch wenigstens eine Steuerung, um in Reaktion darauf, dass eine Spiegelungskommunikation von der ersten Quellenspeichervorrichtung zu der ersten Zielspeichervorrichtung gesperrt wird, eine Spiegelungskommunikation von der zweiten Quellenspeichervorrichtung zu der zweiten Zielspeichervorrichtung zu sperren, wobei die wenigstens erste und zweite Speichervorrichtung in einer ersten Gruppe von Quellenspeichervorrichtungen enthalten sind, die logisch aufeinander bezogene Daten speichern, für welche es erwünscht ist, dass eine konsistente Darstellung auf dem wenigstens einen Zielspeichersystem beibehalten wird.
  • Gemäß einem weiteren Aspekt der Erfindung ist ein computerlesbares Medium zur Verwendung mit wenigstens einem Prozessor zur Verfügung gestellt, der in einem Datenspiegelungssystem enthalten ist, das wenigstens einen Host aufweist, wenigstens ein Quellenspeichersystem und wenigstens ein Zielspeichersystem, wobei das wenigstens eine Quellenspeichersystem wenigstens eine erste und eine zweite Quellenspeichervorrichtung enthält, und das wenigstens eine Zielspeichersystem wenigstens eine erste und eine zweite Zielspeichervorrichtung enthält, wobei der wenigstens eine Host mit dem wenigstens einen Quellenspeichersystem gekoppelt ist, um Schreiboperationen zu der ersten und der zweiten Quellenspeichervorrichtung durchzuführen, und wobei das wenigstens eine Quellenspeichersystem mit dem wenigstens einen Zielspeichersystem gekoppelt ist, um eine Spiegelungskommunikation von der ersten Quellenspeichervorrichtung zu der ersten Zielspeichervorrichtung und von der zweiten Quellenspeichervorrichtung zu der zweiten Zielspeichervorrichtung zu ermöglichen, wobei das wenigstens eine computerlesbare Medium eine Vielzahl von Anweisungen hat, die darauf gespeichert sind, welche dann, wenn sie durch den wenigstens einen Prozessor ausgeführt werden, veranlassen, dass der wenigstens eine Prozessor ein Verfahren durchführt, das gekennzeichnet ist durch einen folgenden Schritt: (A) wenn eine Spiegelungskommunikation von der ersten Quellenspeichervorrichtung zu der ersten Zielspeichervorrichtung gesperrt ist, Sperren einer Spiegelungskommunikation von der zweiten Quellenspeichervorrichtung zu der zweiten Zielspeichervorrichtung, wobei die wenigstens erste und zweite Speichervorrichtung in einer ersten Gruppe von Quellenspeichervorrichtungen enthalten sind, die logisch aufeinander bezogene Daten speichern, für welche es erwünscht ist, dass eine konsistente Darstellung auf dem wenigstens einen Zielspeichersystem beibehalten wird.
  • Kurze Beschreibung der Zeichnungen
  • 1 ist ein Blockdiagramm, das ein illustratives Beispiel eines Datenspiegelungssystems zeigt, mit welchem Aspekte der vorliegenden Erfindung verwendet werden können;
  • 2 ist ein Blockdiagramm, das ein Beispiel eines Datenspiegelungssystems zeigt, wie beispielsweise das in 1 gezeigte, das mehrere Quellen- und Zielspeichersysteme verwendet;
  • 3 ist ein Blockdiagramm, das eine illustrative Implementierung eines Speichersystems zeigt, das als die Quellen- und/oder Zielspeichersysteme der 1 und 2 verwendet werden kann;
  • 4AB und 5 sind illustrative Beispiele von Tabellen von Flags, die in jedem der Quellenspeichersysteme der 12 gespeichert sein können, um ein Beibehalten der Konsistenz von Daten zu unterstützen, die auf einer Vielzahl von Zielspeichervorrichtungen gespeichert sind, und zwar gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
  • 6 ist ein Ablaufdiagramm, das ein illustratives Beispiel eines Prozesses zeigt, der durch eine oder mehrere Steuerungen von jedem der Quellenspeichersysteme der 1 und 2 durchgeführt werden können, um verschiedene Aspekte der vorliegenden Erfindung in Bezug auf eine Beibehaltung der Konsistenz von Daten zu implementieren, die auf einer Vielzahl von Zielspeichervorrichtungen gespeichert sind; und
  • 7 ist ein Ablaufdiagramm, das ein illustratives Beispiel eines Softwareprogramms zeigt, das durch die Host-CPUs der 1 und 2 durchgeführt werden kann, um zusätzliche Aspekte der vorliegenden Erfindung in Bezug auf eine Beibehaltung der Konsistenz von Daten zu implementieren, die auf einer Vielzahl von Zielspeichervorrichtungen gespeichert sind.
  • Detaillierte Beschreibung der Erfindung
  • Gemäß einem Aspekt der vorliegenden Erfindung werden in einem Datenspiegelungssystem, wie beispielsweise dem Datenspiegelungssystem 100 der 1, Schritte unternommen, um sicherzustellen, dass eine konsistente Datengruppe auf dem Zielspeichersystem 106 beibehalten wird, wenn eine Spiegelungskommunikation für eine Quellenspeichervorrichtung 110 verloren wird, ohne auch zu veranlassen, dass der Softwareprozess (z.B. ein Anwendungsprogramm) auf der (den) Host-CPU(s) 102 abstürzt.
  • Es sollte erkannt werden, dass das oben beschriebene Dateninkonsistenzproblem, das aus dem Verlust einer Spiegelungskommunikation resultieren kann, zu der Tatsache beitragen kann, dass die Spiegelungsverbindungen 112a–f für einige Spiegelungsgruppen 108a–c in Betrieb sind, aber nicht für alle von ihnen. Gemäß einem illustrativen Ausführungsbeispiel der vorliegenden Erfindung können dann, wenn bestimmt wird, dass alle der Spiegelungsverbindungen 112a–f für eine bestimmte Spiegelungsgruppe 108 gesperrt worden sind (d.h. eine Spiegelungskommunikation zwischen den Quellen- und Zielspeichervorrichtungen 110 und 116 in der Spiegelungsgruppe 108 nicht mehr unter stützen), eine Spiegelungskommunikation über die Spiegelungsverbindungen 112a–f für die anderen Spiegelungsgruppen 108 auch gesperrt werden. Dies kann als "logisches Unterbrechen" der Spiegelungsverbindungen 112a–f angesehen werden, die zu diesen anderen Spiegelungsgruppen 108 gehören. Als solches sollte erkannt werden, dass ein Zerstören bzw. Unterbrechen von allen der Spiegelungsverbindungen 112a–f zur selben Zeit (z.B. zu einer Zeit, zu welcher die Spiegelungsverbindungen 112a–f für eine bestimmte Spiegelungsgruppe 108 physikalisch gesperrt sind) verhindert, dass irgendwelche weiteren Aktualisierungen bezüglich irgendeiner der Zielspeichervorrichtungen 116a–f durchgeführt wird. Somit speichert das Zielspeichersystem 106, nachdem alle Spiegelungsverbindungen 112a–f unterbrochen worden sind, eine Gruppe von Daten, die einen genauen Spiegel von Daten darstellen, die in dem Quellenspeichersystem 104 bei einem bestimmten Zeitpunkt gespeichert sind (d.h. bei dem Zeitpunkt, zu welchem eine Spiegelungskommunikation für eine der Spiegelungsgruppen 108 gesperrt wurde).
  • Obwohl ein logisches Unterbrechen der übrigen Spiegelungsverbindungen 112a–f in einem Verlust der Spiegelungsfähigkeit durch das Zielspeichersystem 106 resultieren wird, sollte es erkannt werden, dass das Quellenspeichersystem 104, nachdem alle der Spiegelungsverbindungen 112a–f logisch unterbrochen worden sind, wiederum Schreibanforderungs-Befehlsketten, die zu den Quellenspeichervorrichtungen 110 gerichtet sind, die in der gesperrten Spiegelungsgruppe 108 enthalten sind, übergeben kann, und die Anwendungsprogramme, die auf der (den) Host-CPU(s) 102 ausführen, ein Arbeiten ohne ein Abstürzen fortführen können, und zwar als Ergebnis eines wiederholten (nicht erfolgreichen) Versuchens, solche Schreiboperationen durchzuführen. Zwischenzeitlich kann das durch die Spiegelungsverbindungen 112 erfahrene Problem, das in dem Verlust einer Spiegelungskommunikation für eine der Spiegelungsgruppen 108 resultierte, adressiert bzw. angesprochen werden. Wenn sie einmal korrigiert ist, können alle der Spiegelungsverbindungen 112a–f wiederhergestellt werden, um dadurch zu ermöglichen, dass die Spiegelungsfähigkeit, die durch das Zielspeichersystem 106 zur Verfügung gestellt wird, zurück auf eine Leitung gebracht wird bzw. wieder in Betrieb gesetzt wird.
  • Es sollte erkannt werden, dass ein logisches Unterbrechen von allen der Spiegelungsverbindungen 112a–f, wann immer die Spiegelungsverbindungen 112 für eine bestimmte Spiegelungsgruppe 108 verloren werden, das Ergebnis eines Verhinderns des oben diskutierten Datenkonsistenzproblems für die Daten auf dem Zielspeichersystem 106 erreicht. Dies kann gemäß einem Ausführungsbeispiel der vorliegenden Erfindung auf die nachfolgend diskutierte Weise erreicht werden. Jedoch haben die Anmelder auch erkannt, dass es nicht nötig sein muss, alle der Spiegelungsverbindungen 112a–f logisch zu unterbrechen, um die oben diskutierten Datenkonsistenzziele zu erreichen. Diesbezüglich sollte erkannt werden, dass das Zielspeichersystem 106 mehrere Gruppen von logisch nicht aufeinander bezogenen Daten, z.B. mehrere nicht aufeinander bezogene Datenbanken, enthalten kann. Für solche logisch nicht aufeinander bezogene Gruppen von Daten ist es unnötig, eine Konsistenz zwischen ihnen beizubehalten. Somit wäre es dann, wenn ein Verlust von den Spiegelungsverbindungen 112a–f, die zu einer Spiegelungsgruppe 108 gehören, die Zielspeichervorrichtungen 116 enthält, die eine bestimmte Datenbank speichern, erfahren würde, es unnötig sein, die Spiegelungsverbindungen 112 logisch unterbrechen, die zu anderen Spiegelungsgruppen 118 gehören, die nur Zielspeichervorrichtungen 116 enthalten, die nicht aufeinander bezogene Daten bzw. nicht zugehörige Daten speichern. Daher werden gemäß einem weiteren illustrativen Ausführungsbeispiel der Erfindung die Spiegelungsverbindungen 112a–f nur für Spiegelungsgruppen 108 logisch unterbrochen, die Zielspeichervorrichtungen 116 enthalten, die Daten speichern, die logisch auf die Daten bezogen sind, die in den Zielspeichervorrichtungen 116 gespeichert sind, die zu einer Spiegelungsgruppe 108 gehören, für welche eine Spiegelungskommunikation verloren worden ist. Auf diese Weise wird der Einfluss auf die Spiegelungsfähigkeiten des Zielspeichersystems 106 minimiert.
  • Gleichermaßen sollte es erkannt werden, dass alle der Zielspeichervorrichtungen 116a–f in einer bestimmten Spiegelungsgruppe 108a–c nicht logisch aufeinander bezogene Daten speichern können. Somit können bei einem weiteren illustrativen Ausführungsbeispiel der Erfindung Spiegelungsverbindungen 112 innerhalb einer Spiegelungsgruppe 108 logisch unterbrochen werden, um eine Spiegelungskommunikation zwischen nur einigen der Quellen- und Zielspeichervorrichtungen 110 und 116 zu sperren, die die Spiegelungsverbindungen 112 unterstützen. Wenn beispielsweise Zielspeichervorrichtungen 116a–c alle Daten für eine gemeinsame Datenbank speichern und die Spiegelungsverbindungen 112a–b für die Spiegelungsgruppe 108a gesperrt wird, dann können die Spiegelungsverbindungen 112c–d für die Spiegelungsgruppe 108b logisch unterbrochen werden, um eine Spiegelungskommunikation zwischen den Quellenspeichervorrichtungen 110c und der Zielspeichervorrichtung 116c zu sperren, um eine Konsistenz der Daten in dem Zielspeichersystem 106 für die Datenbank beizubehalten, ohne auch eine Spiegelungskommunikation zwischen der Quellenspeichervorrichtung 110d und der Zielspeichervorrichtung 116d zu sperren. Daher können dann, wenn die Quellen- und Zielspeichervorrichtungen 110d und 116d Daten speichern, die nicht auf die Datenbank bezogen sind, die durch die Quellen- und Zielspeichervorrichtungen 110a–c und 116a–c gespeichert ist, eine Spiegelungskommunikation über die Spiegelungsverbindungen 112c–d der Spiegelungsgruppe 108b freigegeben bleiben zwischen der Quellenspeichervorrichtung 110d und der Zielspeichervorrichtung 116d, um dadurch den Einfluss auf die Spiegelungsfähigkeit des Zielspeichersystems 106 zu minimieren.
  • Die oben beschriebenen Ausführungsbeispiele der vorliegenden Erfindung können auf zahlreiche Arten implementiert werden, und die vorliegende Erfindung ist nicht auf irgendeine bestimmte Implementierung beschränkt. Gemäß den oben identifizierten Ausführungsbeispielen der Erfindung, wobei eine Spiegelungskommunikation über Spiegelungsverbindungen 112a–f selektiv auf einer Vorrichtung-für-Vorrichtung-Basis gesperrt wird, können die Quellenspeichervorrichtungen 110a–f beispielsweise in eine oder mehrere sogenannte "Konsistenzgruppen" kategorisiert werden. Eine Konsistenzgruppe ist in diesem Zusammenhang eine Gruppe von Quellenspeichervorrichtungen 110, für welche eine Anstrengung diesbezüglich gemacht wird, sicherzustellen, dass die darin und in den entsprechenden Zielspeichervorrichtungen 116 gespeicherten Daten konsistent gehalten werden. Wenn beispielsweise die Quellenspeichervorrichtungen 110a und 110c abhängige Einheiten von Daten speichern, kann es wünschenswert sein, dass die Quellenspeichervorrichtungen 110a und 110c in derselben Konsistenzgruppe enthalten sind, so dass Anstrengungen unternommen werden können, um Datenkonsistenzprobleme, wie beispielsweise diejenigen, die oben beschrieben sind, zu verhindern.
  • Konsistenzgruppen können auf irgendeine von zahlreichen Arten implementiert sein, und die vorliegende Erfindung ist nicht auf irgendeine bestimmte Implementierung beschränkt. Bei einem Ausführungsbeispiel speichert beispielsweise das Quellenspeichersystem 104 Information, die nur identifiziert, ob jede Quellenspeichervorrichtung 110 ein Element einer Konsistenzgruppe ist oder nicht, und Information, die die bestimmten Quellenspeichervorrichtungen 110 in jeder Konsistenzgruppe identifiziert, wird nur durch die Host-CPU(s) 102 beibehalten. Es sollte jedoch erkannt werden, dass eine solche Konsistenzgruppeninformation auf zahlreiche andere Arten gespeichert werden kann, da die Erfindung nicht auf das Ausführungsbeispiel beschränkt ist, bei welchem das meiste der Konsistenzgruppeninformation durch die Host-CPU(s) 102 beibehalten ist. Beispielsweise können alle relevanten Konsistenzgruppeninformationen alternativ in einem Speicher gespeichert werden, der zu den Quellen- und/oder Zielspeichersystemen 104 und 106 gehört.
  • Bei einem Ausführungsbeispiel der Erfindung wird dann, wenn eine Host-CPU 102 (1) eine Schreibanforderungs-Befehlskette zu einer der Quellenspeichervorrichtungen 110a–f (der "Zielort"-Speichervorrichtung) ausgibt, solange wie wenigstens eine der Spiegelungsverbindungen 112 in der Spiegelungsgruppe 108 der Zielortspeichervorrichtung 110 in Betrieb bzw. operativ ist (d.h. eine Spiegelungskommunikation für die Zielortspeichervorrichtung 110 freigegeben ist), das Quellenspeichersystem 104 die I/O-Befehlskette übergeben, nachdem die zu schreibenden Daten zu sowohl dem Quellenspeichersystem 104 als auch dem Zielspeichersystem 106 transferiert worden sind. Wenn alle Spiegelungsverbindungen 112 für eine Spiegelungsgruppe 108 nicht betriebsfähig wird (d.h. eine Spiegelungskommunikation für die Zielortspeichervorrichtung 110 gesperrt wird), wird dies erfasst, wenn eine Host-CPU 102 versucht, eine Quellenspeichervorrichtung 110 in der Spiegelungsgruppe 108 zu beschreiben. Insbesondere dann, wenn eine Host-CPU 102 eine Schreibanforderungs-Befehlskette zu einer Zielortspeichervorrichtung 110 ausgibt, für welche eine Spiegelungskommunikation gesperrt ist, verhindert das Quellenspeichersystem 104, das die Zielortspeichervorrichtung 110 enthält, temporär, dass zu der Zielortspeichervorrichtung 110 gerichtete Schreibanforderungs-Befehlsketten übergeben werden.
  • Während der Zeitperiode, während welcher temporär verhindert wird, dass zu der Zielortspeichervorrichtung 110 gerichtete Schreibanforderungs-Befehlsketten übergeben werden, werden Schritte unternommen, um zu verhindern, dass alle der anderen Quellenspeichervorrichtungen 110a–f, die in derselben Konsistenzgruppe wie die Zielortspeichervorrichtung 110 enthalten sind, über die Spiegelungsverbindungen 112 kommunizieren, die dazugehören (d.h. eine Spiegelungskommunikation für diese Quellenspeichervorrichtung 110 wird gesperrt). Dieses Sperren einer Spiegelungskommunikation für die relevanten Quellenspeichervorrichtungen 110 kann auf zahlreiche Arten erreicht werden, und die Erfindung ist nicht auf irgendeine bestimmte Implementierung beschränkt. Beispielsweise können Flags in einem zu den Quellenspeichervorrichtungen 110 gehörenden Speicher gespeichert werden, die anzeigen, dass bestimmte Quellenspeichervorrichtungen 110 Daten nicht über die Spiegelungsverbindungen 112 transferieren sollen. Alternativ dazu können die relevanten Spiegelungsverbindungen 112 physikalisch unterbrochen werden. Jedoch deshalb, weil eine einzelne Spiegelungsgruppe 108 Quellenspeichervorrichtungen 110 von mehreren Konsistenzgruppen enthalten kann, wie es oben diskutiert ist, kann es wünschenswert sein, eine Spiegelungskommunikation über die Spiegelungsverbindungen 112 auf einer Vorrichtung-für-Vorrichtung-Basis zu sperren, so dass Information fortgesetzt über die Spiegelungsverbindungen 112 für die Quellenspeichervorrichtungen 110 transferiert werden kann, die nicht in der relevanten Konsistenzgruppe enthalten sind.
  • Nachdem eine Spiegelungskommunikation über die Spiegelungsverbindungen 112 für jede der Quellenspeichervorrichtungen 110 gesperrt worden ist, die in derselben Konsistenzgruppe wie die Zielortspeichervorrichtung 110 enthalten sind, wird wieder zugelassen, dass das Quellenspeichersystem 104, das die Zielortspeichervorrichtung 110 enthält, die zu der Zielortspeichervorrichtung 110 gerichtete Schreibanforderungs-Befehlskette übergibt. Weil eine Spiegelungskommunikation für alle Quellenspeichervorrichtungen 110 in der Konsistenzgruppe der Zielortspeichervorrichtung gesperrt worden ist, werden die Zielspeichervorrichtungen 116a–f in dieser Konsistenzgruppe eine Gruppe von Daten speichern, die einen "Schnappschuss" bzw. eine "Momentaufnahme" der durch das Quellenspeichersystem 104 genau vor der Zeit gespeicherten Daten darstellen, zu welcher eine Spiegelungskommunikation für die Konsistenzgruppe gesperrt wurde. Gemäß diesem Ausführungsbeispiel der Erfindung können deshalb, weil das Quellenspeichersystem 104 nur temporär verhindert, dass Schreibanforderungs-Befehlsketten, die zu Quellenspeichervorrichtungen 110 gerichtet sind, die in gesperrten Spiegelungsgruppen 108 enthalten sind, übergeben werden, Datenkonsistenzprobleme, wie beispielsweise diejenigen, die oben diskutiert sind, vermieden werden, ohne zu veranlassen, dass die Anwendungssoftware, die auf der (den) Host-CPU(s) 102 läuft, abstürzt.
  • Die Anmelder haben erkannt, dass beim Sperren einer Spiegelungskommunikation über Spiegelungsverbindungen 112 für mehrere Quellen- und Zielspeichervorrichtungen 110 und 116 in Reaktion darauf, dass eine Spiegelungskommunikation für eine Spiegelungsgruppe 108 verloren wird, das Sperren einer Spiegelungskommunikation für andere von diesen mehreren Quellenspeichervorrichtungen 110 zu anderen Zeiten selbst zu einem Datenkonsistenzproblem führen kann, das gleich demjenigen ist, das oben beschrieben ist. Beispielsweise unter der Annahme, dass Quellenspeichervorrichtungen 110a, 110c und 110e der 1 alle in derselben Konsistenzgruppe enthalten sind und eine Spiegelungskommunikation in Reaktion auf die Erfassung für Quellenspeichervorrichtungen 110c und 110e zu sperren ist, wenn versucht wird, zu der Speichervorrichtung 110a zu schreiben, das eine Spiegelungskommunikation für die Quellenspeichervorrichtung 110a verloren worden ist. Wenn zugelassen wird, dass das Quellenspeichersystem 104 zu einer der Quellenspeichervorrichtungen 110c und 110e gerichteten Schreibanforderungs-Befehlsketten vor einem Verifizieren übergibt, das eine Spiegelungskommunikation für beide Vorrichtungen gesperrt worden ist, die relative Zeitgabe der Sperrung einer Spiegelungskommunikation für die Quellenspeichervorrichtungen 110c und 110e in dem Auftreten eines Datenkonsistenzproblems in dem Zielspeichersystem 106 resultieren kann. Beispielsweise dann, wenn eine Spiegelungskommunikation für die Quellenspeichervorrichtung 110c vor der Quellenspeichervorrichtung 110e gesperrt wurde, würde ein Datenkonsistenzproblem auftreten, wenn eine I/O-Befehlskette, die das Schreiben einer ersten Einheit von Daten zu der Quellenspeichervorrichtung 110c anfordert, durch das Quellenspeichersystem 104 übergeben würde, nachdem eine Spiegelungskommunikation für die Quellenspeichervorrichtung 110c gesperrt wurde, und dann würde eine nachfolgende I/O-Befehlskette, die das Schreiben einer zweiten Einheit von Daten, die von der ersten Einheit von Daten abhängt, zu der Quellenspeichervorrichtung 110e anfordert, sowohl durch das Quellenspeichersystem 104 übergeben als auch zu dem Zielspeichersystem 106 transferiert, bevor eine Spiegelungskommunikation für die Quellenspeichervorrichtung 110e gesperrt würde.
  • Um mit diesem potenziellen Problem fertig zu werden, wird bei einem Ausführungsbeispiel der Erfindung dann, wenn eine Spiegelungskommunikation über irgendeine der Spiegelungsverbindungen 112 für Quellenspeichervorrichtungen 110 innerhalb einer Konsistenzgruppe zu sperren ist, das Quellenspeichersystem 104 temporär von einer Übergabe von zu allen Quellenspeichervorrichtungen 110 in der Konsistenzgruppe gerichteten Schreibanforderungs-Befehlsketten abgehalten. Nur nachdem eine Spiegelungskommunikation für alle der Quellenspeichervorrichtungen 110 in der relevanten Konsistenzgruppe gesperrt worden ist, wird wieder zugelassen, dass das Quellenspeichersystem 104 zu diesen Quellenspeichervorrichtungen 110 gerichtete Schreibanforderungs-Befehlsketten übergibt. Auf diese Weise wird (werden) die Host-CPU(s) 102 nur während der Zeitperiode nicht zum erfolgreichen Schreiben zu diesen Quellenspeichervorrichtungen 110 sein, zu welcher eine Spiegelungskommunikation für alle Quellenspeichervorrichtungen 110 in der relevanten Konsistenzgruppe gesperrt ist.
  • Die oben beschriebene Technik zum selektiven Sperren einer Spiegelungskommunikation für bestimmte Quellenspeichervorrichtungen 110 kann auf irgendeine einer Anzahl von Arten erreicht werden, und die Erfindung ist nicht auf irgendeine bestimmte Implementierung beschränkt. Ein illustratives Beispiel einer Technik, die zum Erreichen dieser Aufgaben verwendet werden kann, wird nachfolgend in Zusammenhang mit den 27 beschrieben, wobei bestimmte Flags, die in jedem Quellenspeichersystem 104 gespeichert sind, anzeigen, wie dieses Quellenspeichersystem 104 auf Schreibanforderungs-Befehlsketten von der (den) Host-CPU(s) 102 reagieren bzw. antworten sollte, die zu ihren Quellenspeichervorrichtungen 110 gerichtet sind. Es sollte jedoch erkannt werden, dass andere Techniken und/oder andere Flags als diejenigen, die nachfolgend beschrieben sind, alternativ verwendet werden können, und dass die Erfindung nicht auf die bestimmte Technik oder die bestimmten Flags, die beschrieben sind, beschränkt ist.
  • 2 zeigt ein illustratives Beispiel eines Datenspiegelungssystems, wie beispielsweise dasjenige, das in 1 gezeigt ist, mit mehreren Quellenspeichersystemen 104a–b und mehreren Zielspeichersystemen 106a–b. Bei dem gezeigten Ausführungsbeispiel enthalten die Host-CPUs 102 ein Paar von Host-CPUs 102a–b. Wie es gezeigt ist, kann jede der Host-CPUs 102a und 102b (über Kommunikationsverbindungen 114a–d) mit beiden der Quellenspeichersysteme 104a und 104b gekoppelt sein, und kann jedes der Quellenspeichersysteme 104a und 140b (über die Spiegelungsverbindungen 112a–f) mit einem oder beiden der Zielspeichersysteme 106a und 106b gekoppelt sein. Wenn die Spiegelungsgruppen 108a–c der 1 an dem Datenspiegelungssystem der 2 implementiert wären, würde die Spiegelungsgruppe 108a (1) durch das Quellenspeichersystem 104a und das Zielspeichersystem 106a unterstützt werden, würde die Spiegelungsgruppe 108b (1) durch das Quellenspeichersystem 104a und das Zielspeichersystem 106b unterstützt werden und würde die Spiegelungsgruppe 108c (1) durch das Quellenspeichersystem 104b und das Zielspeichersystem 106b unterstützt werden. Es sollte erkannt werden, dass die 2 nur ein Beispiel davon zeigt, wie mehrere CPU(s) 102 und mehrere Speichersysteme 104 und 106 auf eine Weise kombiniert sein können, die eine Vielzahl von Spiegelungsgruppen unterstützt, und dass irgendwelche von zahlreichen alternativen Konfigurationen stattdessen verwendet werden können.
  • 3 zeigt ein illustratives Beispiel eines Diskettenlaufwerk-Speichersystems, das bei dem Datenspiegelungssystem 100 der 1 als das Quellenspeichersystem 104 und/oder das Zielspeichersystem 106 verwendet werden kann. Es sollte erkannt werden, dass das Quellenspeichersystem 104 und/oder das Zielspeichersystem 106 der 1 jeweils ein einzelnes Speichersystem verwenden kann, wie beispielsweise dasjenige, das in 3 gezeigt ist, oder mehrere solche Speichersysteme, die zusammenarbeiten. Es sollte auch erkannt werden, dass die vorliegende Erfindung nicht Speichersysteme von dem Typ verwenden muss, der in 3 gezeigt ist, und dass irgendwelche von zahlreichen anderen Typen von Speichersystemen (z.B. Bandlaufwerksystemen) alternativ verwendet werden können.
  • Wie es gezeigt ist, enthält das illustrative Speichersystem 104b in 3 eine Host-Bussteuerung 302, eine Vielzahl von Plattensteuerungen 304a–b und eine Vielzahl von Plattenlaufwerken 312a–b. Bei dem gezeigten Beispiel entsprechen die Plattenlaufwerke 312a–b den Quellenspeichervorrichtungen 110e–f der 12. Die Host-Bussteuerung 302 ist verantwortlich für ein Kommunizieren mit den Host-CPUs 102a–b (2) über die Kommunikationsverbindungen 114b und 114d. Jede der Plattensteuerungen 304a–b ist verantwortlich für ein Steuern einer Untergruppe der Plattenlaufwerke 313a–b. Bei dem beispielhaften System der 3 steuert eine Spiegelungssteuerung 308 eine Spiegelungskommunikation für die Plattenlaufwerke 312a–b. Beispielsweise kann die Spiegelsteuerung 308 dann, wenn das Speichersystem 104 zum Implementieren des Quellenspeichersystems 104 der 23 verwendet wird, eine Spiegelungskommunikation über die Spiegelungsverbindungen 112e–f für die Spiegelungsgruppe 108c steuern. Es sollte erkannt werden, dass bei einem Computersystem, wie beispielsweise demjenigen, das in den 13 gezeigt ist, jedes der Speichersysteme 104 und 106, das mehr als eine Spiegelungsgruppe 108 unterstützt, zum Erleichtern dieser Implementierung eine separate Spiegelungssteuerung 308 für jede Spiegelungsgruppe 108 enthalten kann, die es unterstützt.
  • Bei dem Ausführungsbeispiel der 3 kommunizieren die Steuerung 302, 308 und 304a–b über einen internen Bus 310. Ebenso mit dem Bus 310 verbunden ist eine Speichereinheit 306, die einen globalen Speicher 306a und einen Cache 306b enthält. Der globale Speicher 306a speichert Information, die einen Betrieb bzw. eine Operation und eine Steuerung des Quellenspeichersystems 104a erleichtert. Der Cache 306b sorgt für eine verbesserte Systemleistung. Insbesondere dann, wenn eine der Host-CPUs 102a–b (2) ein Lesen einer Spur von Information aus dem Speichersystem 104b ausführt, kann das Quellenspeichersystem 104b dann, wenn die Spur von Information bereits im Cache 306b gespeichert ist, das Lesen von dem Cache 306b aus bedienen, eher als aus einem der Plattenlaufwerke 312a–b, und kann dadurch das Lesen effizienter ausführen. Gleichermaßen führt die Host-Bussteuerung 302 typischerweise dann, wenn eine der CPUs 102a–b ein Schreiben zu dem Quellenspeichersystem 104b ausführt, das Schreiben zu dem Cache 306b aus und veranlasst, dass die das Schreiben anfordernde I/O-Befehlskette sobald übergeben wird, wie die Daten im Cache 306b gespeichert sind. Danach kann das Schreiben (auf eine zu den Host-CPUs 102a–b transparente Weise) zu dem geeigneten der Plattenlaufwerke 312a–b entstuft werden. Der Cache kann daher als temporäre Speichervorrichtung angesehen werden, und jedes der Plattenlaufwerke 312a–b kann als permanente Speichervorrichtung innerhalb des Speichersystems 104b angesehen werden.
  • In Bezug auf das Ausführungsbeispiel der 3 sollte erkannt werden, dass weniger oder zusätzliche Steuerungen als diejenigen, die gezeigt sind, zum Durchführen der Funktionalität der verschiedenen Ausführungsbeispiele der Erfindung verwendet werden können, und dass die Erfindung nicht auf irgendeinen bestimmten Typ oder eine bestimmte Anzahl von Steuerungen beschränkt ist. Bei anderen Ausführungsbeispielen kann beispielsweise die Funktionalität von allen der Steuerungen 302, 308 und 304a–b der 3 durch eine einzige Steuerung implementiert sein, oder die Funktionalität von irgendeiner der Steuerungen 302, 308 und 304a–b kann durch eine weitere der Steuerungen 302, 308 und 304a–b oder durch eine oder mehrere zusätzliche Steuerungen (nicht gezeigt) implementiert sein. Wie er hierin verwendet ist, bezieht sich der Ausdruck (Steuerung) auf irgendeine Kombination von Hardware (z.B. einen oder mehrere Prozessoren und/oder bestimmte Schaltungskomponenten), Software und/der Firmware, die zum Durchführen von einer oder mehreren der hierin beschriebenen Steuerfunktionen fähig ist.
  • Die 4AB und 5 zeigen Beispiele von Tabellen von Flags 402A–B und 504, die für jedes Quellenspeichersystem 104 gespeichert werden können, um zuzulassen, dass die Quellenspeichersysteme 104 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung sicherstellen, dass die zu ihnen gehörenden Zielspeichersysteme 106 nicht auf Datenkonsistenzfehler treffen wenn eine Spiegelungskommunikation zwischen den Quellen- und Zielspeichersystemen 104 und 106 für eine oder mehrere Spiegelungsgruppen 108 gesperrt ist. Ein illustratives Verfahren, durch welches ein Quellenspeichersystem 104 die Information der 4 und 5 verwenden kann, um dieses Ergebnis zu erreichen, wird nachfolgend in Verbindung mit 6 diskutiert.
  • Wie es in den 4AB gezeigt ist, kann für jede Spiegelungsgruppe 108, die durch ein Quellenspeichersystem 104 bedient wird, eine jeweilige Tabelle von Flags 402 gespeichert werden. Jede Tabelle 402 berücksichtigt bzw. reflektiert den aktuellen Zustand (d.h. freigegeben oder gesperrt) von jeder der Spiegelungsverbindungen 112, die in der Spiegelungsgruppe 108 enthalten sind, zu welchen sie zugeordnet sind. Bei dem Beispiel der 4AB sind die Tabellen 402 für zwei Spiegelungsgruppen (d.h. die Spiegelungsgruppen 108a und 108b) gezeigt, was bedeutet, dass das Quellenspeichersystem 104, für welches die Information der 4AB gespeichert ist, zwei unterschiedliche Spiegelungsgruppen 108 bedient. Die Tabellen 402A–B können bei irgendeiner von zahlreichen Stellen gespeichert sein, auf die durch das Quellenspeichersystem 104 zugreifbar ist, das sie verwendet, und die Erfindung erfordert nicht, dass die Tabellen 402A–B bei irgendeiner bestimmten Stelle gespeichert sind. Bei einem illustrativen Ausführungsbeispiel sind beispielsweise die Tabellen 402A–B im globalen Speicher 306A des Quellenspeichersystems 104A der 2 gespeichert.
  • Eine Spiegelungsverbindung 112 wird für ein gegebenes Paar aus Quellen- und Zielspeichervorrichtung "gesperrt", wenn die Spiegelungsverbindung 112 unfähig zum Transferieren von Information von der Quellenspeichervorrichtung 110 zu der Zielspeichervorrichtung 116 ist. Bei dem illustrativen Ausführungsbeispiel der Erfindung, das die Tabellen 402A–B verwendet, zeigen die Einträge "freigebeben" und "gesperrt" in den Tabellen 402A–B den physikalischen Zustand der Spiegelungsverbindungen 112a an, d.h. ob die Verbindungen 112 betriebsfähig sind oder physikalisch unterbrochen. Somit zeigt ein Eintrag (gesperrt) in einer der Tabellen 402A–B an, dass die entsprechende Spiegelungsverbindung physikalisch unterbrochen ist, so dass keine Daten über die entsprechende Spiegelungsverbindung 112 zwischen irgendwelchen zwei Speichervorrichtungen 110, 116 transferiert werden können, wohingegen ein Eintrag "freigegeben" anzeigt, dass die entsprechende Spiegelungsverbindung 112 in Betrieb ist bzw. betriebsfähig ist, so dass Daten über die Spiegelungsverbindung 112 zwischen irgendeinem zugehörigen Paar aus Quellen- und Zielspeichervorrichtung transferiert werden können.
  • Wie es oben angegeben ist, kann jede Spiegelungsgruppe 108 eine separate Spiegelungssteuerung 308 haben, die zu ihr gehört. Weil jede Spiegelungssteuerung 308 in direkter Kommunikation mit den Spiegelungsverbindungen 112 in ihrer zugehörigen Spiegelungsgruppe 108 ist, können die Einträge in den Tabellen 402A–B bei dem gezeigten illustrativen Ausführungsbeispiel nur durch die Spiegelungssteuerungen 308 aktualisiert werden, die zu den Spiegelungsverbindungen 112 gehören, für die jeweiligen Spiegelungsgruppen 108. Jedoch ist die vorliegende Erfindung diesbezüglich nicht beschränkt, da jede Vorrichtung mit einer Kenntnis über den Zustand der Spiegelungsverbindungen 112 und einem Zugriff auf den Speicher, in welchem die Tabellen 402A–B gespeichert sind, die Tabellen 402 aktualisieren kann, wie es nachfolgend diskutiert ist. Zusätzlich zu der Spiegelungssteuerung 308 können auch andere Vorrichtungen mit einem Zugriff auf den globalen Speicher 306a (z.B. die Host-Bussteuerung 302 (3) des Quellenspeichersystems 104) die Information verwenden, die in den Tabellen 402A–B gespeichert ist, und zwar gemäß eines Ausführungsbeispiel der Erfindung, wie es nachfolgend diskutiert ist.
  • 5 stellt eine weitere Tabelle von Flags 504 dar, die für jedes Quellenspeichersystem 104 gespeichert werden können. Die Flags 504 reflektieren bzw. zeigen bzw. berücksichtigen für jede Speichervorrichtung 110 in dem Quellenspeichersystem 104, (a) ob die Speichervorrichtung in einer Konsistenzgruppe enthalten ist, und (b) den aktuellen "Zustand" der Speichervorrichtung. Die Tabelle 504 kann beispielsweise im globalen Speicher 306a des Quellenspeichersystems 104a der 2 gespeichert sein. Es sollte jedoch erkannt werden, dass die Erfindung diesbezüglich nicht beschränkt ist, und dass die Tabelle 504 alternativ bei irgendeiner anderen Stelle gespeichert werden kann, auf die das Quellenspeichersystem 104 zugreifen kann. Gemäß dem gezeigten illustrativen Ausführungsbeispiel identifizieren die Flags in der Tabelle 504 jede Speichervorrichtung 110 derart, dass sie in einem von drei Zuständen ist: (1) "ONLINE", (2) "OFFLINE", oder (3) "OFFLINE HÄNGEND". Die Bedeutung und Signifikanz von jedem dieser Zustände wird nachfolgend in Verbindung mit den illustrativen Softwareprogrammen der 6 und 7 beschrieben.
  • 6 zeigt ein Beispiel eines Softwareprogramms bzw. einer Softwareroutine 600, das bzw. die durch eine oder mehrere Steuerungen (z.B. die Host-Bussteuerung 302 der 3) in jedem der Quellenspeichersysteme 104 durchgeführt werden kann, um ein Ausführungsbeispiel der Erfindung zu implementieren, das die Tabelleneinträge der 4 und 5 verwendet, um die Konsistenz der auf dem (den) Zielspeichersystem(en) 106 beizubehalten. Das Softwareprogramm 600 kann eine Vielzahl von Anweisungen enthalten, die in einem computerlesbaren Medium gespeichert sind, und die Steuerung(en), die das Programm 600 implementiert (implementieren) kann (können) beispielsweise die auf dem computerlesbaren Medium gespeicherten Anweisungen ausführen, um die verschiedenen gezeigten Verfahrensschritte durchzuführen. Jede der Steuerungen (z.B. 302 und 304 in 3) im Quellenspeichersystem 104 kann einen Prozessor mit einem lokalen Speicher enthalten, in welchem Mikrocode-Anweisungen zum Implementieren des Programms 600 gespeichert sein können, oder das Programm 600 kann in einem anderen Speicher (z.B. dem globalen Speicher 306) vorgesehen sein, auf dem durch die Steuerungen) zugegriffen werden kann. Alternativ dazu kann das Programm 600 natürlich unter Verwendung einer bestimmten Hardware oder irgendeiner Kombination aus Hardware und Software implementiert sein, die zum Erreichen eines gleichen Ergebnisses fähig ist. In Bezug auf das illustrative Programm 600 der 6 sollte es erkannt werden, dass die präzise Reihenfolge der Verfahrensschritte nicht entscheidend ist, und dass die Erfindung nicht auf Ausführungsbeispiele beschränkt ist, die Verfahrensschritte genau in der gezeigten Reihenfolge durchführen. Zusätzlich sollte es erkannt werden, dass die in 6 gezeigten Verfahrensschritte nur eines von zahlreichen möglichen Programmen darstellen, die das erwünschte Ergebnis erreichen können, und die Erfindung ist nicht auf das gezeigte bestimmte Programm beschränkt. Weiterhin sollte es verstanden werden, dass einige Ausführungsbeispiele der Erfindung weniger als alle der Funktionen durchführen können, die durch die in 6 dargestellten Verfahrensschritte durchgeführt werden, und die Erfindung nicht auf Ausführungsbeispiele beschränkt ist, die alle durch das dargestellte Programm durchgeführten Funktionen verwenden.
  • Das Programm bzw. die Routine 600 beginnt dann, wenn das Quellenspeichersystem 104 (z.B. das Quellenspeichersystem 104b der 3) eine I/O-Befehlskette über eine Kommunikationsverbindung 114 von einer Host-CPU 102 empfangen hat. Wenn eine I/O-Befehlskette empfangen wird, wird (bei einem Schritt 604) bestimmt, ob die I/O-Befehlskette anfordert, dass ein Schreiben zu einer der Speichervorrichtungen 110 des Quellenspeichersystems (z.B. einem der Plattenlaufwerke 312a–b der 3) durchgeführt wird.
  • Wenn die I/O-Befehlskette nicht anfordert, dass ein Schreiben durchgeführt wird (z.B. wenn sie anfordert, dass ein Lesen durchgeführt wird), dann geht das Programm 600 weiter zu einem Schritt 606, in welchem zugelassen wird, dass die I/O-Befehlskette auf die normalerweise verarbeitet und durch das Quellenspeichersystem 104 übergeben wird, und endet das Programm 600. Weil I/O-Befehlsketten, die kein Schreiben durchführen, die Übertragung von neu geschriebenen Daten zu einem Zielspeichersystem 106 über Spiegelungsverbindungen 112 nicht erfordern, ist der Zustand der Spiegelungsverbindungen 112 für diese Operationen nicht relevant, und solche I/O-Befehlsketten werden ungeachtet des Zustands der Spiegelungsverbindungen 112 verarbeitet und übergeben.
  • Wenn (bei dem Schritt 604) bestimmt wird, dass die I/O-Befehlskette anfordert, dass ein Schreiben durchgeführt wird, dann geht das Programm 600 zu Schritten 608610, in welchem das Zustands-Flag (siehe 5) für die Zielortspeichervorrichtung 110 (d.h. die Quellenspeichervorrichtung 110, zu welcher die Schreibanforderungs-Befehlskette gerichtet ist) geprüft wird, um zu bestimmen, ob die Zielortspeichervorrichtung 110 OFFLINE ist (Schritt 608), OFFLINE HÄNGEND (Schritt 610) oder ONLINE (was dann angenommen wird, wenn der Schritt 610 bestimmt, dass die Zielortspeichervorrichtung nicht OFFLINE HÄNGEND ist).
  • Wenn (beim Schritt 608) bestimmt wird, dass die Zielortspeichervorrichtung 110 OFFLINE ist, dann geht das Programm 600 zu dem Schritt 606, in welchem zugelassen wird, dass die Schreibanforderungs-Befehlskette durch das Quellenspeichersystem 104 verarbeitet und übergeben wird. Weil die Zielortspeichervorrichtung 110 bereits im OFFLINE-Zustand ist, erkennt das Programm 600, dass die Zielortspeichervorrichtung 110 entweder (1) keine entsprechende Zielspeichervorrichtung 116 zu ihr zugeordnet hat, (2) in Reaktion auf eine vorherige Iteration des Programms 600 (z.B. in einem Schritt 620 oder einem Schritt 626) auf OFFLINE geschaltet wurde, oder (3) durch eine Iteration eines Programms 700 (7) durch eine Host-CPU 102 (z.B. in einem Schritt 712 des Programms 700), wie es nachfolgend diskutiert ist, auf OFFLINE geschaltet wurde. In den letzteren zwei Fällen wird die vorherige Iteration des Programms 600 oder 700 Schritte (die nachfolgend diskutiert sind) durchgeführt haben, um sicherzustellen, dass ein Übergeben der Schreibanforderungs-Befehlskette zum gegenwärtigen Zeitpunkt, ohne auch die geschriebenen Daten zum Zielspeichersystem 106 zu transferieren, nicht in einem Datenkonsistenzproblem im Zielspeichersystem 106 resultieren wird.
  • Wenn (beim Schritt 610) bestimmt wird), dass die Zielortspeichervorrichtung 110 OFFLINE HÄNGEND ist, geht das Programm 600 weiter zum Schritt 612, in welchem das Quellenspeichersystem 104 nicht zulässt, die Schreibanforderungs-Befehlskette zu übergeben, und eine "spezielle" I/O-Fehlernachricht zurück zu der Host-CPU 102 sendet, die die I/O-Befehlskette ausgab. Dann endet das Programm 600. Die spezielle I/O-Fehlernachricht zeigt an, dass die Zielortspeichervorrichtung 110 im Zustand OFFLINE HÄNGEND ist. Die Zielortspeichervorrichtung 110 kann beispielsweise während einer vorherigen Iteration des Programms (z.B. im Schritt 622 oder im Schritt 628) oder während einer Iteration des Programms 700 (7) durch eine Host-CPU 102 (z.B. im Schritt 708 des Programms 700), das nachfolgend diskutiert ist, in den Zustand OFFLINE HÄNGEND versetzt worden sein. Bei einem illustrativen Ausführungsbeispiel ist die spezielle I/O-Fehlernachricht so ausgewählt, dass sie nicht irgendeiner anderen I/O-Fehlernachricht entspricht, die durch das Quellenspeichersystem 104 erzeugt wird. Daher wird (werden) die Host-CPU(s) 102 immer die spezielle I/O-Fehlernachricht derart erkennen, dass sie einen I/O-Fehler eindeutig anzeigt, der daraus resultiert, dass eine Schreibanforderungs-Befehlskette, die zu einer Quellenspeichervorrichtung 110 gerichtet wird, in dem Zustand OFFLINE HÄNGEND ist.
  • Wenn eine Host-CPU 102 die spezielle I/O-Fehlernachricht empfängt, reagiert sie durch Vornehmen von Schritten zum Versetzen von allen Quellenspeichervorrichtungen 110a–f, die in der Konsistenzgruppe der Zielortspeichervorrichtung enthalten sind, in den Zustand OFFLINE HÄNGEND (siehe die Schritte 706 und 708 im illustrativen Programm 700 der 7). Nachdem alle Quellenspeichervorrichtungen 110a–f in der relevanten Konsistenzgruppe in den Zustand OFFLINE HÄNGEND versetzt worden sind, wird dann jede Host-CPU 102, die die spezielle I/O-Fehlernachricht empfing, Schritte unternehmen (z.B. gemäß dem nachfolgend in Verbindung mit 7 beschriebenen Programm 700), um alle Quellenspeichervorrichtungen 110a–f, die in der relevanten Konsistenzgruppe enthalten sind, in den Zustand OFFLINE zu versetzen (siehe die Schritte 710 und 712 des illustrativen Programms 700 der 7). Diesbezüglich sollte es erkannt werden, dass mehrere unterschiedliche Host-CPUs 102 versuchen können, zu Quellenspeichervorrichtungen 110 zu schreiben, die in den Zustand OFFLINE HÄNGEND sind, bevor diese Vorrichtungen darauffolgend zu dem Zustand OFFLINE geschaltet werden. In einer solchen Situation wird jede Host-CPU 102, die versuchte, in dem Zustand OFFLINE HÄNGEND zu einer Quellenspeichervorrichtung 110 zu schreiben, das nachfolgend diskutierte Programm 700 durchführen. Daher können mehrere Host-CPUs 102 jeweils unabhängig das Programm 700 gleichzeitig durchführen. Nachdem jede der Speichervorrichtungen 104 in den Zustand OFFLINE versetzt worden ist, wird wieder zugelassen, dass das Quellenspeichersystem 104 Schreibanforderungs-Befehlsketten, die zu dieser Speichervorrichtung 110 gerichtet sind, übergibt (siehe Schritt 608 des Programms 600).
  • Somit entspricht der Zustand OFFLINE HÄNGEND einer Zielortspeichervorrichtung 110 der Situation, die oben beschrieben ist, wobei ein Quellenspeichersystem 104 temporär nicht zulässt, dass zu der Zielortspeichervorrichtung 110 gerichtete Schreibanforderungs-Befehlsketten übergeben werden, und zwar während der Zeitperiode, während welcher die Spiegelungskommunikation für alle anderen Quellenspeichervorrichtungen 110 in der Konsistenzgruppe der Zielortspeichervorrichtung gesperrt ist. Der Zustand OFFLINE einer Zielortspeichervorrichtung 110 entspricht andererseits der oben beschriebenen Situation, bei welcher ein Quellenspeichersystem 104 zulässt, dass Schreibanforderungs-Befehlsketten zu einer Zielortspeichervorrichtung 110 übergeben werden, ohne zuerst fordern, dass die geschriebenen Daten zu dem Zielspeichersystem 106 transferiert werden.
  • Es sollte erkannt werden, dass jede Host-CPU 102, die die spezielle Fehlernachricht in Reaktion auf ein versuchtes Schreiben zu einer Zielortspeichervorrichtung 110 empfängt, nicht sofort Versuche zum Durchführen des Schreibens wiederholen wird und resultierend daraus veranlassen wird, dass die auf der Host-CPU 102 laufenden Anwendungsprogramme abstürzen. Viel mehr wird jede solche Host-CPU 102 stattdessen das Programm 700 (7) durchführen, um zuerst alle Quellenspeichervorrichtungen 110 in der relevanten Konsistenzgruppe in den Zustand OFFLINE HÄNGEND zu versetzen und dann alle solchen Quellenspeichervorrichtungen 110 in den Zustand OFFLINE zu versetzen. Nachdem jede Host-CPU 102, die die spezielle Fehlernachricht empfängt, das Programm 700 beendet hat, wird sie dann ihren Versuch zum Durchführen der Schreiboperation wiederholen. Nachdem das Programm 700 geendet hat, werden alle Quellenspeichervorrichtungen 110 in der Konsistenzgruppe der Zielortspeichervorrichtung OFFLINE sein. Somit wird ein nachfolgender Versuch durch irgendeine Host-CPU zum Schreiben zu der Zielortspeichervorrichtung 110 (durch den Schritt 608 des Programms 600) übergeben werden. Daher wird die oben beschriebene Situation vermieden, bei welcher Anwendungsprogramme auf der (den) Host-CPU(s) 102 veranlasst wurden, abzustürzen, wenn ein Quellenspeichersystem 104, das eine Spiegelungskommunikation für eine Zielortspeichervorrichtung 110 verlor, einfach von einer Übergabe von Schreibanforderungs-Befehlsketten abhielt.
  • Wenn (beim Schritt 610) bestimmt wird, dass die Zielortspeichervorrichtung 110 nicht OFFLINE HÄNGEND ist, dann erkennt das Programm 600, dass die Zielortspeichervorrichtung 110 gegenwärtig ONLINE ist. Bei dem gezeigten Beispiel geht das Programm 600 dann, wenn (beim Schritt 610) bestimmt wird, dass die Zielortspeichervorrichtung 110 ONLINE ist, weiter zu einem Schritt 614, in welchem bestimmt wird, ob eine Spiegelungskommunikation gegenwärtig für die Zielortspeichervorrichtung 110 freigegeben ist. Die Bestimmung im Schritt 614 kann beispielsweise durch Prüfen der Spiegelungsverbindungs-Zustands-Flags in der Tabelle 402 durchgeführt werden, die zu der Spiegelungsgruppe 108 gehört, in welcher die Zielortspeichervorrichtung 110 enthalten ist, um zu bestimmen, ob wenigstens eine Spiegelungsverbindung 112 für die Spiegelungsgruppe 108 in Betrieb ist. Wenn eine oder mehrere der Spiegelungsverbindungen 112 für die Spiegelungsgruppe 108 freigegeben sind, dann wird bestimmt, dass eine Spiegelungskommunikation für die Zielortspeichervorrichtung 110 freigegeben ist. Sonst wird bestimmt, dass eine Spiegelungskommunikation für die Zielortspeichervorrichtung 110 gesperrt ist.
  • Wenn (beim Schritt 614) bestimmt wird, dass eine Spiegelungskommunikation für die Zielortspeichervorrichtung 110 gesperrt ist, geht das Programm 600 weiter zu Schritten 620628, in welchem Aktionen (die nachfolgend diskutiert sind) vorgenommen werden, um die Konsistenz der durch das Zielspeichersystem 106 gespeicherten Datengruppe beizubehalten.
  • Wenn (beim Schritt 614) bestimmt wird, dass eine Spiegelungskommunikation für die Zielortspeichervorrichtung 110 freigegeben ist, dann geht das Programm 600 weiter zu dem Schritt 616, in welchem die Schreibanforderungs-Befehlskette durch das Zielspeichersystem 106 (konditional) verarbeitet und übergeben wird. Das Programm 600 geht dann weiter zum Schritt 618, in welchem eine Bestimmung diesbezüglich durchgeführt wird, ob eine während der gesamten Verarbeitung und Übergabe der Schreibanforderungs-Befehlskette freigegebene Spiegelungskommunikation übrig blieb (d.h. bis nachdem die Daten erfolgreich zu sowohl dem Quellen- als auch dem Zielspeichersystem 104 und 106 transferiert worden sind). Wenn bestimmt wird, dass eine Spiegelungskommunikation freigegeben blieb, so dass zugelassen wurde, die Schreibanforderungs-Befehlskette erfolgreich zu übergeben, endet das Programm 600. Wenn jedoch (beim Schritt 618) bestimmt wird, dass eine Spiegelungskommunikation für die Zielortspeichervorrichtung 110 gesperrt wurde, bevor die Schreibanforderungs-Befehlskette im Schritt 616 übergeben wurde (z.B. während des Transfers von Daten über die Spiegelungsverbindungen 112), dann geht das Programm weiter zum Schritt 620, als ob die anfängliche Prüfung der Tabelle 402 angezeigt hätte, dass eine Spiegelungskommunikation für die Zielortspeichervorrichtung 110 gesperrt wurde. Die Bestimmung im Schritt 618 kann beispielsweise durch direktes Überwachen eines Zustands der Verbindungen, d.h. ohne Bezugnahme auf die Tabellen 402 (4), durchgeführt werden. Daher wird bei diesem Ausführungsbeispiel die Freigabe einer Spiegelungskommunikation für die Quellenspeichervorrichtungen 110 nicht nur durch eine Bezugnahme auf die Tabellen 402 bestimmt. Stattdessen können die Vorrichtungen, die für die Spiegelungskommunikation verantwortlich sind (z.B. die Spiegelungssteuerung 308 der 3), oder irgendeine andere Vorrichtung, auch eine Bestimmung durchführen, das eine Spiegelungskommunikation für eine Quellenspeichervorrichtung 110 gesperrt worden ist.
  • Wenn das Programm 600 die Schritte 620622 erreicht, ist bestimmt worden, dass die Quellenspeichervorrichtung 110, zu welcher die Schreibanforderungs-Befehlskette (die darin resultierte, dass das Programm 600 aufgerufen wird) gerichtet wurde, ONLINE ist, und sich nicht an einer Spiegelungskommunikation mit dem Zielspeichersystem 106 beteiligen kann. Weil die Zielortspeichervorrichtung 110 noch ONLINE ist, erkennt das Programm 600, dass die Schreibanforderungsbefehlskette, die verarbeitet wird, die erste Schreibanforderungs-Befehlskette ist, die zu einer Quellenspeichervorrichtung 110 in der Spiegelungsgruppe 108 der Zielortspeichervorrichtung gerichtet ist, da eine Spiegelungskommunikation für die Spiegelungsgruppe 108 gesperrt wurde. Daher führt das Programm 600 bei dem gezeigten illustrativen Ausführungsbeispiel Schritte durch, um die Zustände von allen anderen Quellenspeichervorrichtungen 110 in der Spiegelungsgruppe 108 der Zielortspeichervorrichtung zu entweder OFFLINE (Schritt 620) oder OFFLINE HÄNGEND (Schritt 622) zu ändern, um den Verlust einer Spiegelungskommunikation für die Spiegelungsgruppe 108 zu berücksichtigen.
  • Spezifischer setzt das Programm 600 beim Schritt 620 für jede der Quellenspeichervorrichtungen 110, die eine Spiegelkommunikation mit der Zielortspeichervorrichtung 110 gemeinsam nutzt (d.h. die in der Spiegelungsgruppe 108 der Zielortspeichervorrichtung ist), und die kein Element einer Konsistenzgruppe ist, die beispielsweise durch Prüfen des Konsistenzgruppen-Flags in der Tabelle 504 der 5 für die Zielortspeichervorrichtung 110 bestimmt werden kann, das Zustands-Flag für diese Quellenspeichervorrichtung 110 auf OFFLINE. Somit wird auf nachfolgende Iterationen des Programms 600 einschließlich von zu diesen Quellenspeichervorrichtungen 110, die auf OFFLINE geschaltet worden sind, gerichteten Schreibanforderungs-Befehlsketten zugelassen werden, dass die Schreibanforderungs-Befehlsketten durch die Schritte 608 und 606 des Programms 600 verarbeitet und übergeben werden, trotz der Tatsache, dass eine Spiegelungskommunikation für diese Quellenspeichervorrichtung 110 gesperrt worden ist.
  • Gleichermaßen setzt das Programm 600 beim Schritt 622 für jede der Quellenspeichervorrichtungen 110, die eine Spiegelkommunikation gemeinsam mit der Zielortspeichervorrichtung 110 nutzt und ein Element einer Konsistenzgruppe ist, das Zustands-Flag für diese Quellenspeichervorrichtung 110 auf OFFLINE HÄNGEND. Somit wird das Programm auf nachfolgende Iterationen des Programms 600 einschließlich von zu diesen Quellenspeichervorrichtungen 110, die auf den Zustand OFFLINE HÄNGEND geschaltet worden sind, gerichteten Schreibanforderungs-Befehlsketten hin zu dem Schritt 612 weitergehen, in welchem die spezielle I/O-Fehlernachricht (die oben diskutiert ist) zu der Host-CPU 102 gesendet werden wird, die die I/O-Befehlskette ausgab.
  • Nach einem Beenden des Schritts 622 des Programms 600 wird bei einem Schritt 624 (z.B. durch Prüfen des Konsistenzgruppen-Flags in der Tabelle 504 der 5) bestimmt, ob die Zielortspeichervorrichtung 110 ein Element einer Konsistenzgruppe ist. Wenn (beim Schritt 624) bestimmt wird, dass die Zielortspeichervorrichtung 110 kein Element einer Konsistenzgruppe ist, dann geht das Programm weiter zu dem Schritt 626, in welchem das Zustands-Flag für die Zielortspeichervorrichtung 110 auf OFFLINE gesetzt wird. Es ist sicher, das Zustands-Flag für die Zielortspeichervorrichtung 110 in dieser Situation sofort auf den Zustand OFFLINE zu ändern, weil die Zielortspeichervorrichtung 110 kein Element einer Konsistenzgruppe ist und die durch das Zielspeichersystem 106 für diese Quellenspeichervorrichtung 110 gespiegelten Daten nicht konsistent mit den durch das Zielspeichersystem 106 für irgendwelche anderen Quellenspeichervorrichtungen 110 gespiegelten Daten gehalten werden müssen. Das Programm 600 geht dann weiter zum Schritt 606, in welchem die zu der Zielortspeichervorrichtung 110 gerichtete Schreibanforderungs-Befehlskette verarbeitet und übergeben wird, und das Programm 600 endet. Wie es oben angegeben ist, wird dann, wenn das Zustands-Flag für eine Quellenspeichervorrichtung 110 im Zustand OFFLINE ist, zugelassen, dass das Quellenspeichersystem 104, das diese Speichervorrichtung 110 enthält, zu ihr gerichtete Schreibanforderungs-Befehlsketten übergibt, ohne dass es erforderlich ist, dass die Daten zu dem Zielspeichersystem 106 transferiert werden.
  • Wenn (beim Schritt 624) bestimmt wird, dass die Zielortspeichervorrichtung 110 ein Element einer Konsistenzgruppe ist, dann geht das Programm 600 weiter zum Schritt 628, in welchem das Zustands-Flag für die Zielortspeichervorrichtung 110 auf OFFLINE HÄNGEND gesetzt wird. Wie es oben diskutiert ist, wird dann, wenn eine Zielortspeichervorrichtung 110 im Zustand OFFLINE HÄNGEND ist, temporär verhindert, dass das Quellenspeichersystem 104, das die Zielortspeichervorrichtung 110 enthält, zu der Zielortspeichervorrichtung 110 gerichtete Schreibanforderungs-Befehlsketten übergibt. Wie es auch oben diskutiert ist, wird gemäß einem Aspekt der Erfindung dieses Verhindern, dass das Quellenspeichersystem 104 solche Schreibanforderungs-Befehlsketten übergibt, nur durchgeführt, bis eine Spiegelungskommunikation für alle anderen Quellenspeichervorrichtungen 110, die in derselben Konsistenzgruppe wie die Zielortspeichervorrichtung 110 enthalten sind, gesperrt worden ist.
  • Bei dem Ausführungsbeispiel der 6 wird eine Verantwortlichkeit zum Sperren einer Spiegelungskommunikation für die Quellenspeichervorrichtungen 110, die in den Spiegelungsgruppen 108 enthalten sind, die andere als die gesperrte Spiegelungsgruppe 108 ist, die die Zielortspeichervorrichtung 110 enthält, zu der (den) Host-CPU(s) 102 delegiert. Bei dem illustrativen Verfahren der 6 wird dieses Ziel beim Schritt 612 erreicht, in welchem eine spezielle I/O-Fehlernachricht zu der Host-CPU 102 gesendet wird, die die zu der Zielortspeichervorrichtung 110 gerichtete Schreibanforderungs-Befehlskette ausgab.
  • Wie es nachfolgend detaillierter erklärt wird, sendet die Host-CPU 102 bei dem illustrativen Ausführungsbeispiel der 7 in Reaktion auf ein Empfangen dieser speziellen I/O-Fehlernachricht Befehle zu jedem der Quellenspeichersysteme 104, die Quellenspeichervorrichtungen 110 enthalten, die in derselben Konsistenzgruppe wie die Zielortspeichervorrichtung 110 enthalten sind. Diese Befehle weisen die Quellenspeichersysteme 104 an, die Zustands-Flags für die Quellenspeichervorrichtungen 110, die in der relevanten Konsistenzgruppe enthalten sind, auf den Zustand OFFLINE HÄNGEND einzustellen. Nachdem alle solchen Quellenspeichervorrichtungen 110 in den Zustand OFFLINE HÄNGEND versetzt worden sind, sendet die Host-CPU 102, die die spezielle I/O-Fehlernachricht empfing, dann Befehle zu dem relevanten Quellenspeichersystem 104, die sie anweisen, die Zustands-Flags der Quellenspeichervorrichtungen 110 in der relevanten Konsistenzgruppe auf den Zustand OFFLINE zu setzen. Schließlich wird, nachdem alle Quellenspeichervorrichtungen 110 in der relevanten Konsistenzgruppe in den Zustand OFFLINE versetzt worden sind, wieder zugelassen, dass die Quellenspeichersysteme 104, die diese Quellenspeichervorrichtungen 110 enthalten, zu ihnen gerichtete Schreibanforderungs-Befehlsketten zu übergeben. Somit wird unter Verwendung dieser Technik die Software, die auf der (den) Host-CPU(s) 102 läuft, die die Schreibanforderungs-Befehlskette aufruft (aufrufen), nicht aufgrund von wiederholten Fehlern zum Schreiben zu Quellenspeichervorrichtungen 110, die in einer gesperrten Spiegelungsgruppe 108 enthalten sind, abstürzen. Vielmehr werden, wann immer eine Host-CPU 102 versucht, zu einer Zielortspeichervorrichtung 110 in einer gesperrten Spiegelungsgruppe 108 zu schreiben, das Quellenspeichersystem 104, das die Zielortspeichervorrichtung 110 enthält, die spezielle I/O-Fehlernachricht zu der Host-CPU 102 zurückbringen, um dadurch die Host-CPU 102 anzuweisen, die oben diskutierten Aktionen vorzunehmen, um eine Spiegelungskommunikation für die Quellenspeichervorrichtungen 110 in der Konsistenzgruppe der Zielortspeichervorrichtung zu sperren. Nach einem Vornehmen solcher Aktionen wird dann zugelassen werden, dass die Host-CPU 102 erfolgreich zu der Zielortspeichervorrichtung 110 schreibt, auch wenn eine Spiegelungskommunikation für die Zielortspeichervorrichtung 110 gesperrt worden ist.
  • In Bezug auf die oben beschriebenen Schritte 620622, in welchem die Zustände von allen Quellenspeichervorrichtungen 110 in der gesperrten Spiegelungsgruppe 108 geändert werden, sollte es verstanden werden, dass die Zustände dieser Quellenspeichervorrichtungen 110 alternativ auf andere Weise geändert werden könnten, und nicht durch das Quellenspeichersystem 104 während der Iteration des Programms 600 der 6 geändert werden müssen, wobei der Verlust einer Spiegelungskommunikation entdeckt wurde. Beispielsweise könnten ihre Zustände durch das Quellenspeichersystem 104 während darauffolgender Iterationen des Programms 600 geändert werden oder könnten durch eine der Host-CPUs 102 während einer Ausführung des Programms 700 der 7 (das nachfolgend diskutiert ist) geändert werden.
  • Diesbezüglich sollte es erkannt werden, dass bei dem illustrativen Ausführungsbeispiel der 6 die Zustände von allen Quellenspeichervorrichtungen 110 in der Spiegelungsgruppe 108 der Zielortspeichervorrichtung in den Schritten 620622 nur als Sache einer Annehmlichkeit geändert werden. Das bedeutet, dass für diese Quellenspeichervorrichtungen 110 in der gesperrten Spiegelungsgruppe 108, die in derselben Konsistenzgruppe wie die Zielortspeichervorrichtung 110 sind, ein Ändern der Zustände von solchen Quellenspeichervorrichtungen 110 auf den Zustand OFFLINE HÄNGEND während der ersten Iteration des Programms 600, bei welcher der Verlust einer Kommunikation entdeckt wird, die Gesamtanzahl von Zustands-Flags reduziert, die die Host-CPU(s) 102 haben wird (werden), um zu dem Zustand OFFLINE HÄNGEND zu ändern, wenn auf die oben diskutierte spezielle I/O-Fehlernachricht reagiert wird, die durch das Quellenspeichersystem 104 im Schritt 612 ausgegeben ist, nachdem das Zustands-Flag für die Zielortspeichervorrichtung im Schritt 628 auf den Zustand OFFLINE HÄNGEND gesetzt ist. Zusätzlich verhindert für die Quellenspeichervorrichtungen 110 in der gesperrten Spiegelungsgruppe 108, die in Konsistenzgruppen enthalten sind, die andere als diejenigen der Zielortspeichervorrichtung 100 sind, oder die nicht in irgendeiner Konsistenzgruppe sind, ein Ändern der Zustände dieser Quellenspeichervorrichtungen 110 auf den Zustand OFFLINE HÄNGEND bzw. den Zustand OFFLINE, dass die letzteren Iterationen des Programms 600 die Schritte 614628 durchführen müssen, wenn eine Host-CPU 102 versucht, zu einer dieser Quellenspeichervorrichtungen 110 zu schreiben, für welche eine Spiegelungskommunikation bereits als gesperrt bestimmt worden ist. Diesbezüglich nach den Zuständen von allen Quellenspeichervorrichtungen 100, für welche eine Spiegelungskommunikation bereits als gesperrt bestimmt worden ist. Diesbezüglich wird, nachdem die Zustände von allen Quellenspeichervorrichtungen 110 in der gesperrten Spiegelungsgruppe 108 geändert worden sind, wenn ein Schreiben zu einer dieser Quellenspeichervorrichtungen 110 versucht wird, das Programm 600 niemals den Schritt 614 erreichen, weil jede im Voraus in entweder den Zustand OFFLINE oder den Zustand OFFLINE HÄNGEND versetzt worden sein wird.
  • Während das Programm 600 bei dem Ausführungsbeispiel der 6 veranlasst, dass die Zustände der Quellenspeichervorrichtungen 110 nur in Reaktion auf eine Schreibanforderungs-Befehlskette geändert werden, die zu einer Zielortspeichervorrichtung 110 gerichtet wird, die in einer gesperrten Spiegelungsgruppe 108 enthalten ist, sollte es erkannt werden, dass die vorliegende Erfindung nicht so beschränkt ist, und dass die Zustände der Quellenspeichervorrichtungen 110 alternativ unabhängig von empfangenen Schreibanforderungs-Befehlsketten geändert werden können. Beispielsweise kann eine oder mehrere der Steuerungen in dem Quellenspeichersystem 104 (z.B. Steuerungen 302, 304 und 308 der 3) kontinuierlich den Zustand der Überwachungsverbindungen 112a–b entweder direkt oder mittels Verbindungszustandstabellen (z.B. Tabellen 420A–B der 49 überwachen, und diese Steuerung(en) kann (können) den Zustand von jeder Quellenspeichervorrichtung 110 in einer Spiegelungsgruppe 108 ändern, wann immer bestimmt wird, dass eine Spiegelungskommunikation für diese Spiegelungsgruppe 108 verloren worden ist.
  • 7 zeigt ein Beispiel eines Programms 700 das durch eine Host-CPU 102 durchgeführt werden kann, wann immer die Host-CPU 102 die spezielle I/O-Fehlernachricht von einem Quellenspeichersystem 104 empfängt, wie es oben diskutiert ist. Das Programm 700 kann auf der Host-CPU 102 auf irgendeine von zahlreichen Arten implementiert sein, so dass sie auf die spezielle I/O-Fehlernachricht reagiert, und die Erfindung ist nicht auf irgendeine bestimmte Implementierungstechnik beschränkt. Beispielsweise dann, wenn die Host-CPU(s) 102 unter Verwendung von Großrechnercomputern implementiert ist (sind), kann das Programm 700 zum Beispiel in dem Code für die Vorrichtungstreiber eingebettet sein, die für ein Ausgeben von Schreibanforderungs-Befehlsketten zu den Quellenspeichersystemen 104 verantwortlich sind. Bei einem solchen Ausführungsbeispiel wird die zu der (den) Host-CPU(s) 102 zurückgebrachte spezielle Fehlernachricht durch den Vorrichtungstreiber empfangen werden, der diesen eingebetteten Code ausführen kann, um das Programm 700 durchzuführen. Alternativ dazu kann dann, wenn die Host-CPU(s) 102 unter Verwendung von Computern mit offenem System implementiert ist (sind), das Programm 700 zum Beispiel auf einer höheren Ebene als der Vorrichtungstreiber implementiert sein, und der Empfang der speziellen I/O-Fehlernachricht von einem Quellenspeichersystem 104 kann ein Verarbeiten eines "Teilprozesses" verursachen, um von dem Vorrichtungstreibercode zu einem separat implementierten Code für das Programm 700 zu springen, d.h. die spezielle I/O-Fehlernachricht kann temporär "den Verarbeitungskernel stehlen", und zwar von dem Vorrichtungstreiber. Es sollte erkannt werden, dass der Code für das Programm 700 auch in dem Vorrichtungstreibercode für einen Computer mit offenem System eingebettet sein kann. Jedoch ist es oft der Fall, dass der Vorrichtungstreibercode Eigentum für offene Systeme ist, und es daher schwierig ist, auf ihn zuzugreifen und ihn zu modifizieren. Zahlreiche andere geeignete Techniken, die ein gleiches Ergebnis erreichen, werden Fachleuten auf dem Gebiet ohne weiteres einfallen, und die Erfindung ist nicht auf die beschriebenen spezifischen Beispiele beschränkt.
  • In Bezug auf das illustrative Programm 700 der 7 sollte es erkannt werden, dass die präzise Reihenfolge der Verfahrensschritte nicht entscheidend ist und dass die Erfindung nicht auf die Ausführungsbeispiele beschränkt ist, die Verfahrensschritte genau in der gezeigten Reihenfolge durchführen. Zusätzlich sollte es erkannt werden, dass die in 7 gezeigten Verfahrensschritte nur eines von zahlreichen möglichen Programmen darstellen, die das erwünschte Ergebnis erreichen können, und die Erfindung nicht auf die bestimmte gezeigte Routine bzw. das bestimmte gezeigte Programm beschränkt ist. Weiterhin sollte es verstanden werden, dass einige Ausführungsbeispiele der Erfindung weniger als alle der Funktionen durchführen können, die durch die in 7 dargestellten Verfahrensschritte durchgeführt werden, und die Erfindung nicht auf die Ausführungsbeispiele beschränkt ist, die alle Funktionen verwenden, die durch das dargestellte Programm durchgeführt werden.
  • Das Programm 700 wird aufgerufen, wenn die spezielle I/O-Fehlernachricht von einem Quellenspeichersystem 104 empfangen wird. Wenn die spezielle I/O-Fehlernachricht empfangen wird, geht das Programm 700 weiter zu einem Schritt 704, in welchem das Programm 700 alle Quellenspeichervorrichtungen 110 identifiziert, die in derselben Konsistenzgruppe wie die Zielortspeichervorrichtung 110 enthalten sind, zu welcher die Schreibanforderungs-Befehlskette, die die spezielle I/O-Fehlernachricht förderte, gerichtet wurde. Zum Identifizieren der Quellenspeichervorrichtung 110, zu welcher die Schreibanforderungs-Befehlskette, die die spezielle I/O- Fehlernachricht förderte, gerichtet wurde, kann (können) die Host-CPU(s) entweder sich auf ihren eigenen Speicher in Bezug auf die Quellenspeichervorrichtung, zu welcher sie die Schreibanforderungs-Befehlskette sendete(n), verlassen, oder können sich auf Information, die in der speziellen I/O-Fehlernachricht selbst eingebettet ist, verlassen, die die Quellenspeichervorrichtung 110 identifiziert, zu welcher die Schreibanforderungs-Befehlskette gerichtet wurde. Bei dem gezeigten Ausführungsbeispiel hält die (halten die) Host-CPU(s) 102 Information in Bezug darauf, welche Quellenspeichervorrichtungen Elemente von welchen Konsistenzgruppen sind. Somit kann die Funktion des Schritts 704 durch die Host-CPU(s) 102 einfach durch Bezugnahme auf diese Information für die Quellenspeichervorrichtung 110 durchgeführt werden, zu welcher die Schreibanforderungs-Befehlskette, die die spezielle I/O-Fehlernachricht förderte, gerichtet wurde. Nach einem Beenden des Schritts 704 geht das Programm 700 weiter zu einem Schritt 706.
  • Beim Schritt 706 bestimmt das Programm 700, ob es irgendwelche Quellenspeichervorrichtungen 110 in der relevanten Konsistenzgruppe gibt, die in dem Zustand ONLINE sind, und wenn es so ist, geht es weiter zu einem Schritt 708. Beim Schritt 708 veranlasst das Programm 700 für jede Quellenspeichervorrichtung 110, die im Schritt 706 derart identifiziert ist, dass sie im Zustand ONLINE ist, dass die Host-CPU 102 eine I/O-Befehlskette ausgibt, die das Quellenspeichersystem 104, das diese Quellenspeichervorrichtung 110 enthält, anweist, sie zu dem Zustand OFFLINE HÄNGEND zu schalten.
  • Die Ergebnisse der Schritte 706 und 708 können auf irgendeine einer Anzahl von Arten erreicht werden, und die Erfindung ist nicht auf irgendeine bestimmte Technik zu erreichen derselben beschränkt. Die Host-CPU 102 kann zum Beispiel sequenziell jede der relevanten Quellenspeichervorrichtungen 110 abfragen, um ihren aktuellen Zustand zu bestimmen, und wenn irgendeine abgefragte Quellenspeichervorrichtung 110 bleibt, um zu dem Zustand OFFLINE HÄNGEND geschaltet zu werden, kann die Host-CPU 102 eine I/O-Befehlskette ausgeben, um eine Änderung von diesem Vorrichtungszustand zu bewirken. Zum Vermeiden eines Abfragens von Vorrichtungen, die bereits zu dem Zustand OFFLINE HÄNGEND geschaltet worden sind, bevor die Host-CPU 102 ein Durchführen der Schritte 706 und 708 beginnt, kann sie beispielsweise zuerst eine Aktualisierung zu einer Zustandstabelle (z.B. im Host-CPU-Speicher gespeichert) für die relevanten Quellenspeichervorrichtungen 110 anfordern, in welchen der aktuelle Zustand von jeder Vorrichtung angezeigt wird. Die Host-CPU 102 könnte dann nur die relevanten Quellenspeichervorrichtungen 110 abfragen, für die die Tabelle anzeigt, dass sie noch nicht zu dem Zustand OFFLINE HÄNGEND geschaltet worden sind, und Befehlsketten zum Ändern des Zustands von diesen Vorrichtungen ausgeben, für die durch das Abfragen angezeigt ist, dass sie noch nicht geändert worden sind. Diese Technik kann Zeit sparen, wenn mehrere Host-CPUs 102 das Programm 700 gleichzeitig durchführen, wie es oben diskutiert ist. Alternativ dazu kann jede Host-CPU 102, die das Programm 700 durchführt, beispielsweise einfach eine I/O-Befehlskette für jede Quellenspeichervorrichtung 110, die in der Konsistenzgruppe der Zielortspeichervorrichtung enthalten ist, ausgeben, ohne eine Tabelle zu aktualisieren oder irgendein Abfragen von aktuellen Vorrichtungszuständen durchzuführen, und die Quellenspeichersysteme 104 bestimmen lassen, ob I/O-Befehlsketten, die Zustandsänderungen anfordern, die bereits bewirkt worden sind, zu berücksichtigen sind oder nicht.
  • Wenn (beim Schritt 706) bestimmt wird, dass alle Quellenspeichervorrichtungen 110 in der Konsistenzgruppe der Zielortspeichervorrichtung zu dem Zustand OFFLINE HÄNGEND geschaltet worden sind, geht das Programm 700 weiter zu einem Schritt 710. Beim Schritt 710 bestimmt das Programm 700, ob es irgendwelche Quellenspeichervorrichtungen 110 in der relevanten Konsistenzgruppe gibt, die noch nicht zu dem Zustand OFFLINE geschaltet worden sind, und wenn es so ist, geht das Programm 700 weiter zum Schritt 712.
  • Beim Schritt 712 veranlasst das Programm 700 für jede Quellenspeichervorrichtung 110, die im Schritt 710 derart identifiziert ist, dass sie in dem Zustand OFFLINE ist, die Host-CPU 102 eine I/O-Befehlskette auszugeben, die das Quellenspeichersystem 104, das diese Quellenspeichervorrichtung 110 enthält, anweist, sie zu dem Zustand OFFLINE zu schalten. Techniken, die gleich denjenigen sind, die oben in Zusammenhang mit den Schritten 706 und 708 beschrieben sind, können verwendet werden, um die Ergebnisse der Schritte 710 und 712 zu erreichen. Wenn (beim Schritt 710) bestimmt wird, dass alle Quellenspeichervorrichtungen 110 in der Konsistenzgruppe der Zielortspeichervorrichtung zu dem Zustand OFFLINE geschaltet worden sind, endet das Programm 700.
  • Bei dem in 7 gezeigten Ausführungsbeispiel speichern die Quellenspeichersysteme 104 Information, die nur identifiziert, ob jede Quellenspeichervorrichtung 110 in einer Konsistenzgruppe enthalten ist oder nicht, und speichert (speichern) die Host-CPU(s) 102 die gesamte Information in Bezug darauf, welche Quellenspeichervorrichtungen 110 in welchen Konsistenzgruppen enthalten sind. Somit ist bei dem gezeigten illustrativen Ausführungsbeispiel eine der Host-CPUs 102 die Einheit, die Befehle, die anfordern, dass die Quellenspeichervorrichtungen 110 in der relevanten Konsistenzgruppe zuerst in den Zustand OFFLINE HÄNGEND versetzt werden, und dann in den Zustand OFFLINE, sendet. Es sollte jedoch erkannt werden, dass das Sperren einer Spiegelungskommunikation für die Quellenspeichervorrichtungen 110 in der relevanten Konsistenzgruppe durchgeführt werden kann, anstelle durch eines oder mehrere der Quellenspeichersysteme 104, oder irgendeine andere Vorrichtung oder Vorrichtungen in einem Computersystem, das in Kommunikationsverbindung mit dem Quellenspeichersystem 104 ist.
  • Die oben beschriebenen Ausführungsbeispiele der vorliegenden Erfindung betreffen ein Datenspiegelungssystem, das wenigstens einen Host, wenigstens ein Quellenspeichersystem und wenigstens ein Zielspeichersystem enthält, wobei der Host Schreiboperationen zu dem Quellenspeichersystem durchführt und wobei eine Spiegelungskommunikation zwischen dem Quellen- und dem Zielspeichersystem eingerichtet wird. Bei den oben beschriebenen bestimmten Ausführungsbeispielen ist der Host als Host-CPU beschrieben. Jedoch sollte es erkannt werden, dass die oben diskutierten verschiedenen Ausführungsbeispiele der vorliegenden Erfindung diesbezüglich nicht beschränkt sind und in einem Datenspiegelungssystem verwendet werden können, das zahlreiche andere Typen von Hostvorrichtungen enthält, die Daten zu dem Quellenspeichersystem schreiben können.
  • Nachdem mehrere Ausführungsbeispiele der Erfindung im Detail beschrieben worden sind, werden verschiedene Modifikationen und Verbesserungen Fachleuten auf dem Gebiet ohne weiteres einfallen. Solche Modifikationen und Verbesserungen sollen innerhalb des Schutzumfangs der Erfindung sein. Demgemäß ist die vorangehende Beschreibung nur beispielhaft und soll nicht beschränkend sein. Die Erfindung ist nur beschränkt, wie es durch die folgenden Ansprüche und ihre Äquivalente definiert ist.

Claims (38)

  1. Verfahren zur Verwendung in einem Datenspiegelungssystem mit wenigstens einem Host (102), wenigstens einem Quellenspeichersystem (104) und wenigstens einem Zielspeichersystem (106), wobei das wenigstens eine Quellenspeichersystem (104) wenigstens eine erste und eine zweite Quellenspeichervorrichtung (110a, 110c) enthält und das wenigstens eine Zielspeichersystem (106) wenigstens eine erste und eine zweite Zielspeichervorrichtung (116a, 116c) enthält, wobei der wenigstens eine Host (102) mit dem wenigstens einen Quellenspeichersystem (104) gekoppelt ist, um Schreiboperationen zu der ersten und der zweiten Quellenspeichervorrichtung (110a, 110c) durchzuführen, wobei das wenigstens eine Quellenspeichersystem (104) mit dem wenigstens einen Zielspeichersystem (106) gekoppelt ist, um eine Spiegelungskommunikation von der ersten Quellenspeichervorrichtung (110a) zu der ersten Zielspeichervorrichtung (116a) und von der zweiten Quellenspeichervorrichtung (110c) zu der zweiten Zielspeichervorrichtung (116c) zu ermöglichen, und dadurch gekennzeichnet, dass es einen folgenden Schritt aufweist: (A) wenn eine Spiegelungskommunikation von der ersten Quellenspeichervorrichtung (110a) zu der ersten Zielspeichervorrichtung (116a) gesperrt wird, Sperren einer Spiegelungskommunikation von der zweiten Quellenspeichervorrichtung (110c) zu der zweiten Zielspeichervorrichtung (116c), wobei die wenigstens erste und zweite Speichervorrichtung (110a, 110c) in einer ersten Gruppe von Quellenspeichervorrichtungen enthalten sind, die logisch bezogene Daten, für welche erwünscht ist, dass eine konsistente Darstellung beibehalten wird, bei dem wenigstens einen Zielspeichersystem (106) speichern.
  2. Verfahren nach Anspruch 1, wobei der Schritt (A) einen folgenden Schritt enthält: (A1) Sperren einer Spiegelungskommunikation von der zweiten Quellenspeichervorrichtung (110c) zu der zweiten Zielspeichervorrichtung (116c) in Reaktion auf eine Schreibanforderungs-Befehlskette, die von dem wenigstens einen Host (102) zu der ersten Quellenspeichervorrichtung (110a) gerichtet ist.
  3. Verfahren nach Anspruch 2, wobei der Schritt (A1) einen folgenden Schritt enthält: (A2) in Reaktion auf die Schreibanforderungs-Befehlskette, die von dem wenigstens einen Host (102) zu der ersten Quellenspeichervorrichtung (110a) gerichtet ist, wenn eine Spiegelungskommunikation von der ersten Quellenspeichervorrichtung (110a) zu der ersten Zielspeichervorrichtung (116a) gesperrt wird, Senden (612) einer ersten Nachricht von dem wenigstens einen Quellenspeichersystem (104) zu dem wenigstens einen Host (102), die anzeigt, dass eine Spiegelungskommunikation von der ersten Quellenspeichervorrichtung (110a) zu der ersten Zielspeichervorrichtung (116a) gesperrt ist.
  4. Verfahren nach Anspruch 3, wobei der Schritt (A1) weiterhin einen folgenden Schritt enthält: (A3) in Reaktion auf den wenigstens einen Host (102), der die erste Nachricht von dem wenigstens einen Quellenspeichersystem (104) empfängt, die anzeigt, dass eine Spiegelungskommunikation von der ersten Quellenspeichervorrichtung (110a) zu der ersten Zielspeichervorrichtung (116a) gesperrt ist, Senden (700) einer zweiten Nachricht von dem wenigstens einen Host (102) zu dem wenigstens einen Quellenspeichersystem (104), die das wenigstens eine Quellenspeichersystem (104) anweist, eine Spiegelungskommunikation von der zweiten Quellenspeichervorrichtung (110c) zu der zweiten Zielspeichervorrichtung (116c) zu sperren.
  5. Verfahren nach Anspruch 1, wobei das wenigstens eine Quellenspeichersystem (104) eine Vielzahl von Quellenspeichervorrichtungen (110b, 110d) zusätzlich zu der wenigstens ersten und zweiten Quellenspeichervorrichtung (110a, 110c) enthält, wobei das wenigstens eine Zielspeichersystem (106) eine Vielzahl von Zielspeichervorrichtungen (116b, 116d) zusätzlich zu der wenigstens ersten und zweiten Zielspeichervorrichtung (116a, 116c) enthält, wobei der wenigstens eine Host (102) mit dem wenigstens einen Quellenspeichersystem (104) gekoppelt ist, um Schreiboperationen zu der Vielzahl von Quellenspeichervorrichtungen durchzuführen, wobei das wenigstens eine Quellenspeichersystem (104) mit dem wenigstens einen Zielspeichersystem (106) gekoppelt ist, um eine Spiegelungskommunikation von jeder der Vielzahl von Quellenspeichervorrichtungen zu einer entsprechenden der Vielzahl von Zielspeichervorrichtungen zu ermöglichen, und wobei der Schritt (A) einen folgenden Schritt enthält: (A1) wenn eine Spiegelungskommunikation von der ersten Quellenspeichervorrichtung (110a) zu der ersten Zielspeichervorrichtung (116a) gesperrt wird, Sperren einer Spiegelungskommunikation von jeder der Vielzahl von Quellenspeichervorrichtungen, die in der ersten Gruppe von Quellenspeichervorrichtungen enthalten ist, zu der entsprechenden der Vielzahl von Zielspeichervorrichtungen.
  6. Verfahren nach Anspruch 5, wobei der Schritt (A1) einen Schritt zum Beibehalten einer Spiegelungskommunikation von jeder der Vielzahl von Quellenspeichervorrichtungen (110b, 110d), die nicht in der ersten Gruppe von Quellenspeichervorrichtungen enthalten ist, zu der entsprechenden der Vielzahl von Zielspeichervorrichtungen (116b, 116d) enthält.
  7. Verfahren nach Anspruch 5, das weiterhin einen folgenden Schritt enthält: (B) nachdem eine Spiegelungskommunikation von der ersten Quellenspeichervorrichtung (110a) zu der ersten Zielspeichervorrichtung (116a) gesperrt ist, Abhalten von Befehlsketten von dem wenigstens einen Host (102), die zu der ersten Quellenspeichervorrichtung (110a) gerichtet sind, von einer Übergabe, bis nachdem eine Spiegelungskommunikation von allen der Vielzahl von Quellenspeichervorrichtungen (110a, 110c) gesperrt worden ist, die in der ersten Gruppe von Quellenspeichervorrichtungen enthalten sind, zu den entsprechenden der Vielzahl von Zielspeichervorrichtungen (116a, 116c).
  8. Verfahren nach Anspruch 5, das weiterhin einen folgenden Schritt enthält: (B) wenn eine Spiegelungskommunikation von irgendeiner der Vielzahl von Quellenspeichervorrichtungen (110a, 110c), die in einer ersten Gruppe von Quellenspeichervorrichtungen enthalten ist, zu der entsprechenden der Vielzahl von Zielspeichervorrichtungen (116a, 116c) gesperrt ist, Abhalten von Befehlsketten von dem wenigstens einen Host (102), die zu der einen der Vielzahl von Quellenspeichervorrichtungen (110a, 110c) gerichtet sind, von einer Übergabe, bis nachdem eine Spiegelungskommunikation von allen der Vielzahl von Quellenspeichervorrichtungen (110a, 110c), die in der ersten Gruppe von Quellenspeichervorrichtungen enthalten sind, zu den entsprechenden der Vielzahl von Zielspeichervorrichtungen (116a, 116c) gesperrt worden ist.
  9. Verfahren nach Anspruch 8, wobei der Schritt (B) folgende Schritte enthält: (B1) für jede der Vielzahl von Quellenspeichervorrichtungen, die in der ersten Gruppe von Quellenspeichervorrichtungen (110a, 110c) enthalten sind, Speichern von Information in dem ersten Quellenspeichersystem (104), die anzeigt, dass in Reaktion auf eine Schreibanforderungs-Befehlskette, die zu der einen der Vielzahl von Quellenspeichervorrichtungen gerichtet ist, das wenigstens eine Quellenspeichersystem die Befehlskette temporär nicht übergeben sollte; und (B2) nach einem Beenden des Schritts (B1) für jede der Vielzahl von Quellenspeichervorrichtungen, die in der ersten Gruppe von Quellenspeichervorrichtungen enthalten sind, Speichern von Information in dem ersten Quellenspeichersystem (104), die anzeigt, dass in Reaktion auf eine Schreibanforderungs-Befehlskette, die zu einer der Vielzahl von Quellenspeichervorrichtungen gerichtet ist, das wenigstens eine Quellenspeichersystem die Schreibanforderungs-Befehlskette ohne ein Transferieren von dadurch geschriebenen Daten zu der entsprechenden der Vielzahl von Zielspeichervorrichtungen (116a, 116c) übergeben sollte.
  10. Verfahren nach Anspruch 9, wobei: der Schritt (B1) einen folgenden Schritt enthält: für jede der Vielzahl von Quellenspeichervorrichtungen, die in der ersten Gruppe von Quellenspeichervorrichtungen (110a, 110c) enthalten sind, Speichern von Information in dem wenigstens einen Quellenspeichersystem (104), die anzeigt, dass in Reaktion auf eine Schreibanforderungs-Befehlskette, die zu der einen der Vielzahl von Quellenspeichervorrichtungen gerichtet ist, das wenigstens eine Quellenspeichersystem (104) eine erste Nachricht zu dem wenigstens einen Host (102) senden (612) sollte, die anzeigt, dass eine Spiegelungskommunikation von der einen der Vielzahl von Quellenspeichervorrichtungen zu der entsprechenden der Vielzahl von Zielspeichervorrichtungen gesperrt ist, und der Schritt (A1) einen folgenden Schritt enthält: in Reaktion auf den wenigstens einen Host, der eine erste Nachricht von dem wenigstens einen Quellenspeichersystem empfängt, die anzeigt, dass eine Spiegelungskommunikation von einer der Vielzahl von Quellenspeichervorrichtungen gesperrt ist, die in der ersten Gruppe von Quellenspeichervorrichtungen enthalten sind, zu der entsprechenden der Vielzahl von Zielspeichervorrichtungen, Senden (700) von wenigstens einer zweiten Nachricht von dem wenigstens einen Host (102) zu dem wenigstens einen Quellenspeichersystem (104), die das wenigstens eine Quellenspeichersystem anweist, die Schritte (B1) und (B2) durchzuführen.
  11. Verfahren nach Anspruch 1, das weiterhin einen folgenden Schritt enthält: (B) nachdem eine Spiegelungskommunikation von der ersten Quellenspeichervorrichtung (110a) zu der ersten Zielspeichervorrichtung (116a) gesperrt worden ist, Abhalten (700) von Befehlsketten von dem wenigstens einen Host (102), die zu der ersten Quellenspeichervorrichtung (110a) gerichtet sind, von einem Übergeben bzw. von einer Übergabe, bis nachdem eine Spiegelungskommunikation von der zweiten Quellenspeichervorrichtung (110c) zu der zweiten Zielspeichervorrichtung (116c) gesperrt worden ist.
  12. Verfahren nach Anspruch 1, wobei das wenigstens eine Quellenspeichersystem (104) mit dem wenigstens einen Zielspeichersystem (106) über wenigstens eine erste Spiegelungsverbindung (112a, 112b) gekoppelt ist, die eine Spiegelungskommunikation von der ersten Quellenspeichervorrichtung (110a) zu der ersten Zielspeichervorrichtung (116a) ermöglicht, und über wenigstens eine zweite Spiegelungsverbindung (112c, 112d), die eine Spiegelungskommunikation von der zweiten Quellenspeichervorrichtung (110c) zu der zweiten Zielspeichervorrichtung (116a) ermöglicht, und wobei der Schritt (A) einen Schritt zum Sperren einer Spiegelungskommunikation über die wenigstens eine zweite Spiegelungsverbindung (112c, 112d) von der zweiten Quellenspeichervorrichtung (110c) zu der zweiten Zielspeichervorrichtung (116c) enthält, während zugelassen wird, dass eine Spiegelungskommunikation über die wenigstens eine zweite Spiegelungsverbindung (112c, 112d) von einer dritten Quellenspeichervorrichtung (110d) zu einer dritten Zielspeichervorrichtung (116d) fortgeführt wird.
  13. Verfahren nach Anspruch 1, wobei das wenigstens eine Quellenspeichersystem (104) mit dem wenigstens einen Zielspeichersystem (106) über wenigstens eine erste Spiegelungsverbindung (112a) gekoppelt ist, die eine Spiegelungskommunikation von der ersten Quellenspeichervorrichtung (110a) zu der ersten Zielspeichervorrichtung (116a) ermöglicht, die aber keine Spiegelungskommunikation von der zweiten Quellenspeichervorrichtung (110c) zu der zweiten Zielspeichervorrichtung (116c) ermöglicht, und über wenigstens eine zweite Spiegelungsverbindung (112c), die eine Spiegelungskommunikation von der zweiten Quellenspeichervorrichtung (110c) zu der zweiten Zielspeichervorrichtung (116c) ermöglicht, die aber keine Spiegelungskommunikation von der ersten Quellenspeichervorrichtung (110a) zu der ersten Zielspeichervorrichtung (116a) ermöglicht.
  14. Verfahren nach Anspruch 8, wobei der Schritt (B) folgende Schritte enthält: (B1) temporäres Versetzen jeder der Vielzahl von Quellenspeichervorrichtungen (110a, 110c), die in der ersten Gruppe von Quellenspeichervorrichtungen enthalten sind, in einen ersten Zustand, in welchem in Reaktion auf eine Schreibanforderungs-Befehlskette, die zu einer der Vielzahl von Quellenspeichervorrichtungen im ersten Zustand gerichtet, das wenigstens eine Quellenspeichersystem (104) temporär die Befehlskette nicht übergibt; und (B2) nach einem Beenden des Schritts (B1) Versetzen von jeder der Vielzahl von Quellenspeichervorrichtungen (110a, 110c), die in der ersten Gruppe von Quellenspeichervorrichtungen enthalten sind, in einen zweiten Zustand, in welchem in Reaktion auf eine Schreibanforderungs-Befehlskette, die zu einer der Vielzahl von Quellenspeichervorrichtungen im zweiten Zustand gerichtet ist, das wenigstens eine Quellenspeichersystem (104) die Schreibanforderungs-Befehlskette ohne ein Transferieren von dadurch geschriebenen Daten zu der entsprechenden der Vielzahl von Zielspeichervorrichtungen (116a, 116c) übergibt.
  15. Verfahren nach Anspruch 14, wobei: der Schritt (B1) einen folgenden Schritt enthält: wenn jede der Vielzahl von Quellenspeichervorrichtungen (110a, 110c), die in der ersten Gruppe von Quellenspeichervorrichtungen enthalten sind, in dem ersten Zustand ist, in Reaktion auf eine Schreibanforderungs-Befehlskette, die zu einer der Vielzahl von Quellenspeichervorrichtungen im ersten Zustand gerichtet ist, das wenigstens eine Quellenspeichersystem (104) eine erste Nachricht zu dem wenigstens einen Host (102) sendet (612), die anzeigt, dass eine Spiegelungskommunikation von der einen der Vielzahl von Quellenspeichervorrichtungen zu der entsprechenden der Vielzahl von Zielspeichervorrichtungen gesperrt ist; und der Schritt (A1) einen folgenden Schritt enthält: in Reaktion auf den wenigstens einen Host (102), der eine erste Nachricht (612) von dem wenigstens einen Quellenspeichersystem (104) empfängt, die anzeigt, dass eine Spiegelungskommunikation von einer der Vielzahl von Quellenspeichervorrichtungen, die in der ersten Gruppe von Quellenspeichervorrichtungen enthalten sind, zu der entsprechenden der Vielzahl von Zielspeichervorrichtungen gesperrt ist, Senden (700) von wenigstens einer zweiten Nachricht von dem wenigstens einen Host (102) zu dem wenigstens einen Quellenspeichersystem (104), die das wenigstens eine Quellenspeichersystem anweist, die Schritte (B1) und (B2) durchzuführen.
  16. Quellenspeichersystem zur Verwendung in einem Datenspiegelungssystem mit wenigstens einem Host (102) und wenigstens einem Zielspeichersystem (106) mit wenigstens einer ersten und einer zweiten Zielspeichervorrichtung (116a, 116c) des Zielspeichersystems, welches Quellenspeichersystem folgendes aufweist: wenigstens eine erste und eine zweite Quellenspeichervorrichtung (110a, 110c), um mit dem wenigstens einen Host (102) gekoppelt zu werden, um dem wenigstens einen Host (102) zu ermöglichen, Schreiboperationen zu der ersten und der zweiten Quellenspeichervorrichtung (110a, 110c) durchzuführen, und um weiterhin jeweils mit der wenigstens ersten und zweiten Zielspeichervorrichtung (116a, 116c) gekoppelt zu werden, um eine Spiegelungskommunikation von der wenigstens ersten und zweiten Quellenspeichervorrichtung (110a, 110c) zu der wenigstens ersten und zweiten Zielspeichervorrichtung (116a, 116c) zu ermöglichen, und gekennzeichnet durch wenigstens eine Steuerung (308), um in Reaktion darauf, dass eine Spiegelungskommunikation von der ersten Quellenspeichervorrichtung (110a) zu der ersten Zielspeichervorrichtung (116a) gesperrt wird, eine Spiegelungskommunikation der zweiten Quellenspeichervorrichtung (110c) zu der zweiten Zielspeichervorrichtung (116c) zu sperren, wobei die wenigstens erste und zweite Speichervorrichtung (110a, 110c) in einer ersten Gruppe von Quellenspeichervorrichtungen enthalten sind, die logisch bezogene bzw. zugehörige Daten, für welche erwünscht ist, dass eine konsistente Darstellung beibehalten wird, auf dem wenigstens einen Zielspeichersystem (106) speichern.
  17. Quellenspeichersystem nach Anspruch 16, wobei die wenigstens eine Steuerung (308) konfiguriert ist, um eine Spiegelungskommunikation von der zweiten Quellenspeichervorrichtung (110c) zu der zweiten Zielspeichervorrichtung (116c) in Reaktion auf eine von dem wenigstens einen Host (102) zu der ersten Quellenspeichervorrichtung (110a) gerichtete Schreibanforderungs-Befehlskette zu sperren.
  18. Quellenspeichersystem nach Anspruch 16, wobei das wenigstens eine Zielspeichersystem (106) eine Vielzahl von Zielspeichervorrichtungen (116b, 116d) zusätzlich zu der wenigstens ersten und zweiten Zielspeichervorrichtung (116a, 116c) enthält, und wobei: das Quellenspeichersystem (104) eine Vielzahl von Quellenspeichervorrichtungen (110b, 110d) zusätzlich zu der wenigstens ersten und zweiten Quellenspeichervorrichtung (110a, 110c) enthält, um mit dem wenigstens einen Host (102) gekoppelt zu werden, um dem wenigstens einen Host (102) zu ermöglichen, Schreiboperationen zu der Vielzahl von Quellenspeichervorrichtungen (110b, 110d) durchzuführen, und um weiterhin mit der Vielzahl von Zielspeichervorrichtungen (116b, 116d) gekoppelt zu werden, um eine Spiegelungskommunikation von jeder der Vielzahl von Quellenspeichervorrichtungen zu einer entsprechenden der Vielzahl von Zielspeichervorrichtungen zu ermöglichen; und die wenigstens eine Steuerung (308) konfiguriert ist, um dann, wenn eine Spiegelungskommunikation von der ersten Quellenspeichervorrichtung (110a) zu der ersten Zielspeichervorrichtung (116a) gesperrt ist, eine Spiegelungskommunikation von jeder der Vielzahl von Quellenspeichervorrichtungen (110c), die in der ersten Gruppe von Quellenspeichervorrichtungen enthalten ist, zu der entsprechenden der Vielzahl von Zielspeichervorrichtungen (116c) zu sperren.
  19. Quellenspeichersystem nach Anspruch 18, wobei die wenigstens eine Steuerung (308) konfiguriert ist, um eine Spiegelungskommunikation von jeder der Vielzahl von Quellenspeichervorrichtungen (110a, 110c), die in der ersten Gruppe von Quellenspeichervorrichtungen enthalten ist, zu der entsprechenden der Vielzahl von Zielspeichervorrichtungen (116a, 116c) zu sperren, wenn eine Spiegelungskommunikation von der ersten Quellenspeichervorrichtung (110a) zu der ersten Zielspeichervorrichtung (116a) gesperrt ist, während eine Spiegelungskommunikation von jeder (110b, 110d) der Vielzahl von Quellenspeichervorrichtungen, die nicht in der ersten Gruppe von Quellenspeichervorrichtungen enthalten ist, zu der entsprechenden (116b, 116d) der Vielzahl von Zielspeichervorrichtungen beibehalten wird.
  20. Quellenspeichersystem nach Anspruch 18, wobei die wenigstens eine Steuerung (308) konfiguriert ist, um, nachdem eine Spiegelungskommunikation von der ersten Quellenspeichervorrichtung (110a) zu der ersten Zielspeichervorrichtung (116a) gesperrt ist, Befehlsketten von dem wenigstens einen Host (102), die zu der ersten Quellenspeichervorrichtung (110a) gerichtet sind, von einer Übergabe abzuhalten, bis nachdem eine Spiegelungskommunikation von allen der Vielzahl von Quellenspeichervorrichtungen (110a, 110c), die in der ersten Gruppe von Quellenspeichervorrichtungen enthalten sind, zu den entsprechenden der Vielzahl von Zielspeichervorrichtungen (116a, 116c) gesperrt worden ist.
  21. Quellenspeichersystem nach Anspruch 18, wobei die wenigstens eine Steuerung (308) konfiguriert ist, um dann, wenn eine Spiegelungskommunikation von irgendeiner der Vielzahl von Quellenspeichervorrichtungen (110a, 110c), die in der ersten Gruppe von Quellenspeichervorrichtungen enthalten ist, zu der entsprechenden der Vielzahl von Zielspeichervorrichtungen (116a, 116c) gesperrt ist, Befehlsketten von dem wenigstens einen Host (102), die zu der einen der Vielzahl von Quellenspeichervorrichtungen (104) gerichtet sind, von einer Übergabe abzuhalten, und zwar bis nachdem eine Spiegelungskommunikation von allen der Vielzahl von Quellenspeichervorrichtungen (110a, 110c), die in der ersten Gruppe von Quellenspeichervorrichtungen enthalten sind, zu den entsprechenden der Vielzahl von Zielspeichervorrichtungen (116a, 116c) gesperrt worden ist.
  22. Quellenspeichersystem nach Anspruch 16, wobei die wenigstens eine Steuerung (108) konfiguriert ist, um, nachdem eine Spiegelungskommunikation von der ersten Quellenspeichervorrichtung (110a) zu der ersten Zielspeichervorrichtung (116a) gesperrt worden ist, Befehlsketten von dem wenigstens einen Host (102), die zu der ersten Quellenspeichervorrichtung (110a) gerichtet sind, von einer Übergabe abzuhalten, und zwar bis nachdem eine Spiegelungskommunikation von der zweiten Quellenspeichervorrichtung (110c) zu der zweiten Zielspeichervorrichtung (116c) gesperrt worden ist.
  23. Quellenspeichersystem nach Anspruch 16, wobei das wenigstens eine Quellenspeichersystem (104) mit dem wenigstens einen Zielspeichersystem (106) über wenigstens eine erste Spiegelungsverbindung (112a) zu koppeln ist, die eine Spiegelungskommunikation von der ersten Quellenspeichervorrichtung (110a) zu der ersten Zielspeichervorrichtung (116a) ermöglicht, und über wenigstens eine zweite Spiegelungsverbindung (112c, 112d), die eine Spiegelungskommunikation von der zweiten Quellenspeichervorrichtung (110c) zu der zweiten Zielspeichervorrichtung (116c) ermöglicht, und wobei die wenigstens eine Steuerung (308) konfiguriert ist, um eine Spiegelungskommunikation über die wenigstens eine zweite Spiegelungsverbindung (112c, 112d) von der zweiten Quellenspeichervorrichtung (110c) zu der zweiten Zielspeichervorrichtung (116c) zu sperren, während zugelassen wird, dass eine Spiegelungskommunikation über die wenigstens eine zweite Spiegelungsverbindung (112c, 112d) von einer dritten Quellenspeichervorrichtung (110d) zu einer dritten Zielspeichervorrichtung (116d) andauert.
  24. Quellenspeichersystem nach Anspruch 16, wobei die wenigstens eine Steuerung (308) eine Einrichtung enthält, um dann, wenn eine Spiegelungskommunikation von der ersten Quellenspeichervorrichtung (110a) zu der ersten Zielspeichervorrichtung (116a) gesperrt ist, eine Spiegelungskommunikation von der zweiten Quellenspeichervorrichtung (110c) zu der zweiten Zielspeichervorrichtung (116c) zu sperren.
  25. Computerlesbares Medium zur Verwendung mit wenigstens einem Prozessor, der in einem Datenspiegelungssystem enthalten ist, das wenigstens einen Host (102), wenigstens ein Quellenspeichersystem (104) und wenigstens ein Zielspeichersystem (106) aufweist, wobei das wenigstens eine Quellenspeichersystem (102) wenigstens eine erste und eine zweite Quellenspeichervorrichtung (110a, 110c) enthält und dass wenigstens eine Zielspeichersystem (106) wenigstens eine erste und eine zweite Zielspeichervorrichtung (116a, 116c) enthält, wobei der wenigstens eine Host (102) mit dem wenigstens einen Quellenspeichersystem (104) gekoppelt ist, um Schreiboperationen zu der ersten und der zweiten Quellenspeichervorrichtung (110a, 110c) durchzuführen, und wobei das wenigstens eine Quellenspeichersystem (104) mit dem wenigstens einen Zielspeichersystem (106) gekoppelt ist, um eine Spiegelungskommunikation von der ersten Quellenspeichervorrichtung (110a) zu der ersten Zielspeichervorrichtung (116a) und von der zweiten Quellenspeichervorrichtung (110c) zu der zweiten Zielspeichervorrichtung (116c) zu ermöglichen, wobei das computerlesbare Medium eine Vielzahl von darauf gespeicherten Anweisungen hat, die dann, wenn sie durch den wenigstens einen Prozessor ausgeführt werden, veranlassen, dass der wenigstens eine Prozessor ein Verfahren durchführt, das durch einen folgenden Schritt gekennzeichnet ist: (A) wenn eine Spiegelungskommunikation von der ersten Quellenspeichervorrichtung (110a) zu der ersten Zielspeichervorrichtung (116a) gesperrt wird, Sperren einer Spiegelungskommunikation von der zweiten Quellenspeichervorrichtung (110c) zu der zweiten Zielspeichervorrichtung (116c), wobei die wenigstens erste und zweite Speichervorrichtung (110a, 110c) in einer ersten Gruppe von Quellenspeichervorrichtungen enthalten sind, die logisch bezogene bzw. zugehörige Daten, für welche erwünscht ist, dass eine konsistente Darstellung beibehalten wird, auf dem wenigstens einen Zielspeichersystem (106) speichern.
  26. Computerlesbares Medium nach Anspruch 25, wobei der Schritt (A) einen folgenden Schritt enthält: (A1) Sperren einer Spiegelungskommunikation von der zweiten Quellenspeichervorrichtung (110c) zu der zweiten Zielspeichervorrichtung (116c) in Reaktion auf eine von dem wenigstens einen Host (102) zu der ersten Quellenspeichervorrichtung (110a) gerichtete Schreibanforderungs-Befehlskette.
  27. Computerlesbares Medium nach Anspruch 26, wobei der Schritt (A1) einen folgenden Schritt enthält: (A2) in Reaktion auf die von dem wenigstens einen Host (102) zu der ersten Quellenspeichervorrichtung (110a) gerichtete Schreibanforderungs-Befehlskette, wenn eine Spiegelungskommunikation von der ersten Quellenspeichervorrichtung (110a) zu der ersten Zielspeichervorrichtung (116a) gesperrt ist, Senden (612) einer ersten Nachricht von dem wenigstens einen Quellenspeichersystem (104) zu dem wenigstens einen Host (102), die anzeigt, dass eine Spiegelungskommunikation von der ersten Quellenspeichervorrichtung (110a) zu der ersten Zielspeichervorrichtung (116a) gesperrt ist.
  28. Computerlesbares Medium nach Anspruch 27, wobei der Schritt (A1) weiterhin einen folgenden Schritt enthält: (A3) in Reaktion darauf, dass der wenigstens eine Host (102) die erste Nachricht von dem wenigstens einen Quellenspeichersystem (104) empfängt, die anzeigt, dass eine Spiegelungskommunikation von der ersten Quellenspeichervorrichtung (110a) zu der ersten Zielspeichervorrichtung (116a) gesperrt ist, Senden (700) einer zweiten Nachricht von dem wenigstens einen Host (102) zu dem wenigstens einen Quellenspeichersystem (104), die das wenigstens eine Quellenspeichersystem (104) anweist, eine Spiegelungskommunikation von der zweiten Quellenspeichervorrichtung (110c) zu der zweiten Zielspeichervorrichtung (116c) zu sperren.
  29. Computerlesbares Medium nach Anspruch 25, wobei das wenigstens eine Quellenspeichersystem (104) eine Vielzahl von Quellenspeichervorrichtungen (110b, 110d) zusätzlich zu der wenigstens ersten und zweiten Quellenspeichervorrichtung (110a, 110c) enthält, wobei das wenigstens eine Zielspeichersystem (106) eine Vielzahl von Zielspeichervorrichtungen (116b, 116d) zusätzlich zu der wenigstens ersten und zweiten Zielspeichervorrichtung (116a, 116c) enthält, wobei der wenigstens eine Host (102) mit dem wenigstens einen Quellenspeichersystem (109) gekoppelt ist, um Schreiboperationen zu der Vielzahl von Quellenspeichervorrichtungen (110b, 110d) durchzuführen, wobei das wenigstens eine Quellenspeichersystem (104) mit dem wenigstens einen Zielspeichersystem (106) gekoppelt ist, um eine Spiegelungskommunikation von jeder der Vielzahl von Quellenspeichervorrichtungen (110b, 110d) zu einer entsprechenden der Vielzahl von Zielspeichervorrichtungen (116b, 116d) zu ermöglichen, und wobei der Schritt (A) einen folgenden Schritt enthält: (A1) wenn eine Spiegelungskommunikation von der ersten Quellenspeichervorrichtung (110a) zu der ersten Zielspeichervorrichtung (116a) gesperrt ist, Sperren einer Spiegelungskommunikation von jeder der Vielzahl von Quellenspeichervorrichtungen (110a, 110c), die in der ersten Gruppe von Quellenspeichervorrichtungen enthalten ist, zu der entsprechenden der Vielzahl von Zielspeichervorrichtungen (116a, 116c).
  30. Computerlesbares Medium nach Anspruch 29, wobei der Schritt (A1) einen Schritt zum Beibehalten einer Spiegelungskommunikation von jeder der Vielzahl von Quellenspeichervorrichtungen (110b, 110d), die nicht in der ersten Gruppe von Quellenspeichervorrichtungen enthalten ist, zu der entsprechenden der Vielzahl von Zielspeichervorrichtungen (116b, 116d) enthält.
  31. Computerlesbares Medium nach Anspruch 29, wobei das Verfahren weiterhin einen folgenden Schritt enthält: (B) nachdem eine Spiegelungskommunikation von der ersten Quellenspeichervorrichtung (110a) zu der ersten Zielspeichervorrichtung (116a) gesperrt ist, Abhalten von Befehlsketten von dem wenigstens einen Host (102), die zu der ersten Quellenspeichervorrichtung (110a) gerichtet sind, von einer Übergabe bis nachdem eine Spiegelungskommunikation von allen der Vielzahl von Quellenspeichervorrichtungen (110a, 110c), die in der ersten Gruppe von Quellenspeichervorrichtungen enthalten sind, zu den entsprechenden der Vielzahl von Zielspeichervorrichtungen (116a, 116c) gesperrt worden ist.
  32. Computerlesbares Medium nach Anspruch 29, wobei das Verfahren weiterhin einen folgenden Schritt enthält: (B) wenn eine Spiegelungskommunikation von irgendeiner der Vielzahl von Quellenspeichervorrichtungen (110a, 110c), die in einer ersten Gruppe von Quellenspeichervorrichtungen enthalten ist, zu der entsprechenden der Vielzahl von Zielspeichervorrichtungen (116a, 116c) gesperrt ist, Abhalten von Befehlsketten von dem wenigstens einen Host (102), die zu der einen der Vielzahl von Quellenspeichervorrichtungen gerichtet sind, von einer Übergabe bis nachdem eine Spiegelungskommunikation von allen der Vielzahl von Quellenspeichervorrichtungen, die in der ersten Gruppe von Quellenspeichervorrichtungen enthalten sind, zu den entsprechenden der Vielzahl von Zielspeichervorrichtungen gesperrt worden ist.
  33. Computerlesbares Medium nach Anspruch 32, wobei der Schritt (B) folgende Schritte enthält: (B1) für jede der Vielzahl von Quellenspeichervorrichtungen (110a, 110c), die in der ersten Gruppe von Quellenspeichervorrichtungen enthalten ist, Speichern von Information in dem ersten Quellenspeichersystem (104), die anzeigt, dass in Reaktion auf eine Schreibanforderungs-Befehlskette, die zu der einen der Vielzahl von Quellenspeichervorrichtungen gerichtet ist, dass wenigstens eine Quellenspeichersystem (104) die Befehlskette temporär nicht übergeben sollte; und (B2) nach einem Beenden des Schritts (B1) für jede der Vielzahl von Quellenspeichervorrichtungen, die in der ersten Gruppe von Quellenspeichervorrichtungen enthalten ist, Speichern von Information in dem ersten Quellenspeichersystem (104), die anzeigt, dass in Reaktion auf eine Schreibanforderungs-Befehlskette, die zu der einen der Vielzahl von Quellenspeichervorrichtungen gerichtet ist, dass wenigstens eine Quellenspeichersystem die Schreibanforderungs-Befehlskette ohne ein Transferieren von dadurch geschriebenen Daten zu der entsprechenden der Vielzahl von Zielspeichervorrichtungen (116a, 116c) übergeben sollte.
  34. Computerlesbares Medium nach Anspruch 33, wobei: der Schritt (B1) einen folgenden Schritt enthält: für jede der Vielzahl von Quellenspeichervorrichtungen (110a, 110c), die in der ersten Gruppe von Quellenspeichervorrichtungen enthalten sind, Speichern von Information in dem wenigstens einen Quellenspeichersystem (104), die anzeigt, dass in Reaktion auf eine zu der einen der Vielzahl von Quellenspeichervorrichtungen gerichtete Schreibanforderungsbefehlskette das wenigstens eine Quellenspeichersystem (104) eine erste Nachricht zu dem wenigstens einen Host (102) senden (612) sollte, die anzeigt; dass eine Spiegelungskommunikation von der einen der Vielzahl von Quellenspeichervorrichtungen zu der entsprechenden der Vielzahl von Zielspeichervorrichtungen (116a, 116c) gesperrt ist; und der Schritt (A1) einen folgenden Schritt enthält: in Reaktion darauf, dass der wenigstens eine Host (102) eine erste Nachricht von dem wenigstens einen Quellenspeichersystem (104) empfängt, die anzeigt, dass eine Spiegelungskommunikation von einer der Vielzahl von Quellenspeichervorrichtungen (110a, 110c), die in der ersten Gruppe von Quellenspeichervorrichtungen enthalten sind, zu der entsprechenden der Vielzahl von Zielspeichervorrichtungen (116a, 116c) gesperrt ist, Senden (700) wenigstens einer zweiten Nachricht von dem wenigstens einen Host (102) zu dem wenigstens einen Quellenspeichersystem (104), die das wenigstens eine Quellenspeichersystem (104) anweist, die Schritte (B1) und (B2) durchzuführen.
  35. Computerlesbares Medium nach Anspruch 25, wobei das Verfahren weiterhin einen folgenden Schritt enthält: (B) nachdem eine Spiegelungskommunikation von der ersten Quellenspeichervorrichtung (110a) zu der ersten Zielspeichervorrichtung (116a) gesperrt worden ist, Abhalten von Befehlsketten von dem wenigstens einen Host (102), die zu der ersten Quellenspeichervorrichtung (110a) gerichtet sind, von einer Übergabe bis nachdem eine Spiegelungskommunikation von der zweiten Quellenspeichervorrichtung (110c) zu der zweiten Zielspeichervorrichtung (116c) gesperrt worden ist.
  36. Computerlesbares Medium nach Anspruch 25, wobei das wenigstens eine Quellenspeichersystem (104) mit dem wenigstens einen Zielspeichersystem (106) über wenigstens eine erste Spiegelungsverbindung (112a) gekoppelt ist, die eine Spiegelungskommunikation von der ersten Quellenspeichervorrichtung (110a) zu der ersten Zielspeichervorrichtung (116a) ermöglicht, und über wenigstens eine zweite Spiegelungsverbindung (112c, 112d), die eine Spiegelungskommunikation von der zweiten Quellenspeichervorrichtung (110c) zu der zweiten Zielspeichervorrichtung (116c) ermöglicht, und wobei der Schritt (A) einen Schritt zum Sperren einer Spiegelungskommunikation über die wenigstens eine zweite Spiegelungsverbindung (112c, 112d von der zweiten Quellenspeichervorrichtung (110c) zu der zweiten Zielspeichervorrichtung (116c) enthält, während zugelassen wird, dass eine Spiegelungskommunikation über die wenigstens eine zweite Spiegelungsverbindung (112c, 112d) von einer dritten Quellenspeichervorrichtung (110d) zu einer dritten Zielspeichervorrichtung (116d) andauert.
  37. Computerlesbares Medium nach Anspruch 32, wobei der Schritt (B) folgende Schritte enthält: (B1) temporäres Versetzen von jeder der Vielzahl von Quellenspeichervorrichtungen (110a, 110c), die in der ersten Gruppe von Quellenspeichervorrichtungen enthalten ist, in einen ersten Zustand, in welchem in Reaktion auf eine zu der einen der Vielzahl von Quellenspeichervorrichtungen gerichtete Schreibanforderungs-Befehlskette das wenigstens eine Quellenspeichersystem (104) die Befehlskette temporär nicht übergibt; und (B2) nach einem Beenden des Schritts (B1) Versetzen von jeder der Vielzahl von Quellenspeichervorrichtungen (110a, 110c), die in der ersten Gruppe von Quellenspeichervorrichtungen enthalten ist, in einen zweiten Zustand, in welchem in Reaktion auf eine zu der einen der Vielzahl von Quellenspeichervorrichtungen gerichtete Schreibanforderungs-Befehlskette das wenigstens eine Quellenspeichersystem (104) die Schreibanforderungs-Befehlskette ohne ein Transferieren von dadurch geschriebenen Daten zu der entsprechenden der Vielzahl von Zielspeichervorrichtungen (116a, 116c) übergibt.
  38. Computerlesbares Medium nach Anspruch 37, wobei: der Schritt (B1) einen folgenden Schritt enthält: wenn jede der Vielzahl von Quellenspeichervorrichtungen (110a, 110c), die in der ersten Gruppe von Quellenspeichervorrichtungen enthalten ist, in dem ersten Zustand ist, in Reaktion auf eine zu der einen der Vielzahl von Quellenspeichervorrichtungen gerichtete Schreibanforderungs-Befehlskette das wenigstens eine Quellenspeichersystem (104) eine erste Nachricht zu dem wenigstens einen Host (102) sendet (612), die anzeigt, dass eine Spiegelungskommunikation von der einen der Vielzahl von Quellenspeichervorrichtungen zu der entsprechenden der Vielzahl von Zielspeichervorrichtungen (116a, 116c) gesperrt ist; und der Schritt (A1) einen folgenden Schritt enthält: in Reaktion darauf, dass der wenigstens eine Host (102) die erste Nachricht von dem wenigstens einen Quellenspeichersystem (104) empfängt, die anzeigt, dass eine Spiegelungskommunikation von einer der Vielzahl von Quellenspeichervorrichtungen (110a, 110c), die in der ersten Gruppe von Quellenspeichervorrichtungen enthalten ist, zu der entsprechenden der Vielzahl von Zielspeichervorrichtungen (116a, 116c) gesperrt ist, Senden (700) wenigstens einer zweiten Nachricht von dem wenigstens einen Host (102) zu dem wenigstens einen Quellenspeichersystem (104), die das wenigstens eine Quellenspeichersystem (104) anweist, die Schritte (B1) und (B2) durchzuführen.
DE60016371T 1999-09-01 2000-09-01 Vorrichtung und verfahren um die übereinstimmung der daten in einer gruppe von einspiegelungseinrichtungen gespeichert zu behalten Expired - Lifetime DE60016371T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/388,328 US6493796B1 (en) 1999-09-01 1999-09-01 Method and apparatus for maintaining consistency of data stored in a group of mirroring devices
US388328 1999-09-01
PCT/US2000/024128 WO2001016748A1 (en) 1999-09-01 2000-09-01 Method and apparatus for maintaining consistency of data stored in a group of mirroring devices

Publications (2)

Publication Number Publication Date
DE60016371D1 DE60016371D1 (de) 2005-01-05
DE60016371T2 true DE60016371T2 (de) 2005-12-01

Family

ID=23533675

Family Applications (4)

Application Number Title Priority Date Filing Date
DE60016371T Expired - Lifetime DE60016371T2 (de) 1999-09-01 2000-09-01 Vorrichtung und verfahren um die übereinstimmung der daten in einer gruppe von einspiegelungseinrichtungen gespeichert zu behalten
DE04002582T Pending DE04002582T1 (de) 1999-09-01 2000-09-01 Verfahren und Gerät zum Aufrechterhalten einer Konsistenz von in einer Gruppe von Spiegelungsvorrichtungen gespeicherten Daten
DE04028359T Pending DE04028359T1 (de) 1999-09-01 2000-09-01 Verfahren und einrichtung zum aufrechterhalten der konsistenz von in einer gruppe von gespiegelten einrichtungen gespeicherten daten
DE04002583T Pending DE04002583T1 (de) 1999-09-01 2000-09-01 Verfahren und Gerät zum Aufrechterhalten einer Konsistenz von in einer Gruppe von Spiegelungsvorrichtungen gespeicherten Daten

Family Applications After (3)

Application Number Title Priority Date Filing Date
DE04002582T Pending DE04002582T1 (de) 1999-09-01 2000-09-01 Verfahren und Gerät zum Aufrechterhalten einer Konsistenz von in einer Gruppe von Spiegelungsvorrichtungen gespeicherten Daten
DE04028359T Pending DE04028359T1 (de) 1999-09-01 2000-09-01 Verfahren und einrichtung zum aufrechterhalten der konsistenz von in einer gruppe von gespiegelten einrichtungen gespeicherten daten
DE04002583T Pending DE04002583T1 (de) 1999-09-01 2000-09-01 Verfahren und Gerät zum Aufrechterhalten einer Konsistenz von in einer Gruppe von Spiegelungsvorrichtungen gespeicherten Daten

Country Status (5)

Country Link
US (1) US6493796B1 (de)
EP (4) EP1426863B1 (de)
JP (2) JP3732440B2 (de)
DE (4) DE60016371T2 (de)
WO (1) WO2001016748A1 (de)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7039657B1 (en) * 1999-11-09 2006-05-02 International Business Machines Corporation Method, system, and program for accessing data from storage systems
GB2368411B (en) * 2000-10-25 2004-01-28 Proksim Software Inc Sharing data over a network
US6883018B1 (en) 2001-01-24 2005-04-19 Emc Corporation Scanning a message-list
EP1248179A1 (de) * 2001-04-03 2002-10-09 Hewlett-Packard Company Selektive Aktivierung und Inaktivierung von an ein USB-System angeschlossenen Peripheriegeräten
US7640582B2 (en) 2003-04-16 2009-12-29 Silicon Graphics International Clustered filesystem for mix of trusted and untrusted nodes
US7617292B2 (en) 2001-06-05 2009-11-10 Silicon Graphics International Multi-class heterogeneous clients in a clustered filesystem
US6751681B2 (en) * 2001-06-18 2004-06-15 Sony Corporation System and method for providing automatic firmware updates and diagnostics for network attached storage devices
US7653928B2 (en) * 2002-08-30 2010-01-26 Sony Corporation Remote user interface for media player
US7143250B1 (en) 2003-06-02 2006-11-28 Lsi Logic Corporation Methods and systems for improving mirror performance via optimized multi-channel utilization
US7133986B2 (en) * 2003-09-29 2006-11-07 International Business Machines Corporation Method, system, and program for forming a consistency group
US8032726B2 (en) * 2003-12-03 2011-10-04 Hitachi, Ltd Remote copy system
US7437389B2 (en) * 2004-03-10 2008-10-14 Hitachi, Ltd. Remote copy system
US7085788B2 (en) 2003-12-03 2006-08-01 Hitachi, Ltd. Remote copy system configured to receive both a write request including a write time and a write request not including a write time.
US7724599B2 (en) 2003-12-03 2010-05-25 Hitachi, Ltd. Remote copy system
JP2006221487A (ja) * 2005-02-14 2006-08-24 Hitachi Ltd リモートコピーシステム
US20050149554A1 (en) * 2003-12-29 2005-07-07 Chong Fay Jr. One-way data mirror using write logging
US20050149548A1 (en) * 2003-12-29 2005-07-07 Chong Fay Jr. One-way data mirror using copy-on-write
KR100584598B1 (ko) * 2004-05-17 2006-05-30 삼성전자주식회사 재기록 가능 기록 매체, 기록/재생 방법, 기록/재생 장치및 싱크 검출 장치
US7707186B2 (en) * 2004-06-18 2010-04-27 Emc Corporation Method and apparatus for data set migration
JP4477950B2 (ja) 2004-07-07 2010-06-09 株式会社日立製作所 リモートコピーシステム及び記憶装置システム
JP4915775B2 (ja) 2006-03-28 2012-04-11 株式会社日立製作所 ストレージシステム及びストレージシステムのリモートコピー制御方法
US7330861B2 (en) 2004-09-10 2008-02-12 Hitachi, Ltd. Remote copying system and method of controlling remote copying
US7284150B2 (en) * 2004-09-22 2007-10-16 International Business Machines Corporation System and method for reliably storing data and providing efficient incremental backup and asynchronous mirroring by preferentially handling new data
US7647357B2 (en) * 2004-11-12 2010-01-12 International Business Machines Corporation Data transfer management in consistency group formation
JP2007047892A (ja) * 2005-08-08 2007-02-22 Hitachi Ltd 計算機システム及び計算機システムの状態管理方法
US7668810B2 (en) * 2006-01-27 2010-02-23 International Business Machines Corporation Controlling consistency of data storage copies
US7464238B1 (en) 2006-04-28 2008-12-09 Network Appliance, Inc. System and method for verifying the consistency of mirrored data sets
JP4774400B2 (ja) * 2007-10-31 2011-09-14 株式会社日立製作所 監視システム
US20090182797A1 (en) * 2008-01-10 2009-07-16 Microsoft Corporation Consistent contingency table release
WO2010056239A1 (en) * 2008-11-13 2010-05-20 Lsi Corporation Active-active failover for a direct-attached storage system
US8453257B2 (en) * 2009-08-14 2013-05-28 International Business Machines Corporation Approach for securing distributed deduplication software
US8593918B1 (en) * 2011-06-30 2013-11-26 Emc Corporation Maintaining tape emulation consistency
US8601209B1 (en) 2011-06-30 2013-12-03 Emc Corporation Maintaining dasd and tape continuous availability
CN102369518B (zh) * 2011-08-31 2014-07-09 华为技术有限公司 管理计算机系统内存的方法和装置
US9430343B1 (en) * 2012-05-07 2016-08-30 Emc Corporation Using affinity to mediate bias in a distributed storage system
US9838260B1 (en) 2014-03-25 2017-12-05 Amazon Technologies, Inc. Event-based data path detection
US10467423B1 (en) * 2014-03-26 2019-11-05 Amazon Technologies, Inc. Static analysis-based tracking of data in access-controlled systems
US9645766B1 (en) 2014-03-28 2017-05-09 EMC IP Holding Company LLC Tape emulation alternate data path
US20170185493A1 (en) * 2014-07-15 2017-06-29 Hewlett Packard Enterprise Development Lp Database transaction replay
US10728272B1 (en) 2014-12-17 2020-07-28 Amazon Technologies, Inc. Risk scoring in a connected graph
DE102017102420A1 (de) 2017-02-08 2018-08-09 Abb Turbo Systems Ag Gleitlagerung mit hydrodynamischer axialsicherung
US11379335B2 (en) 2017-10-05 2022-07-05 International Business Machines Corporation Self-reporting remote copy performance on a consistency group
US11157368B2 (en) 2017-11-27 2021-10-26 Nutanix, Inc. Using snapshots to establish operable portions of computing entities on secondary sites for use on the secondary sites before the computing entity is fully transferred
US10942822B2 (en) 2017-11-27 2021-03-09 Nutanix, Inc. Consistency group restoration from a secondary site
US11442647B2 (en) 2017-11-27 2022-09-13 Nutanix, Inc. Lossless data restore using multiple levels of lightweight snapshots
US11093338B2 (en) 2017-11-27 2021-08-17 Nutanix, Inc. Emulating high-frequency application-consistent snapshots by forming restore point data sets based on remote site replay of I/O commands
JP2021082003A (ja) * 2019-11-19 2021-05-27 キヤノン株式会社 情報処理装置
US11055017B1 (en) 2020-01-27 2021-07-06 International Business Machines Corporation Throttling a point-in-time snapshot copy operation within a data consistency application
US11853585B2 (en) 2020-01-27 2023-12-26 International Business Machines Corporation Performing a point-in-time snapshot copy operation within a data consistency application
US11513716B2 (en) * 2021-01-22 2022-11-29 EMC IP Holding Company LLC Write first to winner in a metro cluster

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5313585A (en) * 1991-12-17 1994-05-17 Jeffries Kenneth L Disk drive array with request fragmentation
US5555404A (en) 1992-03-17 1996-09-10 Telenor As Continuously available database server having multiple groups of nodes with minimum intersecting sets of database fragment replicas
KR0128271B1 (ko) * 1994-02-22 1998-04-15 윌리암 티. 엘리스 재해회복을 위한 일관성 그룹 형성방법 및 레코드갱싱의 섀도잉 방법, 주시스템, 원격데이타 섀도잉 시스템과 비동기 원격데이타 복제 시스템
JP2894676B2 (ja) * 1994-03-21 1999-05-24 インターナショナル・ビジネス・マシーンズ・コーポレイション 非同期式遠隔コピー・システム及び非同期式遠隔コピー方法
US5581754A (en) * 1994-12-07 1996-12-03 Xerox Corporation Methodology for managing weakly consistent replicated databases
US5799323A (en) 1995-01-24 1998-08-25 Tandem Computers, Inc. Remote duplicate databased facility with triple contingency protection
US5542065A (en) * 1995-02-10 1996-07-30 Hewlett-Packard Company Methods for using non-contiguously reserved storage space for data migration in a redundant hierarchic data storage system
US5692155A (en) * 1995-04-19 1997-11-25 International Business Machines Corporation Method and apparatus for suspending multiple duplex pairs during back up processing to insure storage devices remain synchronized in a sequence consistent order
US5799141A (en) 1995-06-09 1998-08-25 Qualix Group, Inc. Real-time data protection system and method
US5901327A (en) 1996-05-28 1999-05-04 Emc Corporation Bundling of write data from channel commands in a command chain for transmission over a data link between data storage systems for remote data mirroring
US6058455A (en) * 1997-07-02 2000-05-02 International Business Corporation RAID system having a selectable unattended mode of operation with conditional and hierarchical automatic re-configuration
JP3563591B2 (ja) * 1997-09-29 2004-09-08 株式会社リコー 分散型データベースシステムの一貫性管理方法およびその方法の各工程をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体
US6304941B1 (en) * 1998-04-08 2001-10-16 International Business Machines Corporation Method and apparatus for reducing processor operations when adding a new drive to a raid-6 drive group

Also Published As

Publication number Publication date
EP1426863A3 (de) 2005-02-09
DE04028359T1 (de) 2006-06-22
EP1125201A1 (de) 2001-08-22
EP1426863B1 (de) 2016-03-30
EP1125201B1 (de) 2004-12-01
EP1426863A2 (de) 2004-06-09
DE04002583T1 (de) 2005-08-18
DE04002582T1 (de) 2005-08-18
EP1517238A1 (de) 2005-03-23
US6493796B1 (en) 2002-12-10
JP2003508847A (ja) 2003-03-04
DE60016371D1 (de) 2005-01-05
JP2006053932A (ja) 2006-02-23
EP1435575A2 (de) 2004-07-07
JP3732440B2 (ja) 2006-01-05
EP1435575A3 (de) 2005-02-09
WO2001016748A1 (en) 2001-03-08

Similar Documents

Publication Publication Date Title
DE60016371T2 (de) Vorrichtung und verfahren um die übereinstimmung der daten in einer gruppe von einspiegelungseinrichtungen gespeichert zu behalten
DE69730449T2 (de) Erzeugung einer spiegeldatenkopie (bild) unter verwendung von referenzetiketten
DE69629444T2 (de) Datenverarbeitungsgerät und Verfahren zur Ersetzung von ausgefallenen Speichereinheiten
DE69913984T2 (de) Verteiltes transaktionales verarbeitungssystem und verfahren
DE10085374B4 (de) Systemmanagementspeicher für die Systemmanagement-Interrupt-Behandler wird in die Speichersteuereinrichtung integriert, unabhängig vom BIOS und Betriebssystem
DE69907709T2 (de) Prozessüberwachung in einem rechnersystem
DE69629630T2 (de) Struktur zur Gruppenzugehörigkeitsverwaltung in einem Mehrfachrechnersystem
DE69727856T2 (de) Multiprozessorsystem mit Konsistenzfehler-Registrierung mit entsprechendem Verfahren
DE2856483C2 (de)
DE69913553T2 (de) Konfigurierung von systemeinheiten
DE69907824T2 (de) Verfahren und Vorrichtung zur Fehlererkennung und Wiederherstellung mit vorbestimmtem Replikationsgrad für verteilte Anwendungen in einem Netzwerk
DE4417068A1 (de) Verfahren und Einrichtung zum Betreiben eines Einzel-Prozessor-Computersystems als Mehr-Prozessor-System
DE602005002532T2 (de) Cluster-datenbank mit ferndatenspiegelung
DE69535099T2 (de) Identifizieren der Steuergerätepaare in einer Festplattenanordnung mit dualem Steuergerät
DE10297430T5 (de) Datenspiegelung unter Anwendung von shared Bussen
DE4423559A1 (de) Datenverbindungsverfahren und Vorrichtung für Multiprozessor-Computersysteme mit gemeinsamem Speicher
DE10123067B4 (de) Synchrone Vervielfältigung von Transaktionen in einem verteilten System
DE3727850A1 (de) Fehler-pruefsystem
DE102004027672A1 (de) Speicherplattenarraysystem
DE69913375T2 (de) Anzeige eines fehlers in einem transaktionsverarbeitungssystem
DE3621321A1 (de) Cache-speicher- bzw. multiprozessor-system und betriebsverfahren
EP1667022A2 (de) Vorrichtung und Verfahren zur Behebung von Fehlern bei einem Prozessor mit zwei Ausführungseinheiten
DE69930307T2 (de) Datenspeichersystem
DE2629459A1 (de) Datenverarbeitungssystem
DE112005002370T5 (de) Ausführung von Kontrollbefehlen in redundanten Multithreadingumgebungen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition