-
Technisches Anwendungsgebiet
-
Diese Erfindung betrifft Datenreplikationsumgebungen und konkret Systeme und Verfahren zum Verwalten von Speicherfunktionen in Datenreplikationsumgebungen.
-
Stand der Technik
-
In Datenreplikationsumgebungen wie Peer-to-Peer-Remote-Copy- („PPRC“-) oder Extended-Remote-Copy- („XRC“-) Umgebungen werden Daten von einer primären Speichereinheit auf eine sekundäre Speichereinheit gespiegelt, um zwei konsistente Kopien der Daten zu pflegen. Die primären und sekundären Speichereinheiten können sich an verschiedenen Standorten befinden, möglicherweise hunderte oder sogar tausende Meilen voneinander entfernt. Im Falle eines Ausfalls der primären Speichereinheit können Ein-/Ausgaben an die sekundäre Speichereinheit umgeleitet werden, wodurch ein ununterbrochener Betrieb ermöglicht wird. Wenn die primäre Speichereinheit wiederinstandgesetzt wurde, können Ein-/Ausgaben wieder an der primären Speichereinheit aufgenommen werden.
-
Beim Verwalten von Speicher an einem primären Standort muss darauf geachtet werden, sicherzustellen, dass sämtliche an dem primären Standort initiierte Operationen (d.h. Speicherfunktionen) erfolgreich auf den sekundären Standort gespiegelt werden können. Wenn zum Beispiel ein Zieldatenträger an dem primären Standort so zugeordnet ist, dass er (zum Beispiel unter Verwendung der FlashCopy-Funktion) eine Zeitpunktkopie empfängt, muss darauf geachtet werden, sicherzustellen, dass ein entsprechender Zieldatenträger an dem sekundären Standort eine Zeitpunktkopie empfangen kann. Wenn es zum Beispiel eine Zeitpunktkopie-Funktion erfordert, dass sich sowohl der Quelldatenträger als auch der Zieldatenträger auf demselben Speichersystem befinden, und wenn an dem primären Standort eine Zeitpunktkopie-Operation für einen diese Bedingung erfüllenden Quelldatenträger und Zieldatenträger initiiert wird, werden Techniken zum Überprüfen, ob der entsprechende Quelldatenträger und der entsprechende Zieldatenträger an dem sekundären Standort auch diese Bedingung erfüllen, benötigt. Zum Durchführen dieser Ermittlung an dem primären Standort werden Informationen über die Speicherkonfiguration an dem sekundären Standort benötigt. Derartige Informationen sind möglicherweise an dem primären Standort nicht ohne Weiteres verfügbar oder ein Zugriff darauf ist möglicherweise ohne Verschlechterung der Leistungsfähigkeit schwierig.
-
In diesem Zusammenhang existieren bereits veröffentlichte Dokumente. Beispielsweise beschreibt das Dokument
JP 2011 48 549 A ein Datensynchronisationssystem zum Synchronisieren von Daten zwischen einem Master und einem Slave-Computer. Dabei kontrolliert der Slave-Computer den Zugriff anhand einer Datenschutz-Policy. Zusätzlich beschreibt das Dokument
US 2009 / 0 049 328 A1 ein Erkennen eines Musters, welches zu Nutzerbedingungen für den Fall konform ist, bei dem einen Notfallwiederherstellung mittels einer Zusammenschaltung mehrerer Sites vorgesehen ist. Darüber hinaus beschreit das Dokument
US 7 409 510 B2 Techniken zum Durchführen von Kopierfunktionen. Dabei wird eine unmittelbare virtuelle Kopieroperation von einem ersten Teil von Daten an einen primären gespiegelten Anteil der Daten ausgegeben, wobei der primäre gespiegelte Anteil der Daten einem sekundären gespiegelten Anteil der Daten entspricht. Dabei stehen der primäre und der sekundäre gespiegelte Anteil der Daten in einem Spiegelverhältnis.
-
Angesichts des Vorangehenden werden Systeme und Verfahren zum Verfügbarmachen von Informationen über eine ferne Speicherkonfiguration an einem primären Standort benötigt, um auf einen sekundären Standort gespiegelte Speicherfunktionen wirksam zu verwalten. Derartige Systeme und Verfahren würden idealerweise auf Richtlinien beruhende Entscheidungen an einem primären Standort ermöglichen, welche die Speicherkonfiguration an einem sekundären Standort berücksichtigen.
-
Kurzdarstellung der Erfindung
-
Technisches Problem
-
Die Erfindung wurde als Reaktion auf den aktuellen Stand der Technik und insbesondere als Reaktion auf die Probleme und Bedürfnisse des Standes der Technik entwickelt, die durch aktuell verfügbare Systeme und Verfahren noch nicht vollständig gelöst wurden. Entsprechend wurde die Erfindung entwickelt, um Systeme und Verfahren zum Verwalten von Speicherfunktionen in einer Datenreplikationsumgebung bereitzustellen. Die Merkmale und Vorteile der Erfindung werden aus der folgenden Beschreibung und den beigefügten Ansprüchen besser ersichtlich bzw. können durch Umsetzen der Erfindung wie nachfolgend dargelegt gelernt werden.
-
Lösung des Problems
-
Das oben skizzierte technische Problem wir durch die Gegenstände der unabhängigen Ansprüche gelöst. Weitere Ausgestaltungen sind durch die abhängigen Ansprüche angegeben.
-
Damit die Vorteile der Erfindung ohne Weiteres verstanden werden, wird eine ausführlichere Beschreibung der oben kurz beschriebenen Erfindung unter Bezugnahme auf spezifische Ausführungsformen angeführt, die in den beigefügten Zeichnungen veranschaulicht werden. Unter dem Verständnis, dass diese Zeichnungen lediglich typische Ausführungsformen der Erfindung abbilden und deshalb nicht als deren Umfang einschränkend anzusehen sind, wird die Erfindung durch die Verwendung der beigefügten Zeichnungen mit zusätzlicher Genauigkeit und Ausführlichkeit erläutert.
-
Figurenliste
-
- 1 ist ein Übersichtsblockschaubild, das ein Beispiel einer Datenreplikationsumgebung wie zum Beispiel eine XRC-Umgebung zeigt.
- 2 ist ein Übersichtsblockschaubild, das ein Konfigurationsaktualisierungsmodul und ein Lesemodul zum Verfügbarmachen von fernen Metadaten an einem primären Standort zeigt.
- 3 ist ein Übersichtsblockschaubild, das zeigt, wie eine Speicherverwaltungseinheit an dem primären Standort die fernen Metadaten zum Treffen von Speicherverwaltungsentscheidungen verwenden kann.
- 4 ist ein Übersichtsblockschaubild, das ein Überprüfungsmodul zum Überprüfen zum Zeitpunkt der Zuordnung, ob ferne Datenträger noch immer zum Teilnehmen in einer angeforderten Speicherfunktion geeignet sind, zeigt.
- 5 ist ein Übersichtsblockschaubild, das ein allgemeineres System gemäß der vorliegenden Erfindung zeigt.
- 6 ist ein Übersichtsblockschaubild, das ein Beispiel eines Speichersystems zur Verwendung als primäres oder sekundäres Speichersystem zeigt.
-
Beschreibung von Ausführungsformen
-
Man wird ohne Weiteres verstehen, dass die Komponenten der vorliegenden Erfindung, wie hierin allgemein beschrieben und in den Figuren veranschaulicht, in einer großen Vielfalt unterschiedlicher Konfigurationen angeordnet und ausgeführt werden könnten. Folglich soll die folgende ausführlichere Beschreibung der Ausführungsformen der Erfindung wie in den Figuren dargestellt den beanspruchten Umfang der Erfindung nicht einschränken, sondern sie steht lediglich stellvertretend für bestimmte Beispiele von derzeit in Betracht gezogenen Ausführungsformen gemäß der Erfindung. Die aktuell beschriebenen Ausführungsformen können am besten unter Bezugnahme auf die Zeichnungen verstanden werden, wobei gleichartige Teile durchgängig durch gleichartige Bezugszahlen angegeben sind.
-
Der Fachmann wird verstehen, dass die vorliegende Erfindung als Vorrichtung, System, Verfahren oder Computerprogrammprodukt ausgeführt werden kann. Des Weiteren kann die vorliegende Erfindung die Form einer Hardware-Ausführungsform, einer Software-Ausführungsform (darunter Firmware, im Speicher befindliche Software, Mikrocode, usw.), die so konfiguriert ist, dass sie Hardware bedienen kann, oder einer Software- und Hardware-Aspekte kombinierenden Ausführungsform annehmen, die hierin alle allgemein als „Modul“ oder „System“ bezeichnet sein können. Des Weiteren kann die vorliegende Erfindung die Form eines auf einem beliebigen physischen Ausdrucksmedium enthaltenen, durch einen Computer lesbaren Speichermedium enthalten sein, auf dem auf einem Computer verwendbare Programmcode gespeichert ist.
-
Zum Speichern des Computerprogrammprodukts kann jede beliebige Kombination aus einem oder mehreren auf einem Computer verwendbaren bzw. durch einen Computer lesbaren Speichermedien verwendet werden. Bei dem auf einem Computer verwendbaren bzw. durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, eine derartige Vorrichtung oder Einheit handeln, ohne darauf beschränkt zu sein. Zu konkreteren Beispielen (eine nicht erschöpfende Liste) des durch einen Computer lesbaren Speichermediums können die folgenden gehören: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CDROM), eine optische Speichereinheit oder eine magnetische Speichereinheit. In dem Kontext dieses Dokuments kann ein auf einem Computer verwendbares bzw. durch einen Computer lesbares Speichermedium jedes beliebige Medium sein, welches das Programm, das von oder in Verbindung mit dem Anweisungsausführungssystem, der Vorrichtung oder der Einheit verwendet wird, enthalten, speichern oder transportieren kann.
-
Computerprogrammcode für das Ausführen von Arbeitsschritten der vorliegenden Erfindung kann in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Java, Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Computerprogrammcode für das Umsetzen der Erfindung kann auch in einer maschinenorientierten Programmiersprache wie der Assembler-Sprache geschrieben werden.
-
Die vorliegende Erfindung wird nachfolgend möglicherweise unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen, Systemen und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern durch Computerprogrammanweisungen oder Code ausgeführt werden können. Diese Computerprogrammanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen.
-
Diese Computerprogrammanweisungen können auch in einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer oder eine andere programmierbare Datenverarbeitungsvorrichtung so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass die in dem durch einen Computer lesbaren Speichermedium gespeicherten Anweisungen ein Herstellungsprodukt herstellen, darunter Anweisungsmittel, welche die/den in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder angegebene(n) Funktion/Schritt umsetzen. Die Computerprogrammanweisungen können auch auf einen Computer oder eine andere programmierbare Datenverarbeitungsvorrichtung geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer oder einer anderen programmierbaren Vorrichtung ausgeführten Anweisungen Prozesse zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen.
-
Unter Bezugnahme auf 1 wird eine Ausführungsform eines Datenreplikationssystems 100 veranschaulicht. In bestimmten Ausführungsformen handelt es sich bei dem Datenreplikationssystem 100 um ein asynchrones Datenreplikationssystem 100 wie zum Beispiel IBM Extended Remote Copy (XRC), obwohl die hierin offenbarten Systeme und Verfahren auf andere Typen von asynchronen und synchronen Datenreplikationssysteme ausgeweitet werden könnten. Wie gezeigt, beinhaltet das Datenreplikationssystem 100 verschiedene sich an einem primären Standort 102a und einem sekundären Standort 102b befindliche Komponenten. Der primäre Standort 102a kann Komponenten beinhalten, die als ein primäres Produktionssystem dienen, während der sekundäre Standort 102b Komponenten beinhalten kann, welche die Komponenten an dem primären Standort 102a absichern. Falls an dem primären Standort 102a ein Ausfall stattfindet, können Ein-/Ausgaben an den sekundären Standort 102b umgeleitet werden, wodurch ein ununterbrochener Betrieb ermöglicht wird. Wenn der Ausfall an dem primären Standort 102a behoben wurde, können Ein-/Ausgaben wieder an dem primären Standort 102a aufgenommen werden. Der Prozess des Umleitens von Ein-/Ausgaben von dem primären Standort 102a zu dem sekundären Standort 102b kann als „Funktionsübernahme“ („failover“) bezeichnet werden. Der Prozess des Umleitens von Ein-/Ausgaben an den primären Standort 102a kann als „Zurücksetzung“ („failback“) bezeichnet werden.
-
Wie gezeigt, beinhaltet der primäre Standort 102a ein primäres Host-System 104a und ein oder mehrere primäre Speichersysteme 106a. Der sekundäre Standort 102b beinhaltet ein sekundäres Host-System 104b und ein oder mehrere sekundäre Speichersysteme 106b. In einer XRC-Umgebung werden Daten asynchron von einem oder mehreren Datenträgern auf den primären Speichersystemen 106a auf einen oder mehrere Datenträger auf den sekundären Speichersystemen 106b gespiegelt. Eine Speicherverwaltungseinheit 110a (z.B. DFSMS) an dem primären Standort 102a kann Datenträger auf den primären Speichersystemen 106a verwalten. Gleichermaßen kann eine Speicherverwaltungseinheit 110b (z.B. DFSMS) an dem sekundären Standort 102b Datenträger auf den sekundären Speichersystemen 106b verwalten. Die Speicherverwaltungseinheit 110b an dem sekundären Standort 102b kann eine Funktionalität zum Spiegeln (d.h. Kopieren) von Daten von den primären Datenträgern 112a, 116a auf die sekundären Datenträger 112b, 116b, wie es in XRC-Systemen geschieht, beinhalten. Um dies zu erreichen, kann die Speicherverwaltungseinheit 110b an dem sekundären Standort 102b auf eine derartige Weise verbunden sein, dass sie sowohl auf die primären als auch auf die sekundären Speichersysteme 106a, 106b Zugriff hat.
-
In einigen Fällen müssen bestimmte an dem primären Standort 102a initiierte Speicherfunktionen möglicherweise auf den sekundären Standort 102b gespiegelt (d.h. dupliziert) werden. Eine an dem primären Standort 102a durchgeführte Zeitpunktkopie-Operation muss zum Beispiel möglicherweise an dem sekundären Standort 102b dupliziert werden, um Datenkonsistenz bereitzustellen. Um dies zu erreichen muss die Speicherverwaltungseinheit 110a vor dem Initiieren der Speicherfunktion überprüfen, ob die Speicherfunktion erfolgreich auf den sekundären Standort 102b dupliziert werden kann.
-
In bestimmten Ausführungsformen kann ein Kopiermodul 108 (das eine Zeitpunktkopie-Funktion wie zum Beispiel FlashCopy umsetzt) so konfiguriert sein, dass es an dem primären Standort 102a eine Zeitpunktkopie-Funktion initiiert, indem es der Speicherverwaltungseinheit 110a eine Speicherplatzanforderung übergibt. Die Speicherverwaltungseinheit 110a kann wiederum einen oder mehrere in Frage kommende primäre Zieldatenträger 116a erkennen, welche die Zeitpunktkopie empfangen können. Zu diesen können Zieldatenträger 116a gehören, die sich in demselben Speichersystem wie der Quelldatenträger 112a befinden und/oder die Teil derselben Spiegelung (d.h. Konsistenzgruppe) wie der Quelldatenträger 112a sind. Die Speicherverwaltungseinheit 110a kann die in Frage kommenden Zieldatenträger 116a durch Analysieren von lokalen Metadaten 114a erkennen, welche die Software- und Hardware-Konfiguration der primären Speichersysteme 106a beschreiben.
-
Zusätzlich zum Finden von geeigneten in Frage kommenden Zieldatenträgern 116a an dem primären Standort 102a muss die Speicherverwaltungseinheit 110a überprüfen, ob jegliche an dem primären Standort 102a durchgeführte Zeitpunktkopie-Operationen an dem sekundären Standort 102b dupliziert werden kann. Um dies zu erreichen, muss die Speicherverwaltungseinheit 110a überprüfen, ob die erkannten primären Zieldatenträger 116a entsprechende sekundäre Zieldatenträger 116b aufweisen, die an der Zeitpunktkopie-Operation teilnehmen können. Die Speicherverwaltungseinheit 110a muss zum Beispiel möglicherweise überprüfen, ob sich sämtliche an der Zeitpunktkopie-Operation teilnehmenden sekundären Zieldatenträger 116a in demselben Speichersystem wie die sekundären Quelldatenträger 112b befinden und/oder ob sie Teil derselben Spiegelung wie der sekundäre Quelldatenträger 112b sind.
-
Die Speicherverwaltungseinheit 110a könnte diese Feststellung durchführen, indem sie von dem sekundären Standort 102b die fernen Metadaten 114b anfordert, welche die ferne Speicherkonfiguration beschreiben. Dieser Ansatz erfährt jedoch möglicherweise eine Leistungseinbuße für jede Abfrage, die proportional zu der Umlaufentfernung zwischen dem primären Standort 102a und dem sekundären Standort 102b ist. Des Weiteren muss eine Abfrage möglicherweise für jeden in Frage kommenden Datenträger 116a für jede angeforderte Zeitpunktkopie-Operation verarbeitet werden. Wenn es N angeforderte Zeitpunktkopie-Operationen, K in Frage kommende Datenträger 116a und eine Umlaufentfernung von d gibt, ergibt sich folglich eine Verzögerung von mindestens
Dieser Ansatz kann auch den Nachteil aufweisen, dass einige Informationen über die ferne Speicherkonfiguration durch Abfrage nicht zugänglich sind.
-
Alternativ könnte die ferne Speicherkonfiguration (d.h. die fernen Metadaten 114b) in einer Datei an dem primären Standort 102a gespeichert werden. Dies könnte es der Speicherverwaltungseinheit 110a ermöglichen, Entscheidungen zu treffen, welche die fernen Metadaten 114b einfach durch Lesen und Analysieren der lokalen Datei berücksichtigen. Die Daten in der Datei könnten jedoch schnell veraltet werden, wenn Änderungen an der Speicherkonfiguration an dem sekundären Standort 102b durchgeführt werden. Das Treffen von Entscheidungen beruhend auf veralteten fernen Metadaten 114b könnte an dem sekundären Standort 102b Daten zerstören oder inkonsistente Daten erzeugen. Das Durchführen von Zeitpunktkopie-Operationen an dem primären Standort 102a, die an dem sekundären Standort 102b nicht dupliziert werden können, erzeugt zum Beispiel inkonsistente Daten.
-
Unter Bezugnahme auf 2 kann in bestimmten Ausführungsformen entsprechend der Erfindung ein Konfigurationsaktualisierungsmodul 200 an dem sekundären Standort 102b bereitgestellt werden, um die fernen Metadaten 114b an dem primären Standort 102a verfügbar zu machen. In bestimmten Ausführungsformen handelt es sich bei dem Konfigurationsaktualisierungsmodul 200 um eine Komponente der Speicherverwaltungseinheit 11 0b, da die Speicherverwaltungseinheit 110b so konfiguriert sein kann, dass sie sowohl auf die primären als auch auf die sekundären Speichersysteme 106a, 106b zugreifen kann. Alternativ könnte das Konfigurationsaktualisierungsmodul 200 als separates Modul umgesetzt sein. Das Konfigurationsaktualisierungsmodul 200 kann so konfiguriert sein, dass es ununterbrochen auf Änderungen an der Speicherkonfiguration an dem sekundären Standort 102b überwacht. Beim Erkennen von Änderungen an der Speicherkonfiguration kann das Konfigurationsaktualisierungsmodul 200 die fernen Metadaten 114b von dem sekundären Speichersystem 106b lesen und die fernen Metadaten 114b auf das primäre Speichersystem 106a schreiben.
-
In bestimmten Ausführungsformen wird in dem Arbeitsspeicher des primären Speichersystems 106a Speicherplatz zum Speichern der fernen Metadaten 114b reserviert. In bestimmten Ausführungsformen wird der Speicherplatz sowohl in flüchtigem Arbeitsspeicher (z.B. Cachespeicher) als auch in dauerhaftem Arbeitsspeicher (nichtflüchtiger Speicher bzw. „NVS“ (non-volatile storage)) des primären Speichersystems 106a reserviert. Der Cachespeicher und der NVS werden in Zusammenhang mit 6 ausführlicher beschrieben. Der Arbeitsspeicher in dem primären Speichersystem 106a kann auch lokale Metadaten 114a speichern, welche die Speicherkonfiguration des primären Speichersystems 106a beschreiben. Beim Erkennen von Änderungen an den fernen Metadaten 114b kann das Konfigurationsaktualisierungsmodul 200 die fernen Metadaten 114b zum Beispiel unter Verwendung eines speziellen Aktualisierungsbefehls in den reservierten Speicherplatz des primären Speichersystems 106a schreiben. Auf diese Weise werden die die ferne Speicherkonfiguration beschreibenden fernen Metadaten 114b an dem primären Standort 102a ständig auf dem neuesten Stand gehalten.
-
Jedes Mal, wenn die lokalen oder fernen Metadaten 114a, 114b auf dem primären Speichersystem 106a aktualisiert werden, kann eine Nachricht an das primäre Host-System 104a gesendet werden, um das primäre Host-System 104a darüber in Kenntnis zu setzen, dass sich die Speicherkonfiguration geändert hat. Ein Lesemodul 202 in dem Host-System 104a oder diesem zugehörig kann dann auf die fernen Metadaten 114b zugreifen und diese in allgemein zugänglichen Arbeitsspeicher des primären Host-Systems 104a speichern. Sobald diese Metadaten in allgemein zugänglichen Arbeitsspeicher auf dem Host-System 104 eingelesen wurden, können auf dem Host-System 104 laufende Anwendungen schnell und wirksam darauf zugreifen, da hierdurch die Notwendigkeit beseitigt wird, jedes Mal dann, wenn die lokalen oder fernen Metadaten 114a, 114b benötigt werden, das primäre Speichersystem 106a abzufragen. Die lokalen und fernen Metadaten 114a, 114b können von der Speicherverwaltungseinheit 110a zum Treffen von auf Richtlinien beruhenden Entscheidungen verwendet werden, die sowohl den primären als auch den sekundären Standort 102a, 102b beeinflussen. Beim Auswählen von Zieldatenträgern 116a zum Empfangen von Zeitpunktkopien kann die Speicherverwaltungseinheit 110a zum Beispiel die Zieldatenträger 116a beruhend nicht nur auf der lokalen Speicherkonfiguration sondern auch auf der fernen Speicherkonfiguration auswählen.
-
Unter Bezugnahme auf 3 nehme man zum Beispiel an, dass die Zieldatenträger 300a, 300c, 300e auf den primären Speichersystemen 106a jeweils als Ziel einer Zeitpunktkopie-Operation in Frage kommen. Jeder dieser Zieldatenträger 300a, 300c, 300e hat eine Spiegelungsbeziehung mit entsprechenden Zieldatenträgern 300b, 300d, 300f auf den sekundären Speichersystemen 106b. Einige der Zieldatenträger 300b, 300f auf den sekundären Speichersystemen 106b sind möglicherweise nicht geeignet für das Empfangen einer Zeitpunktkopie von einem Quelldatenträger 112b. Einige der Zieldatenträger 300b, 300f befinden sich zum Beispiel auf anderen Speichersystemen 106b als der sekundäre Quelldatenträger 112b und/oder gehören zu anderen Konsistenzgruppen als der Quelldatenträger 112b.
-
Durch Verfügbarmachen der fernen Metadaten 114b für die Speicherverwaltungseinheit 110a an dem primären Standort 102a ist die Speicherverwaltungseinheit 110a in der Lage, zu ermitteln, welche Paare von Zieldatenträgern 116b an dem primären Standort 102a und dem sekundären Standort 102b geeignet für das Teilnehmen an der Zeitpunktkopie-Operation sind. Wie in 3 veranschaulicht, kann die Speicherverwaltungseinheit 110a zum Beispiel durch Untersuchen sowohl der lokalen als auch der fernen Metadaten 114a, 114b feststellen, dass lediglich der Zieldatenträger 300c an dem primären Standort 102a und der entsprechende Zieldatenträger 300d an dem sekundären Standort 102b zum Teilnehmen an der Zeitpunktkopie-Operation mit den entsprechenden Quelldatenträgern 112a, 112b in Frage kommen.
-
Die in den 2 und 3 veranschaulichten Techniken ermöglichen es der Speicherverwaltungseinheit 110a, vollständigere Konfigurationsinformationen zu haben, um Richtlinienentscheidungen zu treffen, ohne die Verschlechterung der Leistungsfähigkeit zu erfahren, die dem direkten Abfragen des sekundären Standorts 102b zugehörig ist, und ohne die beim sich Stützen auf manuelle Prozesse dazugehörenden Ungenauigkeiten. Konkret kann das Konsolidieren der fernen Metadaten 114b in allgemein zugänglichem Speicher auf dem primären Host-System 104a die Zugriffszeit von Millisekunden (zum Abfragen des sekundären Standorts 102b) auf Mikrosekunden (zum Lesen des allgemein zugänglichen Speichers auf dem Host-System 104a) verringern.
-
Unter Bezugnahme auf 4 kann in vielen Fällen zwischen dem Zeitpunkt, an dem die Speicherverwaltungseinheit 110a die Zieldatenträger 300c, 300d auswählt und dem Zeitpunkt, an dem die Zieldatenträger 300c, 300d tatsächlich für das Empfangen von Zeitpunktkopien zugeordnet werden, eine erhebliche Zeit vergehen. Während dieser Zeitspanne kann sich die Speicherkonfiguration an dem primären Standort 102a oder dem sekundären Standort 102b in einer Weise verändern, welche die Zieldatenträger 300c, 300d ungeeignet zum Teilnehmen an der Zeitpunktkopie-Operation machen.
-
In bestimmten Ausführungsformen kann in der Speichersteuereinheit 106a ein Überprüfungsmodul 400 bereitgestellt werden, um zu überprüfen, ob ein Paar von der Speicherverwaltungseinheit 110a ausgewählter Zieldatenträger 300c, 300d zum Zeitpunkt des Durchführens der Zuordnung noch immer zum Teilnehmen an einer Zeitpunktkopie-Operation geeignet ist. Das Überprüfungsmodul 400 kann diese Überprüfung unter Verwendung der auf dem primären Speichersystem 106a gespeicherten lokalen und fernen Metadaten 114a, 114b durchführen. Hierdurch kann ein Letzte-Gelegenheit-Mechanismus zum Ablehnen einer angeforderten Zeitpunktkopie-Operation bereitgestellt werden, wenn sich die Speicherkonfiguration geändert hat, nachdem die Speicherverwaltungseinheit 110a ihre Zuordnungsentscheidung getroffen hat. Wenn die Zeitpunktkopie-Operation abgelehnt wird, kann die Speicherverwaltungseinheit 110a die sich an dem primären Standort 102a befindlichen lokalen und fernen Metadaten 114a, 114d erneut analysieren, um ein neues Paar geeigneter Zieldatenträger 116a, 116b zu finden.
-
Unter Bezugnahme auf 5 sind verschiedene in Zusammenhang mit den 1 bis 4 beschriebene Merkmale oder Funktionen als in spezifischen Hardware-Komponenten wie zum Beispiel spezifischen Host-Systemen und Speichersystemen umgesetzt gezeigt. Die Merkmale oder Funktionen sind jedoch nicht auf eine Umsetzung in den veranschaulichten Hardware-Komponenten beschränkt. Einige in den Host-Systemen 104a, 104b gezeigte Merkmale und Funktionen (d.h. Merkmale oder Funktionen des Kopiermoduls 108, der Speicherverwaltungseinheiten 110a, 110b, des Konfigurationsaktualisierungsmoduls 200, des Lesemoduls 202 und des Überprüfungsmoduls 400) können zum Beispiel in den Speichersystemen 106a, 106b umgesetzt oder über die Host-Systeme 104a, 104b und die Speichersysteme 106a, 106b verteilt sein. Andere in den Speichersystemen 106a, 106b gezeigte Merkmale und Funktionen können in den Host-Systemen 104a, 104b umgesetzt oder über die Host-Systeme 104a, 104b und die Speichersysteme 106a, 106b verteilt sein.
-
Gleichermaßen können bestimmte an einem primären Standort 102a gezeigte Merkmale oder Funktionalitäten an einem sekundären Standort 102b umgesetzt sein und umgekehrt. Folglich müssen die beschriebenen Merkmale oder Funktionen nicht unbedingt an den Standorten umgesetzt werden, wo diese veranschaulicht sind. Die Datenreplikationssysteme 100 können in mehreren verschiedenen Arten ausgestaltet sein, und die offenbarten Merkmale und Funktionen können abhängig von der Ausgestaltung auf verschiedene Weisen und an verschiedenen Standorten umgesetzt sein. 5 zeigt verschiedene Module und Komponenten, ohne diese auf spezifische Hardware-Komponenten zu beschränken.
-
Obwohl hierin ein konkreter Bezug auf das Spiegeln von Zeitpunktkopien von einem primären Standort 102a auf einen sekundären Standort 102b genommen wurde, sind die hierin offenbarten Systeme und Verfahren nicht auf Zeitpunktkopie-Funktionen beschränkt. Die hierin erörterten Systeme und Verfahren sind auf eine große Vielfalt von verschiedenen Speicherfunktionen anwendbar, die möglicherweise von einem primären Standort 102a auf einen sekundären Standort 102b gespiegelt werden müssen, oder auf an einem primären Standort 102a durchgeführte Speicherfunktionen, welche die Speicherkonfiguration an einem sekundären Standort 102b berücksichtigen müssen. In beliebigen derartigen Fällen können die hierin offenbarten Systeme und Verfahren zum Verfügbarmachen von Metadaten 114b an einem primären Standort 102a verwendet werden. Folglich sind die hierin offenbarten Systeme und Verfahren auf eine große Vielfalt von verschiedenen Speicherfunktionen anwendbar, und nicht nur auf Zeitpunktkopien.
-
Unter Bezugnahme auf 6 wird eine Ausführungsform eines ein Array von Speicherlaufwerken 604 (z.B. Festplattenlaufwerke und/oder Solid-State-Laufwerke) enthaltenden Speichersystems 106 veranschaulicht. Die internen Komponenten des Speichersystems 106 sind gezeigt, da verschiedene Merkmale und Funktionen entsprechend der Erfindung innerhalb eines derartigen Speichersystems 106 umgesetzt werden können, obwohl die Merkmale und Funktionen auch auf andere Speichersysteme anwendbar sind. Wie gezeigt, beinhaltet das Speichersystem 106 eine Speichersteuereinheit 600, eine oder mehrere Vermittlungseinheiten 602 und ein oder mehrere Speicherlaufwerke 604 wie zum Beispiel Festplattenlaufwerke und/oder Solid-State-Laufwerke (wie zum Beispiel auf Flash-Speicher beruhende Laufwerke). Die Speichersteuereinheit 600 kann einem oder mehreren Hosts 104 (z.B. den Open-System- und/oder Mainframe-Servern 104) den Zugriff auf Daten in dem einen oder den mehreren Speicherlaufwerken 604 ermöglichen.
-
In ausgewählten Ausführungsformen beinhaltet die Speichersteuereinheit 600 einen oder mehrere Server 606. Die Speichersteuereinheit 600 kann auch Host-Adapter 608 und Einheitenadapter 610 zum Verbinden der Speichersteuereinheit 600 mit den Host-Einheiten 104 bzw. den Speicherlaufwerken 604 beinhalten. Mehrere Server 606a, 606b stellen eine Redundanz bereit, um sicherzustellen, dass Daten immer für die verbundenen Hosts 104 verfügbar sind. Wenn ein Server 606a ausfällt, kann folglich der andere Server 606b die E/A-Last des ausgefallenen Servers 606a übernehmen, um sicherzustellen, dass Ein-/Ausgaben zwischen den Hosts 104 und den Speicherlaufwerken 604 andauern. Dieser Prozess kann als „Funktionsübernahme“ („failover“) bezeichnet werden.
-
In ausgewählten Ausführungsformen kann jeder Server 606 einen oder mehrere Prozessoren 612 und Arbeitsspeicher 614 beinhalten. Der Arbeitsspeicher 614 kann flüchtigen Speicher (z.B. RAM) sowie nichtflüchtigen Speicher (z.B. ROM, EPROM, EEPROM, Flash-Speicher usw.) beinhalten. Der flüchtige und der nichtflüchtige Speicher können in bestimmten Ausführungsformen Software-Module speichern, die auf dem/den Prozessor(en) 612 laufen und zum Zugreifen auf Daten in den Speicherlaufwerken 604 verwendet werden. Die Server 606 können mindestens eine Instanz dieser Software-Module hosten. Diese Software-Module können sämtliche Lese- und Schreibanforderungen für logische Datenträger in den Speicherlaufwerken 604 verwalten.
-
In ausgewählten Ausführungsformen beinhaltet der Arbeitsspeicher 614 einen Cachespeicher 618 wie zum Beispiel einen DRAM-Cachespeicher 618. Immer dann, wenn ein Host 106 (z.B. ein Open-System- oder Mainframe-Server 106) eine Leseoperation durchführt, kann der den Lesevorgang durchführende Server 606 Daten von den Speicherlaufwerken 604 abrufen und diese für den Fall, dass sie erneut benötigt werden, in seinem Cachespeicher 618 speichern. Wenn die Daten erneut von einem Host 104 angefordert werden, kann der Server 606 die Daten aus dem Cachespeicher 618 abrufen, anstatt sie von den Speicherlaufwerken 604 abzurufen, wodurch sowohl Zeit als auch Ressourcen eingespart werden. Wenn ein Host 104 einen Schreibvorgang durchführt, kann der die Schreibanforderung empfangende Server 106 gleichermaßen den Schreibvorgang in seinem Cachespeicher 618 speichern und den Schreibvorgang zu einem späteren Zeitpunkt auf die Speicherlaufwerke 604 auslagern. Wenn in dem Cachespeicher 618 ein Schreibvorgang gespeichert wird, kann der Schreibvorgang auch in einem nichtflüchtigen Speicher (NVS) 620 des Servers 606 auf der anderen Seite gespeichert werden, so dass der Schreibvorgang von dem Server 606 auf der anderen Seite wiederhergestellt werden kann, falls der erste Server 606 ausfällt.
-
Wie vorher erwähnt, können in bestimmten Ausführungsformen die lokalen und fernen Metadaten 114a, 114b in dem flüchtigen und nichtflüchtigen Speicher 614 der Speichersteuereinheit 600 gespeichert werden. Die lokalen und fernen Metadaten 114a, 114b können zum Beispiel sowohl in dem Cachespeicher 618 als auch in dem nichtflüchtigen Speicher (NVS) 620 gespeichert werden. Falls die lokalen und/oder fernen Metadaten 114a, 114b in dem Cachespeicher 618 verloren gehen (aufgrund eines Ausfalls oder eines anderen Ereignisses), können die lokalen und/oder fernen Metadaten 114a, 114b aus dem NVS 620 wiederhergestellt werden.
-
Ein Beispiel eines Speichersystems 106 mit einer gleichartigen Architektur wie die in 6 beschriebene ist das Enterprise Storage System IBM DS8000™. Das DS8000™ ist eine hochleistungsfähige Hochkapazitätsspeichersteuereinheit, die Platten- und Halbleiterspeicher bereitstellt, die so ausgestaltet sind, dass sie einen ununterbrochenen Betrieb unterstützen. Trotzdem sind die hierin offenbarten Verfahren nicht auf das Enterprise Storage System 106 IBM DS8000™ beschränkt, sondern können in jedem beliebigen vergleichbaren oder analogen Speichersystem umgesetzt werden, unabhängig von dem Hersteller, dem Produktnamen oder Komponenten bzw. Komponentennamen, die dem System zugehörig sind. Jedes beliebige Speichersystem, das aus einer oder mehreren Ausführungsformen der Erfindung Nutzen ziehen könnte, wird als innerhalb des Umfangs der Erfindung fallend angesehen. Folglich wird das IBM DS8000™ lediglich als Beispiel angeführt und soll nicht einschränkend sein.
-
Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und durch einen Computer lesbaren Medien gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil eines Codes darstellen, der eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweist. Es sei auch angemerkt, dass in einigen alternativen Ausführungen die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden können. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder durch Kombinationen aus Spezial-Hardware und Computeranweisungen.