-
Technisches Gebiet
-
Die vorliegende Anmeldung betrifft allgemein eine verbesserte Vorrichtung und ein verbessertes Verfahren zur Datenverarbeitung und insbesondere Mechanismen zur Verwendung von Client-Ressourcen während Mobilitätsoperationen zum Verbessern der Leistung und besseren Nutzung von Systemressourcen.
-
Hintergrund der Technik
-
Live Partition Mobility (LPM) ist eine Funktion von POWER6®- und POWER7®-Servern, die es ermöglicht, eine in Betrieb befindliche logische Partition (LPAR) von einem System in ein anderes zu verlagern. POWER6 und POWER7 sind Marken der International Business Machines Corporation in den Vereinigten Staaten und anderen Ländern. Die Quellen- und Zielsysteme müssen Zugang zu demselben Netzwerk und denselben Speicherbereichsnetzen (SANs) haben, müssen aber nicht vom selben Typ sein. Partitionen, die verlagert werden sollen, müssen vollständig virtualisiert sein (d.h. haben keine dedizierten Eingabe/Ausgabe- (E/A) Adapter), obwohl es möglich ist, Multipathing-Software zu verwenden, um während der Dauer der Verschiebung auf virtuelle Adapter auszuweichen.
-
Jede Partition mit einer Größenangabe kann verschoben werden; im Wesentlichen wird Arbeitsspeicher asynchron von einem System in ein anderes kopiert, um einen Klon von einer in Betrieb befindlichen Partition zu erstellen, wobei „genutzte“ Seiten nach Bedarf erneut kopiert werden. Wenn ein Schwellenwert erreicht wird (d.h. wenn ein hoher Prozentsatz der Seiten erfolgreich kopiert wurde), wird die Partition auf die Zielmaschine überführt, und alle restlichen Seiten werden synchron kopiert. Die Agents, die das Kopieren des Arbeitsspeichers ausführen, werden auf jeder Maschine als virtuelle E/A-Server (Virtual I/O Server) (VIOS) bezeichnet. LPM wird zum Vermeiden von Ausfällen für geplante Server-Wartung, für Lastausgleich über mehrere Server und zur Energieeinsparung verwendet.
-
Im Stand der Technik beschreibt US 2006 / 0 206 891 A1 ein System, ein Computerprogrammprodukt und ein Verfahren zur logischen Partitionierung eines Multiprozessorsystems. US 2009 / 0 217 283 A1 beschreibt eine Verbesserung der Systemressourcennutzung in einem Datenverarbeitungssystem.
-
Kurzdarstellung der Erfindung
-
Technisches Problem
-
Der Zweck dieser Erfindung ist die Lösung der Probleme, die unter „Hintergrund der Erfindung“ ersichtlich sind.
-
Lösung für das Problem
-
In einer veranschaulichenden Ausführungsform wird ein Verfahren in einem Datenverarbeitungssystem bereitgestellt, das in Reaktion auf einen virtuellen Maschinenmonitor ein Initiieren einer Migrationsoperation für eine logische Partition aufweist, um eine logische Partition von einem Quellensystem in ein Zielsystem zu verschieben, wobei ein Teil von Verarbeitungsressourcen von der logischen Partition auf den virtuellen Maschinenmonitor verlagert wird. Das Verfahren weist ferner ein Ausführen der Migrationsoperation für die logische Partition durch den virtuellen Maschinenmonitor auf. Der virtuelle Maschinenmonitor verwendet den Teil der Verarbeitungsressourcen, um die Migrationsoperation für die logische Partition zu bewirken. Das Verfahren weist ferner in Reaktion auf ein Abschließen der Migrationsoperation für die logische Partition ein Zurückgeben der Verarbeitungsressourcen an die logische Partition auf.
-
In weiteren veranschaulichenden Ausführungsformen wird ein Computerprogrammprodukt bereitgestellt, das ein von einem Computer verwendbares oder lesbares Medium mit einem computerlesbaren Programm aufweist. Wenn das computerlesbare Programm auf einer Datenverarbeitungseinheit ausgeführt wird, veranlasst es die Datenverarbeitungseinheit, verschiedene der einzelnen Operationen und Kombinationen davon auszuführen, die oben unter Bezugnahme auf das Verfahren der veranschaulichenden Ausführungsform dargelegt sind.
-
In noch einer weiteren veranschaulichenden Ausführungsform wird ein System/eine Vorrichtung bereitgestellt. Das System/die Vorrichtung kann einen oder mehrere Prozessoren und einen Arbeitsspeicher aufweisen, der mit dem einen oder den mehreren Prozessoren verbunden ist. Der Arbeitsspeicher kann Anweisungen aufweisen, die, wenn sie durch den einen oder die mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren veranlassen, verschiedene der einzelnen Operationen und Kombinationen davon auszuführen, die oben unter Bezugnahme auf das Verfahren der veranschaulichenden Ausführungsform dargelegt sind.
-
Diese und andere Merkmale und Vorteile der vorliegenden Erfindung werden in der folgenden ausführlichen Beschreibung der beispielhaften Ausführungsformen der vorliegenden Erfindung beschrieben oder werden dadurch für den Fachmann offenkundig.
-
Die Erfindung sowie ein bevorzugter Verwendungsmodus und weitere ihrer Zielsetzungen und Vorteile lassen sich am besten unter Bezugnahme auf die folgende ausführliche Beschreibung von veranschaulichenden Ausführungsformen in Verbindung mit den begleitenden Zeichnungen verstehen, wobei:
-
Kurze Beschreibung der Zeichnungen
-
- 1 eine bildliche Darstellung eines Beispiels für ein verteiltes Datenverarbeitungssystem ist, in dem Aspekte der veranschaulichenden Ausführungsformen umgesetzt werden können;
- 2 ein Blockschaubild eines beispielhaften Datenverarbeitungssystems ist, in dem Aspekte der veranschaulichenden Ausführungsformen umgesetzt werden können;
- 3 ein Blockschaubild ist, das eine Partitionsmigration mit Überlassung von Prozessorressourcen gemäß einer Ausführungsform veranschaulicht;
- 4 ein Blockschaubild ist, das eine Partitionsmigration mit Überlassung von Prozessorressourcen durch die migrierende Partition gemäß einer veranschaulichenden Ausführungsform darstellt;
- 5 ein Blockschaubild ist, das eine Partitionsmigration mit virtueller Maschinenmonitorkontrolle über Prozessorressourcen gemäß einer veranschaulichenden Ausführungsform darstellt;
- 6 ein Ablaufplan ist, der eine Partitionsmigrationsoperation mit Überlassung von Prozessorressourcen durch die migrierende Partition gemäß einer veranschaulichenden Ausführungsform darstellt; und
- 7 ein Ablaufplan ist, der eine Partitionsmigrationsoperation mit virtueller Maschinenmonitorkontrolle über Prozessorressourcen gemäß einer veranschaulichenden Ausführungsform darstellt.
-
Beschreibung von Ausführungsformen
-
Die veranschaulichenden Ausführungsformen stellen einen Mechanismus zum Verwenden von Client-Ressourcen während Mobilitätsoperationen zum Verbessern der Leistung und zur besseren Nutzung von Systemressourcen bereit. Live Partition Mobility (LPM) stellt die Fähigkeit bereit, eine in Betrieb befindliche Partition mit ihrem Betriebssystem (OS) und ihren Anwendungen von einem physischen Server (d.h. einem Computer-Elektronik-Komplex (CEC)) auf einen anderen zu verschieben, ohne den Betrieb dieser Partition zu unterbrechen. Eine virtuelle Einheit mit virtueller asynchroner Service-Schnittstelle (VASI) (Virtual Asynchronous Services Interface) und einer Kernel-Erweiterung einer Versetzungseinheit auf einer virtuellen E/A-Server- (VIOS) (Virtual I/O Server) Partition stellt die Funktion zum Übertragen des Partitionszustands von einem System in ein anderes bereit. Ein für die Verwendung dieser Funktionalität konfigurierter VIOS wird als Versetzungseinheit-Servicepartition (MSP) betrachtet.
-
Der POWER®-Hypervisor (PHYP) ist eine dünne Firmware-Ebene, die Kenntnis vom Zustand der Client-Partition hat, einschließlich des Arbeitsspeichers der Client-Partition. Ein Hypervisor ist ein Typ von virtuellem Maschinenmonitor eines Datenverarbeitungssystems, das virtuelle Maschinen (logische Partitionen) erstellt, ausführt und verwaltet. Ein Hypervisor oder VMM führt auch eine Virtualisierung von Ressourcen aus, die logischen Partitionen zugeordnet sind, und führt andere Funktionen zum Ausführen und Verwalten von logischen Partitionen aus. Zwar beziehen sich die hierin beschriebenen beispielhaften Ausführungsformen auf einen PHYP oder allgemeiner auf einen Hypervisor, doch gelten die Aspekte der Erfindung für jede Art von Virtualisierungskomponente oder VMM.
-
Während einer aktiven Migration stellt der PHYP Unterstützung für die Übertragung der Client-Informationen, sowohl des Zustands als auch des Arbeitsspeicherabbilds, zwischen den MSPs der Quellen- und Zielsysteme bereit. Zum Verschieben des Arbeitsspeicherabbilds des Clients sendet und verfolgt der PHYP den Client-Arbeitsspeicher und kann benutzte Seiten möglicherweise erneut senden, da der Client während fast der gesamten Mobilitätsoperation weiterhin in Betrieb ist.
-
In einer Umsetzung hat der PHYP keine eigene Arbeitsspeicher- oder Zentraleinheits- (CPU) Berechtigung, und er verlässt sich sowohl auf die Quellen- als auch Ziel-MSPs, dass sie die Ressourcen bereitstellen, die er während einer LPM-Operation zum sicheren Verschieben der Daten des Clients von einem physischen System in ein anderes benötigt.
-
Das Arbeitsspeicherabbild des Clients kann ziemlich groß sein, vor allem in Clients, die Datenbanken ausführen. Bei der aktuellen Geschwindigkeit der Einführung der LPM-Funktionalität besteht zusätzlich eine kontinuierliche Bestrebung, eine höhere Anzahl von gleichzeitigen Mobilitätsoperationen zu unterstützen. Die Menge von VIOS-CPU-Zyklen, die vom PHYP verwendet werden, nimmt zu, wenn die MSP die Mobilität großer Clients oder eine hohe Anzahl von mehreren gleichzeitigen Mobilitätsoperationen unterstützen muss.
-
Ein LPM-Benutzer muss zusätzliche Ressourcen auf einer VIOS-Partition zuordnen, damit eine MSP-Funktionalität unterstützt wird oder eine Auswirkung auf die Mobilitätsleistung oder andere Operationen auf dem VIOS erzielt wird. Obwohl Partitionsmobilität in jedem Rechenzentrum als zwingend erforderlich betrachtet wird, damit Ausfälle vermieden werden, ist es außerdem nicht wahrscheinlich, dass die LPM die gesamte Zeit über ausgeführt wird. Das bedeutet, dass bei aktuellen Lösungen für VIOS eine Größe für die Spitzenlasten angegeben werden muss, wodurch Ressourcen zu wenig genutzt werden, oder der Operator den zusätzlichen Schritt einer Zuteilung von Ressourcen zu dem VIOS ausführen muss, um Spitzenlasten zu unterstützen, bevor eine LPM-Operation ausgeführt wird.
-
Die veranschaulichenden Ausführungsformen stellen Mechanismen für den PHYP zum Verwenden von CPU-Ressourcen aus den Client-Partitionen bereit, die verschoben werden, wodurch CPU-Ressourcen auf der MSP freigegeben werden. Die Mechanismen verringern die Menge von VIOS-Ressourcen, die für Live-Mobilitätsoperationen für eine Partition notwendig sind. Die Mechanismen der veranschaulichenden Ausführungsformen ermöglichen eine verstärkte Gesamtauslastung des Systems und eventuelle Kosteneinsparungen.
-
Die Mechanismen der veranschaulichenden Ausführungsformen ermöglichen die Konfiguration einer VIOS-Partition mit weniger CPU-Ressourcen und unterstützen trotzdem weiterhin viele parallele Mobilitätsoperationen, einschließlich diejenigen von großen Clients. Die Mechanismen verringern die Auswirkung, die Mobilitätsoperationen auf nicht migrierende Clients haben, die von dem VIOS bedient werden. Hauptclient-Partitionen, die durch den Operator bereits durch zusätzliche CPU-Ressourcen begünstigt werden, schließen die Mobilitätsoperation wahrscheinlich schneller ab, wenn sie parallel zu anderen, weniger begünstigten Client-Partitionen migriert werden. Die Mechanismen verringern auch die CPU-Gemeinkosten im Zusammenhang mit dem VIOS durch Zuteilen von Zyklen zum PHYP, wodurch die System-Gesamteffizienz erhöht wird. Die Mechanismen der veranschaulichenden Ausführungen steigern auch die Gesamtleistung von Mobilitätsoperationen, weil der migrierende Client Zugang zu weniger CPU-Ressourcen hat, wodurch die Möglichkeiten des Clients zum Ändern von Arbeitsspeicherseiten verringert werden, die bereits an das Zielsystem gesendet wurden, was zu einer kleineren Anzahl von Seiten führt, die erneut gesendet werden müssen.
-
Die oben genannten Aspekte und Vorteile der veranschaulichenden Ausführungsformen der vorliegenden Erfindung werden hierin im Folgenden ausführlicher unter Bezugnahme auf die begleitenden Zeichnungen beschrieben. Es sollte klar sein, dass die Figuren nur eine Veranschaulichung von beispielhaften Ausführungsformen der vorliegenden Erfindung sein sollen. Die vorliegende Erfindung kann Aspekte, Ausführungsformen und Modifizierungen an den dargestellten beispielhaften Ausführungsformen einschließen, die in den Figuren nicht explizit gezeigt werden, für einen Fachmann in Anbetracht der vorliegenden Beschreibung der veranschaulichenden Ausführungsformen aber problemlos ersichtlich sind.
-
Wie einem Fachmann klar sein wird, können Aspekte der vorliegenden Erfindung als ein System, Verfahren oder Computerprogrammprodukt verkörpert werden. Dementsprechend können Aspekte der vorliegenden Erfindung in Gestalt einer vollständigen Hardware-Ausführungsform, einer vollständigen Software-Ausführungsform (einschließlich Firmware, residente Software, Mikrocode usw.) oder einer Ausführungsform vorliegen, die Software- und Hardware-Aspekte kombiniert, auf die alle hierin als „Schaltung“, „Modul“ oder „System“ Bezug genommen werden kann. Des Weiteren können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren beliebigen computerlesbaren Medien mit einem darin ausgeführten, von einem Computer verwendbaren Programmcode verkörpert ist.
-
Jede Kombination von einem oder mehreren computerlesbaren Medien kann verwendet werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Ein computerlesbares Speichermedium kann ein System, eine Vorrichtung oder ein Einheit von elektronischer, magnetischer, optischer, elektromagnetischer oder Halbleiter-Natur, jede geeignete Kombination aus dem Vorgenannten oder Entsprechungen davon sein. Zu spezielleren Beispielen (eine nicht erschöpfende Liste) für das computerlesbare Speichermedium würde Folgendes zählen: eine elektrische Einheit mit einer Speicherfähigkeit, eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), eine Einheit auf Lichtwellenleiter-Grundlage, ein tragbarer CD-ROM, eine optische Speichereinheit, eine Magnetspeichereinheit oder jede geeignete Kombination des Vorgenannten. In dem Kontext dieses Dokuments kann ein computerlesbares Speichermedium jedes konkrete Medium sein, das ein Programm enthalten oder speichern kann, das von oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Anweisungsausführung verwendet werden kann.
-
In einigen veranschaulichenden Ausführungsformen ist das computerlesbare Medium ein nicht-transitorisches computerlesbares Medium. Ein nicht-transitorisches computerlesbares Medium ist jedes Medium, das kein unabhängiges Signal oder eine unabhängige Ausbreitungswelle ist, d.h. ein reines Signal bzw. eine reine Ausbreitungswelle per se. Ein nicht-transitorisches computerlesbares Medium kann Signale und Ausbreitungswellen verwenden, ist aber nicht das Signal oder die Ausbreitungswelle selbst. Somit können zum Beispiel verschiedene Formen von Arbeitsspeichereinheiten und weitere Typen von Systemen, Einheiten oder Vorrichtungen, die Signale in beliebiger Weise einsetzen, wie zum Beispiel, um ihren Zustand aufrechtzuerhalten, als nicht-transitorische computerlesbare Medien innerhalb des Schutzumfangs der vorliegenden Erfindung betrachtet werden.
-
Ein computerlesbares Signalmedium kann andererseits ein verbreitetes Datensignal mit einem darin verkörperten computerlesbaren Programmcode enthalten, zum Beispiel in einem Basisband oder als Teil einer Trägerwelle. Ein derartiges verbreitetes Signal kann jede einer Vielfalt von Formen annehmen, unter anderem elektromagnetisch, optisch oder jede geeignete Kombination davon, es ist aber nicht darauf beschränkt. Ein computerlesbares Signalmedium kann jedes computerlesbare Medium sein, das kein computerlesbares Speichermedium ist und das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Anweisungsausführung übertragen, verbreiten oder transportieren kann. Desgleichen ist ein computerlesbares Speichermedium jedes computerlesbare Medium, das kein computerlesbares Signalmedium ist.
-
In einem computerlesbaren Medium verkörperter Computercode kann unter Verwendung jedes geeigneten Mediums übertragen werden, einschließlich drahtlos, drahtgebunden, über ein Lichtwellenleiterkabel, Funkfrequenz (HF) usw. oder jeder geeigneten Kombination davon, ist aber nicht darauf beschränkt.
-
Computerprogrammcode zum Ausführen von Operationen für Aspekte der vorliegenden Erfindung kann in jeder Kombination von einer oder mehreren Programmiersprachen geschrieben werden, einschließlich einer objektorientierten Programmiersprache wie Java™, Smalltalk™, C++ oder dergleichen und herkömmlichen prozeduralen Programmiersprachen wie der Programmiersprache „C“ oder ähnlichen Programmiersprachen. Der Programmcode kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In dem letzteren Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über jeden Typ von Netzwerk verbunden werden, einschließlich ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Nutzung eines Internet-Dienstanbieters).
-
Aspekte der vorliegenden Erfindung werden im Folgenden unter Bezugnahme auf Veranschaulichungen von Ablaufplänen und/oder Blockschaubildern von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß den veranschaulichenden Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block in den Veranschaulichungen von Ablaufplänen und/oder den Blockschaubildern und Kombinationen von Blöcken in den Veranschaulichungen von Ablaufplänen und/oder den Blockschaubildern durch Computerprogrammanweisungen umgesetzt werden können. Diese Computerprogrammanweisungen können für einen Prozessor eines Mehrzweckcomputers, eines Spezialcomputers oder andere Vorrichtungen, die programmierbare Daten verarbeiten, bereitgestellt werden, um eine Maschine zu erzeugen, sodass die Anweisungen, die über den Prozessor des Computers oder andere Vorrichtungen, die programmierbare Daten verarbeiten, ausgeführt werden, Mittel zum Umsetzen der Funktionen/Handlungen erstellen, die in dem Ablaufplan und/oder dem Block oder den Blöcken des Blockschaubilds angegeben sind.
-
Diese Computerprogrammanweisungen können auch in einem computerlesbaren Medium gespeichert werden, das einen Computer, eine andere Vorrichtung, die programmierbare Daten verarbeitet, oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Weise funktionieren, sodass die in dem computerlesbaren Medium gespeicherten Anweisungen einen Fertigungsartikel erzeugen, einschließlich Anweisungen, die die in dem Block oder den Blöcken von Ablaufplan und/oder Blockschaubild angegebene Funktion/Handlung umsetzen.
-
Die Computerprogrammanweisungen können auch auf einen Computer, eine andere Vorrichtung, die programmierbare Daten verarbeitet, oder andere Einheiten geladen werden, um die Ausführung einer Serie von Arbeitsschritten auf dem Computer, einer anderen Vorrichtung, die programmierbare Daten ausführt, oder anderen Einheiten zu veranlassen, um einen über den Computer umgesetzten Prozess zu erzeugen, sodass die Anweisungen, die auf dem Computer oder einer anderen programmierbaren Vorrichtung ausgeführt werden, Prozesse zum Umsetzen der Funktionen /Handlungen bereitstellen, die in dem Block oder den Blöcken des Ablaufplans und/oder des Blockschaubilds angegeben sind.
-
Der Ablaufplan und die Blockschaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb von möglichen Umsetzungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. Diesbezüglich kann jeder Block in dem Ablaufplan oder in den Blockschaubildern ein Modul, ein Segment oder einen Codeabschnitt darstellen, der eine oder mehrere ausführbare Anweisungen zum Umsetzen der angegebenen logischen Funktion(en) aufweist. Es ist ebenfalls anzumerken, dass in einigen alternativen Umsetzungen die in dem Block angegebenen Funktionen in einer anderen Reihenfolge auftreten können als in den Figuren angegeben. Zum Beispiel können zwei nacheinander gezeigte Blöcke tatsächlich im Wesentlichen parallel ausgeführt werden, oder die Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden, was von der beteiligten Funktionalität abhängt. Es wird ebenfalls angemerkt, dass jeder Block in den Blockschaubildern und/oder in der Veranschaulichung des Ablaufplans und Kombinationen von Blöcken in den Blockschaubildern und/oder der Veranschaulichung des Ablaufplans durch spezielle Systeme auf der Grundlage von Hardware, die die angegebenen Funktionen oder Handlungen ausführen, oder Kombinationen von spezieller Hardware und Computeranweisungen umgesetzt werden können.
-
Somit können die veranschaulichenden Ausführungsformen in vielen verschiedenen Typen von Datenverarbeitungsumgebungen verwendet werden. Um einen Kontext für die Beschreibung der spezifischen Elemente und der Funktionalität der veranschaulichenden Ausführungsformen bereitzustellen, werden 1 und 2 im Folgenden als Beispielumgebungen angegeben, in denen Aspekte der veranschaulichenden Ausführungsformen umgesetzt werden können. Es sollte klar sein, dass 1 und 2 nur Beispiele sind und durch sie keinerlei Einschränkung hinsichtlich der Umgebungen festgestellt oder impliziert werden soll, in denen Aspekte oder Ausführungsformen der vorliegenden Erfindung umgesetzt werden können. Viele Modifizierungen können an den dargestellten Umgebungen vorgenommen werden, ohne von dem Erfindungsgedanken und Schutzumfang der vorliegenden Erfindung abzuweichen.
-
1 ist eine bildliche Darstellung eines Beispiels für ein verteiltes Datenverarbeitungssystem, in dem Aspekte der veranschaulichenden Ausführungsformen umgesetzt werden können. Ein verteiltes Datenverarbeitungssystem 100 kann ein Netzwerk von Computern enthalten, in dem Aspekte der veranschaulichenden Ausführungsformen umgesetzt werden können. Das verteilte Datenverarbeitungssystem 100 enthält mindestens ein Netzwerk 102, welches das Medium ist, das zum Bereitstellen von Datenübertragungsverbindungen zwischen verschiedenen Einheiten und Computern verwendet wird, die in dem verteilten Datenverarbeitungssystem 100 miteinander verbunden sind. Das Netzwerk 102 kann Verbindungen enthalten, wie beispielsweise drahtgebundene, drahtlose Datenübertragungsverbindungen oder Lichtwellenleiterkabel.
-
In dem dargestellten Beispiel sind ein Server 104 und ein Server 106 zusammen mit einer Speichereinheit 108 mit dem Netzwerk 102 verbunden. Außerdem sind auch Clients 110, 112 und 114 mit dem Netzwerk 102 verbunden. Diese Clients 110, 112 und 114 können zum Beispiel Personal Computer, Netzwerk-Computer oder dergleichen sein. In dem dargestellten Beispiel stellt der Server 104 Daten wie beispielsweise Boot-Dateien, Betriebssystemabbilder und Anwendungen für die Clients 110, 112 und 114 bereit. Die Clients 110, 112 und 114 sind Clients für den Server 104 in dem dargestellten Beispiel. Das verteilte Datenverarbeitungssystem 100 kann zusätzliche Server, Clients und weitere nicht gezeigte Einheiten enthalten.
-
In dem dargestellten Beispiel ist das verteilte Datenverarbeitungssystem 100 das Internet, wobei das Netzwerk 102 für eine weltweite Sammlung von Netzwerken und Gateways steht, welche die Protokollgruppe Transmission Control Protocol/Internet Protocol (TCP/IP) für den Datenaustausch untereinander verwenden. Das Kernstück des Internet ist ein Backbone von Hochgeschwindigkeits-Datenübertragungsleitungen zwischen Hauptknoten oder Host-Computern, die aus Tausenden von gewerblichen, behördlichen, schulischen und anderen Computersystemen bestehen, die Daten und Nachrichten weiterleiten. Selbstverständlich kann das verteilte Datenverarbeitungssystem 100 auch so umgesetzt werden, dass es eine Anzahl von verschiedenen Typen von Netzwerken enthält, wie zum Beispiel ein Intranet, ein lokales Netzwerk (LAN), ein Weitverkehrsnetz (WAN) oder dergleichen. Wie oben ausgeführt, soll 1 als Beispiel dienen, nicht als Architektureinschränkung für verschiedene Ausführungsformen der vorliegenden Erfindung, und daher sollten die in 1 gezeigten speziellen Elemente hinsichtlich der Umgebungen, in denen die veranschaulichenden Ausführungsformen der vorliegenden Erfindung umgesetzt werden können, als nicht einschränkend betrachtet werden.
-
2 ist ein Blockschaubild eines Beispiels für ein Datenverarbeitungssystem, in dem Aspekte der veranschaulichenden Ausführungsformen umgesetzt werden können. Ein Datenverarbeitungssystem 200 ist ein Beispiel für einen Computer wie beispielsweise der Client 110 in 1, in dem sich ein vom Computer verwendbarer Code oder Anweisungen befinden können, welche die Prozesse für veranschaulichende Ausführungsformen der vorliegenden Erfindung umsetzen.
-
In dem dargestellten Beispiel verwendet das Datenverarbeitungssystem 200 eine Hub-Architektur mit Northbridge und Speicher-Controller-Hub (NB/MCH) 202 und Southbridge und Eingabe/Ausgabe- (E/A) Controller-Hub (SB/ICH) 204. Eine Verarbeitungseinheit 206, ein Hauptspeicher 208 und ein Grafikprozessor 210 sind mit dem NB/MCH 202 verbunden. Der Grafikprozessor 210 kann mit dem NB/MCH 202 über einen beschleunigten Grafikanschluss (AGP) verbunden sein.
-
In dem dargestellten Beispiel ist ein lokaler Netzwerk- (LAN) Adapter 212 mit dem SB/ICH 204 verbunden. Ein Audio-Adapter 216, ein Tastatur- und Maus-Adapter 220, ein Modem 222, ein Nur-Lese-Speicher (ROM) 224, ein Festplattenlaufwerk (HDD) 226, ein CD-ROM-Laufwerk 230, Universal-Serial-Bus- (USB) Anschlüsse und weitere Datenübertragungsanschlüsse 232 und PCI/PCIe-Einheiten 234 sind mit dem SB/ICH 204 über einen Bus 238 und einen Bus 240 verbunden. Zu PCI/PCIe-Einheiten können beispielsweise Ethernet-Adapter, Add-in-Karten und PC-Karten für Notebook-Computer gehören. PCI verwendet einen Karten-Bus-Controller, PCIe hingegen nicht. Der ROM 224 kann beispielsweise ein grundlegendes Flash-Eingabe/Ausgabe-System (BIOS) sein.
-
Das HDD 226 und das CD-ROM-Laufwerk 230 sind mit dem SB/ICH 204 über den Bus 240 verbunden. Das HDD 226 und das CD-ROM-Laufwerk 230 können zum Beispiel eine Integrated Drive Electronics- (IDE) oder Serial Advanced Technology Attachment- (SATA) Schnittstelle verwenden. Eine Super I/O- (SIO) Einheit 236 kann mit dem SB/ICH 204 verbunden sein.
-
Auf der Verarbeitungseinheit 206 wird ein Betriebssystem ausgeführt. Das Betriebssystem koordiniert verschiedene Komponenten und stellt deren Steuerung in dem Datenverarbeitungssystem 200 in 2 bereit. Als Client kann das Betriebssystem ein im Handel erhältliches Betriebssystem wie
Microsoft® Windows 7® sein. Ein objektorientiertes Programmiersystem wie das Java™-Programmiersystem kann zusammen mit dem Betriebssystem ausgeführt werden und stellt Aufrufe an das Betriebssystem aus Java™-Programmen oder Anwendungen bereit, die auf dem Datenverarbeitungssystem 200 ausgeführt werden.
-
Als Server kann das Datenverarbeitungssystem 200 zum Beispiel ein IBM® eServer™ System p®-Computersystem sein, welches das Advanced Interactive Executive- (AIX®) Betriebssystem oder das Linux®-Betriebssystem ausführt. Das Datenverarbeitungssystem 200 kann ein symmetrisches Multiprozessor- (SMP) System mit einer Vielzahl von Prozessoren in der Verarbeitungseinheit 206 sein. Alternativ kann ein Einzelprozessorsystem verwendet werden.
-
Anweisungen für das Betriebssystem, das objektorientierte Programmiersystem und Anwendungen oder Programme befinden sich auf Speichereinheiten wie dem HDD 226 und können zum Ausführen durch die Verarbeitungseinheit 206 in den Hauptspeicher 208 geladen werden. Die Prozesse für veranschaulichende Ausführungsformen der vorliegenden Erfindung können durch die Verarbeitungseinheit 206 unter Verwendung von computerlesbarem Programmcode ausgeführt werden, der in sich in einem Speicher befinden kann wie beispielsweise dem Hauptspeicher 208, dem ROM 224 oder zum Beispiel in einer oder mehreren Peripherie-Einheiten 226 and 230.
-
Ein Bussystem wie beispielsweise der Bus 238 oder der Bus 240, wie in 2 gezeigt, kann sich aus einem oder mehreren Bussen zusammensetzen. Selbstverständlich kann das Bussystem unter Verwendung jedes beliebigen Typs von Datenübertragungsstruktur oder -architektur umgesetzt werden, der eine Datenübertragung zwischen verschiedenen Komponenten oder Einheiten bereitstellt, die an die Struktur oder Architektur angeschlossen sind. Eine Datenübertragungseinheit wie beispielsweise der Modem 222 oder der NetzwerkAdapter 212 von 2 kann eine oder mehrere Einheiten enthalten, die zum Senden und Empfangen von Daten verwendet werden. Ein Speicher kann zum Beispiel der Hauptspeicher 208, der ROM 224 oder ein Zwischenspeicher sein, wie er im NB/MCH 202 in 2 zu finden ist.
-
Fachleuten wird klar sein, dass die Hardware in den 1 und 2 je nach Umsetzung unterschiedlich sein kann. Weitere interne Hardware- oder Peripherie-Einheiten wie Flash-Speicher, gleichwertiger nicht-flüchtiger Speicher oder optische Plattenlaufwerke und dergleichen können zusätzlich zu oder anstelle der Hardware verwendet werden, die in 1 bis 2 dargestellt ist. Außerdem können die Prozesse der veranschaulichenden Ausführungsformen auf ein anderes Mehrfachprozessor-Datenverarbeitungssystem als das vorher erwähnte SMP-System angewendet werden, ohne von dem Erfindungsgedanken und dem Schutzumfang der vorliegenden Erfindung abzuweichen.
-
Des Weiteren kann das Datenverarbeitungssystem 200 die Form von jedem einer Anzahl von verschiedenen Datenverarbeitungssystemen annehmen, einschließlich Client-Datenverarbeitungseinheiten, Server-Datenverarbeitungseinheiten, einem Tablet-Computer, Laptop-Computer, Telefon oder einer anderen Datenübertragungseinheit, einem Personal Digital Assistant (PDA) oder dergleichen. In einigen veranschaulichenden Beispielen kann das Datenverarbeitungssystem 200 eine tragbare Datenverarbeitungseinheit sein, die mit einem Flash-Speicher konfiguriert ist, um beispielsweise nicht-flüchtigen Speicher zum Speichern von Betriebssystemdateien und/oder vom Benutzer erzeugten Daten bereitzustellen. Im Wesentlichen kann das Datenverarbeitungssystem 200 jedes bekannte oder später entwickelte Datenverarbeitungssystem ohne Architektureinschränkung sein.
-
3 ist ein Blockschaubild, das eine Partitionsmigration mit Überlassung von Prozessorressourcen gemäß einer Ausführungsform veranschaulicht. Eine mobile Ausgangspartition 311 wird von einem Quellensystem 310 zu einem Zielsystem 320 migriert. In der Partitionsmigrationsoperation stellt ein virtueller Maschinenmonitor (VMM) 315 Unterstützung beim Übertragen von Zustand und Arbeitsspeicherabbild der mobilen Ausgangspartition 311 von einer Versetzungseinheit-Servicepartition (MSP) 312 in dem Quellensystem 310 zu einer MSP 321 in dem Zielsystem 320 bereit. Ein VMM 325 stellt Unterstützung beim Empfangen von Zustand und Arbeitsspeicherabbild einer ankommenden mobilen Partition 322 unter Verwendung der MSP 321 in dem Zielsystem 320 bereit.
-
Die MSP 312 enthält einen Versetzungseinheit-/VASI-Treiber 313, und die MSP 321 enthält einen Versetzungseinheit-/VASI-Treiber 323. Der Versetzungseinheit-/VASI-Treiber 313 stellt für den VMM 315 Zentraleinheit- (CPU) Zyklen bereit, und der Versetzungseinheit-/VASI-Treiber 323 stellt für den VMM 325 Zentraleinheit- (CPU) Zyklen bereit, um die Migrationsoperation für die Partition auszuführen. Der VMM 315 sendet und verfolgt den Arbeitsspeicher der Client-Partition und kann benutzte Seiten möglicherweise erneut senden, da die Client-Partition während fast der gesamten Mobilitätsoperation weiterhin in Betrieb ist.
-
Das Arbeitsspeicherabbild des Clients kann ziemlich groß sein, vor allem in Clients, die Datenbanken ausführen. Bei der aktuellen Geschwindigkeit der Einführung der LPM-Funktionalität besteht zusätzliche eine kontinuierliche Bestrebung, eine höhere Anzahl von gleichzeitigen Mobilitätsoperationen zu unterstützen. Die Menge von CPU-Zyklen, die von dem VMM verwendet werden, nimmt zu, wenn die MSP 312 die Mobilität großer Clients oder eine hohe Anzahl von mehreren gleichzeitigen Mobilitätsoperationen unterstützen muss.
-
Ein LPM-Benutzer muss zusätzliche Ressourcen auf den MSPs 312, 321 zuordnen, damit eine MSP-Funktionalität unterstützt wird oder eine Auswirkung auf die Mobilitätsleistung und andere Operationen auf dem MSP 312, 321 erzielt wird. Obwohl Partitionsmobilität in jedem Rechenzentrum als zwingend erforderlich betrachtet wird, damit Ausfälle vermieden werden, ist es außerdem nicht wahrscheinlich, dass die LPM die gesamte Zeit über ausgeführt wird. Das bedeutet, dass bei aktuellen Lösungen für MSP 312, 321 eine Größe für die Spitzenlasten angegeben werden muss, wodurch Ressourcen zu wenig genutzt werden, oder der Operator den zusätzlichen Schritt einer Zuteilung von Ressourcen zu MSP 312, 321 ausführen muss, um Spitzenlasten zu unterstützen, bevor eine LPM-Operation ausgeführt wird.
-
4 ist ein Blockschaubild, das eine Partitionsmigration mit Überlassung von Prozessorressourcen durch die migrierende Partition gemäß einer veranschaulichenden Ausführungsform darstellt. Eine mobile Ausgangspartition 411 wird von einem Quellensystem 410 zu einem Zielsystem 420 migriert. In der Partitionsmigrationsoperation stellt ein VMM 415 Unterstützung beim Übertragen von Zustand und Arbeitsspeicherabbild der mobilen Ausgangspartition 411 von einer Versetzungseinheit-Servicepartition (MSP) 412 dem Quellensystem 410 zu einer MSP 421 in dem Zielsystem 420 bereit. Ein VMM 425 stellt Unterstützung beim Empfangen von Zustand und Arbeitsspeicherabbild einer ankommenden mobilen Partition 422 unter Verwendung der MSP 421 in dem Zielsystem 420 bereit.
-
Gemäß der veranschaulichenden Ausführungsform enthält die mobile Ausgangspartition 411 einen Gebereinheitentreiber 413, der für den VMM 415 CPU-Zyklen bereitstellt. Ein Versetzungseinheit-/VASI-Treiber 414 stellt keine CPU-Zyklen mehr bereit, sondern hält alle anderen Zuständigkeiten zurück, In einer alternativen Ausführungsform kann der Gebereinheitentreiber 413 den größten Teil der benötigten CPU-Zyklen überlassen, wogegen der Versetzungseinheit-/VASI-Treiber 414 nur einen kleinen Teil der CPU-Zyklen überlässt, die für die Partitionsmigrationsoperation benötigt werden.
-
Am Zielsystem 420 enthält die ankommende mobile Partition 422 einen Gebereinheitentreiber 424, der für den Hypervisor 425 CPU-Zyklen bereitstellt, um die Partitionsmigrationsoperation zu bewirken. In einer beispielhaften Ausführungsform kann ein Versetzungseinheit-/VASI-Treiber 423 dem VMM 425 einen kleinen Teil der CPU-Zyklen überlassen.
-
5 ist ein Blockschaubild, das eine Partitionsmigration mit virtueller Maschinenmonitorkontrolle über Prozessorressourcen gemäß einer veranschaulichenden Ausführungsform darstellt. Eine mobile Ausgangspartition 511 wird von einem Quellensystem 510 zu einem Zielsystem 520 migriert. In der Partitionsmigrationsoperation stellt ein VMM 515 Unterstützung beim Übertragen von Zustand und Arbeitsspeicherabbild der mobilen Ausgangspartition 511 von einer Versetzungseinheit-Servicepartition (MSP) 512 in dem Quellensystem 510 zu einer MSP 521 in dem Zielsystem 520 bereit. Ein VMM 525 stellt Unterstützung beim Empfangen von Zustand und Arbeitsspeicherabbild einer ankommenden mobilen Partition 522 unter Verwendung der MSP 521 in dem Zielsystem 520 bereit.
-
Gemäß der veranschaulichenden Ausführungsform hat der VMM 515 die Kontrolle über Ressourcen, die Partitionen zugeordnet sind. Statt die MSP 512 zu veranlassen, über einen Versetzungseinheit-/VASI-Treiber 513 CPU-Zyklen zu überlassen, verwendet der VMM 515 einige Ressourcen, die der mobilen Ausgangspartition 511 zugewiesen sind. Der VMM 515 kann eine Menge von CPU-Ressourcen 516 aus dem migrierenden Client 511 automatisch reduzieren, sodass sie speziell vom VMM 515 für die Mobilitätsoperation verwendet werden. Da die MSP 521 die ankommende mobile Partition 522 empfängt, verwendet der VMM 525 in ähnlicher Weise eine Menge von CPU-Ressourcen 526, die der ankommenden mobilen Partition 522 zugewiesen sind, für die Mobilitätsoperation. Die Verwaltung von virtuellen Ressourcen ist für jede Partition bereits transparent; daher würde der VMM 515, 525, der die CPU-Ressourcen 516, 526 verwendet, die der migrierenden Partition 511, 522 zugewiesen sind, nur wenig oder gar keine Auswirkung auf die Leistung der Partition 511, 521 haben. Die Kernel-Erweiterung einer Versetzungseinheit 513, 523 stellt für den VMM 515, 525 keine CPU-Zyklen mehr bereit, sondern hält alle anderen Zuständigkeiten zurück. Alternativ kann der Versetzungseinheit-/VASI-Treiber 513, 523 eine kleine Menge von CPU-Ressourcen zusätzlich zu den CPU-Ressourcen überlassen, die der mobilen Partition 511, 522 zugewiesen sind.
-
6 ist ein Ablaufplan, der eine Partitionsmigrationsoperation mit Überlassung von Prozessorressourcen durch die migrierende Partition gemäß einer veranschaulichenden Ausführungsform darstellt. Die Operation beginnt (Block 600), und der virtuelle Maschinenmonitor (VMM) setzt einen Gebereinheitentreiber in der mobilen Partition um (Block 601). Die mobile Partition kann eine mobile Ausgangspartition oder eine ankommende mobile Partition sein. In dem Quellensystem setzt der VMM den Gebereinheitentreiber in der mobilen Ausgangspartition um, und der Gebereinheitentreiber überlässt dem Hypervisor CPU-Zyklen in Reaktion darauf, dass der VMM eine Migrationsoperation initiiert, an der die mobile Ausgangspartition beteiligt ist. In dem Zielsystem initialisiert der VMM eine logische Partition für die ankommende mobile Partition, die den Einheitentreiber enthält, der dem VMM CPU-Zyklen überlässt, bis die Migrationsoperation abgeschlossen ist.
-
Der VMM verschiebt die mobile Partition anschließend mithilfe der Versetzungseinheit-Servicepartition in das Zielsystem, wobei der Gebereinheitentreiber dem VMM Zyklen überlässt, um die Migration zu bewirken (Block 602). In dem Quellensystem verschiebt der VMM die mobile Partition durch Kopieren des Zustands der Partition einschließlich des Arbeitsspeicherabbilds der Partition, über die Versetzungseinheit-Servicepartition in das Zielsystem. In dem Zielsystem empfängt der VMM den Zustand der Partition, einschließlich des Arbeitsspeicherabbilds der Partition, über die Versetzungseinheit-Servicepartition.
-
Wenn die Migrationsoperation abgeschlossen ist, gibt der VMM die CPU-Zyklen an die mobile Partition zurück (Block 603). Im Fall des Quellensystems ist die mobile Ausgangspartition beendet, und im Fall des Zielsystems wird die ankommende mobile Partition in einen Live-Zustand gesetzt. Danach endet die Operation (Block 604).
-
7 ist ein Ablaufplan, der eine Partitionsmigrationsoperation mit virtueller Maschinenmonitorkontrolle über Prozessorressourcen gemäß einer veranschaulichenden Ausführungsform darstellt. Die Operation beginnt (Block 700), und der VMM verringert CPU-Ressourcen, die der mobilen Partition zugewiesen sind (Block 701). Die mobile Partition kann eine mobile Ausgangspartition oder eine ankommende mobile Partition sein. In dem Quellensystem steuert der VMM die Zuweisung von CPU-Ressourcen zu der mobilen Partition, um die CPU-Ressourcen in Reaktion darauf zu verringern, dass der VMM eine Migrationsoperation initiiert, an der die mobile Ausgangspartition beteiligt ist. Der VMM kann anschließend diese Menge von CPU-Ressourcen für die Migrationsoperation verwenden. In dem Zielsystem verringert der VMM zuerst die CPU-Ressourcen, die der ankommenden mobilen Partition zugeordnet sind, und verwendet diese Menge von CPU-Ressourcen für die Migrationsoperation.
-
Der VMM verschiebt anschließend die mobile Partition mithilfe der Versetzungseinheit-Servicepartition in das Zielsystem und verwendet dazu die Menge von CPU-Ressourcen, die der mobilen Partition selbst entnommen wurden (Block 702). In einer alternativen Ausführungsform kann der Versetzungseinheit-/VASI-Treiber der mobilen Servicepartition dem VMM zusätzliche CPU-Ressourcen überlassen. In dem Quellensystem verschiebt der VMM die mobile Partition durch Kopieren des Zustands der Partition, einschließlich des Arbeitsspeicherabbilds der Partition, über die Versetzungseinheit-Servicepartition in das Zielsystem. In dem Zielsystem empfängt der VMM den Zustand der Partition, einschließlich des Arbeitsspeicherabbilds der Partition, über die Versetzungseinheit-Servicepartition.
-
Wenn die Migrationsoperation abgeschlossen ist, gibt der VMM die CPU-Ressourcen an die mobile Partition zurück (Block 703). Im Fall des Quellensystems ist die mobile Ausgangspartition beendet, und im Fall des Zielsystems wird die ankommende mobile Partition in einen Live-Zustand gesetzt. Danach endet die Operation (Block 704).
-
Wie oben angemerkt, sollte klar sein, dass die veranschaulichenden Ausführungsformen die Form einer vollständigen Hardware-Ausführungsform, einer vollständigen Software-Ausführungsform oder einer Ausführungsform annehmen können, die Hardware- und Software-Elemente enthält. In einer beispielhaften Ausführungsform sind die Mechanismen der veranschaulichenden Ausführungsformen in Software oder einem Programmcode umgesetzt, der Firmware, residente Software, Mikrocode usw. enthält, aber nicht darauf beschränkt ist.
-
Ein Datenverarbeitungssystem, das zum Speichern und/oder Ausführen von Programmcode geeignet ist, enthält mindestens einen Prozessor, der direkt oder indirekt über einen Systembus mit Speicherelementen verbunden ist. Die Speicherelemente können einen lokalen Speicher, der während der tatsächlichen Ausführung des Programmcodes verwendet wird, einen Massenspeicher und Cache-Speicher enthalten, die eine vorübergehende Speicherung von mindestens einigem Programmcode bereitstellen, um die Anzahl zu verringern, wie oft Code während der Ausführung aus dem Massenspeicher abgerufen werden muss.
-
Eingabe-/Ausgabe- oder E/A-Einheiten (einschließlich Tastaturen, Anzeigen, Zeigeeinheiten usw., jedoch nicht darauf beschränkt) können entweder direkt oder über zwischengeschaltete E/A-Controller mit dem System verbunden werden. Netzwerkadapter können ebenfalls mit dem System verbunden werden, um zu ermöglichen, dass das Datenverarbeitungssystem mit anderen Datenverarbeitungssystemen oder entfernt angeordneten Druckern oder Speichereinheiten über dazwischenliegende private oder öffentliche Netzwerke verbunden werden kann. Modems, Kabelmodems oder Ethernet-Karten sind nur einige der derzeit verfügbaren Typen von Netzwerkadaptern.
-
Die Beschreibung der vorliegenden Erfindung wurde zum Zweck der Veranschaulichung und Beschreibung erstellt und soll keineswegs erschöpfend oder auf die Erfindung in der offenbarten Form eingeschränkt sein. Viele Modifizierungen und Variationen werden für den Fachmann offenkundig sein. Die Ausführungsform wurde ausgewählt und beschrieben, um die Grundgedanken der Erfindung, die praktische Anwendung optimal zu erklären und andere Fachleute in die Lage zu versetzen, die Erfindung für verschiedene Ausführungsformen mit verschiedenen Modifizierungen zu verstehen, die für die vorgesehene bestimmte Verwendung geeignet sind.