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 PDF

Info

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
Application number
DE112012004550.5T
Other languages
English (en)
Other versions
DE112012004550T5 (de
Inventor
Robert O. Sharp
Kenneth G. Keels
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE112012004550T5 publication Critical patent/DE112012004550T5/de
Application granted granted Critical
Publication of DE112012004550B4 publication Critical patent/DE112012004550B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17331Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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/5016Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution 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, und 4 veranschaulicht das Partitionieren von RDMA-Kontextobjekten gemäß einer Ausführungsform der Erfindung. Die Beschreibungen von 3 und 4 können mit Verweisen auf Elemente jeweils aus beiden Figuren und aus 1 und 2 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)

  1. 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.
  2. 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).
  3. 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.
  4. Verfahren nach Anspruch 3, ferner umfassend das Speichern einer Segmenttabelle (520) in einem Segmenttabellenbereich im Netzwerkadapter (108).
  5. 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.
  6. Verfahren nach Anspruch 5, ferner umfassend das Zuordnen jedes Eintrags (522) in der Segmenttabelle (520) zu einer der mehreren virtuellen Funktionen (202A, 202C) .
  7. 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).
  8. Verfahren nach Anspruch 7, ferner umfassend das Speichern eines ersten der mehreren Remote Direct Memory Access-Kontextobjekte im ersten Bereich.
  9. 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) .
  10. Verfahren nach Anspruch 9, wobei das Migrieren das Kopieren von Inhalten aus dem ersten Bereich in den zweiten Bereich umfasst.
  11. 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.
  12. 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.
  13. 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.
  14. System nach Anspruch 11, wobei der Netzwerkadapter einen Segmenttabellenspeicherbereich umfasst, der auf die mehreren virtuellen Funktionen (202A, 202C) aufgeteilt werden soll.
  15. 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.
  16. 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.
  17. 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.
  18. 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.
  19. 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.
  20. 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.
DE112012004550.5T 2011-10-31 2012-10-08 Verfahren, System und Vorrichtung zur Zustandsmigration für einen Remote Direct Memory Access-Adapter in einer virtuellen Umgebung Active DE112012004550B4 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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