-
Technisches Gebiet
-
Die vorliegende Erfindung betrifft im Allgemeinen Computer und insbesondere Ausführungsformen von Vorrichtungen, Verfahren und Computerprogrammprodukten, die unter Verwendung einer Zustandsmaschine Elemente in einer aus einer Vielzahl von Servern bestehenden Datenspeichereinrichtung über einen ausgedehnten Zeitraum aktualisieren.
-
Hintergrund der Erfindung
-
Speichereinrichtungen wie beispielsweise Speicherserver in der weitläufig von Unternehmen und anderen Organisationen verwendeten Form besitzen Hochleistungs-Plattenanordnungen zum Speichern großer Datenmengen von externen Host-Systemen. Eine Speichereinrichtung kann auch Daten von einer anderen Speichereinrichtung, zum Beispiel an einem fernen Ort, sichern. Der IBM® Enterprise Storage Server® (ESS) ist ein Beispiel einer solchen Speichereinrichtung. Solche Einrichtungen können zum Speichern und Abrufen von Daten auf Anordnungen aus Platten oder andere Speichermedien zugreifen. Darüber hinaus können als weiteren Schutz vor Datenverlust redundante Kapazitäten bereitgestellt werden. So umfasst ein System mit zwei Servern zwei separate Server, die auf dieselben Speicherplatten zugreifen können. IBM und Enterprise Storage Server sind Marken der International Business Machines Corporation und weltweit in vielen Jurisdiktionen eingetragen.
-
Darüber hinaus umfassen Speichereinrichtungen mehrere Subsysteme und Komponenten, die als aktualisierbare Elemente bezeichnet werden, welche jeweils ihr ganz eigenes Aktualisierungsbild sowie Aktualisierungsbefehle benötigen. Die Elemente werden von Zeit zu Zeit aktualisiert, um beispielsweise neue Leistungsmerkmale bereitzustellen oder Probleme zu beheben. Zu den aktualisierbaren Elementen gehören Host-Adapter, Einheitenadapter, Service-Prozessoren, Speicherplatten, Leistungsteile und so weiter.
-
Das
US-Patent 7,685,461-B2 (
Brundidge, J.L. et al, „Method, apparatus and program storage device for performing fault tolerant code upgrade on a fault tolerant system by determining when functional code reaches a desired state before resuming an upgrade", 23. März 2010) offenbart Upgrade oder Aktualisierung eines Codeladevorgangs geladenen Codes unter Verwendung von festen Zustandsmaschinen, die den Abschluss der Codeaktualisierung sicherstellen.
-
Derzeit verfügbare Systeme stellen kein selbst-konfigurierendes und selbst-resynchronisierendes System bereit, mit dem sich die Engine-Leistung der festen Zustandsmaschine von Stunden/Tagen auf Wochen/Monate erweitern könnte. Typischerweise ermöglichen diese keine Erweiterung der festen Zustandsmaschine auf folgende Weise: Länge der Nutzung der Zustandsmaschine während des Code-Ladevorgangs kann von Stunden auf Wochen verlängert werden. Eine Verteilung der festen Zustandsmaschine (auf Multi-Head-Konfigurationen), so dass ein Verwaltungssystem die Codeverteilung und ein anderes die Codeaktivierung ausführen könnte, ist mit ihnen ebenfalls normalerweise nicht möglich.
-
Aus
US 2006/130046 A1 ist ein System und ein Verfahren zum Aktualisieren von Programm-Code in einem Speicher bekannt, bei dem ein Paket mit mehreren Transformationsvorgängen gebildet wird, dieses an die elektronische Einrichtung übertragen wird, ein Teil des vorhandenen Programm-Codes in einen zweiten Speicher kopiert wird, der Teil des vorhandenen Programm-Codes in dem zweiten Speicher aktualisiert wird, der in dem ersten Speicher verbliebene Teil des vorhandenen Programm-Codes durch den aktualisierten Programm-Code in dem zweiten Speicher ersetzt wird, und dies wiederholt wird, bis der vorhandene Programm-Code vollständig aktualisiert worden ist.
-
Aus
US 2006/0069849 A1 sind ein Verfahren und eine Vorrichtung bekannt zum Aktualisieren von Information in einem ersten Block in einem nicht-flüchtigen Speicher. Bei dem Verfahren werden die physikalischen Adressen des nicht-flüchtigen Speichers als Teil Aktualisierungsvorgangs bzgl. der Information von dem ersten Block und einem zweiten Block ausgetauscht.
-
Die
US 2006/0106826 A1 betrifft eine Technik zur Aktualisierung von Elementen in einer Datenspeichereinrichtung, einschließlich eines einzelnen Servers oder eines Mehrserver-Systems, z.B. durch Bereitstellung aktualisierter interner Codepakete für die Elemente. Die Aktualisierung wird unter Verwendung einer festen Zustandsmaschine durchgeführt, wobei die Elemente auf koordinierte Weise innerhalb der Beschränkungen der Zustandsmaschine aktualisiert werden. In einem Mehrserver-System werden die Codepakete während der Verteilungszustände der Zustandsmaschine auf die Elemente verteilt, die den verschiedenen Servern in einer Durchlaufphase der Zustandsmaschine zugeordnet sind. Die verteilten Codepakete werden in Aktivierungszuständen der Zustandsmaschine in mehreren Durchläufen der Zustandsmaschine aktiviert, so dass eine serielle Aktivierung erfolgt. Die Codepakete können auf flexible Weise gruppiert werden, indem ein externes Update-Bündel konfiguriert wird, das vom Zustandsautomaten verwendet wird. Die Verteilung des Codes basiert auf der Gruppierung.
-
Am Prozess der Aktualisierung eines Speichereinrichtungsservers können mehrere Schichten aus Hardware, Firmware und Software beteiligt sein. Aufgrund der mit der Bearbeitung dieser Komponenten einhergehenden Komplexität kann die Aktualisierung von Codes äußerst viel Zeit in Anspruch nehmen. Um das Wartungszeitfenster eines Systems (das einen oder mehrere Komplexe mit virtualisierten Speichereinrichtungen umfassen kann) zu verringern, werden bei derzeitigen Vorgehensweisen die Installation und Aktivierung des neuen Codelevels getrennt voneinander vorgenommen. In Implementierungen, bei denen eine feste Zustandsmaschine zum Durchführen der Aktualisierungen verwendet wird, können dann Schwierigkeiten auftreten, wenn die Aktualisierungen über einen ausgedehnten Zeitraum durchgeführt werden, da sich der Zustand der Maschine aufgrund externer Aktivität ändern kann. In einem kurzen Zeitfenster wird dieses Problem durch die Verwendung eines Sperrmechanismus in Angriff genommen, jedoch sind während dieses Zeitraums die Kapazitäten der Speichereinrichtung beschränkt.
-
In Anbetracht der vorstehenden Anmerkungen besteht Bedarf an einem Mechanismus, mit dem Aktualisierungen über einen längeren Zeitraum hinweg durchgeführt werden können, ohne dass dabei irgendwelche resultierenden Einschränkungen für die Speichereinrichtung auftreten. Dementsprechend werden verschiedene Ausführungsformen zum Aktualisieren wenigstens einer Speichereinrichtung in einer Computer-Speicherumgebung bereitgestellt. In einer Ausführungsform wird, lediglich im Sinne eines Beispiels, eine Sequenz zum Verteilen wenigstens eines einer Vielzahl von Codepaketen auf die wenigstens eine Einrichtung gemäß unterschiedlichen Zuständen einer festen Zustandsmaschine eingestellt. Das wenigstens eine der Vielzahl von Codepaketen wird in wenigstens einem Zwischenspeicherungsbereich installiert. Das wenigstens eine der Vielzahl von Codepaketen wird in dem wenigstens einen Zwischenspeicherungsbereich in einem gültigen Ruhemodus gehalten, während die feste Zustandsmaschine angehalten wird. Entsprechend einer Wiederaufnahme des Betriebes der festen Zustandsmaschine zu einer darauffolgenden Zeit wird ein aktuelles Codepaket mit dem wenigstens einen der Vielzahl von Codepaketen in dem wenigstens einen Zwischenspeicherungsbereich ausgetauscht, um das wenigstens eine der Vielzahl von Codepaketen zu aktivieren.
-
Die Erfindung stellt sich zur Aufgabe, ein Verfahren anzugeben sowie ein System und ein Computerprogrammprodukt zu schaffen, womit Aktualisierungen in einer Computer-Speicherumgebung ohne Einschränkungen über einen längeren Zeitraum möglich sind.
-
Diese Aufgabe wird gelöst durch das Verfahren zum Aktualisieren wenigstens einer Einrichtung nach Anspruch 1, das System zum Aktualisieren nach Anspruch 9 und das Computerprogrammprodukt nach Anspruch 18. Bevorzugte Ausführungsformen sind Gegenstand der jeweiligen Unteransprüche.
-
Ausgehend von einem ersten Aspekt stellt die vorliegende Erfindung ein Verfahren zum Aktualisieren wenigstens einer Einrichtung in einer Computer-Speicherumgebung durch eine Prozessoreinheit bereit, das Folgendes umfasst: Einstellen einer Sequenz zum Verteilen wenigstens eines einer Vielzahl von Codepaketen auf die wenigstens eine Einrichtung gemäß unterschiedlicher Zustände einer festen Zustandsmaschine; Installieren des wenigstens einen der Vielzahl von Codepaketen in wenigstens einem Zwischenspeicherungsbereich, wobei das wenigstens eine der Vielzahl von Codepaketen in dem wenigstens einen Zwischenspeicherbereich in einem gültigen Ruhemodus gehalten wird, während die feste Zustandsmaschine angehalten wird; und entsprechend einer Wiederaufnahme des Betriebes der festen Zustandsmaschine zu einer darauffolgenden Zeit, Austauschen eines aktuellen Codepaketes mit dem wenigstens einen der Vielzahl von Codepaketen in dem wenigstens einen Zwischenspeicherungsbereich, um das wenigstens eine der Vielzahl von Codepaketen zu aktivieren.
-
Ausgehend von einem zweiten Aspekt stellt die vorliegende Erfindung ein System zum Aktualisieren wenigstens einer Einrichtung in einer Computer-Speicherumgebung bereit, das Folgendes umfasst: wenigstens eine Prozessoreinheit, die in der Computer-Speicherumgebung betrieben werden kann, wobei die wenigstens eine Prozessoreinheit für Folgendes geeignet ist: Einstellen einer Sequenz zum Verteilen wenigstens eines einer Vielzahl von Codepaketen auf die wenigstens eine Einrichtung entsprechend unterschiedlicher Zustände einer festen Zustandsmaschine, Installieren des wenigstens einen der Vielzahl von Codepaketen in wenigstens einem Zwischenspeicherungsbereich, wobei das wenigstens eine der Vielzahl von Codepaketen in dem wenigstens einen Zwischenspeicherungsbereich in einem gültigen Ruhemodus gehalten wird, während die feste Zustandsmaschine angehalten wird, und entsprechend einer Wiederaufnahme des Betriebes der festen Zustandsmaschine zu einer darauffolgenden Zeit, Austauschen eines aktuellen Codepaketes mit dem wenigstens einen der Vielzahl von Codepaketen in dem wenigstens einen Zwischenspeicherungsbereich, um das wenigstens eine der Vielzahl von Codepaketen zu aktivieren.
-
Ausgehend von einem dritten Aspekt stellt die vorliegende Erfindung ein Computerprogrammprodukt zum Aktualisieren wenigstens einer Einrichtung in einer Computer-Speicherumgebung durch eine Prozessoreinheit bereit, wobei das Computerprogrammprodukt Folgendes umfasst: ein von einem Computer lesbares Speichermedium mit darin enthaltenen, von einem Computer lesbaren Programmcodeabschnitten, wobei die von einem Computer lesbaren Programmcodeabschnitte Folgendes umfassen: einen ersten ausführbaren Abschnitt zum Einstellen einer Sequenz zum Verteilen wenigstens eines einer Vielzahl von Codepaketen auf die wenigstens eine Einrichtung gemäß unterschiedlicher Zustände einer festen Zustandsmaschine; einen zweiten ausführbaren Abschnitt zum Installieren des wenigstens einen der Vielzahl von Codepaketen in wenigstens einem Zwischenspeicherungsbereich, wobei das wenigstens eine der Vielzahl von Codepaketen in dem wenigstens einen Zwischenspeicherungsbereich in einem gültigen Ruhemodus gehalten wird, während die feste Zustandsmaschine angehalten wird; und einen dritten ausführbaren Abschnitt, um entsprechend einer Wiederaufnahme des Betriebes der festen Zustandsmaschine zu einer darauffolgenden Zeit, ein aktuelles Codepaket mit dem wenigstens einen der Vielzahl von Codepaketen in dem wenigstens einen Zwischenspeicherungsbereich auszutauschen, um das wenigstens eine der Vielzahl von Codepaketen zu aktivieren.
-
Ausgehend von einem weiteren Aspekt stellt die vorliegende Erfindung ein Computerprogramm bereit, das auf einem von einem Computer lesbaren Medium gespeichert ist und in den internen Speicher eines digitalen Computers geladen werden kann, mit Software-Codeabschnitten, wenn das Programm auf einem Computer ausgeführt wird, zum Durchführen der Schritte der Erfindung.
-
Figurenliste
-
Im Folgenden wird die vorliegende Erfindung in Bezug auf die bevorzugten Ausführungsformen in ihrer in den folgenden Figuren veranschaulichten Form lediglich im Sinne von Beispielen beschrieben:
- 1 veranschaulicht ein Blockdiagramm einer beispielhaften fähigen Speichereinrichtung, in der eine bevorzugte Ausführungsform der vorliegenden Erfindung umgesetzt werden kann;
- 2 veranschaulicht eine beispielhafte Zustandsmaschine zum Durchführen eines Aktualisierungsprozesses, in der eine bevorzugte Ausführungsform der vorliegenden Erfindung umgesetzt werden kann; und
- 3 veranschaulicht ein Ablaufdiagramm eines beispielhaften Verfahrens zum Aktualisieren einer Einrichtung in einer Computerumgebung, in der eine bevorzugte Ausführungsform der vorliegenden Erfindung implementiert werden kann.
-
Ausführliche Beschreibung der Erfindung
-
Die veranschaulichten Ausführungsformen stellen Mechanismen zum Aktualisieren einer Einrichtung, beispielsweise in einer Implementierung einer festen Zustandsmaschine, über einen ausgedehnten Zeitraum bereit. Diese Mechanismen stellen eine Verbesserung derzeitiger Ausführungen dadurch dar, dass ein selbst-konfigurierendes und selbst-resynchronisierendes System bereitgestellt wird, mit dem eine Erweiterung der Kapazität einer Zustandsmaschine beispielsweise von Stunden/Tagen auf Wochen/Monate möglich wird.
-
Die Mechanismen der veranschaulichten Ausführungsformen verbessern die Implementierung der festen Zustandsmaschine beispielsweise durch (1) Verlängern der Nutzung der Zustandsmaschine während eines Code-Ladevorgangs von Stunden auf Wochen, und (2) Ermöglichen der Verteilung der Zustandsmaschine in einer Multi-Head-Konfiguration, so dass ein Verwaltungssystem zum Implementieren der Codeverteilung konfiguriert sein kann und ein weiteres Verwaltungssystem zum Implementieren der Codeaktivierung implementiert sein kann.
-
Die Mechanismen der veranschaulichten Ausführungsformen liefern mehrere Vorteile, unter Anderem Minimierung von Nutzungsbeschränkungen der Speichereinrichtung, leichtere Verwaltung des Wartungszeitfensters aufgrund der Fähigkeit, ausgedehnte Zeiträume zwischen unterschiedlichen Zuständen der Engine bearbeiten zu können, Förderung der vorstehend genannten Multi-Head-Konfiguration von Implementierungen für Lastausgleich sowie weitere Vorteile, und Toleranz gegenüber Systemfehlern und Flexibilität beim Durchführen von Diensten in unterschiedlichen Stadien der Zustandsmaschine.
-
Wie dies vorstehend erwähnt wurde, ist es von Zeit zu Zeit erforderlich, den von unterschiedlichen Elementen in einer Speichereinrichtung verwendeten Code zu aktualisieren. In einer Implementierung wird solch ein Code allgemein als Licensed Maintenance Code (LMC) bezeichnet. Die Speichereinrichtung umfasst mehrere Subsysteme und Komponenten, die als aktualisierbare Elemente bezeichnet werden, wobei jedes sein einzigartiges Aktualisierungsbild sowie Aktualisierungsbefehle benötigt.
-
1 veranschaulicht ein Blockdiagramm einer beispielhaften Einrichtung (d.h. Speichereinrichtung), in der Aspekte der vorliegenden Erfindung umgesetzt werden können. Ein übergeordnetes Produkt umfasst eine Hardware Management Console (HMC) 190 wie zum Beispiel einen Laptopcomputer und wenigstens eine Speichereinrichtung (SF) 100. Die beispielhafte Speichereinrichtung (SF) 100 umfasst wenigstens ein Speichereinrichtungsbild (SFI) 105 und eine Stromversorgungsgruppe 115, die Netzteile 116 und 117 umfasst. Insbesondere umfasst die Stromversorgungsgruppe 115 eine Rackstrom-Steuerung („rack power control“, RPC) und ein primäres Netzteil (PPS), die für die Zwecke der Codeaktualisierung als eine Einheit behandelt werden können. Das Speichereinrichtungsbild (SFI) umfasst zwei Server (redundante Server) S0 (140) und S1 (160) und mehrere Plattenlaufwerkmodule (DDMs) 110, bei denen es sich um Datenspeichereinheiten für Kundendaten handelt, sowie mehrere Host-Adapter (HAs) 120. HAs sind physikalische Untereinheiten eines Speicherservers, an die eine oder mehrere Host-E/A-Schnittstellen angeschlossen werden können.
-
Jeder Server 140, 160 umfasst wenigstens ein Festplattenlaufwerk (HDD) 144, 164, auch als logische Partition (LPAR) bezeichnet, wenigstens zwei Laufwerksadapter (DAs) 143, 163, die in wenigstens einem Speichergehäuse (SE) 142, 162 aufgenommen sind, sowie eine Serviceprozessor-Gruppe 146 beziehungsweise 166 (mitunter als Computer-Electronic Complexes (CECs) bezeichnet). Ein CEC (Computerelektronischer Komplex) ist der Satz aus Hardware-Einrichtungen, der mit jedem Server 140, 160 verknüpft ist. DAs sind physikalische Komponenten der Speichereinrichtung 100, die die Kommunikation zwischen den Servern 140, 160 und den Plattenlaufwerkmodulen (DDMs) 110 herstellen.
-
Jedes der Festplattenlaufwerke (HDDs) 144, 164 besitzt ein darauf laufendes Betriebssystem, wie beispielsweise die Betriebssystemsoftware AIX 5 L von IBM, zusammen mit einem Treiber, der auch als SFI-Code bezeichnet wird. Der SFI verfügt über zahlreiche Komponenten mit einem Code für jede Komponente. Man kann sich den SFI-Code als Hauptcode vorstellen, der die Aktivitäten der meisten der anderen Komponenten und Codes koordiniert. Ein Aspekt der veranschaulichten Ausführungsformen beinhaltet zum Teil das Aktualisieren des Betriebssystems und des SFI-Codes auf den Festplattenlaufwerken (HDDs) 144, 164. Die Serviceprozessor-Gruppen 146, 166 schließen sich mit den HDDs 144 bzw. 164 zusammen, um die Serverbasis zu bilden, dennoch ist der Server ohne die anderen Elemente unvollständig. AIX ist eine Marke der International Business Machines Corporation, die weltweit in vielen Jurisdiktionen eingetragen ist.
-
Wenn eine Codeaktualisierung erforderlich ist, wird typischerweise ein Techniker an den Standort der Speichereinrichtung geschickt, der dann das HMC 190 zur Durchführung der Aktualisierung verwendet. Alternativ dazu kann auch der Kunde das HMC 190 zum Durchführen der Aktualisierung verwenden. Des Weiteren kann die Aktualisierung auch fern vorgenommen werden. Der Code für das Aktualisieren der Elemente kann bei dem HMC 190 lokal gespeichert sein, so beispielsweise auf einem CD-Nur-Lese-Speicher (CD-ROM), oder er greift zum Beispiel über eine Website auf solchen Code zu. Im Allgemeinen gehören zu den aktualisierbaren Elementen das HDD 144, 164, die Host-Adapter 120, die Netzteilkomponente 115, die Plattenlaufwerkmodule (DDMs) 110, die Speichergehäuse 142, 162, die Laufwerksadapter 143, 163 und die Serviceprozessor-Gruppen 146, 166.
-
Die nachfolgende 2 veranschaulicht eine beispielhafte Zustandsmaschine zum Durchführen eines Aktualisierungsprozesses. Ein Aspekt der vorliegenden Erfindung koordiniert die Aktualisierungsschritte für jedes der aktualisierbaren Elemente im Kontext einer festen Zustandsmaschine, die unterschiedliche Zustände in einer festgelegten Reihenfolge durchläuft. Das Durchlaufen der Zustände wird in aufeinanderfolgenden Zyklen oder Schleifen wiederholt. So umfasst eine vereinfachte Zustandsmaschine 200 beispielsweise die Zustände 205, 210, 215 und 220, die in der dargestellten Reihenfolge jeweils einzeln durchlaufen werden. In der Praxis kann die vorliegende Erfindung Dutzende oder Hunderte von unterschiedlichen Zuständen durchlaufen, obgleich nicht notwendigerweise in jedem Zustand ein Schritt für jedes aktualisierbare Element durchgeführt wird. Jeder Zustand ist mit einem oder mehreren Schritten assoziiert, die bei der Aktualisierung der Elemente durchgeführt werden, wie dies nachstehend ausführlich beschrieben wird.
-
In einer Ausführungsform können die Mechanismen der vorliegenden Erfindung in einem folgenden beispielhaften Verfahren voranschreiten. Beim Einführen eines Mediums oder Herunterladen aus dem Netz identifiziert der Prozess, dass ein neues Codelevel verfügbar ist und sucht nach angeschlossenen virtualisierten Speichereinrichtungen, die für dieses neue Level Kandidaten wären. Ist dieser Vorgang abgeschlossen, wird die Zustandsmaschine automatisch konfiguriert und gestartet.
-
Als nächster Schritt in dem beispielhaften Verfahren installiert die Zustandsmaschine das neue Codelevel in einem Zwischenspeicherungsbereich, der nun voll betriebsbereit (außerhalb des Wartungszeitfensters des Benutzers) ist. Ist dieser Vorgang abgeschlossen, wird die Zustandsmaschine für einen ausgedehnten Zeitraum (Tage oder Wochen) angehalten. Während dieses Zeitraums kann der Zustand der Speichereinrichtung auf zweierlei Weise modifiziert werden: zufällig, eine Art Störung aufgrund von Abnutzung oder anderen Umgebungsbedingungen, und normale Aktivität, wobei neue Funktionen aktiviert wurden, Speicherkapazität geändert wurde und Ähnliches.
-
In einer Ausführungsform können die zufälligen Probleme mittels einer ,intelligenten‘ periodischen Prüfung der Speichereinrichtung erfasst werden. Mit anderen Worten bedeutet dies, falls Probleme bei einem früheren Durchlauf erfasst jedoch nicht behoben worden sind, dass der Prozess mit der Implementierung des Rechenaufwandes einer erweiterten Diagnostik nicht fortfährt. Die Änderungen aufgrund normaler Aktivität werden erst dann erfasst, wenn der Betrieb der Zustandsmaschine durch ein Verwaltungssystem wieder aufgenommen wird. Dieses Verwaltungssystem kann dasselbe System oder ein anderes Verwaltungssystem in einer Multi-Head-Konfiguration gemäß vorstehender Beschreibung sein. Anschließend wird ein Delta (z.B. Unterschied zwischen der Zustandsänderung und der Aktualisierung) identifiziert und mit dem Zwischenspeicherungsbereich resynchronisiert, wodurch die Zustandsmaschine in einem exakten Zustand fortfahren kann, ohne dabei irgendeine der Verwaltungsaktivitäten einzuschränken.
-
Um den vorstehenden beispielhaften Prozess besser zu beschreiben, sollten die folgenden beispielhaften Einzelheiten eines solchen Prozesses beachtet werden. Erneut wird als erster Schritt ein Medium mit dem Codelevel erfasst. Die Medien können eingeführt oder auf andere Weise in Kommunikation mit der Einrichtung gebracht werden. Dieser Prozess kann beispielsweise von einem Benutzer, Servicepersonal oder über einen fernen Zugriff ausgeführt werden. Als nächsten Schritt überprüft die Zustandsmaschine die Codegültigkeit und Geeignetheit auf allen angeschlossenen virtualisierten Speichereinrichtungen. Wenn Kandidaten identifiziert sind, wird der Code in verschiedenen Zwischenspeicherungsbereichen der verschiedenen Hardware, Firmware und/oder Software in der Virtualisierungs-Engine und den virtuellen Speichereinrichtungen installiert. Zu diesem Zeitpunkt des Prozesses wird die gesamte Speichereinrichtung von der Zustandsmaschine als sich in einem gültigen Zustand befindlich erachtet.
-
Nach der Installation kann der Prozess über einen ausgedehnten Zeitraum (z.B. Wochen) in einen Ruhemodus eintreten. Jegliche zufällige Störung wird erfasst, und anschließend kann Support-Personal für deren Behebung benachrichtigt werden. Zu einer darauffolgenden Zeit kann der Prozess für eine Aktivierungsphase wiederaufgenommen werden, das Zustandsdelta wird identifiziert und auf dem Zwischenspeicherungsbereich korrigiert, und die Speichereinrichtung kann anschließend schnell den Zwischenspeicherungsbereich mit dem aktiven Bereich mit minimaler Unterbrechung austauschen.
-
Um die während des Ruhemodus auftretenden Zustandsänderungen aufzunehmen, sind auch hier wieder zwei Szenarien möglich. Für zufällige Änderungen kann Unterstützung zum Reparieren/Austauschen der fehlerhaften Komponente mitgeteilt werden. Ist die Reparatur abgeschlossen, befindet sich die Speichereinrichtung entweder in einem gültigen Zustand (dem gleichen wie vor dem Vorfall), oder es wird je nach Reparaturvorgehensweise eine modifizierte Konfiguration an ihr umgesetzt. Im ersten Fall braucht die Zustandsmaschine keine zusätzliche Aktivität auszuführen. Wenn durch die Reparatur jedoch das Austauschen einer oder mehrerer Komponenten verursacht wurde, kann ein Resynchronisierungssystem gemäß der folgenden Beschreibung für normale Aktivitätsänderungen implementiert werden.
-
Für normale Aktivitätsänderungen (z.B. Modifizierungen an der Speichereinrichtung, wie beispielsweise Hinzufügung von Hardware, Aktivierung von Lizenzschlüsseln, Änderungen der logischen Konfiguration, und Ähnliches) können beim erneuten Starten der Zustandsmaschine Unterschiede zwischen einem oder mehreren Zwischenspeicherungsbereichen vorliegen. Diese Unterschiede können anschließend analysiert und synchronisiert/resynchronisiert werden, wodurch der modifizierte Zustand in einen gültigen Zustand versetzt wird und der Aktualisierungsprozess fortgesetzt werden kann. Schließlich fährt, wenn keine Änderungen aufgetreten sind, wenn der Betrieb der Zustandsmaschine wieder aufgenommen wird, der Aktualisierungsprozess wie bisher fort.
-
In Bezug auf die folgende 3 wird ein beispielhaftes Verfahren 300 zum Aktualisieren wenigstens einer Einrichtung in einer Computerumgebung (wie beispielsweise eine Speichereinrichtung in einer Computer-Speicherumgebung) im Format eines Ablaufdiagramms veranschaulicht. Wie einem Fachmann ersichtlich sein wird, können verschiedene Schritte in dem Verfahren 300 auf unterschiedliche Weise implementiert werden, um die Anforderungen einer jeweiligen bestimmten Anwendung zu erfüllen. Darüber hinaus kann das beschriebene Verfahren 300 durch verschiedene Mittel, wie beispielsweise Hardware, Software, Firmware oder eine Kombination daraus für den Betrieb auf der Computerumgebung oder in einer anderen mit ihr assoziierten Weise implementiert werden. Beispielsweise kann das Verfahren 300 teilweise oder gänzlich als Computerprogrammprodukt implementiert werden, das ein von einem Computer lesbares Speichermedium mit darin enthaltenen, von einem Computer lesbaren Programmcodeabschnitten umfasst. Das von einem Computer lesbare Medium kann Plattenlaufwerke, Flash-Memory, Digital Versatile Discs (DVDs), Compact Discs (CDs) und andere Typen von Speichermedien umfassen.
-
Das Verfahren 300 beginnt (Schritt 302) mit Erfassen von Medien, die über das Codelevel verfügen, das für die Elemente in der jeweiligen Speichereinrichtung zu aktualisieren ist (Schritt 304). Die Codegültigkeit wird überprüft (Schritt 306), und eine Sequenz zum Verteilen des Codepaketes auf die Einrichtung wird gemäß den Zuständen einer festen Zustandsmaschine eingestellt (Schritt 308). Anschließend wird das Codepaket in einem Zwischenspeicherungsbereich installiert (Schritt 310), wo es in einem gültigen Ruhemodus gehalten wird, während die feste Zustandsmaschine anschließend angehalten wird (Schritt 312).
-
Während des Ruhemodus können, wie dies vorstehend angedeutet wurde, verschiedene Faktoren eine Änderung der Zustandsmaschine veranlassen, die vor der Wiederaufnahme des Betriebes der Zustandsmaschine adressiert werden sollte, um die Aktualisierung zu veranlassen. Sollte während dieses Zeitraums eine zufällige Zustandsänderung auftreten (wie beispielsweise eine Hardware-, Software-, oder Firmwarestörung, ein Fehler oder eine andere vorstehend beschriebene Änderung), und die Aktivität resultiert in einer Modifizierung der Konfiguration des aktualisierbaren Elementes (Schritt 318), dann wird der vorstehend beschriebene Synchronisations-/Resynchronisationsmechanismus implementiert, um Unterschiede zwischen der Einrichtung und dem Zwischenspeicherungsbereich zu analysieren und zu synchronisieren, um den modifizierten Zustand wieder zurück in einen gültigen Zustand zu bringen (Schritt 320).
-
Unter erneuter Bezugnahme auf Schritt 314 wird, wenn keine zufällige Zustandsänderung jedoch eine normale Aktivitätszustandsänderung auftritt (Schritt 316), was erneut in einer Modifizierung der Konfiguration des aktualisierbaren Elementes führt, der vorstehend beschriebene Synchronisationsmechanismus erneut implementiert (wieder Schritt 320). Wenn während des Ruhemodus weder eine zufällige noch eine normale Aktivitätszustandsänderung auftritt, wird nach einem sich anschließenden Zeitraum die feste Zustandsmaschine wieder in den Betrieb genommen, und das aktuelle Codepaket wird mit dem aktualisierten (in seinem gültigen Zustand) getauscht, um das neue Codepaket zu aktivieren.
-
Wie dem Fachmann ersichtlich sein wird, können Aspekte der vorliegenden Erfindung als System, Verfahren oder Computerprogrammprodukt ausgeführt werden. Dementsprechend können Aspekte der vorliegenden Erfindung als reine Hardware-Ausführungsform, reine Software-Ausführungsform (unter Anderem Firmware, residente Software, Mikrocode, usw.) oder als eine Ausführungsform ausgebildet sein, die Software- und Hardware-Aspekte kombiniert, die hierin allesamt gemeinhin als „Schaltung“, „Modul“ oder „System“ bezeichnet werden können. Des Weiteren können Aspekte der vorliegenden Erfindung als Computerprogrammprodukt ausgebildet sein, das in einem oder mehreren von einem Computer lesbaren Medium/Medien mit einem darin enthaltenen, von einem Computer lesbaren Programmcode, enthalten ist.
-
Es kann jede beliebige Kombination aus einem oder mehreren von einem Computer lesbaren Medium/Medien verwendet werden. Das von einem Computer lesbare Medium kann ein von einem Computer lesbares Signalmedium oder ein von einem Computer lesbares Speichermedium sein. Ein von einem Computer lesbares Speichermedium kann zum Beispiel unter Anderem ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, solche Vorrichtung oder Einheit oder jede beliebige geeignete Kombination der vorstehend Genannten sein. Konkretere Beispiele (eine ergänzbare Liste) des von einem Computer lesbaren Speichermediums würden die Folgenden umfassen: ein elektrischer Anschluss mit einem oder zwei Kabeln, eine tragbare Computerdiskette, eine Festplatte, ein Arbeitsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein elektronisch löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Memory), ein Glasfaserkabel, ein tragbarer CD-Nur-Lese-Speicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder jede beliebige Kombination der vorstehend Genannten. Im Kontext dieses Dokumentes kann ein von einem Computer lesbares Speichermedium jegliches materielle Medium sein, das ein Programm zur Verwendung durch ein oder im Zusammenhang mit einem Befehlsausführungssystem, einer solchen Vorrichtung oder Einheit enthalten oder speichern kann.
-
Ein in einem von einem Computer lesbaren Medium enthaltener Programmcode kann unter Verwendung eines jeden beliebigen geeigneten Mediums, unter Anderem kabellos, kabelbasiert, Glasfaserkabel, HF- usw. oder einer jeden beliebigen geeigneten Kombination der vorstehend Genannten gesendet werden. Der Computerprogrammcode zum Ausführen von Operationen für Aspekte der vorliegenden Erfindung kann in jeder beliebigen Kombination aus einer oder mehreren Programmiersprachen, unter Anderem einer objektorientierten Programmiersprache wie beispielsweise Java, Smalltalk, C++ oder Ähnliche und herkömmlichen prozeduralen Programmiersprachen wie beispielsweise die „C“-Programmiersprache oder ähnlichen Programmiersprachen geschrieben werden. Der Programmcode kann gänzlich auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als ein Standalone-Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder gänzlich auf dem fernen Computer oder Server ausgeführt werden. In dem letzten Szenario kann der ferne Computer über jede beliebige Art von Netz, unter Anderem lokales Netz (LAN) oder Weitverkehrsnetz (WAN), mit dem Computer des Benutzers verbunden sein, oder die Verbindung kann zu einem externen Computer (beispielsweise über das Internet unter Verwendung eines Internet-Service-Providers) hergestellt werden.
-
Nachstehend werden Aspekte der vorliegenden Erfindung in Bezug auf die Veranschaulichungen der Ablaufdiagramme und/oder die Blockdiagramme der Verfahren, Vorrichtungen (Systeme) und Computerprogrammprodukte gemäß Ausführungsformen der Erfindung beschrieben. Es wird offensichtlich sein, dass jeder Block der Veranschaulichungen der Ablaufdiagramme und/oder der Blockdiagramme sowie Kombinationen aus Blöcken in den Veranschaulichungen der Ablaufdiagramme und/oder der Blockdiagramme von Computerprogrammanweisungen umgesetzt werden können. Diese Computerprogrammanweisungen können einem Prozessor eines Mehrzweckcomputers, Spezialzweckcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung zur Herstellung einer Maschine bereitgestellt werden, und zwar so, dass mit den Anweisungen, die über den Prozessor des Computers oder anderen Datenverarbeitungsgerätes ausgeführt werden, Mittel zur Implementierung der in dem Ablaufdiagramm und/oder dem/den Block/Blöcken der Blockdiagramme spezifizierten Funktionen/Schritte geschaffen werden.
-
Diese Computerprogrammanweisungen können auch in einem von einem Computer lesbaren Medium gespeichert werden, die in der Lage sind, einen Computer, andere programmierbare Datenverarbeitungsvorrichtungen oder andere Einheiten anzuleiten, auf eine bestimmte Weise zu operieren, so dass die in dem von einem Computer lesbaren Medium gespeicherten Anweisungen einen Herstellungsartikel produzieren, der die Anweisungen enthält, mit denen die/der in dem Ablaufdiagramm und/oder dem/den Block oder Blöcken der Blockdiagramme spezifizierte Funktion/Schritt implementiert werden. Die Computerprogrammanweisungen können auch auf einen Computer, andere programmierbare Datenverarbeitungsvorrichtungen oder andere Einheiten geladen werden, um eine Reihe von Arbeitsschritten zu veranlassen, die auf dem Computer, anderen programmierbaren Datenverarbeitungsvorrichtungen oder anderen Einheiten auszuführen sind, um ein computerimplementiertes Verfahren so zu schaffen, dass die Anweisungen, die auf dem Computer oder anderen programmierbaren Vorrichtungen ausgeführt werden, Prozesse zum Implementieren der in dem Ablaufdiagramm und/oder dem/den Block oder Blöcken des Blockdiagramms spezifizierten Funktionen/Schritte bereitstellen.
-
Der Ablaufplan und das Blockdiagramm in den vorstehend genannten Figuren veranschaulichen die Architektur, Funktionen und Betriebsweise möglicher Implementierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedener Ausführungsformen der vorliegenden Erfindung. In dieser Hinsicht kann jeder Block in dem Ablaufplan oder Blockdiagrammen ein Modul, Segment oder Codeabschnitt darstellen, welcher eine oder mehrere ausführbare Anweisungen zum Umsetzen der beschriebenen logischen Funktion(en) umfasst. Darüber hinaus sollte berücksichtigt werden, dass in einigen alternativen Ausführungsformen die in dem Block vermerkten Funktionen abweichend von der in den Figuren angemerkten Reihenfolge erscheinen können. So können beispielsweise zwei nacheinander dargestellte Blöcke tatsächlich gleichzeitig ausgeführt werden, oder die Blöcke können mitunter auch in der umgekehrten Reihenfolge ausgeführt werden, je nach Funktion, um die es sich handelt. Es wird darüber hinaus ersichtlich sein, dass jeder Block der Veranschaulichungen der Blockdiagramme und/oder Ablaufpläne sowie Kombinationen von Blöcken in den Veranschaulichungen der Blockdiagramme und/oder Ablaufpläne von auf Hardware basierenden Spezialsystemen oder Kombinationen aus Spezialhardware und Computeranweisungen implementiert werden können, die die beschriebenen Funktionen oder Schritte ausführen.