DE102012212511A1 - Checkpoint-basierte Hochverfügbarkeit mit Netzwerkpaketpufferung in der Hardware - Google Patents
Checkpoint-basierte Hochverfügbarkeit mit Netzwerkpaketpufferung in der Hardware Download PDFInfo
- Publication number
- DE102012212511A1 DE102012212511A1 DE102012212511A DE102012212511A DE102012212511A1 DE 102012212511 A1 DE102012212511 A1 DE 102012212511A1 DE 102012212511 A DE102012212511 A DE 102012212511A DE 102012212511 A DE102012212511 A DE 102012212511A DE 102012212511 A1 DE102012212511 A1 DE 102012212511A1
- Authority
- DE
- Germany
- Prior art keywords
- network
- checkpointing
- virtual machine
- adapter
- packet
- 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.)
- Granted
Links
- 230000003139 buffering effect Effects 0.000 title claims abstract description 18
- 239000000872 buffer Substances 0.000 claims abstract description 66
- 238000005516 engineering process Methods 0.000 claims abstract description 59
- 238000000034 method Methods 0.000 claims abstract description 46
- 230000004044 response Effects 0.000 claims abstract description 18
- 238000004590 computer program Methods 0.000 claims abstract description 15
- 238000012546 transfer Methods 0.000 claims abstract description 12
- 230000015654 memory Effects 0.000 claims description 58
- 230000006870 function Effects 0.000 claims description 29
- 238000012545 processing Methods 0.000 claims description 29
- 230000005540 biological transmission Effects 0.000 claims description 20
- 238000005192 partition Methods 0.000 claims description 13
- 230000000977 initiatory effect Effects 0.000 claims description 7
- 125000004122 cyclic group Chemical group 0.000 claims 6
- 230000001360 synchronised effect Effects 0.000 claims 3
- 238000013507 mapping Methods 0.000 claims 2
- 238000011017 operating method Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 6
- 239000004744 fabric Substances 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 239000000835 fiber Substances 0.000 description 2
- 239000003999 initiator Substances 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 101100521334 Mus musculus Prom1 gene Proteins 0.000 description 1
- 239000003365 glass fiber Substances 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1482—Generic software techniques for error detection or fault masking by means of middleware or OS functionality
- G06F11/1484—Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1405—Saving, restoring, recovering or retrying at machine instruction level
- G06F11/1407—Checkpointing the instruction stream
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2097—Error 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 maintaining the standby controller/processing unit updated
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17325—Synchronisation; Hardware support therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/202—Error 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
- G06F11/2038—Error 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 with a single idle spare processing component
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/202—Error 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
- G06F11/2046—Error 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 where the redundant components share persistent storage
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Retry When Errors Occur (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
- Hintergrund
- Technischer Anwendungsbereich
- Die vorliegende Erfindung bezieht sich im Allgemeinen auf Datenverarbeitungssysteme und im Besonderen auf Checkpoint-Operationen in einem Datenverarbeitungssystem. Noch spezieller bezieht sich die vorliegende Erfindung auf Checkpoint-Operationen beim Puffern von Netzwerkpaketen in einem Datenverarbeitungssystem.
- Beschreibung der verwandten Technik
- Checkpoint-basierte Hochverfügbarkeit ist eine Methodik, bei der eine virtuelle Maschine, die auf einer Hostmaschine (d. h., der „primäre Host”) ausgeführt wird, in regelmäßigen Intervallen (z. B. in Intervallen von 25 ms) den zugehörigen CPU- und Hauptspeicherzustand auf eine andere Hostmaschine (d. h., den „sekundären Host”) spiegelt. Dieser Spiegelungsprozess umfasst: (1) Verfolgen der Änderungen am Hauptspeicher der virtuellen Maschine; (2) Anhalten der virtuellen Maschine in periodischen Abständen; (3) Senden der Änderungen zusammen mit Änderungen von Aktualisierungen des CPU-Zustands über ein Netzwerk an den sekundären Host; (4) Warten, dass der sekundäre Host den Empfang der Hauptspeicher- und CPU-Zustandsaktualisierung bestätigt; und (5) Wiederaufnahme des Betriebs der virtuellen Maschine. Der Spiegelungs-/”Checkpointing”-Prozess stellt sicher, dass der sekundäre Host die Arbeitslast ohne Serviceausfall wiederaufzunehmen vermag, falls beim primären Host ein plötzlicher Hardwareausfall aufritt.
- Was die Übertragung von Netzwerkpakten in herkömmlichen Checkpointing-Ansätzen betrifft, senden virtuelle Maschinen Netzwerkverkehr im Allgemeinen über einen einzelnen Virtualisierungspunkt (z. B. einem virtuellen Eingangs-/Ausgangsserver (VIOS) oder einem Hypervisor), der „Eigentümer” des Netzwerkadapters ist. Diese herkömmlichen Ansätze erfordern im Allgemeinen, dass für jede Netzwerkpaketübertragung ein Checkpoint durchgeführt wird. In der Folge steigt durch diese herkömmlichen Ansätze die Netzwerklatenz, und die Software wird komplexer.
- Kurzzusammenfassung
- Offengelegt werden ein Verfahren, ein System und ein Computerprogrammprodukt zur Optimierung der Verfügbarkeit von Ressourcen/Prozessen durch die Bereitstellung hardwarebasierter Pufferung von Netzwerkpaketen während der Durchführung von Checkpoints in einer virtualisierten Umgebung. Ein High-Availability-Checkpoint-(HAC bzw. Hochverfügbarkeits-Checkpoint)-Dienstprogramm konfiguriert einen physischen Netzwerkadapter vorab, um ausgehende Netzwerkpakete von virtuellen Maschinen (bzw. virtual machine) zu Puffern, die eine Checkpointing-Technologie einsetzen. Als Reaktion auf den Empfang eines ausgehenden Netzwerkpakets von einer virtuellen Maschine und der Bestimmung, dass die virtuelle Maschine eine vorgegebene Checkpointing-Technologie (bzw. Kontrollpunkt-Technologie) einsetzt, puffert der physische Netzwerkadapter das ausgehende Netzwerkpaket. Darüber hinaus führt ein primärer Host Checkpoint-Operationen mit einem sekundären Host durch bzw. unterstützt diese (in Verbindung mit der virtuellen Maschine). Wenn die Checkpoint-Operationen erfolgreich abgeschlossen wurden, löst das HAC-Dienstprogramm die Übertragung der gepufferten Netzwerkpakete vom Netzwerkadapter an ein Ziel im Netzwerk aus. Der physische Netzwerkadapter minimiert die Netzwerklatenz beim Checkpointing, indem einem gepufferten Netzwerkpaket von einer virtuellen Maschine mit Checkpointing vorab eine höhere Priorität als einem neuen Netzwerkpaket, das von einer virtuellen Maschine ohne Checkpointing stammt, zugewiesen wird.
- Die obige Zusammenfassung enthält Vereinfachungen, Verallgemeinerungen und Auslassungen von Details und ist nicht als umfassende Beschreibung des beanspruchten Gegenstands gedacht, sondern soll vielmehr eine kurze Übersicht über einige der hiermit in Verbindung stehenden Funktionalitäten bieten. Andere Systeme, Verfahren, Funktionalitäten, Merkmale und Vorteile des beanspruchten Gegenstands sind oder werden für Fachleute bei Betrachtung der folgenden Abbildungen (Fig.) und der detaillierten schriftlichen Beschreibung offensichtlich.
- Kurzbeschreibung der Zeichnungen
- Eine bevorzugte Ausführungsform der vorliegenden Erfindung wird nun rein beispielhaft mit Bezugnahme auf die begleitenden Zeichnungen beschrieben. Diese stellen Folgendes dar:
-
1 veranschaulicht gemäß einer Ausführungsform ein Netzwerk von Datenverarbeitungssystemen, die als virtualisierte Systeme konfiguriert sind, in denen verschiedene funktionale Merkmale der beschriebenen Ausführungsformen implementiert werden; -
2 veranschaulicht gemäß einer Ausführungsform eine interne Konfiguration eines primären Hosts, der über mehrere virtuelle Maschinen verfügt; -
3 veranschaulicht gemäß einer Ausführungsform ein Blockdiagramm mit funktionalen Komponenten eines primären Hosts und eines sekundären Hosts, wobei beide Hosts konfiguriert sind, um einer auf dem primären Host ausgeführten virtuellen Maschine Checkpoint-Operationen zu ermöglichen; -
4 ist gemäß einer Ausführungsform ein logisches Übersichtsflussdiagramm eines beispielhaften Verfahrens, in dem eine virtuelle Maschine Checkpoint-Operationen in Verbindung mit der Verwendung hardwarebasierter Pufferung von Netzwerkpaketen über einen Netzwerkadapter durchführt; und -
5 ist gemäß einer Ausführungsform ein logisches Übersichtsflussdiagramm eines beispielhaften Verfahrens, mit dem ein primärer Host mittels der Paketpriorität die Übertragung von gepufferten Netzwerkpaketen, die auf Checkpoint-Operationen folgt, plant. - Detaillierte Beschreibung
- Die der Veranschaulichung dienenden Ausführungsformen sehen ein Verfahren, ein Datenverarbeitungssystem und ein Computerprogrammprodukt zur Optimierung die Verfügbarkeit von Ressourcen/Prozessen durch die Bereitstellung der hardwarebasierten Pufferung von Netzwerkpaketen während des Checkpointings in einer virtualisierten Umgebung vor. Ein High-Availability-Checkpoint-(HAC bzw. Hochverfügbarkeits-Checkpoint)-Dienstprogramm konfiguriert einen physischen Netzwerkadapter vorab, um ausgehende Netzwerkpakete von virtuellen Maschinen zu Puffern, die eine Checkpointing-Technologie einsetzen. Als Reaktion auf den Empfang eines ausgehenden Netzwerkpakets von einer virtuellen Maschine und der Bestimmung, dass die virtuelle Maschine eine vorgegebene Checkpointing-Technologie einsetzt, puffert der physische Netzwerkadapter das ausgehende Netzwerkpaket. Darüber hinaus führt ein primärer Host Checkpoint-Operationen mit einem sekundären Host durch bzw. unterstützt diese (in Verbindung mit der virtuellen Maschine). Wenn die Checkpoint-Operationen erfolgreich abgeschlossen sind, löst das HAC-Dienstprogramm die Übertragung der gepufferten Netzwerkpakete vom Netzwerkadapter an ein Ziel im Netzwerk aus. Der physische Netzwerkadapter minimiert die Netzwerklatenz beim Checkpointing, indem einem gepufferten Netzwerkpaket von einer virtuellen Maschine mit Checkpointing vorab eine höhere Priorität als einem neuen Netzwerkpaket, das von einer virtuellen Maschine ohne Checkpointing stammt, zugewiesen wird.
- In der folgenden detaillierten Beschreibung von beispielhaften Ausführungsformen der Erfindung werden spezielle beispielhafte Ausführungsformen, in denen die Erfindung verwirklicht wird, in ausreichender Detailgenauigkeit beschrieben, um Fachleute die Verwirklichung der Erfindung zu ermöglichen, und es versteht sich, dass andere Ausführungsformen verwendet werden können und dass logische, architektonische, programmatische, mechanische, elektrische und andere Änderungen vorgenommen werden können, ohne vom Geist und Umfang der vorliegenden Erfindung abzuweichen. Die folgende detaillierte Beschreibung soll daher nicht in einem einschränkenden Sinne interpretiert werden, und der Umfang der vorliegenden Erfindung wird durch die angehängten Ansprüche und deren Entsprechungen definiert.
- Bei den Beschreibungen der verschiedenen Ansichten der Figuren werden ähnliche Elemente mit ähnlichen Namen und Referenznummern wie die in den vorhergehenden Figuren vorgesehen. Die den Elementen zugewiesenen speziellen Bezugsziffern dienen nur als Beschreibungshilfe und sollen keine Beschränkungen (strukturell, funktional oder anderweitig) für die beschriebene Ausführungsform implizieren.
- Es versteht sich, dass die Verwendung spezieller Komponenten-, Geräte- und/oder Parameternamen (beispielsweise die des ausgeführten Dienstprogramms/der Logik/der Firmware, die hier beschrieben werden) nur beispielhaft ist und keine Einschränkung der Erfindung darstellen soll. Die Erfindung kann daher ohne Beschränkung mit anderer Nomenklatur/Terminologie implementiert werden als die, die in diesem Dokument zum Beschreiben der Komponenten/Geräte/Parameter verwendet wird. Bezugnahmen auf ein spezielles Protokoll oder proprietäre Namen bei der Beschreibung eines oder mehrerer Elemente, Merkmale oder Konzepte der Ausführungsformen werden nur als Beispiele einer Implementierung bereitgestellt, und diese Bezugnahmen schränken die Erweiterung der Erfindung auf Ausführungsformen, in denen andere Element-, Merkmals- oder Konzeptnamen verwendet werden, in keiner Weise ein. Somit soll jeder der in der vorliegenden Erfindung verwendetem Begriffe die breiteste Interpretation in dem Kontext, in dem der Begriff verwendet wird, erhalten.
- Wie im Folgenden weiter beschrieben, wird die Implementierung der funktionalen Merkmale der Erfindung in den Verarbeitungsgeräten/-strukturen bereitgestellt und beinhaltet die Verwendung einer Kombination aus Hardware, Firmware und verschiedenen Konstrukten auf Softwareebene (beispielsweise Programmcode). Die vorliegenden Figuren veranschaulichen sowohl Hardwarekomponenten wie auch Softwarekomponenten in einer beispielhaften Datenverarbeitungsarchitektur mit einer Reihe von Verarbeitungsknoten, die als ein oder mehrere elektronische Computing-Komplexe angeordnet/konfiguriert sind. Bei den der Veranschaulichung dienenden und beschriebenen Ausführungsformen wird davon ausgegangen, dass die Systemarchitektur auf eine viel größere Anzahl von Verarbeitungsknoten skaliert werden kann.
- Es wird nun speziell auf
1 Bezug genommen, wo ein Blockdiagramm einer Beispielarchitektur (100 ) für ein Netzwerk virtualisierter Datenverarbeitungssysteme (DPS) dargestellt ist, in denen die funktionalen Aspekte der beschriebenen Ausführungsformen in vorteilhafter Weise implementiert werden können. Zur Vereinfachung soll die DPS-Netzwerkarchitektur (100 ) hier einfach als DPS100 bezeichnet werden. DPS100 weist eine Vielzahl bzw. Mehrzahl an Hostcomputern auf, von denen der primäre Host110A und der sekundäre Host110B dargestellt werden. Die Anzahl der Hostgeräte in DPS100 kann variieren, von einem einzelnen Host in einem kleineren System bis hin zu Hunderten oder Tausenden von Hostgeräten in größer skalierten Systemen. Zur Vereinfachung sollen die Ausführungsformen aus der Perspektive eines einzelnen Hostgeräts (des primären Hosts110A ) oder von zwei Hostgeräten (dem primären Host110A und dem sekundären Host110B ) beschrieben werden. In jedem Hostsystem110A –110B werden virtuelle Maschinen bereitgestellt, von denen die ersten beiden virtuellen Maschinen VM114a und VM114b sowie VM114c und VM114d hier jeweils dargestellt sind. Wie im Folgenden beschrieben, sind mit Bezugnahme auf2 die VMs114 logische Partitionen eines virtualisierten (oder im Betriebssystem partitionierten) Computingsystems. Die tatsächliche Anzahl der Clients/virtuellen Maschinen in jedem Hostgerät110 kann ohne Beschränkung variieren und von einem Client/einer virtuellen Maschine bis zu Hunderten oder Tausenden von Clients/virtuellen Maschinen reichen. Aus Effizienzgründen werden bei der Darstellung der Konzepte der Erfindung in diesem Dokument nur zwei Clients/virtuelle Maschinen auf jedem Hostgerät110 in den verschiedenen der Veranschaulichung dienenden und beschriebenen Ausführungsformen dargestellt. - DPS
100 weist auch eine verteilte (gemeinsam genutzte) Speichereinrichtung auf, auf die jedes der (Computer)-Hostsysteme/-geräte110 und die Komponenten eines Hostsystem110 zugreifen können. In einer Ausführungsform können der primäre Host110A und der sekundäre Host110B beide auf die verteilte Speichereinrichtung zugreifen. In einer anderen Ausführungsform greifen der primäre Host und der sekundäre Host auf getrennte/unterschiedene Speichereinrichtungen zu. - Jedes Hostgerät
110 in DPS100 verbindet einen verteilten Speicher150 über ein oder mehrere Netzwerke und/oder I/O-Interconnect/Switch Fabric (im Allgemeinen als Interconnect/Network Fabric170 dargestellt). In den Beschreibungen und Abbildungen wird davon ausgegangen, dass wenigstens einige der Hostgeräte (110 ) von DPS100 und der verteilte Speicher150 sich in Bezug zueinander an einem Fernstandort befinden können, was zum Beispiel auch die Positionierung in verschiedenen Ländern miteinschließt, sodass eine direkte physische Konnektivität zwischen den betreffenden Geräten nicht unbedingt erforderlich ist. Zur Vereinfachung werden die Ausführungsformen so beschrieben, dass sie über ein primäres Interconnect/Netzwerk170 verfügen, das ein privates Weitbereichsnetzwerk (WAN bzw. Wide Area Network) oder ein öffentliches WAN (wie das Internet) aufweist, obwohl auch andere Netzwerktypen (z. B. ein lokales Netzwerk) möglich sind und unterstützt werden. - Wie in einer oder mehreren Ausführungsformen dargestellt, ist jedes Hostgerät (z. B. der primäre Host
110A ) auch mit einem oder mehreren benachbarten Hostgeräten (z. B. dem sekundären Host110B ) verbunden, um eine effiziente Failover- (bzw. Ausfallsicherung bzw. Backup oder Backup-System) und/oder Mobilitätsunterstützung und andere im Folgenden beschriebenen Funktionen bereitzustellen. Wie in diesem Dokument verwendet, bezieht sich der Begriff Nachbar auf ein verbundenes zweites Hostgerät, mit dem ein erstes Hostgerät kommunizieren kann, und es referenziert ein Nachbarhostgerät, das nicht auf ein zweites Hostgerät in geografischer Nähe des ersten Hostgeräts beschränkt ist. Der primäre Host110A und der sekundäre Host110B werden als miteinander über ein Verbindungsmedium verbunden veranschaulicht, zu dem auch ein anderes Netzwerk (wie ein lokales Netzwerk)172 oder eine Art von Direktverbindung (z. B. einen Glasfaserverbindung) gehören kann, wenn sie sich physisch nahe zueinander befinden. Die Verbindung zwischen dem primären Nachbarhost110A und dem sekundären Host110B wird als Direktleitungsverbindung oder eine sekundäre Netzwerkverbindung (172 ) zwischen dem primären Host110A und dem sekundären Host110B veranschaulicht. Dabei ist aber hervorzuheben, dass die Verbindungen nicht unbedingt direkt sein müssen und tatsächlich auch über dasselbe allgemeine Interconnect/Netzwerk170 an den verteilten Speicher150 weitergeleitet werden können wie die anderen Hostsystemverbindungen. - Wie dargestellt, weist jedes Hostsystem
110 ein oder mehrere Netzwerkschnittstellen134 und einen oder mehrere I/O-Adapter (bzw. Input-Output-Adapter)132 auf, um dem Hostsystem110 und somit den anderen Komponenten (d. h. virtuellen Maschinen) des Hostsystems110 zu ermöglichen, an der Kommunikation auf Netzwerkebene teilzunehmen. Zu den Hardwarekomponenten130 des beispielhaften primären Hosts110A gehören ein oder mehrere Prozessoren (wie131A ), ein oder mehrere Hauptspeicher (wie133A ) und lokaler Speicher144 . Die Prozessoren sind mit einem oder einer Vielzahl an Hauptspeichern und mit lokalem Speicher144 über einen Bus, einem Interconnect/Switch oder einem Interconnect Fabric (bzw. System mit Verbindungskomponenten) (nicht speziell dargestellt) verbunden. Jede virtuelle Maschine, wie VM114A , erhält eine Zuordnung einer speziellen virtualisierten Hardware und OS-Ressourcen, darunter eine virtualisierte CPU105A , Hauptspeicher110A und OS114A . Die Anwendung116 wird auf der VM114A ausgeführt. Jede VM114 weist ein entsprechendes Hostbetriebssystem114 auf, das den systemnahen Zugriff auf die Hardwareschicht (130 ) des primären Hosts110A und/oder auf virtualisierte I/O-Funktionen und/oder Services steuert. Darüber hinaus wird das HAC-Dienstprogramm250 auf dem primären Host110A ausgeführt und ist für den Datenaustausch mit dem Hypervisor (HYP)125 verbunden. In einer Ausführungsform ist das HAC-Dienstprogramm250 in HYP125 integriert. In einer Ausführungsform wird eine Verwaltungskonsole175 zum Durchführen der Einrichtung und/oder Initialisierung der hier beschriebenen Checkpointing-Operationen für die einzelnen VMs114 und/oder dem Netzwerk als Ganzem in verschiedenen Ausführungsformen verwendet. - In DPS
100 ist die Single-Root-IO-Virtualization-Technologie (d. h. SR-IOV bzw. I/O-Virtualisierungstechnologie mit einer einzigen Quelle) in der Lage, den in Ausführung befindlichen virtuellen Maschinen eine Netzwerkadapterfunktionalität bereitzustellen. Im Besonderen wird die SR-IOV-Technologie eingesetzt, um dem Hostsystem (z. B. primärer Host110A ) einen einzelnen physischen Netzwerkadapter (z B. Netzwerkadapter/-schnittstelle134 ) als viele einzelne Netzwerkadapter darzustellen zu können. In einer Ausführungsform wird die große Anzahl an (konzeptionellen/virtuellen) einzelnen Netzwerkadaptern durch virtuelle Adapter/”Funktionen” dargestellt, die jeder virtuellen Maschine zugewiesen sind. In der Folge können Netzwerkressourcen mehreren virtuellen Maschinen (d. h. logischen Clientpartitionen) zugewiesen werden, die auf demselben Host ausgeführt werden, sodass jede virtuelle Maschine direkt mit der Netzwerkhardware kommunizieren kann, während die gemeinsame Nutzung des Adapters zwischen den virtuellen Maschinen weiterhin möglich ist. Darüber hinaus kennt der SR-IOV-Adapter die Existenz der verschiedenen virtuellen Maschinen und des einzelnen Datenverkehrs, der von den betreffenden virtuellen Maschinen stammt. - Mit Bezugnahme auf
2 wird nun eine andere Ansicht des beispielhaften DPS100 dargestellt, die eine Systemarchitektur200 mit virtualisierter Verarbeitung (d. h., der Architektur der einzelne Hostsysteme und im Besonderen des primären Hosts110A ) hervorhebt. Der primäre Host110A dient als Beispielshostsystem und wird ausführlicher in2 und in der gesamten Beschreibung beschrieben. Der primäre Host110A wird als Server dargestellt, der Hardwarekomponenten und Software/Firmware/BS-Komponenten aufweist, die logisch partitioniert sind, um eine Vielzahl an virtuellen Maschinenpartitionen zu erstellen, die als virtuelle Maschinen (VMs) zugewiesen werden. Die Hardwarekomponenten230 des beispielhaften primären Hosts110A umfassen ein oder mehrere Prozessoren231A –231P , ein oder mehrere Hauptspeicher233A –233M und einen lokalen Speicher234 . Die Prozessoren231A –231P sind mit einem oder einer Vielzahl an Hauptspeichern233A –233M und dem mit lokalen Speicher234 über einen Bus, einem Interconnect/Switch oder ein Interconnect Fabric (nicht speziell dargestellt) verbunden. Die spezielle interne Konnektivität der Komponenten, die über ein groß skaliertes Interconnect Fabric verteilt sein können, ist für die beschriebenen Ausführungsformen nicht relevant, und es werden keine weiteren Detailinformationen bezüglich des bestimmten Typ der Interkonnektivität zwischen den Hardwarekomponenten des Systems ausgeführt. - Ebenso sind in den Hardwarekomponenten
230 ein oder mehrere physische Netzwerkschnittstellen134 enthalten, über die der primäre Host110A mit einem externen Netzwerk, wie unter anderem das Netzwerk170 , eine Verbindung erstellt. Darüber hinaus weist die Hardwarekomponente230 eine Vielzahl an I/O-Adaptern232A –232E auf, die die I/O-Schnittstelle für den primären Host110A bereitstellen. Die I/O-Adapter232A –232E sind physische Adapter, über die der primäre Host110 über eine I/O-Schnittstelle I/O-Operationen sowohl mit lokal verbundenen wie auch mit über Fernstandorte verbundenen (vernetzten) I/O-Geräten, darunter den verteilten Speicher150 , unterstützen kann. Beispiele von I/O-Adaptern sind unter anderem Peripheral Component Interface (PCI)-, PCI-X- oder PCI Express-Adapter sowie Small Computer System Interconnect(SCSI)-Adapter. Das Hostsystem110 ist logisch partitioniert, sodass verschiedene I/O-Adapter232 virtualisiert werden, und die virtuellen I/O-Adapter können dann eindeutig verschiedenen logischen Partitionen zugewiesen werden. In einer oder mehreren Ausführungsformen werden Konfigurationsdaten, die sich auf virtuelle Adapter und andere den VMs zugewiesenen Komponenten beziehen, mit jeder VM gepflegt und können von der VM gepflegt und aktualisiert werden, wenn Änderungen an diesen Konfigurationen vorgenommen werden und wenn Adapter hinzugefügt und/oder entfernt und/oder zugewiesen werden. - Logisch über der Hardwareebene (
230 ) ist eine Virtualisierungsverwaltungskomponente angeordnet, die in einer Ausführungsform als Hypervisor (HYP)225 bereitgestellt wird. Wenngleich sie in den verschiedenen Ausführungsformen als HYP225 veranschaulicht und beschrieben wird, ist hervorzuheben, dass auch andere Arten von Virtualisierungsverwaltungskomponenten verwendet werden können und gleichermaßen auf die Implementierung der verschiedenen Ausführungsformen anwendbar sind. HYP225 verfügt über einen zugehörigen Serviceprozessor227 , der damit im Hostsystem110 verbunden ist. Mit dem Serviceprozessor227 können einer oder mehreren logischen Partitionen verschiedene Services bereitgestellt werden. HYP225 ist auch mit der Hardwareverwaltungssteuereinheit (HMC bzw. Hardware Management Controller)229 verbunden, die außerhalb des physischen Hostsystems110 vorliegt. HMC229 ist eine mögliche Implementierung der in1 veranschaulichten Verwaltungskonsole175 . Die Verwendung von HMC229 im Besondern für diese Darstellung dient nur der Illustration einer konkreten Ausführungsform unter mehreren verfügbaren Optionen. Die Operationen der verschiedenen logischen Partitionen können über die HMC229 gesteuert werden, die ein eigenes Datenverarbeitungssystem ist, über das ein Systemadministrator verschiedene Funktionen ausführen kann, wie die Neuzuweisung von Ressourcen an verschiedene logische Partitionen. Es ist wichtig, dass Merkmale, die sich auf ein Failover der OS-Partitionen (bzw. Betriebssystembereiche) beziehen und im Besonderen auf die virtuellen Maschinen und das Datenverarbeitungsnetzwerk in der vorliegenden Ausführungsform über HMC eingerichtet werden. - Der primäre Host
110A weist weiterhin eine Mehrzahl bzw. Vielzahl an virtuellen Maschinen (VMs) auf Clientebene auf, von denen die ersten beiden dargestellt sind und als einzelne VMs114A –114B im primären Host110A dargestellt sind. Gemäß der verschiedenen der Veranschaulichung dienenden Ausführungsformen unterstützt der primäre Host110A mehrere Clients und andere funktional arbeitende OS-Partitionen, die in einer virtualisierten Umgebung „erstellt” werden. Jede VM, z. B. VM114B , erhält eine Zuordnung bestimmter virtualisierter Hardware- und OS-Ressourcen, darunter die virtualisierte CPU205B , den Hauptspeicher210B , das OS214B , die lokale Firmware216 und den lokalen Speicher (LStore)218 . Gemäß der aktuell beschriebenen Ausführungsformen weist die erste VM114A einen Hauptspeicher MEM210A auf, der die Prozessorzustände262 , die Hauptspeicherseiten264 und die Checkpoint-Anwendung266 beinhaltet, die alle verwendet und/oder in Checkpoint-bezogenen Operationen mit dem sekundären Host110B ausgetauscht werden. Im Besonderen enthält der sekundäre Host110B Kopien der Hauptspeicherseiten und Prozessorzustände der ersten VM114A , wie von der vorherigen Checkpointing-Operation, wie durch die gespiegelten Prozessorzustände272 und die gespiegelten Hauptspeicherseiten274 in MEM270 veranschaulicht. MEM270 enthält auch die Checkpoint-Anwendung276 , um den sekundären Host110B die Teilnahme an Checkpoint-Operationen mit dem primären Host110A zu ermöglichen. Jede VM114 weist ein entsprechendes Hostbetriebssystem214 auf, das den systemnahen Zugriff auf die Hardwareschicht (230 ) des primären Hosts110A und/oder auf virtualisierte I/O-Funktionen und/oder Services steuert. In einer Ausführungsform kann das Betriebssystem bzw. können die Betriebssysteme mit IBM i implementiert werden, das von der International Business Machines Corporation erhältlich ist (oder einem anderen Virtualisierungsbetriebssystem), das gestaltet ist, um eine Schnittstelle mit einer Partitionsverwaltungs-Firmware, wie HYP225 , zu bilden. Es versteht sich, dass beispielsweise andere Arten von Betriebssystemen (wie das Betriebssystem Advanced Interactive Executive (AIX), ein Markenzeichen der IBM Corporation, oder GNU®/Linux®, ein eingetragenes Markenzeichen von Linus Torvalds) abhängig von einer speziellen Implementierung verwendet werden können, und IBM i nur als ein Beispiel verwendet wird. - Fachleute werden verstehen, dass die in
1 und2 dargestellte Hardware, Firmware/das Software-Dienstprogramm und die Softwarekomponenten und die Grundkonfiguration variieren können. Die der Veranschaulichung dienenden Komponenten von DPS100 und im Besonderen von denen im primären Host110A , in der ersten VM und der zweiten VM sollen nicht als erschöpfend betrachtet werden, sondern sind vielmehr repräsentativ, um einige der Komponenten hervorzuheben, die zur Implementierung bestimmter der beschriebenen Ausführungsformen verwendet werden. Zum Beispiel können verschiedene Konfigurationen der Datenverarbeitungssysteme/Hostgeräte bereitgestellt werden, die andere Geräte/Komponenten enthalten, die zusätzlich oder an Stelle der abgebildeten Hardware verwendet werden können und die unterschiedlich konfiguriert sein können. Das abgebildete Beispiel soll keine architektonischen oder anderen Beschränkungen bezüglich den aktuell beschriebenen Ausführungsformen und/oder der Erfindung im Allgemeinen implizieren. Das in verschiedenen FIG. dargestellte Hostgerät110 kann zum Beispiel ein IBM eServer pSeries-System, ein Produkt der International Business Machines Corporation in Armonk, N. Y. sein, das das Betriebssystem AIX (Advanced Interactive Executive) oder das Betriebssystem LINUX ausführt. - Gemäß den aktuell beschriebenen Ausführungsformen, wird ein High-Availability-Checkpoint-(HAC)-Dienstprogramm (
250 ) auf dem ersten Hostgerät110A (d. h. einem primären Host) ausgeführt, um die Unterstützung der Durchführung von Checkpoint-Operationen für eine bestimmte virtuelle Maschine zu ermöglichen. Darüber hinaus wird ein eigenes Modul des HAC-Dienstprogramms250 auf einem sekundären Host110B ausgeführt, um Unterstützung für Checkpoint-Operationen auf dem primären Host110A bereitzustellen. Das HAC-Dienstprogramm250 konfiguriert den Netzwerkadapter134 vor, um ausgehende Pakete von virtuellen Maschinen zu Puffern, die eine Checkpointing-Technologie einsetzen. Das HAC-Dienstprogramm250 empfängt von einer oder mehreren virtuellen Maschinen, die auf einem primären Host ausgeführt werden, Konfigurationsinformationen, die eine Angabe enthalten, ob die virtuellen Maschinen jeweils eine Checkpointing-Technologie einsetzen. Der Netzwerkadapter bestimmt, ob ein ausgehendes von einer ersten virtuellen Maschine gesendetes Netzwerkpaket von einer virtuellen Maschine stammt, die Checkpointing-Technologie einsetzt. Wenn die erste virtuelle Maschine Checkpointing-Technologie einsetzt, initiieren eine oder mehrere VMs auf dem primären Host110A Checkpoint-Operationen mit dem sekundären Host110B , um die Hauptspeicherdaten und die Aktualisierungsdaten des CPU-Zustands der ersten virtuellen Maschine auf (eine zweite virtuellen Maschine auf) einem sekundären Host110B zu spiegeln. Die Checkpointing-Operation wird vom Hypervisor und/oder Netzwerkadapter134 unterstützt, der die Kommunikation zwischen dem primären Host und dem sekundären Host110B ermöglicht. Wenn die Checkpoint-Operationen erfolgreich abgeschlossen sind, sendet das HAC-Dienstprogramm250 einen Checkpoint-Befehl an einen physischen Netzwerkadapter134 , der der virtuellen Maschine zugeordnet ist, um eine Freigabe/Übertragung der gepufferten Netzwerkpakete vom Netzwerkadapter an ein (entferntes und/oder lokales) Netzwerkziel auszulösen. Der Netzwerkadapter134 kennt (durch Verwendung der SR-IOV-Technologie) die Existenz verschiedener virtueller Maschinen und des einzelnen Datenverkehrs, der von den virtuellen Maschinen stammt. Zum Beispiel wird jeder „virtuellen Funktion”/jedem virtuellen Adapter226 eine andere MAC-Adresse zugewiesen, sodass der physische Netzwerkadapter134 die eingehenden Pakete an die korrekte virtuelle Funktion/den korrekten virtuellen Adapter226 weiterleiten kann und Interrupts (bzw. Unterbrechungsanforderungen) an die korrekte virtuelle Maschine zustellt. - Das HAC-Dienstprogramm
250 stellt Code/Programmanweisungen bereit, die auf einer oder mehreren virtuellen Prozessoressourcen von einer oder mehreren VMs114 auf Hostgeräten110 ausgeführt werden, um spezielle Funktionen bereitzustellen. Zu der Funktionalität, die bei Ausführen des HAC-Dienstprogramms250 bereitgestellt wird und die im Folgenden ausführlicher beschrieben wird gehört die folgende nicht-ausschließliche Liste: (a) Vor-Konfigurieren eines SR-IOV-Adapters, um ausgehende Netzwerkpakete zu Puffern, die von der virtuellen Maschine stammen, die Checkpointing-Technologie einsetzt; (b) Empfangen von Konfigurationsinformationen, von einer oder mehreren auf dem primären Host ausgeführten virtuellen Maschinen, die angeben, dass eine oder mehrere virtuelle Maschinen eine Checkpointing-Technologie einsetzen; (c) als Reaktion auf die Initiierung der Übertragung eines aktuellen ausgehenden Netzwerkpakets durch eine virtuelle Maschine, Bestimmen über den SR-IOV-Adapter, ob das aktuelle ausgehende Netzwerkpaket von einer virtuellen Maschine stammt, die eine Checkpointing-Technologie einsetzt; (d) als Reaktion auf die Bestimmung, dass das aktuelle ausgehende Netzwerkpaket von einer virtuellen Maschine stammt, die eine Checkpointing-Technologie einsetzt, Puffern des ausgehenden Netzwerkpakets von der virtuellen Maschine über den SR-IOV-Adapter; (e) Initiieren einer Gruppe von Checkpoint-Operationen mit einem sekundären Host; und (f) wenn eine Checkpointing-Operation erfolgreich abgeschlossen wurde, Auslösen mit einem Checkpoint-Befehl der Übertragung/Freigabe des gepufferten Netzwerkpakets vom Netzwerkadapter an ein Ziel in einem zugehörigen Netzwerk. In einer Ausführungsform werden einige der obigen Reihe an Funktionen durch den Netzwerkadapter134 in Kommunikation mit dem Hypervisor und einer oder mehreren VMs aktiviert und/oder durchgeführt. Der Netzwerkadapter134 unterstützt die Durchführung einer Checkpointing-Operation von einer oder mehreren VMs durch die Unterstützung/Ermöglichung der gegenseitigen Kommunikationen zwischen Hostgeräten. - Es wird nun auf
3 Bezug genommen, wo ein Blockdiagramm gemäß einer Ausführungsform dargestellt ist, das funktionale Komponenten eines primären Hosts und eines sekundären Hosts darstellt, wobei beide Hosts konfiguriert sind, um Checkpoint-Operationen auf dem primären Host für eine virtuelle Maschine zu ermöglichen. Ein Netzwerk an Datenverarbeitungssystemen (DPS)300 weist den primären Host110A und den sekundären Host110B auf. Im primären Host110A ist eine erste virtuelle Maschine (VM)114A vorgesehen. In der ersten VM114A sind der Hauptspeicher MEM210A und der virtuelle I/O-Adapter226 dargestellt. Der virtuelle I/O-Adapter226 weist einen dedizierten Puffer340 auf. Weiterhin ist in einer VM114A ein ausgehendes Netzwerkpaket320 dargestellt. Der primäre Host110A weist auch einen physischen Netzwerkadapter/eine Schnittstelle134 auf. Der Netzwerkadapter134 weist einen Puffer347 auf. In einer Ausführungsform steht der Puffer347 für einen globalen Puffer. Die Checkpoint-Anwendung360 ist auch im primären Host110A dargestellt. Eine SR-IOV-Technologiesoftware/ein SR-IOV-Technologiemodul343 ist ebenso beim primären Host110A angegeben. Informationen325 zum Typ der Checkpoint-Technologie und Informationen335 zur Netzwerkpaketpriorität werden auch im primären Host110A dargestellt. Weiterhin ist im primären Host110A ein Netzwerkadapter134 enthalten. In einer Ausführungsform ist der Netzwerkadapter134 konfiguriert, um die Single Root IO-Virtualisierungstechnologie (d. h. SR-IOV) zu unterstützen. SR-IOV ermöglicht, dass ein einzelner physischer Netzwerkadapter dem Hostsystem (z. B. dem primären Host110A ) als eine große Anzahl einzelner Netzwerkadapter („virtuelle Funktionen”) dargestellt wird. Diese „virtuellen Funktionen” werden als virtuelle I/O-Adapter (z. B. virtueller I/O-Adapter226 ) dargestellt. In der Folge können Netzwerkressourcen mehreren virtuellen Maschinen zugewiesen werden, die auf demselben Host ausgeführt werden, so dass jede virtuelle Maschine direkt mit der Netzwerkhardware kommunizieren kann, während der Adapter von den virtuellen Maschinen weiterhin gemeinsam genutzt werden kann. Der sekundäre Host110B weist einen Hauptspeicher MEM355 auf, der weiterhin eine Checkpoint-Anwendung276 und ein Checkpoint-Datenabbild310B aufweist. Das Checkpoint-Datenabbild310B stellt den Hauptspeicherzustand und die CPU-Zustandsinformationen und Aktualisierungen dar (zusammen als Checkpoint-Daten310A dargestellt), die der auf dem primären Host110A ausgeführten virtuellen Maschine114A (an einem vorherigen Checkpoint bzw. Kontrollpunkt) zugeordnet sind. - Das HAC-Dienstprogramm
250 wird auch im primären Host110A oder in HYP225 (in2 abgebildet) ausgeführt, um Checkpoint-bezogene Funktionen/Operationen (unterstützt durch den Netzwerkadapter134 ) bereitzustellen, um die Hochverfügbarkeit des Systems über die Pufferung der ausgehenden Netzwerkpakete320 zu ermöglichen/zu verbessern. Um Checkpoint-bezogene Funktionen bereitzustellen, konfiguriert das HAC-Dienstprogramm250 zuerst die VM114A (z. B. über die Checkpoint-Anwendung360 ), um anzugeben, ob die Checkpointing-Technologie von der ersten VM114A eingesetzt wird. In der Folge empfängt das HAC-Dienstprogramm250 Konfigurationsinformationen325 von der VM114A , wenn die VM114A Checkpointing-Technologie einsetzt. - Das HAC-Dienstprogramm
250 initiiert auf dem primären Host die Durchführung eines Checkpoints für eine erste virtuelle Maschine unmittelbar vor der Übertragung des ausgehenden Netzwerkpakets320 durch die virtuelle Maschine114 , die zuvor die Verwendung der Checkpointing-Technologie angegeben hat. In einer weiteren Ausführungsform wird auch die Initiierung eines Plattenschreibvorgangs verwendet, um die Durchführung von Checkpoints zu initiieren. Eine Netzwerkpaketübertragung oder ein Plattenschreibvorgang löst die Ausführung eines Checkpoints aus, um einen sekundären Host, der die Ausführung ab einem vorhergehenden/letzten Checkpoint wieder aufnimmt, daran zu hindern, ein Paket erneut senden oder einen Plattenschreibvorgang erneut durchführen zu müssen, wenn ein primärer Host110A zuvor ein Netzwerkpaket freigegeben hat oder einen Plattenschreibvorgang durchgeführt hat und dabei ein Fehler auftrat. Durch die Initiierung von Checkpoints über den Netzwerk I/O und Platten I/O werden Redundanzen bei der Ausführung vermieden, da Paketübertragungen und Plattenschreibvorgänge, die nach dem letzten Checkpoint aufgetreten sind, weder vom primären noch vom sekundären Host wiederholt werden. Zum Beispiel initiiert in einer Ausführungsform das HAC-Dienstprogramm250 die Durchführung des Checkpoints direkt nachdem die virtuelle Maschine den Hypervisor Call (HCALL, bzw. Hypervisor-Aufruf) an den zugrunde liegenden Hypervisor durchführt, um das Netzwerkpaket zu übertragen. - Während des Checkpoints überträgt das HAC-Dienstprogramm
250 den CPU- und Hauptspeicherzustand der ersten VM auf dem primären Host an (die zweite VM auf) dem sekundären Hostsystem (über die Checkpoint-Daten310A ), darunter Informationen bezüglich der „Intention” der virtuellen Maschine, ein Netzwerkpaket zu übertragen. Checkpoint-Daten310A werden als Checkpoint-Datenabbild310B in den Hauptspeicher355 des sekundären Hosts110B kopiert. - Es wird erneut auf die Verwendung der SR-IOV-Technologie Bezug genommen. Der SR-IOV-Adapter (z. B. Netzwerkschnittstelle/-adapter
134 ) kennt die Existenz von verschiedenen virtuellen Maschinen und des individuellen Datenverkehrs, der von den betreffenden virtuellen Maschinen stammt. In einem bestimmten Konfigurationsbeispiel kann jede „virtuelle Funktion”/virtueller I/O-Adapter226 einer anderen MAC-Adresse zugeordnet werden, damit der physische Netzwerkadapter die eingehenden Pakete an die korrekte/entsprechende „virtuelle Funktion”/virtuellen I/O-Adapter226 weiterleiten kann und Interrupts an die korrekte/entsprechende virtuelle Maschine liefert. In der Folge unterscheidet sich die SR-IOV-Adapterlösung wesentlich von den herkömmlichen virtuellen Netzwerkadapteransätzen, durch die die virtuellen Maschinen den entsprechenden Datenverkehr über einen einzigen Virtualisierungspunkt (z. B. VIOS oder einen Hypervisor) senden, der „Eigentümer” des Netzwerkadapters ist. - Der SR-ICV-Netzwerkadapter (d. h., der zur Verwendung von SR-IOV-Technologie
343 konfigurierte Netzwerkadapter134 ) ist ausgebildet, um Datenverkehr von verschiedenen virtuellen Maschinen unterschiedlich zu verarbeiten, und im Besonderen ermöglicht der SR-IOV-Netzwerkadapter durch die Verwendung des HAC-Dienstprogramms250 virtuellen Maschinen anzugeben, dass diese virtuellen Maschinen jeweils die Checkpointing-Technologie verwenden. Durch den Empfang der Angabe über die Verwendung von Checkpointing-Technologie wird dem Adapter die weitere Angabe bereitgestellt, dass eine bestimmte virtuelle Maschine „beabsichtigt”, die ausgehenden Netzwerkpakete zu Puffern, bis Checkpoints mit dem sekundären Host ausgetauscht wurden. - Der Netzwerkadapter
134 ist entweder (a) mit On-Board-Speicher (z. B. dem Hauptspeicherpuffer340 ) konfiguriert, oder (b) mit dem Zugriff auf den Systemhauptspeicher ausgestattet. Der Netzwerkadapter134 verwendet den Hauptspeicher zum Puffern ausgehender Netzwerkpakete, die von virtuellen Maschinen stammen, die zuvor die Verwendung der Checkpointing-Technologie angegeben haben. Wenn eine virtuelle Maschine angibt, dass ein Checkpoint abgeschlossen ist, beginnt der Netzwerkadapter134 die gepufferten Netzwerkpakete für diese VM in das Netzwerk hinauszusenden. - Gemäß einer Ausführungsform, um die Latenz zu minimieren, die das Checkpointing zur Übertragung im Netzwerk aufgrund des Pufferns hinzufügt, priorisiert der Netzwerkadapter
134 gepufferte Netzwerkpakete (z. B. durch Verwenden der Informationen335 zur Netzwerkpaketpriorität) gegenüber neu empfangenen Netzwerkpaketen, die von virtuellen Maschinen ohne Checkpointing stammen. In einer Ausführungsform arbeiten die Puffer (z. B. Puffer340 ) im Netzwerkadapter134 in zyklischer Weise, sodass neue Netzwerkpaket gepuffert werden können und gleichzeitig die gepufferten Netzwerkpakete des letzten Checkpoints übertragen werden. Wenn ein Puffer voll wird, wird ein Signal an die virtuellen Maschinen gesendet (z. B. über Broadcast bzw. Rundsenden von einem Punkt aus), die aktuell zum Durchführen des Checkpointings konfiguriert sind, um anzugeben, dass keine weitere Paketübertragung mehr auftreten kann, bis ein Checkpoint durchgeführt wird und der Puffer geleert werden kann. - Das HAC-Dienstprogramm
250 weist einer virtuellen Maschine114A eines oder mehrere zu von: (a) einem dedizierten Pufferbereich (bzw. Buffer Space); und (b) einem globalen Puffer (z. B. Puffer347 ), der das Speichern von verschachtelten Paketen aus mehreren virtuellen Maschinen mit Checkpointing ermöglicht. Der globale Puffer ermöglicht die automatische Übertragung von Datenverkehr, für den ein Checkpoint durchgeführt wurde, in der Reihenfolge, in der der Datenverkehr empfangen wird. Weiterhin wird der globale Puffer verwendet, um zu vermeiden, dass an den Netzwerkadapter eine Anforderung gestellt wird, zu bestimmen, welcher einer Gruppe von Checkpointing-Puffern340 einer virtuellen Maschine zuerst geleert werden soll. -
4 und5 sind Flussdiagramme, die die Verfahren veranschaulichen, durch die die obigen Prozesse der der Veranschaulichung dienenden Ausführungsform abgeschlossen werden. Obwohl das in4 und5 dargestellte Verfahren mit Bezugnahme auf Komponenten und Funktionalität beschrieben werden kann, die in Bezug auf1 –3 veranschaulicht und beschrieben werden können, versteht es sich, dass dies nur der Einfachheit halber geschieht und alternative Komponenten und/oder Konfigurationen davon mit der Implementierung der verschiedenen Verfahren verwendet werden können. Bestimmte Abschnitte der Verfahren können vom HAC-Dienstprogramm250 abgeschlossen werden, das einen oder mehrere (virtuelle) Prozessoren (CPU231 /206A ) in der VM114 (1 oder2 ) oder durch den SR-IOV-Adapter134 ausführt. Die ausgeführten Prozesse steuern dann bestimmte Operationen von oder auf den Hostgeräten110 , den VMs114 und dem SR-IOV-Adapter134 . Zur Vereinfachung der Beschreibung der Verfahren werden alle Verfahrensprozesse aus der Sicht von entweder einem/beiden des HAC-Dienstprogramms250 und des SR-IOV-Adapters134 und/oder der VM114 beschrieben. - In
4 führt eine virtuelle Maschine Checkpoint-Operationen zusammen mit der Verwendung hardwarebasierter Pufferung der Netzwerkpakete über den Netzwerkadapter gemäß einer Ausführungsform aus. Das Verfahren beginnt am Initiatorblock402 und geht zum Block404 weiter, an dem das HAC-Dienstprogramm250 den SR-IOV-Adapter134 vorkonfiguriert, um ausgehende Pakete von virtuellen Maschinen, die Checkpointing-Technologie einsetzen, zu Puffern. Die verschiedenen Typen der Checkpointing-Technologien können beispielsweise eine Zusammenstellung proprietärer Checkpoint-Softwarepakete von den jeweiligen Unternehmen sein (die verschiedene Kommunikationsprotokolle verwenden). Darüber hinaus kann die Zusammenstellung der proprietären Softwarepakete ältere und neuere Versionen (die zusätzliche/verbesserte Funktionen aufweisen) von Checkpoint-Software aus demselben Unternehmen beinhalten. In Block406 empfängt das HAC-Dienstprogramm250 Konfigurationsinformationen von einer auf einem primären Host ausgeführten virtuellen Maschine, die eine Angabe bereitstellt, dass die virtuelle Maschine die Checkpointing-Technologie einsetzt. Bei Block408 empfängt der SR-IOV-Adapter134 ein ausgehendes Netzwerkpaket von einer virtuellen Maschine. Am Entscheidungsblock410 bestimmt der SR-IOV-Adapter134 , ob das ausgehende Netzwerkpaket von einer virtuellen Maschine stammt, die Checkpointing-Technologie einsetzt. Wenn der SR-IOV-Adapter134 an einem Entscheidungsblock410 bestimmt, dass das ausgehende Netzwerkpaket nicht von einer virtuellen Maschine stammt, die Checkpointing-Technologie einsetzt, puffert der SR-IOV-Adapter134 das ausgehende Netzwerkpaket nicht, wie in Block412 gezeigt. Wenn jedoch der SR-IOV-Adapter134 am Entscheidungsblock410 bestimmt, dass das ausgehende Netzwerkpaket von einer virtuellen Maschine stammt, die Checkpointing-Technologie einsetzt, puffert der SR-IOV-Adapter134 das ausgehende Netzwerkpaket, wie in Block414 gezeigt. In einer Ausführungsform weist das HAC-Dienstprogramm250 dem Netzwerkadapter auf dem primären Host eines oder mehrere zu von: (a) einer Zuordnung von On-Board-Speicher; und (b) einem Zugriff auf den Systemhauptspeicher. Die Zuordnung des On-Board-Speichers oder der Zugriff auf den Systemhauptspeicher wird genutzt, um ausgehende Netzwerkpakete zu puffern, die von der virtuellen Maschine stammen, die zuvor die Verwendung der Checkpointing-Technologie angegeben hat. Zudem initiiert/unterstützt in Block416 ein primärer Host (der der virtuellen Maschine mit Checkpointing zugeordnet ist) über die Verwendung des HAC-Dienstprogramms250 eine Gruppe von Checkpoint-Operationen mit einem sekundären Host. Am Entscheidungsblock418 bestimmt das HAC-Dienstprogramm250 , ob die Checkpoint-Operationen erfolgreich abgeschlossen sind. Wenn am Entscheidungsblock418 das HAC-Dienstprogramm250 bestimmt, dass die Checkpoint-Operationen nicht erfolgreich abgeschlossen wurden, geht der Prozess zu Block420 weiter, an dem der primäre Host die Checkpoint-Operationen mit dem sekundären Host erneut versucht/wiederholt. Als Reaktion auf die erfolgreich abgeschlossenen Checkpoint-Operationen löst das HAC-Dienstprogramm250 die Freigabe/Übertragung der gepufferten Netzwerkpakete vom Netzwerkadapter an ein Ziel in einem zugehörigen Netzwerk aus, wie in Block422 gezeigt. In einer Ausführungsform weist das HAC-Dienstprogramm250 dem gepufferten Netzwerkpaket eine höhere Priorität zu und weist einem Netzwerkpaket, das aktuell von einer anderen virtuellen Maschine stammt, die keine Checkpointing-Technologie einsetzt, ein niedrigere Priorität zu. Das HAC-Dienstprogramm250 weist diese höhere Priorität gepufferten Netzwerkpaketen zu, um die Netzwerklatenz zu minimieren. Der Prozess endet bei Block424 . - In
5 plant ein primärer Host gemäß einer Ausführungsform mittels der Paketpriorität die Übertragung gepufferter Netzwerkpakete nach den Checkpoint-Operationen. Das Verfahren beginnt beim Initiatorblock502 und geht zu Block504 weiter, bei dem der SR-IOV-Adapter134 die ersten ausgehenden Netzwerkpakete von einer ersten virtuellen Maschine, die für das Checkpointing konfiguriert ist, puffert. In Block506 ordnet der SR-IOV-Adapter134 dem gepufferten ersten Netzwerkpaket von der ersten virtuellen Maschine eine hohe Priorität zu. In Block508 empfängt der SR-IOV-Adapter134 zweite ausgehende Netzwerkpakete von einer zweiten virtuellen Maschine, die nicht für das Checkpointing konfiguriert ist. In Block510 puffert der SR-IOV-Adapter134 das zweite Netzwerkpaket von der zweiten virtuellen Maschine. In Block512 weist der SR-IOV-Adapter134 dem zweiten gepufferten Netzwerkpaket von der zweiten virtuellen Maschine eine niedrige Priorität zu. In Block514 plant der SR-IOV-Adapter134 das erste gepufferte Netzwerkpaket von der ersten virtuellen Maschine vor dem zweiten gepufferten Netzwerkpaket der zweiten virtuellen Maschine basierend auf einer höheren Priorität des ersten gepufferten Netzwerkpakets für die Übertragung ein (nach einem erfolgreichen Abschluss der Checkpoint-Operationen, die der ersten virtuellen Maschine zugeordnet sind). Der Prozess endet bei Block516 . - Das Flussdiagramm und die Blockdiagramme, die in diesem Dokument in den verschiedenen Figuren dargestellt und beschrieben werden, veranschaulichen die Architektur, Funktionalität und Operation der möglichen Implementierungen der Systeme, Verfahren und Computerprogrammprodukte gemäß verschiedener Ausführungsformen der vorliegenden Erfindung. In dieser Hinsicht kann jeder Block in den Flussdiagrammen oder Blockdiagrammen ein Modul, ein Segment oder einen Codeabschnitt darstellen, der eine oder mehrere ausführbare Anweisungen zur Implementierung der angegebenen logischen Funktion(en) aufweist. Es sollte ebenso beachtet werden, dass in einigen alternativen Implementierungen die im Block angegebenen Funktionen nicht in der in den FIG. angegeben Reihenfolge auftreten können. Zum Beispiel können in Abhängigkeit von der beinhalteten Funktionalität zwei aufeinanderfolgende Blöcke im Wesentlichen gleichzeitig ausgeführt werden, oder Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden. Es sollte auch beachtet werden, dass jeder Block in den Blockdiagramm- und/oder Flussdiagrammabbildungen und den Kombinationen der Blöcke in den Blockdiagramm- und/oder Flussdiagrammabbildungen durch hardwarebasierte Spezialsysteme, die die angegebenen Funktionen oder Vorgänge ausführen, oder Kombinationen von Spezialhardware und Computeranweisungen implementiert werden kann.
- Im obigen Flussdiagramm sind ein oder mehrere der Verfahren in einem computerlesbaren Medium, das computerlesbaren Code enthält, enthalten, sodass eine Reihe von Schritten ausgeführt wird, wenn der computerlesbare Code auf einem Computinggerät (durch die Verarbeitungseinheit) ausgeführt wird. Bei einigen Implementierungen werden bestimmte Prozesse der Verfahren kombiniert, gleichzeitig oder in einer anderen Reihenfolge ausgeführt oder möglicherweise weggelassen, ohne dass vom Geist und Umfang der Erfindung abgewichen wird. Daher soll, wenngleich die Verfahrensprozesse in einer bestimmten Folge beschrieben und veranschaulicht werden, die Verwendung einer bestimmten Prozessabfolge in keiner Weise als Einschränkung gegenüber der Erfindung interpretiert werden. Änderungen können bezüglich der Abfolge der Prozesse erfolgen, ohne vom Geist oder Umfang der vorliegenden Erfindung abzuweichen. Die Verwendung einer bestimmten Abfolge soll daher nicht in einem einschränkenden Sinne betrachtet werden, und der Umfang der vorliegenden Erfindung wird auf die angehängten Ansprüche und deren Entsprechungen erweitert.
- Fachleute werden verstehen, dass Aspekte der vorliegenden Erfindung als System, Verfahren oder Computerprogrammprodukt ausgeführt werden können. Demgemäß können Aspekte der vorliegenden Erfindung die Form einer reinen Hardware-Ausführungsform annehmen, einer reinen Software-Ausführungsform (einschließlich Firmware, speicherresidenter Software, Microcode usw.) oder einer Ausführungsform, die Software- und Hardwareaspekte vereint, die alle im Allgemeinen hier als „Schaltkreis”, „Modul” oder „System” bezeichnet werden können. Weiterhin können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem computerlesbaren Medium oder mehreren computerlesbaren Medien, die computerlesbaren Programmcode enthalten, enthalten ist.
- Jede Kombination aus einem computerlesbaren Medium oder mehreren computerlesbaren Medien kann verwendet werden. Das computerlesbare Medium kann ein Medium mit einem computerlesbaren Signal oder ein computerlesbares Speichermedium sein. Ein computerlesbares Speichermedium kann zum Beispiel, ohne darauf beschränkt zu sein, ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, -vorrichtung, -gerät oder jede geeignete Kombination aus den Vorhergehenden sein. Zu den weiteren speziellen Beispielen (eine nicht erschöpfende Liste) von computerlesbaren Speichermedien gehören folgende: eine elektrische Verbindung mit einen oder mehreren Kabeln, eine tragbare Computerdiskette, eine Festplatte, Direktzugriffsspeicher (RAM bzw. Random Access Memory), Nur-Lese-Speicher (ROM bzw. Read-only Memory), ein löschbarer programmierbarer Festspeicher (EPROM- oder Flash-Speicher), eine Glasfaser, ein tragbarer Compact-Disc-Speicher (CD-ROM bzw. Compact Disc Read-only Memory), eine optische Speichervorrichtung, eine magnetische Speichervorrichtung oder jede geeignete Kombination des Vorhergehenden. Im Kontext dieses Dokuments kann ein computerlesbares Speichermedium jedes materielle Medium sein, das ein Programm für die Verwendung durch oder in Verbindung mit einem Anweisungsausführungssystem, einer Anweisungsausführungsvorrichtung oder einem Anweisungsausführungsgerät speichern kann.
- Zu den computerlesbaren Signalmedien kann ein weitergeleitetes Datensignal mit computerlesbarem Programmcode darin gehören, zum Beispiel im Basisband oder als Teil einer Trägerwelle. Solch ein weitergeleitetes Signal kann eine beliebige einer Vielzahl an Formen annehmen, einschließlich aber nicht beschränkt auf elektromagnetische, optische oder jede geeignete Kombination davon. Ein computerlesbares Signalmedium kann ein beliebiges computerlesbares Medium sein, das kein computerlesbares Speichermedium ist und das ein Programm zur Verwendung oder in Verbindung mit einem Anweisungsausführungssystem, einer Anweisungsausführungsvorrichtung oder einem Anweisungsausführungsgerät kommunizieren, weiterleiten oder transportieren kann.
- Auf einem computerlesbaren Medium enthaltener Programmcode kann mit jedem angemessenen Medium übertragen werden, darunter, ohne darauf beschränkt zu sein, Funk, Kabel, Glasfaser, HF oder jede geeignete Kombination aus dem vorhergehenden. Computerprogrammcode zum Ausführen der Operationen für Aspekte der vorliegenden Erfindung kann in jeder Kombination einer oder mehreren Sprachen geschrieben sein, darunter objektorientierte Programmiersprachen wie Java, Smalltalk, C++ oder Ähnliches und herkömmliche Programmiersprachen, wie die Programmiersprache „C” oder ähnliche Programmiersprachen. Der Programmcode kann ganz auf dem Rechner des Benutzers ausgeführt werden, teilweise auf dem Rechner des Benutzers, als eigenständiges Softwarepaket teilweise auf dem Rechner des Benutzers und teilweise auf einem entfernten Computer oder ganz auf dem entfernten Computer oder Server. Im letzteren Szenario kann der Ferncomputer mit dem Computer eines Benutzers über jede Art von Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN bzw. Local Area Network) oder ein Fernnetzwerk (WAN bzw. Wide Area Network), oder die Verbindung kann zu einem externen Computer hergestellt werden (zum Beispiel über das Internet mit einem Internetdienstanbieter).
- Aspekte der vorliegenden Erfindung werden im Folgenden mit Bezugnahme auf Flussdiagrammabbildungen und/oder Blockdiagramme von Verfahren, Vorrichtungen (Systeme) und Computerprogrammprodukten gemäß den Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Flussdiagrammabbildungen und/oder Blockdiagramme und Kombinationen der Blöcke in den Flussdiagrammabbildungen und/oder Blockdiagrammen durch Computerprogrammanweisungen implementiert werden kann. Diese Computerprogrammanweisungen können einem Prozessor eines Standardcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, sodass die Anweisungen, die über den Prozessor des Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, Mittel zur Implementierung der im Flussdiagramm und/oder Blockdiagrammblock bzw. -blöcken angegebenen Funktionen/Vorgänge erstellen.
- Diese Computerprogrammanweisungen können auch in einem computerlesbaren Medium gespeichert werden, das einen Computer, eine anderen programmierbare Datenverarbeitungsvorrichtung oder andere Geräte anweisen kann, in einer bestimmten Weise zu funktionieren, sodass die im computerlesbaren Medium gespeicherten Anweisungen ein Produkt erstellen, das Anweisungen aufweist, die die Funktion/den Vorgang implementieren, der/die im Flussdiagramm und/oder Blockdiagrammblock bzw. -blöcke angegeben sind. Die Computerprogrammanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Geräte geladen werden, um die Durchführung einer Reihe operativer Schritte auf dem Computer oder anderen programmierbaren Vorrichtungen oder anderen Geräten zu veranlassen, um einen computerimplementierten Prozess zu erzeugen, sodass die auf dem Computer oder der programmierbaren Vorrichtung ausgeführten Anweisungen die Prozesse zum Implementieren der Funktionen/Vorgänge bereitstellen, die in dem Flussdiagramm und/oder Blockdiagrammblock bzw. -blocken angegeben sind.
- Weiter ist hervorzuheben, dass die Prozesse in den Ausführungsformen der vorliegenden Erfindung mit einer beliebigen Kombination aus Software, Firmware oder Hardware implementiert werden können. Als vorbereitender Schritt zur Verwirklichung der Erfindung in Software wird der Programmiercode (unabhängig davon, ob es sich um Software oder Firmware handelt) in der Regel auf einem oder mehreren maschinenlesbaren Speichermedien gespeichert, wie Festplatten, Disketten, optische Platten, Magnetband, Halbleiterspeicher wie ROMs, PROMs usw., wodurch ein Produkt gemäß der Erfindung entsteht. Das Produkt mit dem Programmcode wird entweder durch Ausführen des Codes direkt vom Speichergerät, durch Kopieren des Codes vom Speichergerät auf ein anderes Speichergerät wie eine Festplatte, RAM usw. oder durch Übertragen des Codes zur Fernausführung mit einem Medium des Übertragungstyps wie digitale und analoge Kommunikationslinks verwendet. Die Verfahren der Erfindung können durch Kombination von einem oder mehreren maschinenlesbaren Speichergeräten, die Code enthalten, gemäß der vorliegenden Erfindung mit der geeigneten Verarbeitungshardware, die den darin enthaltenen Code ausführt, verwirklicht werden. Eine Vorrichtung zur Verwirklichung der Erfindung kann ein oder mehrere Verarbeitungsgeräte und Speichersysteme aufweisen, die ein gemäß der Erfindung kodiertes Programm oder gemäß der Erfindung kodierte Programme enthalten oder einen Netzwerkzugriff darauf haben.
- Daher ist es wichtig, während eine veranschaulichende Ausführungsform der vorliegenden Erfindung im Kontext eines voll funktionsfähigen Computersystems (Server) mit installierter (oder ausgeführter) Software beschrieben wird, dass Fachleute verstehen, dass die Softwareaspekte einer veranschaulichenden Ausführungsform der vorliegenden Erfindung dazu ausgebildet sind, als Programmprodukt in verschiedenen Formen verteilt zu werden und dass eine der Veranschaulichung dienende Ausführungsform der vorliegenden Erfindung unabhängig von dem bestimmten Typ des Mediums, mit dem die Verteilung tatsächlich ausgeführt wird, gleichermaßen gilt.
- Während die Erfindung mit Bezugnahme auf beispielhafte Ausführungsformen beschrieben wurde, werden Fachleute verstehen, dass verschiedene Änderungen vorgenommen werden können und Entsprechungen für Elemente als Ersatz verwendet werden können, ohne vom Umfang der Erfindung abzuweichen. Darüber hinaus können viele Veränderungen vorgenommen werden, um ein bestimmtes System, ein bestimmtes Gerät oder eine bestimmte Komponente davon an die erfindungsgemäße Lehre anzupassen, ohne vom wesentlichen Umfang davon abzuweichen. Daher ist es beabsichtigt, dass die Erfindung nicht auf bestimmte Ausführungsformen beschränkt ist, die zur Ausführung dieser Erfindung offengelegt werden, sondern alle Ausführungsformen beinhaltet, die in den Umfang der angehängten Ansprüche fallen. Zudem bezeichnet die Verwendung der Begriffe erstes, zweites, drittes etc. keine Reihenfolge oder die Wichtigkeit, sondern die Begriffe erstes, zweites, drittes etc. werden zur Unterscheidung eines Elements von einem anderen verwendet.
- Die hier verwendete Terminologie dient dem Zweck, nur bestimmte Ausführungsformen zu beschreiben und ist nicht dazu gedacht, die Erfindung einzuschränken. Wie hier verwendet, sind die Singularformen „ein”, „eine” und „der”, „die” „das” dazu gedacht, auch die Pluralformen einzuschließen, sofern der Kontext dies nicht klar anders angibt. Es versteht sich, dass der Begriff „aufweist” oder „aufweisend”, wenn er in dieser Beschreibung verwendet wird, zur Angabe des Vorhandenseins angegebener Merkmale, Ganzzahlen, Schritte und/oder Komponenten verwendet wird, dies aber nicht das Vorhandensein oder das Hinzufügen eines oder mehrerer Merkmale, einer oder mehrerer Ganzzahlen, einer oder mehrerer Schritte, einer oder mehrerer Komponenten und/oder einer oder mehrerer Gruppen hiervon ausschließt.
- Die zugehörigen Strukturen, Materialien, Vorgänge und Entsprechungen aller Mittel oder Schritte plus Funktionselemente in den folgenden Ansprüchen sind dazu gedacht, jede beliebige Struktur, jedes beliebige Material oder jeden beliebigen Vorgang einzuschließen, um die Funktion in Kombination mit anderen beanspruchten Elementen wie im Besonderen beansprucht durchzuführen. Die Beschreibung der vorliegenden Erfindung wurde zum Zwecke der Veranschaulichung und Beschreibung dargelegt, es ist aber nicht beabsichtigt, dass sie erschöpfend oder auf die offengelegte Form der Erfindung beschränkt ist. Für Fachleute werden viele Veränderungen und Variationen ersichtlich sein, ohne dabei vom Umfang der Erfindung abzuweichen. Die Ausführungsform wurde gewählt und in der Reihenfolge beschrieben, um die Prinzipien der Erfindung und der praktischen Anwendung am besten zu erklären und um anderen Fachleuten zu ermöglichen, die Erfindung in verschiedenen Ausführungsformen mit verschiedenen Änderungen zu verstehen, wie sie für die bestimmte vorgesehene Verwendung geeignet sind.
Claims (15)
- Ein Betriebsverfahren eines Datenverarbeitungssystems, das aufweist einen Prozessor, einen mit dem Prozessor verbundenen Hauptspeicher, wenigstens einen Eingabe/Ausgabe(I/O)-Adapter, der eine Verbindung zu einem externen Netzwerk ermöglicht, und eine Virtualisierungsverwaltungskomponente, die im Datenverarbeitungssystem ausgeführt wird und die (a) eine Mehrzahl an Betriebssystempartitionen (OS) erzeugt, wobei das Verfahren aufweist: Empfangen am physischen Netzwerkadapter von Konfigurationsinformationen, die eine Angabe bereitstellen, dass eine oder mehrere virtuelle Maschinen jeweils eine Checkpointing-Technologie verwenden; Empfangen am physischen Netzwerkadapter von einem oder mehreren ausgehenden Netzwerkpaketen von einer ersten virtuellen Maschine; wobei der physische Netzwerkadapter als Reaktion auf den Empfang der ausgehenden Netzwerkpakete von der ersten virtuellen Maschine durch den physischen Netzwerkadapter: bestimmt, ob die virtuelle Maschine, von der das ausgehende Netzwerkpaket stammt, eine Checkpointing-Technologie einsetzt; und als Reaktion auf eine Bestimmung, dass die virtuelle Maschine, von der das ausgehende Netzwerkpaket stammt, eine Checkpointing-Technologie einsetzt, die ausgehenden Netzwerkpakete puffert; eine Benachrichtigung empfängt, dass eine Checkpointing-Operation erfolgreich abgeschlossen wurde; und als Reaktion auf den Empfang der Benachrichtigung, dass die Checkpointing-Operation erfolgreich abgeschlossen wurde, eine Übertragung des gepufferten Netzwerkpaketes vom Netzwerkadapter an ein Ziel in einem zugehörigen Netzwerk auslöst.
- Das Verfahren gemäß Anspruch 1, das weiterhin aufweist: Unterstützen einer Durchführung einer Checkpointing-Operation, in der Zustandsinformationen der ersten virtuellen Maschine, von der das ausgehende Netzwerkpaket stammt, mit einer zweiten virtuellen Maschine auf einem sekundären Host synchronisiert werden, wobei die Unterstützung aufweist: Weiterleiten von Hauptspeicher- und CPU-Zustandsinformationen, die der ersten virtuellen Maschine zugeordnet sind, an die zweite virtuelle Maschine auf dem sekundären Host, der als Backup für den Fall eines Ausfalls des primären Hosts genutzt werden soll; und Bereitstellen einer Angabe einer erwarteten Übertragung der ausgehenden Netzwerkpakete für den sekundären Host.
- Das Verfahren gemäß Anspruch 1, das weiterhin aufweist: Zuweisen einer höheren Priorität an gepufferte Netzwerkpakete, die von einer virtuellen Maschine stammen, die Checkpointing-Technologie nutzt; und Zuweisen einer niedrigeren Priorität an ein Netzwerkpaket, das aktuell von einer anderen virtuellen Maschine stammt, die keine Checkpointing-Technologie nutzt; und Bestimmen einer Planung der Paketübertragung unter Verwendung einer einem Netzwerkpaket zugewiesenen Priorität; wobei die dem gepufferten Netzwerkpaket zugewiesene höhere Priorität eine Netzwerklatenz minimiert.
- Das Verfahren gemäß Anspruch 1, wobei das Puffern weiterhin aufweist: Vorab-Zuweisen an den Netzwerkadapter auf dem primären Host eines oder mehrerer von: (a) einer Zuordnung von On-Board-Speicher; und (b) einem Zugriff auf einen Systemhauptspeicher; und Puffern der ausgehenden Netzwerkpakete, die von der virtuellen Maschine stammen, die die Verwendung der Checkpointing-Technologie angegeben hat, unter Nutzung der Zuordnung von On-Beard-Speicher und des Zugriffes auf den Systemspeicher.
- Das Verfahren gemäß Anspruch 1, das weiterhin aufweist: Zuweisen an die virtuelle Maschinen eines oder mehrerer von: (a) einem dedizierten Pufferbereich; und (b) einem globalen Puffer, der ein Speichern von verschachtelten Paketen aus mehreren virtuellen Maschinen mit Checkpointing ermöglicht; wobei der globale Puffer eine automatische Übertragung gepufferter Netzwerkpakete in einer Reihenfolge ermöglicht, in der die gepufferten Netzwerkpakete empfangen werden; und wobei der globale Puffer verwendet wird, um zu vermeiden, dass an den Netzwerkadapter eine Anforderung gestellt wird, zu bestimmen, welcher einer Gruppe von Checkpointing-Puffer einer virtuellen Maschine zuerst geleert werden soll.
- Das Verfahren gemäß Anspruch 1, das weiterhin aufweist: Konfigurieren von Puffern, die dem physischen Netzwerkadapter zugeordnet sind, um eine zyklische Operation bereitzustellen, wobei es durch diese zyklische Operation möglich wird, neue Netzwerkpakete zu Puffern und gleichzeitig gepufferte Netzwerkpakete aus einer zuvor ausgeführten Checkpoint-Operation zu übertragen; Erfassen, wenn ein Puffer voll wird; und als Reaktion darauf, wenn der Puffer voll wird, Senden einer Benachrichtigung an eine oder mehrere virtuelle Maschinen, die Checkpointing-Technologie einsetzen, um anzugeben, dass eine weitere Paketübertragung angehalten wird, bis eine andere Checkpointing-Operation abgeschlossen ist, wobei die Puffer durch Abschluss der weiteren Checkpointing-Operation geleert werden können.
- Eine Datenverarbeitungsvorrichtung, die aufweist: einen Prozessor; eine Eingabe-/Ausgabe(I/O)-Schnittstelle, die mit einem externen Netzwerk verbunden ist; einen physischen Netzwerkadapter, der die SR-IOV-Technologie implementiert; und einen mit dem Prozessor verbundener Hauptspeicher, wobei der Hauptspeicher aufweist: einen Hypervisor; eine Checkpoint-Anwendung; eine Mehrzahl an Betriebssystem(OS)-Partitionen; eine Mehrzahl an virtuellen Maschinen (VMs); und ein Dienstprogramm, dessen Ausführung auf dem Prozessor den physischen Netzwerkadapter veranlasst zum: Empfangen von Konfigurationsinformationen, die eine Angabe bereitstellen, dass eine oder mehrere virtuelle Maschinen jeweils eine Checkpointing-Technologie einsetzen; Empfangen am physischen Netzwerkadapter von einem oder mehreren ausgehenden Netzwerkpaketen von einer ersten virtuellen Maschine; wobei der physische Netzwerkadapter als Reaktion auf den Empfang des ausgehenden Netzwerkpaketes von der ersten virtuellen Maschine durch den physischen Netzwerkadapter: bestimmt, ob die virtuelle Maschine, von der das ausgehende Netzwerkpaket stammt, eine Checkpointing-Technologie einsetzt; und als Reaktion auf eine Bestimmung durch den physischen Netzwerkadapter, dass die virtuelle Maschine, die das ausgehende Netzwerkpaket erstellt hat, eine Checkpointing-Technologie einsetzt, die ausgehenden Netzwerkpakete puffert; eine Benachrichtigung empfängt, dass eine Checkpointing-Operation erfolgreich abgeschlossen wurde; und als Reaktion auf den Empfang der Benachrichtigung, dass die Checkpointing-Operation erfolgreich abgeschlossen wurde, eine Übertragung des gepufferten Netzwerkpakets vom Netzwerkadapter an ein Ziel in einem zugehörigen Netzwerk auslöst.
- Die Datenverarbeitungsvorrichtung gemäß Anspruch 7, wobei weiterhin der physische Adapter eine Durchführung einer Checkpointing-Operation ermöglicht, in der Zustandsinformationen der ersten virtuellen Maschine, von der das ausgehende Netzwerkpaket stammt, mit einer zweiten virtuellen Maschine auf einem sekundären Host synchronisiert werden, durch: Weiterleiten von Hauptspeicher- und CPU-Zustandsaktualisierungen, die der ersten virtuellen Maschine zugeordnet sind, an den sekundären Host, der als Backup für den Fall eines Ausfalls des primären Hosts genutzt werden soll; und Bereitstellen einer Angabe einer erwarteten Übertragung der ausgehenden Netzwerkpakete für den sekundären Host.
- Die Datenverarbeitungsvorrichtung gemäß Anspruch 7, die weiterhin Funktionen aufweist zum: Zuweisen einer höheren Priorität an gepufferte Netzwerkpakete, die von einer virtuellen Maschine stammen, die Checkpointing-Technologie einsetzt; und Zuweisen einer niedrigeren Priorität an ein Netzwerkpaket, das aktuell von einer anderen virtuellen Maschine stammt, die keine Checkpointing-Technologie nutzt; und Bestimmen einer Planung einer Paketübertragung unter Verwendung einer einem Netzwerkpaket zugeordneten Priorität; wobei die dem gepufferten Netzwerkpaket zugeordnete höhere Priorität eine Netzwerklatenz minimiert.
- Die Datenverarbeitungsvorrichtung gemäß Anspruch 7, wobei die Funktionen zum Puffern weiterhin Funktionen aufweisen zum: Vorab-Zuweisen an den Netzwerkadapter auf dem primären Host eines oder mehrerer von: (a) einer Zuordnung von On-Board-Speicher; und (b) einem Zugriff auf einen Systemhauptspeicher; und Puffern der ausgehenden Netzwerkpakete, die von der virtuellen Maschine stammen, die die Verwendung von Checkpointing-Technologie angegeben hat, unter Nutzung der Zuordnung von On-Board-Speicher und des Zugriffes auf den Systemspeicher.
- Die Datenverarbeitungsvorrichtung gemäß Anspruch 7, die weiterhin Funktionen aufweist zum: Zuweisen an die virtuelle Maschinen eines oder mehrerer: (a) einem dedizierten Pufferbereich; und (b) einem globalen Puffer, der ein Speichern von verschachtelten Paketen aus mehreren virtuellen Maschinen mit Checkpointing ermöglicht; wobei der globale Puffer die automatische Übertragung der gepufferten Netzwerkpakete in einer Reihenfolge ermöglicht, in der die gepufferten Netzwerkpakete empfangen werden; und wobei der globale Puffer verwendet wird, um die zu vermeiden, dass an den Netzwerkadapter eine Anforderung gestellt wird, zu bestimmen, welcher einer Gruppe von Checkpointing-Puffer einer virtuellen Maschine zuerst geleert werden soll.
- Die Datenverarbeitungsvorrichtung gemäß Anspruch 7, die weiterhin Funktionen aufweist zum: Konfigurieren von Puffern, die dem physischen Netzwerkadapter zugeordnet sind, um eine zyklische Operation bereitzustellen, wobei es durch diese zyklische Operation ermöglicht wird, neue Netzwerkpakete zu puffern und gleichzeitig gepufferte Netzwerkpakete aus einer zuvor ausgeführten Checkpoint-Operation zu übertragen; Erfassen, wenn ein Puffer voll wird; und als Reaktion darauf, dass der Puffer voll wird, eine Benachrichtigung an eine oder mehrere virtuelle Maschinen zu senden, die die Checkpointing-Technologie einsetzen, um anzugeben, dass die weitere Paketübertragung angehalten wird, bis eine andere Checkpointing-Operation abgeschlossen ist, wobei durch Abschluss der weiteren Checkpointing-Operation ermöglicht wird, die Puffer zu leeren.
- Ein Computerprogrammprodukt, aufweisend: ein computerlesbares Speichermedium; und Programmcode auf dem computerlesbaren Speichermedium, der bei der Ausführung durch einen Prozessor im Datenverarbeitungssystem, das einen Prozessor, einen mit dem Prozessor verbundenen Hauptspeicher, wenigstens einen Eingabe/Ausgabe(I/O)-Adapter, der die Verbindung zu einem externen Netzwerk ermöglicht, und eine Virtualisierungsverwaltungskomponente, die im Datenverarbeitungssystem ausgeführt wird, aufweist und das eine Vielzahl an Betriebssystem(OS)-Partitionen bereitstellt und bewirkt, dass der physische Netzwerkadapter Funktionen bereitstellt zum: Empfangen von Konfigurationsinformationen, die eine Angabe bereitstellen, dass eine oder mehrere virtuelle Maschinen jeweils eine Checkpointing-Technologie verwenden; Empfangen am physischen Netzwerkadapter von einem oder mehreren ausgehenden Netzwerkpaketen von einer ersten virtuellen Maschine; der physische Netzwerkadapter als Reaktion auf den Empfang des ausgehenden Netzwerkpakets von der ersten virtuellen Maschine durch den physischen Netzwerkadapter: bestimmt, ob die virtuelle Maschine, von der das ausgehende Netzwerkpaket stammt, eine Checkpointing-Technologie einsetzt; und als Reaktion auf eine Bestimmung durch den physischen Netzwerkadapter, dass die virtuelle Maschine, von der das ausgehende Netzwerkpaket stammt, eine Checkpointing-Technologie einsetzt, die ausgehenden Netzwerkpakete puffert; eine Benachrichtigung empfängt, dass eine Checkpointing-Operation erfolgreich abgeschlossen wurde; und als Reaktion auf den Empfang der Benachrichtigung, dass die Checkpointing-Operation erfolgreich abgeschlossen wurde, die Übertragung des gepufferten Netzwerkpakets vom Netzwerkadapter an ein Ziel in einem zugehörigen Netzwerk auslöst.
- Computerprogrammprodukt gemäß Anspruch 13, das weiterhin die Unterstützung der Durchführung einer Checkpointing-Operation aufweist, in der Zustandsinformationen der ersten virtuellen Maschine, von der das ausgehende Netzwerkpaket stammt, mit einer zweiten virtuellen Maschine auf einem sekundären Host synchronisiert werden, durch: Weiterleiten von Hauptspeicher- und CPU-Zustandsaktualisierungen, die der ersten virtuellen Maschine zugeordnet sind, an den sekundären Host, der als Backup für den Fall eines Ausfalls des primären Hosts genutzt werden soll; und Bereitstellen einer Angabe einer erwarteten Übertragung des ausgehenden Netzwerkpakets für den sekundären Host, und/oder wobei der Programmcode zum Puffern weiterhin Programmcode aufweist zum: Vorab-Zuweisen an den Netzwerkadapter auf dem primären Host eines oder mehrerer von: (a) einer Zuordnung von On-Board-Speicher; und (b) einen Zugriff auf den Systemhauptspeicher; und Puffern der ausgehenden Netzwerkpakete, die von der virtuellen Maschine stammen, die die Verwendung der Checkpointing-Technologie angegeben hat, Nutzen der Zuordnung von On-Board-Speicher und des Zugriffes auf den Systemspeicher.
- Das Computerprogrammprodukt gemäß Anspruch 13, das weiterhin Programmcode aufweist zum: Zuweisen einer höheren Priorität an gepufferte Netzwerkpakete, die von einer virtuellen Maschine stammen, die Checkpointing-Technologie einsetzt; und Zuweisen einer niedrigeren Priorität an ein Netzwerkpaket, das aktuell von einer anderen virtuellen Maschine stammt, die keine Checkpointing-Technologie einsetzt; und Bestimmen der Planung der Paketübertragung unter Verwendung einer einem Netzwerkpaket zugewiesenen Priorität; wobei die dem gepufferten Netzwerkpaket zugeordnete höhere Priorität die Netzwerklatenz minimiert. und/oder weiterhin Programmcode aufweist zum: Zuweisen an die virtuelle Maschinen eines oder mehrerer von: (a) einem dedizierten Pufferbereich; und (b) einem globalen Puffer, der das Speichern von verschachtelten Paketen aus mehreren virtuellen Maschinen mit Checkpointing ermöglicht; wobei der globale Puffer die automatische Übertragung der gepufferten Netzwerkpakete in einer Reihenfolge ermöglicht, in der die gepufferten Netzwerkpakete empfangen werden; und wobei der globale Puffer verwendet wird, um die zu vermeiden, dass an den Netzwerkadapter eine Anforderung gestellt wird, zu bestimmen, welcher einer Gruppe von Checkpointing-Puffer einer virtuellen Maschine zuerst geleert werden soll, und/oder weiterhin Programmcode aufweist zum: Konfigurieren von Puffern, die dem physischen Netzwerkadapter zugeordnet sind, um eine zyklische Operation bereitzustellen, wobei durch diese zyklische Operation ermöglicht wird, neue Netzwerkpakete zu Puffern und gleichzeitig gepufferte Netzwerkpakete aus einer zuvor ausgeführten Checkpoint-Operation zu übertragen; Erfassen, wenn ein Puffer voll wird; und als Reaktion darauf, wenn der Puffer voll wird, eine Benachrichtigung an eine oder mehrere virtuelle Maschinen zu senden, die die Checkpointing-Technologie einsetzen, um anzugeben, dass die weitere Paketübertragung angehalten wird, bis eine andere Checkpointing-Operation abgeschlossen ist, wobei durch Abschluss der weiteren Checkpointing-Operation ermöglicht wird, die Puffer zu leeren.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/184,740 | 2011-07-18 | ||
US13/184,740 US8769533B2 (en) | 2011-07-18 | 2011-07-18 | Check-point based high availability: network packet buffering in hardware |
Publications (2)
Publication Number | Publication Date |
---|---|
DE102012212511A1 true DE102012212511A1 (de) | 2013-01-24 |
DE102012212511B4 DE102012212511B4 (de) | 2019-03-21 |
Family
ID=46396871
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102012212511.6A Active DE102012212511B4 (de) | 2011-07-18 | 2012-07-17 | Betriebsverfahren eines Datenverarbeitungssystems, Datenverarbeitungsvorrichtung und Computerprogrammprodukt zum Bereitstellen einer Checkpoint-basierten Hochverfügbarkeit mit Netzwerkpaketpufferung in der Hardware |
Country Status (5)
Country | Link |
---|---|
US (1) | US8769533B2 (de) |
CN (1) | CN102891882B (de) |
CA (1) | CA2776184C (de) |
DE (1) | DE102012212511B4 (de) |
GB (1) | GB2493047B (de) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8782434B1 (en) | 2010-07-15 | 2014-07-15 | The Research Foundation For The State University Of New York | System and method for validating program execution at run-time |
US9122873B2 (en) | 2012-09-14 | 2015-09-01 | The Research Foundation For The State University Of New York | Continuous run-time validation of program execution: a practical approach |
US9069782B2 (en) | 2012-10-01 | 2015-06-30 | The Research Foundation For The State University Of New York | System and method for security and privacy aware virtual machine checkpointing |
US9032248B1 (en) * | 2012-10-04 | 2015-05-12 | Amazon Technologies, Inc. | Memory write tracking for virtual machines |
US9069594B1 (en) * | 2012-12-27 | 2015-06-30 | Emc Corporation | Burst buffer appliance comprising multiple virtual machines |
US9280371B2 (en) * | 2013-07-10 | 2016-03-08 | International Business Machines Corporation | Utilizing client resources during mobility operations |
US9471491B2 (en) | 2013-11-06 | 2016-10-18 | International Business Machines Corporation | Cache configured to log addresses of high-availability data |
US9288135B2 (en) * | 2013-12-13 | 2016-03-15 | International Business Machines Corporation | Managing data flows in software-defined network using network interface card |
US20150205688A1 (en) * | 2013-12-30 | 2015-07-23 | Stratus Technologies Bermuda Ltd. | Method for Migrating Memory and Checkpoints in a Fault Tolerant System |
ES2652262T3 (es) | 2013-12-30 | 2018-02-01 | Stratus Technologies Bermuda Ltd. | Método de retardar puntos de comprobación inspeccionando paquetes de red |
US9652338B2 (en) | 2013-12-30 | 2017-05-16 | Stratus Technologies Bermuda Ltd. | Dynamic checkpointing systems and methods |
WO2015102875A1 (en) | 2013-12-30 | 2015-07-09 | Stratus Technologies Bermuda Ltd. | Checkpointing systems and methods of using data forwarding |
KR102209525B1 (ko) * | 2014-01-06 | 2021-01-29 | 삼성전자주식회사 | 마이크로 서버, mac 주소 할당 방법 및 컴퓨터 판독가능 기록매체 |
US9529997B2 (en) * | 2014-09-19 | 2016-12-27 | Intel IP Corporation | Centralized platform settings management for virtualized and multi OS systems |
US10620979B2 (en) | 2014-10-08 | 2020-04-14 | Intel Corporation | Techniques for checkpointing/delivery between primary and secondary virtual machines |
US9774540B2 (en) | 2014-10-29 | 2017-09-26 | Red Hat Israel, Ltd. | Packet drop based dynamic receive priority for network devices |
US9430272B2 (en) * | 2014-12-17 | 2016-08-30 | Microsoft Technology Licensing, Llc | Efficiently providing virtual machine reference points |
CN106487766B (zh) | 2015-08-31 | 2021-10-29 | 微软技术许可有限责任公司 | 具有独立服务子系统的路由设备 |
US10162559B2 (en) * | 2016-09-09 | 2018-12-25 | Veritas Technologies Llc | Systems and methods for performing live migrations of software containers |
CN107026852B (zh) * | 2017-03-22 | 2020-05-05 | 中电长城网际系统应用广东有限公司 | 一种解决大规模视频云应用中的网络性能瓶颈的方法 |
US10884878B2 (en) * | 2018-06-07 | 2021-01-05 | International Business Machines Corporation | Managing a pool of virtual functions |
US11822946B2 (en) * | 2018-06-28 | 2023-11-21 | Cable Television Laboratories, Inc. | Systems and methods for secure network management of virtual network functions |
US11563677B1 (en) * | 2018-06-28 | 2023-01-24 | Cable Television Laboratories, Inc. | Systems and methods for secure network management of virtual network function |
US11356362B2 (en) * | 2019-01-21 | 2022-06-07 | Vmware, Inc. | Adaptive packet flow monitoring in software-defined networking environments |
WO2023081473A1 (en) * | 2021-11-08 | 2023-05-11 | Smashcut, Inc. | Virtualization-based collaborative activity framework with predictive preloading of virtual machines |
US12032997B2 (en) | 2022-01-16 | 2024-07-09 | Microsoft Technology Licensing, Llc | Reducing interrupts using buffering for data processing |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6493347B2 (en) * | 1996-12-16 | 2002-12-10 | Juniper Networks, Inc. | Memory organization in a switching device |
US6075938A (en) * | 1997-06-10 | 2000-06-13 | The Board Of Trustees Of The Leland Stanford Junior University | Virtual machine monitors for scalable multiprocessors |
US6795966B1 (en) * | 1998-05-15 | 2004-09-21 | Vmware, Inc. | Mechanism for restoring, porting, replicating and checkpointing computer systems using state extraction |
US6826616B2 (en) * | 1998-10-30 | 2004-11-30 | Science Applications International Corp. | Method for establishing secure communication link between computers of virtual private network |
US6798777B1 (en) * | 2000-04-17 | 2004-09-28 | Juniper Networks, Inc. | Filtering and route lookup in a switching device |
US7620955B1 (en) * | 2001-06-08 | 2009-11-17 | Vmware, Inc. | High-performance virtual machine networking |
US7093086B1 (en) * | 2002-03-28 | 2006-08-15 | Veritas Operating Corporation | Disaster recovery and backup using virtual machines |
US20080177994A1 (en) * | 2003-01-12 | 2008-07-24 | Yaron Mayer | System and method for improving the efficiency, comfort, and/or reliability in Operating Systems, such as for example Windows |
US7529897B1 (en) * | 2003-12-31 | 2009-05-05 | Vmware, Inc. | Generating and using checkpoints in a virtual computer system |
US8204931B2 (en) * | 2004-12-28 | 2012-06-19 | Sap Ag | Session management within a multi-tiered enterprise network |
US20060150010A1 (en) * | 2005-01-03 | 2006-07-06 | Stiffler Jack J | Memory-controller-embedded apparatus and procedure for achieving system-directed checkpointing without operating-system kernel support |
US7681075B2 (en) | 2006-05-02 | 2010-03-16 | Open Invention Network Llc | Method and system for providing high availability to distributed computer applications |
US20070174484A1 (en) * | 2006-01-23 | 2007-07-26 | Stratus Technologies Bermuda Ltd. | Apparatus and method for high performance checkpointing and rollback of network operations |
US7962566B2 (en) * | 2006-03-27 | 2011-06-14 | Sap Ag | Optimized session management for fast session failover and load balancing |
US7571307B2 (en) * | 2006-07-26 | 2009-08-04 | International Business Machines Corporation | Capacity upgrade on-demand for I/O adapters |
US20080267176A1 (en) * | 2007-04-27 | 2008-10-30 | Ganesh Perinkulam I | Selective preservation of network state during a checkpoint |
US8407518B2 (en) | 2007-10-26 | 2013-03-26 | Vmware, Inc. | Using virtual machine cloning to create a backup virtual machine in a fault tolerant system |
US8006079B2 (en) * | 2008-02-22 | 2011-08-23 | Netapp, Inc. | System and method for fast restart of a guest operating system in a virtual machine environment |
US8351426B2 (en) * | 2008-03-20 | 2013-01-08 | International Business Machines Corporation | Ethernet virtualization using assisted frame correction |
US7843919B2 (en) * | 2008-03-20 | 2010-11-30 | International Business Machines Corporation | Ethernet virtualization using a network packet alteration |
JP5040773B2 (ja) * | 2008-03-31 | 2012-10-03 | 富士通株式会社 | メモリバッファ割当装置およびプログラム |
US8667187B2 (en) * | 2008-09-15 | 2014-03-04 | Vmware, Inc. | System and method for reducing communication overhead between network interface controllers and virtual machines |
US8499297B2 (en) * | 2008-10-28 | 2013-07-30 | Vmware, Inc. | Low overhead fault tolerance through hybrid checkpointing and replay |
US8146082B2 (en) * | 2009-03-25 | 2012-03-27 | Vmware, Inc. | Migrating virtual machines configured with pass-through devices |
US20100287262A1 (en) | 2009-05-08 | 2010-11-11 | Uri Elzur | Method and system for guaranteed end-to-end data flows in a local networking domain |
US9389895B2 (en) | 2009-12-17 | 2016-07-12 | Microsoft Technology Licensing, Llc | Virtual storage target offload techniques |
US8549241B2 (en) * | 2010-01-06 | 2013-10-01 | Vmware, Inc. | Method and system for frequent checkpointing |
US8359367B2 (en) * | 2010-01-08 | 2013-01-22 | International Business Machines Corporation | Network support for system initiated checkpoints |
US8898518B2 (en) * | 2010-05-18 | 2014-11-25 | Vmware, Inc. | Method and system for enabling checkpointing fault tolerance across remote virtual machines |
US8171338B2 (en) * | 2010-05-18 | 2012-05-01 | Vmware, Inc. | Method and system for enabling checkpointing fault tolerance across remote virtual machines |
US8739177B2 (en) * | 2010-06-21 | 2014-05-27 | Intel Corporation | Method for network interface sharing among multiple virtual machines |
-
2011
- 2011-07-18 US US13/184,740 patent/US8769533B2/en not_active Expired - Fee Related
-
2012
- 2012-05-07 CA CA2776184A patent/CA2776184C/en active Active
- 2012-05-11 GB GB1208269.9A patent/GB2493047B/en active Active
- 2012-07-17 DE DE102012212511.6A patent/DE102012212511B4/de active Active
- 2012-07-18 CN CN201210249258.6A patent/CN102891882B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CA2776184C (en) | 2019-05-07 |
US20130024855A1 (en) | 2013-01-24 |
CN102891882A (zh) | 2013-01-23 |
CA2776184A1 (en) | 2013-01-18 |
GB2493047A (en) | 2013-01-23 |
DE102012212511B4 (de) | 2019-03-21 |
GB2493047B (en) | 2013-06-05 |
GB201208269D0 (en) | 2012-06-20 |
CN102891882B (zh) | 2016-07-06 |
US8769533B2 (en) | 2014-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102012212511B4 (de) | Betriebsverfahren eines Datenverarbeitungssystems, Datenverarbeitungsvorrichtung und Computerprogrammprodukt zum Bereitstellen einer Checkpoint-basierten Hochverfügbarkeit mit Netzwerkpaketpufferung in der Hardware | |
DE112013006063B4 (de) | Funktionsübernahme für einen Datenübertragungskanal in einem Netzwerk mit Hochleistungsdatenverarbeitung | |
DE102015105884B4 (de) | Rechenknoten und Verfahren zur Migration einer virtuellen Maschine, Rechenzentrummanager zur Migration virtueller Maschinen, Maschinenlesbares Speichermedium und Rechenvorrichtungen | |
DE112011103666B4 (de) | Speicherverwaltung in Cluster-Datenverarbeitungssystemen | |
DE69125840T2 (de) | Fehlertolerierendes rechnersystem | |
US10050850B2 (en) | Rack awareness data storage in a cluster of host computing devices | |
DE112010003554B4 (de) | Symmetrische Direktmigration von Virtuellen Maschinen | |
US9940210B2 (en) | Healing cloud services during upgrades | |
DE112010001469B4 (de) | Flexible Integration von Endpunktlogik in unterschiedlichen Plattformen | |
EP3252608A1 (de) | Knotensystem, servervorrichtung, skalierungssteuerungsverfahren und programm | |
DE112017003294B4 (de) | Technologien für ein skalierbares Senden und Empfangen von Paketen | |
DE102016105589A1 (de) | Anwenden von Firmware-Updates in einem System mit Null-Stillstandszeit durch wahlweise Abschalten und Einschalten von Hardware unter Verwenden einer Hypervisor-Schicht | |
US9052833B2 (en) | Protection of former primary volumes in a synchronous replication relationship | |
DE112012002241T5 (de) | Migration eines transparenten Dateisystems zu einem neuen physischen Speicherort | |
DE112012002404B4 (de) | Konfiguration und Management virtueller Netzwerke | |
DE102014108249A1 (de) | Realisieren erweiterter Fehlerbehandlung für einen gemeinsam genutzten Adapter in einem virtualisierten System | |
DE112012005209T5 (de) | Brückenfunktion zwischen Virtual Machine Monitor und Bare-Metal-Bootvorgang | |
DE112013004187T5 (de) | Technologie für Netzwerk-Datenübertragung durch ein Computersystem unter Verwendung von mindestens zwei Datenübertragungsprotokollen | |
DE112020003608T5 (de) | Wiederherstellung der verbindungsgeschwindigkeit in einem datenspeichersystem | |
DE112010004140T5 (de) | Dynamischer Austausch von Replikat-Datenträgern in einem Verbund | |
DE102022108863A1 (de) | Sicherung von daten für einen namensraum, der einem mandanten zugeordnet ist | |
EP2801030A1 (de) | Verfahren und apparat zur bildung von software fault-containment units (swfcus) in einem verteilten echtzeitsystem | |
DE112018002049T5 (de) | Verfahren zum erkennen entfernt angeordneter knoten und zum überprüfen sowie verbinden von übertragungskanälen | |
DE112012004554B4 (de) | Serielle Verarbeitung des Zugriffs auf Daten bei Datenverarbeitungsumgebungen mitmehreren Grossrechnern | |
DE102016008158A1 (de) | System und steuerverfahren |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R082 | Change of representative |
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 Representative=s name: LIFETECH IP SPIES DANNER & PARTNER PATENTANWAE, DE |
|
R082 | Change of representative |
Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE Representative=s name: LIFETECH IP SPIES DANNER & PARTNER PATENTANWAE, DE |
|
R016 | Response to examination communication | ||
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 |
|
R016 | Response to examination communication | ||
R018 | Grant decision by examination section/examining division | ||
R084 | Declaration of willingness to licence | ||
R020 | Patent grant now final |