DE112012004550B4 - Verfahren, System und Vorrichtung zur Zustandsmigration für einen Remote Direct Memory Access-Adapter in einer virtuellen Umgebung - Google Patents
Verfahren, System und Vorrichtung zur Zustandsmigration für einen Remote Direct Memory Access-Adapter in einer virtuellen Umgebung Download PDFInfo
- Publication number
- DE112012004550B4 DE112012004550B4 DE112012004550.5T DE112012004550T DE112012004550B4 DE 112012004550 B4 DE112012004550 B4 DE 112012004550B4 DE 112012004550 T DE112012004550 T DE 112012004550T DE 112012004550 B4 DE112012004550 B4 DE 112012004550B4
- Authority
- DE
- Germany
- Prior art keywords
- memory access
- direct memory
- remote direct
- virtual functions
- virtual
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 21
- 238000013508 migration Methods 0.000 title description 5
- 230000005012 migration Effects 0.000 title description 5
- 230000006870 function Effects 0.000 claims abstract description 34
- 238000000638 solvent extraction Methods 0.000 abstract description 3
- 238000012546 transfer Methods 0.000 description 9
- 238000013507 mapping Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 239000000872 buffer Substances 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000003863 physical function Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- 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/17331—Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Physics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
- Telephonic Communication Services (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
In einer Ausführungsform der vorliegenden Erfindung umfasst ein Verfahren das Partitionieren von mehreren Remote Direct Memory Access-Kontextobjekten unter mehreren virtuelle Funktionen, wobei eine Remote Direct Memory Access-Verbindung zwischen einer ersten der mehreren virtuellen Funktionen hergestellt wird, und das Migrieren der Remote Direct Memory Access-Verbindung von der ersten der mehreren virtuellen Funktionen auf eine zweite der mehreren virtuellen Funktionen, ohne von der entfernten Gegenstelle getrennt zu werden.
Description
- GEBIET
- Ausführungsformen dieser Erfindung beziehen sich auf die Datenübertragung mittels RDMA (Remote Direct Memory Access, Remotezugriff auf den direkten Speicher) in einer virtuellen Umgebung.
- ALLGEMEINER STAND DER TECHNIK
- Herkömmlicher RDMA ermöglicht das direkte Verschieben von Daten von einem Computersystem in den Speicher eines anderen Computersystems, ohne dabei deren jeweilige CPU (Central Processing Unit bzw. zentrale Verarbeitungseinheit) und insbesondere deren jeweiliges Betriebssystem während der Datenübertragung einzubinden. Dies ermöglicht eine Vernetzung mit hohem Datendurchsatz und niedriger Latenz, indem die Notwendigkeit zum Kopieren von Daten zwischen Anwendungsspeicher und den Datenpuffern im Betriebssystem beseitigt wird.
- Eine virtuelle Computerumgebung bezieht sich auf ein Computersystem, in dem eine einzelne physische Maschine als mehrere virtuelle Maschinen betrachtet werden kann, und wobei ein Satz physischer Hardwareressourcen als mehrere virtuelle Ressourcen verwendet werden kann. Auf jeder virtuellen Maschine (VM) kann ein eigenes Betriebssystem laufen, das den Satz virtueller Hardwareressourcen steuern kann.
- Die
US 2011 / 0 202 714 A1 betrifft die Speicherung und Verwaltung von Personalisierungen, die ein Benutzer an einem virtuellen Abbild einer virtuellen Maschine vornimmt, wenn er beispielsweise eine neue Softwareanwendung auf der virtuellen Maschine installiert. Es wird ein Festplattenpersonalisierungsdienst eingesetzt, der eine Festplattenzugriffsanforderung von einem dynamischen Speicherfilter erhält, der innerhalb des virtuellen Abbilds der virtuellen Maschine vorgesehen ist. Der dynamische Speicherfilter greift die Festplattenzugriffsanforderung transparent ab und leitet sie an den Festplattenpersonalisierungsdienst weiter. Anhand von Benutzerkennung und Ressourcenkennung sucht der Festplattenpersonalisierungsdienst nach einem Index, der auf den Speicherort der angeforderten Daten verweist. Diesen Index gibt der Festplattenpersonalisierungsdienst an das virtuelle Abbild der virtuellen Maschine zurück. Der Speicherort befindet sich dabei in einem externen personalisierten Speicher, welcher spezifisch für den jeweiligen Benutzer ist - ZUSAMMENFASSUNG DER ERFINDUNG
- Die Erfindung betrifft ein Verfahren gemäß Patentanspruch 1, ein System gemäß Patentanspruch 11 und eine Vorrichtung gemäß Patentanspruch 17.
- Figurenliste
- Ausführungsformen der vorliegenden Erfindung werden beispielsweise, jedoch nicht einschränkend, in den Figuren der zugehörigen Zeichnungen veranschaulicht, in denen ähnliche Bezugszeichen auf ähnliche Elemente verweisen und wobei Folgendes gilt:
-
1 ist ein Blockdiagramm, das ein Computersystem veranschaulicht, das eine virtuelle Umgebung nach einer Ausführungsform unterstützt. -
2 veranschaulicht eine RDMA-Verbindung zwischen einem System und einer entfernten Gegenstelle (Remote Peer) gemäß einer Ausführungsform. -
3 veranschaulicht ein Verfahren zum Herstellen und Migrieren einer RDMA-Verbindung gemäß einer Ausführungsform. -
4 veranschaulicht das Partitionieren von RDMA-Kontextobjekten gemäß einer Ausführungsform. -
5 veranschaulicht eine Ausführungsform, in der ein Netzwerkadapter einen Onboard-Speicher umfasst. - DETAILLIERTE BESCHREIBUNG
-
1 veranschaulicht ein Computersystem 100, das eine virtuelle Umgebung unterstützt. Das System 100 kann die virtuellen Maschinen 110A und 110B, den virtuellen Maschinenmonitor 106, die Hardwareressourcen 110 und die Logik 130 umfassen. Die Logik 130 kann Hardware, Software oder eine Kombination aus Hardware und Software (z.B. Firmware) umfassen. Beispielsweise kann die Logik 130 einen Schaltkomplex (d.h. ein oder mehrere Schaltkreise) umfassen, um die im vorliegenden Dokument beschriebenen Vorgänge auszuführen. Beispielsweise kann die Logik 130 einen oder mehrere digitale Schaltkreise, einen oder mehrere analoge Schaltkreise, eine oder mehrere Zustandsmaschinen, programmierbare Logik bzw. eine oder mehrere ASICs (Application-Specific Integrated Circuits, anwendungsspezifisch integrierte Schaltkreise) umfassen. Die Logik 130 kann fest verdrahtet sein, um den einen oder die mehreren Vorgänge auszuführen. Alternativ oder zusätzlich dazu kann die Logik 130 in der Firmware, in maschinenausführbaren Anweisungen 132, die in einem Speicher gespeichert sind, wie z.B. Speicher 104, verkörpert sein, um diese Vorgänge auszuführen, oder in verschiedenen anderen Komponenten des Systems 100. Die Logik 130 kann für die Ausführung verschiedener Funktionen von verschiedenen Komponenten verwendet werden, wie im vorliegenden Dokument beschrieben. Das System 100 kann mehrere virtuelle Maschinen 110A und 110B umfassen. Während hier nur zwei dargestellt werden, kann das System 100 mehr oder weniger virtuelle Maschinen als die hier Dargestellten umfassen. Die Hardwareressourcen 110 können virtualisiert werden, was bedeutet, dass eine einzelne physische Hardwareressource 110 in mehrere virtuelle Hardwareressourcen partitioniert werden kann, um dem System 100 die Verwendung der einzelnen physischen Hardwareressource 110 in mehreren virtuellen Maschinen 110A und 110B zu ermöglichen. Die Virtualisierung kann mithilfe von VMM 106 implementiert werden. In einer Ausführungsform umfasst VMM 106 Software, die eine Virtualisierungsschicht über das System 100 legt, in dem die Hardwareressourcen 110 zur Verwendung durch Gast-Software, die auf den virtuellen Maschinen 110A und 110B läuft, virtualisiert werden können. - Die Hardwareressourcen 110 beziehen sich auf physische Hardwarekomponenten, die mit dem System 110 verknüpft sind, einschließlich beispielsweise ein Prozessor 102, wie eine CPU (Central Processing Unit, zentrale Verarbeitungseinheit), ein Host-Speicher 104, ein Netzwerk-Adapter 108, ein E-/A-Gerät (Eingangs-/Ausgangsgerät) 120 und ein nichtflüchtiger Datenspeicher (Nonvolatile Random Access Memory, NVRAM) 122. Der Prozessor 102, Host-Speicher 104, Netzwerkadapter 108, das E-/A-Gerät 120 und der NVRAM 122 können in einem oder mehreren integrierten Schaltkreisen oder einer oder mehreren Leiterplatten, wie z.B. einem System-Motherboard 118, enthalten sein. Alternativ dazu kann der Netzwerkadapter 108 bzw. das E-/A-Gerät 120 in einer oder mehreren Bus-Leiterplatten enthalten sein, die in Bus-Leiterplatten-Steckplätze gesteckt werden können.
- Der Prozessor 102 kann einen Verarbeitungsschaltkomplex umfassen, um rechnerische Aufgaben des Systems 100 auszuführen. Beispielsweise kann ein Prozessor 102 eine CPU umfassen, wie z.B. aus der Intel® Pentium®-Prozessorfamilie oder der Intel® Core®-Prozessorfamilie, die von der Intel® Corporation im Handel erhältlich ist. Natürlich kann der Prozessor 102 alternativ dazu auch einen anderen Prozessortyp umfassen, wie z.B. einen Mikroprozessor, der von der Intel® Corporation hergestellt und im Handel erhältlich ist, oder von einer anderen Quelle als der Intel® Corporation, ohne von den Ausführungsformen der Erfindung abzuweichen.
- Der Host-Speicher 104 kann die maschinenausführbaren Anweisungen 132, die ausgeführt werden können, bzw. Daten, die abgerufen, durch Logik bedient bzw. bearbeitet werden können, wie z.B. die Logik 130, bzw. einen Prozessor, wie z.B. den Prozessor 102, speichern. Die Ausführung der Programmanweisungen 132 bzw. das Abrufen, Bedienen oder Bearbeiten dieser Daten durch die Logik 130 kann beispielsweise dazu führen, dass das System 100 bzw. die Logik 130 einige oder alle der hier beschriebenen Vorgänge ausführt. Der Host-Speicher 104 kann beispielsweise Nur-Lesespeicher, Massenspeicher, von einem Computer abrufbaren Direktzugriffsspeicher bzw. eine oder mehrere Arten von maschinenabrufbaren Speichern umfassen. Dies kann beispielsweise DRAM (Dynamic Random Access Memory, dynamisches RAM bzw. dynamischer Direktzugriffsspeicher) oder SRAM (Static Random Access Memory, statisches RAM bzw. statischer Direktzugriffsspeicher) umfassen, jedoch sind die Ausführungsformen der Erfindung nicht darauf beschränkt.
- Der Begriff Netzwerkadapter 108, wie er hier verwendet wird, betrifft eine Vorrichtung, die mit einem Datenübertragungsmedium verbunden ist, um Daten von anderen Vorrichtungen zu übertragen oder zu empfangen, die mit dem Datenübertragungsmedium verbunden sind. Beispielsweise kann der Netzwerkadapter 108 zum Übertragen von Daten oder zum Empfangen von Daten von Vorrichtungen gestaltet sein, die mit einem Netzwerk verbunden sind, wie z.B. einem Local Area Network (LAN, lokales Netzwerk). Ein derartiger Netzwerkadapter kann mit anderen Vorrichtungen gemäß einem von mehreren Datenkommunikationsformaten, wie z.B. Kommunikationsformate gemäß der Versionen des IEEE Std. 802.3 (Ethernet), IEEE Std. 802.11, IEEE Std. 802.16, Universal Serial Bus, Firewire, Asynchronous Transfer Mode (ATM), Synchronous Optical Network (SONET), Synchronous Digital Hierarchy/Synchrone Digitale Hierarchie (SDH), Internet Wide Area RDMA Protocol (iWARP) oder InfiniBand-Standards.
- Der Netzwerkadapter 108 kann Onboard-Speicher umfassen, aber kann auch den Host-Speicher 104 zum Speichern von erforderlichen RDMA-Kontextobjekten verwenden, um den Zustand vieler RDMA-Verbindungen zu verwalten.
5 veranschaulicht eine Ausführungsform der vorliegenden Erfindung, in der der Netzwerkadapter 108 den Onboard-Speicher 510 umfasst, der in einer Ausführungsform ein 32 KB On-Chip-RAM (Random Access Memory, RAM) sein kann. Der Onboard-Speicher 510 kann zum Speichern der Segmenttabelle 520 verwendet werden, wobei jeder Eintrag in die Segmenttabelle zum Speichern einer Adresse oder einer anderen Referenz auf die Seitentabelle 530 im Host-Speicher 104 verwendet werden kann. Jeder Seitentabelleneintrag kann zum Speichern einer Adresse oder einer anderen Referenz auf eine der 4 KB-Seiten 540 im Host-Speicher 104 verwendet werden, in dem Kontextobjekte gespeichert werden können. Alternativ dazu kann einer oder mehrere Segmenttabelleneinträge zum Speichern einer Adresse oder einer anderen Referenz auf eine oder mehrere der 2 MB-Seiten 550 im Host-Speicher 104 verwendet werden, in dem Kontextobjekte gespeichert werden können. Andere Ausführungsformen der vorliegenden Erfindung können eine beliebige Vielzahl an Speicherhierarchien, Seiten oder andere Speicherregionsgrößen oder beliebige andere Aspekte einer Speicher- oder Datenstrukturorganisation und eine beliebige andere Anordnung zum Speichern eines Teils einer Datenstruktur im Onboard-Speicher 510 und eines Teils im Host-Speicher 104 verwenden. - Darüber hinaus kann der Netzwerkadapter 108A Hardware zur Indexierung 108A umfassen, um die Zuordnungen von RDMA-Kontextobjekten wie im Folgenden beschrieben zu verwalten. Die Hardware zur Indexierung 108A kann Steuerungs- bzw. Berechnungsschaltkomplexe, Speicherelemente bzw. beliebige andere Strukturen zum Ausführen oder Ermöglichen der Zuordnung, Indexierung, Referenzierung, Verwaltung und anderen Funktionen im Zusammenhang mit RDMA-Kontextobjekten gemäß den Ausführungsformen der vorliegenden Erfindung enthalten.
- Das E-/A-Gerät 120 kann ein beliebiges E-/A-Gerät oder ein Peripheriegerät bzw. eine Steuereinheit oder einen Adapter für ein derartiges Gerät darstellen. Das E-/A-Gerät 120 kann eine E-/A-Virtualisierung unterstützen; z.B. kann ein E-/A-Gerät 120 eine oder mehrere physische Funktionen (jeweils eine „PF“) umfassen oder bereitstellen, die von einem VMM gesteuert werden können, wobei jede PF die Möglichkeit bietet, eine oder mehrere virtuelle Funktionen (jeweils eine „VF“) bereitzustellen. In einer Ausführungsform, in der das System 100 einen PCI (Peripheral Component Interconnect)-Bus basierend auf der PCI Local Bus Specification, Revision 3.0, February 4, 2004, umfasst, kann die E-/A-Virtualisierung auf einer Single Root I/O Virtualization and Sharing Specification, Revision 1.0, September 11, 2007, basieren. Andere Versionen dieser Spezifikationen bzw. andere Spezifikationen sowie andere Protokolle können in Ausführungsformen der Erfindung verwendet werden.
- Ein VMM kann die physischen Ressourcen des E-/A-Geräts 120 derart konfigurieren und verwalten, dass jede der VFs durch eine VM gesteuert bzw. direkt abgerufen werden kann. Daher kann eine vom E-/A-Gerät 120 unterstützte und einer virtuellen Maschine zugeordnete VF Daten innerhalb, in oder aus dem System 100 unter Steuerung der virtuellen Maschine und ohne Eingreifen eines VMM übertragen. Darüber hinaus kann der Netzwerkadapter 108 RDMA-Funktionen derart unterstützen, dass eine oder mehrere PFs oder VFs des E-/A-Geräts 120 Daten aus dem Host-Speicher 104 auf ein System übertragen, das nicht mit dem System 100 übereinstimmt, oder in den Host-Speicher 104 von einem System übertragen, das nicht mit dem System 100 übereinstimmt, bzw. zwischen virtuellen Maschinen im System 100 und virtuellen Maschinen in Systemen übertragen, die nicht mit dem System 100 übereinstimmen, ohne den Prozessor 102 zu involvieren.
-
2 veranschaulicht die RDMA-Verbindung 200 zwischen dem System 100 und dem entfernten Gegenstellensystem (Remote Peer System) 290 gemäß einer Ausführungsform der Erfindung. In dieser Ausführungsform kann die VF 202A des E-/A-Geräts 120 zur VM 110A zugeordnet werden. Dementsprechend kann sich der Gerätetreiber 210A für die VF 202A in einem Bereich des Host-Speichers 104 befinden, der der VM 110A zugewiesen ist. Der Gerätetreiber 210A kann mit dem Netzwerkadapter 108 kommunizieren, um eine RDMA-Verbindung 200 zwischen dem System 100 und dem entfernten Gegenstellensystem 290 wie im Folgenden weiter beschrieben herzustellen. Die RDMA-Verbindung 200 kann auf einem RDMA-Protokoll basieren, wie beispielsweise in Infiniband™ Architecture (IBA), Volume 2, Release 1.2.1., October 2006; oder Remote Direct Data Placement (RDDP), RFC 4296, December 2005 beschrieben. Andere Versionen dieser Spezifikationen bzw. anderer Spezifikationen sowie anderer Protokolle können in Ausführungsformen der Erfindung verwendet werden. -
3 veranschaulicht das Verfahren 300 zum Herstellen und Migrieren einer RDMA-Verbindung gemäß einer Ausführungsform der Erfindung, und4 veranschaulicht das Partitionieren von RDMA-Kontextobjekten gemäß einer Ausführungsform der Erfindung. Die Beschreibungen von3 und4 können mit Verweisen auf Elemente jeweils aus beiden Figuren und aus1 und2 ermöglicht werden; allerdings sind die Ausführungsformen der vorliegenden Erfindung nicht auf die veranschaulichten bzw. beschriebenen Elemente begrenzt. Blöcke des Verfahrens 300, die als durch die Software 204 ausgeführt bezeichnet werden, können von einer beliebigen Software oder einer beliebigen Kombination von Software ausgeführt werden, die im System 100 läuft, ausgeführt oder auf andere Weise betrieben wird, wie z.B. die Gast-Software 204A (bei der es sich beispielsweise um Anwendungssoftware bzw. Betriebssystemsoftware handeln kann), andere Gast-Software, der Gerätetreiber 210A, ein Gerätetreiber für eine PF des E-/A-Geräts 120, VMM 106 oder eine andere Software oder Kombination von Software. - In Block 310 kann der Onboard-Speicher 510 derart partitioniert werden, dass der Speicherbereich für jedes RDMA-Kontextobjekt, das durch den Netzwerkadapter 108 unterstützt wird, einer bestimmten VF des E-/A-Geräts 120 oder einer anderen bestimmten VF im System 100 zugeordnet wird. Beispielsweise können die Segmenttabelleneinträge 522, wie in
5 dargestellt, der VF 202A derart zugeordnet werden, dass alle auf den Seiten 542 im Host-Memory 104 gespeicherten RDMA-Kontextobjekte zu VF 202A gehören. Die Zuordnungen bzw. zugehörigen Informationen zu den Zuordnungen können im NVRAM 122 gespeichert werden, der derart umprogrammiert werden kann, dass die Zuordnungen von Zeit zu Zeit geändert werden können. - In Block 314 können Hardwareressourcen, die zu den Kontextobjekten gehören, unter den VFs partitioniert werden, indem ein oder mehrere Hardwareressourcen einer bestimmten VF zugeordnet werden. Darüber hinaus oder alternativ dazu kann bestimmt werden, dass eine oder mehrere Hardwareressourcen von oder zwischen zwei oder mehreren VFs gemeinsam genutzt werden. Gemeinsam genutzte Hardwareressourcen können nicht von Kontextobjekten referenziert werden, da alle Kontextobjekte einer einzelnen VF zugeordnet sind. Die Zuordnungen bzw. zugehörigen Informationen zu den Zuordnungen können im NVRAM 122 gespeichert werden, der derart umprogrammiert werden kann, dass die Zuordnungen von Zeit zu Zeit geändert werden können.
- In Block 318 kann die Gast-Software 204A einen oder mehrere Vorgänge durchführen, die dazu führen, dass der Netzwerkadapter 108 RDMA-Kontextobjekte einrichtet, wie z.B. das Warteschlangenpaar (QP) 406, die Sendewarteschlange 408A, die Empfangswarteschlange 410A und die Fertigstellungswarteschlange 412A. QPs sind derart eingerichtet, dass jede Sendewarteschlange eine entsprechende Empfangswarteschlange an der entfernten Gegenstelle hat. Beispielsweise ist QP 406 derart eingerichtet, dass die Sendewarteschlange 408A der Empfangswarteschlange 410B an der entfernten Gegenstelle 202B entspricht und die Sendewarteschlange 408B an der entfernten Gegenstelle 202B der Empfangswarteschlange 410A entspricht. In den Ausführungsformen der vorliegenden Erfindung kann eine beliebige Anzahl dieser Kontextobjekte für eine beliebige Anzahl an RDMA-Verbindungen gemeinsam mit einer beliebigen Anzahl anderer RDMA-Kontextobjekte verwendet werden.
- In Block 322 kann die Gast-Software 204A eine Datenübertragung zwischen der VF 202A und einem beliebigen Speicher, Gerät oder einer anderen entfernten Gegenstelle 202B im entfernten Gegenstellensystem 290 durch Generieren einer Datenübertragungsanforderung initiieren. Beispielsweise kann die Gast-Software 204A die Sendeanforderung 414A generieren und die Sendeanforderung 414A zur Sendewarteschlange 408A schicken. Die Sendeanforderung 414A kann Informationen über die Datenübertragung, beispielsweise eine Speicher-, eine Memory Mapped I/O- (speicherabgebildete Ein-/Ausgabe) oder andere Adressen, von denen die Daten abgerufen bzw. darauf gespeichert werden, einen Anforderungstyp (z.B. SEND) und die Länge der Datenübertragung umfassen. Es kann eine beliebige Anzahl an Anforderungen generiert und geschickt werden.
- In Block 326 kann die Datenübertragung von der VF 202A zur entfernten Gegenstelle 202B starten, indem beispielsweise die durch die Informationen in der Sendeanforderung 414A angegebene Datenübertragung gestartet wird.
- In Block 330 wird die Zuordnung aller Kontextobjekte zu einer bestimmen VF verwaltet, indem beispielsweise eine indizierte Liste der Kontextobjekte und deren Zuordnung zu einer bestimmten VF geführt wird. In Ausführungsformen mit gemeinsam und nicht gemeinsam genutzten Ressourcen, beginnen beispielsweise Kontextobjekte, die zu nicht gemeinsam genutzten oder partitionierten Ressourcen gehören, mit einem Index von Null (z.B. kann jede VF ein QP mit einem Index von Null haben). Für Kontextobjekte, die zu gemeinsam genutzten oder partitionierten Ressourcen gehören, kann jedoch eine Kombination aus Funktion, Objekttyp und Objektindex verwendet werden, um den Host-Speicher - wobei die Hardware zur Indexierung 108A eine Umwandlung oder andere Berechnung ausführt, um das Aussehen beizubehalten - auf die Software 204 zu adressieren, damit nullbasierte Indexierung verwendet wird. Beispielsweise kann ein bestimmtes Kontextobjekt für die Software 204 so aussehen, als hätte es einen Index von Null, jedoch kann der tatsächliche Nicht-Null-Index durch die Hardware zur Indexierung 108A basierend auf einer Nicht-Null-Indexzahl für eine VF bestimmt werden, wobei jede Nicht-Null-Indexzahl für jede VF auf der Anzahl von Einträgen für eine oder mehrere VFs basieren kann. Der Block 330 wird derart ausgeführt, dass Seiten oder andere Bereiche des Host-Speichers 104, die zum Speichern von Kontextobjekten verwendet werden, nicht von verschiedenen VFs gemeinsam verwendet werden.
- Im Block 334 wird bestimmt, dass die RDMA-Verbindung 200 von der VF 202A zur VF 202C migriert wird. Die Migration kann basierend auf Anwendungsanforderungen, Lastausgleich oder beliebigen anderen Gründen erwünscht sein.
- Die VF 202C kann eine VF des E-/A-Geräts 120 oder eines anderen E-/A-Geräts im System 100 oder einem anderen System sein bzw. kann der VM 110A oder einer anderen VM im System 100 oder einem anderen System zugeordnet sein. Auch wenn die VF 202C als im System 100 befindlich dargestellt ist, kann sich die VF 202C auch in einem anderen System befinden.
- Zudem kann die VF 202C den Netzwerkadapter 108 (z.B. VF 202A und VF 202C verwenden unterschiedliche Ports auf demselben Adapter) oder einen beliebigen anderen Netzwerkadapter im System 100 oder einem anderen System derart verwenden, dass die Migration der RDMA-Verbindung 200 eine Migration vom Netzwerkadapter 108 auf einen beliebigen anderen Netzwerkadapter im System 100 oder einem anderen System, das gemäß einer Ausführungsform der vorliegenden Erfindung betrieben wird, umfassen kann oder nicht. Im Block 338 wird eine Prüfung für die VF 202C und ihren Netzwerkadapter ausgeführt, um zu bestimmen, ob für die Migration ausreichend Ressourcen verfügbar sind.
- Im Block 342 wird der Fluss von eingehenden und ausgehenden Paketen über die RDMA-Verbindung 200 gestoppt. Eingehende Pakete können weggeworfen werden, allerdings kann das Wegwerfen der Pakete erkannt und mithilfe beliebiger bekannter Techniken behoben werden. Ausgehende Pakete können ins Netzwerk geleert werden.
- Im Block 346 kann jeder Zustand im Zusammenhang mit der VF 202A bzw. der VM 110A aus dem Netzwerkadapter 108 in den Host-Speicher 104 geleert werden.
- Im Block 350 kann der Speicherbereich für die Kontextobjekte für die VF 202C zugeordnet werden. In einer Ausführungsform, wobei die VF 202C im System 100 ist, kann der Speicherbereich im Host-Speicher 104 zugeordnet werden. In einer anderen Ausführungsform kann der Speicherbereich im Host-Speicher eines anderen Systems zugeordnet werden.
- In Block 354 wird der Inhalt des Host-Speichers 104, der für Kontextobjekte verwendet wird, die zuvor zur VF 202A zugeordnet wurden, mithilfe von CPU kopieren, DMA, RDMA oder einer anderen bekannten Technik in den für die Kontextobjekte für VF 202C bereitgestellten Host-Speicherbereich kopiert. Daher kann die Neuzuordnung von Kontextobjekten von der VF 202A zur VF 202C für die Gast-Software 204A oder ein beliebiges anderes Betriebssystem, Anwendungssoftware oder andere Software, die für einen Benutzer von System 100 oder dem entfernten Gegenstellensystem 290 ausgeführt wird, transparent sein. In Block 360 können Parameter, die für die RDMA-Verbindung 200 erforderlich oder nützlich sind, wie z.B. lokale Netzwerkadress- und Netzwerkweiterleitungskonfigurationsinformationen, für die VF 202C auf den Gerätetreiber 210C übertragen.
- In Block 364 wird der für VF 202C bereitgestellte Host-Speicherbereich mit der VF 202C verknüpft.
- In Block 368 wird der Paketfluss über die RDMA-Verbindung 200 nun zwischen der VF 202C und der entfernten Gegenstelle 202B fortgeführt.
- Das Verfahren 300 kann beliebige weitere gewünschte Vorgänge enthalten, wie z.B. solche, die bekannte RDMA-Techniken beinhalten. Darüber hinaus können die im Verfahren 300 dargestellten Blöcke im Umfang der vorliegenden Erfindung weggelassen bzw. neu angeordnet werden.
Claims (20)
- Verfahren, das Folgendes umfasst: Aufteilen mehrerer Remote Direct Memory Access (RDMA)-Kontextobjekte, welche erforderlich sind, um den Zustand von mehreren Remote Direct Memory Access-Verbindungen beizubehalten, auf mehrere virtuelle Funktionen (202A, 202C); Herstellen einer Remote Direct Memory Access-Verbindung (200) zwischen einer ersten (202A) der mehreren virtuellen Funktionen (202A, 202C) und einer entfernten Gegenstelle (202B) mithilfe eines Netzwerkadapters (108); und Migrieren der Remote Direct Memory Access-Verbindung (200) von der ersten (202A) der mehreren virtuellen Funktionen (202A, 202C) zu einer zweiten (202C) der mehreren virtuellen Funktionen (202A, 202C), ohne von der entfernten Gegenstelle (202B) getrennt zu werden.
- Verfahren nach
Anspruch 1 , ferner umfassend das Aufteilen von mehreren Hardwareressourcen, die zu den mehreren Remote Direct Memory Access-Kontextobjekten gehören, auf die mehreren virtuellen Funktionen (202A, 202C). - Verfahren nach
Anspruch 1 , wobei das Aufteilen der mehreren Remote Direct Memory Access-Kontextobjekte das Aufteilen eines Speicherbereichs in mehrere Bereiche umfasst, wobei jeder Bereich einer der mehreren virtuellen Funktionen (202A, 202C) zum Speichern eines Teils der mehreren Remote Direct Memory Access-Kontextobjekte zugeordnet werden soll. - Verfahren nach
Anspruch 3 , ferner umfassend das Speichern einer Segmenttabelle (520) in einem Segmenttabellenbereich im Netzwerkadapter (108). - Verfahren nach
Anspruch 4 , ferner umfassend das Speichern der mehreren Remote Direct Memory Access-Kontextobjekte in einem ersten Host-Speicher (104), jeweils an einem Speicherort, der durch einen Eintrag (522) in der Segmenttabelle (520) referenziert wird. - Verfahren nach
Anspruch 5 , ferner umfassend das Zuordnen jedes Eintrags (522) in der Segmenttabelle (520) zu einer der mehreren virtuellen Funktionen (202A, 202C) . - Verfahren nach
Anspruch 6 , ferner umfassend das Bereitstellen eines ersten Bereichs im ersten Host-Speicher (104) für die erste (202A) der mehreren virtuellen Funktionen (202A, 202C). - Verfahren nach
Anspruch 7 , ferner umfassend das Speichern eines ersten der mehreren Remote Direct Memory Access-Kontextobjekte im ersten Bereich. - Verfahren nach
Anspruch 8 , ferner umfassend das Bereitstellen eines zweiten Bereichs entweder im ersten Host-Speicher (104) oder in einem zweiten Host-Speicher für die zweite (202C) der mehreren virtuellen Funktionen (202A, 202C) . - Verfahren nach
Anspruch 9 , wobei das Migrieren das Kopieren von Inhalten aus dem ersten Bereich in den zweiten Bereich umfasst. - System, das Folgendes umfasst: ein Eingangs-/Ausgangsgerät (120) umfassend eine erste (202A) von mehreren virtuellen Funktionen (202A, 202C); und einen Netzwerkadapter (108) zum Herstellen einer Remote Direct Memory Access-Verbindung (200) zwischen der ersten virtuellen Funktion (202A) und einer entfernten Gegenstelle (202B), und zum Migrieren der Remote Direct Memory Access-Verbindung (200) von der ersten virtuellen Funktion (202A) zu einer zweiten virtuellen Funktion (202C), ohne von der ersten Gegenstelle (202B) getrennt zu werden.
- System nach
Anspruch 11 , ferner umfassend einen Host-Speicher (104) zum Speichern mehrerer Remote Direct Memory Access-Kontextobjekte, die erforderlich sind, um den Zustand von mehreren Remote Direct Memory Access-Verbindungen beizubehalten, und die auf die mehreren virtuellen Funktionen (202A, 202C) aufgeteilt werden sollen. - System nach
Anspruch 11 , ferner umfassend mehrere Hardwareressourcen, die zu den mehreren Remote Direct Memory Access-Kontextobjekten gehören, die auf die mehreren virtuellen Funktionen aufgeteilt werden sollen. - System nach
Anspruch 11 , wobei der Netzwerkadapter einen Segmenttabellenspeicherbereich umfasst, der auf die mehreren virtuellen Funktionen (202A, 202C) aufgeteilt werden soll. - System nach
Anspruch 14 , wobei die Segmenttabelle (520) mehrere Segmenttabelleneinträge (522) speichern soll, wobei jeder Segmenttabelleneintrag (522) auf einen der mehreren Speicherorte im Host-Speicher (104) verweist, wobei jeder Speicherort mindestens eines der Remote Direct Memory Access-Kontextobjekte speichern soll. - System nach
Anspruch 15 , wobei der Netzwerkadapter (108) Inhalte eines ersten der mehreren Speicherorte auf einen zweiten der mehreren Speicherorte kopieren soll, wobei der erste der mehreren Speicherorte der ersten virtuellen Funktion (202A) zugeordnet ist und der zweite der mehreren Speicherorte der zweiten virtuellen Funktion (202C) zugeordnet ist. - Vorrichtung, die Folgendes umfasst: einen Netzwerkadapter (108) zum Herstellen einer Remote Direct Memory Access-Verbindung (200) zwischen einer ersten (202A) von mehreren virtuellen Funktionen (202A, 202C) und einer entfernten Gegenstelle (202B), und zum Migrieren der Remote Direct Memory Access-Verbindung (200) von der ersten virtuellen Funktion (202A) zu einer zweiten virtuellen Funktion (202C), ohne von der ersten Gegenstelle (202B) getrennt zu werden; und einen Onboard-Speicher (510) zum Speichern einer Segmenttabelle (522), die auf die mehreren virtuellen Funktionen (202A, 202C) aufgeteilt werden soll.
- Vorrichtung nach
Anspruch 17 , wobei die Segmenttabelle (520) mehrere Segmenttabelleneinträge (522) speichern soll, wobei jeder Segmenttabelleneintrag (522) auf einen der mehreren Speicherorte in einem Host-Speicher (104) verweist, wobei jeder Speicherort mindestens eines von mehreren Remote Direct Memory Access-Kontextobjekte speichern soll, welche erforderlich sind, um den Zustand von mehreren Remote Direct Memory Access-Verbindungen beizubehalten. - Vorrichtung nach
Anspruch 18 , wobei der Netzwerkadapter (108) auch Inhalte eines ersten der mehreren Speicherorte auf einen zweiten der mehreren Speicherorte kopieren soll, wobei der erste der mehreren Speicherorte der ersten virtuellen Funktion (202A) zugeordnet ist und der zweite der mehreren Speicherorte der zweiten virtuellen Funktion (202C) zugeordnet ist. - Vorrichtung nach
Anspruch 18 , ferner umfassend mehrere Hardwareressourcen, die zu den mehreren Remote Direct Memory Access-Kontextobjekten gehören, die auf die mehreren virtuellen Funktionen (202A, 202C) aufgeteilt werden sollen.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/285,299 | 2011-10-31 | ||
US13/285,299 US9354933B2 (en) | 2011-10-31 | 2011-10-31 | Remote direct memory access adapter state migration in a virtual environment |
USUS-13/285,299 | 2011-10-31 | ||
PCT/US2012/059241 WO2013066572A2 (en) | 2011-10-31 | 2012-10-08 | Remote direct memory access adapter state migration in a virtual environment |
Publications (2)
Publication Number | Publication Date |
---|---|
DE112012004550T5 DE112012004550T5 (de) | 2014-08-14 |
DE112012004550B4 true DE112012004550B4 (de) | 2023-02-02 |
Family
ID=48173541
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE112012004550.5T Active DE112012004550B4 (de) | 2011-10-31 | 2012-10-08 | Verfahren, System und Vorrichtung zur Zustandsmigration für einen Remote Direct Memory Access-Adapter in einer virtuellen Umgebung |
Country Status (4)
Country | Link |
---|---|
US (2) | US9354933B2 (de) |
CN (1) | CN104011695B (de) |
DE (1) | DE112012004550B4 (de) |
WO (1) | WO2013066572A2 (de) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9354933B2 (en) | 2011-10-31 | 2016-05-31 | Intel Corporation | Remote direct memory access adapter state migration in a virtual environment |
US9298642B2 (en) * | 2012-11-01 | 2016-03-29 | Mellanox Technologies Ltd. | Sharing address translation between CPU and peripheral devices |
US9854036B2 (en) * | 2013-09-30 | 2017-12-26 | Huawei Technologies Co., Ltd. | Method for migrating memory data of virtual machine, and related apparatus and cluster system |
US10404795B2 (en) * | 2014-02-19 | 2019-09-03 | Vmware, Inc. | Virtual machine high availability using shared storage during network isolation |
CN104636185B (zh) * | 2015-01-27 | 2018-03-02 | 华为技术有限公司 | 业务上下文管理方法、物理主机、pcie设备及迁移管理设备 |
US10956189B2 (en) * | 2015-02-13 | 2021-03-23 | Red Hat Israel, Ltd. | Methods for managing virtualized remote direct memory access devices |
US9424192B1 (en) * | 2015-04-02 | 2016-08-23 | International Business Machines Corporation | Private memory table for reduced memory coherence traffic |
US9842050B2 (en) | 2015-04-30 | 2017-12-12 | International Business Machines Corporation | Add-on memory coherence directory |
US11853253B1 (en) * | 2015-06-19 | 2023-12-26 | Amazon Technologies, Inc. | Transaction based remote direct memory access |
CN107306230B (zh) * | 2016-04-18 | 2020-12-29 | 中兴通讯股份有限公司 | 一种网络资源部署的方法、装置、控制器及核心网设备 |
US10417174B2 (en) * | 2016-06-24 | 2019-09-17 | Vmware, Inc. | Remote direct memory access in a virtualized computing environment |
US9794366B1 (en) * | 2016-10-19 | 2017-10-17 | Red Hat, Inc. | Persistent-memory management |
US11507404B2 (en) | 2016-12-28 | 2022-11-22 | Intel Corporation | Virtualized remote direct memory access |
CN109144972B (zh) * | 2017-06-26 | 2022-07-12 | 华为技术有限公司 | 一种数据迁移的方法以及数据节点 |
US11418446B2 (en) * | 2018-09-26 | 2022-08-16 | Intel Corporation | Technologies for congestion control for IP-routable RDMA over converged ethernet |
CN109408243B (zh) * | 2018-11-13 | 2021-08-10 | 郑州云海信息技术有限公司 | 一种基于rdma的数据处理方法、装置和介质 |
EP3900308A4 (de) * | 2019-01-30 | 2022-02-23 | Huawei Technologies Co., Ltd. | Eingabe-/ ausgabeverarbeitung in einem verteilten speicherknoten mit rdma |
US11467873B2 (en) * | 2019-07-29 | 2022-10-11 | Intel Corporation | Technologies for RDMA queue pair QOS management |
US20210105207A1 (en) * | 2020-11-18 | 2021-04-08 | Intel Corporation | Direct memory access (dma) engine with network interface capabilities |
US11940933B2 (en) | 2021-03-02 | 2024-03-26 | Mellanox Technologies, Ltd. | Cross address-space bridging |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110202714A1 (en) | 2010-02-17 | 2011-08-18 | Lloyd Leon Burch | Techniques for dynamic disk personalization |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040049603A1 (en) * | 2002-09-05 | 2004-03-11 | International Business Machines Corporation | iSCSI driver to adapter interface protocol |
US8055818B2 (en) * | 2004-08-30 | 2011-11-08 | International Business Machines Corporation | Low latency queue pairs for I/O adapters |
CN100442256C (zh) * | 2004-11-10 | 2008-12-10 | 国际商业机器公司 | 提供用于i/o适配器的队列对的方法、系统和存储介质 |
US8274518B2 (en) * | 2004-12-30 | 2012-09-25 | Microsoft Corporation | Systems and methods for virtualizing graphics subsystems |
US7370174B2 (en) * | 2005-01-05 | 2008-05-06 | Intel Corporation | Method, system, and program for addressing pages of memory by an I/O device |
US7480742B2 (en) * | 2005-02-25 | 2009-01-20 | International Business Machines Corporation | Method for virtual adapter destruction on a physical adapter that supports virtual adapters |
US20060236063A1 (en) * | 2005-03-30 | 2006-10-19 | Neteffect, Inc. | RDMA enabled I/O adapter performing efficient memory management |
US7702826B2 (en) | 2005-12-28 | 2010-04-20 | Intel Corporation | Method and apparatus by utilizing platform support for direct memory access remapping by remote DMA (“RDMA”)-capable devices |
US7756943B1 (en) | 2006-01-26 | 2010-07-13 | Symantec Operating Corporation | Efficient data transfer between computers in a virtual NUMA system using RDMA |
US8667494B1 (en) * | 2006-08-25 | 2014-03-04 | Emc Corporation | Controlling resource allocation using thresholds and scheduling |
US7987469B2 (en) | 2006-12-14 | 2011-07-26 | Intel Corporation | RDMA (remote direct memory access) data transfer in a virtual environment |
WO2009045543A1 (en) * | 2007-10-04 | 2009-04-09 | The Regents Of The University Of California | Treatment of conditions related to shock |
US20100083247A1 (en) | 2008-09-26 | 2010-04-01 | Netapp, Inc. | System And Method Of Providing Multiple Virtual Machines With Shared Access To Non-Volatile Solid-State Memory Using RDMA |
US8190816B2 (en) | 2008-10-17 | 2012-05-29 | Netapp, Inc. | Embedded scale-out aggregator for storage array controllers |
US7996484B2 (en) * | 2008-12-11 | 2011-08-09 | Microsoft Corporation | Non-disruptive, reliable live migration of virtual machines with network data reception directly into virtual machines' memory |
US8429651B2 (en) * | 2010-01-20 | 2013-04-23 | International Business Machines Corporation | Enablement and acceleration of live and near-live migration of virtual machines and their associated storage across networks |
US8489699B2 (en) * | 2010-08-13 | 2013-07-16 | Vmware, Inc. | Live migration of virtual machine during direct access to storage over SR IOV adapter |
US9354933B2 (en) | 2011-10-31 | 2016-05-31 | Intel Corporation | Remote direct memory access adapter state migration in a virtual environment |
-
2011
- 2011-10-31 US US13/285,299 patent/US9354933B2/en active Active
-
2012
- 2012-10-08 WO PCT/US2012/059241 patent/WO2013066572A2/en active Application Filing
- 2012-10-08 DE DE112012004550.5T patent/DE112012004550B4/de active Active
- 2012-10-08 CN CN201280054000.9A patent/CN104011695B/zh active Active
-
2016
- 2016-05-19 US US15/159,209 patent/US10467182B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110202714A1 (en) | 2010-02-17 | 2011-08-18 | Lloyd Leon Burch | Techniques for dynamic disk personalization |
Also Published As
Publication number | Publication date |
---|---|
WO2013066572A2 (en) | 2013-05-10 |
US10467182B2 (en) | 2019-11-05 |
US20130110959A1 (en) | 2013-05-02 |
US20160267053A1 (en) | 2016-09-15 |
US9354933B2 (en) | 2016-05-31 |
DE112012004550T5 (de) | 2014-08-14 |
CN104011695B (zh) | 2018-09-07 |
WO2013066572A3 (en) | 2013-07-11 |
CN104011695A (zh) | 2014-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE112012004550B4 (de) | Verfahren, System und Vorrichtung zur Zustandsmigration für einen Remote Direct Memory Access-Adapter in einer virtuellen Umgebung | |
DE60212626T2 (de) | Endknotenunterteilung mittels lokaler identifikatoren | |
DE112013004187B4 (de) | Technologie für Netzwerk-Datenübertragung durch ein Computersystem unter Verwendung von mindestens zwei Datenübertragungsprotokollen | |
DE69433293T2 (de) | Netzwerkübertragungsverfahren für Systeme mit virtuellem Speicher | |
DE69935805T2 (de) | Rechnersystem und verfahren zum betreiben von mehreren betriebssystemen in verschiedenen partitionen des rechnersystems und um den verschiedenen partitionen die kommunikation miteinander durch gemeinsame speicher zu erlauben | |
DE112010003554B4 (de) | Symmetrische Direktmigration von Virtuellen Maschinen | |
DE602004012633T2 (de) | Vorrichtung und Verfahren zur Integration von Mehrserverplattformen | |
DE102018006546A1 (de) | Plattformschnittstellenschicht und protokoll für beschleuniger | |
DE112012003776T5 (de) | Migration logischer Partitionen mit zustandsbehafteten Auslagerungsdatenverbindungen während des laufenden Betriebs unter Verwendung der Kontextherauslösung und -einfügung | |
DE102020113346A1 (de) | Bereitstellen von service-containern in einer adaptervorrichtung | |
DE112012003808T5 (de) | Ermittlung der Migration des Netzwerkadapter-Hardwarezustands in einer zustandsbehafteten Umgebung | |
DE112012002404B4 (de) | Konfiguration und Management virtueller Netzwerke | |
DE102008030587A1 (de) | Verfahren und Vorrichtung zur Erhöhung der Effizienz der Interrupt-Lieferung zur Laufzeit in einem Netzwerksystem | |
DE112018006769B4 (de) | Erweiterte zwischenspeicherzuweisung basierend auf virtuellen knotenressourcen | |
DE112008002550T5 (de) | Verfahren und System für virtuelle Schnittstellenkommunikation | |
DE112011103082T5 (de) | Mehrere virtuelle Maschinen mit gemeinsamer Nutzung einer einzigen IP-Adresse | |
DE112007001529T5 (de) | Flexibles und erweiterbares Receive Side Scaling | |
DE102015113997A1 (de) | Mechanismus für Verwaltungssteuerungen zum Lernen der Steuerebenenhierarchie in einer Datenzentrumsumgebung | |
WO2008006622A1 (de) | Netzwerksystem und verfahren zur steuerung parallel existierender adressräume | |
DE112006001167T5 (de) | Simulieren mehrerer virtueller Kanäle in Switching-Fabric-Netzwerken | |
DE102010001985A1 (de) | Vorrichtung zum Schalten des Betriebs einer virtuellen Maschine zwischen mehreren Computern, die der gleichen Computerplattform zugeordnet sind, und entsprechende Schaltverfahren | |
DE112007001135T5 (de) | Gemeinschaftliche Nutzung von Daten durch Partitionen in einem partitionierbaren System | |
DE112012003342T5 (de) | Dynamisches Anpassen und Begrenzen der Größe des Netzwerkadapterspeichers zur Speicherung von Umsetzungseinträgen für virtuelle Funktionen | |
DE112014002799B4 (de) | Bereitstellen einer sicheren Kundendomäne in einer virtualisierten Mehr-Mieter-Umgebung | |
DE102009017496A1 (de) | Speicherzugriff in einem System mit Speicherschutz |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed |
Effective date: 20140430 |
|
R016 | Response to examination communication | ||
R016 | Response to examination communication | ||
R018 | Grant decision by examination section/examining division | ||
R020 | Patent grant now final |