-
HINTERGRUND
-
Die vorliegende Erfindung betrifft Multicast-Dienste einer virtuellen Maschine und genauer gesagt ein Verfahren und ein Gerät zum Synchronisieren von Multicast-Gruppen während einer Migration der virtuellen Maschine.
-
Mit der Entwicklung der virtuellen Technologie kann eine virtuelle Maschine diverse Anwendungen und Dienste wie ein richtiger unabhängiger Computer bereitstellen. Da eine virtuelle Maschine ihre Ablaufumgebung vollständig über eine Software-Simulation erzielt, kann eine Vielzahl von virtuellen Maschinen auf ein und derselben physischen Plattform installiert werden, wie etwa auf einem Server, und die Vielzahl von virtuellen Maschinen kann parallel, unabhängig und isoliert voneinander ablaufen.
-
1 zeigt ein Strukturdiagramm eines typischen virtuellen Maschinennetzwerks. In 1 werden drei physische Plattformen gezeigt, jeweils die Server A, B und C. Am unteren Ende jeder physischen Plattform läuft ein Hypervisor, auf dem je nach Bedarf eine oder mehrere virtuelle Maschinen installiert sein kann bzw. können. Beispielsweise sind bei dem Beispiel in 1 auf dem Server A drei virtuelle Maschinen installiert, nämlich VM1, VM2 und VM3. Auf dem Server B und dem Server C sind jeweils zwei virtuelle Maschinen beziehungsweise eine virtuelle Maschine installiert.
-
In einer typischen Netzwerkverbindungsstruktur ist jeder Server über einen Anschluss an einen (Ethernet-) Schalter angeschlossen und dann über den Schalter an ein externes Netzwerk angeschlossen. Beispielsweise sind bei dem Beispiel in 1 der Server A und der Server B jeweils über den Anschluss 1 beziehungsweise den Anschluss 2 an den gleichen Schalter 1 angeschlossen, und ist der Server C über den Anschluss 3 an einen anderen Schalter 2 angeschlossen. Durch das Einrichten von Kommunikationskanälen über die Schalter 1 und 2 können die jeweiligen Server A, B, C an ein externes Backbone-Netzwerk angeschlossen sein. Entsprechend sind jeweilige virtuelle Maschinen, die auf diesen Servern ablaufen, ebenfalls über die Schalter 1 und 2 als unabhängige Hosts an das Netzwerk angeschlossen.
-
Wie es dem Fachmann bekannt ist, entstehen mit der Entwicklung von Breitband-Multimedianetzwerken ständig diverse Breitband-Netzwerkanwendungen, wie etwa IP-TV, Videokonferenz, Netzwerk-Videoanwendungen usw. Diese Netzwerkanwendungen stellen die Belastungskapazität von Multimedianetzwerken in Frage. Um dieses Problem zu lösen, wird eine Multicast-Übertragung vorgeschlagen. In diesem Übertragungsmodus kann eine Vielzahl von Empfängern eine Multicast-Gruppe bilden und eine Punkt-zu-Mehrpunkt-Netzwerkverbindung mit einem Sender, d.h. einer Multicast-Quelle, umsetzen. Da eine virtuelle Maschine zur Kommunikation an ein Netzwerk angeschlossen sein kann, kann sie als normaler Host auch einer oder mehreren Multicast-Gruppen als Mitglied beitreten, um Multicast-Verkehrsdaten von der Multicast-Quelle zu empfangen. In diesem Fall wird ein Gruppenmitgliedschaftsprotokoll zwischen den virtuellen Maschinen und Schaltern gepflegt, so dass die Schalter die Daten der Multicast-Gruppe(n) auf entsprechende Anschlüsse und dann auf entsprechende virtuelle Maschinen verteilen.
-
Um andererseits die Sicherheit und die Persistenz der Datenspeicherung zu verbessern, verwenden zahlreiche Datenzentren plattform- oder standortübergreifende virtuelle Maschinen zur Ausführung und Verwaltung. Für den Fall der Standortwartung, der Energieanpassung, des Lastausgleichs zwischen Standorten und dergleichen besteht ein Bedarf zum Umstellen einer virtuellen Maschine, die von einer Plattform unterstützt wird, nämlich zum Umstellen der virtuellen Maschine von einem physischen System auf ein anderes physisches System. Derzeit verfügen die meisten Firmen, die eine Host-Virtualisierung bereitstellen, über ihre eigenen bestimmten VM-Migrations-Tools und unterstützen eine Live-Migration der virtuellen Maschinen.
-
Um im Verlauf der Migration einer virtuellen Maschine von einer physischen Plattform auf eine andere physische Plattform zu gewährleisten, dass der Netzwerkdienst der virtuellen Maschine nicht unterbrochen wird, muss ein Schalter, der mit der virtuellen Maschine verknüpft ist, seine Netzwerkkonfiguration aktualisieren. Mit Bezug auf die schalterseitige statische Konfiguration, wie etwa Zugriffskontrollliste ACL, Dienstqualität, QoS, virtuelles lokales Netzwerk, VLAN, usw., wurden im Stand der Technik einige Verfahren vorgeschlagen, um die Migration der virtuellen Maschine zu ermitteln und sofort die obige statische Strategie zu konfigurieren. Die Informationen über eine Multicast-Gruppe, der die virtuelle Maschine beitritt, sind jedoch Informationen, die von der virtuellen Maschine in dem Laufprozess dynamisch erzeugt werden. Die Migrations-Tools nach dem Stand der Technik können derartige dynamisch erzeugte Informationen zusammen mit der Migration der virtuellen Maschine nicht umstellen. Andererseits ist die Migration der virtuellen Maschine für die virtuelle Maschine selber völlig transparent; d.h. die virtuelle Maschine selber ist nicht in der Lage, die Migration wahrzunehmen. Daher kann die virtuelle Maschine ihre Informationen über die Multicast-Gruppe dem Schalter, auf den sie umgestellt wird, nicht sofort und aktiv nach der Fertigstellung der Migration melden. Im Allgemeinen kann sie nur, falls die virtuelle Maschine eine Multicast-Gruppenmitgliedsanfrage von dem Schalter empfängt, den Schalter über ihre Multicast-Gruppeninformationen informieren, indem sie mit einer Nachricht antwortet. Für die obige Anfrage gibt es jedoch ein bestimmtes Zeitintervall. In einer typischen Situation nach dem Stand der Technik beträgt das obige Zeitintervall ungefähr 100 bis 200 Sekunden. Dies bedeutet, dass im schlimmsten Fall während des obigen Zeitintervalls der Schalter keine Multicast-Gruppenverkehrsdaten, die von der virtuellen Maschine benötigt werden, an die virtuelle Maschine verteilen kann, so dass der Multicast-Dienst der virtuellen Maschine 100 bis 200 Sekunden lang unterbrochen wird, was die Leistungserbringung beeinträchtigt.
-
Daher ist eine verbesserte Lösung erwünscht, welche die Multicast-Gruppen einer virtuellen Maschine im Verlauf der Migration der virtuellen Maschine synchronisieren kann, wodurch die Zeit reduziert oder eliminiert wird, während der der Multicast-Dienst der virtuellen Maschine unterbrochen wird, und die Leistungserbringung der virtuellen Maschine verbessert wird.
-
Die WO 2013 / 078 979 A1 beschreibt Verfahren und Vorrichtungen zur Migration einer virtuellen Maschine von einem Quell- auf einen Zielserver. Daten, die eine Multicast-Gruppe der virtuellen Maschine auf dem Quellserver identifizieren, werden ebenfalls empfangen. Vor der Migration der virtuellen Maschine auf den Zielserver wird eine Zielschnittstelle eines mit dem Zielserver verbundenen Zielnetzes zur identifizierten Multicast-Gruppe hinzugefügt, so dass die virtuelle Maschine auch nach der Migration weiterhin den Multicast-Verkehr der Multicast-Gruppe empfängt.
-
Aus der
CN 102 394 831 A ist ein unterbrechungsfreies Verfahren und eine Vorrichtung bekannt, die auf einer Migration einer virtuellen Maschine (VM) basieren. Das Verfahren umfasst die folgenden Schritte: Verwenden eines Internet-Gruppenverwaltungsprotokolls, um Multicast-Gruppendaten einer virtuellen Site-Schnittstelle VSI (vertikaler Geschwindigkeitsindikator) einer VM in einem Snooping-Erkennungsnetzwerk auszuspähen; Senden der VSI-Multicast-Gruppendaten der VM an eine Netzwerkverwaltungsseite; und Erhalten der VSI-Multicast-Gruppendaten der VM von der Netzwerkverwaltungsseite, bevor die VM zu einer Zweckschnittstelle eines Zweckschalters migriert, und Hinzufügen der Zweckschnittstelle zu der Multicast-Gruppe, die den erhaltenen VSI-Multicast-Gruppendaten entspricht und damit zu veranlassen, dass die VM weiterhin den Multicast-Fluss der VSI-Multicast-Gruppe empfängt, nachdem die VM zur Zweckschnittstelle migriert ist.
-
Die US 2011 / 0 205 904 A1 beschreibt eine Umleitungsvorrichtung. Die Umleitungsvorrichtung umfasst: eine Zielspeichereinheit, die konfiguriert ist, Informationen über ein Ziel eines Multicast-Pakets in Verbindung mit einer Multicast-Adresse zu speichern; eine Bestimmungseinheit, die konfiguriert ist zu bestimmen, ob das Ziel des Multicast-Pakets eine erste physische Maschine ist, auf der Grundlage der in der Zielspeichereinheit gespeicherten Zielinformationen in einem Migrationsprozess, in dem eine auf der ersten physischen Maschine arbeitende virtuelle Maschine zu einer zweiten physische Maschine migriert wird; und eine Hinzufügungseinheit, die zu konfiguriert ist, Informationen über die zweite physische Maschine zu den Zielinformationen in der Zielspeichereinheit hinzuzufügen, wobei die Zielinformationen der Multicast-Adresse entsprechen, die das Ziel der ersten physischen Maschine angibt, wenn die Bestimmungseinheit bestimmt, dass das Ziel von dem Multicast-Paket die erste physische Maschine ist.
-
KURZDARSTELLUNG
-
Es ist Aufgabe der vorliegenden Erfindung, ein verbessertes Synchronisieren von Multicastgruppen einer virtuellen Maschine während der Migration der virtuellen Maschine zu ermöglichen.
-
Diese Aufgabe wird durch eine Vorrichtung gemäß dem Hauptanspruch 1, einem Verfahren gemäß dem nebengeordneten Anspruch 8 sowie ein Computerprogramm gemäß dem nebengeordneten Anspruch 15 gelöst.
-
Bevorzugte Ausführungsformen sind die Gegenstände der Unteransprüche.
-
Angesichts der Nachteile aus dem Stand der Technik schlägt die Erfindung eine Lösung zum Synchronisieren von Multicast-Gruppen einer virtuellen Maschine für den Fall einer Migration20 der virtuellen Maschine vor. Nach einem Aspekt der Erfindung wird ein Verfahren zum Synchronisieren von Multicast-Gruppen einer virtuellen Maschine während der Migration der virtuellen Maschine bereitgestellt, welches folgende Schritte umfasst: in Reaktion auf die Ermittlung der Migration der virtuellen Maschine von einem ersten Anschluss auf einen zweiten Anschluss ein und desselben Schalters, Beziehen einer ersten Liste, die Multicast-Gruppen angibt, die dem ersten Anschluss entsprechen, und einer zweiten Liste, die Multicast-Gruppen angibt, die dem zweiten Anschluss entsprechen; Aktualisieren der zweiten Liste, so dass die zweite Liste die Multicast-Gruppen aus der ersten Liste enthält; und Auslagern einer unerwünschten Multicast-Gruppe.
-
Nach einem anderen Aspekt der Erfindung wird eine Vorrichtung zum Synchronisieren von Multicast-Gruppen einer virtuellen Maschine während der Migration der virtuellen Maschine bereitgestellt, umfassend: eine Einheit zum Beziehen von Listen, die konfiguriert ist, um in Reaktion auf die Ermittlung der Migration der virtuellen Maschine von einem ersten Anschluss auf einen zweiten Anschluss ein und desselben Schalters eine erste Liste, die Multicast-Gruppen angibt, die dem ersten Anschluss entsprechen, und eine zweite Liste, die Multicast-Gruppen angibt, die dem zweiten Anschluss entsprechen, zu beziehen; eine Aktualisierungseinheit, die konfiguriert ist, um die zweite Liste zu aktualisieren, so dass die zweite Liste die Multicast-Gruppen aus der ersten Liste enthält; und eine Auslagerungseinheit, die konfiguriert ist, um eine unerwünschte Multicast-Gruppe auszulagern.
-
Mit dem Verfahren und der Vorrichtung gemäß der Ausführungsform der Erfindung können für den Fall der Migration einer virtuellen Maschine Multicast-Gruppen der virtuellen Maschine schnell synchronisiert werden, wodurch verhindert wird, dass der Multicast-Dienst der virtuellen Maschine unterbrochen wird, oder die Unterbrechungszeit reduziert wird.
-
Figurenliste
-
Durch die ausführlichere Beschreibung einiger Ausführungsformen der vorliegenden Offenbarung in den beiliegenden Zeichnungen, werden die obigen und andere Aufgaben, Merkmale und Vorteile der vorliegenden Offenbarung besser ersichtlich werden, wobei sich die gleichen Bezugszeichen im Allgemeinen auf die gleichen Komponenten in den Ausführungsformen der vorliegenden Offenbarung beziehen. Es zeigen:
- 1 ein Strukturdiagramm eines virtuellen Maschinennetzwerks;
- 2 ein Blockdiagramm eines beispielhaften Computersystems/Servers 12, das bzw. der anwendbar ist, um die Ausführungsformen der vorliegenden Erfindung umzusetzen;
- 3 ein Flussdiagramm eines Verfahrens zum Synchronisieren von Multicast-Gruppen gemäß einer Ausführungsform der vorliegenden Erfindung;
- 4 ein Flussdiagramm eines Verfahrens gemäß einer anderen Ausführungsform der vorliegenden Erfindung;
- 5 ein schematisches Diagramm der Migration einer virtuellen Maschine in ein und demselben Schalter;
- 6 ein Flussdiagramm eines Mechanismus zum schnellen Auslagern gemäß einer Ausführungsform der vorliegenden Erfindung;
- 7 ein schematisches Diagramm der schalterübergreifenden Migration einer virtuellen Maschine;
- 8 ein Flussdiagramm des Synchronisierens von Multicast-Gruppen gemäß einer Ausführungsform; und
- 9 ein schematisches Blockdiagramm einer Vorrichtung zum Synchronisieren von Multicast-Gruppen gemäß einer Ausführungsform der vorliegenden Erfindung.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Einige bevorzugte Ausführungsformen werden mit Bezug auf die beiliegenden Zeichnungen ausführlicher beschrieben, in denen die bevorzugten Ausführungsformen der vorliegenden Offenbarung abgebildet sind. Die vorliegende Offenbarung kann jedoch unterschiedlich umgesetzt werden und ist somit nicht als auf die hier offenbarten Ausführungsformen eingeschränkt auszulegen. Vielmehr werden diese Ausführungsformen für das gründliche und vollständige Verständnis der vorliegenden Offenbarung bereitgestellt, und um dem Fachmann den Umfang der vorliegenden Offenbarung vollständig zu vermitteln.
-
Wie es der Fachmann verstehen wird, können die Aspekte der vorliegenden Erfindung als System, Verfahren oder Computerprogrammprodukt ausgebildet sein. Entsprechend können die Aspekte der vorliegenden Erfindung die Form einer Ausführungsform ganz aus Hardware, einer Ausführungsform ganz aus Software (einschließlich Firmware, speicherresidenter Software, Mikrocode usw.) oder einer Ausführungsform, die Software- und Hardware-Aspekte kombiniert, die hier alle allgemein als „Schaltung“, „Modul“ oder „System“ bezeichnet werden können, annehmen. Ferner können die Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien verkörpert ist, auf dem bzw. denen computerlesbarer Programmcode ausgebildet ist.
-
Es kann eine beliebige Kombination von einem oder mehreren computerlesbaren Medien verwendet werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Ein computerlesbares Speichermedium kann beispielsweise und ohne Einschränkung ein elektronisches, magnetisches, optisches, elektromagnetisches, infrarotes oder Halbleiter-System, Vorrichtung oder Gerät oder eine beliebige geeignete Kombination derselben sein. Genauere Beispiele (eine nicht erschöpfende Liste) der computerlesbaren Speichermedien würde Folgendes umfassen: eine elektrische Verbindung mit einem oder mehreren Drähten, eine tragbare Computerdiskette, eine Festplatte, einen Arbeitsspeicher (RAM), einen Festwertspeicher (ROM), einen löschbaren programmierbaren Festwertspeicher (EPROM oder Flash-Speicher), eine Lichtleitfaser, einen tragbaren Compact Disk Festwertspeicher (CD-ROM), eine optische Speichervorrichtung, eine magnetische Speichervorrichtung oder eine beliebige geeignete Kombination derselben. Im Kontext der vorliegenden Druckschrift kann ein computerlesbares Speichermedium ein beliebiges materielles Medium sein, das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einem Gerät zum Ausführen von Anweisungen enthalten oder speichern kann.
-
Ein computerlesbares Signalmedium kann ein verbreitetes Datensignal umfassen, in dem computerlesbarer Programmcode, beispielsweise im Basisband oder als Teil einer Trägerwelle, ausgebildet ist. Ein derartiges verbreitetes Signal kann viele verschiedene Formen annehmen, wozu ohne Einschränkung eine elektromagnetische, optische Form oder eine beliebige geeignete Kombination davon gehört. Ein computerlesbares Signalmedium kann ein beliebiges computerlesbares Medium sein, das kein computerlesbares Speichermedium ist und das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einem Gerät zum Ausführen von Anweisungen mitteilen, verbreiten oder transportieren kann.
-
Programmcode, der auf einem computerlesbaren Medium ausgebildet ist, kann unter Verwendung eines beliebigen geeigneten Mediums, einschließlich ohne Einschränkung eines drahtlosen, eines drahtgebundenen, eines Glasfaserkabels, einer HF usw. oder einer beliebigen geeigneten Kombination derselben übertragen werden.
-
Computerlesbarer Programmcode zum Ausführen von Vorgängen für Aspekte der vorliegenden Erfindung kann in einer beliebigen Kombination von einer oder mehreren Programmiersprachen verfasst sein, wozu eine objektorientierte Programmiersprache, wie etwa Java, Smalltalk, C++ oder dergleichen, und herkömmliche prozedurale Programmiersprachen, wie etwa die Programmiersprache „C“ oder ähnliche Programmiersprachen gehören. Der Programmcode kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als unabhängiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem Remote-Computer oder vollständig auf dem Remote-Computer oder Server ausgeführt werden. In letzterem Fall kann der Remote-Computer an den Computer des Benutzers über eine beliebige Art von Netzwerk angeschlossen sein, wozu ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN) gehört, oder die Verbindung kann mit einem externen Computer (z.B. über das Internet unter Verwendung eines Internet-Anbieters) hergestellt werden.
-
Nachstehend werden die Aspekte der vorliegenden Erfindung mit Bezug auf Flussdiagramme und/oder Blockdiagramme von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß den Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Flussdiagramme und/oder der Blockdiagramme und Kombinationen von Blöcken in den Flussdiagrammen und/oder den Blockdiagrammen durch Computerprogrammanweisungen umgesetzt werden kann. Diese Computerprogrammanweisungen können einem Prozessor eines universellen Computers, eines spezifischen Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die Anweisungen, die über den Prozessor des Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung ablaufen, Mittel erstellen, um die Funktionen/Aktionen umzusetzen, die in dem Block oder den Blöcken des Flussdiagramms und/oder des Blockdiagramms vorgegeben sind.
-
Diese Computerprogrammanweisungen können auch in einem computerlesbaren Medium gespeichert werden, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Geräte anleiten kann, auf eine bestimmte Art und Weise zu funktionieren, so dass die Anweisungen, die in dem computerlesbaren Medium gespeichert sind, ein Produkt ergeben, das Anweisungen umfasst, welche die Funktion/Aktion umsetzen, die in dem Block oder den Blöcken des Flussdiagramms und/oder des Blockdiagramms vorgegeben ist.
-
Die Computerprogrammanweisungen können auch auf einen Computer, einer anderen programmierbaren Datenverarbeitungsvorrichtung oder andere Gerätegeladen werden, um zu bewirken, dass eine Reihe von Betriebsschritten auf dem Computer, einer anderen programmierbaren Vorrichtung oder anderen Geräten ausgeführt wird, um einen computerumgesetzten Prozess zu ergeben, so dass die Anweisungen, die auf dem Computer oder einer anderen programmierbaren Vorrichtung ablaufen, Prozesse bereitstellen, um die Funktionen/Aktionen umzusetzen, die in dem Block oder den Blöcken des Flussdiagramms und/oder des Blockdiagramms vorgegeben sind.
-
Es wird nun Bezug genommen auf 2, in der ein beispielhaftes Computersystem/ ein beispielhafter Server 12, das bzw. der anwendbar ist, um die Ausführungsformen der vorliegenden Erfindung umzusetzen, gezeigt wird. Das Computersystem/ der Server 12 ist rein erläuternd und nicht dazu gedacht, eine Einschränkung bezüglich des Umfangs der Verwendung oder der Funktionalität der hierin beschriebenen Ausführungsformen der Erfindung nahezulegen.
-
Wie in 2 gezeigt, wird das Computersystem/ der Server 12 in Form einer universellen Rechenvorrichtung gezeigt. Die Bestandteile des Computersystems/Servers 12 können ohne Einschränkung einen oder mehrere Prozessoren oder Verarbeitungseinheiten 16, einen Systemspeicher 28 und einen Bus 18, der diverse Systembestandteile, wozu der Systemspeicher 28 gehört, mit dem Prozessor 16 koppelt, umfassen.
-
Der Bus 18 stellt einen oder mehrere von verschiedenartigen Busstrukturen dar, wozu ein Speicherbus oder ein Speicher-Controller, ein Peripheriebus, ein beschleunigter Grafikanschluss und ein Prozessor oder lokaler Bus, der eine von diversen Busarchitekturen verwendet, gehören. Beispielhaft und nicht einschränkend umfassen derartige Architekturen einen Industry Standard Architecture (ISA) Bus, einen Micro Channel Architecture (MCA) Bus, einen Enhanced ISA (EISA) Bus, einen lokalen Video Electronics Standards Association (VESA) Bus und einen Peripheral Component Interconnect (PCI) Bus.
-
Das Computersystem/ der Server 12 umfasst typischerweise diverse computersystemlesbare Medien. Derartige Medien können beliebige verfügbare Medien sein, die für das Computersystem/ den Server 12 zugänglich sind, und sie umfassen sowohl flüchtige als auch nicht flüchtige, abnehmbare als auch nicht abnehmbare Medien.
-
Der Systemspeicher 28 kann computersystemlesbare Medien in Form eines flüchtigen Speichers, wie etwa eines Arbeitsspeichers (RAM) 30 und/oder eines Cachepeichers 32, umfassen. Das Computersystem/ der Server 12 kann ferner andere abnehmbare/ nicht abnehmbare, flüchtige/ nicht flüchtige Computersystem-Speichermedien umfassen. Rein beispielhaft kann das Speichersystem 34 bereitgestellt werden, um von nicht abnehmbaren, nicht flüchtigen magnetischen Medien (nicht gezeigt und typischerweise als „Festplatte“ bezeichnet) zu lesen und darauf zu schreiben. Obwohl dies nicht gezeigt wird, können ein Magnetplattenlaufwerk zum Lesen von und Schreiben auf eine abnehmbare, nicht flüchtige Magnetplatte (z.B. eine Diskette) und ein optisches Laufwerk zum Lesen von oder Schreiben auf eine abnehmbare, nicht flüchtige optische Platte, wie etwa eine CD-ROM, eine DVD-ROM oder andere optische Medien, bereitgestellt werden. In solchen Fällen können sie jeweils durch eine oder mehrere Datenmedien-Schnittstellen an den Bus 18 angeschlossen sein. Wie es ferner nachstehend abgebildet und beschrieben wird, kann der Speicher 28 mindestens ein Programmprodukt umfassen, das einen Satz von Programmmodulen (z.B. mindestens eines) umfassen kann, die konfiguriert sind, um die Funktionen der Ausführungsformen der Erfindung auszuführen.
-
Das Programm/Dienstprogramm 40, das einen Satz von Programmmodulen 42 (mindestens einem) aufweist, kann beispielsweise ohne Einschränkung auch ebenso wie ein Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten in dem Speicher 28 gespeichert sein. Jedes von dem Betriebssystem, dem einen oder den mehreren Anwendungsprogrammen, den anderen Programmmodulen und den Programmdaten oder einer Kombination derselben kann eine Umsetzung einer Netzwerkumgebung umfassen. Die Programmmodule 42 führen im Allgemeinen die Funktionen und/oder die Methodik der Ausführungsformen der Erfindung wie hier beschrieben aus.
-
Das Computersystem/ der Server 12 kann auch mit einer oder mehreren externen Geräten 14 kommunizieren, wie etwa mit einer Tastatur, einer Zeigevorrichtung, einer Anzeige 24 usw.; mit einer oder mehreren Geräten, die es einem Benutzer ermöglichen, mit dem Computersystem/ dem Server 12 zu interagieren; und/oder mit beliebigen Geräten (z.B. einer Netzwerkkarte, einem Modem usw.), die es dem Computersystem/ dem Server 12 ermöglichen, mit einer oder mehreren anderen Computergeräten zu kommunizieren. Eine derartige Kommunikation kann über Ein-/Ausgabe- (E/A) Schnittstellen 22 erfolgen. Ferner kann das Computersystem/ der Server 12 mit einem oder mehreren Netzwerken, wie etwa mit einem lokalen Netzwerk (LAN), einem allgemeinen Weitverkehrsnetz (WAN) und/oder einem öffentlichen Netzwerk (z.B. dem Internet), über einen Netzwerkadapter 20 kommunizieren. Wie abgebildet, kommuniziert der Netzwerkadapter 20 mit den anderen Bestandteilen des Computersystems/Servers 12 über den Bus 18. Es versteht sich, dass obwohl dies nicht gezeigt ist, andere Hardware- und/oder Software-Bestandteile in Verbindung mit dem Computersystem/ Server 12 verwendet werden könnten. Zu den Beispielen gehören ohne Einschränkung: Mikrocode, Gerätetreiber, redundante Verarbeitungseinheiten, externe Festplattenanordnungen, RAID-Systeme, Bandlaufwerke und Datenarchivierungs-Speichersysteme usw.
-
Die Ausführungsformen der vorliegenden Erfindung werden kombiniert mit den beiliegenden Zeichnungen und spezifischen Beispielen beschrieben. Bei den Ausführungsformen der vorliegenden Erfindung, sobald ermittelt wurde, dass eine virtuelle Maschine von einem Anschluss auf einen anderen Anschluss ein und desselben Schalters umgestellt wurde, werden alle Multicast-Gruppeninformationen des alten Anschlusses sofort dem neuen Anschluss bereitgestellt, so dass eine Multicast-Gruppenliste, die dem neuen Anschluss entspricht, alle Multicast-Gruppen des alten Anschlusses enthält. Nachdem somit die virtuelle Maschine auf den neuen Anschluss umgestellt wurde, kann sie sofort den benötigten Multicast-Dienst von dem neuen Anschluss erzielen, so dass der Multicast-Dienst nicht auf Grund der Migration der virtuellen Maschine unterbrochen wird.
-
Nun mit Bezug auf 3 zeigt diese ein Flussdiagramm eines Verfahrens zum Synchronisieren von Multicast-Gruppen gemäß einer Ausführungsform der vorliegenden Erfindung. Wie in 3 gezeigt, umfasst das Verfahren zum Synchronisieren von Multicast-Gruppen gemäß der Ausführungsform Folgendes: Den Schritt 32 eines Beziehens, in Reaktion auf die Ermittlung der Migration der virtuellen Maschine von einem ersten Anschluss auf einen zweiten Anschluss ein und desselben Schalters, einer ersten Liste, die Multicast-Gruppen angibt, die dem ersten Anschluss entsprechen, und einer zweiten Liste, die Multicast-Gruppen angibt, die dem zweiten Anschluss entsprechen; Den Schritt 34 eines Aktualisierens der zweiten Liste, so dass die zweite Liste die Multicast-Gruppen aus der ersten Liste enthält; und den Schritt 36 eines Auslagerns von unerwünschten Multicast-Gruppen in der ersten und/oder der zweiten Liste. Wie die obigen Schritte auszuführen sind, wird nachstehend in Verbindung mit spezifischen Beispielen beschrieben.
-
Gemäß einer Ausführungsform beginnt das Verfahren der Erfindung mit dem Schritt 32 eines Beziehens, in Reaktion auf die Ermittlung der Migration der virtuellen Maschine, der ersten Liste und der zweiten Liste, um Multicast-Gruppen anzugeben, die jeweils dem ursprünglichen Anschluss und dem neuen Anschluss entsprechen. Gemäß einer anderen Ausführungsform führt das erfindungsgemäße Verfahren zusätzliche Schritte vor Schritt 32 aus, um eine Grundlage für die Ausführung von Schritt 32 bereitzustellen. 4 zeigt ein Flussdiagramm eines Verfahrens gemäß einer anderen Ausführungsform. Wie in 4 gezeigt, umfasst das Verfahren dieser Ausführungsform zusätzlich den Schritt 30 des Ermittelns einer Migration der virtuellen Maschine und den Schritt 31 des Beurteilens, ob die umgestellte virtuelle Maschine von ein und demselben Schalter stammt. Sowohl Schritt 30 als auch Schritt 31 können durch Verfahren aus dem Stand der Technik umgesetzt werden.
-
Insbesondere in Schritt 30 wird die Migration der virtuellen Maschine ermittelt. Wie es dem Fachmann bekannt ist, um das Problem der Netzwerkrand-Virtualisierung zu lösen, wurde die Technologie der Brückenvirtualisierung entwickelt, bei der die Norm IEEE 802.1Qbg vorgeschlagen wird. In dieser Norm VSI (virtuelle Stationsschnittstelle) wird das Entdeckungs- und Konfigurationsprotokoll VDP entwickelt, um die VSI zu entdecken und zu konfigurieren. Durch die Verwendung des VDP-Protokolls, wenn es zur Migration einer virtuellen Maschine kommt, kann der Schalter, auf den die virtuelle Maschine umgestellt wird, die VSI der virtuellen Maschine schnell finden und dann die Migration der virtuellen Maschine ermitteln. Zusätzlich zur Verwendung des VDP-Protokolls für die Migrationsermittlung können auch andere Lösungen nach dem Stand der Technik, oder die zukünftig vorgeschlagen werden, verwendet werden, um die Migration der virtuellen Maschine zu ermitteln. Beispielsweise kann bei einem Beispiel ein Migrations-Tool einer virtuellen Maschine eine Benachrichtigung an die betreffenden Schalter vor und nach der Migration der virtuellen Maschine ausgeben. Durch den Empfang einer derartigen Benachrichtigung kann der Schalter, auf den die virtuelle Maschine umgestellt wird, die Migration der virtuellen Maschine ermitteln.
-
Basierend auf der Ermittlung der umgestellten virtuellen Maschine wird in Schritt 31 beurteilt, ob die umgestellte virtuelle Maschine von ein und demselben Schalter stammt. Bei einer Ausführungsform beurteilt der Schalter, auf den die virtuelle Maschine umgestellt wird, unter Verwendung des zuvor beschriebenen VDP-Protokolls, ob die virtuelle Maschine von demselben Schalter umgestellt wird. Insbesondere führt das VDP-Protokoll eine Identifizierung und Verknüpfung im Verhältnis zur VSI der virtuellen Maschine aus, wobei die Identifizierungsinformationen der VSI eine entsprechende VLAN-ID, eine MAC-Adresse, einen VSI-Typ und dergleichen umfassen. Mit diesen Informationen kann der Schalter erkennen, ob die virtuelle Maschine, die umgestellt wird, von demselben Schalter stammt. Zusätzlich können auch andere Lösungen nach dem Stand der Technik verwendet werden, um die Beurteilung in Schritt 31 auszuführen.
-
Falls das Urteilsergebnis von Schritt 31 Ja ist, d.h. die virtuelle Maschine innerhalb ein und desselben Schalters umgestellt wird, nur von einem Anschluss desselben Schalters auf einen anderen Anschluss, dann werden Synchronisierungsschritte für den Fall desselben Schalters, nämlich die Schritte 32 bis 36 in 3 ausgeführt. Falls das Urteilsergebnis von Schritt 31 Nein ist, d.h. die virtuelle Maschine schalterübergreifend umgestellt wird, dann wird Schritt 38 ausgeführt, nämlich der Synchronisierungsschritt für den Fall von übergreifenden Schaltern.
-
Anschließend wird zunächst die Migration innerhalb desselben Schalters beschrieben. In dem Diagramm in 1 sind die Server A, B zusammen an den Schalter 1 angeschlossen. Falls somit die virtuelle Maschine zwischen dem Server A und dem Server B umgestellt wird, gehört dies zu einer Migration innerhalb desselben Schalters. 5 zeigt deutlicher ein schematisches Diagramm der Migration einer virtuellen Maschine innerhalb desselben Schalters. Insbesondere zeigt 5 nur den Schalter 1, die Server A und B und die betreffenden virtuellen Maschinen aus 1 und geht davon aus, dass die virtuelle Maschine VM1 von dem Server A auf den Server B umgestellt wird. Da der Server A an den Anschluss 1 des Schalters angeschlossen ist und der Server B an den Anschluss 2 des Schalters angeschlossen ist, wird dann für den Schalter 1 die virtuelle Maschine VM1 von einem ersten Anschluss, d.h. dem Anschluss 1, auf einen zweiten Anschluss, d.h. den Anschluss 2, umgestellt.
-
Um die Multicast-Gruppen der virtuellen Maschine in dem obigen Fall zu synchronisieren, werden in Schritt 32 als Reaktion auf die Migration der virtuellen Maschine von dem ersten Anschluss auf den zweiten Anschluss in demselben Schalter, eine erste Liste von Multicast-Gruppen, die dem ersten Anschluss entsprechen, und eine zweite Liste von Multicast-Gruppen, die dem zweiten Anschluss entsprechen, bezogen. Wie es dem Fachmann bekannt ist es, um es individuellen Hosts, die eine virtuelle Maschine umfassen, zu ermöglichen, Multicast-Dienste zu erzielen, nach dem Stand der Technik notwendig, ein Gruppenmitgliedschaftsprotokoll zwischen den Hosts und den Multicast-Routern, die direkt an die Hosts angeschlossen sind, zu pflegen. Bei einer typischen Ausführungsform ist das obige Protokoll ein „Internet Group Management Protocol“, IGMP. Das IGMP-Protokoll läuft in der Netzwerkschicht. Der Schalter führt den Multicast in der Datenverbindungsschicht unter der Netzwerkschicht aus, indem er einen IGMP-Snooping-Mechanismus ausführt. Gemäß dem Mechanismus bildet der Schalter eine Entsprechungsbeziehung zwischen der Multicast-Gruppe und dem Schalteranschluss, indem er IGMP-Nachrichten auskundschaftet, die zwischen den Hosts und den Routern übertragen werden. Die Entsprechungsbeziehung kann in Form einer Entsprechungsliste gepflegt werden. Gemäß der Entsprechungsbeziehung leitet der Schalter die empfangenen Multicast-Datenpakete an einen Anschluss weiter, der entsprechende Multicast-Gruppen aufweist. Dies bedeutet, dass der Schalter wissen kann, welcher Anschluss welcher Multicast-Gruppe entspricht, dass er sich jedoch nicht darum kümmert, welche virtuelle Maschine, die von diesem Anschluss unterstützt wird, die Multicast-Gruppe benötigt. Da der Schalter Entsprechungsbeziehungen zwischen den Multicast-Gruppen und jedem Anschluss pflegt, können dann in Schritt 32 eine Liste von Multicast-Gruppen, die dem ersten Anschluss entsprechen, nämlich die erste Liste, und eine Liste von Multicast-Gruppen, die dem zweiten Anschluss entsprechen, nämlich die zweite Liste, ohne Weiteres basierend auf den obigen Entsprechungsbeziehungen bezogen werden.
-
Bei dem Beispiel aus 5 ist der obige erste Anschluss der ursprüngliche Anschluss der virtuellen Maschine VM1, Anschluss 1. Da Anschluss 1 drei virtuelle Maschinen, VM1, VM2, VM3, unterstützt, enthalten dann die Multicast-Gruppen, die Anschluss 1, d.h. der ersten Liste, entsprechen, Multicast-Gruppen, denen VM1 beitritt, wie etwa IP11, IP12, Multicast-Gruppen, denen VM2 beitritt, wie etwa IP21, und Multicast-Gruppen, denen VM3 beitritt, wie etwa IP31, IP32. Es versteht sich, dass jede Multicast-Gruppe ihre eigene einzigartige Kennung aufweist. Im Allgemeinen wird eine Multicast-IP-Adresse verwendet, um eine IP-Multicast-Gruppe zu identifizieren. Für den Fall der Migration der virtuellen Maschine VM1 ist der zweite Anschluss der Zielanschluss, auf den VM1 umgestellt wird, Anschluss 2. Anfänglich unterstützt Anschluss 2 zwei virtuelle Maschinen, VM4 und VM5, wodurch die Multicast-Gruppen, die dem Anschluss 2, d.h. der zweiten Liste, entsprechen, anfänglich Multicast-Gruppen, denen VM4 beitritt, und Multicast-Gruppen, denen VM5 beitritt, enthalten. Bei einem Beispiel umfassen die Multicast-Gruppen, denen VM4 beitritt IP11, IP21 und IP41, während VM5 keiner Multicast-Gruppe beitritt. Dies bedeutet, dass sowohl VM4 als auch VM1 derselben Multicast-Gruppe IP11 beitreten, sowohl VM4 als auch VM2 der Multicast-Gruppe IP21 beitreten, und VM4 ferner zusätzlich der Multicast-Gruppe IP41 beitritt. In diesem Fall enthält die zweite Liste anfänglich IP11, IP21 und IP41.
-
Wie zuvor erwähnt, pflegt der Schalter nur die Entsprechungsbeziehung zwischen der Multicast-Gruppe und dem Anschluss, kennt aber keine Entsprechungsbeziehung zwischen der Multicast-Gruppe und der virtuellen Maschine. Nachdem die virtuelle Maschine VM1 auf den Server B umgestellt wurde, konnte der Schalter daher nicht sofort bestimmen, welche Multicast-Gruppen die virtuelle Maschine benötigt. Daher wird in Schritt 34 die obige erste Liste dem zweiten Anschluss bereitgestellt, und darauf basierend wird die zweite Liste aktualisiert, um zu bewirken, dass die zweite Liste alle Multicast-Gruppen in der ersten Liste enthält. Da der Schalter nicht in der Lage ist, zu bestimmen, welche Multicast-Gruppen in der ersten Liste von der umgestellten virtuellen Maschine benötigt werden, bedeutet dies, dass die Ausführungsform der Erfindung dem zweiten Anschluss, auf den die virtuelle Maschine umgestellt wird, alle Multicast-Gruppen in der ersten Liste bereitstellt, so dass die Liste von Multicast-Gruppen, die dem zweiten Anschluss entsprechen, nämlich die zweite Liste, alle Multicast-Gruppen in der ersten Liste enthält. Da die erste Liste darin mit Sicherheit die Multicast-Gruppen, denen die umgestellte virtuelle Maschinen beitritt, enthält, während die zweite Liste aktualisiert wird, um alle Multicast-Gruppen in der ersten Liste zu enthalten, dann enthalten nun unvermeidlich die Multicast-Gruppen, die dem zweiten Anschluss entsprechen, darin Multicast-Gruppen, welche die umgestellte virtuelle Maschine benötigt. Wenn somit der Schalter Multicast-Datenpakete gemäß der Entsprechungsliste von Multicast-Gruppe und Anschluss verteilt, sendet er Daten, die den Multicast-Gruppen in der ersten Liste entsprechen, auch an den zweiten Anschluss; entsprechend kann die virtuelle Maschine, die auf den zweiten Anschluss umgestellt wird, Multicast-Daten erzielen, die ständig benötigt werden, ohne Unterbrechung des Dienstes auf Grund der Migration.
-
Damit die zweite Liste alle Multicast-Gruppen in der ersten Liste enthält, umfasst bei einer Ausführungsform Schritt 34 das Hinzufügen aller Multicast-Gruppen aus der ersten Liste direkt in die zweite Liste. Um bei einer anderen Ausführungsform zu vermeiden, dass die gleiche Multicast-Gruppe wiederholt hinzugefügt wird, umfasst Schritt 34 ein Beurteilen, ob jede Multicast-Gruppe aus der ersten Liste in der zweiten Liste enthalten war; anschließendes Hinzufügen der Multicast-Gruppen, die nicht in der zweiten Liste enthalten sind, zu der zweiten Liste.
-
Bei dem Beispiel aus 5 enthält die zweite Liste anfänglich IP11, IP21 und IP41. Durch den obigen Schritt 34 erzielt der Anschluss 2 die Multicast-Gruppen in der ersten Liste, die dem Anschluss 1 entsprechen, wie etwa IP11, IP12, IP21, IP31 und IP32, und übernimmt diese Multicast-Gruppen in die zweite Liste. Gemäß einer Ausführungsform werden, da die zweite Liste bereits IP11 und IP21 aufweist, nur andere Multicast-Gruppen aus der ersten Liste zu der zweiten Liste hinzugefügt. Somit umfasst die durch Schritt 34 aktualisierte zweite Liste IP11, IP12, IP21, IP31, IP32 und IP41.
-
Es versteht sich, dass die erste Liste, die Multicast-Gruppen angibt, die dem ersten Anschluss entsprechen, wobei sie nicht nur Multicast-Gruppen umfasst, denen die umgestellte spezifische virtuelle Maschine beitritt, sondern auch Multicast-Gruppen, denen andere virtuelle Maschinen in dem ersten Anschluss beitreten. Nachdem die spezifische virtuelle Maschine den ersten Anschluss durch die Migration verlassen hat, benötigt der erste Anschluss die Multicast-Gruppendaten bezüglich der spezifischen virtuellen Maschine nicht mehr. Nachdem andererseits die zweite Liste durch Schritt 34 aktualisiert wurde, enthält die zweite Liste auch die Multicast-Gruppen, denen die anderen virtuellen Maschinen beitreten. In der Tat wird jedoch nur die spezifische virtuelle Maschine auf den zweiten Anschluss umgestellt, die anderen virtuellen Maschinen werden nicht umgestellt. Daher benötigt der zweite Anschluss die Multicast-Gruppendaten bezüglich dieser anderen virtuellen Maschinen eigentlich nicht. Beispielsweise bei dem Beispiel aus 5, nachdem VM1 auf den Anschluss 2 umgestellt wurde, benötigt der Anschluss 1 die Multicast-Gruppen IP11, IP12 und IP13, denen VM1 beitritt, nicht mehr. Andererseits enthält die geänderte zweite Liste ferner die Multicast-Gruppen IP21, IP31 und IP32 von VM2 und VM3, die von Anschluss 1 unterstützt werden, zusätzlich zu den Multicast-Gruppen der virtuellen Maschinen VM1, VM4 und VM5, die von Anschluss 2 unterstützt werden. Da jedoch VM2 und VM3 weiter in Anschluss 1 bleiben, benötigt Anschluss 2 die Multicast-Gruppendaten bezüglich VM2 und VM3 nicht. Dazu werden in dem nächsten Schritt 36 unerwünschte Multicast-Gruppen in der ersten Liste und/oder der zweiten Liste ausgelagert, um ungültig zu sein, um zu verhindern, dass diese nicht benötigten Multicast-Gruppen eine unnötige Verkehrsbelastung für die Anschlüsse darstellen.
-
Bei einer Ausführungsform wird Schritt 36 über eine herkömmliche Gruppenmitgliedsanfrage ausgeführt. Insbesondere gemäß dem existierenden Gruppenmitgliedschaftsprotokoll, wie etwa dem IGMP-Protokoll, sendet der Schalter regelmäßig eine Gruppenmitgliedsanfrage, und die virtuellen Maschinen, welche die Anfrage empfangen, antworten auf die Anfrage, indem sie einen Gruppenmitgliederbericht senden. Durch ein derartiges herkömmliches Anfragen und Antworten kann der Schalter eine Multicast-Gruppe ohne Antwort an einem bestimmten Anschluss als eine Multicast-Gruppe bestimmen, die der Anschluss nicht mehr benötigt, und sie dann überfällig machen kann. In dem existierenden Gruppenmitgliedschaftsprotokoll werden das Senden einer Anfrage durch den Schalter, das Erstellen einer Antwort durch die virtuellen Maschinen und dergleichen jedoch mit langen vorgegebenen Zeitintervallen ausgeführt, und somit dauert das Auslagern der Multicast-Gruppen lange. Dazu stellt die Ausführungsform der Erfindung ferner einen Mechanismus zum schnellen Auslagern bereit, um den obigen Schritt 36 auszuführen.
-
6 zeigt ein Flussdiagramm eines Mechanismus zum schnellen Auslagern gemäß einer Ausführungsform der vorliegenden Erfindung zum Auslagern einer unerwünschten Multicast-Gruppe an einem Anschluss. Wie in 6 gezeigt, wird für ein schnelles Auslagern in Schritt 62 ein Zeitgeber jeder Multicast-Gruppe in einer Liste von Multicast-Gruppen, die einem spezifischen Anschluss entsprechen, auf eine erste vorbestimmte Zeit eingestellt, die kürzer als ein vorgegebenes Zeitgeberintervall ist. Bei einer Ausführungsform wird vor dem Schritt 62 zuerst beurteilt, ob die restliche Zeit des aktuellen Zeitgebers jeder Multicast-Gruppe größer als die erste vorbestimmte Zeit ist; wenn ja, dann wird die Änderung ausgeführt; und wenn die restliche Zeit des aktuellen Zeitgebers kleiner oder gleich der ersten vorbestimmten Zeit ist, kann die Änderung nicht ausgeführt werden. Dann wird in Schritt 64 eine Gruppenmitgliedsanfrage für die Multicast-Gruppe in dem spezifischen Anschluss ausgegeben, und die Antwortzeit für die Anfrage wird auf eine zweite vorbestimmte Zeit eingestellt, die kürzer als eine Standardantwortzeit ist. Es versteht sich, dass die Gruppenmitgliedsanfrage in Form einer Anfragenachricht ausgegeben wird. Die Anfragenachricht besteht aus einer Vielzahl von Feldern, wozu das Feld Antwortzeit gehört, um die Empfänger der Nachricht anzuweisen, innerhalb der Antwortzeit zu antworten, die von dem Feld vorgegeben wird. Daher kann Schritt 64 die Antwortzeit einstellen, indem er das Feld Antwortzeit in der Anfragenachricht ändert. Dann wird in Schritt 66 als Reaktion auf den Empfang einer Antwortnachricht mit Bezug auf eine bestimmte Multicast-Gruppe innerhalb der zweiten vorbestimmten Zeit der Zeitgeber dieser Multicast-Gruppe auf das Standardzeitgeberintervall geändert. Es versteht sich, dass wenn eine Antwortnachricht mit Bezug auf eine bestimmte Multicast-Gruppe empfangen wird, es bestimmt virtuelle Maschinen in dem aktuellen Anschluss gibt, die immer noch zu der bestimmten Multicast-Gruppe gehören, nämlich dass die Multicast-Gruppe immer noch gültige Mitglieder in dem Anschluss aufweist. Daher ist die Multicast-Gruppe eine Multicast-Gruppe, die immer noch von dem Anschluss benötigt wird, und darf nicht ausgelagert werden. Somit wird in Schritt 66 der Zeitgeber der bestimmten Multicast-Gruppe für das nachfolgende herkömmliche Anfragen und Antworten zurück auf seinen Standardwert geändert. Andererseits wird in Schritt 68 als Reaktion auf das Nicht-Empfangen einer Antwortnachricht mit Bezug auf eine spezifische Multicast-Gruppe innerhalb der ersten vorbestimmten Zeit die spezifische Multicast-Gruppe aus der Liste von Multicast-Gruppen, die dem spezifischen Anschluss entsprechen, gelöscht. Dies ist der Fall, weil wenn keine Antwortnachricht mit Bezug auf die spezifische Multicast-Gruppe empfangen wird, es keine virtuelle Maschine in dem aktuellen Anschluss gibt, um mit Bezug auf die spezifische Multicast-Gruppe zu antworten, d.h. die Multicast-Gruppe weist keine virtuelle Maschine als gültiges Mitglied auf. Entsprechend benötigt der Anschluss die Multicast-Gruppe nicht mehr, wodurch in Schritt 68 die Multicast-Gruppe sofort aus der Liste von Multicast-Gruppen des Anschlusses gelöscht wird.
-
Es versteht sich, dass die erste vorbestimmte Zeit ein Zeitraum ist, um zu beurteilen, ob eine Multicast-Gruppe noch ein gültiges Mitglied aufweist, und dann sollte es die erste vorbestimmte Zeit den gültigen Multicast-Gruppenmitgliedern ermöglichen, rechtzeitig zu antworten. Daher soll die erste vorbestimmte Zeit größer oder gleich einer Anfrageantwortzeit, d.h. der zweiten vorbestimmten Zeit, sein. Bei einer Ausführungsform wird die erste vorbestimmte Zeit gleich der zweiten vorbestimmten Zeit eingestellt. Bei einer anderen Ausführungsform wird die erste vorbestimmte Zeit etwas länger eingestellt als die zweite vorbestimmte Zeit, um mögliche Verzögerungen von virtuellen Maschinen im Verlauf des Empfangens von Anfragen und dem Erstellen von Antworten zuzulassen. Gemäß den obigen beiden Ausführungsformen wird über die Dauer der ersten vorbestimmten Zeit nur eine Anfrage gestellt, um schnell unerwünschte Multicast-Gruppen zu bestimmen. Um bei noch einer anderen Ausführungsform ferner die Möglichkeit des Paketverlusts zu berücksichtigen, wird die erste vorbestimmte Zeit auf die zweite vorbestimmte Zeit multipliziert mit der Anzahl der Anfragen n eingestellt. Somit kann innerhalb der ersten vorbestimmten Zeit Schritt 64 wiederholt für n Anfragen ausgeführt werden. Falls für jede beliebige Anfrage eine Antwortnachricht mit Bezug auf eine bestimmte Multicast-Gruppe innerhalb der zweiten vorbestimmten Zeit empfangen wird, wird der Zeitgeber dieser bestimmten Multicast-Gruppe zurück auf das Standardzeitgeberintervall geändert. Nur wenn die erste vorbestimmte Zeit abläuft und keine Antwort für n Anfragen empfangen wird, wird die spezifische Multicast-Gruppe als unerwünschte Multicast-Gruppe bestimmt. Somit kann ein fehlerhaftes Urteil, das durch Datenverlust verursacht wird, vermieden werden.
-
Für den Fall des IGMP-Protokolls beträgt das Standardzeitgeberintervall der Multicast-Gruppe 260 s, und die standardmäßige Antwortzeit für die Anfrage beträgt 10 s. Für ein schnelles Auslagern wird bei einer Ausführungsform die zweite vorbestimmte Zeit, nämlich die Anfrageantwortzeit, auf einen Standardwert von QAQI (Intervall zum schnellen Auslagern einer Anfrage), 2 s, eingestellt. Wie zuvor erwähnt, kann zur schnellen Bestimmung die erste vorbestimmte Zeit gleich der zweiten vorbestimmten Zeit QAQI eingestellt sein. Ferner wird in dem IGMP-Protokoll eine Robustheitsvariable RV bereitgestellt, um einen Datenverlust mit einer gewissen Wahrscheinlichkeit zuzulassen. Je größer eine erwartete Datenverlustwahrscheinlichkeit eines Teilnetzwerks mit Bezug auf den Anschluss, desto größer wird der Wert der Robustheitsvariablen RV eingestellt. Der Standardwert für RV ist 2. Unter Berücksichtigung der Robustheit kann bei einer Ausführungsform die zuvor beschriebene Anfragenanzahl n auf die Robustheitsvariable RV des Teilnetzwerks mit Bezug auf den spezifischen Anschluss eingestellt werden. Somit wird in einem Fall, bei dem die zweite vorbestimmte Zeit auf QAQI = 2 s eingestellt ist, und die RV ihren Standardwert verwendet, die erste vorbestimmte Zeit auf QAQI*RV = 4 s eingestellt. In einem derartigen Fall sind innerhalb der ersten vorbestimmten Zeit zwei Anfragen zugelassen. Nur wenn keine Antwortnachricht für die beiden Anfragen empfangen wird, wird die entsprechende Multicast-Gruppe gelöscht. Es versteht sich, dass, obwohl die spezifischen Beispiele von der ersten vorbestimmten Zeit und den zweiten vorbestimmten Zeiteinstellungen zuvor angegeben wurden, spezifische Werte der ersten vorbestimmten Zeit und der zweiten vorbestimmten Zeit je nach Bedarf eingestellt werden können, ohne auf die in den obigen Beispielen aufgeführten Werte eingeschränkt zu sein.
-
Durch das Anwenden des Mechanismus zum schnellen Auslagern, der in 6 gezeigt wird, jeweils auf den ersten Anschluss und/oder den zweiten Anschluss, kann der zuvor beschriebene Schritt 36 umgesetzt werden, nämlich unerwünschte Multicast-Gruppen in der ersten Liste und/oder der zweiten Liste werden ausgelagert. Insbesondere durch Einstellen des spezifischen Anschlusses als den ersten Anschluss, um die Schritte in 6 auszuführen, können unerwünschte Multicast-Gruppen in der ersten Liste ausgelagert werden, und durch Einstellen des spezifischen Anschlusses als den zweiten Anschluss, um die Schritte in 6 auszuführen, können die unerwünschten Multicast-Gruppen in der zweiten Liste ausgelagert werden. In der Tat entsprechen die unerwünschten Multicast-Gruppen in der ersten Liste den Multicast-Gruppen, denen die umgestellte virtuelle Maschine beitritt; und die unerwünschten Multicast-Gruppen in der zweiten Liste entsprechen anderen von den Multicast-Gruppen, die in Schritt 34 hinzugefügt werden, als den Multicast-Gruppen, denen die umgestellte Maschine beitritt. Wenn jedoch die unerwünschten Multicast-Gruppen in Schritt 36 ausgelagert werden, beurteilt der Schalter nur, ob eine Multicast-Gruppe weiter benötigt wird, indem er beispielsweise, wie in 6 gezeigt, eine Anfragenachricht ausgibt und eine Antwortnachricht empfängt, ohne die Entsprechungsbeziehung zwischen der Multicast-Gruppe und der virtuellen Maschine logisch zu unterscheiden.
-
In einer Ausführungsform wird in Schritt 36 der in 6 gezeigte Mechanismus zum schnellen Auslagern mit Bezug auf den ersten und den zweiten Anschluss parallel ausgeführt; und bei einer anderen Ausführungsform wird eine schnelle Auslagerung mit Bezug auf den ersten und den zweiten Anschluss der Reihe nach ausgeführt. Oder bei noch einer anderen Ausführungsform wird das obige schnelle Auslagern nur mit Bezug auf den ersten oder zweiten Anschluss ausgeführt. Es versteht sich, dass im Verlauf des Ausführens eines schnellen Auslagerns mit Bezug auf den ersten und/oder zweiten Anschluss, Parametereinstellungen, nämlich Einstellungen der ersten vorbestimmten Zeit und der zweiten vorbestimmten Zeit, mit Bezug auf die beiden Anschlüsse gleich sein können oder alternativ unterschiedlich sein können. Durch das Auslagern und Ungültigmachen von unerwünschten Multicast-Gruppen in Schritt 36 kann unnötiger Verkehr an dem ersten Anschluss und dem zweiten Anschluss vermieden werden. Anschließend können der Schalter und die virtuelle Maschine normal funktionieren.
-
Durch die obigen Schritte 32 bis 36 wird die Synchronisierung von Multicast-Gruppen während der Migration der virtuellen Maschine umgesetzt. Basierend auf einer derartigen Synchronisierung kann die virtuelle Maschine sofort die gewünschten Multicast-Gruppendaten an dem neuen Anschluss empfangen, und zwar ohne Dienstunterbrechung auf Grund der Migration. Wie zuvor erwähnt, sind jedoch die Prozessschritte der Schritte 32 bis 36 auf die Migration der virtuellen Maschine in ein und demselben Schalter anwendbar, beispielsweise der virtuellen Maschine VM1 in 1, die von dem Server A auf den Server B in ein und demselben Schalter umgestellt wird. Falls die virtuelle Maschine VM1 von dem Server A auf den Server C umgestellt wird, dann ändert sich auch der angeschlossene Schalter, was zum Fall der schalterübergreifenden Migration gehört.
-
7 zeigt genauer ein schematisches Diagramm der schalterübergreifenden Migration einer virtuellen Maschine. Insbesondere zeigt 7 nur die Server A und C und die virtuelle Maschine und den dazugehörigen Schalter in 1 und geht davon aus, dass die virtuelle Maschine VM1 von dem Server A auf den Server C umgestellt wird. Da der Server A über den Anschluss 1 an den Schalter 1 angeschlossen ist, und der Server C über den Anschluss 3 an den Schalter 2 angeschlossen ist, entspricht die Migration der virtuellen Maschine VM1 von dem Server A auf den Server C im Hinblick auf die Netzwerkeinstellung der Migration von dem Schalter 1 auf den Schalter 2. Gemäß der existierenden Technologie ist für den Fall der Migration der virtuellen Maschine auf einen anderen Schalter der neue Schalter nicht in der Lage zu wissen, von welchem Anschluss von welchem Schalter die virtuelle Maschine stammt, ganz zu schweigen von Informationen von Multicast-Gruppen, die virtuellen Maschinen beitreten. Wie in 4 gezeigt, muss daher für die schalterübergreifende Migration ein anderer Schritt 38 ausgeführt werden.
-
8 zeigt ein Ablaufschema des Synchronisierens von Multicast-Gruppen für den Fall einer schalterübergreifenden Migration gemäß einer Ausführungsform, nämlich Teilschritte des Schrittes 38. Wie in 8 gezeigt, wird in Schritt 381 in Reaktion auf die Ermittlung der Migration einer virtuellen Maschine von einem anderen Schalter auf einen dritten Anschluss eine Gruppenmitgliedsanfrage für Multicast-Gruppe an den dritten Anschluss ausgegeben, und die Antwortzeit für die Anfrage wird auf eine dritte vorbestimmte Zeit eingestellt, die kürzer als die Standardantwortzeit ist. Es versteht sich, dass der neue Schalter, auf den die virtuelle Maschine umgestellt wird, die Migration der virtuellen Maschine ohne Weiteres ermitteln kann und den Anschluss bestimmen kann, an den die virtuelle Maschine angeschlossen ist. Dabei wird der Anschluss des neuen Schalters, an den die virtuelle Maschine nach der Migration angeschlossen ist, als dritter Anschluss bezeichnet. Basierend auf der Bestimmung, dass die virtuelle Maschine an den dritten Anschluss angeschlossen ist, wird eine Gruppenmitgliedsanfrage an den dritten Anschluss ausgegeben. Wie zuvor erwähnt, enthält eine Anfragenachricht der Gruppenmitgliedsanfrage ein Feld Antwortzeit, um einem Empfänger die zulässige maximale Antwortzeit anzugeben. In Schritt 381 kann durch Ändern des Feldes die Antwortzeit für die Anfrage auf die dritte vorbestimmte Zeit, die kürzer als die Standardantwortzeit ist, eingestellt werden, wodurch der Empfänger aufgefordert wird, schnell zu antworten. Bei dem Beispiel aus 7 entspricht der dritte Anschluss dem Anschluss 3 des Schalters 2. Sobald ermittelt wird, das VM1 einzieht, gibt der Schalter 2 eine Gruppenmitgliedsanfrage an den Anschluss 3 aus.
-
Dann werden in Schritt 382 gemäß der empfangenen Antwortnachricht Multicast-Gruppen bestimmt, die dem dritten Anschluss entsprechen. Es versteht sich, dass nach dem Empfang der Gruppenmitgliedsanfrage, die in Schritt 381 ausgegeben wurde, jede virtuelle Maschine, die von dem dritten Anschluss unterstützt wird, innerhalb der dritten vorbestimmten Zeit antwortet. Im Allgemeinen enthält eine Antwortnachricht, die von einer virtuellen Maschine gesendet wird, eine Kennung einer Multicast-Gruppe, der sie beitritt. Nach dem Erzielen von Antwortnachrichten, die von jeweiligen virtuellen Maschinen gesendet werden, kann der Schalter durch Entnehmen der darin enthaltenen Multicast-Gruppenkennungen Multicast-Gruppen bestimmen, die dem dritten Anschluss entsprechen. Im Allgemeinen analysiert der Schalter die Entsprechungsbeziehung zwischen der virtuellen Maschine und der Multicast-Gruppe nicht. Daher bestimmt in Schritt 382 der Schalter nur die Multicast-Gruppen, die dem dritten Anschluss entsprechen, basierend auf Antwortnachrichten, die von dem dritten Anschluss empfangen werden, muss sich jedoch nicht darum kümmern, welche Multicast-Gruppe davon der virtuellen Maschine entspricht, die neu umgestellt wird. Dies ist der Fall, weil die virtuelle Maschine auf den dritten Anschluss umgestellt wurde, und somit enthält die Liste von Multicast-Gruppen, die durch Anfragen und Antworten mit Bezug auf den dritten Anschluss erzielt wird, mit Sicherheit Multicast-Gruppen, die von der virtuellen Maschine benötigt werden, die neu umgestellt wird. Solange die Multicast-Datenpakete dem dritten Anschluss gemäß dieser Liste bereitgestellt werden, kann die virtuelle Maschine, die neu umgestellt wird, mit Sicherheit erwünschte Multicast-Dienstdaten erzielen. Beispielsweise antworten bei dem Beispiel aus 7 die beiden virtuellen Maschinen VM1 und VM6 durch Ausgeben einer Anfrage an den Anschluss 3. Entsprechend enthalten die Multicast-Gruppen des dritten Anschlusses, der in Schritt 382 bestimmt wurde, die Multicast-Gruppen, denen VM1 beitritt, und die Multicast-Gruppen, denen VM6 beitritt. Solange die Daten dieser Multicast-Gruppen dem Anschluss 3 bereitgestellt werden, kann die VM1 mit Sicherheit die gewünschten Multicast-Dienstdaten erzielen.
-
Bei einer Ausführungsform, welche die Möglichkeit des Paketverlusts berücksichtigt, werden die obigen Schritte 381 und 382 wiederholt, um zu gewährleisten, dass die Multicast-Gruppen, die dem dritten Anschluss entsprechen, genau erzielt werden.
-
Da die Anfrage in Schritt 381 sofort als Reaktion auf die Migration der virtuellen Maschine ausgegeben werden kann, ist die Zeit, während der der Multicast-Dienst der virtuellen Maschine „unterbrochen“ ist, hauptsächlich von der Zeit, während der jede virtuelle Maschine eine Antwort erstellt, d.h. der dritten vorbestimmten Zeit, abhängig. Wie zuvor erwähnt, beträgt im IGMP-Protokoll die Standardantwortzeit für die Anfrage 10 s. Genauer gesagt wird die Antwortzeit, die in dem Feld Antwortzeit in der Anfragenachricht definiert ist, als ein Wert in einer Einheit von Zehntelsekunden ausgedrückt. Demnach beträgt in einem Standardzustand der Wert in dem Feld Antwortzeit 100, was 10 s entspricht. Um die Zeit für die Unterbrechung des Multicast-Dienstes der virtuellen Maschine möglichst kurz zu machen, kann die dritte vorbestimmte Zeit auf einen Mindestwert 1 eingestellt werden, den das obige Feld zulässt, nämlich 0,1 s. In diesem Fall kann der Schalter die Multicast-Gruppen, die dem dritten Anschluss entsprechen, in 0,1 s bestimmen und dann Multicast-Daten bereitstellen, wodurch die Zeit der Multicast-Dienstunterbrechung erheblich reduziert wird.
-
Bei einer anderen Ausführungsform wird in Schritt 381 das Format der Anfragenachricht geändert, wodurch die dritte vorbestimmte Zeit auf 0 eingestellt wird, d.h. der Empfänger wird angewiesen, sofort eine Antwort zu erstellen. Bei einer derartigen Ausführungsform muss ferner ein Modul geändert werden, das mit dem Multicast-Dienst in der virtuellen Maschine zusammenhängt, so dass die virtuelle Maschine das geänderte Anfragenachrichtenformat erkennen kann und die Antwort gemäß der Antwortzeit erstellen, die in dem neuen Format vorgegeben ist. Gemäß der Ausführungsform gibt der Schalter als Reaktion auf die Migration der virtuellen Maschine sofort eine Anfrage aus, und jede virtuelle Maschine erstellt sofort eine Antwort, wodurch der Multicast-Dienst der umgestellten virtuellen Maschine fast nicht unterbrochen wird.
-
Gemäß den in 8 gezeigten Schritten kann der Schalter für den Fall der schalterübergreifenden Migration der virtuellen Maschine durch schnelles Anfragen und Antworten die gewünschten Multicast-Datenpakete für die jeweiligen virtuellen Maschinen innerhalb einer vorbestimmten kurzen Zeit bereitstellen; und entsprechend wird die Zeit, während der der Multicast-Dienst der umgestellten virtuellen Maschine unterbrochen wird, erheblich verkürzt.
-
Es werden die Prozessschritte des Synchronisierens von Multicast-Gruppen einer virtuellen Maschine, wenn die virtuelle Maschine innerhalb ein und desselben Schalters und schalterübergreifend umgestellt wird, beschrieben, jeweils kombiniert mit den obigen spezifischen Beispielen. Obwohl die obige Beschreibung mit den Kennzeichen des derzeit üblichen IGMP-Protokolls kombiniert ist, versteht es sich, dass das Verfahren der Ausführungsform der vorliegenden Erfindung nicht auf Systeme eingeschränkt ist, auf die das IGMP-Protokoll angewendet wird. Für den Fall von anderen ähnlichen Protokollen kann das obige Verfahren ähnlich ausgeführt werden, indem die Parameter und dergleichen im Umfang der Erfindung geändert werden, um die Multicast-Gruppen der virtuellen Maschine während der Migration der virtuellen Maschine zu synchronisieren.
-
Basierend auf dem gleichen erfinderischen Konzept stellt die Ausführungsform der Erfindung ferner eine Vorrichtung zum Synchronisieren von Multicast-Gruppen während der Migration einer virtuellen Maschine bereit. 9 zeigt ein schematisches Blockdiagramm einer Vorrichtung zum Synchronisieren von Multicast-Gruppen gemäß einer Ausführungsform der vorliegenden Erfindung. In 9 wird die Vorrichtung insgesamt mit 900 bezeichnet. Wie in der Figur gezeigt, umfasst die Vorrichtung 900 zum Synchronisieren von Multicast-Gruppen Folgendes: eine Einheit zum Beziehen von Listen 92, die konfiguriert ist, um in Reaktion auf die Ermittlung der Migration der virtuellen Maschine von einem ersten Anschluss auf einen zweiten Anschluss ein und desselben Schalters eine erste Liste und eine zweite Liste zu beziehen, die Multicast-Gruppen angeben, die jeweils dem ersten Anschluss und dem zweiten Anschluss ansprechen; eine Aktualisierungseinheit 94, die konfiguriert ist, um die zweite Liste derart zu aktualisieren, dass die zweite Liste die Multicast-Gruppen aus der ersten Liste enthält; und eine Auslagerungseinheit 96, die konfiguriert ist, um eine unerwünschte Multicast-Gruppe in der ersten Liste und/oder der zweiten Liste auszulagern.
-
Gemäß einer Ausführungsform umfasst die Vorrichtung 900 ferner (gestrichelt gezeigt): eine Ermittlungseinheit 90, die konfiguriert ist, um die Migration der virtuellen Maschine zu ermitteln; und eine Beurteilungseinheit 91, die konfiguriert ist, um zu beurteilen, ob die umgestellte virtuelle Maschine von demselben Schalter stammt.
-
Gemäß einer Ausführungsform ist die Aktualisierungseinheit 94 konfiguriert zum: Beurteilen, ob eine Multicast-Gruppe aus der ersten Liste in der zweiten Liste enthalten war; und ledigliches Hinzufügen von Multicast-Gruppen zu der zweiten Liste, die in der zweiten Liste nicht enthalten sind.
-
Gemäß einer Ausführungsform umfasst die Auslagerungseinheit 96 Folgendes (nicht gezeigt): ein erstes Änderungsmodul, das konfiguriert ist, um einen Zeitgeber einer Multicast-Gruppe in einer Liste von Multicast-Gruppen, die einem spezifischen Anschluss entsprechen, auf eine erste vorbestimmte Zeit zu ändern, die kürzer als ein Standardzeitgeberintervall ist; ein Anfragemodul, das konfiguriert ist, um eine Gruppenmitgliedsanfrage in dem spezifischen Anschluss auszugeben und um die Antwortzeit für die Gruppenmitgliedsanfrage auf eine zweite vorbestimmte Zeit einzustellen, die kürzer als eine Standardantwortzeit ist; ein zweites Änderungsmodul, das konfiguriert ist, um als Reaktion auf den Empfang einer Antwortnachricht mit Bezug auf eine bestimmte Multicast-Gruppe innerhalb der zweiten vorbestimmten Zeit den Zeitgeber der bestimmten Multicast-Gruppe zurück auf das Standardzeitgeberintervall einzustellen; ein Löschmodul, das konfiguriert ist, um als Reaktion auf das Nicht-Empfangen einer Antwortnachricht mit Bezug auf eine spezifische Multicast-Gruppe, nachdem die erste vorbestimmte Zeit abgelaufen ist, die spezifische Multicast-Gruppe aus der Liste von Multicast-Gruppen, die dem spezifischen Anschluss entsprechen, zu löschen, wobei der spezifische Anschluss der erste Anschluss und/oder der zweite Anschluss ist.
-
Bei einer Ausführungsform ist das Anfragemodul konfiguriert, um die Antwortzeit auf die zweite vorbestimmte Zeit zu ändern, indem es das Feld Antwortzeit in einer Anfragenachricht der Gruppenmitgliedsanfrage ändert.
-
Bei einer Ausführungsform wird die erste vorbestimmte Zeit als zweite vorbestimmte Zeit eingestellt, die mit der Anzahl von Anfragen n multipliziert wird. Entsprechend ist das Anfragemodul konfiguriert, um n Gruppenmitgliedsanfragen innerhalb der ersten vorbestimmten Zeit auszugeben.
-
Gemäß einer Ausführungsform wird die Anzahl von Anfragen n als Robustheitsvariable eines Teilnetzwerks mit Bezug auf den spezifischen Anschluss eingestellt.
-
Gemäß einer Ausführungsform umfasst die Vorrichtung 900 ferner eine Bestimmungseinheit 98 (gestrichelt gezeigt), die konfiguriert ist zum: in Reaktion auf die Ermittlung der Migration der virtuellen Maschine von einem anderen Schalter auf einen dritten Anschluss, Ausgeben einer Gruppenmitgliedsanfrage für eine Multicast-Gruppe in dem dritten Anschluss und Einstellen der Antwortzeit für die Gruppenmitgliedsanfrage auf eine dritte vorbestimmte Zeit, die kürzer als eine Standardantwortzeit ist; und Bestimmen von Multicast-Gruppen, die dem dritten Anschluss entsprechen, gemäß der empfangenen Antwortnachricht.
-
Bei einer Ausführungsform wird die dritte vorbestimmte Zeit als Mindestwert eingestellt, der von dem Feld Antwortzeit zugelassen wird, das in einer Anfragenachricht der Gruppenmitgliedsanfrage enthalten ist.
-
Bei einer Ausführungsform ist die Vorrichtung 900 in dem Schalter enthalten. Bei einer anderen Ausführungsform ist die Vorrichtung 900 ein unabhängiges Tool, das mit dem Schalter kommuniziert.
-
Die Einzelheiten des Ausführens der Vorrichtung 900 zum Synchronisieren von Multicast-Gruppen einer virtuellen Maschine können mit Bezug auf die Beschreibung der Verfahren kombiniert mit den spezifischen Beispielen erzielt werden und werden hier nicht weiter beschrieben.
-
Mit dem Verfahren und der Vorrichtung gemäß der Ausführungsformen der Erfindung können für den Fall einer Migration einer virtuellen Maschine Multicast-Gruppen der virtuellen Maschine schnell synchronisiert werden, wodurch eine Unterbrechung des Multicast-Dienstes der virtuellen Maschine verhindert wird oder die Unterbrechungszeit verkürzt wird.
-
Das Flussdiagramm und die Blockdiagramme in den Figuren bilden die Architektur, die Funktionalität und die Funktionsweise möglicher Umsetzungen von Systemen, Verfahren und Computerprogrammprodukten gemäß diversen Ausführungsformen der vorliegenden Erfindung ab. In dieser Hinsicht kann jeder Block in dem Flussdiagramm oder den Blockdiagrammen ein Modul, ein Segment oder einen Abschnitt von Code darstellen, der eine oder mehrere ausführbare Anweisungen umfasst, um die vorgegebene(n) logische(n) Funktion(en) umzusetzen. Es sei ebenfalls zu beachten, dass bei einigen alternativen Umsetzungen die in dem Block notierten Funktionen nicht in der Reihenfolge, die in den Figuren vermerkt ist, vorkommen müssen. Beispielsweise können zwei nacheinander gezeigte Blöcke tatsächlich im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal in umgekehrter Reihenfolge ausgeführt werden, je nach der betreffenden Funktionalität. Es sei ebenfalls zu beachten, dass jeder Block der Blockdiagramme und/oder der Ablaufschemata und Kombinationen von Blöcken in den Blockdiagrammen und/oder den Ablaufschemata durch spezielle Hardware-basierte Systeme, welche die vorgegebenen Funktionen oder Aktionen ausführen, oder durch Kombinationen von spezieller Hardware und Computeranweisungen umgesetzt werden kann bzw. können.
-
Die Beschreibungen der diversen Ausführungsformen der vorliegenden Erfindung wurden zum Zweck der Erläuterung vorgelegt und sind nicht dazu gedacht, erschöpfend oder auf die offenbarten Ausführungsformen eingeschränkt zu sein. Zahlreiche Änderungen und Variationen werden für den Fachmann ersichtlich sein, ohne Geist und Umfang der beschriebenen Ausführungsformen zu verlassen. Die hier verwendeten Begriffe wurden gewählt, um die Grundlagen der Ausführungsformen, die praktische Anwendung oder die technische Verbesserung gegenüber marktüblichen Technologien am besten zu erklären oder es anderen Fachleuten zu ermöglichen, die hier offenbarten Ausführungsformen zu verstehen.