DE112011101705B4 - Migrieren virtueller Maschinen zwischen vernetzten Servern nach Erkennung der Verschlechterung der Funktion der Netzwerkverbindung - Google Patents

Migrieren virtueller Maschinen zwischen vernetzten Servern nach Erkennung der Verschlechterung der Funktion der Netzwerkverbindung Download PDF

Info

Publication number
DE112011101705B4
DE112011101705B4 DE112011101705.7T DE112011101705T DE112011101705B4 DE 112011101705 B4 DE112011101705 B4 DE 112011101705B4 DE 112011101705 T DE112011101705 T DE 112011101705T DE 112011101705 B4 DE112011101705 B4 DE 112011101705B4
Authority
DE
Germany
Prior art keywords
server
connection
network
servers
virtual machine
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
DE112011101705.7T
Other languages
English (en)
Other versions
DE112011101705T5 (de
Inventor
Nils Peter Hansson
Edward Stanley Suffern
James Lee Wooldridge
Bruce Alan Smith
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 DE112011101705T5 publication Critical patent/DE112011101705T5/de
Application granted granted Critical
Publication of DE112011101705B4 publication Critical patent/DE112011101705B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

Migrieren virtueller Maschinen zwischen vernetzten Servern, wobei die Server zu Datenaustauschzwecken mit einem Datenaustauschnetzwerk verbunden sind, das eine Vernetzungseinheit enthält, wobei das Migrieren Folgendes beinhaltet: durch ein Managementmodul für virtuelle Maschinen („VMMM”) das Einrichten einer oder mehrerer virtueller Maschinen auf einem bestimmten Server; durch das VMMM das Abfragen der Netzwerkeinheit auf Verbindungsstatistiken einer Verbindung, über die die Netzwerkeinheit zu Datenaustauschzwecken mit dem betreffenden Server verbunden ist; durch das VMMM das Ermitteln anhand der Verbindungsstatistik, ob sich die Verbindung verschlechtert, über die die Netzwerkeinheit mit dem betreffenden Server verbunden ist; und wenn sich die Verbindung verschlechtert, über die die Netzwerkeinheit mit dem betreffenden Server verbunden ist, das Migrieren einer auf dem betreffenden Server ausgeführten virtuellen Maschine auf einen Zielserver. Bei einigen Ausführungsformen wird das Migrieren nur ausgeführt, wenn eine sich nicht verschlechternde Verbindung zur Verfügung steht. Wenn keine Verbindungen zur Verfügung stehen, die sich nicht verschlechtern, fällt möglicherweise die Netzwerkeinheit und nicht die Verbindung aus.

Description

  • Hintergrund der Erfindung
  • Gebiet der Erfindung
  • Das Gebiet der Erfindung betrifft die Datenverarbeitung und insbesondere Verfahren, Vorrichtung und Produkte zum Migrieren virtueller Maschinen zwischen vernetzten Servern, nachdem eine Verschlechterung der Funktion der Netzwerkverbindung erkannt wurde.
  • Beschreibung des Stands der Technik
  • Die Entwicklung des Computersystems EDVAC im Jahr 1948 wird oft als Beginn des Computerzeitalters bezeichnet. Seit dieser Zeit haben sich Computersysteme zu extrem komplizierten Einheiten entwickelt. Heutzutage sind Computer technisch viel ausgereifter als die Systeme in der Anfangszeit wie z. B. der EDVAC. Computersysteme enthalten normalerweise eine Kombination aus Hardware- und Softwarekomponenten, Anwendungsprogramme, Betriebssysteme, Prozessoren, Busse, Hauptspeicher, Eingabe/Ausgabe-Einheiten usw. Da Fortschritte bei der Halbleiterverarbeitung und Computerarchitektur die Leistungsfähigkeit des Computers immer weiter erhöhen, wird mehr komplizierte Computersoftware entwickelt, die die Vorteile der höheren Leistungsfähigkeit der Hardware nutzt. Diese Entwicklung führt heutzutage zu Computersystemen, die viel leistungsfähiger als noch vor wenigen Jahren sind.
  • Computersysteme sind heutzutage oft zu Datenaustauschzwecken vernetzt, und mithilfe virtueller Maschinen werden oftmals mehrere Betriebssysteme gleichzeitig ausgeführt, d. h., Software emuliert Hardware. Von Zeit zu Zeit kann es vorkommen, dass Netzwerkeinheiten und Datenaustauschverbindungen auszufallen beginnen, die die Computersysteme miteinander verbinden. Verfahren zur Aufrechterhaltung des Datenaustauschs zwischen virtuellen Maschinen und Computersystemen, auf denen virtuelle Maschinen ausgeführt werden, warten heutzutage normalerweise bis zum völligen Ausfall des Datenaustauschs, bevor Abhilfemaßnahmen eingeleitet werden, oder sie erfordern eine hohe Verarbeitungsleistung der Computer, auf denen die virtuellen Maschinen ausgeführt werden.
  • Ähnlich gelagerte Probleme wurden bereits versucht zu lösen. So beschreibt das Dokument „Improving the Scalability of Data Center Networks with Traffic-aware Virtual Machine Placement” von Xiaoqiao Meng veröffentlicht von IBM T. J. Watson Research Center, 19 Skyline Drive, Hawthorne, NY 10532, ein Skalierungsproblem in Rechenzentren mit virtuellem Maschinen (VM) durch eine optimierte Anordnung von VMs auf Host-Maschinen. Dabei werden nicht nur CPU, Speicher und Stromverbrauch berücksichtigt, sondern es werden auch Überlegungen zu Netzwerkressourcen einbezogen.
  • Deshalb ist es Aufgabe, ein Verfahren sowie eine entsprechende Vorrichtung und ein Computerprogramm anzugeben, welches einem Ausfall eines Datenaustauches zwischen virtuellen Maschinen vorbeugt, anzugeben.
  • Überblick über die Erfindung
  • Diese Aufgabe wird durch die Gegenstände der unabhängigen Ansprüche gelöst. Insbesondere betrifft die Lösung ein Verfahren, eine Vorrichtung und ein Computerprogramm, welche in Folgendem beschrieben sind.
  • Die vorliegende Erfindung stellt dementsprechend unter einem ersten Aspekt betrachtet ein Verfahren zum Migrieren virtueller Maschinen zwischen vernetzten Servern bereit, wobei die Server zu Datenaustauschzwecken mit einem Datenaustauschnetzwerk verbunden sind, das Netzwerk eine Vernetzungseinheit umfasst und das Verfahren Folgendes umfasst: durch ein Managementmodul für virtuelle Maschinen (Virtual Machine Management Module, VMMM) das Einrichten einer oder mehrerer virtueller Maschinen auf einem bestimmten Server; durch das VMMM das Abfragen der Vernetzungseinheit auf Verbindungsstatistiken einer Verbindung, über die die Netzwerkeinheit zu Datenaustauschzwecken mit dem betreffenden Server verbunden ist; durch das VMMM das Ermitteln anhand der Verbindungsstatistik, ob sich die Verbindung verschlechtert, über die die Netzwerkeinheit mit dem betreffenden Server verbunden ist; und wenn sich die Verbindung verschlechtert, über die die Netzwerkeinheit mit dem betreffenden Server verbunden ist, das Migrieren einer auf dem betreffenden Server ausgeführten virtuellen Maschine auf einen Zielserver.
  • Vorzugsweise umfasst das Migrieren einer auf dem betreffenden Server ausgeführten virtuellen Maschine auf einen Zielserver ferner Folgendes: Abfragen der Netzwerkeinheit nach Verbindungsstatistiken von Verbindungen, über die die Netzwerkeinheit mit anderen Servern verbunden ist; anhand der Verbindungsstatistiken das Erkennen einer sich nicht verschlechternden Verbindung; und das Auswählen eines Servers, der über die sich nicht verschlechternde Verbindung mit der Netzwerkeinheit verbunden ist, als Zielserver für die auf dem betreffenden Server ausgeführte virtuelle Maschine.
  • Vorzugsweise umfasst das Migrieren einer virtuellen Maschine ferner das Migrieren der virtuellen Maschine nur dann, wenn eine sich nicht verschlechternde Verbindung zur Verfügung steht, sowie Folgendes: Abfragen der Netzwerkeinheit nach Verbindungsstatistiken von Verbindungen, über die die Netzwerkeinheit mit anderen Servern verbunden ist; Feststellen anhand der Verbindungsstatistiken von Verbindungen, über die die Netzwerkeinheit mit anderen Servern verbunden ist, dass die Netzwerkeinheit ausfällt; Auswählen einer Ausweichnetzwerkeinheit für den Datenaustausch zwischen den vernetzten Servern; und das Nichtmigrieren der virtuellen Maschine auf dem betreffenden Server. Vorzugsweise enthalten die Verbindungsstatistiken eine Mehrzahl mit einem Zeitstempel versehener Einträge, die für ein fehlerhaftes Byte stehen, das über die Verbindung empfangen wurde, über die die Netzwerkeinheit mit dem betreffenden Server verbunden ist, und das Ermitteln, ob sich die Verbindung verschlechtert, über die die Netzwerkeinheit mit dem betreffenden Server verbunden ist, umfasst ferner Folgendes:
    Berechnen einer Bitfehlerrate aus den mit einem Zeitstempel versehenen Einträgen, die für ein fehlerhaftes Byte stehen;
    Ermitteln, ob die berechnete Bitfehlerrate höher als ein vorgegebener Schwellenwert ist; und wenn die berechnete Bitfehlerrate höher als der vorgegebene Schwellenwert ist, das Feststellen, dass sich die Verbindung verschlechtert, über die die Netzwerkeinheit mit dem betreffenden Server verbunden ist. Vorzugsweise enthalten die Verbindungsstatistiken Informationen, die Symbolfehler von Testdaten beschreiben, die über die Verbindung empfangen wurden, über die die Netzwerkeinheit mit dem betreffenden Server verbunden ist, und das Ermitteln, ob sich die Verbindung verschlechtert, über die die Netzwerkeinheit mit dem betreffenden Server verbunden ist, umfasst ferner Folgendes: anhand der Informationen, die Symbolfehler beschreiben, das Berechnen einer Häufigkeit der Symbolfehler; anhand der Informationen, die Symbolfehler beschreiben, das Ermitteln, ob eine Häufigkeit von Symbolfehlern auf der Verbindung, über die die Netzwerkeinheit mit dem betreffenden Server verbunden ist, größer als ein vorgegebener Schwellenwert ist; und wenn die Häufigkeit von Symbolfehlern größer als der vorgegebene Schwellenwert ist, das Feststellen, dass sich die Verbindung verschlechtert, über die die Netzwerkeinheit mit dem betreffenden Server verbunden ist. Das Verfahren kann ferner Folgendes umfassen: durch die Netzwerkeinheit das Überwachen des Datenaustauschs zwischen den Servern, der auf Verbindungen abläuft, über die die Server untereinander und mit der Netzwerkeinheit verbunden sind; und das Speichern von Verbindungsstatistiken in einem Nachrichteninformationsblock (Management Information Base, MIB), die den Datenaustausch zwischen den Servern beschreiben, der auf den Verbindungen abläuft, über die die Server untereinander und mit der Netzwerkeinheit verbunden sind.
  • Unter einem zweiten Aspekt betrachtet stellt die vorliegende Erfindung eine Vorrichtung zum Migrieren virtueller Maschinen zwischen vernetzten Servern bereit, wobei die Server zu Datenaustauschzwecken mit einem Datenaustauschnetzwerk verbunden sind, das Netzwerk eine Vernetzungseinheit enthält, die Vorrichtung einen Computerprozessor und einen Computerhauptspeicher enthält, der betriebsfähig mit dem Computerprozessor verbunden ist, und die Vorrichtung Folgendes umfasst: Mittel zum Einrichten einer oder mehrerer virtueller Maschinen auf einem bestimmten Server durch ein Managementmodul für virtuelle Maschinen (Virtual Machine Management Module, VMMM); Mittel zum Abfragen der Netzwerkeinheit durch das VMMM auf Verbindungsstatistiken einer Verbindung, über die die Netzwerkeinheit zu Datenaustauschzwecken mit dem betreffenden Server verbunden ist; Mittel zum Ermitteln durch das VMMM anhand der Verbindungsstatistik, ob sich die Verbindung verschlechtert, über die die Netzwerkeinheit mit dem betreffenden Server verbunden ist; und wenn sich die Verbindung verschlechtert, über die die Netzwerkeinheit mit dem betreffenden Server verbunden ist, Mittel zum Migrieren einer auf dem betreffenden Server ausgeführten virtuellen Maschine auf einen Zielserver.
  • Die Vorrichtung des zweiten Aspekts kann des Weiteren Mittel bereitstellen, die so gestaltet sind, dass sie die bevorzugten Schritte des ersten Aspekts ausführen.
  • Unter einem dritten Aspekt betrachtet wird ein Computerprogramm bereitgestellt, das auf einem computerlesbaren Medium gespeicherten Computerprogrammcode enthält, der das Computersystem veranlasst, alle Schritte eines Verfahrens gemäß dem ersten Aspekt auszuführen, wenn der Computerprogrammcode in ein Computersystem geladen und auf diesem ausgeführt wird.
  • Demzufolge werden Verfahren, Vorrichtungen und Produkte zu Migrieren virtueller Maschinen zwischen vernetzten Servern beschrieben. Bei Ausführungsformen der vorliegenden Erfindung sind die Server zu Datenaustauschzwecken mit einem Datenaustauschnetzwerk verbunden, das eine Vernetzungseinheit enthält. Das Migrieren virtueller Maschinen gemäß Ausführungsformen der vorliegenden Erfindung beinhaltet das Einrichten einer oder mehrerer virtueller Maschinen auf einem bestimmten Server durch ein Managementmodul für virtuelle Maschinen (Virtual Machine Management Module, VMMM); durch das VMMM das Abfragen der Netzwerkeinheit auf Verbindungsstatistiken einer Verbindung, über die die Netzwerkeinheit zu Datenaustauschzwecken mit dem betreffenden Server verbunden ist; und durch das VMMM das Ermitteln anhand der Verbindungsstatistik, ob sich die Verbindung verschlechtert, über die die Netzwerkeinheit mit dem betreffenden Server verbunden ist. Wenn sich die Verbindung verschlechtert, über die die Netzwerkeinheit mit dem betreffenden Server verbunden ist, wird eine auf dem betreffenden Server ausgeführte virtuelle Maschine auf einen Zielserver migriert.
  • Kurzbeschreibung der Zeichnungen
  • Im Folgenden wird lediglich als Beispiel eine bevorzugte Ausführungsform der vorliegenden Erfindung unter Bezugnahme auf die beigefügten Zeichnungen beschrieben, wobei:
  • 1 eine Strichzeichnung eines beispielhaften Rechenzentrums darlegt, in dem virtuelle Maschinen gemäß Ausführungsformen der vorliegenden Erfindung zwischen vernetzten Servern migriert werden,
  • 2 einen Netzwerkplan eines beispielhaften Systems zum Migrieren virtueller Maschinen zwischen vernetzten Servern gemäß Ausführungsformen der vorliegenden Erfindung darlegt,
  • 3 einen Ablaufplan eines beispielhaften Verfahrens zum Migrieren virtueller Maschinen zwischen vernetzten Servern gemäß Ausführungsformen der vorliegenden Erfindung darlegt,
  • 4 einen Ablaufplan eines weiteren beispielhaften Verfahrens zum Migrieren virtueller Maschinen zwischen vernetzten Servern gemäß Ausführungsformen der vorliegenden Erfindung darlegt,
  • 5 einen Ablaufplan eines weiteren beispielhaften Verfahrens zum Migrieren virtueller Maschinen zwischen vernetzten Servern gemäß Ausführungsformen der vorliegenden Erfindung darlegt,
  • 6 einen Ablaufplan eines weiteren beispielhaften Verfahrens zum Migrieren virtueller Maschinen zwischen vernetzten Servern gemäß Ausführungsformen der vorliegenden Erfindung darlegt,
  • 7 einen Ablaufplan eines beispielhaften Verfahrens darlegt, bei dem das VMMM gemäß Ausführungsformen der vorliegenden Erfindung anhand von Verbindungsstatistiken ermittelt, ob sich eine Verbindung verschlechtert, über die eine Netzwerkeinheit mit einem bestimmten Server verbunden ist, und
  • 8 einen Ablaufplan eines weiteren beispielhaften Verfahrens darlegt, bei dem das VMMM gemäß Ausführungsformen der vorliegenden Erfindung anhand von Verbindungsstatistiken ermittelt, ob sich eine Verbindung verschlechtert, über die eine Netzwerkeinheit mit einem bestimmten Server verbunden ist.
  • Detaillierte Beschreibung beispielhafter Ausführungsformen
  • Beispielhafte Verfahren, Vorrichtungen und Produkte zum Migrieren virtueller Maschinen zwischen vernetzten Servern gemäß der vorliegenden Erfindung werden, beginnend bei 1, unter Bezugnahme auf die beigefügten Zeichnungen beschrieben. 1 zeigt eine Strichzeichnung eines beispielhaften Rechenzentrums, in dem virtuelle Maschinen gemäß Ausführungsformen der vorliegenden Erfindung zwischen vernetzten Servern migriert werden. Ein Rechenzentrum (120) ist eine Einrichtung, die zur Unterbringung unternehmenskritischer Computersysteme und zugehöriger Komponenten dient. Ein derartiges Rechenzentrum kann Anlagen zur Steuerung der Umgebungsbedingungen (Klimaanlage, Brandbekämpfung usw.), redundante Stromversorgungen/Notstromversorgungen, redundante Datenaustauschverbindungen und zur Gewährleistung einer hohen Sicherheit biometrische Zugangskontrollen zu abgeteilten Sicherheitszonen innerhalb der Einrichtung aufweisen. In einem Rechenzentrum kann auch eine große Anzahl elektronischer Geräte untergebracht sein, bei denen es sich normalerweise um Computer und Geräte für den Datenaustausch handelt. Ein Rechenzentrum kann von einer Organisation betrieben werden, um alle für den Betrieb der Organisation notwendigen Daten zu verarbeiten. Beispielsweise kann eine Bank ein Rechenzentrum haben, in dem die Kontodaten der Bankkunden gepflegt und Transaktionen im Zusammenhang mit diesen Konten durchgeführt werden. Praktisch haben alle Unternehmen ab mittlerer Größe aufwärts ein Rechenzentrum, wobei größere Unternehmen oftmals Dutzende von Rechenzentren haben.
  • Der in der vorliegenden Beschreibung verwendete Begriff „virtuelle Maschine” (VM) bezeichnet eine Softwarerealisierung einer Maschine, z. B. eines Computers. Eine virtuelle Maschine ermöglicht die gemeinsame Nutzung der unterlagerten physischen Maschinenressourcen zwischen unterschiedlichen virtuellen Maschinen, wobei jede Maschine ihr eigenes Betriebssystem ausführen kann. Die Softwareschicht, die die Virtualisierung bereitstellt, wird als „Virtual Machine Monitor” oder „Hypervisor” bezeichnet. Ein Hypervisor ist ein aus automatisierten Datenverarbeitungsmaschinen bestehendes Modul, das die Virtualisierung von Software- und Hardwareplattformen durchführt, sodass mehrere Betriebssysteme gleichzeitig auf einem Host-Computer in mehreren virtuellen Maschinen ausgeführt werden können. Ein Hypervisor wird direkt auf der Hardware des Hosts ausgeführt, um den Hardwarezugriff zu steuern und Gastbetriebssysteme zu überwachen. Ein Gastbetriebssystem wird auf einer Ebene oberhalb des Hypervisors ausgeführt. Die von einem Hypervisor bereitgestellte Plattformvirtualisierung wird in der vorliegenden Beschreibung als „virtualisierte Umgebung” bezeichnet. Bei einer virtualisierten Umgebung handelt es sich um eine Umgebung, bei der physische Merkmale einer Datenverarbeitungsplattform – Computerprozessoren, Computerhauptspeicher, E/A-Adapter u. Ä. – aus der Perspektive eines Betriebssystems und weiterer Softwareanwendungen abstrahiert sind.
  • VMs bieten viele Vorteile, z. B.:
    mehrere Betriebssystemumgebungen können auf denselben physischen Computerhardware-Ressourcen nebeneinander und streng voneinander getrennt ausgeführt werden;
    eine Befehlssatzarchitektur (Instruction Set Architecture, ISA), die sich etwas von der ISA der unterlagerten physischen Computerhardware-Ressourcen unterscheidet;
    Bereitstellung von Anwendungen, Wartung, hohe Verfügbarkeit und Notfallwiederherstellung; und
    weitere, dem fachkundigen Leser bekannte Vorteile.
  • Das System aus 1 ist allgemein zur VM-Migration zwischen Servern in der Lage. Der in der vorliegenden Beschreibung verwendete Begriff „Migration” bezeichnet die tatsächliche Verschiebung einer virtuellen Maschine von einem physischen Server auf einen anderen physischen Server. Die Migration wird im vorliegenden Dokument im Sinne einer „wirksamen” Verlagerung einer VM von einem Server auf einen anderen beschrieben, da sich die Migration nicht auf die Mittel zur Verschiebung, sondern auf das Endergebnis der Verschiebung bezieht. Das heißt, dass die Migration zwei Zustände beschreibt, einen Zustand, bei dem eine bestimmte VM auf einem bestimmten Server ausgeführt wird, und einen zweiten Zustand, bei dem eine bestimmte VM nicht mehr auf dem betreffenden Server, sondern stattdessen auf einem anderen Server ausgeführt wird. Der Übergang vom ersten zum zweiten Zustand lässt sich daher so beschreiben, dass die VM vom betreffenden Server auf den anderen Server verlagert wurde. Das Mittel, mit dessen Hilfe eine derartige „Verschiebung” einer VM durchgeführt wird, kann innerhalb des Geltungsbereichs der vorliegenden Erfindung jedoch stark variieren. Das Migrieren einer VM von einem bestimmten Server auf einen anderen Server kann z. B. Folgendes umfassen: Kopieren von Daten, die für die auf dem betreffenden Server ausgeführte VM stehen, vom Hauptspeicher des betreffenden Servers auf dem Hauptspeicher eines anderen Servers, Hochladen eines zuvor angelegten Abbildes der auf dem betreffenden Server ausgeführten VM auf einen anderen Server und Anhalten der Ausführung der auf den betreffenden Server ausgeführten VM sowie Ausführen des Abbildes auf dem anderen Server, Anlegen des Standardabbildes einer virtuellen Maschine auf einem anderen Server und im Standardabbild der VM das Ausführen von Instanzen derselben Benutzerebene-Anwendungen, die in der VM des betreffenden Servers ausgeführt werden, usw.
  • Das beispielhafte Rechenzentrum (120) bei dem Beispiel aus 1 enthält ein Blade CenterTM (100), bei dem es sich um eine Art Serverchassis handelt, das so gestaltet ist, dass es eine Reihe von Blade-Servern aufnehmen kann. Der in der vorliegenden Beschreibung verwendete Begriff „Server” bezeichnet allgemein einen Computer für mehrere Benutzer, der über eine Netzwerkverbindung einen Dienst (z. B. Datenbankzugriff, Dateiübertragung, Fernzugriff) oder Ressourcen (z. B. einen Dateibereich) bereitstellt. Der Begriff „Server” schließt auch die Hardware des Server-Computers sowie die auf dem Server ausgeführte Software von Serveranwendungen oder Betriebssystemsoftware ein. Bei einer Serveranwendung handelt sich um ein Anwendungsprogramm, das Verbindungen annimmt, um Anforderungen von Benutzern zu bedienen, indem es Rückantworten sendet. Eine Serveranwendung kann auf demselben Computer ausgeführt werden wie die Client-Anwendung, die den Computer nutzt, oder eine Serveranwendung kann Verbindungen über ein Computernetzwerk annehmen. Beispiele für Serveranwendungen sind u. a. Dateiserver, Datenbankserver, Sicherungsserver, Druckserver, Mailserver, Webserver, FTP-Server, Anwendungsserver, VPN-Server, DHCP-Server, DNS-Server, WINS-Server, Anmeldeserver, Sicherheitsserver, Domänencontroller, Backup-Domänencontroller, Proxy-Server, Firewalls usw.
  • Bei einem Blade-Server handelt es sich um einen modular aufgebauten Server-Computer, der unter den Gesichtspunkten des minimalen Platzbedarfs und Energieverbrauchs optimiert ist. Während ein Einschub-Standardserver mit mindestens einem Netz- und einem Netzwerkkabel funktionieren kann, wurden bei Blade-Servern zur Platzeinsparung, Minimierung des Energieverbrauchs und aus anderen Gründen viele Komponenten entfernt und dennoch alle funktionswichtigen Komponenten beibehalten, die einen Computer ausmachen. Ein Blade-Center, das mehrere Blade-Server aufnehmen kann, stellt Dienste wie z. B. Stromversorgung, Kühlung, Vernetzung, verschiedene Verbindungen und Verwaltung bereit, obwohl unterschiedliche Blade-Anbieter unterschiedliche Prinzipien hinsichtlich dessen verfolgen, was im Blade selbst (und manchmal im Gehäuse insgesamt) enthalten ist.
  • Bei dem Beispiel aus 1 enthält das Blade-Center (100) zwei Schrankfelder (104, 106), die jeweils mehrere Komponenten enthalten. Das Schrankfeld (104) enthält eine Reihe von Blade-Servern (108), die jeweils von einer Stromversorgung (132) gespeist werden. Das Schrankfeld (106) enthält die Stromversorgung (132) für das Blade-Center (100), einen Netzwerk-Router für den Datenaustausch (130), einen Netzwerk-Switch (134) und ein Managementmodul für virtuelle Maschinen (VMMM) (102), das nachfolgend eingehender beschrieben wird. Außerdem enthält das Schrankfeld (106) eine RAID-Baugruppe (RAID = Redundant Array of Independent Disks) (136) und eine Steckdosenleiste (138).
  • In 1 sind zur besseren Verständlichkeit der Erläuterung zwei der Blade-Server (108) im Blade-Center (100) in ausführlicherer Form abgebildet: der Blade-Server (152) und der Blade-Server (128). Dem fachkundigen Leser ist klar, dass jeder einzelne der Blade-Server (108) des Blade-Centers (100) ähnliche Komponenten wie die Server (152, 128) enthalten und in ähnlicher Weise funktionieren kann, wenn er an der VM-Migration gemäß Ausführungsformen der vorliegenden Erfindung beteiligt ist. Betrachtet wird nun der Server (152) als Beispiel eines bei Systemen verwendbaren Servers, bei denen die VM-Migration gemäß Ausführungsformen der vorliegenden Erfindung durchgeführt wird. Der Server (152) enthält mindestens einen Computerprozessor (156) bzw. eine „CPU” sowie Direktzugriffsspeicher (168) („RAM”), der über einen schnellen Hauptspeicherbus (166) und einen Busadapter (158) mit dem Prozessor (156) und anderen Komponenten des Servers (152) verbunden ist.
  • Im RAM (168) des Servers (152) ist ein Hypervisor (140) gespeichert, mit dessen Hilfe zwei virtuelle Maschinen (114, 116) auf der unterlagerten Hardware des Servers (152) ausgeführt werden können, die die Hardwareressourcen des Servers (152) nutzen. Innerhalb (oder mit anderen Worten ausgedrückt „auf”) der virtuellen Maschine (114) werden ein Betriebssystem (154) und zwei Benutzerebene-Anwendungen (122, 123) ausgeführt. Dem Fachmann ist klar, dass zu den Betriebssystemen, die bei Servern verwendbar sind, die an der VM-Migration gemäß Ausführungsformen der vorliegenden Erfindung beteiligt sind, UNIXTM, LinuxTM, Microsoft XPTM, AIXTM, i5/OSTM von IBM und weitere Betriebssysteme gehören. Auf der virtuellen Maschine (116) werden ein Betriebssystem (154) und zwei Benutzerebene-Anwendungen (124, 125) ausgeführt. Das auf der virtuellen Maschine (116) ausgeführte Betriebssystem (154) kann eine separate Instanz desselben Betriebssystems (154) sein, das auf der virtuellen Maschine (114) ausgeführt wird, oder es kann sich um ein völlig anderes Betriebssystem (154) handeln. Das heißt, dass beide Betriebssysteme auf dem Server (152) identisch sein können, z. B. UnixTM, oder es kann sich um unterschiedliche Betriebssysteme handeln, z. B. UnixTM und Microsoft XPTM Der Hypervisor (140), die Betriebssysteme (154) und die Benutzerebene-Anwendungen (122 bis 125) im Beispiel aus 1 sind im RAM (168) dargestellt, aber viele Komponenten dieser Software sind normalerweise auch in nichtflüchtigem Speicher wie z. B. auf einer Festplatte (170) gespeichert.
  • Der Server (152) aus 1 enthält den Festplattenadapter (172), der über den Erweiterungsbus (160) und den Busadapter (158) mit dem Prozessor (156) und weiteren Komponenten des Servers (152) verbunden ist. Der Festplattenadapter (172) verbindet den nichtflüchtigen Datenspeicher in Form der Festplatte (170) mit dem Server (152). Dem Fachmann ist klar, dass zu den Festplattenadaptern, die bei Servern verwendbar sind, die gemäß Ausführungsformen der vorliegenden Erfindung an der Migration virtueller Maschinen zwischen vernetzten Servern beteiligt sind, IDE-Adapter (IDE = Integrated Drive Electronics), SCSI-Adapter (SCSI = Small Computer System Interface) und weitere Adapter gehören. Dem Fachmann ist klar, dass nichtflüchtiger Computerspeicher auch als optisches Festplattenlaufwerk, elektrisch löschbarer programmierbarer Nur-Lese-Speicher (so genannter EEPROM- oder Flash-Speicher), in Form von RAM-Laufwerken usw. realisiert sein kann.
  • Der beispielhafte Server (152) aus 1 enthält einen oder mehrere Eingabe/Ausgabe-Adapter („E/A-Adapter”) (178). E/A-Adapter realisieren die benutzerorientierte Eingabe und Ausgabe mithilfe von z. B. Softwaretreibern und Computerhardware zum Steuern der Ausgabe auf Ausgabeeinheiten wie z. B. Computer-Anzeigebildschirme sowie zum Steuern der Eingabe von Benutzereingabeeinheiten (181) wie z. B. von Tastaturen und Mäusen. Der beispielhafte Server (152) aus 1 enthält einen Videoadapter (209), bei dem es sich um ein Beispiel eines E/A-Adapters handelt, der speziell für die grafische Ausgabe auf eine Anzeigeeinheit (180) wie z. B. ein Anzeigebildschirm oder ein Computermonitor geeignet ist. Der Videoadapter (209) ist mit dem Prozessor (156) über einen schnellen Videobus (164), den Busadapter (158) und den Front-Side-Bus (162) verbunden, bei dem es sich ebenfalls um einen schnellen Bus handelt.
  • Der beispielhafte Server (152) aus 1 enthält einen Datenübertragungsadapter (167) für den Datenaustausch mit anderen Computern und für den Datenaustausch mit einem Datenübertragungsnetzwerk (in 1 nicht gezeigt). Dem Fachmann ist klar, dass dieser Datenaustausch seriell über RS-232-Verbindungen, über externe Busse wie z. B. einen Universal Serial Bus (USB), über Datenübertragungsnetzwerke wie z. B. IP-Datenübertragungsnetzwerke und auf andere Weise durchgeführt werden kann. Datenübertragungsadapter realisieren die Hardwareebene des Datenaustauschs, über die ein Computer direkt oder über ein Datenübertragungsnetzwerk Daten an einen anderen Computer sendet. Zu Beispielen von Datenübertragungsadaptern, die bei Servern verwendet werden können, die in die VM-Migration gemäß Ausführungsformen der vorliegenden Erfindung eingebunden sind, gehören Modems für kabelgebundene DFÜ-Verbindungen, Ethernet-Adapter (IEEE 802.3) für die Verbindung zu kabelgebundenen Datenübertragungsnetzwerken und 802.11-Adapter für die Verbindung zu drahtlosen Datenübertragungsnetzwerken.
  • Obwohl nur der Server (152) mit einem Prozessor (156), RAM (168), Busadapter (158), Datenübertragungsadapter (167) und Ähnlichem abgebildet ist, ist für den fachkundigen Leser klar, dass jeder der Blade-Server (108) im Beispiel aus 1 und insbesondere der Server (128) ebenfalls ähnliche Komponenten enthalten können.
  • Der Switch (134) des Blade-Centers (100) aus 1 ist ein Beispiel einer Netzwerkeinheit, einer Einheit, die Daten in einem Computernetzwerk vermittelt. Vernetzungseinheiten können auch als Netzwerkeinrichtungen, Intermediate Systems (IS) oder InterWorking Units (IWUs) bezeichnet sein. Einheiten, die den letzten Empfänger bilden oder Daten erzeugen, werden als Hosts oder Datenendeinrichtungen bezeichnet.
  • Zu Beispielen von Vernetzungseinheiten gehören unter anderem:
    Gateway: eine Einheit an einem Netzwerkknoten, die eine Schnittstelle zu einem anderen Netzwerk bildet, in dem andere Protokolle verwendet werden. Die Einheit arbeitet auf den OSI-Schichten 4 bis 7 (OSI = Open System Interconnection).
  • Router: eine spezialisierte Netzwerkeinheit, die den nächsten Netzwerkpunkt ermittelt, an den ein Datenpaket auf seinem Weg zu seinem Ziel weitergeleitet werden muss. Die Einheit arbeitet normalerweise auf der OSI-Schicht 3.
  • Bridge: eine Einheit, die mehrere Netzwerkabschnitte auf der Sicherungsschicht miteinander verbindet. Die Einheit arbeitet auf der OSI-Schicht 2.
  • Switch: eine Einheit, die Datenverkehr aus einem Netzwerkabschnitt auf bestimmte Leitungen oder „Verbindungen”, das vorgesehene Ziel bzw. vorgesehene Ziele, aufteilt, die den Abschnitt mit einem anderen Netzwerkabschnitt verbinden. Im Gegensatz zu einem Hub teilt ein Switch den Netzwerkverkehr auf und sendet ihn an unterschiedliche Ziele und nicht an alle Systeme im Netzwerk. Die Einheit arbeitet auf der OSI-Schicht 2.
  • Multilayer-Switch: ein Switch, der außer der Verteilung auf der OSI-Schicht 2 Funktionalitäten auf höheren Protokollschichten bereitstellt.
  • Hub: eine Einheit, die mehrere Abschnitte miteinander verbindet und so steuert, als bildeten diese Abschnitte einen einzigen Abschnitt. Bei Verwendung eines Hubs nutzt jede angeschlossene Einheit dieselbe Broadcast-Domäne und dieselbe Kollisionsdomäne. Daher kann jeweils nur einer der an den Hub angeschlossenen Computer senden. Je nach der Netzwerktopologie stellt der Hub zwischen Netzwerkobjekten (Arbeitsstationen, Server usw.) eine Verbindung auf der Ebene 1 des OSI-Modells bereit. Außerdem kann der Hub im Gegensatz zu Switches, die eine zweckgebundene Verbindung zwischen einzelnen Knoten bereitstellen, Bandbreite bereitstellen, die von allen Objekten gemeinsam genutzt wird. Die Einheit arbeitet auf der OSI-Schicht 1.
  • Repeater: eine Einheit, die empfangene Digitalsignale verstärkt oder regeneriert und gleichzeitig die Digitalsignale von einem Teil eines Netzwerks in einen anderen umsetzt. Die Einheit arbeitet auf der OSI-Schicht 1.
  • Protokollumsetzer: eine Hardwareeinheit, die eine Umsetzung zwischen zwei unterschiedlichen Übertragungsarten durchführt, z. B. zwischen asynchronen und synchronen Übertragungen.
  • Bridge-Router: eine Einheit, die als Kombination aus Router- und Bridge-Funktionalität arbeitet. Die Einheit arbeitet sowohl auf der OSI-Schicht 2 als auch auf der OSI-Schicht 3.
  • Digital-Media-Receiver: eine Einheit, die ein Computernetzwerk mit einem Heimkino verbindet.
  • Der Switch (134) im Beispiel aus 1 verbindet die Blade-Server (108 einschließlich 152 und 128) zu Datenübertragungszwecken untereinander und mit dem Router (130) sowie mit dem VMMM (102).
  • Beim Managementmodul für virtuelle Maschinen (102) („VMMM”) aus 1 handelt es sich um ein Modul aus automatisierten Datenverarbeitungsmaschinen, das eine Zusammenstellung aus Computerhardware und -software umfasst, die geeignet ist, die Migration virtueller Maschinen zwischen den im Beispiel aus 1 vernetzten Servern (108 einschließlich 152 und 128) durchzuführen. Das VMMM kann unabhängig vom Migrationsverfahren auch für das Management anderer virtueller Maschinen zuständig sein. Das heißt, dass das VMMM (102) auch die Zuweisung von VMs zwischen Servern verwalten kann, um einen Ausgleich bei Auslastung, Redundanz oder Verfügbarkeit zu schaffen. Das VMMM (102) kann den Betrieb von VMs verwalten, indem es die Ressourcenzuweisung verwaltet oder mit einem anderen Managementmodul zusammenarbeitet, um Betriebseigenschaften durch Drosseln von Servern und Ähnliches zu steuern. Das VMMM (102) kann auch die Zurücknahme von Zuweisungen virtueller Maschinen verwalten, indem es auswählt, ob eine virtuelle Maschine anstelle der vollständigen Abschaltung in einen Bereitschaftsmodus zu versetzen ist usw. Dies sind nur einige wenige der Aufgaben, die ein VMMM durchführen kann, das zur VM-Migration gemäß Ausführungsformen der vorliegenden Erfindung betrieben wird.
  • Das VMMM (102) im Beispiel aus 1 kann VMs zwischen Blade-Servern (108) im Blade-Center (100) aus 1 gemäß Ausführungsformen der vorliegenden Erfindung migrieren, indem es zuerst eine oder mehrere VMs auf einem bestimmten Server einrichtet. Zu Erläuterungszwecken wird angenommen, dass das VMMM (102) im Beispiel aus 1 auf dem Server (152) eine virtuelle Maschine (114) und eine virtuelle Maschine (116) einrichtet. Das VMMM kann dann die Vernetzungseinheit – den Switch (134) – nach Verbindungsstatistiken (112) einer Verbindung abfragen, über die die Netzwerkeinheit mit dem betreffenden Server zu Datenaustauschzwecken verbunden ist. Der Begriff „Verbindung” bezeichnet im vorliegenden Dokument je nach Kontext eine physische oder logische Verbindung zwischen zwei Einheiten für den Datenaustausch zwischen den Einheiten. Verbindungsstatistiken beschreiben den über die Verbindungen stattfindenden Datenaustausch, über die die Server (108, 152, 128) untereinander und mit den Switch verbunden sind (134).
  • Das VMMM (102) kann anschließend in Abhängigkeit von den Verbindungsstatistiken (112) ermitteln, ob sich die Verbindung verschlechtert, über die die Netzwerkeinheit mit dem betreffenden Server verbunden ist, und wenn sich die Verbindung verschlechtert, über die die Netzwerkeinheit mit dem betreffenden Server verbunden ist, kann das VMMM eine auf dem betreffenden Server (152) ausgeführte virtuelle Maschine, z. B. die VM (114), auf einem Zielserver migrieren, z. B. auf den Server (128).
  • Beispielsweise wird angenommen, dass das VMMM (102), das die VM-Migration im Datenverarbeitungszentrum (120) aus 1 durchführt, zuerst die VM (114) und die VM (116) auf dem Server (152) einrichtet und keine VMs auf dem Server (128) einrichtet. Während die Server (108) einschließlich des Servers (152) und des Servers (128) über den Netzwerk-Switch (134) untereinander Datenübertragungsnachrichten weiterleiten, überwacht der Netzwerk-Switch (134) den Datenaustausch und speichert Verbindungsstatistiken in einem vorgegebenen Speicherbereich, der mithilfe einer Abfrage für das VMMM (102) zugänglich ist. Von Zeit zu Zeit fragt das VMMM (102) den Switch (134) nach Verbindungsstatistiken (112) ab und ermittelt, ob sich die Verbindung verschlechtert, über die der Server (152) und der Switch (134) verbunden sind. Wenn sich die Verbindung verschlechtert, migriert das VMMM (102) die VM (114) und die VM (116) auf den Server (128), die hier als VM (118) und VM (119) abgebildet sind. Wenn gegenwärtig auf den Servern (128) kein Hypervisor ausgeführt wird, kann das VMMM auch zuerst den Hypervisor (142) in den Servern (128) initialisieren, bevor es die VMs (118, 119) einrichtet. Außer den VMs kann das VMMM (102) auch die Benutzerebene-Anwendungen (122 bis 125), die auf den VMs (114, 116) des Servers (152) ausgeführt werden, auf die VMs (118, 119) des Servers (128) migrieren. Im Beispiel aus 1 wurden die Benutzerebene-Anwendungen (122 bis 125) migriert und sind als Benutzerebene-Anwendungen (126, 127, 129 und 131) abgebildet.
  • Der Begriff „verschlechtern” wird im vorliegenden Dokument zur Beschreibung einer Datenübertragungsverbindung verwendet und bezeichnet eine Verbindung, die nicht der Norm entsprechend funktioniert und möglicherweise kurz vor dem Ausfall steht. Hierbei soll der Begriff „verschlechtern” darauf hinweisen, dass die VM-Migration in einer vorausschauenden – auf die Abmilderung der Folgen gerichteten – Weise und nicht in einer reagierenden Weise durchgeführt wird. Das heißt, dass das VMMM, anstelle des Migrierens einer VM nach dem Ausfall einer Verbindung, im Beispiel aus 1 eine VM vor einem vollständigen Ausfall migriert und dadurch den Verlust des Datenaustauschs, der Produktivität usw. abmildert, der anderenfalls auftreten könnte, wenn die Verbindung vollständig ausgefallen ist. Auf diese Weise wird die Verfügbarkeit des Servers und der VM erhöht. Dem fachkundigen Leser ist außerdem klar, dass das Überwachen des Datenaustauschs und das Ermitteln, ob sich eine Verbindung verschlechtert, nicht durch einen Hypervisor durchgeführt wird, der eine VM unterstützt und aktiviert, sondern durch Netzwerkeinheiten und ein VMMM. Auf diese Weise werden der Hypervisor und daher der Server, auf dem der Hypervisor ausgeführt wird, nicht mit dem Überwachen des Datenaustauschs und dem Ermitteln belastet, ob sich Datenaustauschverbindungen verschlechtern, wodurch die Leistungsfähigkeit des Serverbetriebs erhöht und der Betriebsaufwand gesenkt wird.
  • Verbindungen können sich aufgrund verschiedener Ursachen verschlechtern, unter anderem z. B. aufgrund elektromagnetischer Störungen, die zu Signalfehlern führen, die wiederum CRC-Fehler (CRC = Cyclic Redundancy Check, zyklische Blockprüfung) bei Datenübertragungspaketen verursachen, aufgrund der Alterung physischer Kabel, die dazu führt, dass Signale von Verkettungssymbolen die Anpassung der Switch-Hardware an die Kabeleigenschaften verfälschen. Dies sind nur einige wenige beispielhafte Ursachen einer Verbindungsverschlechterung aus einer Mehrzahl möglicher Faktoren und jede dieser Ursachen liegt im Geltungsbereich der vorliegenden Erfindung.
  • Die Anordnung von Servern und anderen Einheiten, die das in 1 veranschaulichte beispielhafte System bilden, dient der Erläuterung und nicht als Einschränkung. Dem Fachmann ist klar, dass zu Datenverarbeitungssystemen, die gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung verwendbar sind, weitere Server, Router, andere Einheiten und Peer-to-Peer-Architekturen gehören können, die in 1 nicht gezeigt sind. Dem Fachmann ist klar, dass Netzwerke in derartigen Datenverarbeitungssystems viele Datenübertragungsprotokolle unterstützen können, z. B. TCP (Transmission Control Protocol), IP (Internet Protocol), HTTP (HyperText Transfer Protocol), WAP (Wireless Access Protocol), HDTP (Handheld Device Transport Protocol) und weitere Protokolle. Verschiedene Ausführungsformen der vorliegenden Erfindung können außer auf den in 1 veranschaulichten Hardwareplattformen auf einer Vielfalt von Hardwareplattformen realisiert sein.
  • 2 zeigt einen Netzwerkplan eines beispielhaften Systems zum Migrieren virtueller Maschinen zwischen vernetzten Servern gemäß Ausführungsformen der vorliegenden Erfindung. Das beispielhafte System aus 2 ähnelt dem in 1 abgebildeten System in der Weise, dass das System aus 2 ebenfalls Server (152, 128), eine Netzwerkeinheit in Form eines Switch (134) und ein VMMM (102) enthält, die alle untereinander zu Datenaustauschzwecken über ein Datenübertragungsnetzwerk, das lokale Netzwerk („LAN”) (101), verbunden sind. Die Server (152, 128) und das VMMM (102) sind zu Datenaustauschzwecken ebenfalls mit anderen Servern (150) verbunden.
  • Die Server (152, 128 und 150) im beispielhaften System aus 2 sind zu Datenaustauschzwecken über Datenübertragungsverbindungen mit dem Switch (134) verbunden. Der Server (152) ist zu Datenaustauschzwecken über die Verbindung (192) mit dem Datenübertragungsnetzwerk (101) und dem Switch (134) verbunden, und mindestens einer der anderen Server (150) ist zu Datenaustauschzwecken über die Verbindung (190) mit dem Datenübertragungsnetzwerk (101) und dem Switch (134) verbunden. Der Begriff „Verbindung” bezeichnet im vorliegenden Dokument je nach Kontext eine physische oder logische Verbindung zwischen zwei Einheiten für den Datenaustausch zwischen den Einheiten. Ein Ethernet-Kabel, über das z. B. ein Server mit einem Switch verbunden ist, kann ein Beispiel für eine „Verbindung” sein. Eine zwischen zwei Endpunkten festgelegte logische Verbindung – z. B. ein Server und ein Port eines Switch – kann ebenfalls ein Beispiel für eine Verbindung sein. Der Begriff „verbunden”, der im vorliegenden Dokument zur Beschreibung einer Beziehung zwischen einer Netzwerkeinheit und einem Server verwendet wird, bezeichnet die Beschreibung einer beliebigen direkten oder anderweitigen Verbindung zwischen einem Server und einer Netzwerkeinheit. Das heißt, dass der Begriff „verbunden” in der Beschreibung einer Beziehung zwischen einem Netzwerk und einem Server nicht auf eine direkte physische Verbindung zwischen der Netzwerkeinheit und den Netzwerkeinheiten beschränkt ist, sondern auch eine indirekte Verbindung über andere Netzwerkeinheiten einschließen kann.
  • In dem System aus 2 sind die Server (152, 128 und 150) als Computer realisiert, die ähnliche Komponenten enthalten – den Prozessor (156), den RAM (168), den Busadapter (158), den Datenübertragungsadapter (178) und Ähnliches – wie die in 1 abgebildeten und im Zusammenhang mit der 1 beschriebenen Server. Der Switch (134) im Beispiel aus 2 ist ähnlich wie die Server (152 und 128) ebenfalls als eine Art Computer realisiert, d. h. als automatisierte Datenverarbeitungsmaschine. Der Switch (134) enthält einen Prozessor (156), der mit dem RAM (168) verbunden ist. Der Switch kann selbstverständlich mehrere Software- und Hardwarekomponenten enthalten, ist aber in dem Beispiel aus 2 der besseren Verständlichkeit wegen nur mit RAM und einem Prozessor abgebildet. Im RAM (168) des Switch (134) ist eine Datenverkehrsüberwachung (202) gespeichert. Bei einer Datenverkehrsüberwachung (202) handelt es sich um ein Modul aus Computerprogrammanweisungen, die bei Ausführung den Netzwerk-Switch (134) veranlassen, den Datenaustausch zu überwachen, der zwischen den Servern (152, 128, 150) über die Verbindungen (190, 192, 194) abläuft, über die die Server (152, 128, 150) untereinander und mit dem Switch (134) verbunden sind, und in einem Nachrichteninformationsblock („MIB”) (204) Verbindungsstatistiken (112) zu speichern, die den Datenaustausch zwischen den Servern beschreiben, der über die Verbindungen abläuft, über die die Server untereinander und mit dem Switch verbunden sind. Beispiele von Verbindungsstatistiken enthalten zu jeder Verbindung unter anderem eine Anzahl von Bytes, die über die Verbindung zu einer bestimmten Einheit übertragen wurden, eine Anzahl von Bytes, die von der betreffenden Einheit über die Verbindung empfangen wurden, eine Anzahl von fehlerbehafteten Bytes, die über die Verbindung übertragen wurden, und Instanzen von Symbolfehlern, die über die Verbindung verbreitet wurden.
  • Wie oben erwähnt können Verbindungsstatistiken in einem MIB gespeichert werden. Ein MIB ist eine virtuelle Datenbank, die zur Verwaltung der Einheiten in einem Datenübertragungsnetzwerk verwendet wird. Die Datenbank ist hierarchisch strukturiert (Baumstruktur), und Einträge sind mithilfe von Objektkennungen adressiert. In der Internetdokumentation „Request For Comments” („RFCs”) werden MIBs erörtert, insbesondere in RFC 1155, „Structure and Identification of Management Information for TCP/IP based Internets” und in ihren zwei Begleitdokumenten RFC 1213, „Management Information Base for Network Management of TCP/IP-based internets”, und RFC 1157, „A Simple Network Management Protocol”.
  • Außer dem Switch (134) und wie oben in Bezug auf die 1 erwähnt kann das VMMM (102) ebenfalls als automatisierte Datenverarbeitungsmaschine, d. h. als Computer, realisiert sein. Zur weiteren Erläuterung ist daher in 2 ein beispielhaftes VMMM (102) dargelegt, das als Computer realisiert ist. Das beispielhafte VMMM (102) aus 2 enthält Komponenten, die denen der Server (152, 128) ähneln: einen Prozessor (156), einen Busadapter (158), einen Datenübertragungsadapter (178), RAM (168) usw. Im RAM (168) des VMMM (102) ist eine Zuweisungseinrichtung für virtuelle Maschinen (110) gespeichert. Bei der VM-Zuweisungseinrichtung (110) handelt es sich um ein Modul aus Computerprogrammanweisungen, die bei Ausführung virtuelle Maschinen zwischen vernetzten Servern gemäß Ausführungsformen der vorliegenden Erfindung migriert. Die beispielhafte VM-Zuweisungseinrichtung (110) kann VMs zwischen den Servern (152, 128 und 150) in dem System aus 2 migrieren, indem sie zuerst eine oder mehrere virtuelle Maschinen (114, 116) auf einem bestimmten Server einrichtet, die Vernetzungseinheit (134) auf Verbindungsstatistiken (112) einer Verbindung (192) abfragt, über die die Netzwerkeinheit (134) zu Datenaustauschzwecken mit dem betreffenden Server (152) verbunden ist, und indem sie anhand der Verbindungsstatistiken (112) ermittelt, ob sich die Verbindung (192) verschlechtert, über die die Netzwerkeinheit (134) mit dem betreffenden Server (152) verbunden ist, und eine auf dem betreffenden Server (152) ausgeführte virtuelle Maschine (114, 116) auf einem Zielserver (128 oder 150) migriert, wenn sich die Verbindung (192) verschlechtert.
  • Außer der Migration virtueller Maschinen (114, 116) kann die VM-Zuweisungseinrichtung (110) auch Benutzerebene-Anwendungen (122, 123, 124, 125) migrieren, die auf den VMs (114, 116) ausgeführt werden. In dem System aus 2 kann die VM-Zuweisungseinrichtung (110) z. B. die VM (114) auf dem Server (152) auf eine VM (118) auf dem Server (128) migrieren. Die VM-Zuweisungseinrichtung (110) kann auch Benutzerebene-Anwendungen (122, 123), die auf der VM (114) ausgeführt werden, auf Benutzerebene-Anwendungen (126, 127) migrieren, die auf der VM (118) ausgeführt werden. In ähnlicher Weise kann die VM-Zuweisungseinrichtung (110) die VM (116) auf dem Server (152) auf eine VM (119) auf dem Server (128) migrieren. Die VM-Zuweisungseinrichtung (110) kann auch Benutzerebene-Anwendungen (124, 125), die auf der VM (116) ausgeführt werden, auf Benutzerebene-Anwendungen (129, 131) migrieren, die auf der VM (119) ausgeführt werden.
  • Die Anordnung von Servern und anderen Einheiten, die das in 2 veranschaulichte beispielhafte System bilden, dient der Erläuterung und nicht als Einschränkung. Dem Fachmann ist klar, dass zu Datenverarbeitungssystemen, die gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung verwendbar sind, weitere Server, Router, andere Einheiten und Peer-to-Peer-Architekturen gehören können, die in 2 nicht gezeigt sind. Dem Fachmann ist klar, dass Netzwerke in derartigen Datenverarbeitungssystemen viele Datenübertragungsprotokolle unterstützen können, z. B. TCP (Transmission Control Protocol), IP (Internet Protocol), HTTP (HyperText Transfer Protocol), WAP (Wireless Access Protocol), HDTP (Handheld Device Transport Protocol) und weitere Protokolle. Verschiedene Ausführungsformen der vorliegenden Erfindung können außer auf den in 2 veranschaulichten Hardwareplattformen auf einer Vielfalt von Hardwareplattformen realisiert sein.
  • Zur weiteren Erläuterung legt 3 einen Ablaufplan eines beispielhaften Verfahrens zum Migrieren virtueller Maschinen zwischen vernetzten Servern gemäß Ausführungsformen der vorliegenden Erfindung dar. Bei dem Verfahren aus 3 sind die Server (312, 318) zu Datenaustauschzwecken über Datenübertragungsverbindungen (192, 194) mit einem Datenaustauschnetzwerk verbunden, das eine Vernetzungseinheit (310) enthält. Der Begriff „Vernetzungseinheit” bezeichnet in dem in der vorliegenden Beschreibung verwendeten Sinn eine automatisierte Datenverarbeitungsmaschine, die andere Einheiten zu Datenaustauschzwecken miteinander verbinden und Verbindungsstatistiken bereitstellen kann, die den Datenverkehr beschreiben, der auf den Verbindungen abläuft, über die die anderen Einheiten untereinander und mit der Netzwerkeinheit verbunden sind. Dem Fachmann ist klar, dass zu Beispielen für Vernetzungseinheiten ein Netzwerk-Switch, ein Netzwerk-Router, ein Hub usw. gehören.
  • Das Verfahren aus 3 beinhaltet das Einrichten (302) einer oder mehrerer virtueller Maschinen (316) auf einem bestimmten Server (312) durch ein Managementmodul für virtuelle Maschinen (102). Dem Fachmann ist klar, dass das Einrichten (302) einer oder mehrerer virtueller Maschinen (316) auf einem bestimmten Server (312) durch einen Managementmodul für virtuelle Maschinen (102) durchgeführt werden kann, indem ein Hypervisor auf dem betreffenden Server ausgeführt und der Hypervisor so konfiguriert ist, dass er eine virtuelle Maschine einer bestimmten Konfiguration, d. h. Anzahl von Prozessoren, Speicherressourcen usw., unterstützen kann.
  • Das Verfahren aus 3 beinhaltet außerdem das Abfragen (304) der Vernetzungseinheit (310) durch das VMMM (102) auf Verbindungsstatistiken (112) einer Verbindung (192), über die die Netzwerkeinheit (310) zu Datenaustauschzwecken mit dem betreffenden Server (312) verbunden ist. Das Abfragen (304) der Vernetzungseinheit (310) auf Verbindungsstatistiken (112) kann auf verschiedene Weise durchgeführt werden, z. B. indem eine Anforderung an eine Netzwerkadresse oder an einen Netzwerkport der Netzwerkeinheit gesendet wird, die als Netzwerkadresse bzw. der als Netzwerkport zum Empfangen von Anfragen im Zusammenhang mit dem MIB (204) vorbestimmt ist, wobei die Anforderung eine Objektkennung zur Kennzeichnung einer bestimmten Verbindung oder eine Objektkennung zur Kennzeichnung des betreffenden Servers enthält. Eine weitere Art, in der das VMMM Verbindungsstatistiken (112) abfragen kann, besteht darin, alle in der Netzwerkeinheit gespeicherten Daten über den Datenübertragungsverkehr anzufordern und aus den angeforderten Daten die Verbindungsstatistiken (112) abzuleiten.
  • Das Verfahren aus 3 beinhaltet außerdem durch das VMMM (102) das Ermitteln (306) in Abhängigkeit von den Verbindungsstatistiken (112), ob sich die Verbindung (192) verschlechtert, über die die Netzwerkeinheit (310) mit dem betreffenden Server (312) verbunden ist, und wenn sich die Verbindung (192) nicht verschlechtert, über die die Netzwerkeinheit (310) mit dem betreffenden Server (312) verbunden ist, das Warten (308) während einer vorgegebenen Zeitdauer, bevor die Netzwerkeinheit erneut abgefragt wird. Das heißt, dass die VMMM (102) bei dem Verfahren aus 3 so konfiguriert ist, dass sie die Netzwerkeinheit (310) regelmäßig auf Verbindungsstatistiken (112) abfragt.
  • Wenn sich die Verbindung (192) verschlechtert, über die die Netzwerkeinheit (310) mit dem betreffenden Server (312) verbunden ist, wird das Verfahren aus 3 fortgesetzt, indem eine auf dem betreffenden Server (312) ausgeführte virtuelle Maschine (316) auf einen Zielserver (318) migriert wird. Das Migrieren (314) einer auf dem betreffenden Server (312) ausgeführten virtuellen Maschine (316) auf einen Zielserver (318) kann auf verschiedene Weise durchgeführt werden, z. B. indem Daten, die die VM verkörpern, aus dem Hauptspeicher des betreffenden Servers (312) kopiert und die Daten in den Hauptspeicher des Zielservers (318) geschrieben werden und dadurch eine exakte Kopie der Instanz der auf dem betreffenden Server (312) betriebenen VM gewährleistet ist, indem ein vorkonfiguriertes Abbild einer virtuellen Standardmaschine (dasselbe Abbild, das zur Einrichtung der betreffenden VM (316) verwendet wurde) geladen wird, indem von dem betreffenden Server (312) eine Konfigurationsdatei zur Festlegung verschiedener Attribute der betreffenden VM (316) abgerufen wird und die Attribute verwendet werden, um auf dem Zielserver (318) eine weitere VM (336) zu starten, usw. Das Migrieren (314) einer virtuellen Maschine kann auch das Migrieren beliebiger Anwendungen beinhalten, die auf der virtuellen Maschine ausgeführt werden.
  • Zur weiteren Erläuterung legt 4 einen Ablaufplan eines weiteren beispielhaften Verfahrens zum Migrieren virtueller Maschinen zwischen vernetzten Servern gemäß Ausführungsformen der vorliegenden Erfindung dar. Das Verfahren aus 4 ähnelt dem Verfahren aus 3 einschließlich des Einrichtens (302) einer oder mehrerer virtueller Maschinen (316) auf einem bestimmten Server (312), des Abfragens (304) der Netzwerkeinheit (310), des Ermittelns (306), ob sich die Verbindung (192) verschlechtert, und des Migrierens (314) einer virtuellen Maschine (316) auf einen Zielserver (318), wenn sich die Verbindung (192) verschlechtert.
  • Das Verfahren aus 4 unterscheidet sich von dem Verfahren aus 3 jedoch darin, dass das Verfahren aus 4 Folgendes beinhaltet: durch die Netzwerkeinheit (310) das Überwachen (402) des Datenaustauschs zwischen den Servern, der über die Verbindungen (192, 194) abläuft, über die die Server untereinander und mit der Netzwerkeinheit (310) verbunden sind, und das Speichern (406) von Verbindungsstatistiken (112) in einem für das VMMM (102) zugänglichen Nachrichteninformationsblock („MIB”), die den Datenaustausch zwischen den Servern beschreiben, der über die Verbindungen abläuft, über die die Server untereinander und mit der Netzwerkeinheit verbunden sind. Die Netzwerkeinheit (310) kann den Datenaustausch auf vielfältige Art überwachen. Dem fachkundigen Leser ist klar, dass dies bei jeder Verbindung durch Überwachen einer Anzahl von Bytes geschehen kann, die über eine bestimmte Verbindung von der Netzwerkeinheit übertragen werden, durch Überwachen einer Anzahl von Bytes, die von der Netzwerkeinheit über die betreffende Verbindung empfangen werden, durch Überwachen einer Anzahl von fehlerbehafteten Bytes, die über eine bestimmte Verbindung übertragen werden, durch Überwachen einer Anzahl von Instanzen von Symbolfehlern usw.
  • Zur weiteren Erläuterung legt 5 einen Ablaufplan eines weiteren beispielhaften Verfahrens zum Migrieren virtueller Maschinen zwischen vernetzten Servern gemäß Ausführungsformen der vorliegenden Erfindung dar. Das Verfahren aus 5 ähnelt dem Verfahren aus 3 einschließlich des Einrichtens (302) einer oder mehrerer virtueller Maschinen (316) auf einem bestimmten Server (312), des Abfragens (304) der Netzwerkeinheit (310), des Ermittelns (306), ob sich die Verbindung (192) verschlechtert, und des Migrierens (314) einer virtuellen Maschine (316) auf einen Zielserver (318), wenn sich die Verbindung (192) verschlechtert.
  • Das Verfahren aus 5 unterscheidet sich von dem Verfahren aus 3 jedoch darin, dass bei dem Verfahren aus 5 das Migrieren (314) einer virtuellen Maschine (316) auf einen Zielserver (318), wenn sich die Verbindung (192) verschlechtert, ferner das Abfragen (502) der Netzwerkeinheit auf Verbindungsstatistiken von Verbindungen umfasst, über die die Netzwerkeinheit mit anderen Servern verbunden ist, das Erkennen (508) in Abhängigkeit von den Verbindungsstatistiken einer sich nicht verschlechternden Verbindung, und das Auswählen (510) eines Servers, der über die sich nicht verschlechternde Verbindung mit der Netzwerkeinheit verbunden ist, als Zielserver (318) für die auf dem betreffenden Server ausgeführte virtuelle Maschine. Das heißt, dass bei dem Verfahren aus 5 das VMMM die virtuelle Maschine von dem betreffenden Server (312) aufgrund einer sich verschlechternden Verbindung auf einen anderen Server migriert, der nicht über eine sich verschlechternde Verbindung mit dem Netzwerk und der Netzwerkeinheit (310) verbunden ist. Dem fachkundigen Leser ist klar, dass das VMMM einen Server als Zielserver für die betreffende VM (316) auf verschiedene Weise auswählen (510) kann, wenn mehrere Server mit einer sich nicht verschlechternden Verbindung vorhanden sind, u. a. wie folgt: anhand eines Umlauf-Auswahlalgorithmus (Round Robin); anhand einer Menge von Regeln, die einen nächsten Server angeben, der als Zielserver auszuwählen ist; mithilfe von Optimierungsroutinen zum Ausgleich der Auslastung; und auf andere Weise.
  • Zur weiteren Erläuterung legt 6 einen Ablaufplan eines weiteren beispielhaften Verfahrens zum Migrieren virtueller Maschinen zwischen vernetzten Servern gemäß Ausführungsformen der vorliegenden Erfindung dar. Das Verfahren aus 6 ähnelt dem Verfahren aus 3 einschließlich des Einrichtens (302) einer oder mehrerer virtueller Maschinen (316) auf einem bestimmten Server (312), des Abfragens (304) der Netzwerkeinheit (310), des Ermittelns (306), ob sich die Verbindung (192) verschlechtert, und des Migrierens (314) einer virtuellen Maschine (316) auf einen Zielserver (318), wenn sich die Verbindung (192) verschlechtert.
  • Das Verfahren aus 6 unterscheidet sich von dem Verfahren aus 3 jedoch darin, dass das Verfahren des Migrierens (314) der virtuellen Maschine nur ausgeführt wird, wenn eine sich nicht verschlechternde Verbindung zur Verfügung steht. Das heißt, dass bei dem Verfahren aus 6 das Migrieren (314) der virtuellen Maschine (316) das Abfragen (602) der Netzwerkeinheit auf Verbindungsstatistiken (602) von Verbindungen beinhaltet, über die die Netzwerkeinheit mit anderen Servern verbunden ist, und das Feststellen (606) anhand der Verbindungsstatistiken von Verbindungen, über die die Netzwerkeinheit mit anderen Servern (602) verbunden ist, dass die Netzwerkeinheit (310) ausfällt. Das heißt, wenn Verbindungsstatistiken von allen anderen Verbindungen sich verschlechternde Verbindungen anzeigen (keine Verbindung wird als sich nicht verschlechternd angesehen), stellt das VMMM fest, dass die Netzwerkeinheit als Ganzes ausfällt und nicht die Hardware oder Software, die eine Verbindung unterstützt.
  • Das Verfahren aus 6 beinhaltet auch das Auswählen (608) einer Ausweichnetzwerkeinheit (616) für die Datenübertragung zwischen vernetzten Servern und das Nichtmigrieren (610) der virtuellen Maschine auf dem betreffenden Server. Das Auswählen einer Ausweichnetzwerkeinheit (616) kann auf verschiedene Weise durchgeführt werden, z. B. durch Auswählen einer nächsten verfügbaren Einheit, die in einer Liste von Ausweicheinheiten angegeben ist. Das Auswählen (608) einer Ausweichnetzwerkeinheit (616) kann außerdem anstelle der Datenübertragung über die Netzwerkeinheit (310), von der festgestellt wurde, dass sie ausfällt, das Umleiten der Datenübertragung über die Ausweichnetzwerkeinheit (616) beinhalten, z. B. durch Einrichten der Verbindungen (612 und 614).
  • Bei dem Verfahren aus 6 fällt die Netzwerkeinheit (310) anstelle eines möglichen Ausfalls der Hardware- oder Softwaredatenübertragung des Servers (312) aus. Eigentlich besteht keine Notwendigkeit, die virtuelle Maschine (316) auf einen anderen Server zu migrieren, solange der Server (312) die Datenübertragung über die Ausweichnetzwerkeinheit (616) durchführen kann.
  • Wie oben erwähnt beinhaltet das Migrieren von VMs gemäß Ausführungsformen der vorliegenden Erfindung neben anderen Schritten durch das VMMM das Ermitteln anhand von Verbindungsstatistiken, ob sich eine Verbindung verschlechtert, über die eine Netzwerkeinheit mit einem bestimmten Server verbunden ist. Zur weiteren Erläuterung legt 7 einen Ablaufplan eines beispielhaften Verfahrens dar, bei dem das VMMM gemäß Ausführungsformen der vorliegenden Erfindung anhand von Verbindungsstatistiken ermittelt (306), ob sich eine Verbindung verschlechtert, über die eine Netzwerkeinheit mit einem bestimmten Server verbunden ist.
  • Bei dem Verfahren aus 7 enthalten die durch die Netzwerkeinheit erfassten Verbindungsstatistiken eine Anzahl mit einem Zeitstempel versehener Einträge (702), die jeweils für ein fehlerbehaftetes Byte stehen, das auf der Verbindung empfangen wurde, über die die Netzwerkeinheit mit dem betreffenden Server verbunden ist. Im Beispiel aus 7 wird das Ermitteln (306), ob sich eine Verbindung verschlechtert, über die eine Netzwerkeinheit mit einem bestimmten Server verbunden ist, durchgeführt, indem aus den mit einem Zeitstempel versehenen Einträgen, die ein fehlerbehaftetes Byte verkörpern, eine Bitfehlerrate (706) berechnet wird (704), und indem ermittelt wird (708), ob die berechnete Bitfehlerrate (706) höher als ein vorgegebener Schwellenwert (710) ist. Wenn die Bitfehlerrate (706) nicht höher als der vorgegebene Schwellenwert (710) ist, stellt das VMMM, das das Verfahren aus der Figur durchführt, fest (714), dass sich die Verbindung nicht verschlechtert. Wenn die berechnete Bitfehlerrate (706) jedoch höher als der vorgegebene Schwellenwert (710) ist, stellt das VMM fest (712), dass sich die Verbindung verschlechtert, über die die Netzwerkeinheit mit dem betreffenden Server verbunden ist.
  • 8 legt einen Ablaufplan eines weiteren beispielhaften Verfahrens dar, bei dem das VMMM gemäß Ausführungsformen der vorliegenden Erfindung anhand von Verbindungsstatistiken ermittelt (306), ob sich eine Verbindung verschlechtert, über die eine Netzwerkeinheit mit einem bestimmten Server verbunden ist. Bei dem Verfahren aus 8 enthalten die durch die Netzwerkeinheit erfassten und durch das VMMM, das das Verfahren aus 8 durchführt, bereitgestellten Verbindungsstatistiken Informationen, die Symbolfehler (802) von Testdaten beschreiben, die auf der Verbindung empfangen wurden, über die die Netzwerkeinheit mit dem betreffenden Server verbunden ist. Ein Symbolfehler (802) ist eine Veränderung eines Symbols, das in Testmustern an den Empfänger übertragen wurde. Ein Beispiel eines Testmusters enthält ein Byte mit Daten, das durch einen Server regelmäßig an eine Netzwerkeinheit gesendet wird. Sowohl die Netzwerkeinheit als auch der Server kennen die korrekte Formation des Datenbytes. Wenn eines der Bits, die das Test-Datenbyte bilden, falsch ist, protokolliert der Netzwerk-Switch die Instanz als Symbolfehler. Als Beispiel wird ein Testmuster angenommen, das ein Datenbyte umfasst, das mit dem folgenden Bitmuster von einem Server an einen Netzwerk-Switch gesendet wird: 11111111, das als Muster 10001010 empfangen wird. Die Netzwerkeinheit protokolliert eine Instanz eines Symbolfehlers und gibt in einigen Fällen eine Anzahl von Bitfehlern an, die in der Instanz des Symbolfehlers enthalten sind. Bei diesem Beispiel kann die Netzwerkeinheit angeben, dass bei der gegenwärtigen Instanz des Symbolfehlers fünf Bitfehler aufgetreten sind.
  • Das Ermitteln (306), ob sich die Verbindung verschlechtert, über die die Netzwerkeinheit mit dem betreffenden Server verbunden ist, beinhaltet das Berechnen (804) in Abhängigkeit von den Informationen, die Symbolfehler (802) beschreiben, einer Häufigkeit (806) der Symbolfehler und das Ermitteln (808) in Abhängigkeit von den Informationen, die Symbolfehler (802) beschreiben, ob eine Häufigkeit (806) von Symbolfehlern (802) auf der Verbindung, über die die Netzwerkeinheit mit dem betreffenden Server verbunden ist, höher als ein vorgegebener Schwellenwert (810) ist. Wenn die Häufigkeit (806) von Symbolfehlern (802) nicht höher als der vorgegebene Schwellenwert (810) ist, stellt das VMMM fest (814), dass sich die Verbindung nicht verschlechtert. Wenn die Häufigkeit (806) von Symbolfeldern (802) höher als der vorgegebene Schwellenwert (810) ist, stellt das VMM fest (812), dass sich die Verbindung verschlechtert, über die die Netzwerkeinheit mit dem betreffenden Server verbunden ist.
  • Dem Fachmann ist klar, dass Aspekte der vorliegenden Erfindung in Form eines Systems, Verfahrens oder Computerprogrammprodukts verkörpert sein können. Dementsprechend können Aspekte der vorliegenden Erfindung die Form einer vollständig in Hardware realisierten Ausführungsform, einer vollständig in Software realisierten Ausführungsform (darunter Firmware, residente Software, Mikrocode usw.) oder einer Ausführungsform annehmen, in der Software- und Hardwareaspekte kombiniert sind, die im vorliegenden Dokument allgemein als „Schaltung”, „Modul” oder „System” bezeichnet werden. Ferner können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien verkörpert ist, auf denen computerlesbarer Programmcode verkörpert ist.
  • Es können beliebige Kombinationen eines oder mehrerer computerlesbarer Medien verwendet werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Zu computerlesbaren Speichermedien können beispielsweise und ohne Beschränkung auf die folgende Aufzählung ein elektronisches, magnetisches, optisches oder elektromagnetisches System bzw. ein Infrarot- oder Halbleitersystem bzw. eine derartige Vorrichtung oder Einheit oder beliebige Kombinationen des Vorstehenden gehören. Zu den detaillierteren Beispielen (eine nicht erschöpfende Liste) computerlesbarer Speichermedien zählen unter anderem folgende: elektrische Verbindung mit einer oder mehreren Leitungen, Computerdiskette, Festplatte, Direktzugriffsspeicher (RAM), Nur-Lese-Speicher (ROM), löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), Lichtwellenleiter, Nur-Lese-Speicher in Form einer Compact Disc (CD-ROM), optische Speichereinheit, magnetische Speichereinheit oder beliebige geeignete Kombinationen des Vorstehenden. Im Kontext des vorliegenden Dokuments kann ein computerlesbares Speichermedium jedes beliebige vergegenständlichte Medium sein, das ein Programm enthalten oder speichern kann, das von oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Befehlsausführung genutzt werden kann.
  • Ein computerlesbares Signalmedium kann unter anderem ein im Basisband oder als Teil einer Trägerwelle übertragenes Datensignal mit darin verkörpertem computerlesbarem Programmcode sein. Ein derartiges übertragenes Signal kann eine beliebige Vielfalt von Formen annehmen, darunter und ohne Beschränkung auf die Aufzählung eine elektromagnetische oder optische Form oder beliebige geeignete Kombinationen davon. Ein computerlesbares Signalmedium kann ein beliebiges computerlesbares Medium sein, bei dem es sich nicht um ein computerlesbares Speichermedium handelt und das ein Programm übertragen, senden oder transportieren kann, das von oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Befehlsausführung genutzt werden kann.
  • Auf einem computerlesbaren Medium verkörperter Programmcode kann unter Verwendung jedes beliebigen geeigneten Mediums, darunter und ohne Beschränkung auf die Aufzählung, drahtlose oder drahtgebundene Medien, Lichtwellenleiter, HF usw., oder unter Verwendung beliebiger geeigneter Kombinationen des Vorstehenden übertragen werden.
  • Computerprogrammcode zur Ausführung von Operationen bei Aspekten der vorliegenden Erfindung kann in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen, darunter in einer objektorientierten Programmiersprache wie Java, Smalltalk, C++ oder Ähnlichem und in herkömmlichen prozeduralen Programmiersprachen wie „C” oder ähnlichen Programmiersprachen geschrieben sein. 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. Beim letztgenannten Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über eine beliebige Art von Netzwerk verbunden sein, unter anderem über ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (beispielsweise über das Internet unter Nutzung eines Internet-Dienstanbieters (Internet Service Provider)).
  • Aspekte der vorliegenden Erfindung sind oben unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder und Kombinationen von Blöcken in den Ablaufplänen und/oder Blockschaltbildern durch Computerprogrammanweisungen realisiert werden kann bzw. können. Diese Computerprogrammanweisungen können einem Prozessor eines Mehrzweckcomputers, eines Spezialcomputers oder anderer programmierbarer Datenverarbeitungsvorrichtungen, die eine Maschine darstellen, bereitgestellt werden, sodass die Anweisungen, die über den Prozessor des Computers oder anderer programmierbarer Datenverarbeitungsvorrichtungen ausgeführt werden, Mittel schaffen, um die in einem Block bzw. in den Blöcken des Ablaufplans und/oder des Blockschaltbildes angegebenen Funktionen/Aktionen zu realisieren.
  • Diese Computerprogrammanweisungen können ebenfalls in einem computerlesbaren Medium gespeichert sein, das einen Computer, andere programmierbare Datenverarbeitungsvorrichtungen oder andere Einheiten anweisen kann, in einer bestimmten Weise zu funktionieren, sodass die im computerlesbaren Medium gespeicherten Anweisungen ein Produkt erzeugen, das die Anweisungen enthält, die die in einem Block bzw. in den Blöcken des Ablaufplans und/oder des Blockschaltbildes angegebene Funktion/Aktion realisieren.
  • Die Computerprogrammanweisungen können auch in einen Computer, in andere programmierbare Datenverarbeitungsvorrichtungen oder in andere Einheiten geladen werden, um zu bewirken, dass auf dem Computer, auf anderen programmierbaren Vorrichtungen oder anderen Einheiten eine Reihe von Arbeitsschritten ausgeführt werden, um einen mittels Computer realisierten Prozess zu schaffen, sodass die Anweisungen, die auf dem Computer oder auf anderen programmierbaren Vorrichtungen ausgeführt werden, Prozesse zur Realisierung der in einem Block bzw. in den Blöcken des Ablaufplans und/oder des Blockschaltbildes angegebenen Funktionen/Aktionen bereitstellen.
  • Der Ablaufplan und die Blockschaltbilder in den Figuren veranschaulichen die Architektur, Funktionalität und Funktionsweise möglicher Realisierungsformen von Systemen, Verfahren und Computerprogrammprodukten gemäß den verschiedenen Ausführungsformen der vorliegenden Erfindung. Dementsprechend kann jeder einzelne Block im Ablaufplan bzw. in den Blockschaltbildern ein Modul, Segment oder einen Teil des Codes darstellen, der eine oder mehrere ausführbare Anweisungen zur Realisierung der angegebenen Logikfunktion bzw. Logikfunktionen umfasst. Außerdem ist anzumerken, dass bei einigen alternativen Realisierungsformen die im Block angegebenen Funktionen außerhalb der in den Figuren angegebenen Reihenfolge ausgeführt werden können. Beispielsweise können zwei hintereinander aufgeführte Blöcke tatsächlich im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können je nach der mit den Blöcken verbundenen Funktionalität manchmal in umgekehrter Reihenfolge ausgeführt werden. Darüber hinaus ist anzumerken, dass jeder einzelne Block der dargestellten Blockschaltbilder und/oder des dargestellten Ablaufplans sowie Kombinationen von Blöcken in den dargestellten Blockschaltbildern und/oder im dargestellten Ablaufplan mithilfe von speziellen Systemen auf der Grundlage von Hardware zur Ausführung der angegebenen Funktionen bzw. Aktionen oder mithilfe von Kombinationen aus spezieller Hardware und Computeranweisungen realisiert werden kann bzw. können.
  • Für den Fachmann geht aus der vorstehenden Beschreibung hervor, dass an verschiedenen Ausführungsformen der vorliegenden Erfindung Abänderungen und Änderungen vorgenommen werden können.

Claims (13)

  1. Verfahren zum Migrieren virtueller Maschinen zwischen vernetzten Servern, wobei die Server zu Datenaustauschzwecken mit einem Datenaustauschnetzwerk verbunden sind, das Netzwerk eine Vernetzungseinheit umfasst und das Verfahren Folgendes aufweist: Einrichten durch ein Managementmodul für virtuelle Maschinen („VMMM”) einer oder mehrerer virtueller Maschinen auf einem bestimmten Server; Abfragen durch das VMMM der Netzwerkeinheit auf Verbindungsstatistiken einer Verbindung, über die die Netzwerkeinheit zu Datenaustauschzwecken mit dem betreffenden Server verbunden ist; Ermitteln durch das VMMM anhand der Verbindungsstatistik, ob sich die Verbindung verschlechtert, über die die Netzwerkeinheit mit dem betreffenden Server verbunden ist; und wenn sich die Verbindung verschlechtert, über die die Netzwerkeinheit mit dem betreffenden Server verbunden ist, Migrieren einer auf dem betreffenden Server ausgeführten virtuellen Maschine auf einen Zielserver.
  2. Verfahren nach Anspruch 1, bei dem das Migrieren einer auf dem betreffenden Server ausgeführten virtuellen Maschine auf einen Zielserver ferner Folgendes aufweist: Abfragen der Netzwerkeinheit auf Verbindungsstatistiken von Verbindungen, über die die Netzwerkeinheit mit anderen Servern verbunden ist; Erkennen anhand der Verbindungsstatistiken einer sich nicht verschlechternden Verbindung; und Auswählen eines Servers, der über die sich nicht verschlechternde Verbindung mit der Netzwerkeinheit verbunden ist, als Zielserver für die auf dem betreffenden Server ausgeführte virtuelle Maschine.
  3. Verfahren nach Anspruch 1 oder Anspruch 2, bei dem das Migrieren einer virtuellen Maschine ferner das Migrieren der virtuellen Maschine nur dann aufweist, wenn eine sich nicht verschlechternde Verbindung zur Verfügung steht, und das Verfahren Folgendes aufweist: Abfragen der Netzwerkeinheit auf Verbindungsstatistiken von Verbindungen, über die die Netzwerkeinheit mit anderen Servern verbunden ist; Feststellen anhand der Verbindungsstatistiken von Verbindungen, über die die Netzwerkeinheit mit anderen Servern verbunden ist, dass die Netzwerkeinheit ausfällt; Auswählen einer Ausweichnetzwerkeinheit für den Datenaustausch zwischen den vernetzten Servern; und das Nicht-Migrieren der virtuellen Maschine auf dem betreffenden Server.
  4. Verfahren nach einem der Ansprüche 1 bis 3, bei dem die Verbindungsstatistiken eine Mehrzahl mit einem Zeitstempel versehener Einträge enthalten, die für ein fehlerhaftes Byte stehen, das über die Verbindung empfangen wurde, über die die Netzwerkeinheit mit dem betreffenden Server verbunden ist, und das Ermitteln, ob sich die Verbindung verschlechtert, über die die Netzwerkeinheit mit dem betreffenden Server verbunden ist, ferner Folgendes umfasst: Berechnen einer Bitfehlerrate aus den mit einem Zeitstempel versehenen Einträgen, die für ein fehlerhaftes Byte stehen; Ermitteln, ob die berechnete Bitfehlerrate höher als ein vorgegebener Schwellenwert ist; und wenn die berechnete Bitfehlerrate höher als der vorgegebene Schwellenwert ist, Feststellen, dass sich die Verbindung verschlechtert, über die die Netzwerkeinheit mit dem betreffenden Server verbunden ist.
  5. Verfahren nach einem der vorhergehenden Ansprüche, bei dem die Verbindungsstatistiken Informationen aufweisen, die Symbolfehler von Testdaten beschreiben, die über die Verbindung empfangen wurden, über die die Netzwerkeinheit mit dem betreffenden Server verbunden ist, und das Ermitteln, ob sich die Verbindung verschlechtert, über die die Netzwerkeinheit mit dem betreffenden Server verbunden ist, ferner Folgendes aufweist: Berechnen einer Häufigkeit der Symbolfehler anhand der Informationen, die Symbolfehler beschreiben; Ermitteln anhand der Informationen, die Symbolfehler beschreiben, ob eine Häufigkeit von Symbolfehlern auf der Verbindung, über die die Netzwerkeinheit mit dem betreffenden Server verbunden ist, größer als ein vorgegebener Schwellenwert ist; und wenn die Häufigkeit von Symbolfehlern größer als der vorgegebene Schwellenwert ist, Feststellen, dass sich die Verbindung verschlechtert, über die die Netzwerkeinheit mit dem betreffenden Server verbunden ist.
  6. Verfahren nach einem der vorhergehenden Ansprüche, ferner aufweisend: Überwachen des Datenaustauschs durch die Netzwerkeinheit zwischen den Servern, der auf Verbindungen abläuft, über die die Server untereinander und mit der Netzwerkeinheit verbunden sind; und Speichern von Verbindungsstatistiken in einem Nachrichteninformationsblock (MIB), die den Datenaustausch zwischen den Servern beschreiben, der auf den Verbindungen abläuft, über die die Server untereinander und mit der Netzwerkeinheit verbunden sind.
  7. Vorrichtung zum Migrieren virtueller Maschinen zwischen vernetzten Servern, wobei die Server zu Datenaustauschzwecken mit einem Datenaustauschnetzwerk verbunden sind, das Netzwerk eine Vernetzungseinheit aufweist, die Vorrichtung einen Computerprozessor und einen Computerhauptspeicher aufweist, der betriebsfähig mit dem Computerprozessor verbunden ist, und die Vorrichtung Folgendes aufweist: Mittel zum Einrichten einer oder mehrerer virtueller Maschinen auf einem bestimmten Server durch ein Managementmodul für virtuelle Maschinen (Virtual Machine Management Module, VMMM); Mittel zum Abfragen der Netzwerkeinheit durch das VMMM auf Verbindungsstatistiken einer Verbindung, über die die Netzwerkeinheit zu Datenaustauschzwecken mit dem betreffenden Server verbunden ist; Mittel zum Ermitteln durch das VMMM anhand der Verbindungsstatistik, ob sich die Verbindung verschlechtert, über die die Netzwerkeinheit mit dem betreffenden Server verbunden ist; und Mittel zum Migrieren einer auf dem betreffenden Server ausgeführten virtuellen Maschine auf einen Zielserver, wenn sich die Verbindung verschlechtert, über die die Netzwerkeinheit mit dem betreffenden Server verbunden ist.
  8. Vorrichtung nach Anspruch 7, bei der das Mittel zum Migrieren einer auf dem betreffenden Server ausgeführten virtuellen Maschine auf einen Zielserver ferner Folgendes aufweist: Mittel zum Abfragen der Netzwerkeinheit auf Verbindungsstatistiken von Verbindungen, über die die Netzwerkeinheit mit anderen Servern verbunden ist; Mittel zum Erkennen einer sich nicht verschlechternden Verbindung anhand der Verbindungsstatistiken; und Mittel zum Auswählen eines Servers, der über die sich nicht verschlechternde Verbindung mit der Netzwerkeinheit verbunden ist, als Zielserver für die auf dem betreffenden Server ausgeführte virtuelle Maschine.
  9. Vorrichtung nach Anspruch 7 oder Anspruch 8, bei der das Mittel zum Migrieren einer virtuellen Maschine ferner Mittel aufweist, um die virtuelle Maschine nur dann zu migrieren, wenn eine sich nicht verschlechternde Verbindung zur Verfügung steht, und die Vorrichtung Folgendes aufweist: Mittel zum Abfragen der Netzwerkeinheit auf Verbindungsstatistiken von Verbindungen, über die die Netzwerkeinheit mit anderen Servern verbunden ist; Mittel zum Feststellen anhand der Verbindungsstatistiken von Verbindungen, über die die Netzwerkeinheit mit anderen Servern verbunden ist, dass die Netzwerkeinheit ausfällt; Mittel zum Auswählen einer Ausweichnetzwerkeinheit für den Datenaustausch zwischen den vernetzten Servern; und Mittel zum Nicht-Migrieren der virtuellen Maschine auf dem betreffenden Server.
  10. Vorrichtung nach einem der Ansprüche 7 bis 9, bei der die Verbindungsstatistiken eine Mehrzahl mit einem Zeitstempel versehener Einträge enthalten, die für ein fehlerhaftes Byte stehen, das über die Verbindung empfangen wurde, über die die Netzwerkeinheit mit dem betreffenden Server verbunden ist, und das Mittel zum Ermitteln, ob sich die Verbindung verschlechtert, über die die Netzwerkeinheit mit dem betreffenden Server verbunden ist, ferner aufweist: Mittel zum Berechnen einer Bitfehlerrate aus den mit einem Zeitstempel versehenen Einträgen, die für ein fehlerhaftes Byte stehen; Mittel zum Ermitteln, ob die berechnete Bitfehlerrate höher als ein vorgegebener Schwellenwert ist; und Mittel zum Feststellen, dass sich die Verbindung verschlechtert, über die die Netzwerkeinheit mit dem betreffenden Server verbunden ist, wenn die berechnete Bitfehlerrate höher als der vorgegebene Schwellenwert ist.
  11. Vorrichtung nach einem der Ansprüche 7 bis 10, bei der die Verbindungsstatistiken Informationen enthalten, die Symbolfehler von Testdaten beschreiben, die über die Verbindung empfangen wurden, über die die Netzwerkeinheit mit dem betreffenden Server verbunden ist, und das Mittel zum Ermitteln, ob sich die Verbindung verschlechtert, über die die Netzwerkeinheit mit dem betreffenden Server verbunden ist, ferner aufweist: Mittel zum Berechnen einer Häufigkeit der Symbolfehler anhand der Informationen, die Symbolfehler beschreiben; Mittel zum Ermitteln anhand der Informationen, die Symbolfehler beschreiben, ob eine Häufigkeit von Symbolfehlern auf der Verbindung, über die die Netzwerkeinheit mit dem betreffenden Server verbunden ist, größer als ein vorgegebener Schwellenwert ist; und Mittel zum Feststellen, dass sich die Verbindung verschlechtert, über die die Netzwerkeinheit mit dem betreffenden Server verbunden ist, wenn die Häufigkeit von Symbolfehlern größer als der vorgegebene Schwellenwert ist.
  12. Vorrichtung nach einem der Ansprüche 7 bis 11, die ferner folgende Mittel aufweist: zum Überwachen des Datenaustauschs zwischen den Servern durch die Netzwerkeinheit, der auf Verbindungen abläuft, über die die Server untereinander und mit der Netzwerkeinheit verbunden sind; und zum Speichern von Verbindungsstatistiken in einem Nachrichteninformationsblock (MIB), die den Datenaustausch zwischen den Servern beschreiben, der auf den Verbindungen abläuft, über die die Server untereinander und mit der Netzwerkeinheit verbunden sind.
  13. Computerprogramm, das auf einem computerlesbaren Medium gespeicherten Computerprogrammcode umfasst, der das Computersystem veranlasst, alle Schritte eines Verfahrens nach einem der Ansprüche 1 bis 6 durchzuführen, wenn das Computerprogramm in ein Computersystem geladen und auf diesem ausgeführt wird.
DE112011101705.7T 2010-05-20 2011-05-17 Migrieren virtueller Maschinen zwischen vernetzten Servern nach Erkennung der Verschlechterung der Funktion der Netzwerkverbindung Active DE112011101705B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/784,061 US8224957B2 (en) 2010-05-20 2010-05-20 Migrating virtual machines among networked servers upon detection of degrading network link operation
US12/784,061 2010-05-20
PCT/EP2011/057998 WO2011144633A1 (en) 2010-05-20 2011-05-17 Migrating virtual machines among networked servers upon detection of degrading network link operation

Publications (2)

Publication Number Publication Date
DE112011101705T5 DE112011101705T5 (de) 2013-03-28
DE112011101705B4 true DE112011101705B4 (de) 2015-03-05

Family

ID=44513327

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112011101705.7T Active DE112011101705B4 (de) 2010-05-20 2011-05-17 Migrieren virtueller Maschinen zwischen vernetzten Servern nach Erkennung der Verschlechterung der Funktion der Netzwerkverbindung

Country Status (8)

Country Link
US (2) US8224957B2 (de)
JP (1) JP5889284B2 (de)
CN (1) CN102934087B (de)
CA (1) CA2783452C (de)
DE (1) DE112011101705B4 (de)
GB (1) GB2494325B (de)
TW (1) TW201211895A (de)
WO (1) WO2011144633A1 (de)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8224957B2 (en) * 2010-05-20 2012-07-17 International Business Machines Corporation Migrating virtual machines among networked servers upon detection of degrading network link operation
US8671238B2 (en) 2010-07-13 2014-03-11 Vmware, Inc. Robust live migration using shared filesystem
US8458510B2 (en) 2010-08-12 2013-06-04 International Business Machines Corporation LPAR creation and repair for automated error recovery
US9542215B2 (en) * 2011-09-30 2017-01-10 V3 Systems, Inc. Migrating virtual machines from a source physical support environment to a target physical support environment using master image and user delta collections
US8689054B1 (en) * 2011-07-29 2014-04-01 Emc Corporation Increased distance of virtual machine mobility over asynchronous distances
CN103026660B (zh) * 2011-08-01 2015-11-25 华为技术有限公司 网络策略配置方法、管理设备以及网络管理中心设备
US10042656B2 (en) 2011-08-01 2018-08-07 Avocent Corporation System and method for providing migrateable virtual serial port services
KR101281825B1 (ko) * 2011-09-07 2013-08-23 주식회사 팬택 클라우드 시스템에서 가상 인터페이스를 이용하는 보안 강화 장치 및 방법
WO2013038585A1 (ja) * 2011-09-14 2013-03-21 日本電気株式会社 リソース最適化方法、ipネットワークシステムおよびリソース最適化プログラム
US8826074B2 (en) * 2011-09-30 2014-09-02 Alcatel Lucent Live module diagnostic testing
US9183102B2 (en) * 2011-09-30 2015-11-10 Alcatel Lucent Hardware consumption architecture
US8972542B2 (en) * 2011-12-22 2015-03-03 International Business Machines Corporation Extending a DHCP relay to backup a DHCP server
US9736005B2 (en) 2011-12-22 2017-08-15 International Business Machines Corporation Duplicate IP address detection by a DHCP relay agent
EP2713270A4 (de) * 2011-12-29 2014-10-22 Huawei Tech Co Ltd Ressourcenplanungsverfahren und -vorrichtung
JP5919937B2 (ja) * 2012-03-26 2016-05-18 日本電気株式会社 仮想化システム、管理サーバ、マイグレーション方法、マイグレーションプログラム業務間通信を考慮した仮想マシンのマイグレーション方法
WO2013160933A1 (en) * 2012-04-23 2013-10-31 Hitachi, Ltd. Computer system and virtual server migration control method for computer system
US20130326053A1 (en) * 2012-06-04 2013-12-05 Alcatel-Lucent Usa Inc. Method And Apparatus For Single Point Of Failure Elimination For Cloud-Based Applications
EP2852891A1 (de) 2012-06-27 2015-04-01 Qatar Foundation Für die migration eines virtuellen computers im falle eines angriffs konfigurierte anordnung
US9172587B2 (en) 2012-10-22 2015-10-27 International Business Machines Corporation Providing automated quality-of-service (‘QoS’) for virtual machine migration across a shared data center network
US9118681B2 (en) * 2013-03-08 2015-08-25 Telefonaktiebolaget L M Ericsson (Publ) Mist networks
US10506026B1 (en) * 2013-03-13 2019-12-10 Amazon Technologies, Inc. Resource prestaging
US9407560B2 (en) 2013-03-15 2016-08-02 International Business Machines Corporation Software defined network-based load balancing for physical and virtual networks
US9609086B2 (en) 2013-03-15 2017-03-28 International Business Machines Corporation Virtual machine mobility using OpenFlow
US9769074B2 (en) 2013-03-15 2017-09-19 International Business Machines Corporation Network per-flow rate limiting
US9596192B2 (en) 2013-03-15 2017-03-14 International Business Machines Corporation Reliable link layer for control links between network controllers and switches
US9444748B2 (en) 2013-03-15 2016-09-13 International Business Machines Corporation Scalable flow and congestion control with OpenFlow
US9118984B2 (en) 2013-03-15 2015-08-25 International Business Machines Corporation Control plane for integrated switch wavelength division multiplexing
US9104643B2 (en) * 2013-03-15 2015-08-11 International Business Machines Corporation OpenFlow controller master-slave initialization protocol
US9870268B2 (en) * 2013-08-05 2018-01-16 Amazon Technologies, Inc. Virtual computing instance migration
US20150071091A1 (en) * 2013-09-12 2015-03-12 Alcatel-Lucent Usa Inc. Apparatus And Method For Monitoring Network Performance
CN103516554B (zh) * 2013-10-22 2017-01-18 杭州华三通信技术有限公司 一种vm迁移的方法和设备
US20170242961A1 (en) * 2014-01-24 2017-08-24 Indiscine, Llc Systems and methods for personal omic transactions
US9948493B2 (en) * 2014-04-03 2018-04-17 Centurylink Intellectual Property Llc Network functions virtualization interconnection gateway
US10089128B2 (en) * 2014-05-21 2018-10-02 Vmware, Inc. Application aware service policy enforcement and autonomous feedback-based remediation
US10922112B2 (en) 2014-05-21 2021-02-16 Vmware, Inc. Application aware storage resource management
JP6413517B2 (ja) * 2014-09-04 2018-10-31 富士通株式会社 管理装置、マイグレーション制御プログラム、情報処理システム
US10176004B2 (en) * 2014-11-18 2019-01-08 International Business Machines Corporation Workload-aware load balancing to minimize scheduled downtime during maintenance of host or hypervisor of a virtualized computing system
US9535803B2 (en) 2015-02-23 2017-01-03 Red Hat Israel, Ltd. Managing network failure using back-up networks
CN104869023B (zh) 2015-05-29 2019-02-26 华为技术有限公司 一种时间校正方法、装置及系统
WO2017058143A1 (en) * 2015-09-28 2017-04-06 Hewlett Packard Enterprise Development Lp Protocol conversion for servers and chassis
US10346201B2 (en) * 2016-06-15 2019-07-09 International Business Machines Corporation Guided virtual machine migration
JP2019049818A (ja) * 2017-09-08 2019-03-28 富士通株式会社 情報処理装置、情報処理システム、情報処理システムの制御方法及びライブマイグレーション制御プログラム
KR101981334B1 (ko) * 2017-09-14 2019-05-22 에스케이텔레콤 주식회사 분산형 데이터 패킷 처리가 적용된 이동통신 시스템 및 방법
US10445129B2 (en) * 2017-10-31 2019-10-15 Vmware, Inc. Virtual computing instance transfer path selection
US11144354B2 (en) 2018-07-31 2021-10-12 Vmware, Inc. Method for repointing resources between hosts
US10852803B2 (en) * 2018-09-26 2020-12-01 Facebook, Inc. Power loss siren
CN115858503B (zh) * 2023-02-28 2023-05-09 江西师范大学 一种基于迁移链表的异构数据库迁移管理方法及系统

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6970913B1 (en) * 1999-07-02 2005-11-29 Cisco Technology, Inc. Load balancing using distributed forwarding agents with application based feedback for different virtual machines
US7441045B2 (en) * 1999-12-13 2008-10-21 F5 Networks, Inc. Method and system for balancing load distribution on a wide area network
US8204082B2 (en) 2000-06-23 2012-06-19 Cloudshield Technologies, Inc. Transparent provisioning of services over a network
US7934020B1 (en) 2003-09-19 2011-04-26 Vmware, Inc. Managing network data transfers in a virtual computer system
US8156490B2 (en) 2004-05-08 2012-04-10 International Business Machines Corporation Dynamic migration of virtual machine computer programs upon satisfaction of conditions
JP4909675B2 (ja) * 2006-08-17 2012-04-04 エヌ・ティ・ティ・コミュニケーションズ株式会社 伝送装置、伝送方法、及びプログラム
US8185893B2 (en) * 2006-10-27 2012-05-22 Hewlett-Packard Development Company, L.P. Starting up at least one virtual machine in a physical machine by a load balancer
JP5317010B2 (ja) 2006-11-24 2013-10-16 日本電気株式会社 仮想マシン配置システム、仮想マシン配置方法、プログラム、仮想マシン管理装置およびサーバ装置
US7844839B2 (en) 2006-12-07 2010-11-30 Juniper Networks, Inc. Distribution of network communications based on server power consumption
US8291411B2 (en) * 2007-05-21 2012-10-16 International Business Machines Corporation Dynamic placement of virtual machines for managing violations of service level agreements (SLAs)
US20090007099A1 (en) 2007-06-27 2009-01-01 Cummings Gregory D Migrating a virtual machine coupled to a physical device
US7966614B2 (en) * 2007-07-24 2011-06-21 International Business Machines Corporation Controlling an availability policy for a virtual machine based on changes in a real world environment
US8117495B2 (en) * 2007-11-26 2012-02-14 Stratus Technologies Bermuda Ltd Systems and methods of high availability cluster environment failover protection
US20090172125A1 (en) 2007-12-28 2009-07-02 Mrigank Shekhar Method and system for migrating a computer environment across blade servers
US8230069B2 (en) * 2008-03-04 2012-07-24 International Business Machines Corporation Server and storage-aware method for selecting virtual machine migration targets
US8201166B2 (en) 2008-04-30 2012-06-12 Hewlett-Packard Development Company, L.P. Virtualization platform configured with virtual connect control
US8385202B2 (en) * 2008-08-27 2013-02-26 Cisco Technology, Inc. Virtual switch quality of service for virtual machines
JP2010086049A (ja) * 2008-09-29 2010-04-15 Hitachi Ltd 管理計算機及びその運用方法
US8261266B2 (en) * 2009-04-30 2012-09-04 Microsoft Corporation Deploying a virtual machine having a virtual hardware configuration matching an improved hardware profile with respect to execution of an application
US8135818B2 (en) * 2009-06-22 2012-03-13 Red Hat Israel, Ltd. Automatic virtual machine migration in mixed SBC/CBC environment
US8289960B2 (en) * 2009-06-22 2012-10-16 Citrix Systems, Inc. Systems and methods for N-core tracing
US8311032B2 (en) * 2009-12-03 2012-11-13 International Business Machines Corporation Dynamically provisioning virtual machines
US8224957B2 (en) * 2010-05-20 2012-07-17 International Business Machines Corporation Migrating virtual machines among networked servers upon detection of degrading network link operation

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Xiaoqiao Meng et al.: Improving the Scalability of Data Center Networks with Traffic-aware Virtual Machine Placement. In: INFOCOM'10 Proceedings of the 29th conference on Information communications, 14 - 19 March 2010. pp 1154-1162 *

Also Published As

Publication number Publication date
CN102934087B (zh) 2015-10-21
CN102934087A (zh) 2013-02-13
GB201221274D0 (en) 2013-01-09
GB2494325B (en) 2018-09-26
US8224957B2 (en) 2012-07-17
US20120221887A1 (en) 2012-08-30
DE112011101705T5 (de) 2013-03-28
US8495208B2 (en) 2013-07-23
WO2011144633A1 (en) 2011-11-24
GB2494325A (en) 2013-03-06
US20110289205A1 (en) 2011-11-24
CA2783452A1 (en) 2011-11-24
JP2013533660A (ja) 2013-08-22
JP5889284B2 (ja) 2016-03-22
TW201211895A (en) 2012-03-16
CA2783452C (en) 2018-05-29

Similar Documents

Publication Publication Date Title
DE112011101705B4 (de) Migrieren virtueller Maschinen zwischen vernetzten Servern nach Erkennung der Verschlechterung der Funktion der Netzwerkverbindung
DE112011101633B4 (de) Virtualisierung und dynamische Ressourcenzuweisung berücksichtigendes Neuordnen von Speicherebenen
EP3507692B1 (de) Ressourcenüberbelegung auf der grundlage von nutzungsmustern in computersystemen
DE102012210914B4 (de) Switch-Fabric-Management
US10956288B2 (en) Server clustering in a computing-on-demand system
DE102008003681B4 (de) Stromverteilungssystem einschließlich eines Steuermoduls und eines Verfahrens zum Verwenden des Systems
DE102015105884B4 (de) Rechenknoten und Verfahren zur Migration einer virtuellen Maschine, Rechenzentrummanager zur Migration virtueller Maschinen, Maschinenlesbares Speichermedium und Rechenvorrichtungen
US9335932B2 (en) Storage unit selection for virtualized storage units
US8595364B2 (en) System and method for automatic storage load balancing in virtual server environments
US7843811B2 (en) Method of solving a split-brain condition
DE112018004349T5 (de) Dynamische auswahl von bereitstellungskonfigurationen von softwareanwendungen
DE112013006643B4 (de) Speichersystem und steuerungsverfahren für speichersystem
DE112016001657T5 (de) Multi-Tenant-Sensitiver DHCP-Mechanismus für Cloud-Netzwerke
DE112014002799B4 (de) Bereitstellen einer sicheren Kundendomäne in einer virtualisierten Mehr-Mieter-Umgebung
DE102012215918A1 (de) Spiegeln virtueller Maschinen von einem primären auf einen sekundären Host
DE112012002404B4 (de) Konfiguration und Management virtueller Netzwerke
DE112019000421B4 (de) Arbeitslastverwaltung mit datenzugriffserkennung in einem datenverarbeitungscluster
DE102013209934B4 (de) Starten oder Stoppen virtueller Server in angemessener Reihenfolge
US11023422B2 (en) Generating snapshot of an integration environment to facilitate replication of the environment
DE112018002178T5 (de) Dateiübertragung in gemeinsam genutztem arbeitsspeicher
DE112020004619T5 (de) Erkennung einer virtuellen maschinenmigration durch ein gehostetesbetriebssystem
DE102013207603B4 (de) Effiziente Ausführung von Jobs in einem gemeinsamen Pool von Ressourcen
CN116627582A (zh) 虚拟机的自动迁移方法、装置、服务器和可读存储介质

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

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

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

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

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

R082 Change of representative

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

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

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

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final
R082 Change of representative

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

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

R082 Change of representative

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