DE112011100262B4 - Aktualisieren von Elementen in einer Datenspeichereinrichtung unter Verwendung einer vordefinierten Zustandsmaschine über einen ausgedehnten Zeitraum - Google Patents

Aktualisieren von Elementen in einer Datenspeichereinrichtung unter Verwendung einer vordefinierten Zustandsmaschine über einen ausgedehnten Zeitraum Download PDF

Info

Publication number
DE112011100262B4
DE112011100262B4 DE112011100262.9T DE112011100262T DE112011100262B4 DE 112011100262 B4 DE112011100262 B4 DE 112011100262B4 DE 112011100262 T DE112011100262 T DE 112011100262T DE 112011100262 B4 DE112011100262 B4 DE 112011100262B4
Authority
DE
Germany
Prior art keywords
code
state machine
fixed state
change
hardware
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE112011100262.9T
Other languages
English (en)
Other versions
DE112011100262T5 (de
Inventor
Mario SWEENEY
Franck Excoffier
Michael Paul Groover
Andreas Bernardus Koster
Edward Hsiu-Wei Lin
Xu Han
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112011100262T5 publication Critical patent/DE112011100262T5/de
Application granted granted Critical
Publication of DE112011100262B4 publication Critical patent/DE112011100262B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Hardware Redundancy (AREA)
  • Navigation (AREA)

Abstract

Verfahren zum Aktualisieren wenigstens einer Einrichtung in einer Computer-Speicherumgebung mit einer Hardware und/oder Software und/oder Firmware durch eine Prozessoreinheit, das Folgendes umfasst:- Einstellen einer Sequenz zum Verteilen wenigstens eines einer Vielzahl von Codepaketen auf die wenigstens eine Einrichtung gemäß unterschiedlichen Zuständen einer festen Zustandsmaschine;- Installieren (310) 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;- Erfassen einer Änderung der Hardware und/oder Software und/oder Firmware;- Feststellen (314), ob die Änderung der Hardware und/oder Software und/oder Firmware eine zufällige Änderung der festen Zustandsmaschine ist, wobei eine Konfiguration eines aktualisierbaren Elementes modifiziert (318) ist, wobei die wenigstens eine Einrichtung das aktualisierbare Element umfasst;- auf der Grundlage des Feststellens, dass die Änderung der Hardware und/oder Software und/oder Firmware keine zufällige Änderung ist, Feststellen (316), ob die Änderung der Hardware und/oder Software und/oder Firmware aufgrund einer normalen Aktivität durchgeführt ist, wobei die Konfiguration des aktualisierbaren Elementes modifiziert ist;- als Reaktion auf das Modifizieren der Konfiguration des aktualisierbaren Elements: Analysieren und Synchronisieren (320) eines Unterschieds zwischen der wenigstens einen Einrichtung und dem wenigstens einen Zwischenspeicherungsbereich, um die feste Zustandsmaschine zurück in einen gültigen Zustand zu bringen; und- entsprechend einer Wiederaufnahme (322) des Betriebes der festen Zustandsmaschine zu einer darauffolgenden Zeit, nachdem die feste Zustandsmaschine in den gültigen Zustand gebracht ist, 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.

Description

  • 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.

Claims (26)

  1. Verfahren zum Aktualisieren wenigstens einer Einrichtung in einer Computer-Speicherumgebung mit einer Hardware und/oder Software und/oder Firmware durch eine Prozessoreinheit, das Folgendes umfasst: - Einstellen einer Sequenz zum Verteilen wenigstens eines einer Vielzahl von Codepaketen auf die wenigstens eine Einrichtung gemäß unterschiedlichen Zuständen einer festen Zustandsmaschine; - Installieren (310) 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; - Erfassen einer Änderung der Hardware und/oder Software und/oder Firmware; - Feststellen (314), ob die Änderung der Hardware und/oder Software und/oder Firmware eine zufällige Änderung der festen Zustandsmaschine ist, wobei eine Konfiguration eines aktualisierbaren Elementes modifiziert (318) ist, wobei die wenigstens eine Einrichtung das aktualisierbare Element umfasst; - auf der Grundlage des Feststellens, dass die Änderung der Hardware und/oder Software und/oder Firmware keine zufällige Änderung ist, Feststellen (316), ob die Änderung der Hardware und/oder Software und/oder Firmware aufgrund einer normalen Aktivität durchgeführt ist, wobei die Konfiguration des aktualisierbaren Elementes modifiziert ist; - als Reaktion auf das Modifizieren der Konfiguration des aktualisierbaren Elements: Analysieren und Synchronisieren (320) eines Unterschieds zwischen der wenigstens einen Einrichtung und dem wenigstens einen Zwischenspeicherungsbereich, um die feste Zustandsmaschine zurück in einen gültigen Zustand zu bringen; und - entsprechend einer Wiederaufnahme (322) des Betriebes der festen Zustandsmaschine zu einer darauffolgenden Zeit, nachdem die feste Zustandsmaschine in den gültigen Zustand gebracht ist, 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.
  2. Verfahren nach Anspruch 1, das des Weiteren Identifizieren der wenigstens einen Einrichtung als Aktualisierungskandidat umfasst.
  3. Verfahren nach Anspruch 1 oder 2, das des Weiteren periodisches Durchführen eines Prüfverfahrens an der wenigstens einen Einrichtung umfasst.
  4. Verfahren nach Anspruch 3, das des Weiteren, entsprechend dem periodischen Durchführen des Prüfverfahrens an der wenigstens einen Einrichtung, Erfassen einer Modifizierung an der wenigstens einen Einrichtung umfasst.
  5. Verfahren nach Anspruch 4, wobei das Erfassen der Modifizierung an der wenigstens einen Einrichtung des Weiteren Erfassen einer Hardware-Hinzufügung und/oder Erfassen einer Lizenzaktivierung und/oder Erfassen einer Änderung der logischen Konfiguration umfasst.
  6. Verfahren nach Anspruch 4 oder 5, das des Weiteren, entsprechend dem Erfassen der Modifizierung an der wenigstens einen Einrichtung, Identifizieren wenigstens eines Unterschiedes zwischen dem wenigstens einen der Vielzahl an Codepaketen und einem aktuellen Codelevel in der wenigstens einen Einrichtung umfasst.
  7. Verfahren nach Anspruch 6, das des Weiteren, entsprechend dem Identifizieren wenigstens eines Unterschiedes zwischen dem wenigstens einen der Vielzahl an Codepaketen und einem aktuellen Codelevel in der wenigstens einen Einrichtung, Synchronisieren des wenigstens einen der Vielzahl von Codepaketen in dem wenigstens einen Zwischenspeicherungsbereich und des aktuellen Codelevels in der wenigstens einen Einrichtung umfasst.
  8. Verfahren nach Anspruch 7, das des Weiteren, anschließend an das Synchronisieren des wenigstens einen der Vielzahl von Codepaketen in dem wenigstens einen Zwischenspeicherungsbereich und des aktuellen Codelevels in der wenigstens einen Einrichtung, Durchführen der Wiederaufnahme des Betriebes der festen Zustandsmaschine umfasst.
  9. System zum Aktualisieren wenigstens einer Einrichtung in einer Computer-Speicherumgebung mit einer Hardware und/oder Software und/oder Firmware, wobei die wenigstens eine Einrichtung ein aktualisierbares Element umfasst, 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 (310) 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, - Erfassen einer Änderung der Hardware und/oder Software und/oder Firmware, - Feststellen (314), ob die Änderung der Hardware und/oder Software und/oder Firmware eine zufällige Änderung der festen Zustandsmaschine ist, wobei eine Konfiguration eines aktualisierbaren Elementes modifiziert (318) ist, - auf der Grundlage des Feststellens, dass die Änderung der Hardware und/oder Software und/oder Firmware keine zufällige Änderung ist, Feststellen (316), ob die Änderung der Hardware und/oder Software und/oder Firmware aufgrund einer normalen Aktivität durchgeführt ist, wobei die Konfiguration des aktualisierbaren Elementes modifiziert ist, - als Reaktion auf das Modifizieren der Konfiguration des aktualisierbaren Elements: Analysieren und Synchronisieren (320) eines Unterschieds zwischen der wenigstens einen Einrichtung und dem wenigstens einen Zwischenspeicherungsbereich, um die feste Zustandsmaschine zurück in einen gültigen Zustand zu bringen, und - entsprechend einer Wiederaufnahme (322) des Betriebes der festen Zustandsmaschine zu einer darauffolgenden Zeit, nachdem die feste Zustandsmaschine in den gültigen Zustand gebracht ist, 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.
  10. System nach Anspruch 9, wobei die wenigstens eine Prozessoreinheit des Weiteren zum Identifizieren der wenigstens einen Einrichtung als Aktualisierungskandidat geeignet ist.
  11. System nach Anspruch 9 oder 10, wobei die wenigstens eine Prozessoreinheit des Weiteren zum periodischen Durchführen eines Prüfverfahrens an der wenigstens einen Einrichtung geeignet ist.
  12. System nach Anspruch 11, wobei die wenigstens eine Prozessoreinheit des Weiteren geeignet ist, entsprechend dem Durchführen des Prüfverfahrens an der wenigstens einen Einrichtung, eine Modifizierung an der wenigstens einen Einrichtung zu erfassen.
  13. System nach Anspruch 12, wobei die wenigstens eine Prozessoreinheit des Weiteren geeignet ist, entsprechend dem Erfassen der Modifizierung an der wenigstens einen Einrichtung, ein Erfassen einer Hardware-Hinzufügung und/oder Erfassen einer Lizenzaktivierung und/oder Erfassen einer Änderung der logischen Konfiguration durchzuführen.
  14. System nach Anspruch 12 oder 13, wobei die wenigstens eine Prozessoreinheit des Weiteren geeignet ist, entsprechend dem Erfassen der Modifizierung an der wenigstens einen Einrichtung, wenigstens einen Unterschied zwischen dem wenigstens einen der Vielzahl von Codepaketen und einem aktuellen Codelevel in der wenigstens einen Einrichtung zu identifizieren.
  15. System nach Anspruch 14, wobei die wenigstens eine Prozessoreinheit des Weiteren geeignet ist, entsprechend dem Identifizieren wenigstens eines Unterschiedes zwischen dem wenigstens einen der Vielzahl von Codepaketen und einem aktuellen Codelevel in der wenigstens einen Einrichtung, das wenigstens eine der Vielzahl von Codepaketen in dem wenigstens einen Zwischenspeicherungsbereich und den aktuellen Codelevel in der wenigstens einen Einrichtung zu synchronisieren.
  16. System nach Anspruch 15, wobei die wenigstens eine Prozessoreinheit des Weiteren geeignet ist, anschließend an das Synchronisieren des wenigstens einen der Vielzahl von Codepaketen in dem wenigstens einen Zwischenspeicherungsbereich und des aktuellen Codelevels in der wenigstens einen Einrichtung, die Wiederaufnahme des Betriebs der festen Zustandsmaschine durchzuführen.
  17. System nach Anspruch 9, wobei die wenigstens eine Einrichtung eine Computer- Speichereinrichtung ist und die wenigstens eine Prozessoreinheit als wenigstens ein Abschnitt einer Serviceprozessor-Gruppe in der Computer-Speichereinrichtung betrieben werden kann.
  18. Computerprogrammprodukt zum Aktualisieren wenigstens einer Einrichtung in einer Computer-Speicherumgebung durch eine Prozessoreinheit, wobei das Computerprogrammprodukt ein von einem Computer lesbares Speichermedium mit darin enthaltenen, von einem Computer lesbaren Programmcodeabschnitten umfasst, 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äß unterschiedlichen Zuständen einer festen Zustandsmaschine; - einen zweiten ausführbaren Abschnitt zum Installieren (310) 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; - einen dritten ausführbaren Abschnitt zum Erfassen einer Änderung der Hardware und/oder Software und/oder Firmware; - einen vierten ausführbaren Abschnitt zum Feststellen (314), ob die Änderung der Hardware und/oder Software und/oder Firmware eine zufällige Änderung der festen Zustandsmaschine ist, wobei eine Konfiguration eines aktualisierbaren Elementes modifiziert (318) ist, wobei die wenigstens eine Einrichtung das aktualisierbare Element umfasst; - einen fünften ausführbaren Abschnitt zum, auf der Grundlage des Feststellens, dass die Änderung der Hardware und/oder Software und/oder Firmware keine zufällige Änderung der festen Zustandsmaschine ist, Feststellen (316), ob die Änderung der Hardware und/oder Software und/oder Firmware aufgrund einer normalen Aktivität durchgeführt ist, wobei die Konfiguration des aktualisierbaren Elementes modifiziert ist; - einen sechsten ausführbaren Abschnitt zum, als Reaktion auf das Modifizieren der Konfiguration des aktualisierbaren Elements: Analysieren und Synchronisieren (320) eines Unterschieds zwischen der wenigstens einen Einrichtung und dem wenigstens einen Zwischenspeicherungsbereich, um die feste Zustandsmaschine zurück in einen gültigen Zustand zu bringen; und - einen siebten ausführbaren Abschnitt, um entsprechend einer Wiederaufnahme (322) 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.
  19. Computerprogrammprodukt nach Anspruch 18, das des Weiteren einen vierten ausführbaren Abschnitt zum Identifizieren der wenigstens einen Einrichtung als Aktualisierungskandidat umfasst.
  20. Computerprogrammprodukt nach Anspruch 18 oder 19, das des Weiteren einen fünften ausführbaren Abschnitt zum, entsprechend dem Identifizieren der wenigstens einen Einrichtung als Aktualisierungskandidat, periodischen Durchführen eines Prüfverfahrens an der wenigstens einen Einrichtung umfasst.
  21. Computerprogrammprodukt nach Anspruch 20, das des Weiteren einen sechsten ausführbaren Abschnitt zum, entsprechend dem Durchführen des Prüfverfahrens an der wenigstens einen Einrichtung, Erfassen einer Modifizierung an der wenigstens einen Einrichtung umfasst.
  22. Computerprogrammprodukt nach Anspruch 21, das des Weiteren einen siebenten ausführbaren Abschnitt zum, entsprechend dem Erfassen der Modifizierung an der wenigstens einen Einrichtung, Identifizieren wenigstens eines Unterschiedes zwischen dem wenigstens einen der Vielzahl von Codepaketen und einem aktuellen Codelevel in der wenigstens einen Einrichtung umfasst.
  23. Computerprogrammprodukt nach Anspruch 21 oder 22, das des Weiteren einen achten ausführbaren Abschnitt zum, entsprechend dem Identifizieren wenigstens eines Unterschiedes zwischen dem wenigstens einen der Vielzahl von Codepaketen und dem aktuellen Codelevel in der wenigstens einen Einrichtung, Synchronisieren des wenigstens einen der Vielzahl von Codepaketen in dem wenigstens einen Zwischenspeicherungsbereich und des aktuellen Codelevels in der wenigstens einen Einrichtung umfasst.
  24. Computerprogrammprodukt nach Anspruch 23, das des Weiteren einen neunten ausführbaren Abschnitt zum, entsprechend dem Identifizieren des wenigstens einen Unterschiedes zwischen dem wenigstens einen der Vielzahl von Codepaketen und dem aktuellen Codelevel in der wenigstens einen Einrichtung, Synchronisieren des wenigstens einen der Vielzahl von Codepaketen in dem wenigstens einen Zwischenspeicherungsbereich und des aktuellen Codelevels in der wenigstens einen Einrichtung umfasst.
  25. Computerprogrammprodukt nach Anspruch 24, das des Weiteren einen zehnten ausführbaren Abschnitt zum, anschließend an das Synchronisieren des wenigstens einen der Vielzahl von Codepaketen in dem wenigstens einen Zwischenspeicherungsbereich und des aktuellen Codelevels in der wenigstens einen Einrichtung, Durchführen der Wiederaufnahme des Betriebes der festen Zustandsmaschine umfasst.
  26. Computerprogramm, 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 des Verfahrens gemäß jedem beliebigen der Ansprüche 1 bis 8.
DE112011100262.9T 2010-04-29 2011-04-19 Aktualisieren von Elementen in einer Datenspeichereinrichtung unter Verwendung einer vordefinierten Zustandsmaschine über einen ausgedehnten Zeitraum Active DE112011100262B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/769,763 US8881134B2 (en) 2010-04-29 2010-04-29 Updating elements in data storage facility using predefined state machine over extended time period
US12/769,763 2010-04-29
PCT/EP2011/056217 WO2011134842A1 (en) 2010-04-29 2011-04-19 Updating elements in data storage facility using predefined state machine over extended time period

Publications (2)

Publication Number Publication Date
DE112011100262T5 DE112011100262T5 (de) 2013-05-08
DE112011100262B4 true DE112011100262B4 (de) 2020-10-01

Family

ID=44261713

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112011100262.9T Active DE112011100262B4 (de) 2010-04-29 2011-04-19 Aktualisieren von Elementen in einer Datenspeichereinrichtung unter Verwendung einer vordefinierten Zustandsmaschine über einen ausgedehnten Zeitraum

Country Status (5)

Country Link
US (3) US8881134B2 (de)
DE (1) DE112011100262B4 (de)
GB (1) GB2492676B (de)
TW (1) TW201209716A (de)
WO (1) WO2011134842A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7802243B1 (en) * 2006-04-20 2010-09-21 Open Invention Network Llc System and method for server customization
US8881134B2 (en) * 2010-04-29 2014-11-04 International Business Machines Corporation Updating elements in data storage facility using predefined state machine over extended time period
US8775691B1 (en) 2012-12-18 2014-07-08 International Business Machines Corporation Detecting firmware version for an input/output adapter
US9710250B2 (en) 2013-03-15 2017-07-18 Microsoft Technology Licensing, Llc Mechanism for safe and reversible rolling upgrades
US9317520B2 (en) 2013-07-30 2016-04-19 International Business Machines Corporation State scope data file sharing
US11023591B2 (en) 2019-01-14 2021-06-01 Nxp B.V. Data processing system having distributed security controller with local control and method for securing the data processing system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060069849A1 (en) * 2004-09-30 2006-03-30 Rudelic John C Methods and apparatus to update information in a memory
US20060106826A1 (en) * 2004-11-18 2006-05-18 International Business Machines Corporation Updating elements in a data storage facility using a predefined state machine, with serial activation
US20060130046A1 (en) * 2000-11-17 2006-06-15 O'neill Patrick J System and method for updating and distributing information

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4814979A (en) * 1981-04-01 1989-03-21 Teradata Corporation Network to transmit prioritized subtask pockets to dedicated processors
US5465361A (en) * 1990-09-10 1995-11-07 The Regents Of The University Of California Microcode linker/loader that generates microcode sequences for MRI sequencer by modifying previously generated microcode sequences
US5410703A (en) * 1992-07-01 1995-04-25 Telefonaktiebolaget L M Ericsson System for changing software during computer operation
US5713024A (en) * 1994-06-10 1998-01-27 Exabyte Corporation Cold boot data backup system
US5870539A (en) * 1996-07-01 1999-02-09 Sun Microsystems, Inc. Method for generalized windows application install testing for use with an automated test tool
US6151657A (en) * 1996-10-28 2000-11-21 Macronix International Co., Ltd. Processor with embedded in-circuit programming structures
US5971851A (en) * 1996-12-27 1999-10-26 Silicon Gaming, Inc. Method and apparatus for managing faults and exceptions
US6397242B1 (en) 1998-05-15 2002-05-28 Vmware, Inc. Virtualization system including a virtual machine monitor for a computer with a segmented architecture
US6301708B1 (en) 1998-11-12 2001-10-09 Hewlett-Packard Company Software installation process using abstract data and program files
US6324691B1 (en) * 1998-11-12 2001-11-27 Hewlett-Packard Company Manufacture of software distribution media packages from components resident on a remote server source
US6308326B1 (en) * 1999-01-08 2001-10-23 Apple Computer, Inc. Run-time modules for dynamically adjusting computer operation
US6484315B1 (en) * 1999-02-01 2002-11-19 Cisco Technology, Inc. Method and system for dynamically distributing updates in a network
US6321350B1 (en) * 1999-02-22 2001-11-20 International Business Machines Corporation Method and apparatus for error detection using a queued direct Input-Output device
US6438749B1 (en) * 1999-03-03 2002-08-20 Microsoft Corporation Method and system for restoring a computer to its original state after an unsuccessful patch installation attempt
US6269480B1 (en) * 1999-03-29 2001-07-31 International Business Machines Corporation Cross platform installer-with the ability to create platform independent variables of specific operating system variables from a scripting language
US6457122B1 (en) * 1999-06-18 2002-09-24 Phoenix Technologies Ltd. Fault tolerant process for the delivery of programs to writeable storage device utilizing pre-operating system software/firmware
US6324692B1 (en) * 1999-07-28 2001-11-27 Data General Corporation Upgrade of a program
US6507948B1 (en) * 1999-09-02 2003-01-14 International Business Machines Corporation Method, system, and program for generating batch files
US6718407B2 (en) * 1999-09-30 2004-04-06 Intel Corporation Multiplexer selecting one of input/output data from a low pin count interface and a program information to update a firmware device from a communication interface
US6496977B1 (en) * 1999-10-21 2002-12-17 International Business Machines Corporation Method and system for implementing network filesystem-based aid for computer operating system upgrades
EP1096374A2 (de) 1999-11-01 2001-05-02 Citicorp Development Center, Inc. Verfahren und System für simultane und unüberwachte Installierung von Software auf einen finanziellen Selbstbedienungstransaktionsterminal
US6606744B1 (en) * 1999-11-22 2003-08-12 Accenture, Llp Providing collaborative installation management in a network-based supply chain environment
US6536038B1 (en) * 1999-11-29 2003-03-18 Intel Corporation Dynamic update of non-upgradeable memory
US7574481B2 (en) * 2000-12-20 2009-08-11 Microsoft Corporation Method and system for enabling offline detection of software updates
EP1370950B1 (de) * 2001-02-13 2017-12-27 NetApp, Inc. System und verfahren für die bereitstellung und das management von speicherung auf richtlinienbasis
US20020144256A1 (en) * 2001-03-30 2002-10-03 Navin Budhiraja Method of deployment for concurrent execution of multiple versions of an integration model on an integration server
US7174547B2 (en) 2002-03-25 2007-02-06 Ciena Corporation Method for updating and restoring operating software in an active region of a network element
US7203940B2 (en) * 2002-04-29 2007-04-10 Hewlett-Packard Development Company, Lp. Automated installation of an application
US20030237081A1 (en) * 2002-06-21 2003-12-25 Taylor Keith M. Updating an application using database replication
US7191437B1 (en) * 2003-04-23 2007-03-13 Network Appliance, Inc. System and method for reliable disk firmware update within a networked storage fabric
JP2007507016A (ja) * 2003-06-24 2007-03-22 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング シリアルインターフェイスを介したフラッシュプログラミングによる電子制御装置のソフトウェアアップデート方法およびこれに対応する状態自動装置
AU2003270322A1 (en) * 2003-09-05 2005-04-21 Itron, Inc. Synchronizing and controlling software downloads, such as for utility meter-reading data collection and processing
US7392520B2 (en) * 2004-02-27 2008-06-24 Lucent Technologies Inc. Method and apparatus for upgrading software in network bridges
US7546596B2 (en) * 2004-03-29 2009-06-09 International Business Machines Corporation Non-disruptive method, system and program product for overlaying a first software module with a second software module
US7827544B2 (en) 2004-11-18 2010-11-02 International Business Machines Corporation Updating elements in a data storage facility using a predefined state machine, with parallel activation
US8108579B2 (en) 2005-03-31 2012-01-31 Qualcomm Incorporated Mechanism and method for managing data storage
US7548911B2 (en) * 2005-05-28 2009-06-16 Microsoft Corporation Diagnosing problems in distributed systems
US20060282831A1 (en) * 2005-05-31 2006-12-14 Maria Toeroe Method and hardware node for customized upgrade control
US7581029B2 (en) * 2005-06-20 2009-08-25 Intel Corporation Updating machines while disconnected from an update source
CA2623439A1 (en) * 2005-09-22 2007-04-05 Mocana Corporation Embedded patch management
US7509654B2 (en) 2005-09-29 2009-03-24 Avaya Inc. Data-driven and plug-in defined event engine
US7823145B1 (en) 2006-03-31 2010-10-26 Vmware, Inc. Updating software on dormant disks
RU2419226C2 (ru) * 2006-03-31 2011-05-20 Квэлкомм Инкорпорейтед Управление памятью для высокоскоростного управления доступом к среде
US7991866B2 (en) * 2006-08-18 2011-08-02 Control4 Corporation Systems and methods for updating a site
US8645948B2 (en) * 2006-12-12 2014-02-04 Qualcomm Incorporated Apparatus and methods for client-driven server-side installation
US7685461B2 (en) 2006-12-20 2010-03-23 International Business Machines Corporation 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
US7661018B2 (en) 2006-12-21 2010-02-09 International Business Machines Corporation Method, apparatus and program storage device for providing automatic recovery from premature reboot of a system during a concurrent upgrade
US20090113408A1 (en) * 2007-10-30 2009-04-30 Telefonaktiebolaget Lm Ericsson (Publ) System synchronization in cluster
US20090199175A1 (en) * 2008-01-31 2009-08-06 Microsoft Corporation Dynamic Allocation of Virtual Application Server
US8881134B2 (en) * 2010-04-29 2014-11-04 International Business Machines Corporation Updating elements in data storage facility using predefined state machine over extended time period

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060130046A1 (en) * 2000-11-17 2006-06-15 O'neill Patrick J System and method for updating and distributing information
US20060069849A1 (en) * 2004-09-30 2006-03-30 Rudelic John C Methods and apparatus to update information in a memory
US20060106826A1 (en) * 2004-11-18 2006-05-18 International Business Machines Corporation Updating elements in a data storage facility using a predefined state machine, with serial activation

Also Published As

Publication number Publication date
WO2011134842A1 (en) 2011-11-03
US8959505B2 (en) 2015-02-17
US20150160941A1 (en) 2015-06-11
GB201215239D0 (en) 2012-10-10
TW201209716A (en) 2012-03-01
US20110271267A1 (en) 2011-11-03
GB2492676B (en) 2016-08-17
US9600265B2 (en) 2017-03-21
DE112011100262T5 (de) 2013-05-08
US8881134B2 (en) 2014-11-04
US20120222026A1 (en) 2012-08-30
GB2492676A (en) 2013-01-09

Similar Documents

Publication Publication Date Title
DE112011100262B4 (de) Aktualisieren von Elementen in einer Datenspeichereinrichtung unter Verwendung einer vordefinierten Zustandsmaschine über einen ausgedehnten Zeitraum
US20200183896A1 (en) Upgrade of heterogeneous multi-instance database clusters
CN104516943B (zh) 用于阻止数据库计算系统中的事务暂停的方法和系统
DE602005005610T2 (de) Planungs- und Implementierungssystem für eine externe Disaster-Recovery mit einem virtuellen Band eines Datenzentrums
DE112011100112B4 (de) Pufferspeicher-platte in blitzkopie-kaskade
DE102016105589A1 (de) Anwenden von Firmware-Updates in einem System mit Null-Stillstandszeit durch wahlweise Abschalten und Einschalten von Hardware unter Verwenden einer Hypervisor-Schicht
DE102013218341B4 (de) Ersatzweise Verlagerung von Threads (Thread-Sparing) zwischen Berechnungskernen in einem Multithread-Prozessor
DE112012000693T5 (de) Ausführen einer Vielzahl von Instanzen einer Anwendung
DE112013000369T5 (de) Verwaltung von Threads innerhalb einer Datenverarbeitungsumgebung
DE102016103769A1 (de) Inkrementelle Replikation eines Quellen-Datasets
DE202015101633U1 (de) Computersystem und Speichervorrichtung
US20130227542A1 (en) Version conflict checking to installable unit
DE112010004140B4 (de) Dynamischer Austausch von Replikat-Datenträgern in einem Verbund
DE112015000384T5 (de) Erhöhen der Zuverlässigkeit in einem verteilten Speichersystem
DE112013000330T5 (de) In-Situ-Neubewertung von Prozessoren
CN115145697B (zh) 数据库事务的处理方法、装置及电子设备
US7970736B2 (en) System, method and computer program product for storing transient state information
DE202015101904U1 (de) Computersystem und Speichervorrichtung zum Aktualisieren von Firmwarekomponenten
DE112014000340T5 (de) Vorablesezugriff auf Daten für einen Chip mit einem übergeordneten Kern und einem Scout-Kern
DE112017003052T5 (de) Steuerungssystem mit einer verteilten dienstorientierten Architektur
US20100106749A1 (en) Reorganizing table-based data objects
CN109445800A (zh) 一种基于分布式系统的版本自动部署方法及系统
US10514988B2 (en) Method and system of migrating applications to a cloud-computing environment
DE112019001744T5 (de) Verarbeiten von streaming-daten mit mehreren caches
DE102022108636A1 (de) Lebenszyklusmanagement für workloads in heterogenen infrastrukturen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0009445000

Ipc: G06F0008650000

R084 Declaration of willingness to licence
R020 Patent grant now final