-
GEBIET DER ERFINDUNG
-
Die vorliegende Erfindung bezieht sich allgemein auf Datenspeicherungen und insbesondere darauf, dass ein Host-Computer die Funktionen von synchron gespiegelten primären und sekundären Speicherdatenträgern problemlos vertauschen kann.
-
HINTERGRUND DER ERFINDUNG
-
Beim Spiegeln handelt es sich um eine Technik, die verwendet wird, um einen primären Speicherdatenträger in einen separaten sekundären Speicherdatenträger zu kopieren, um Redundanz zu gewährleisten. Bei einer Speichereinrichtung, die primäre und sekundäre Speicherdatenträger aufweist, kann ein Spiegeln synchron oder asynchron implementiert werden. Beim synchronen Spiegeln empfängt ein Host-Rechner (z. B. ein Datenbankserver), der mit der Speichereinrichtung Daten austauscht, eine Schreibbestätigung, nachdem Daten sowohl in den primären als auch den sekundären Speicherdatenträger erfolgreich geschrieben wurden. Ein synchrones Spiegeln wird üblicherweise über ein Speicherbereichsnetzwerk (SAN) implementiert.
-
Beim asynchronen Spiegeln empfängt der Host-Rechner die Schreibbestätigung, nachdem die Daten in den primären Datenträger geschrieben wurden (d. h. der sekundäre Datenträger hat möglicherweise die Daten noch nicht empfangen und/oder das Schreiben der Daten noch nicht bestätigt). Asynchrones Spiegeln wird üblicherweise über langsamere Weitbereichsnetzwerke, insbesondere über größere Entfernungen implementiert.
-
KURZDARSTELLUNG DER ERFINDUNG
-
Gemäß einer Ausführungsform der vorliegenden Erfindung wird ein Verfahren bereitgestellt, das ein Einrichten einer transparenten, synchronen Umschaltung von Spiegelungsdatenträgern für einen ersten Datenträger und einen zweiten Datenträger, die verbunden sind, über ein Speicherbereichsnetzwerk zu einem Host-Computer, wobei der erste Datenträger in dem Host-Computer abgebildet wird durch das Auslösen einer Synchronisierung von Zustandsdaten zwischen dem ersten Datenträger und dem zweiten Datenträger, ein Versetzen des ersten Datenträgers in einen aktiven Zustand und des zweiten Datenträgers in einen inaktiven Zustand, ein Kopieren einer Kennung, die dem aktiven ersten Datenträger zugehörig ist, in einen Speicher, der mit dem inaktiven zweiten Datenträger verbunden ist, ein Abrufen der kopierten Kennung durch den Host-Computer aus dem Speicher, und nach dem Abrufen ein Abbilden des inaktiven zweiten Datenträgers in dem Host-Computer enthält.
-
Gemäß einer Ausführungsform der vorliegenden Erfindung wird außerdem eine Vorrichtung zum Einrichten einer transparenten Umschaltung zwischen synchronen Spiegelungsdatenträgern bereitgestellt mit einem ersten Datenträger, einem zweiten Datenträger, einem Speicherbereichsnetzwerk (SAN), das so eingerichtet ist, dass es den Host-Computer, den ersten Datenträger und den zweiten Datenträger, einen mit dem zweiten Datenträger verbundenen Speicher und einen Prozessor, der so eingerichtet ist, dass er den ersten Datenträger in dem Host-Computer abbildet, verbindet, um eine Synchronisierung von Zustandsdaten zwischen dem abgebildeten ersten Datenträger und dem zweiten Datenträger auszulösen, den abgebildeten ersten Datenträger in einen aktiven Zustand zu versetzen und den zweiten Datenträger in einen inaktiven Zustand zu versetzen, eine Kennung, die dem aktiven ersten Datenträger zugehörig ist, in einen mit dem inaktiven zweiten Datenträger verbundenen Speicher zu kopieren, die kopierte Kennung durch den Host-Computer aus dem Speicher abzurufen und nach dem Abrufen den inaktiven zweiten Datenträger in dem Host-Computer abzubilden.
-
Gemäß einer Ausführungsform der vorliegenden Erfindung wird des Weiteren ein Computerprogrammprodukt bereitgestellt zum Einrichten einer transparenten Umschaltung zwischen synchronen Spiegelungsdatenträgern für einen ersten Datenträger und einen zweiten Datenträger, die verbunden sind, über ein Speicherbereichsnetzwerk zu einem Host-Computer, wobei der erste Datenträger in dem Host-Computer abgebildet wird, wobei das Computerprogrammprodukt ein nichtflüchtiges computerlesbares Speichermedium enthält, auf dem computerlesbarer Programmcode verkörpert ist, wobei der computerlesbare Programmcode computerlesbaren Programmcode enthält, der so eingerichtet ist, dass er eine Synchronisierung von Zustandsdaten zwischen dem ersten Datenträger und dem zweiten Datenträger auslöst, wobei computerlesbarer Programmcode so eingerichtet ist, dass er den ersten Datenträger in einen aktiven Zustand versetzt und den zweiten Datenträger in einen inaktiven Zustand versetzt, wobei computerlesbarer Programmcode so eingerichtet ist, dass er eine dem ersten aktiven Datenträger zugehörige Kennung in einen mit dem zweiten inaktiven Datenträger verbundenen Speicher kopiert, wobei computerlesbarer Programmcode so eingerichtet ist, dass er die kopierte Kennung durch den Host-Computer aus dem Speicher abruft, und wobei computerlesbarer Programmcode so eingerichtet ist, dass er nach dem Abrufen den inaktiven zweiten Datenträger in dem Host-Computer abbildet.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Eine bevorzugte Ausführungsform der vorliegenden Erfindung wird im Folgenden lediglich beispielhaft unter Bezugnahme auf die beigefügten Zeichnungen beschrieben, in denen:
-
1 eine schematische bildliche Darstellung von synchron gespiegelten Speichersteuereinheiten ist, die so eingerichtet sind, dass sie eine Datenträgerumschaltung mit hoher Verfügbarkeit gemäß einer Ausführungsform der vorliegenden Erfindung ausführen;
-
2 eine schematische bildliche Darstellung logischer Pfade zwischen einem primären Datenträger, einem sekundären Datenträger, einem tertiären Datenträger und einem Host-Computer gemäß einer Ausführungsform der vorliegenden Erfindung ist; und
-
3 ein Ablaufplan ist, der ein Verfahren zum transparenten Umschalten von synchron gespiegelten Datenträgern gemäß einer Ausführungsform der vorliegenden Erfindung schematisch erläutert.
-
GENAUE BESCHREIBUNG VON AUSFÜHRUNGSFORMEN
-
ÜBERBLICK
-
Üblicherweise sind Datenträger auf Plattenlaufwerken mit einem Host-Computer über logische Pfade zwischen jedem der Datenträger und dem Host-Computer verbunden. Jeder der Datenträger kann eine zugehörige eindeutige Datenträgerkennung aufweisen wie etwa eine Seriennummer. Die eindeutige Datenträgerkennung kann verwendet werden, um logische Pfade, die jedem der Datenträger zugehörig sind, zusammenzuführen. Da mehrere Pfade vorhanden sind, die den Datenträgern zugehörig sind, weisen die Datenträger Mehrwege-Einheiten auf. Ein Datenaustausch mit den Mehrwege-Einheiten wird als Mehrwege-Eingabe/Ausgabe (E/A) bezeichnet. Mehrwege-Einheiten werden außerdem als MPIO-Einheiten bezeichnet.
-
In Ausführungsformen der vorliegenden Erfindung weist jeder Datenträger zusätzlich zum Vorhandensein einer zugehörigen Datenträgerkennung einen zugehörigen Zustand auf, der aktiv oder inaktiv sein kann. Außerdem kann ein Zustand jedes logischen Pfads zu einem bestimmten Datenträger dem Zustand des Datenträgers zugehörig sein. Wenn z. B. der Zustand eines bestimmten Datenträgers aktiv ist, sind die Zustände aller logischen Pfade zwischen dem Host-Computer und dem bestimmten Datenträger aktiv. Wenn der Zustand des bestimmten Datenträgers inaktiv ist, sind gleichfalls die Zustände aller logischen Pfade zwischen dem Host-Computer und dem bestimmten Datenträger inaktiv.
-
Während des Einrichtens des synchronen Spiegelns von einem ersten (d. h. primären) Datenträger zu einem zweiten (d. h. sekundären) Datenträger stellen Ausführungsformen der vorliegenden Erfindung Verfahren und Systeme bereit zum Verändern der Datenträgerkennungen und der Zustände der primären und sekundären Datenträger, wodurch der Host-Computer problemlos von dem ersten Datenträger zu dem zweiten Datenträger wechseln kann. Der Host-Computer wechselt üblicherweise von dem ersten Datenträger zu dem zweiten Datenträger infolge einer Störung in dem ersten Datenträger oder einer Störung auf dem Pfad zwischen dem ersten Datenträger und dem zweiten Datenträger.
-
In einigen Ausführungsformen wird die Datenträgerkennung, die dem ersten Datenträger zugehörig ist, in den zweiten Datenträger kopiert und der Zustand der Pfade des zweiten Datenträgers wird auf inaktiv gesetzt. Nach dem Kopieren der Datenträgerkennung des ersten Datenträgers werden die beiden Datenträger derselben Datenträgerkennung zugeordnet, und der zweite Datenträger „maskiert sich” (gibt sich aus) als der erste Datenträger (gemäß Vereinbarungen, die durch den Host verwendet werden, um Datenträger eindeutig zu kennzeichnen und logische Pfade zu einer einzelnen Mehrwege-Einheit abzubilden).
-
Beim Abbilden des maskierten zweiten Datenträgers in dem Host-Computer erkennt der Host-Computer einen einzelnen Datenträger mit logischen Pfaden, die aktiv sind (d. h. die logischen Pfade zwischen dem Host-Computer und dem ersten Datenträger) und neuen logischen Pfaden, die inaktiv sind (d. h. die neuen logischen Pfade zwischen dem Host-Computer und dem zweiten Datenträger). Nach dem gegenseitigen Austauschen der Zustände der Quelle und der zweiten Datenträger sind alle neuen logischen Pfade zu dem zweiten Datenträger aktiv und alle logischen Pfade zu dem ersten Datenträger sind inaktiv. Deswegen werden nach dem Austauschen der Zustände der Quelle und der zweiten Datenträger alle Eingabe/Ausgabe-Operationen zu dem zweiten Datenträger anstelle des ersten Datenträgers umgeleitet.
-
Nach dem Beenden der oben beschriebenen Schritte „denkt” der Host-Computer noch, dass er aktive logische Pfade zu dem ersten Datenträger aufweist, wobei die aktiven logischen Pfade aber nun tatsächlich zu dem zweiten Datenträger verlaufen.
-
SYSTEMBESCHREIBUNG
-
1 ist eine schematische bildliche Darstellung einer Speichereinrichtung 20, die so eingerichtet ist, dass sie eine transparente Umschaltung von synchronen gespiegelten Datenträgern gemäß einer Ausführungsform der vorliegenden Erfindung implementiert. Die Einrichtung 20 weist eine erste Speichersteuereinheit 22, eine zweite Speichersteuereinheit 24 und einen Host-Computer 26 auf, die sämtlich über Eingabe/Ausgabe-(E/A-)Pfade 30 mit einem Speicherbereichsnetzwerk (SAN) 28 verbunden sind. Bei der in 1 gezeigten Konfiguration werden die Speichersteuereinheiten 22 und 24 synchron über das SAN 28 gespiegelt, und die Speichersteuereinheiten 22 und 24 werden asynchron über ein Weitbereichsnetzwerk (WAN) 90 zu einem tertiären Datenträger 92 gespiegelt. Üblicherweise ist der Speicherdatenträger 92 in einer (nicht gezeigten) dritten Speichersteuereinheit enthalten.
-
Die Speichersteuereinheit 22 weist mehrere erste Speichermodule 32 auf, die über ein privates Netzwerk 34 verbunden sind. Jedes Speichermodul 32 weist einen Prozessor 36 auf, der so eingerichtet ist, dass er eine Speichermodul-Anwendung 38 von einem Speicher 40 ausführt. Die Speichermodul-Anwendung 38 verwaltet mehrere erste Speichereinheiten 42 (z. B. Plattenlaufwerke), die einen ersten Datenträger 43 enthalten. Bei der in 1 gezeigten Konfiguration ist der Datenträger 43 über Speichereinheiten 42 verteilt und weist einen einzigen logischen Speicherbereich in der Einrichtung 20 auf.
-
Die Quellen-Speichereinheiten sind über einen Einheitenadapter 44 mit einem Speichermodul 32 verbunden. Die ersten Speichermodule sind über einen Adapter 46 des privaten Netzwerks mit dem privaten Netzwerk verbunden und über einen SAN-Adapter 48 mit dem SAN 26 verbunden.
-
Zusätzlich zu der Speichermodul-Anwendung 38 führt der Prozessor 36 eine Spiegelungs-Anwendung 50 und eine Anwendung 52 der transparenten Umschaltung von synchronen Spiegelungs-Datenträgern (die hier auch als Umschaltungs-Anwendung 52 bezeichnet wird) aus dem Speicher 40 aus. Die Spiegelungs-Anwendung 50 und die Umschaltungs-Anwendung 52 werden nachfolgend genauer erläutert.
-
Der Speicher 40 speichert außerdem Datenträgerdaten 54, die Kenndaten für den Datenträger 43, Anschlussdaten 56 (die nachfolgend genauer beschrieben werden) und Zustandsdaten 58 für den Datenträger 43 enthalten. Die Zustandsdaten 58 können eine Tabelle der dauerhaften Reservierung aufweisen, die Informationen über den Beteiligungszustand des Datenträgers 43 enthält. Der Datenträger 43 kann z. B. für das Lesen und/oder Schreiben durch den Host-Computer 26 oder jeden anderen (nicht gezeigten) Host-Computer, der mit dem SAN 28 verbunden ist, blockiert (d. h. reserviert) sein. Zusätzlich oder alternativ können Zustandsdaten 58 Thin-Provisioning-Daten aufweisen. Bei Thin-Provisioning handelt es sich um einen Mechanismus, der ermöglicht, dass eine Speichersteuereinheit 22 einen Datenträger 43 nach dem Just-in-time-Prinzip einem Host-Computer 26 zuweist. Die Thin-Provisioning-Daten können Datenträger-Zuweisungsdaten für die Quellen-Speichersteuereinheit enthalten.
-
Die Speichersteuereinheit 24 weist mehrere zweite Speichermodule 60 auf, die über ein privates Netzwerk 62 verbunden sind. Jedes Speichermodul 60 weist einen Prozessor 64 auf, der so eingerichtet ist, dass er eine Speichermodul-Anwendung 66 aus einem Speicher 68 ausführt. Die Speichermodul-Anwendung 66 verwaltet eine Anzahl zweiter Speichereinheiten 70, die einen zweiten Datenträger 71 enthalten. Bei der in 1 gezeigten Konfiguration ist der Datenträger 71 über Speichereinheiten 70 verteilt und weist in der Einrichtung 20 einen einzigen logischen Speicherbereich auf.
-
Die zweiten Speichereinheiten sind über einen Einheitenadapter 72 mit dem Speichermodul 60 verbunden. Die zweiten Speichermodule sind über einen Adapter 74 des privaten Netzwerks mit dem privaten Netzwerk 58 und über einen SAN-Adapter 76 mit dem SAN 28 verbunden.
-
Die Einrichtung 20 kann so eingerichtet sein, dass sie den Datenträger 43 zum Datenträger 71 synchron spiegelt (d. h., der Datenträger 43 ist der primäre Datenträger, und der Datenträger 71 ist der sekundäre Datenträger) oder umgekehrt. Wenn der Datenträger 43 als der primäre Datenträger eingerichtet ist, spiegelt die Spiegelungs-Anwendung 50 den Datenträger 43 synchron zum Datenträger 71 und eine Umschaltungs-Anwendung 52 löst eine Synchronisierung von Zustandsdaten 58 und Zustandsdaten 80 aus. Der Speicher 68 enthält außerdem Anschlussdaten 78 (die nachfolgend genauer beschrieben werden) und Datenträgerdaten 82. Die Datenträgerdaten 82 enthalten Kenndaten für den Datenträger 71.
-
Wenn der Datenträger 71 als der primäre Datenträger eingerichtet ist, führt der Prozessor 64 eine Spiegelungs-Anwendung 84 aus, um den Datenträger 71 synchron zum Datenträger 43 zu spiegeln, und eine Umschaltungs-Anwendung 86 aus, um eine Synchronisierung von Zustandsdaten 80 und Daten 58 auszulösen.
-
Bei der in 1 gezeigten Konfiguration spiegelt die Einrichtung 20 über das Weitbereichsnetzwerk (WAN) 90 die Datenträger 43 und 71 zu einem tertiären Datenträger 92, der in Speichereinheiten 88 enthalten ist. Wenn der Datenträger 71 als der primäre Datenträger eingerichtet ist, spiegelt die Spiegelungs-Anwendung 84 üblicherweise den Datenträger 71 asynchron zum Datenträger 92. Wenn der Datenträger 43 als der sekundäre Datenträger eingerichtet ist, spiegelt die Spiegelungs-Anwendung 50 gleichfalls den Datenträger 43 zum Datenträger 92.
-
Zu Beispielen von SAN-Adaptern 48 und 76 gehören Switched-fabric-Adapter wie etwa Fibre-Channel-(FC-)Adapter, Internet-Small-Computer-System-Interface(iSCSI-)Adapter, Fibre-Channel-over-Ethernet-(FCOE-)Adapter und InfinibandTM-Adapter. Zu Beispielen von Einheitenadaptern 44 und 72 gehören Adapter der International Business Machines (IBM) ServeRAIDTM-M5000-Serien, die sowohl Serial-Advance-Technology-Attachment-(SATA-) als auch Serial-Attached-SCSI-(SAS-)Computer-Busschnittstellen implementieren. Die Datenträger 43 und 71 weisen üblicherweise eine Kombination aus Festplattenlaufwerken mit hoher Kapazität und Halbleiter-Datenträgern auf.
-
Die Prozessoren 36 und 64 weisen üblicherweise Universalcomputer auf, die mittels Software programmiert sind, um die hier beschriebenen Funktionen auszuführen. Die Software kann z. B. über ein Netzwerk in elektronischer Form zu den Speichern 40 und 68 heruntergeladen werden oder kann auf nichtflüchtigen materiellen Medien bereitgestellt werden wie z. B. optische, magnetische oder elektronische Speichermedien. Alternativ können einige oder sämtliche Funktionen der Prozessoren 36 und 64 durch dedizierte oder programmierbare digitale Hardware-Komponenten oder unter Verwendung einer Kombination aus Hardware- und Software-Elementen ausgeführt werden.
-
Der Datenträger 43 ist über einen Bezugsanschluss (relative port) 45 in der Quellen-Speichersteuereinheit mit dem Host-Computer 26 verbunden, und der Datenträger 71 ist über einen Bezugsanschluss 73 in der Ziel-Speichersteuereinheit mit dem Host-Computer verbunden. Ein Bezugsanschluss stellt einen logischen Pfad dar, den der Host-Computer verwenden kann, um mit den Datenträgern 43 und 71 Daten auszutauschen. Obwohl die Konfiguration von 1 zeigt, dass jede der Speichersteuereinheiten einen einzigen Bezugsanschluss enthält (z. B. die Bezugsanschlüsse 45 und 73), kann jede der Speichersteuereinheiten üblicherweise mehrere Bezugsanschlüsse aufweisen.
-
Jeder der logischen Pfade in den Speichersteuereinheiten 22 und 24 weist üblicherweise eine eindeutige Kennung des Bezugsanschlusses auf. Die Kennung des Bezugsanschlusses kann einen (nicht gezeigten) physischen Steckplatz in einem speziellen Speichermodul bezeichnen. Wenn z. B. in der Speichersteuereinheit 22 fünf Quellen-Speichermodule (d. h. 0 bis 4) vorhanden sind und jedes Speichermodul 32 acht Steckplätze (d. h. 0 bis 7) aufweist, kann eine Kennung „0205” des Bezugsanschlusses angeben, dass der Einheitenadapter 44 in dem sechsten Steckplatz („05”) des dritten Quellen-Speichermoduls („02”) positioniert ist.
-
Bei einem asynchronen Zugriff auf logische Einheiten (ALUA), auch bekannt als Target Port Group Support (TPGS), handelt es sich um ein Small-Computer-System-Interface-(SCSI-)Protokoll, so dass Speichersteuereinheiten 22 und 24 den Zustand jedes ihrer entsprechenden Bezugsanschlüsse einstellen können. SCSI-Primärbefehle (SPC), die ALUA/TPGS unterstützen, sind im Abschnitt 5.8 des SPC-3 und in den Abschnitten 5.8 und 5.11 des SPC-4 von dem T10-Komitee des InterNational Committee an Information Technology Standards (INCITS) festgelegt.
-
Unter Verwendung von ALUA kann der Host-Computer 26 außerdem die Einrichtung 20 abfragen und die Zustände von jedem der logischen Pfade zu den Speichersteuereinheiten empfangen. Da der Datenträger 43 z. B. über den Bezugsanschluss 45 mit dem Host-Computer 26 verbunden ist, wird durch das Einstellen des Zustands des Bezugsanschlusses 45 der Zustand von jedem logischen Pfad zwischen dem ersten Datenträger und der Host-Computer 26, die über den Bezugsanschluss 45 verbunden sind, eingestellt.
-
Zu ALUA-Zuständen gehören (1) aktiv optimiert, (2) aktiv nichtoptimiert, (3) Bereitschaft, (4) nicht verfügbar, (5) Zustandsänderung und (6) getrennt. In Ausführungsformen der vorliegenden Erfindung, die hier beschrieben werden, sind die ALUA-Zustände folgendermaßen verknüpft:
Aktiv: Aktiv optimiert und aktiv nichtoptimiert.
Inaktiv: Bereitschaft, nicht verfügbar, Zustandsänderung und getrennt.
-
Zusätzlich können die Bezugsanschlüsse in Gruppen unterteilt sein (die hier außerdem als Ziel-Anschlussgruppen bezeichnet werden), so dass die Einrichtung 20 den Zustand der Bezugsanschlüsse und der logischen Pfade auf Gruppenebene einstellen kann. Die Bezugsanschlüsse in der ersten Speichersteuereinheit 22 (darunter der Bezugsanschluss 45) können z. B. (über den Report-Target-Port-Groups-SCSI-Befehl) einer Gruppe 0 zugewiesen sein und die Bezugsanschlüsse in der zweiten Speichersteuereinheit 24 (darunter der Bezugsanschluss 73) können (ebenfalls über den Report-Target-Port-Groups-SCSI-Befehl) einer Gruppe 1 zugewiesen sein. Die Einrichtung 20 kann dann den Zustand der logischen Pfade zwischen dem Host-Computer und der Speichersteuereinheit 22 durch das Einstellen des Zustands der Gruppe 0 einstellen. In ähnlicher Weise kann die Einrichtung 20 den Zustand der logischen Pfade zwischen dem Host-Computer und der Speichersteuereinheit 24 durch Einstellen des Zustands von Gruppe 1 einstellen.
-
Des Weiteren hilft das Unterteilen der Bezugsanschlüsse in Gruppen beim Definieren einer eindeutigen Kennung eines Bezugsanschlusses, da (wie in dem oben dargestellten Beispiel) der Einheitenadapter 44 in den sechsten Steckplatz des dritten Speichermoduls 32 der Speichersteuereinheit 22 und der Einheitenadapter 72 in den sechsten Steckplatz des dritten Speichermoduls 60 der Speichersteuereinheit 24 eingesteckt sein kann. Deswegen können die Gruppenkennung und die Kennung des Bezugsanschlusses zusammengeführt werden, um eine verknüpfte Kennung zu bilden (z. B. ein Tuple, das die Gruppenkennung und die Kennung des Bezugsanschlusses aufweist), um jeden der Bezugsanschlüsse in der Einrichtung 20 eindeutig zu kennzeichnen.
-
Es kann Fälle geben, bei denen der Host-Computer 26 ein Betriebssystem ausführt, das jeden der logischen Pfade lediglich durch eine Kennung eines Bezugsanschlusses kennzeichnet. In diesen Fällen koordinieren sich während einer Initialisierungsphase der hier beschriebenen Ausführungsformen die Prozessoren 36 und 64 untereinander, um allen Bezugsanschlüssen in der Einrichtung 20 eindeutige Kennungen der Bezugsanschlüsse zuzuweisen. Die eindeutigen Kennungen des Bezugsanschlusses können verwendet werden, um jeden der Bezugsanschlüsse und ihre entsprechenden logischen Pfade darzustellen.
-
Während der Initialisierungsphase weisen die Prozessoren 36 und 64 zusätzlich zum Kennzeichnen der Bezugsanschlüsse üblicherweise jedem der Datenträger 43 und 71 eine eindeutige Datenträgerkennung z. B. eine Seriennummer zu. Der Prozessor 36 speichert die eindeutigen Datenträgerkennungen für den Datenträger 43 in Datenträgerdaten 54 im Speicher 40, der mit dem ersten Datenträger verbunden ist. Der Prozessor 64 speichert die eindeutigen Datenträgerkennungen für den Datenträger 71 in Datenträgerdaten 82 im Speicher 68, der mit dem zweiten Datenträger verbunden ist.
-
Ein Fachmann erkennt, dass Aspekte der vorliegenden Erfindung als ein System, Verfahren oder Computerprogrammprodukt umgesetzt werden können. Deswegen können Aspekte der vorliegenden Erfindung die Form einer reinen Hardware-Ausführungsform, einer reinen Software-Ausführungsform (darunter Firmware, residente Software, Mikrocode usw.) oder einer Ausführungsform, die Software- und Hardware-Aspekte kombiniert, annehmen, die hier allgemein als „Schaltung”, „Modul” oder „System” bezeichnet wird. Des Weiteren können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien verkörpert ist, in denen computerlesbarer Programmcode enthalten ist.
-
Jede Kombination aus einem oder mehreren computerlesbaren Medien kann verwendet werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Bei einem computerlesbares Speichermedium kann es sich z. B. um ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, -vorrichtung oder -einheit oder jede geeignete Kombination des Vorhergehenden handeln, es ist jedoch nicht auf diese beschränkt. Zu spezifischeren Beispielen (eine nicht erschöpfende Liste) des computerlesbaren Speichermediums würde Folgendes gehören: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Festwertspeicher (ROM), ein löschbarer programmierbarer Festwertspeicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Compactdisk-Festwertspeicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder jede geeignete Kombination des Vorhergehenden. Im Kontext dieses Dokuments kann ein computerlesbares Speichermedium jedes materielle Medium sein, das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Befehlsausführung enthalten oder speichern kann.
-
Ein computerlesbares Signalmedium kann ein verbreitetes Datensignal mit einem computerlesbaren Programmcode, der darin z. B. im Basisband oder als Teil einer Trägerwelle verkörpert ist, enthalten. Ein derartiges verbreitetes Signal kann eine Vielzahl von Formen annehmen, zu denen ein elektromagnetisches Signal, ein optisches Signal oder jede geeignete Kombination hiervon gehören, ohne jedoch auf diese beschränkt zu sein. Ein computerlesbares Signalmedium kann jedes computerlesbare Medium sein, das kein computerlesbares Speichermedium ist und ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Befehlsausführung übertragen, verbreiten oder transportieren kann.
-
Der Programmcode, der in dem computerlesbaren Medium enthalten ist, kann unter Verwendung jedes geeigneten Mediums übertragen werden, wozu drahtlose, leitungsgestützte, Lichtwellenleiterkabel-, HF-Medien oder jede geeignete Kombination aus dem Vorhergehenden gehören, ohne jedoch auf diese beschränkt zu sein.
-
Der Computerprogrammcode zum Ausführen der Operationen der vorliegenden Erfindung kann in jeder Kombination aus einer oder mehreren Programmiersprachen geschrieben sein, darunter eine objektorientierte Programmiersprache wie Java, Smalltalk, C++ oder dergleichen und herkömmliche prozedurale Programmiersprachen wie etwa die Programmiersprache ”C” oder ähnliche Programmiersprachen. Der Programmcode kann nur auf dem Computer eines Benutzers, teilweise auf dem Computer eines Benutzers, als ein eigenständiges Software-Paket, teilweise auf dem Computer eines Benutzers und teilweise auf einem fernen Computer oder nur auf dem fernen Computer oder Server ausgeführt werden. In dem zuletzt genannten Szenario kann der ferne Computer mit dem Computer des Benutzers durch jeden Netzwerktyp verbunden sein, darunter ein Lokalbereichsnetzwerk (LAN) oder ein Weitbereichsnetzwerk (WAN), oder die Verbindung kann zu einem externen Computer (z. B. über das Internet unter Verwendung eines Internet-Dienstanbieters) hergestellt werden.
-
Im Folgenden werden Aspekte der vorliegenden Erfindung unter Bezugnahme auf Ablaufplandarstellungen und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es ist klar, dass jeder Block der Ablaufplandarstellungen und/oder Blockschaubilder und Kombinationen von Blöcken in den Ablaufplandarstellungen und/oder Blockschaubildern durch Computerprogrammbefehle umgesetzt werden können. Diese Computerprogrammbefehle können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu bilden, so dass Befehle, die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, Mittel zum Umsetzen der Funktionen/Wirkungen, die in dem Block/den Blöcken des Ablaufplans und/oder des Blockschaubilds spezifiziert sind, erzeugen. Diese Computerprogrammbefehle können außerdem in einem computerlesbaren Medium gespeichert sein, das einen Computer oder eine andere programmierbare Datenverarbeitungsvorrichtung anweisen kann, in einer bestimmten Weise zu funktionieren, so dass die in dem computerlesbaren Medium gespeicherten Befehle einen Herstellungsgegenstand produzieren, wozu Befehle gehören, die die Funktionen/Wirkungen umsetzen, die in dem Block/den Blöcken des Ablaufplans und/oder des Blockschaubilds spezifiziert sind.
-
Die Computerprogrammbefehle können außerdem in einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten geladen werden, um eine Reihe von Operationsschritten zu bewirken, die auf dem Computer, der anderen programmierbaren Vorrichtung oder den anderen Einheiten ausgeführt werden sollen, um einen mittels Computer umgesetzten Prozess zu erzeugen, so dass die Befehle, die auf dem Computer oder der anderen programmierbaren Vorrichtung ausgeführt werden, Prozesse zum Umsetzen der Funktionen/Wirkungen, die in dem Block/den Blöcken des Ablaufplans und/oder des Blockschaubilds spezifiziert sind, bereitstellen.
-
Transparente Datenträger-Umschaltung
-
2 ist eine schematische bildliche Darstellung, die logische Pfade zwischen dem Host-Computer 26, dem Datenträger 43 (der hier auch als der erste Datenträger bezeichnet wird), dem Datenträger 71 (der hier auch als der zweite Datenträger bezeichnet wird) und dem Datenträger 88 zeigt. Ein logischer Pfad zwischen zwei Einheiten gibt an, wie sich die Verbindung der beiden Einheiten für das Netzwerk darstellt. Die in 2 gezeigte Konfiguration zeigt z. B. den Datenträger 43, den Datenträger 71 und den Host-Computer 26, die in einem Netzwerk mit Ring-Topologie angeordnet sind. Die tatsächlichen physischen Verbindungen zwischen den Einheiten (z. B. über E/A-Pfade 30) werden sich üblicherweise von den logischen Pfaden unterscheiden.
-
Bei der in 2 gezeigten Konfiguration ist der Host-Computer 26 über einen logischen Pfad 100 mit dem Datenträger 43 verbunden, und der Host-Computer ist über einen logischen Pfad 102 mit dem Datenträger 71 verbunden. Die Datenträger 43 und 71 sind über einen logischen Pfad verbunden, bei dem es sich um einen Datenübertragungspfad handelt, der verwendet werden kann, um Daten zwischen den Datenträgern 43 und 71 synchron zu spiegeln. Die Einrichtung 20 ist außerdem so eingerichtet, dass sie den Datenträger 43 oder den Datenträger 71 über einen Datenübertragungspfad 106 asynchron in den Datenträger 92 spiegelt.
-
Beim Implementieren von SAN-Topologien wie etwa Fibre Channel weist jeder der logischen Pfade 100 und 102 üblicherweise mehrere physische Verbindungen auf wie in 1 durch E/A-Pfade 30 angegeben. Durch die Verwendung von mehreren physischen Pfaden, auch als Mehrwege-E/A bezeichnet, kann eine Fehlertoleranz bereitgestellt werden, da die Einrichtung 20 Netzwerkverkehr bei einer Störung in einem der physischen Pfade über einen alternativen physischen Pfad leiten kann.
-
Während des synchronen Spiegelns wird die Speichersteuereinheit, die den primären Datenträger enthält, hier als die primäre Speichersteuereinheit bezeichnet, und die Speichersteuereinheit, die den sekundären Datenträger enthält, wird hier als die sekundäre Speichersteuereinheit bezeichnet. Wenn es sich z. B. bei dem Datenträger 43 um den primären Datenträger handelt, ist die Speichersteuereinheit 22 die primäre Speichersteuereinheit und ist so eingerichtet, dass sie den Datenträger 43 synchron in die sekundäre Speichersteuereinheit, in diesem Fall die Speichersteuereinheit 24, spiegelt.
-
Bei Ausführungsformen der vorliegenden Erfindung werden die Zustände der Bezugsanschlüsse in den Speichersteuereinheiten 22 und 24 in Abhängigkeit von ihren Funktionen während des synchronen Spiegelns eingestellt. Die Bezugsanschlüsse in der primären Speichersteuereinheit werden in den aktiven Zustand versetzt, und die Bezugsanschlüsse in der sekundären Speichersteuereinheit werden in den inaktiven Zustand versetzt. Wenn die Speichersteuereinheiten die Funktionen beim synchronen Spiegeln tauschen, werden bei Ausführungsformen der vorliegenden Erfindung die Zustände der Bezugsanschlüsse der Speichersteuereinheiten ebenfalls vertauscht.
-
3 ist ein Ablaufplan, der ein Verfahren zum transparenten Umschalten von synchron gespiegelten Datenträgern gemäß einer Ausführungsform der vorliegenden Erfindung schematisch darstellt. In einem anfänglichen Schritt 110 bildet eine Umschalt-Anwendung 52 den ersten Datenträger in dem Host-Computer 26 ab (d. h. stellt zwischen ihnen eine logische Verbindung her).
-
Bei einer ersten Zustandseinstellung 112 versetzt die Umschalt-Anwendung 52 den Zustand des ersten Datenträgers in den aktiven Zustand. Um den ersten Datenträger in den aktiven Zustand zu versetzen, kann die Umschalt-Anwendung 52 die Ziel-Anschlussgruppe, die dem ersten Datenträger zugehörig ist (d. h. die Ziel-Anschlussgruppe, die den Bezugsanschluss 45 enthält), in den aktiven Zustand versetzen, wodurch die physischen Pfade, die dem logischen Pfad 100 zugehörig sind, in den aktiven Zustand versetzt werden.
-
Bei einigen Ausführungsformen stellt die Umschalt-Anwendung 52 den Zustand des ersten Datenträgers (und dadurch die Zustände der logischen Pfade zwischen dem Host-Computer 26 und dem ersten Datenträger) ein durch das Einstellen des Zustands der Ziel-Anschlussgruppe, die den Bezugsanschlüssen in der Speichersteuereinheit 22 zugehörig sind. Wenn z. B. die Gruppe 0 die Bezugsanschlüsse in der Speichersteuereinheit 22 (darunter den Anschluss 45) aufweist und die Gruppe 1 die Bezugsanschlüsse in der Speichersteuereinheit 24 (darunter den Anschluss 73) aufweist, versetzt die Umschalt-Anwendung 52 die Gruppe 0 in den aktiven Zustand, wodurch der erste Datenträger ebenfalls in den aktiven Zustand versetzt wird.
-
Bei einer alternativen Ausführungsform bleibt der Zustand jeder Gruppe unverändert, jedoch werden die Bezugsanschlüsse, die in den Ziel-Anschlussgruppen enthalten sind, gegebenenfalls geändert. Wenn z. B. die Gruppe 0 in dem aktiven Zustand ist und die Gruppe 1 in dem inaktiven Zustand ist, kann die Umschalt-Anwendung 52 die Anschlüsse der Speichersteuereinheit 22 (darunter der Anschluss 45) der Gruppe 0 zuweisen, wodurch der erste Datenträger in den aktiven Zustand versetzt wird. Alternativ kann die Umschalt-Anwendung 52 die Bezugsanschlüsse der Speichersteuereinheit 22 (darunter der Anschluss 45) der Gruppe 1 zuweisen, wodurch der erste Datenträger in den inaktiven Zustand versetzt wird.
-
Bei einer zweiten Zustandseinstellung 114 versetzt die Umschalt-Anwendung 52 den zweiten Datenträger in den inaktiven Zustand. Um den zweiten Datenträger in den inaktiven Zustand zu versetzen, versetzt die Umschalt-Anwendung 52 die Gruppe der Bezugsanschlüsse, die dem zweiten Datenträger zugehörig ist (d. h. die Ziel-Anschlussgruppe, die den Bezugsanschluss 73 enthält), in den inaktiven Zustand, wodurch die logischen Pfade, die dem logischen Pfad 102 zugehörig sind, in den inaktiven Zustand versetzt werden.
-
In einem Kopierschritt 116 kopiert die Umschalt-Anwendung 52 die Datenträgerkennung von dem aktiven ersten Datenträger in den inaktiven zweiten Datenträger. Zum Kopieren der Datenträgerkennung kopiert die Umschalt-Anwendung 52 Datenträgerdaten 54 in Datenträgerdaten 82. Der Host-Computer 26 ruft dann die kopierte Datenträgerkennung aus den Datenträgerdaten 82 ab, wodurch logische Pfade zwischen dem Host-Computer und dem ersten Datenträger und logische Pfaden zwischen dem Host-Computer und dem zweiten Datenträger zusammengeführt werden.
-
In einem Abbildungsschritt 117 bildet die Umschalt-Anwendung 52 den inaktiven zweiten Datenträger in dem Host-Computer 26 ab. Die Umschalt-Anwendung 52 überträgt anschließend eine Anforderung zum Host-Computer 26, um die Datenträger in der Einrichtung 20 abzufragen, und in einem ersten Abfrageschritt 118 fragt der Host-Computer die Datenträger in der Einrichtung 20 ab, wodurch die Zustände der in den Host-Computer abgebildeten Datenträger gekennzeichnet und ermittelt werden.
-
Zum Abfragen der Einrichtung 20 ruft der Host-Computer 26 einen SAN-Funktionsaufruf auf, der alle logischen Pfade zu den Speichersteuereinheiten in der Einrichtung 20 zurückgibt. Für jeden zurückgegebenen logischen Pfad führt der Host-Computer 26 den Befehl SCSI-Report-LUNS aus, der eine logische Einheitennummer (LUN) für jede Einheit auf dem zurückgegebenen logischen Pfad zurückgibt. Der Host-Computer 26 führt anschließend den Befehl SCSI-Inquiry für jede zurückgegebene LUN und jeden Pfad aus, wobei zuerst Enable-Vital-Product-Data (EVPD) Seite 80 (hexadezimal) abgefragt werden, um die Datenträgerkennung abzurufen, und anschließend EVPD Seite 83 (hexadezimal) abgefragt werden, um die Kennungen von Gruppe und Bezugsanschluss abzurufen, die jeder LUN zugehörig sind. Schließlich führt der Host-Computer für jede der abgerufenen Gruppenkennungen den Befehl Report-Target-Port-Groups aus, um den Zustand von jeder der Gruppen (d. h. der Ziel-Anschlussgruppe) abzurufen.
-
Auf der Grundlage der Informationen, die durch die abfragende Einrichtung 20 abgerufen werden, kann der Host-Computer 26 Mehrwege-Einheiten definieren und den Zustand jedes logischen Pfads zu jeder Mehrwege-Einheit bestimmen. Da mehrere logische Pfade zwischen dem Host-Computer 26 und jedem der Datenträger vorhanden sein können, kann der Host-Computer mehrere Instanzen desselben Datenträgers erkennen (der durch die zugehörige Datenträgerkennung gekennzeichnet ist), wobei jede Instanz über einen anderen logischen Pfad erfolgt.
-
Bei einem ersten Spiegelkonfigurationsschritt 120 richtet die Spiegelungs-Anwendung 50 den ersten Datenträger als den primären Datenträger und den zweiten Datenträger als den sekundären Datenträger ein. Wie zuvor beschrieben kopiert das Spiegeln Daten von dem primären Datenträger in dem sekundären Datenträger, um Redundanz sicherzustellen. Deswegen ist nach dem Schritt 120 die Einrichtung 20 so eingerichtet, dass sie von dem ersten Datenträger in den zweiten Datenträger synchron spiegelt. Außerdem löst die Spiegelungs-Anwendung 50 eine Synchronisierung von Zustandsdaten 58 (für den ersten Datenträger) und von Zustandsdaten 80 (für den zweiten Datenträger) aus. Bei der in 1 gezeigten Konfiguration kann die Spiegelungs-Anwendung 84 außerdem den zweiten Datenträger in den Datenträger 92 asynchron spiegeln.
-
Es kann Instanzen geben, bei denen ein (nicht gezeigter) Systemadministrator eine Anforderung (über den Host-Computer 26) für Speichersteuereinheiten 22 und 24 befördert, um Spiegelfunktionen zu vertauschen (d. h. Einrichten des zweiten Datenträgers als den primären Datenträger und des ersten Datenträgers als den sekundären Datenträger). Wenn alternativ in dem ersten Datenträger, in einer beliebigen Komponente in der Speichersteuereinheit 22 oder in dem logischen Pfad 102 eine Störung vorhanden ist, kann die Einrichtung 20 die Speichersteuereinheit 24 als die primäre Speichersteuereinheit einrichten.
-
Das Verfahren bleibt in einem Vergleichsschritt 122, bis eine Notwendigkeit vorhanden ist, die Funktionen des synchronen Spiegelns der Speichersteuereinheiten 22 und 24 zu vertauschen. Wenn die Spiegelungs-Anwendungen 50 und 84 einen Befehl empfangen, die Funktionen des synchronen Spiegelns ihrer entsprechenden Speichersteuereinheiten umzuschalten, versetzt die Umschalt-Anwendung 52 in einer dritten Zustandseinstellung 124 den Zustand des ersten aktiven Datenträgers in den inaktiven Zustand. Um den ersten Datenträger in den inaktiven Zustand zu versetzen, kann die Umschalt-Anwendung 52 die Ziel-Anschlussgruppe, die dem ersten Datenträger zugehörig ist (d. h. die Ziel-Anschlussgruppe, die den Bezugsanschluss 45 enthält), in den inaktiven Zustand versetzen, wodurch die logischen Pfade, die dem logischen Pfad 100 zugehörig sind, in den inaktiven Zustand versetzt werden.
-
Bei einem zweiten Spiegelungs-Konfigurationsschritt 126 richtet die Spiegelungs-Anwendung 50 den inaktiven ersten Datenträger als den sekundären Datenträger und den inaktiven zweiten Datenträger als den primären Datenträger ein (d. h., um von dem zweiten Datenträger in den ersten Datenträger synchron zu spiegeln). Deswegen wird nach dem Schritt 126 die Einrichtung 20 so eingerichtet, dass sie von dem zweiten Datenträger in den ersten Datenträger synchron spiegelt.
-
Bei einer vierten Zustandseinstellung 128 versetzt die Umschalt-Anwendung 86 den Zustand des zweiten Datenträgers in den aktiven Zustand und befördert eine Anforderung zum Host-Computer 26 zum Abfragen der Datenträger der Einrichtung 20. Um den zweiten Datenträger in den aktiven Zustand zu versetzen, kann die Umschalt-Anwendung 86 die Ziel-Anschlussgruppe, die dem zweiten Datenträger zugehörig ist (d. h. die Ziel-Anschlussgruppe, die den Bezugsanschluss 73 enthält), in den aktiven Zustand versetzen, wodurch die logischen Pfade, die dem logischen Pfad 102 zugehörig sind, in den aktiven Zustand versetzt werden. Schließlich fragt der Host-Computer 26 in einem zweiten Abfrageschritt 130 die Datenträger in der Einrichtung 20, um die Zustände der Datenträger in der Einrichtung 20 zu kennzeichnen und festzustellen, und die Zustände ihrer entsprechenden physischen Pfade zu dem Host-Computer ab.
-
Der Ablaufplan und Blockschaubilder in den Figuren veranschaulichen die Architektur, Funktionalität und den Betrieb von möglichen Umsetzungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedener Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in dem Ablaufplan oder Blockschaubildern ein Modul, Segment oder Abschnitt von Code, das/der einen oder mehrere ausführbare Befehle zum Umsetzen der spezifizierten logischen Funktion(en) aufweist, repräsentieren. Es sollte außerdem angemerkt werden, dass in einigen alternativen Umsetzungen die in dem Block angegebenen Funktionen nicht in der in den Figuren angegebenen Reihenfolge auftreten können. Zum Beispiel können zwei Blöcke, die nacheinander gezeigt sind, tatsächlich im Wesentlichen gleichzeitig ausgeführt werden oder die Blöcke können gelegentlich in Abhängigkeit von der beteiligten Funktionalität in der umgekehrten Reihenfolge ausgeführt werden. Es wird außerdem angemerkt, dass jeder Block der Blockschaubilder und/oder der Ablaufplan-Darstellung und Kombinationen von Blöcken in den Blockschaubildern und/oder der Ablaufplan-Darstellung durch auf spezielle Hardware gestützte Systeme, die die spezifizierten Funktionen oder Wirkungen ausführen, oder Kombinationen aus spezieller Hardware und Computerbefehlen umgesetzt werden können.