DE112011104356B4 - Aktualisieren von Software-Images auf der Grundlage von Streaming-Technik - Google Patents

Aktualisieren von Software-Images auf der Grundlage von Streaming-Technik Download PDF

Info

Publication number
DE112011104356B4
DE112011104356B4 DE112011104356.2T DE112011104356T DE112011104356B4 DE 112011104356 B4 DE112011104356 B4 DE 112011104356B4 DE 112011104356 T DE112011104356 T DE 112011104356T DE 112011104356 B4 DE112011104356 B4 DE 112011104356B4
Authority
DE
Germany
Prior art keywords
software image
memory
target software
memory block
image
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
DE112011104356.2T
Other languages
English (en)
Other versions
DE112011104356T5 (de
Inventor
Marc Vuilleumier Stueckelberg
Claudio Marinelli
Jacques Fontignie
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 DE112011104356T5 publication Critical patent/DE112011104356T5/de
Application granted granted Critical
Publication of DE112011104356B4 publication Critical patent/DE112011104356B4/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/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories

Landscapes

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

Abstract

Verfahren (300) zum Migrieren einer Datenverarbeitungs-Entität (100) von einem auf einem Massenspeicher (130) der Datenverarbeitungs-Entität installierten Quellsoftware-Image (205s) zu einem auf einer externen Quelle (225) gespeicherten Zielsoftware-Image, wobei jedes Software-Image eine Mehrzahl von Speicherblöcken aufweist, von denen jeder eine entsprechende Image-Adresse innerhalb des Software-Image besitzt, und der Massenspeicher eine Mehrzahl von Speicherorten enthält, von denen jeder zum Speichern eines Speicherblocks dient, und der Speicherort eine entsprechende Speicheradresse innerhalb des Massenspeichers besitzt, wobei das Verfahren die Schritte beinhaltet des: Freigebens (306) eines Bereichs des Massenspeichers, Herunterladens eines Satzes von Startblöcken des Zielsoftware-Images von der externen Quelle (225), Verlagerns (310) von Speicherblöcken des Quellsoftware-Image in den freigegebenen Bereich des Massenspeichers, Speicherns des heruntergeladenen Satzes von Startblöcken des Zielsoftware-Images an Startorte des Massenspeichers, wobei es sich bei den Startorten um diejenigen Speicherorte handelt, deren Speicheradressen gleich den Image-Adressen von Startblöcken des Zielsoftware-Images sind, welche die Speicherblöcke enthalten, die zum Starten der Datenverarbeitungs-Entität erforderlich sind, um eine zum Herunterladen des Zielsoftware-Image von der externen Quelle eingerichtete Streaming-Funktion (215) zu laden, wobei die Startblöcke des Zielsoftware-Images auf dem Massenspeicher für eine Startsequenz des Zielsoftware-Images geeignet angeordnet sind, Re-Booten (316) der Datenverarbeitungs-Entität von den Startblöcken an den entsprechenden Startorten, wobei die Streaming-Funktion geladen wird, ...

Description

  • Technisches Gebiet
  • Die Lösung gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung betrifft das Gebiet der Datenverarbeitung, insbesondere Migrieren einer Datenverarbeitungs-Entität. Genauer betrifft diese Lösung die Migration von Software-Images.
  • Hintergrund
  • Bei der Migration von Software-Images handelt es sich um eine alltägliche Aktivität bei modernen Datenverarbeitungssystemen; allgemein ausgedrückt handelt es sich bei einem Software-Image um eine Struktur, die auf einem Massenspeicher eines Computers installierte Softwaremodule (zum Beispiel sein Betriebssystem, Anwendungsprogramme und/oder Daten) enthält. Ein typisches Szenario stellt zum Beispiel das Aktualisieren des Computers dar, um sein Betriebssystem auf eine neue Version heraufzustufen (upgrade).
  • Eine Standard-Migrationsprozedur, die auf einen Wechsel von einem aktuell auf dem Computer installierten Betriebssystem (als Quellbetriebssystem bezeichnet) zu einem anderen Betriebssystem (als Zielbetriebssystem bezeichnet) abzielt, umfasst allgemein die folgenden Schritte. Zuerst wird eine Momentaufnahme (snapshot) des Computers erstellt und auf einer externen Einheit (z. B. einer Wechselplatte oder einem entfernt angeordneten Server) gespeichert. Dann wird ein Migrationswerkzeug ausgeführt, um Konfigurationsinformationen des Computers zu sammeln (die ebenfalls auf einer externen Einheit gespeichert werden). An diesem Punkt ist es möglich, das Zielbetriebssystem auf dem Computer zu installieren. Dann wird das Migrationswerkzeug erneut ausgeführt, um die gespeicherten Konfigurationsinformationen auf das Zielbetriebssystem anzuwenden. Im Falle von beim Zielbetriebssystem auftretenden Problemen (zum Beispiel eines nicht korrekten Betriebs des Computers) wird die Momentaufnahme des Quellbetriebssystems auf dem Computer wiederhergestellt, um zu dessen ursprünglichem Zustand zurückzukehren.
  • Bei der vorstehend beschriebenen Migrationsprozedur treten jedoch einige Nachteile auf.
  • Insbesondere ist die Migrationsprozedur langsam. In der Tat benötigt das Installieren des Zielbetriebssystems eine lange Zeit (in der Größenordnung von 30 bis 60 min); während dieser Zeit ist der Computer insgesamt nicht verfügbar. Darüber hinaus benötigt das Wiederherstellen des Quellbetriebssystem gegebenenfalls ebenfalls eine lange Zeit (während der der Computer erneut nicht verfügbar ist). Noch mehr Zeit wird zudem für das Erstellen der Momentaufnahme des Quellbetriebssystems benötigt, ein Vorgang, der immer durchgeführt werden sollte, bevor das Zielbetriebssystem installiert wird (um im Falle von Problemen ein Wiederherstellen des Quellbetriebssystems zu ermöglichen).
  • Die Migrationsprozedur erfordert zudem viel Speicherplatz (auf der externen Einheit), um die Momentaufnahme des Quellbetriebssystems zu speichern; weiterer Speicherplatz wird zudem benötigt, um die Konfigurationsinformationen zu speichern.
  • Darüber hinaus geht jedes nicht mit dem Migrationswerkzeug erfasste Konfigurationsinformationselement (zum Beispiel, weil es vergessen wurde) verloren, sobald das Zielbetriebssystem auf dem Computer installiert wurde.
  • Somit können diese Konfigurationsinformation nicht mehr wiederhergestellt werden. In der Tat wäre die einzige Möglichkeit, darauf zuzugreifen, die Momentaufnahme des Quellbetriebssystem wiederherzustellen; dieser Vorgang ist jedoch so zeitaufwändig, dass er in der Praxis fast niemals durchgeführt wird. Wenn dies geschieht, ist es hingegen gängige Praxis zu versuchen, die fehlenden Konfigurationsinformationen manuell zu übernehmen; dieser Vorgang ist jedoch sehr anfällig für Fehler und birgt die Gefahr in sich, etwas zu übersehen.
  • In der US-Patentschrift 6 920 555 B1 wird stattdessen ein Migrationsprozess vor Ort beschrieben. Zu diesem Zweck wird ein Speicherplatz abgeschätzt, der erforderlich ist, um die Konfigurationsinformationen zu speichern; freier Speicherplatz wird auf einer Festplatte des Computers so geschaffen, dass er zum Speichern der Konfigurationsinformationen ausreicht. Dann wird das Zielsoftware-Image auf dem Computer installiert (indem zum Beispiel eine startfähige CD oder ein Netzwerkstart-Image (network boot image) verwendet wird. An diesem Punkt ist es möglich, die Konfigurationsinformationen für das Zielsoftware-Image vom freien Speicherplatz wiederherzustellen.
  • Dadurch entfällt die Notwendigkeit, die Konfigurationsinformationen zum Beispiel auf einem Netzwerkserver zu speichern; auf diese Weise kann der Migrationsprozess auf mehreren Computern parallel ablaufen. Darüber hinaus kann die Migration der Konfigurationsinformationen auch ohne jegliche Netzwerkverbindung durchgeführt werden. Das in diesem Dokument beschriebene Verfahren leidet jedoch unter all den anderen vorstehend ausgeführten Nachteilen.
  • Die Druckschrift US 2004/0010787 A1 offenbart ein Verfahren zum Migrieren einer virtuellen Maschine, wobei eine Eltern-virtuelle-Maschine angehalten wird und eine Kind-virtuelle-Maschine an einer neuen Stelle durch Verzweigen der Eltern-virtuellen-Maschine erzeugt ist.
  • Es ist eine Aufgabe der vorliegenden Erfindung, ein Verfahren zum Migrieren einer Datenverarbeitungs-Entität von einem Quellsoftware-Image auf ein Zielsoftware-Image bereitzustellen, welches insbesondere hinsichtlich einer Geschwindigkeit und eines Bedarf an Speicherplatz gegenüber dem Stand der Technik verbessert ist.
  • Kurzdarstellung
  • In ihrer allgemeinen Hinsicht beruht die Lösung gemäß einer oder mehrerer Ausführungsformen der vorliegenden Erfindung auf der Idee, den ursprünglichen Inhalt des Massenspeichers während des Migrationsprozesses zu behalten.
  • Genauer stellt ein Aspekt der Lösung gemäß einer Ausführungsform der Erfindung ein Verfahren zum Migrieren einer Datenverarbeitungs-Entität (zum Beispiel eines Computers) von einem auf einem Massenspeicher der Datenverarbeitungs-Entität installierten Quellsoftware-Image zu einem auf einer externen Quelle (zum Beispiel einer entfernt angeordneten Image-Ablage (image repository)) gespeicherten Zielsoftware-Image gemäß Anspruch 1 bereit. Jedes Software-Image enthält eine Mehrzahl von Speicherblöcken; jeder Speicherblock besitzt eine entsprechende Image-Adresse innerhalb des Software-Image. Der Massenspeicher enthält eine Mehrzahl von Speicherorten, von denen jeder zum Speichern eines Speicherblocks dient; der Speicherort besitzt eine entsprechende Speicher-Adresse innerhalb des Massenspeichers. Das Verfahren beinhaltet die folgenden Schritte. Ein Bereich des Massenspeichers wird freigegeben (zum Beispiel durch Verkleinern des Quellsoftware-Image). Die an Startorten des Zielsoftware-Image gespeicherten Speicherblöcke werden in den freigegebenen Bereich verlagert; bei den Startorten handelt es sich um diejenigen Speicherorte, deren Speicheradressen gleich den Image-Adressen von Startblöcken des Zielsoftware-Image sind, wobei die Startblöcke die Speicherblöcke enthalten, die zum Starten der Datenverarbeitungs-Entität erforderlich sind, um eine (zum Herunterladen des Zielsoftware-Image von der externen Quelle eingerichtete) Streaming-Funktion zu laden. Die Startblöcke werden an den entsprechenden Startorten gespeichert. Die Datenverarbeitungs-Entität wird von den Startblöcken an den entsprechenden Startorten gestartet (wobei die Streaming-Funktion geladen wird). Jede Anfrage zum Lesen eines ausgewählten Speicherblocks des Zielsoftware-Image wird durch die Streaming-Funktion bedient; die Streaming-Funktion lädt den ausgewählten Speicherblock von der externen Quelle herunter und speichert den ausgewählten Speicherblock im freigegebenen Bereich, wenn der ausgewählte Speicherblock im Massenspeicher nicht verfügbar ist, oder sie ruft andernfalls den ausgewählten Speicherblock aus den Massenspeicher ab.
  • In einem weiteren Aspekt der Lösung gemäß einer Ausführungsform der Erfindung wird ein Computerprogramm bereitgestellt, das ein Codemittel enthält, um ein Datenverarbeitungssystem zu veranlassen, die Schritte dieses Verfahrens durchzuführen, wenn das Computerprogramm auf dem Datenverarbeitungssystem ausgeführt wird; in noch einem weiteren Aspekt der Lösung gemäß einer Ausführungsform der Erfindung wird ein Computerprogrammprodukt bereitgestellt, das ein nichtflüchtiges computerlesbares Medium enthält, das ein Computerprogramm beinhaltet, wobei das Computerprogramm ein Codemittel enthält, das direkt in einen Arbeitsspeicher eines Datenverarbeitungssystems ladbar ist und dadurch das Datenverarbeitungssystem so konfiguriert, dass dieses Verfahren durchführbar ist.
  • In einem weiteren Aspekt der Lösung gemäß einer Ausführungsform der Erfindung wird ein System bereitgestellt, das Mittel zum Durchführen der Schritte des Verfahrens beinhaltet.
  • Kurze Beschreibung der Zeichnungen
  • Die Lösung gemäß einer oder mehreren Ausführungsformen der Erfindung sowie weitere Merkmale und Vorteile davon sind am besten unter Bezugnahme auf die folgende detaillierte Beschreibung verständlich, die allein in Form einer nicht einschränkenden Angabe vorgelegt wird und in Verbindung mit den angehängten Zeichnungen zu lesen ist (wobei zum Zwecke der Vereinfachung entsprechende Elemente mit gleichen oder ähnlichen Bezugszeichen bezeichnet sind und deren Erläuterung nicht wiederholt wird, und wobei der Name jeder Entität allgemein verwendet wird, um sowohl ihren Typ als auch ihre Attribute – wie beispielsweise ihren Wert, ihren Inhalt und ihre Ausbildung – zu bezeichnen). Insbesondere:
  • zeigt 1 ein schematisches Blockschaltbild eines Computers auf dem die Lösung gemäß einer Ausführungsform der Erfindung anwendbar ist,
  • zeigen die 2A bis 2G Kollaborationsschaubilder, die eine allgemeine Übersicht einer beispielhaften Anwendung der Lösung gemäß einer Ausführungsform der Erfindung darstellen,
  • zeigt 3A bis 3C ein Aktivitätsschaubild, das den dem Migrationsprozess zugehörigen Aktivitätsfluss gemäß einer Ausführungsform der Erfindung beschreibt, und
  • zeigt 4 ein Kollaborationsschaubild, das die Funktionen der Hauptsoftwarekomponenten wiedergibt, die verwendet werden können, um einen Vorbereitungsprozess gemäß einer Ausführungsform der Erfindung zu realisieren.
  • Beschreibung einer oder mehrerer Ausführungsformen
  • Unter besonderer Bezugnahme auf 1 wird ein schematisches Blockschaltbild eines Computers 100 gezeigt, auf dem die Lösung gemäß einer Ausführungsform der Erfindung anwendbar ist. Der Computer 100 (zum Beispiel ein PC) wird durch mehrere Einheiten ausgebildet, die parallel mit einem Systembus 105 verbunden sind. Im Detail steuern ein oder mehrere Mikroprozessoren (μP) 110 den Betrieb des Computers 100; ein RAM 115 wird durch die Mikroprozessoren 110 als Arbeitsspeicher verwendet, und in einem ROM 120 ist grundlegender Code des Computers 100 gespeichert. Mehrere Peripherieeinheiten sind um einen lokalen Bus 125 (mittels jeweiliger Schnittstellen) gruppiert (clustered). Insbesondere enthält ein Massenspeicher eine oder mehrere Festplatten 130 und Laufwerke 135 zum Lesen optischer Platten 140 (zum Beispiel DVDs oder CDs). Darüber hinaus enthält der Computer 100 Eingabeeinheiten 145 (zum Beispiel eine Tastatur und eine Maus) und Ausgabeeinheiten 150 (zum Beispiel einen Monitor und einen Drucker). Mit einem Adapter 155 wird der Computer 100 mit einem Netzwerk verbunden (in der Figur nicht gezeigt). Eine Brückeneinheit 160 verbindet den Systembus 105 mit dem lokalen Bus 125. Jeder Mikroprozessor 110 und die Brückeneinheit 160 können als Hauptagent fungieren und einen Zugriff auf den Systembus 105 zum Übermitteln von Daten anfordern. Eine Zuteilungseinheit (arbiter) 165 verwaltet das Gewähren des Zugriffs auf den Systembus 105 mit wechselseitigem Ausschluss.
  • Die Lösung gemäß einer Ausführungsform der Erfindung wird verwendet, um ein auf dem Computer 100 installiertes Software-Image zu migrieren (zum Beispiel, um sein Betriebssystem auf eine neuere Version heraufzustufen). Allgemein enthält jedes Software-Image ein oder mehrere Softwaremodule (zum Beispiel ein Betriebssystem, Anwendungsprogramme und/oder Daten); das Software-Image wird durch einen Satz von Speicherblöcken gebildet (von denen zum Beispiel jeder 1 bis 10 MB aufweist), die entsprechende Adressen innerhalb des Software-Image besitzen (die als -Image-Adressen bezeichnet werden).
  • Genauer ist in den 2A bis 2G ein Kollaborationsschaubild gezeigt, das eine allgemeine Übersicht einer beispielhaften Anwendung der Lösung gemäß einer Ausführungsform der Erfindung darstellt. Das Kollaborationsschaubild zeigt die Funktionen der betreffenden Hauptsoftwarekomponenten und insbesondere deren statischen Aufbau (als Ganzes mit der Bezugsziffer 200 bezeichnet) und dynamisches Verhalten (mittels einer Reihe von Austauschnachrichten, von denen jede für eine entsprechende Aktion steht und die mit fortlaufenden Zahlen mit einem vorangehenden Symbol „A” bezeichnet sind).
  • Beginnend mit 2A ist ein Quellsoftware-Image 205s auf der Festplatte 130 installiert; das Quellsoftware-Image 205s enthält ein oder mehrere in der Figur nicht gezeigte logische Partitionen der Festplatte 130 (zum Beispiel eine Primärstartpartition und mögliche weitere Partitionen). Die Festplatte 130 ist in einen Satz von Speicherorten mit entsprechenden (als Speicheradressen bezeichnete) Adressen innerhalb der Festplatte 130 organisiert, von denen in jeder ein Speicherblock gespeichert ist. Das Quellsoftware-Image 205s enthält ein Quellbetriebssystem 210s und einen (nachfolgend beschriebenen) Implementierungs-Agenten 215, die zumindest zum Teil in den Arbeitsspeicher 115 geladen sind.
  • Ein Benutzer 220 des Computers 100 übermittelt dem Implementierungs-Agenten 215 eine Anfrage zum Migrieren des Computers 100 zu einem Zielsoftware-Image 225, das auf einer externen Quelle – zum Beispiel einer entfernt angeordneten Image-Ablage – verfügbar ist (Aktion „A1: Migrieren”) Als Reaktion darauf verkleinert der Implementierungs-Agent 215 das Quellsoftware-Image 205s – zum Beispiel durch Verwenden einer integrierten Funktion des Quellbetriebssystems 210s (Aktion „A2: Verkleinern”).
  • Als Ergebnis wird wie in 2B gezeigt ein Bereich 230 der Festplatte 130 freigegeben. An diesem Punkt lädt der Implementierungs-Agent 215 einen Satz von Startblöcken des Zielsoftware-Image 225 herunter (der durch die entsprechenden Image-Adressen gekennzeichnet ist, die als Startadressen bezeichnet werden); die Startblöcke des Zielsoftware-Image 225 enthalten die Speicherblöcke, die zum Starten einer Startsequenz des Zielsoftware-Image 225 benötigt werden, um einen nachfolgend beschriebenen Streaming-Treiber des Implementierungs-Agenten zu laden (Aktion „A3: Herunterladen”). Der Implementierungs-Agent 215 verlagert dann die in Startblöcken des Zielsoftware-Image 225 gespeicherten Speicherblöcke des Quellsoftware-Image 205s (deren Speicheradressen gleich den Startadressen des Zielsoftware-Image 225 sind) an entsprechende Speicherorte des freigegebenen Bereichs 230 – die als verlagerte Speicherorte 235 s bezeichnet werden (Aktion „A4: Verlagern”). Der Implementierungs-Agent 215 kann nun die Startblöcke des Zielsoftware-Image 225 an ihren Startorten speichern – wo sie dunkelgrau unterschieden und mit der Bezugsziffer 240t bezeichnet sind. Auf diese Weise werden die Startblöcke 240t auf der Festplatte 130 exakt dort angeordnet, wo sie erwartungsgemäß während der Startsequenz des Zielsoftware-Image 225 zu finden sein sollen; nichtsdestoweniger verursacht dies jedoch keinen Verlust von Informationen im Quellsoftware-Image 205s, da die entsprechenden aufgehobenen Speicherblöcke an den verlagerten Speicherorten 235s gespeichert sind (Aktion „A5: Speichern”). An diesem Punkt schaltet der Implementierungs-Agent 215 den Computer 100 aus und dann ein, um ihn von den Startblöcken 240t des Zielsoftware-Image 225 an seinen Startorten neu zu starten (Aktion „A6: Neu starten”).
  • Wie in 2C gezeigt, werden daher ein den Startblöcken 240t entsprechender Teil eines Zielbetriebssystems 210t des Zielsoftware-Image 225 und der Streaming-Treiber des Implementierungs-Agenten 215 in den Arbeitsspeicher 115 geladen. Dann überträgt der Implementierungs-Agent 215 eine Benutzerkonfiguration des Quellsoftware-Image 205s auf das Zielsoftware-Image 225, das auf dem Computer 100 installiert wird; zum Beispiel werden Konfigurationsinformationen des Quellsoftware-Image 205s von der (in das Zielbetriebssystem 210t eingebundenen (mounted)) Festplatte 130 gesammelt und dann auf eine lokale Version des Zielsoftware-Image 225 angewandt – d. h. in entsprechenden, in den freigegebenen Bereich 230 geschriebenen Speicherblöcken (Aktion „A7: Übertragen”). Der Computer 100 kann nun (die lokale Version des Zielsoftware-Image 225 ausführend) mit jedem Speicherblock des Zielsoftware-Image 225 normal verwendet werden, der durch Streaming durch den Streaming-Treiber bereitgestellt wird; zu diesem Zweck liest der Streaming-Treiber wie nachfolgend detailliert beschrieben den Speicherblock, indem er ihn bei Verfügbarkeit von der Festplatte 130 abruft oder ihn andernfalls von der externen Quelle herunterlädt (und ihn gleichzeitig im freigegebenen Bereich 230 speichert), und den Speicherblock schreibt, indem er ihn in jedem der Fälle im freigegebenen Bereich 230 speichert. Der Benutzer 220 kann dann den Computer 100 mit der lokalen Version des Zielsoftware-Image 225 umfassend testen, um zu überprüfen, ob er korrekt arbeitet (Aktion „A8: Stream”).
  • Unter Bezugnahme auf 2D übernimmt (commits) der Benutzer 220 nun die Migration durch Übermitteln einer entsprechenden Anfrage an den Implementierungs-Agenten 215, wenn er mit dem Betrieb des Computers 100 mit der lokalen Version des Zielsoftware-Image 225 zufrieden ist (Aktion „A9: Übernehmen”). Als Reaktion darauf kopiert der Implementierungs-Agent 215 alle Speicherblöcke der lokalen Version des Zielsoftware-Image 225 (vom freigegebenen Bereich 230, wenn verfügbar, oder andernfalls von der externen Quelle) auf deren tatsächliche Speicherorte auf der Festplatte 130, deren Speicheradressen gleich den entsprechenden Image-Adressen sind (Aktion „A10: Kopieren”).
  • Daher wird wie in 2E gezeigt die lokale Version des Zielsoftware-Image (mit der Bezugsziffer 205t bezeichnet) nun vollständig auf der Festplatte 130 installiert, indem das Quellsoftware-Image überschrieben wird. Der Computer 100 kann nun vom Zielsoftware-Image 205t neu starten und normal arbeiten (Aktion „A11: Neu starten”).
  • Im Gegensatz hierzu kann unter Bezugnahme auf 2F der Benutzer die Migration durch Übermitteln einer entsprechenden Anfrage an den Implementierungs-Agenten 215 auf das Quellsoftware-Image 205s rückabwickeln (roll-back), wenn er mit dem Betrieb des Computers 100 mit der lokalen Version des Zielsoftware-Image 225 nicht zufrieden ist (Aktion „A12: Rückabwickeln”). Als Reaktion darauf stellt der Implementierungs-Agent 215 die Speicherblöcke des Quellsoftware-Image 205s von den verlagerten Orten 235s wieder an den Startorten des Zielsoftware-Image 225 her (Aktion „A13: Wiederherstellen”). Dann vergrößert der Implementierungs-Agent 215 das Quellsoftware-Image 205s, um dessen ursprüngliche Größe wiederherzustellen, und verdrängt dabei die Speicherblöcke des im freigegebenen Bereich 230 gespeicherten Zielsoftware-Image 225 (Aktion „A14: Vergrößern”). An diesem Punkt schaltet der Implementierungs-Agent 215 den Computer 100 aus und dann ein.
  • Daher wird der Computer 100 wie in 2G gezeigt vom Quellsoftware-Image 205s neu gestartet, wobei das Quellbetriebssystem 210s erneut geladen wird (Aktion „A15: Neu starten”).
  • Durch die vorstehend beschriebene Lösung ist der Computer in sehr kurzer Zeit für die Nutzung mit dem Zielsoftware-Image bereit – direkt nachdem seine Startblöcke auf der Festplatte gespeichert wurden (zum Beispiel nach 1 bis 2 Minuten für eine typische Größe der Startblöcke von 10 bis 200 MByte); der Betrieb des Computers ist dann ungeachtet der Verfügbarkeit der anderen Speicherblöcke des Zielsoftware-Image auf der Festplatte völlig normal (wenn er wie üblich direkt von der Festplatte gestartet wird) – bei einer nur geringfügigen Leistungsverschlechterung des Computers, wenn er auf Speicherblöcke zugreift, die noch von der externen Quelle heruntergeladen werden müssen (diese Leistungsverschlechterung verringert sich mit der Zeit, da mehr und mehr Speicherblöcke bereits auf der Festplatte verfügbar sein werden, nachdem einmal auf sie zugegriffen wurde). Darüber hinaus ist die erforderliche Zeit, um den Computer verwendungsbereit zu machen, von der Größe des Zielsoftware-Image unabhängig.
  • Diese Migrationsprozedur erfordert keinen zusätzlichen Speicherplatz. In der Tat verbleibt das Quellsoftware-Image auf der Festplatte; daher können seine Konfigurationsinformationen für die Anwendung auf das Zielsoftware-Image direkt von der Festplatte gesammelt werden.
  • Darüber hinaus wird das Quellsoftware-Image so wie es ist aufrecht erhalten, bis der Benutzer entscheidet, die Migration zum Zielsoftware-Image zu übernehmen. Daher sind die Konfigurationsinformationen des Quellsoftware-Image für das Zielsoftware-Image noch verfügbar (bis die Migration übernommen wird). Auf diese Weise ist es möglich, während des Tests des Computers mit dem Zielsoftware-Image jedes Konfigurationsinformationselement jederzeit (vom Quellsoftware-Image) zu sammeln und (auf das Zielsoftware-Image) anzuwenden (selbst wenn es zu Beginn vergessen wurde); dadurch wird das Risiko, irgendein Konfigurationsinformationselement während der Migration zu verlieren, vermieden oder zumindest erheblich verringert.
  • Die vorstehend beschriebene Lösung ermöglicht zudem das Wiederherstellen des Quellbetriebssystems (falls notwendig) in sehr kurzer Zeit, da es noch auf der Festplatte verfügbar ist; in der Tat erfordert dieser Vorgang nur ein Wiederherstellen der Speicherblöcke des Quellsoftware-Image, die verlagert wurden (um die Startblöcke des Zielsoftware-Image zu speichern). Darüber hinaus erfordert diese Lösung kein Erstellen einer Momentaufnahme des Quellsoftware-Image im Voraus für dessen Wiederherstellung im Falle von Problemen (mitsamt einer entsprechenden Zeitersparnis).
  • Unter Bezugnahme auf die 3A bis 3C wird nun ein Aktivitätsschaubild gezeigt, das den Aktivitätsfluss bezüglich eines Migrationsprozesses gemäß einer Ausführungsform der Erfindung beschreibt, wobei der Migrationsprozess durch ein Verfahren 300 wiedergegeben wird.
  • Das Verfahren 300 beginnt beim schwarzen Startkreis 302 und fährt dann mit Block 304 fort, sobald der Benutzer (dem Implementierungs-Agenten) eine Anfrage zum Migrieren des Computers zum Zielsoftware-Image übermittelt. Als Reaktion darauf verkleinert der Implementierungs-Agent in Block 306 das Quellsoftware-Image, um einen Bereich der Festplatte freizugeben; dieses Ergebnis kann zum Beispiel (unter Verwendung einer integrierten Funktion des Quellbetriebssystems) erreicht werden, indem nicht belegter Speicherplatz zurückgewonnen wird, der noch keinen Dateien zugewiesen wurde, oder temporäre Dateien gelöscht werden. Fortfahrend mit Block 308 lädt der Implementierungs-Agent die Startblöcke des Zielsoftware-Image von der externen Quelle herunter (wie darin in Zuordnung mit dem Zielsoftware-Image festgelegt); zum Beispiel enthalten die Startblöcke in Microsoft Windows (zusätzlich zum Streaming-Treiber) eine Hauptstartdatei (Master Boot Record (MBR)), einen Startsektor, eine Datei „bootmgr.exe”, eine Datei „boot\bcd”, eine Systemregistrierung, eine Datei „winload.exe” und in der Systemregistrierung festgelegte Treiberdateien. Wenn das Zielsoftware-Image in einer Image-Ablage eines entfernt angeordneten Servers gespeichert ist, kann der Implementierungs-Agent zu diesem Zweck als Fernzugriffinitiator fungieren, der mit einem Fernzugriffserver des entfernt angeordneten Servers interagiert – wie beispielsweise auf der Grundlage des Protokolls „Internet Small Computer System Interface” (iSCSI).
  • Unter Bezugnahme auf Block 310 verlagert der Implementierungs-Agent nun die Speicherblöcke des an den Startorten des Zielsoftware-Image gespeicherten Quellsoftware-Image in den freigegebenen Bereich. Insbesondere werden die an den Startorten des Zielsoftware-Image gespeicherten Speicherblöcke aufeinander folgend gelesen und in derselben Reihenfolge an die ersten Speicherorte des freigegebenen Bereichs kopiert.
  • Fortfahrend mit Block 312 initialisiert der Implementierungs-Agent den freigegebenen Bereich mit einer Steuerstruktur für den Streaming-Treiber. Zu diesem Zweck erstellt der Implementierungs-Agent eine Blockzuordnung, mit der jeder Speicherblock des Zielsoftware-Image dem Speicherort auf der Festplatte zugeordnet wird, an dem er gespeichert ist (zu Beginn angebend, dass kein Speicherblock des Zielsoftware-Image auf der Festplatte verfügbar ist). Insbesondere wenn der freigegebene Bereich (genauer gesagt, ein nützlicher Teil davon nach den verlagerten Speicherorten und der Steuerstruktur) eine Größe besitzt, die ein Speichern des gesamten Zielsoftware-Image ermöglicht, kann er als lokale Datenablage für das Zielsoftware-Image arbeiten. In diesem Fall kann es sich bei der Blockzuordnung um eine Bitmap handeln; die Bitmap besitzt einen Eintrag für jede -Imageadresse des Zielsoftware-Image, wobei der Eintrag einen Verfügbarkeitsmerker (availability flag) enthält, der anzeigt, ob der entsprechende Speicherblock an derselben Position innerhalb des freigegebenen Bereichs gespeichert ist (d. h. am Speicherort, der eine Speicheradresse besitzt, die gleich der Speicheradresse plus einem Versatz des nützlichen Teils des freigegebenen Bereichs innerhalb der Festplatte ist); zu Beginn sind alle Verfügbarkeitsmerker deaktiviert (um anzuzeigen, dass die entsprechenden Speicherblöcke nicht im freigegebenen Bereich gespeichert sind). Im Gegensatz hierzu kann der freigegebene Bereich als ein lokaler Cachespeicher für das Zielsoftware-Image arbeiten, wenn der freigegebene Bereich eine Größe besitzt, die das Speichern des gesamten Zielsoftware-Image nicht erlaubt. In diesem Fall kann es sich bei der Blockzuordnung um eine Nachschlagetabelle handelt; die Nachschlagetabelle besitzt einen Eintrag für die Speicheradresse jedes Speicherortes des nützlichen Teils des freigegebenen Bereichs, wobei der Eintrag die Image-Adresse des Speicherblocks des darin gespeicherten Zielsoftware-Image sowie ein Aktualisierungsmerker enthält, der anzeigt, ob der Speicherblock (in Hinblick auf seine ursprüngliche Version in der externen Quelle) aktualisiert wurde; zu Beginn weisen die Image-Adressen aller Einträge der Nachschlagetabelle einen Wert gleich Null auf (um anzuzeigen, dass keine Speicherblöcke im freigegebenen Bereich gespeichert sind). Darüber hinaus erstellt der Implementierungs-Agent eine Startliste; in der Startliste sind die Startadressen des Zielsoftware-Image festgelegt. Der Implementierungs-Agent erzeugt zudem einen Kopierzähler, der die Image-Adresse des letzten Speicherblocks des Zielsoftware-Image angibt, der an seine korrekte Position innerhalb der Festplatte kopiert wurde, nachdem die Migration übernommen wurde, wie nachfolgend beschrieben (zu Beginn auf Null gesetzt). Fortfahrend mit Block 314 speichert der Implementierungs-Agent nun die Startblöcke des Zielsoftware-Image an ihren Startorten (wie in der Startliste angegeben).
  • Der Implementierungs-Agent schaltet den Computer in Block 316 aus und dann ein, um ihn zu veranlassen, von den Startblöcken des Zielsoftware-Image an seinen Startorten neu zu starten. In der Tat erkennt ein in einer Firmware des Computers gespeicherter Startlader (Bootloader), der bei dessen Einschalten ausgeführt wird, – zum Beispiel das Basic Input/Output System (BIOS) – die Festplatte als eine startfähige Einheit; daher lädt das BIOS die MBR, die MBR lädt den Startsektor, der Startsektor findet und startet die Datei „bootmgr.exe”, die Datei „bootmgr.exe” findet und liest die Datei „boot\bcd”, um die Speicherorte der Systemregistrierung zu finden und dann die Systemregistrierung, die Datei „winload.exe” und die in der Systemregistrierung angegebenen Treiberdateien zu laden; die Datei „winload.exe” startet dann den Streaming-Treiber des Implementierungs-Agenten, der einen Standard-Dateisystemtreiber des Zielbetriebssystems überschreibt (um jede Anfrage zum Zugreifen auf einen beliebigen Speicherblock des Zielsoftware-Image zu bedienen, wie nachfolgend beschrieben). Fortfahrend mit Block 318 bindet der Implementierungs-Agent die Festplatte auf dem Computer ein (um das Zugreifen darauf und dann auf das Quellsoftware-Image zu ermöglichen).
  • An diesem Punkt überträgt der Implementierungs-Agent die Benutzerkonfiguration des Quellsoftware-Image auf das Zielsoftware-Image; zum Beispiel enthält die Benutzerkonfiguration des Quellsoftware-Image Einstellungen (wie beispielsweise bezüglich des Erscheinungsbildes und des Verhaltens des Betriebssystems oder Anwendungsprogramms) und/oder Daten (wie beispielsweise Peripherie-Einheitentreiber, Cookies und Adressbücher). Zu diesem Zweck sammelt der Implementierungs-Agent in Block 320 die Konfigurationsinformationen des Quellsoftware-Image durch Ausführen eines geeigneten Migrationswerkzeugs – zum Beispiel des Programms „ScanState.exe” des Werkzeugs „UserState Migration Tool” (USMT) in Windows. In diesem Fall überprüft der Streaming-Treiber für jede Anfrage (durch das Migrationswerkzeug) zum Lesen eines Speicherblocks des Quellsoftware-Image an einer entsprechenden Image-Adresse (als Konfigurationsspeicherblock bzw. Konfigurations-Imageadresse bezeichnet) in Block 322, ob der Konfigurationsspeicherblock in den freigegebenen Bereich verlagert wurde (d. h., wenn die Konfigurations-Image-Adresse gleich einer der Startadressen des Zielsoftware-Image ist, wie in seiner Startliste angegeben). Falls ja, aktualisiert der Streaming-Treiber in Block 324 die Konfigurations-Image-Adresse so, dass sie auf den entsprechenden verlagerten Speicherort verweist. Dann wird das Verfahren nach unten mit Block 326 fortgesetzt; derselbe Punkt wird auch direkt von Block 322 aus erreicht, wenn der Konfigurationsspeicherort nicht verlagert wurde. An diesem Punkt ruft der Streaming-Treiber den Konfigurationsspeicherblock von dem Speicherort ab, dessen Speicheradresse gleich der (möglicherweise aktualisierten) Konfigurations-Image-Adresse ist.
  • Fortfahrend mit Block 328 wendet der Streaming-Treiber die gesammelten Konfigurationsinformationen auf das Zielsoftware-Image an (indem im vorliegenden Beispiel das Programm „LoadState.exe” des USMT ausgeführt wird); zu diesem Zweck schreibt der Streaming-Treiber entsprechende Speicherblöcke des Zielsoftware-Image auf die Festplatte (wie nachfolgend beschrieben).
  • Der Computer 100 (auf dem das Zielsoftware-Image ausgeführt wird) kann nun normal verwendet werden. Insbesondere wird das Verfahren 300 nach unten mit Block 330 fortgesetzt, sobald eine Anfrage zum Lesen eines ausgewählten Speicherblocks des Zielsoftware-Image (bei einer entsprechenden ausgewählten Image-Adresse) an das Zielbetriebssystem übermittelt wird (zum Beispiel von einem Anwendungsprogramm). Die Leseanfrage wird in Block 332 an den Streaming-Treiber weitergeleitet, der überprüft, ob der ausgewählte Speicherblock bereits auf der Festplatte verfügbar ist. Zu diesem Zweck vergleicht der Streaming-Treiber zuerst die ausgewählte Image-Adresse mit den Startadressen des Zielsoftware-Image (wie in der Startliste angegeben), um zu ermitteln, ob es sich bei dem ausgewählten Speicherblock um einen Startblock handelt und er dann immer am entsprechenden Startblock gespeichert ist. Falls nicht, vergleicht der Streaming-Treiber die ausgewählte Image-Adresse mit dem Kopierzähler, um zu ermitteln, ob die ausgewählte Image-Adresse gleich oder höher als der Kopierzähler ist, und dann wird der ausgewählte Speicherblock an seine korrekte Position innerhalb der Festplatte kopiert (nachdem die Migration übernommen wurde, wie nachstehend beschrieben). Im Gegensatz dazu werden entsprechend des Betriebsmodus des freigegebenen Bereichs unterschiedliche Operationen durchgeführt. Insbesondere ruft der Streaming-Treiber im Falle, dass der freigegebene Bereich als lokale Datenablage arbeitet, den entsprechenden Verfügbarkeitsmerker in der Bitmap, um zu ermitteln, ob der ausgewählte Speicherblock im freigegebenen Bereich gespeichert ist oder nicht (wenn der Verfügbarkeitsmerker aktiviert bzw. deaktiviert ist); wenn andererseits der freigegebene Bereich als lokaler Cachespeicher arbeitet, sucht der Streaming-Treiber die ausgewählte Image-Adresse in der Nachschlagetabelle, um zu ermitteln, ob der ausgewählte Speicherblock im freigegebenen Bereich gespeichert ist oder nicht (wenn die ausgewählte Image-Adresse gefunden bzw. nicht gefunden wird). Der Aktivitätsfluss verzweigt sich dann in Block 334 entsprechend dem Ergebnis der Überprüfung.
  • Wenn der ausgewählte Speicherblock nicht auf der Festplatte verfügbar ist, lädt der Streaming-Treiber den ausgewählten Speicherblock in Block 336 von der externen Quelle herunter. Das Verfahren 300 gabelt sich nun in zwei Zweige, die entsprechend dem Betriebsmodus des freigegebenen Bereichs alternativ ausgeführt werden. Insbesondere speichert der Streaming-Treiber in Block 338 im Falle, dass der freigegebene Bereich als lokale Datenablage arbeitet, den ausgewählten Speicher am entsprechenden Speicherort des freigegebenen Bereichs (dessen Speicheradresse gleich der ausgewählten Image-Adresse plus seinem Versatz ist); gleichzeitig wird der entsprechende Verfügbarkeitsmerker in der Bitmap aktiviert (um anzuzeigen, dass der ausgewählte Speicherblock nun auf der Festplatte verfügbar ist). Andernfalls sucht der Streaming-Treiber in Block 340 nach einem freien Speicherort im freigegebenen Bereich (d. h., dessen entsprechende Image-Adresse in der Nachschlagetabelle ist gleich dem Wert Null), wenn der freigegebene Bereich als lokaler Cachespeicher arbeitet. Bei Fortsetzung nach unten mit Block 342 räumt der Streaming-Treiber in Block 344 einen Speicherort des freigegebenen Bereichs, wenn kein freier Speicherort verfügbar ist; der zu räumende Speicherort wird – zum Beispiel entsprechend eines Algorithmus der am längsten nicht erfolgten Verwendung (Least Recently Used (LRU) algorithm) – nur unter denjenigen ausgewählt, in denen Speicherblöcke gespeichert sind, die nach ihrem Herunterladen von der externen Quelle nicht aktualisiert wurden (was durch den deaktivierten entsprechenden Aktivierungsmerker angezeigt wird), um jeglichen Informationsverlust zu vermeiden. Dann wird das Verfahren 300 nach unten mit Block 346 fortgesetzt; derselbe Punkt wird auch direkt von Block 342 aus erreicht, wenn ein freier Speicherort gefunden wurde. An diesem Punkt speichert der Streaming-Treiber den ausgewählten Speicherblock am ersten freien Speicherort des freigegebenen Bereichs; gleichzeitig wird in der Nachschlagetabelle der entsprechende Eintrag auf die ausgewählte Image-Adresse gesetzt (um anzuzeigen, dass der ausgewählte Speicherblock nun darin verfügbar ist) und der entsprechende Aktualisierungsmerker deaktiviert (um anzuzeigen, dass der ausgewählte Speicherblock nicht aktualisiert wurde).
  • Zu Block 334 zurückkehrend wird das Verfahren nach unten mit Block 348 fortgesetzt, wenn der ausgewählte Speicherblock stattdessen auf der Festplatte verfügbar ist (im entsprechenden Startblock, an seiner korrekten Position innerhalb der Festplatte oder im freigegebenen Bereich). In dieser Phase ruft der Streaming-Treiber den ausgewählten Speicherblock von der Festplatte ab. Insbesondere wird im Falle, dass es sich bei dem ausgewählten Speicherblock um einen Startblock handelt (d. h., die ausgewählte Image-Adresse eine der in der Startliste angegebenen Startadressen ist), der ausgewählte Speicherblock (dessen Speicheradresse gleich der ausgewählten Image-Adresse ist) vom entsprechenden Startort abgerufen. Gleichermaßen wird der ausgewählte Speicherblock von seinem korrekten Speicherort (dessen Speicheradresse gleich der ausgewählten Image-Adresse ist) abgerufen, wenn der ausgewählte Speicherblock bereits an seine korrekte Position innerhalb der Festplatte kopiert wurde (d. h., die ausgewählte Image-Adresse ist niedriger als der Kopierzähler). Wenn der ausgewählte Speicherblock im freigegebenen Bereich gespeichert ist, wird der ausgewählte Speicherblock stattdessen vom Speicherort im freigegebenen Bereich abgerufen, der die Speicheradresse besitzt, die gleich der ausgewählten Image-Adresse plus dem Versatz des freigegeben Bereichs ist (wenn der freigegebene Bereich als lokale Datenablage arbeitet) oder vom Speicherort mit der Speicheradresse, die dem Eintrag der Nachschlagetabelle zugeordnet ist, der die ausgewählte Image-Adresse speichert (wenn der freigegebene Bereich als lokaler Cachespeicher arbeitet). In jedem Fall wird in Block 350 der Aktivitätsfluss von Block 346 oder Block 348 aus kommend zusammengeführt; an diesem Punkt gibt der Streaming-Treiber den ausgewählten Speicherblock an den Dateisystemtreiber zurück, der ihn wiederum dem Anwendungsprogramm zurückgibt.
  • Das Verfahren 300 wird stattdessen nach unten mit Block 352 fortgesetzt, sobald eine Anfrage zum Schreiben eines ausgewählten Speicherblocks des Zielsoftware-Image (bei einer entsprechenden ausgewählten Image-Adresse) an das Zielbetriebssystem übermittelt wird (zum Beispiel von einem Anwendungsprogramm). Wie vorstehend wird die Schreibanfrage in Block 354 an den Streaming-Treiber weitergeleitet, der überprüft, ob der ausgewählte Speicherblock bereits auf der Festplatte verfügbar ist. Der Aktivitätsfluss verzweigt sich dann in Block 356 entsprechend dem Ergebnis der Überprüfung.
  • Wenn der ausgewählte Speicherblock nicht auf der Festplatte verfügbar ist, speichert der Streaming-Treiber den ausgewählten Speicherblock auf der Festplatte durch Wiederholen derselben vorstehend beschriebenen Operationen. Insbesondere speichert der Streaming-Treiber in Block 358 im Falle, dass der freigegebene Bereich als lokale Datenablage arbeitet, den ausgewählten Speicherblock am entsprechenden Speicherort des freigegebenen Bereichs (dessen Speicheradresse gleich der ausgewählten Image-Adresse plus seinem Versatz ist); gleichzeitig wird der entsprechende Verfügbarkeitsmerker in der Bitmap aktiviert. Andernfalls sucht der Streaming-Treiber in Block 360 nach einem freien Speicherort im freigegebenen Bereich, wenn der freigegebene Bereich als lokaler Cachespeicher arbeitet. Bei Fortsetzung nach unten mit Block 362 räumt der Streaming-Treiber in Block 364 einen Speicherort des freigegebenen Bereichs (unter denen, die Speicherblöcke speichern, die nicht aktualisiert wurden), wenn kein freier Speicherort gefunden wird. Dann wird das Verfahren 300 nach unten mit Block 366 fortgesetzt; derselbe Punkt wird auch direkt von Block 362 aus erreicht, wenn ein freier Speicherort gefunden wurde. An diesem Punkt speichert der Streaming-Treiber den ausgewählten Speicherblock am ersten Speicherort des freigegebenen Bereichs; gleichzeitig wird in der Nachschlagetabelle der entsprechende Eintrag auf die ausgewählte Image-Adresse gesetzt, und der entsprechende Aktualisierungsmerker wird deaktiviert.
  • Zurückkehrend zu Block 356 wird das Verfahren nach unten mit Block 368 fortgesetzt, wenn der ausgewählte Speicherblock stattdessen auf der Festplatte verfügbar ist. In dieser Phase speichert der Streaming-Treiber den ausgewählten Speicherblock am entsprechenden Speicherort. Insbesondere wird im Falle, dass es sich bei dem ausgewählten Speicherblock um einen Startblock handelt (d. h., die ausgewählte Image-Adresse eine der in der Startliste angegebenen Startadressen ist), der ausgewählte Speicherblock (dessen Speicheradresse gleich der ausgewählten Image-Adresse ist) am entsprechenden Startort gespeichert. Gleichermaßen wird der ausgewählte Speicherblock an seinem korrekten Speicherort (dessen Speicheradresse gleich der ausgewählten -Imageadresse ist) gespeichert, wenn der ausgewählte Speicherblock bereits an seine korrekte Position innerhalb der Festplatte kopiert wurde (d. h., die ausgewählte Image-Adresse ist niedriger als der Kopierzähler). Wenn der ausgewählte Speicherblock im freigegebenen Bereich gespeichert ist, wird der ausgewählte Speicherblock stattdessen am Speicherort im freigegebenen Bereich gespeichert, der die Speicheradresse besitzt, die gleich der ausgewählten Image-Adresse plus dem Versatz des freigegeben Bereichs ist (wenn der freigegebene Bereich als lokale Datenablage arbeitet) oder am Speicherort mit der Speicheradresse, die dem Eintrag der Nachschlagetabelle zugeordnet ist, der die ausgewählte Image-Adresse speichert (wenn der freigegebene Bereich als lokaler Cachespeicher arbeitet).
  • Diese Streaming-Technik zielt dann darauf ab, so viele Speicherblöcke des Zielsoftware-Image wie möglich auf der Festplatte zu speichern (im Gegensatz zu den beim Stand der Technik bekannten Streaming-Techniken zum Bereitstellen von Software-Images auf Abruf, wobei die Speicherblöcke der Software-Images nur für deren unmittelbare Verwendung auf den Computer heruntergeladen werden). Darüber hinaus werden die heruntergeladenen Speicherblöcke im Falle, dass der freigegebene Bereich als lokale Datenablage arbeitet, dauerhaft auf der Festplatte gespeichert (ohne nach deren Verwendung oder bei Ausschalten des Computers zu verschwinden), so dass sie für eine mögliche nächste Verwendung davon nicht erneut heruntergeladen werden müssen.
  • Das Verfahren 300 wird nun nach unten mit Block 370 fortgesetzt, sobald eine Anfrage zum Übernehmen der Migration zum Zielsoftware-Image an den Implementierungs-Agenten übermittelt wird (durch Zusammenführen von Block 358, von Block 366 oder von Block 368 aus kommend). Als Reaktion darauf kann der Implementierungs-Agent in Block 372 eine Momentaufnahme des Quellsoftware-Image (zum Beispiel für seine Sicherung) erstellen. Zu diesem Zweck wird jeder Speicherblock des Quellsoftware-Image von der Festplatte abgerufen; insbesondere wird der Speicherblock im Falle, dass er nicht verlagert wurde, vom entsprechenden Speicherort abgerufen oder andernfalls vom entsprechenden verlagerten Speicherort. Der Speicherblock wird dann auf einer externen Einheit (zum Beispiel einer Wechselplatte) gespeichert. Daher ist es in diesem Fall möglich, die Momentaufnahme des Quellsoftware-Image nur zu erstellen, wenn sie gegebenenfalls tatsächlich notwendig ist.
  • Dann wird eine Schleife für jeden Speicherblock des Zielsoftware-Image durchgeführt. Die Schleife beginnt in Block 374, in dem der Streaming-Treiber wie vorstehend überprüft, ob ein aktueller Speicherblock des Zielsoftware-Image bei einer entsprechenden aktuellen Speicheradresse (gleich dem Kopierzähler plus eins) bereits auf der Festplatte verfügbar ist (in diesem Fall nur an den Speicherorten oder im freigegebenen Bereich). Der Aktivitätsfluss verzweigt sich dann in Block 376 entsprechend dem Ergebnis der Überprüfung.
  • Wenn der aktuelle Speicherblock nicht auf der Festplatte verfügbar ist, lädt der Streaming-Treiber den aktuellen Speicherblock in Block 378 von der externen Quelle herunter. Andernfalls wird der Aktivitätsfluss von Block 376 aus nach unten mit Block 380 fortgesetzt. Wenn es sich an diesem Punkt bei dem aktuellen Speicherblock nicht um einen Startblock handelt, ruft ihn der Streaming-Treiber in Block 382 vom freigegebenen Bereich ab; insbesondere wird der aktuelle Speicherblock vom Speicherort abgerufen, der die Speicheradresse besitzt, die gleich der aktuellen Image-Adresse plus dem Versatz des freigegeben Bereichs ist (wenn der freigegebene Bereich als eine lokale Datenablage arbeitet) oder vom Speicherort mit der Speicheradresse, die dem Eintrag der Nachschlagetabelle zugeordnet ist, der die ausgewählte Image-Adresse speichert (wenn der freigegebene Bereich als lokaler Cachespeicher arbeitet). Das Verfahren 300 wird dann von Block 378 oder von Block 382 kommend nach unten mit Block 384 fortgesetzt. In dieser Phase wird der aktuelle Speicherblock an seinen korrekten Speicherort (mit der Speicheradresse, die gleich der aktuellen Image-Adresse ist) kopiert, wobei der Kopierzähler dann um eins erhöht wird; wenn der freigegebene Bereich als lokaler Cachespeicher arbeitet, wird gleichzeitig der entsprechende Eintrag in der Nachschlagetabelle geräumt (indem seine Image-Adresse auf den Wert Null gesetzt wird). Der Aktivitätsfluss wird nun mit Block 386 fortgesetzt; derselbe Punkt wird auch direkt von Block 380 aus erreicht, ohne irgendeine Operation durchzuführen, wenn es sich bei dem aktuellen Speicherblock um einen Startblock handelt (da er bereits an der korrekten Position gespeichert ist). Nun wird ein Test vorgenommen, um zu überprüfen, ob alle Speicherblöcke des Zielsoftware-Image verarbeitet wurden. Falls nicht, kehrt der Aktivitätsfluss zu Block 372 zurück, um dieselben Operationen an einem nächsten Speicherblock des Zielsoftware-Image zu wiederholen. Andernfalls wird die Schleife durch Fortfahren nach unten mit Block 388 verlassen, wobei der Implementierungsagent den Streaming-Treiber deaktiviert (und ihn zudem von der Startsequenz des Zielsoftware-Image entfernt). An diesem Punkt schaltet der Implementierungs-Agent in Block 390 den Computer aus und dann ein, um ihn vom Zielsoftware-Image für seinen normalen Betrieb neu zu starten (ohne dass die externe Quelle länger benötigt wird).
  • Diese Kopierprozedur kann im Hintergrund durchgeführt werden, so dass sie für den Betrieb des Computers im Wesentlichen nicht erkennbar ist; auf diese Weise kann der Computer normal weiterarbeiten, wobei der einzige Unterschied darin liegt, dass auf jeden beliebigen Speicherblock nun an seiner korrekten Position zugegriffen wird, nachdem er dorthin kopiert wurde. Genauer wird im Falle, dass dem Betriebssystem eine Anfrage zum Zugreifen (entweder zum Lesen oder Schreiben) auf einen ausgewählten Speicherblock des Zielsoftware-Image übermittelt wird, die Zugriffsanfrage erneut an den Streaming-Treiber weitergeleitet, der überprüft, ob der ausgewählte Speicherblock bereits kopiert wurde (d. h., ob die ausgewählte Image-Adresse niedriger als oder gleich dem Kopierzähler ist). Falls ja, wird auf den ausgewählten Speicherblock am Speicherort mit der Speicheradresse zugegriffen, die gleich der ausgewählten Image-Adresse ist; andernfalls wird der ausgewählte Speicherblock durch Wiederholen derselben vorstehend beschriebenen Operationen gelesen oder geschrieben.
  • Zum Beispiel können die Operationen der Kopierprozedur entsprechend einer Arbeitslast des Computers wiederholt werden. Zu diesem Zweck wird die Arbeitslast des Computers überwacht (zum Beispiel alle 10 bis 100 ms); wenn die Arbeitslast des Computers niedriger als ein zuvor festgelegter Schwellenwert ist (zum Beispiel, weil im Moment keine Operation durchgeführt wird), werden ein oder mehrere Blöcke des Zielsoftware-Image durch Wiederholen der vorstehend beschriebenen Operationen kopiert. Auf diese Weise ist es möglich, die Auswirkung der Kopierprozedur auf den Betrieb des Computers zu minimieren. Infolgedessen ist das tatsächliche Umschalten auf das Zielsoftware-Image sehr schnell (da es nur das Neustarten des Computers erfordert).
  • Alternativ wird das Verfahren 300 stattdessen (von Block 358 oder von Block 366 oder von Block 368 kommend) nach unten mit Block 392 fortgesetzt, sobald dem Implementierungs-Agenten eine Anfrage zum Rückabwickeln des Quellsoftware-Image übermittelt wird. Als Reaktion darauf stellt der Implementierungs-Agent in Block 394 die Speicherblöcke des Quellsoftware-Image von den verlagerten Speicherorten an den Startorten des Zielsoftware-Image wieder her (indem sie aufeinander folgend von den verlagerten Speicherorten gelesen und in derselben Reihenfolge an die entsprechenden Startorte der Zielsoftware-Images kopiert werden, wie in seiner Startliste angegeben). Dann vergrößert der Implementierungs-Agent das Quellsoftware-Image in Block 396 (zum Beispiel erneut durch Verwenden einer integrierten Funktion des Quellbetriebssystems), um seine ursprüngliche Größe wiederherzustellen, und hebt dann sämtliche Speicherblöcke des Zielsoftware-Image auf. An diesem Punkt schaltet der Implementierungs-Agent in Block 398 den Computer aus und dann ein, um ihn vom Quellsoftware-Image für seinen normalen Betrieb neu zu starten.
  • In beiden Fällen endet das Verfahren 300 bei den konzentrischen weißen/schwarzen Stoppkreisen 399 (entweder von Block 390 oder von Block 398 kommend).
  • Die vorstehend beschriebene Lösung erfordert die Kenntnis der Startblöcke jedes Software-Image. Zu diesem Zweck ist es zum Beispiel möglich, das Software-Image entsprechend vorzubereiten. In dieser Hinsicht wird auf 4 Bezug genommen, die ein Kollaborationsschaubild zeigt, das die Funktionen der (als Ganzes mit der Bezugsziffer 400 bezeichneten) Hauptsoftwarekomponenten wiedergibt, die verwendet werden können, um einen Vorbereitungsprozess eines generischen Software-Image zu realisieren, das in der Lösung gemäß einer Ausführungsform der Erfindung zu verwenden ist.
  • Der Vorbereitungsprozess wird in einem System realisiert, das einen Servercomputer 405s enthält (mit seinem Arbeitsspeicher und Massenspeicher, die mit den Bezugszeichen 415s bzw. 430s bezeichnet sind). Auf dem Servercomputer 405s wird ein Implementierungs-Verwalter 435 ausgeführt – zum Beispiel der IBM Tivoli Provisioning Manager for Images (oder TPMfI) des IBM Tivoli Provisioning Manager for OS Deployment (oder TPM for OSD) der IBM Corporation (IBM und Tivoli sind Marken der IBM Corporation). Der Implementierungs-Verwalter 435 verwaltet eine Datenablage von Hauptsoftware-Images (oder einfach Haupt-Images) 440; jedes Haupt-Image 440 stellt eine grundlegende Version eines entsprechenden Software-Image bereit (das zum Beispiel durch Erfassen des Inhalts einer Festplatte eines Spendercomputers erstellt wird, auf dem es zuvor installiert war), wobei spezifische, sich auf eine beliebige Konfiguration des Spendercomputers beziehende Inhalte (zum Beispiel Treiber- und Registrierungseinstellungen) entfernt wurden. Der Servercomputer 405s enthält zudem eine Ablage von Modellen 445; jedes Modell 445 enthält stattdessen Inhalte, die spezifisch für eine entsprechende Konfiguration der Computer sind, auf denen die Software-Images bereitgestellt werden müssen. Darüber hinaus interagiert der Implementierungs-Verwalter 435 mit einem Fernzugriffserver 450, der dazu dient, den Fernzugriff auf Daten zu ermöglichen (zum Beispiel auf der Grundlage des iSCSI-Protokolls).
  • Ein Bediener 455 wählt ein Software-Image (das ein ausgewähltes Haupt-Image 440 und ein ausgewähltes Modell 445 enthält) für einen spezifischen Computertyp aus, der durch einen entsprechenden Hilfscomputer 405a repräsentiert wird (Aktion „B1: Auswählen”). Auf dem Hilfscomputer 405a (mit seinem Arbeitsspeicher und Massenspeicher, die mit den Bezugszeichen 415a bzw. 430a bezeichnet sind) wird ein Implementierungs-Agent 460 zum Interagieren mit dem Implementierungs-Verwalter 435 ausgeführt. Als Reaktion darauf weckt der Implementierungs-Verwalter 435 den Implementierungs-Agenten 460 auf dem Hilfscomputer 405a auf, indem er eine Kennung des ausgewählten Software-Image weiterleitet (Aktion „B2: Aufwecken”). Als Folge bindet der Implementierungs-Agent 460 das ausgewählte Software-Image als eine entfernt angeordnete Platte (d. h. durch Agieren als ein iSCSI-Initiator im vorliegenden Beispiel) zum Fernzugriff auf sie über den Fernzugriffserver 450 ein. Als Ergebnis wird ein temporäres Software-Image (oder einfach temporäres Image) 465 für den ausschließlichen Zugriff durch den Hilfscomputer 405a erstellt; das temporäre Image 465 ist einfach über eine Indexstruktur definiert, die auf die Speicherblöcke des ausgewählten Haupt-Image 440 und des ausgewählten Modells 445 verweist – d. h., ohne irgendeine Kopie davon anzufertigen. Das temporäre Image 465 wird mit einer aktivierten Blockverfolgungsfunktion eingebunden, um die Image-Adresse jedes beliebigen Speicherblocks des temporären Image 465 zu verfolgen, auf den zugegriffen wird (Aktion „B3: Einbinden”).
  • An diesem Punkt simuliert der Implementierungs-Agent 460 die Startsequenz des Hilfscomputers 405a auf dem temporären Image 465 (bis zum Laden des Implementierungs-Agenten); zum Beispiel liest in Microsoft Windows der Implementierungs-Agent 460 die MBR, den Startsektor, die Datei „bootmgr.exe”, die Datei „boot\bcd” die Systemregistrierung, die Datei „winload.exe”, die in der Systemregistrierung angegebenen Treiberdateien und den Streaming-Treiber (Aktion „B4: Simuliertes Starten”). Nachdem die simulierte Startsequenz abgeschlossen wurde, hebt der Implementierungs-Agent die Einbindung des temporären Image 465 auf (Aktion „B5: Einbindung aufheben”). Dann veranlasst der Implementierungs-Agent 460 ein Übernehmen des temporären Image 465 durch den Implementierungs-Verwalter 435 (Aktion „B6: Übernehmen”). Als Reaktion darauf baut der Implementierungs-Verwalter 435 ein neues Software-Image (oder einfach neues Image) 470 aus dem temporären (einfach durch seine Indexstruktur definierten) Image auf; darüber hinaus wird das neue Image 470 der Liste der Speicherblöcke zugeordnet, auf die während der simulierten Startprozedur zugegriffen wurde, wobei die Speicherblöcke die entsprechenden Startblöcke festlegen (Aktion „B7: Aufbauen”).,
  • Die Software-Images können jedes Softwareprogramm enthalten (zum Beispiel nur das Betriebssystem ohne jegliche Anwendungsprogramme); gleichermaßen können die Speicherblöcke jede beliebige Art von Informationen enthalten (zum Beispiel einen bzw. eine oder mehrere Sektoren, Dateien, Bibliotheken, Verzeichnisse, Kombinationen oder Teile davon). Darüber hinaus kann das Zielsoftware-Image von jeder beliebigen äquivalenten externen Quelle (zum Beispiel einer Wechselspeichereinheit) bereitgestellt werden. In jedem Fall kann die vorgeschlagene Technik verwendet werden, ein anderes Betriebssystem zu installieren, den Computer auf eine vorherige Version desselben Betriebssystem herabzustufen, eine Momentaufnahme des Computers für die Wiederherstellung nach einem Computer-Absturz (desaster recovery) wiederherzustellen oder aus einem beliebigen anderen Grund.
  • Dieselbe Technik kann zudem auf ein beliebiges anderes Betriebssystem mit welcher Startsequenz auch immer angewandt werden. Zum Beispiel enthalten bei Linux (einer Marke von Linus Torvalds) die Startblöcke (zusätzlich zum Streaming-Treiber) die MBR, die den GRUB-Startlader enthält und das Verzeichnis „/boot”, das den Kernel und das Dateisystem „initrd” enthält; in diesem Fall lädt das BIOS während der Startsequenz die MBR einschließlich des GRUB, der GRUB findet das Verzeichnis „/boot” und lädt den Kernel und das Dateisystem „initrd”, der GRUB startet auf dem Kernel, der Kernel startet das Dateisystem „initrd”, und das Dateisystem „initrd” startet den Streaming-Treiber.
  • In jedem Fall kann die vorstehend beschriebene Streaming-Funktion durch welche äquivalente Struktur auch immer realisiert werden (sogar ohne irgendeinen Implementierungs-Agenten). Darüber hinaus können die Software-Images auf eine andere Weise vorbereitet werden (zum Beispiel indem der Hilfscomputer tatsächlich gestartet wird und die Speicherblöcke verfolgt werden, auf die während der Startsequenz zugegriffen wird, um seine Startblöcke zu identifizieren).
  • Die vorgeschlagene Technik kann zudem dazu verwendet werden, das Zielsoftware-Image exakt so zu installieren, wie es durch die externe Quelle bereitgestellt wird (zum Beispiel, um eine vorherige Momentaufnahme des Computers wiederherzustellen).
  • In diesem Fall ist es auch möglich, das Übertragen jeglicher Konfigurationsinformationen des Quellsoftware-Image zu vermeiden.
  • In jedem Fall kann zu den Konfigurationsinformationen jeder beliebige andere Informationstyp zählen (zum Beispiel Anwendungsprogramme, Dokumente und Ähnliches); die Konfigurationsinformationen können zudem mit äquivalenten Techniken (auch manuell durch einfaches Kopieren der Dateien) vom Quellsoftware-Image erfasst und/oder auf das Zielsoftware-Image angewandt werden.
  • Die Operation des Übernehmens der Migration zum Zielsoftware-Image (durch Kopieren seiner Speicherblöcke an deren korrekte Position innerhalb der Festplatte) kann auf andere Weise durchgeführt werden.
  • Zum Beispiel können die Speicherblöcke, auch während der Computer getestet wird, kontinuierlich heruntergeladen werden; darüber hinaus ist es auch möglich, die Migration zum Zielsoftware-Image in einer einzigen Aktion zu übernehmen (zum Beispiel durch gleichzeitiges Kopieren all seiner Speicherblöcke, nachdem sie heruntergeladen wurden).
  • Die Arbeitslast kann mit jeder beliebigen anderen Häufigkeit oder während bestimmter Zeitdauern überwacht werden (zum Beispiel nachts); ähnliche Überlegungen gelten, wenn die Arbeitslast für den Computer, den Server, das Netzwerk oder jede beliebige Kombination davon überwacht wird. Darüber hinaus kann der Schwellenwert für die Arbeitslast auf jede beliebige andere Weise definiert werden (zum Beispiel durch Gewichten seiner Beiträge mit unterschiedlichen Gewichtungen). Ähnliche Überlegungen gelten bei Abfallen der Arbeitslast unter den Schwellenwert, falls zwei oder mehr Speicherblöcke gleichzeitig heruntergeladen werden.
  • Gleichwertige Algorithmen können realisiert werden, um die Kohärenz der Speicherblöcke des Zielsoftware-Image sicherzustellen, während sie an ihre korrekten Positionen kopiert werden.
  • Alternativ ist es auch möglich, den Streaming-Treiber stets aktiviert zu halten, auch nachdem das Zielsoftware-Image vollständig heruntergeladen wurde (zum Beispiel zum Herunterladen aktueller Versionen der Speicherblöcke).
  • Ähnliche Überlegungen gelten, wenn andere Prozeduren zum Rückabwickeln auf das Quellsoftware-Image ins Auge gefasst werden.
  • Der freigegebene Bereich der Festplatte kann auf beliebige andere Weise erhalten werden (zum Beispiel durch Komprimieren einiger Dateien); in jedem der Fälle wird unter Umständen nur ein Teil der Festplatte verkleinert (zum Beispiel manche Partitionen davon).
  • Jede beliebige äquivalente Steuerungsstruktur kann zur Verwendung durch den Streaming-Treiber realisiert werden (wenn der freigegebene Bereich entweder als lokale Datenablage oder lokaler Cachespeicher arbeitet).
  • Das Computerprogramm kann in Objektcode oder in Quellcode vorliegen, um zum Beispiel kompiliert oder übersetzt (interpreted) zu werden.
  • Jede Komponente des Datenverarbeitungssystems kann in mehrere Elemente aufgeteilt werden, oder zwei oder mehr Komponenten können zusammen in einem einzigen Element vereint werden; darüber hinaus kann jede Komponente wiederholt werden, um die parallele Ausführung der entsprechenden Vorgänge zu unterstützen.

Claims (15)

  1. Verfahren (300) zum Migrieren einer Datenverarbeitungs-Entität (100) von einem auf einem Massenspeicher (130) der Datenverarbeitungs-Entität installierten Quellsoftware-Image (205s) zu einem auf einer externen Quelle (225) gespeicherten Zielsoftware-Image, wobei jedes Software-Image eine Mehrzahl von Speicherblöcken aufweist, von denen jeder eine entsprechende Image-Adresse innerhalb des Software-Image besitzt, und der Massenspeicher eine Mehrzahl von Speicherorten enthält, von denen jeder zum Speichern eines Speicherblocks dient, und der Speicherort eine entsprechende Speicheradresse innerhalb des Massenspeichers besitzt, wobei das Verfahren die Schritte beinhaltet des: Freigebens (306) eines Bereichs des Massenspeichers, Herunterladens eines Satzes von Startblöcken des Zielsoftware-Images von der externen Quelle (225), Verlagerns (310) von Speicherblöcken des Quellsoftware-Image in den freigegebenen Bereich des Massenspeichers, Speicherns des heruntergeladenen Satzes von Startblöcken des Zielsoftware-Images an Startorte des Massenspeichers, wobei es sich bei den Startorten um diejenigen Speicherorte handelt, deren Speicheradressen gleich den Image-Adressen von Startblöcken des Zielsoftware-Images sind, welche die Speicherblöcke enthalten, die zum Starten der Datenverarbeitungs-Entität erforderlich sind, um eine zum Herunterladen des Zielsoftware-Image von der externen Quelle eingerichtete Streaming-Funktion (215) zu laden, wobei die Startblöcke des Zielsoftware-Images auf dem Massenspeicher für eine Startsequenz des Zielsoftware-Images geeignet angeordnet sind, Re-Booten (316) der Datenverarbeitungs-Entität von den Startblöcken an den entsprechenden Startorten, wobei die Streaming-Funktion geladen wird, Bedienens (330 bis 350) jeder Anfrage zum Lesen eines ausgewählten Speicherblocks des Zielsoftware-Image durch die Streaming-Funktion, wobei die Streaming-Funktion den ausgewählten Speicherblock von der externen Quelle herunterlädt (336) und den ausgewählten Speicherblock im freigegebenen Bereich speichert (338 bis 346), wenn der ausgewählte Speicherblock nicht im Massenspeicher verfügbar ist, oder andernfalls den ausgewählten Speicherblock aus dem Massenspeicher abruft (348).
  2. Verfahren (300) nach Anspruch 1, das weiterhin den Schritt beinhaltet des: Bedienens (352 bis 368) jeder Anfrage zum Schreiben eines weiteren ausgewählten Speicherblocks des Zielsoftware-Image durch die Streaming-Funktion (215), wobei die Streaming-Funktion den weiteren ausgewählten Speicherblock am entsprechenden Startort speichert, wenn es sich bei dem weiteren ausgewählten Speicherblock um einen der Startblöcke handelt, oder andernfalls im freigegebenen Bereich speichert (354 bis 368).
  3. Verfahren (300) nach Anspruch 1 oder 2, wobei das Verfahren nach dem Booten (316) der Datenverarbeitungs-Entität weiterhin die Schritte beinhaltet des: Sammelns (318 bis 326) von Konfigurationsinformationen von dem Quellsoftware-Image, und Anwendens (328) der Konfigurationsinformationen auf das Zielsoftware-Image durch Speichern entsprechender Speicherblöcke in dem freigegebenen Bereich.
  4. Verfahren (300) nach Anspruch 3, wobei der Schritt des Sammelns (318 bis 326) von Konfigurationsinformationen von dem Quellsoftware-Image aufweist: Abrufen (320 bis 324) eines Satzes von Konfigurationsspeicherblöcken des Quellsoftware-Image, wobei jeder Konfigurationsspeicherblock aus dem freigegebenen Bereich abgerufen wird, wenn er dorthin verlagert wurde, oder andernfalls vom entsprechenden Speicherort abgerufen wird.
  5. Verfahren (300) nach einem der Ansprüche 1 bis 4, weiterhin aufweisend als Reaktion auf eine Anfrage (370) zum Übernehmen der Migration zum Zielsoftware-Image den Schritt des: Kopierens (372 bis 386) aller Speicherblöcke des Zielsoftware-Image, die sich von den Startblöcken unterscheiden, an die Speicherorte, deren Speicheradressen gleich den entsprechenden Image-Adressen sind.
  6. Verfahren (300) nach Anspruch 5, wobei der Schritt des Kopierens (374 bis 386) aller Speicherblöcke des Zielsoftware-Image die Wiederholung des Schrittes des Kopierens (374 bis 384) mindestens eines aktuellen Speicherblocks des Zielsoftware-Image beinhaltet durch: Herunterladen (378) des aktuellen Speicherblocks von der externen Quelle, wenn der aktuelle Speicherblock nicht im freigegebenen Bereich verfügbar ist, oder andernfalls Abrufen (382) des aktuellen Speicherblocks aus dem freigegebenen Bereich, und Speichern (384) des aktuellen Speicherblocks am Speicherort, dessen Speicheradresse gleich der entsprechenden Image-Adresse ist.
  7. Verfahren (300) nach Anspruch 6, wobei der Schritt des Kopierens (374 bis 386) aller Speicherblöcke des Zielsoftware-Image beinhaltet: Überwachen einer Arbeitslast der Datenverarbeitungs-Entität, wobei der Schritt des Kopierens (374 bis 384) mindestens eines aktuellen Speicherblocks des Zielsoftware-Image durchgeführt wird, wenn die Arbeitslast unter einen Schwellenwert fällt.
  8. Verfahren (300) nach einem der Ansprüche 5 bis 7, wobei die Streaming-Funktion nach der Anfrage (370) zum Übernehmen der Migration zum Zielsoftware-Image den im Massenspeicher verfügbaren ausgewählten Speicherblock von dem Speicherort abruft, dessen Speicheradresse gleich der entsprechenden Image-Adresse ist, nachdem der ausgewählte Speicherblock dorthin kopiert wurde oder andernfalls vom freigegebenen Bereich abruft und den weiteren ausgewählten Speicherblock an dem Speicherort im Massenspeicher speichert (384), dessen Speicheradresse gleich der entsprechenden Image-Adresse ist, nachdem der weitere ausgewählte Speicherblock dorthin kopiert wurde.
  9. Verfahren (300) nach einem der Ansprüche 5 bis 8, das weiterhin den Schritt beinhaltet des: Deaktivierens (388) der Streaming-Funktion nach dem Kopieren (372 bis 386) aller Speicherblöcke des Zielsoftware-Image.
  10. Verfahren (300) nach einem der Ansprüche 1 bis 9, weiterhin beinhaltend als Reaktion auf eine Anfrage (392) zum Rückabwickeln auf das Zielsoftware-Image, die Schritte des: Wiederherstellens (394) der verlagerten Speicherblöcke an den Speicherorten des Zielsoftware-Image, und Wiederherstellens (396) des freigegebenen Bereichs des Massenspeichers.
  11. Verfahren (300) nach einem der Ansprüche 1 bis 10, wobei der Schritt des Freigebens (306) eines Bereichs des Massenspeichers beinhaltet: Verkleinern (306) des Quellsoftware-Image.
  12. Verfahren (300) nach einem der Ansprüche 1 bis 11, wobei der freigegebene Bereich (230) eine Größe besitzt, die ausreicht, um alle Speicherblöcke des Zielsoftware-Image (225) zu speichern, wobei die Schritte des Speicherns (338 bis 346) des ausgewählten Speicherblocks und des Speicherns (354 bis 368) des weiteren ausgewählten Speicherblocks aufweisen: Speichern des ausgewählten Speicherblocks oder des weiteren ausgewählten Speicherblocks an einem Speicherort des freigegeben Bereichs, dessen Speicheradresse gleich der entsprechenden Image-Adresse plus einem Versatz des freigegebenen Bereichs innerhalb des Massenspeichers ist.
  13. Verfahren (300) nach einem der Ansprüche 1 bis 12, wobei der freigegebene Bereich (230) eine Größe besitzt, die ausreicht, um nur einen Teil der Speicherblöcke des Zielsoftware-Image zu speichern, wobei die Schritte des Speicherns (338 bis 346) des ausgewählten Speicherblocks und des Speicherns (354 bis 368) des weiteren ausgewählten Speicherblocks beinhalten: Suchen (340; 360) nach einem im freigegebenen Bereich verfügbaren freien Speicherort, um den ausgewählten Speicherblock oder den weiteren ausgewählten Speicherblock zu speichern. Erzeugen (344; 364) des freien Speicherortes durch Räumen eines ausgewählten Speicherorts des freigegebenen Bereichs, wenn kein freier Speicherort gefunden wird, wobei der ausgewählte Speicherort unter den Speicherorten des freigegebenen Bereichs ausgewählt wird, in denen ein Speicherblock gespeichert ist, der nicht nach dessen Herunterladen geschrieben wird, und Speichern (346; 366) des ausgewählten Speicherblocks oder des weiteren ausgewählten Speicherblocks am freien Speicherort.
  14. Computerprogramm (200), das ein Codemittel aufweist, um ein Datenverarbeitungssystem (100) zu veranlassen, die Schritte des Verfahrens (300) nach einem der Ansprüche 1 bis 13 durchzuführen, wenn das Computerprogramm auf dem Datenverarbeitungssystem ausgeführt wird.
  15. Datenverarbeitungssystem (100), das ein Mittel (200) zum Durchführen der Schritte des Verfahrens (300) nach einem der Ansprüche 1 bis 13 enthält.
DE112011104356.2T 2010-12-13 2011-11-10 Aktualisieren von Software-Images auf der Grundlage von Streaming-Technik Active DE112011104356B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP10194709 2010-12-13
EP10194709.1 2010-12-13
PCT/EP2011/069873 WO2012079864A1 (en) 2010-12-13 2011-11-10 Upgrade of software images based on streaming technique

Publications (2)

Publication Number Publication Date
DE112011104356T5 DE112011104356T5 (de) 2013-09-12
DE112011104356B4 true DE112011104356B4 (de) 2014-05-15

Family

ID=44983528

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112011104356.2T Active DE112011104356B4 (de) 2010-12-13 2011-11-10 Aktualisieren von Software-Images auf der Grundlage von Streaming-Technik

Country Status (7)

Country Link
US (2) US9058235B2 (de)
JP (1) JP5911504B2 (de)
CN (1) CN103250134B (de)
CA (1) CA2817109C (de)
DE (1) DE112011104356B4 (de)
GB (1) GB2499964B (de)
WO (1) WO2012079864A1 (de)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8996667B2 (en) 2010-04-27 2015-03-31 International Business Machines Corporation Deploying an operating system
US9052918B2 (en) 2010-12-14 2015-06-09 International Business Machines Corporation Management of multiple software images with shared memory blocks
US9058235B2 (en) 2010-12-13 2015-06-16 International Business Machines Corporation Upgrade of software images based on streaming technique
US9086892B2 (en) 2010-11-23 2015-07-21 International Business Machines Corporation Direct migration of software images with streaming technique
US9230113B2 (en) 2010-12-09 2016-01-05 International Business Machines Corporation Encrypting and decrypting a virtual disc

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9678769B1 (en) 2013-06-12 2017-06-13 Amazon Technologies, Inc. Offline volume modifications
US10409625B1 (en) * 2013-09-17 2019-09-10 Amazon Technologies, Inc. Version management for hosted computing workspaces
US10671545B2 (en) 2014-06-28 2020-06-02 Vmware, Inc. Asynchronous encryption and decryption of virtual machine memory for live migration
US9760443B2 (en) 2014-06-28 2017-09-12 Vmware, Inc. Using a recovery snapshot during live migration
US9766930B2 (en) 2014-06-28 2017-09-19 Vmware, Inc. Using active/passive asynchronous replicated storage for live migration
US9672120B2 (en) 2014-06-28 2017-06-06 Vmware, Inc. Maintaining consistency using reverse replication during live migration
US9626212B2 (en) * 2014-06-28 2017-04-18 Vmware, Inc. Live migration of virtual machines with memory state sharing
US9898320B2 (en) 2014-06-28 2018-02-20 Vmware, Inc. Using a delta query to seed live migration
CN104407918B (zh) * 2014-11-29 2017-06-27 中国航空工业集团公司第六三一研究所 一种航空电子系统任务数据的保存和恢复方法
US10585654B2 (en) * 2015-12-04 2020-03-10 Vmware, Inc. Deployment of processing components of computing infrastructure using annotated command objects
CN105468541B (zh) * 2015-12-11 2019-01-08 中南大学 一种面向透明计算智能终端的缓存管理方法
US10114702B2 (en) * 2016-01-06 2018-10-30 International Business Machines Corporation Method and system to discover and manage distributed applications in virtualization environments
CN105677256A (zh) * 2016-01-08 2016-06-15 中电科华云信息技术有限公司 基于本地缓存的虚拟磁盘系统及调度方法
EP3286648B1 (de) 2016-02-12 2020-08-26 Hewlett-Packard Enterprise Development LP Zusammenfügung von betriebssystemvolumen
US10579358B2 (en) * 2016-11-10 2020-03-03 Cisco Technology, Inc. Space-optimized software installation using in-place extractable archive image
US20220413825A1 (en) * 2021-06-29 2022-12-29 EMC IP Holding Company LLC Immutable edge devices

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040010787A1 (en) * 2002-07-11 2004-01-15 Traut Eric P. Method for forking or migrating a virtual machine
US6920555B1 (en) * 2001-03-10 2005-07-19 Powerquest Corporation Method for deploying an image into other partition on a computer system by using an imaging tool and coordinating migration of user profile to the imaged computer system

Family Cites Families (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6075858A (en) 1995-10-27 2000-06-13 Scm Microsystems (U.S.) Inc. Encryption key system and method
US5991876A (en) 1996-04-01 1999-11-23 Copyright Clearance Center, Inc. Electronic rights management and authorization system
US6098158A (en) 1997-12-18 2000-08-01 International Business Machines Corporation Software-enabled fast boot
US6567774B1 (en) 1998-01-30 2003-05-20 Compaq Computer Corporation Method and system for configuring and updating networked client stations using a virtual disk and a snapshot disk
US6385721B1 (en) 1999-01-22 2002-05-07 Hewlett-Packard Company Computer with bootable hibernation partition
US6973447B1 (en) 2000-03-23 2005-12-06 International Business Machines Corporation System apparatus and method for supporting multiple partitions including multiple systems in boot code
US8140683B2 (en) 2000-12-07 2012-03-20 International Business Machines Corporation Method and system for selecting an operating system at user login on a target device
US7428636B1 (en) 2001-04-26 2008-09-23 Vmware, Inc. Selective encryption system and method for I/O operations
FR2824646B1 (fr) 2001-05-09 2003-08-15 Canal Plus Technologies Procede de selection d'une image de logiciel executable
US7103747B2 (en) 2001-06-28 2006-09-05 Hewlett-Packard Development Company, L.P. Memory table and memory manager for use in managing memory
US20030126242A1 (en) 2001-12-28 2003-07-03 Chang Albert H. Network boot system and method using remotely-stored, client-specific boot images created from shared, base snapshot image
US7209874B2 (en) 2002-02-25 2007-04-24 Zoran Corporation Emulator-enabled network connectivity to a device
US7379982B2 (en) 2002-04-15 2008-05-27 Bassam Tabbara System and method for custom installation of an operating system on a remote client
JP2003316595A (ja) 2002-04-23 2003-11-07 Casio Comput Co Ltd インストール方法、ファイル更新方法、プログラム及びコンピュータシステム
US7107385B2 (en) 2002-08-09 2006-09-12 Network Appliance, Inc. Storage virtualization by layering virtual disk objects on a file system
US7062517B2 (en) 2002-08-14 2006-06-13 Hitachi, Ltd. Method and apparatus for centralized computer management
US6857011B2 (en) * 2002-10-31 2005-02-15 Paragon Development Systems, Inc. Method of remote imaging
JP2004192329A (ja) * 2002-12-11 2004-07-08 Fuji Photo Film Co Ltd プログラム書換え方法および端末装置
US6857069B1 (en) 2003-03-24 2005-02-15 Cisco Technology, Inc. Modified operating system boot sequence for iSCSI device support
US7360072B1 (en) 2003-03-28 2008-04-15 Cisco Technology, Inc. iSCSI system OS boot configuration modification
US6925533B2 (en) 2003-05-07 2005-08-02 International Business Machines Corporation Virtual disk image system with local cache disk for iSCSI communications
US7281247B2 (en) * 2003-06-24 2007-10-09 Microsoft Corporation Software image creation in a distributed build environment
US20070220494A1 (en) * 2003-11-06 2007-09-20 Intuwave Limited A Method of Rapid Software Application Development for a Wireless Mobile Device
US20050160150A1 (en) * 2004-01-20 2005-07-21 Su-Hwa Kao Apparatus and method for managing and transporting virtual disks over a network to networked stations
JP4900760B2 (ja) 2004-03-31 2012-03-21 株式会社日立製作所 Osイメージのデプロイメントマシン及び方法
JP4604543B2 (ja) * 2004-04-30 2011-01-05 日本電気株式会社 計算機、計算機起動方法、管理サーバ装置およびプログラム
US8230095B2 (en) 2004-05-07 2012-07-24 Wyse Technology, Inc. System and method for integrated on-demand delivery of operating system and applications
US7424601B2 (en) 2004-07-07 2008-09-09 Yongyong Xu Methods and systems for running multiple operating systems in a single mobile device
US7664834B2 (en) 2004-07-09 2010-02-16 Maxsp Corporation Distributed operating system management
US7269722B1 (en) 2004-07-26 2007-09-11 Sun Microsystems, Inc. Preview of UNIX boot process from multi-user level
US8346886B2 (en) 2004-09-08 2013-01-01 Red Hat, Inc. System, method, and medium for configuring client computers to operate disconnected from a server computer while using a master instance of the operating system
US7490197B2 (en) 2004-10-21 2009-02-10 Microsoft Corporation Using external memory devices to improve system performance
US7509530B2 (en) 2005-01-19 2009-03-24 Sonic Solutions Method and system for use in restoring an active partition
US7512833B1 (en) 2005-05-09 2009-03-31 Adam C. Murphy Universal imaging utility program
US7536541B2 (en) 2006-03-07 2009-05-19 Novell Inc. Parallelizing multiple boot images with virtual machines
US7653794B2 (en) 2006-05-08 2010-01-26 Microsoft Corporation Converting physical machines to virtual machines
US8234359B2 (en) * 2006-05-24 2012-07-31 Absolute Software Corp. System and method for remotely re-imaging a computer system
JP4725798B2 (ja) 2006-06-21 2011-07-13 日本電気株式会社 コンピュータシステム、ネットワークブートシステム、osイメージ切替方法、osイメージ切替プログラム
JP4584196B2 (ja) 2006-06-27 2010-11-17 九州日本電気ソフトウェア株式会社 情報処理システム、情報処理方法、およびプログラム
US7809919B2 (en) 2006-07-26 2010-10-05 Hewlett-Packard Development Company, L.P. Automatic data block misalignment detection and correction in a computer system utilizing a hard disk subsystem
JP4366698B2 (ja) 2006-07-27 2009-11-18 日本電気株式会社 計算機、計算機システム、及びディスクイメージ配布方法
US8387038B2 (en) 2006-08-14 2013-02-26 Caterpillar Inc. Method and system for automatic computer and user migration
JP4818868B2 (ja) 2006-10-05 2011-11-16 日本電信電話株式会社 仮想端末を利用した検疫ネットワークシステム、仮想端末を検疫する方法、及び、仮想端末を検疫するためのプログラム
US9086917B1 (en) 2006-10-17 2015-07-21 Manageiq, Inc. Registering and accessing virtual systems for use in a managed system
US9038062B2 (en) 2006-10-17 2015-05-19 Manageiq, Inc. Registering and accessing virtual systems for use in a managed system
US8032351B2 (en) 2006-11-30 2011-10-04 Symantec Corporation Running a virtual machine directly from a physical machine using snapshots
US20080141015A1 (en) 2006-12-06 2008-06-12 Glen Edmond Chalemin System and method for operating system deployment in a peer-to-peer computing environment
US8312115B2 (en) 2006-12-21 2012-11-13 1E Limited Network booting apparatus and method
JP2010522370A (ja) 2007-03-20 2010-07-01 サンギュ イ 移動型仮想マシンイメージ
US8331366B2 (en) * 2007-04-11 2012-12-11 Dell Products L.P. System and method for deployment of a software image to a plurality of target devices
US8245022B2 (en) 2007-06-01 2012-08-14 Dell Products L.P. Method and system to support ISCSI boot through management controllers
US20090049160A1 (en) 2007-08-14 2009-02-19 Dell Products L.P. System and Method for Deployment of a Software Image
US8375440B2 (en) 2007-10-15 2013-02-12 Microsoft Corporation Secure bait and switch resume
US8782637B2 (en) * 2007-11-03 2014-07-15 ATM Shafiqul Khalid Mini-cloud system for enabling user subscription to cloud service in residential environment
US20090164994A1 (en) 2007-12-20 2009-06-25 Virtual Computer, Inc. Virtual computing management systems and methods
US7953833B2 (en) * 2008-01-31 2011-05-31 Wanova Technologies Ltd. Desktop delivery for a distributed enterprise
CN100578461C (zh) 2008-03-12 2010-01-06 中兴通讯股份有限公司 一种引导程序的备份方法及其备份装置
US20090240953A1 (en) 2008-03-19 2009-09-24 Safenet, Inc. On-disk software image encryption
JP5062687B2 (ja) 2008-03-31 2012-10-31 Eugrid株式会社 情報処理装置
US7882342B1 (en) * 2008-03-31 2011-02-01 Symantec Corporation Systems and methods for imaging a computer system
JP5290287B2 (ja) * 2008-05-29 2013-09-18 株式会社シー・オー・コンヴ ネットワークブートシステム
SG158757A1 (en) 2008-07-10 2010-02-26 Fast And Safe Technology Pte L Method and apparatus for protecting data in computers
US8434093B2 (en) * 2008-08-07 2013-04-30 Code Systems Corporation Method and system for virtualization of software applications
US8510352B2 (en) * 2008-10-24 2013-08-13 Microsoft Corporation Virtualized boot block with discovery volume
US8701106B2 (en) 2008-11-30 2014-04-15 Red Hat Israel, Ltd. Hashing storage images of a virtual machine
US20100174894A1 (en) 2009-01-07 2010-07-08 Lenovo (Singapore) Pte, Ltd. Method, Apparatus, and System for Configuring an Operating System on a Target Computer
US8429639B2 (en) * 2009-02-10 2013-04-23 Microsoft Corporation Image-based software update
JP2010231567A (ja) 2009-03-27 2010-10-14 Fujitsu Ltd ストレージスイッチ、記憶領域サイズ変更方法
US20100318987A1 (en) * 2009-06-15 2010-12-16 Microsoft Corporation Bootstrapping streamed and virtualized applications
US8639917B1 (en) * 2009-10-20 2014-01-28 Vmware, Inc. Streaming a desktop image over wide area networks in which the desktop image is segmented into a prefetch set of files, streaming set of files and leave-behind set of files
US9130912B2 (en) * 2010-03-05 2015-09-08 International Business Machines Corporation System and method for assisting virtual machine instantiation and migration
US8312296B2 (en) 2010-03-10 2012-11-13 Dell Products L.P. System and method for recovering from an interrupted encryption and decryption operation performed on a volume
US8996667B2 (en) 2010-04-27 2015-03-31 International Business Machines Corporation Deploying an operating system
US8407662B2 (en) * 2010-06-25 2013-03-26 Wyse Technology Inc. Apparatus and method for network driver injection into target image
US8560825B2 (en) 2010-06-30 2013-10-15 International Business Machines Corporation Streaming virtual machine boot services over a network
GB2499956B (en) 2010-11-23 2018-02-14 Servicenow Inc Direct migration of software images with streaming technique
JP5904505B2 (ja) 2010-12-09 2016-04-13 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 仮想ディスクを暗号化及び復号するためのコンピュータ可読ストレージ媒体
CN103250134B (zh) 2010-12-13 2016-09-07 国际商业机器公司 基于流技术的软件映像更新
CN102567042B (zh) * 2010-12-14 2015-04-15 国际商业机器公司 利用引导块重定位来管理多个软件镜像的方法和系统
JP5767565B2 (ja) 2010-12-14 2015-08-19 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ソフトウェア・イメージの管理方法、コンピュータ・プログラム、およびシステム(共有メモリ・ブロックを用いた複数のソフトウェア・イメージの管理)

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6920555B1 (en) * 2001-03-10 2005-07-19 Powerquest Corporation Method for deploying an image into other partition on a computer system by using an imaging tool and coordinating migration of user profile to the imaged computer system
US20040010787A1 (en) * 2002-07-11 2004-01-15 Traut Eric P. Method for forking or migrating a virtual machine

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8996667B2 (en) 2010-04-27 2015-03-31 International Business Machines Corporation Deploying an operating system
US9086892B2 (en) 2010-11-23 2015-07-21 International Business Machines Corporation Direct migration of software images with streaming technique
US9230113B2 (en) 2010-12-09 2016-01-05 International Business Machines Corporation Encrypting and decrypting a virtual disc
US9230118B2 (en) 2010-12-09 2016-01-05 International Business Machines Corporation Encrypting and decrypting a virtual disc
US9626302B2 (en) 2010-12-09 2017-04-18 International Business Machines Corporation Encrypting and decrypting a virtual disc
US9058235B2 (en) 2010-12-13 2015-06-16 International Business Machines Corporation Upgrade of software images based on streaming technique
US9195452B2 (en) 2010-12-13 2015-11-24 International Business Machines Corporation Upgrade of software images based on streaming technique
US9052918B2 (en) 2010-12-14 2015-06-09 International Business Machines Corporation Management of multiple software images with shared memory blocks

Also Published As

Publication number Publication date
CA2817109A1 (en) 2012-06-21
CN103250134B (zh) 2016-09-07
CN103250134A (zh) 2013-08-14
WO2012079864A1 (en) 2012-06-21
US9058235B2 (en) 2015-06-16
JP2013545204A (ja) 2013-12-19
GB2499964A (en) 2013-09-04
JP5911504B2 (ja) 2016-05-11
CA2817109C (en) 2020-11-03
GB2499964B (en) 2013-12-11
DE112011104356T5 (de) 2013-09-12
US9195452B2 (en) 2015-11-24
US20150052508A1 (en) 2015-02-19
GB201311739D0 (en) 2013-08-14
US20130247020A1 (en) 2013-09-19

Similar Documents

Publication Publication Date Title
DE112011104356B4 (de) Aktualisieren von Software-Images auf der Grundlage von Streaming-Technik
DE112012004893B4 (de) Implementieren eines Software-Abbildes auf mehreren Zielen unter Verwendung einer Datenstromtechnik
DE10003108B4 (de) Verfahren und Computersystem zum Durchführen einer Softwareinstallation
DE60008929T2 (de) Schnellstart eines mikroprozessorbasierten systems
DE69838756T2 (de) Die verarbeitung von eingabe/ausgabeanforderungen von mehreren treibern ermöglichen dateisystem-primitivroutine in einem mehrschicht-treiber-e/a-system
DE102007048920B4 (de) System und Verfahren zum Kommunizieren von Informationen zwischen einer Mehrzahl von Informationsverarbeitungssystemen
DE112011102831T5 (de) Ein Verfahren, Computerprogramm und System zum automatischen Hochrüsten virtueller Einheiten
DE112012000693B4 (de) Ausführen einer Vielzahl von Instanzen einer Anwendung
DE112011103880T5 (de) Direktes Migrieren von Software-Abbildern mit Streaming-Technik
DE112018000848T5 (de) Registerkontextwiederherstellung auf der Grundlage der Wiedergewinnung von Umbenennungsregistern
DE202010017644U1 (de) Hybridspeichervorrichtung
DE112011103026T5 (de) Bedarfsgesteuertes Streaming von Abbildern virtueller Maschinen
DE112012002241T5 (de) Migration eines transparenten Dateisystems zu einem neuen physischen Speicherort
DE60313468T2 (de) Speicherdienste und -systeme
DE112012005146T5 (de) Verfahren und System zum Anwenden einer Programmkorrektur auf ein virtuelles Abbild
DE102004049454B4 (de) Verfahren zur Benutzung von Featuremarkern zur Bestimmung der Kompatibilität zwischen Bios-Revisionen und installierter Hardware bei der Flash-Aktualisierung
DE10297281T5 (de) Verfahren zum elementaren Aktualisieren einer Vielzahl von Dateien
DE102006047979A1 (de) Datenverarbeitungssystem und Verfahren zum Ausführen einer Testroutine in Verbindung mit einem Betriebssystem
DE112011103872T5 (de) Verfahren, Computer-Programm und System, um die Voraussetzung eines virtuellen Abbild eines Software-Produkts zu verwalten
DE102005037855A1 (de) System und Verfahren zum Speichern von Benutzerdaten in einer Partitionsdatei oder zum Verwenden einer Partitionsdatei, die Benutzerdaten enthält
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
DE202015009296U1 (de) System zum Laden virtueller Maschinen
DE112019000402T5 (de) Chronologisch geordnetes out-of-place-aktualisierungs-schlüssel-wert-speichersystem
DE102012221512A1 (de) Steuern der Verwendung virtueller Festplatten vor deren Anbindung an virtuelle Maschinen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R082 Change of representative

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE

Representative=s name: LIFETECH IP SPIES DANNER & PARTNER PATENTANWAE, DE

Representative=s name: SPIES DANNER & PARTNER PATENTANWAELTE PARTNERS, DE

R084 Declaration of willingness to licence
R082 Change of representative

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE

Representative=s name: LIFETECH IP SPIES DANNER & PARTNER PATENTANWAE, DE

R020 Patent grant now final
R020 Patent grant now final

Effective date: 20150217

R082 Change of representative

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE

R082 Change of representative

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE