DE112012003342T5 - Dynamisches Anpassen und Begrenzen der Größe des Netzwerkadapterspeichers zur Speicherung von Umsetzungseinträgen für virtuelle Funktionen - Google Patents

Dynamisches Anpassen und Begrenzen der Größe des Netzwerkadapterspeichers zur Speicherung von Umsetzungseinträgen für virtuelle Funktionen Download PDF

Info

Publication number
DE112012003342T5
DE112012003342T5 DE112012003342.6T DE112012003342T DE112012003342T5 DE 112012003342 T5 DE112012003342 T5 DE 112012003342T5 DE 112012003342 T DE112012003342 T DE 112012003342T DE 112012003342 T5 DE112012003342 T5 DE 112012003342T5
Authority
DE
Germany
Prior art keywords
virtual
network
partition
memory
virtual machine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112012003342.6T
Other languages
English (en)
Inventor
Omar Cardona
Vinit Jain
Renato Recio
Jayakrishna Kidambi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112012003342T5 publication Critical patent/DE112012003342T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Es wird ein Ansatz bereitgestellt, bei dem ein System eine erste virtuelle Funktion aus einer Vielzahl virtueller Funktionen auswählt, die auf einem Netzwerkadapter ausgeführt werden, der einen Speicherbereich aufweist. Als Nächstes ordnet das System im Speicherbereich einen Speicher zu, der der ersten virtuellen Funktion entspricht. Das System speichert anschließend einen oder mehrere Umsetzungseinträge in der zugeordneten Speicherpartition, die zum Senden von Daten genutzt werden, die die erste virtuelle Funktion durchqueren. Das System an sich sendet die Datenpakete unter Nutzung eines oder mehrerer der Umsetzungseinträge vom Netzwerkadapter an ein oder mehrere Ziele. Im Gegenzug ändert das System dynamisch die Größe der Speicherpartition auf der Grundlage einer Größe der Speicherpartition, die zur Speicherung des einen oder der mehreren Umsetzungseinträge genutzt wird.

Description

  • Gebiet der Erfindung
  • Die vorliegende Offenbarung betrifft das dynamische Ändern der Größe von Speicherpartitionen im Onboard-Speicher eines Netzwerkadapters. Insbesondere betrifft die vorliegende Offenbarung das Zuordnen von Partitionen des Onboard-Speichers zu virtuellen Funktionen, die auf dem Netzwerkadapter ausgeführt werden.
  • Hintergrund der Erfindung
  • Physische Netzwerke weisen Switches und Router auf, die Daten zwischen Host-Datenverarbeitungssystemen, Speicherorten und anderen Datenverarbeitungseinheiten transportieren. Die Technologie der Virtualisierung ermöglicht Systemadministratoren, physische Ressourcen in eine „virtuelle” Domäne zu verschieben, die virtuelle Netzwerke, virtuelle Maschinen und virtuelle Switches aufweist. Host-Datenverarbeitungssysteme können eine Netzwerkschnittstellenkarte aufweisen, die, wenn sie virtualisiert ist, eine entsprechende virtuelle Funktion für jede virtuelle Maschine aufweist, die auf dem Host-Datenverarbeitungssystem ausgeführt wird. Virtuelle Funktionen an sich stellen einen „Kanal” zum Senden/Empfangen von Daten zwischen der Netzwerkschnittstelle und den virtuellen Maschinen bereit.
  • Offenbarung der Erfindung
  • Gemäß einer Ausführungsform der vorliegenden Offenbarung wird ein Ansatz bereitgestellt, bei dem ein System eine erste virtuelle Funktion aus einer Vielzahl virtueller Funktionen auswählt, die auf einem Netzwerkadapter ausgeführt werden, der einen Speicherbereich aufweist. Als Nächstes ordnet das System im Speicherbereich einen Speicher zu, der der ersten virtuellen Funktion entspricht. Das System speichert anschließend einen oder mehrere Umsetzungseinträge in der zugeordneten Speicherpartition, die zum Senden von Daten genutzt werden, die die erste virtuelle Funktion durchqueren. Das System an sich sendet die Datenpakete unter Nutzung eines oder mehrerer der Umsetzungseinträge vom Netzwerkadapter an ein oder mehrere Ziele. Im Gegenzug ändert das System dynamisch die Größe der Speicherpartition auf der Grundlage einer Größe der Speicherpartition, die zur Speicherung des einen oder der mehreren Umsetzungseinträge genutzt wird.
  • Die vorliegende Offenbarung betrifft das dynamische Ändern der Größe von Speicherpartitionen im Onboard-Speicher eines Netzwerkadapters. Insbesondere betrifft die vorliegende Offenbarung das Zuordnen von Partitionen des Onboard-Speichers zu virtuellen Funktionen, die auf dem Netzwerkadapter ausgeführt werden, und im Gegenzug das dynamische Ändern der Größe der Speicherpartitionen auf der Grundlage von Anforderungen von Umsetzungseinträgen zur Speicherung von Datenpaketen, die die virtuellen Funktionen durchqueren.
  • Vorzugsweise wird ein Verfahren bereitgestellt, umfassend: Empfangen einer bevorzugten Partitionsgröße und einer maximalen Partitionsgrößenbegrenzung, die einer ersten virtuellen Funktion entspricht, die auf einem Netzwerkadapter ausgeführt wird; Zuordnen einer Speicherposition in einem Speicherbereich auf der Grundlage der bevorzugten Partitionsgröße, wobei die Speicherpartition der ersten virtuellen Funktion entspricht; Speichern eines oder mehrerer Umsetzungseinträge in der Speicherpartition, die zum Senden von Daten genutzt werden, die die erste virtuelle Funktion durchqueren; Senden der Datenpakete vom Netzwerkadapter an ein oder mehrere Ziele, wobei das Senden einen oder mehrere der Umsetzungseinträge nutzt; und dynamisches Ändern der Größe der Speicherpartition bis zur maximalen Partitionsgrößenbegrenzung auf der Grundlage einer Größe der Speicherpartition, die zur Speicherung des einen oder der mehreren Umsetzungseinträge genutzt wird.
  • Vorzugsweise wird ein Informationsverarbeitungssystem bereitgestellt, aufweisend: einen oder mehrere Prozessoren; einen Speicher, der mit mindestens einem der Prozessoren verbunden ist; eine Gruppe von Computerprogrammanweisungen, die im Speicher gespeichert sind und durch mindestens einen der Prozessoren ausgeführt werden, um die folgenden Aktionen durchzuführen: Empfangen einer bevorzugten Partitionsgröße und einer maximalen Partitionsgrößenbegrenzung, die einer ersten virtuellen Funktion entspricht, die auf einem Netzwerkadapter ausgeführt wird; Zuordnen einer Speicherposition in einem Speicherbereich auf der Grundlage der bevorzugten Partitionsgröße, wobei die Speicherpartition der ersten virtuellen Funktion entspricht; Speichern eines oder mehrerer Umsetzungseinträge in der Speicherpartition, die zum Senden von Daten genutzt werden, die die erste virtuelle Funktion durchqueren; Senden der Datenpakete vom Netzwerkadapter an ein oder mehrere Ziele, wobei das Senden einen oder mehrere der Umsetzungseinträge nutzt; und dynamisches Ändern der Größe der Speicherpartition bis zur maximalen Partitionsgrößenbegrenzung auf der Grundlage einer Größe der Speicherpartition, die zur Speicherung des einen oder der mehreren Umsetzungseinträge genutzt wird.
  • Das Vorstehende ist eine Zusammenfassung und enthält daher notwendigerweise Vereinfachungen, Verallgemeinerungen und Auslassungen in Bezug auf Details; infolgedessen wird für den Fachmann klar sein, dass die Zusammenfassung lediglich zur Veranschaulichung dient und in keiner Weise eine Einschränkung darstellt. Weitere Aspekte, erfindungsgemäße Merkmale und Vorteile der vorliegenden Offenbarung, die ausschließlich in den Ansprüchen definiert sind, werden anhand der folgenden detaillierten Beschreibung klar, die keinen einschränkenden Charakter trägt.
  • Kurzbeschreibung der Zeichnungen
  • Die vorliegende Offenbarung wird leichter verständlich, und ihre zahlreichen Merkmale und Vorteile der Erfindung werden dem Fachmann durch Bezugnahme auf die beigefügten Zeichnungen deutlich, wobei:
  • 1 ein Schema ist, das eine virtuelle Ethernet-Bridge zeigt, die auf der Grundlage von Nutzungsanforderungen einer virtuellen Maschine die Größe von Partitionen des Onboard-Speichers dynamisch ändert;
  • 2 ein Schema ist, das eine virtuelle Ethernet-Bridge zeigt, die eine Cache-Zwischenspeicherhierarchie nutzt, um Umsetzungseinträge zu speichern, die virtuellen Funktionen für ausgehende Datendurchquerungen entsprechen;
  • 3 ein Schema ist, das eine weitere Ausführungsform eines Mechanismus einer Cache-Zwischenspeicherhierarchie zeigt, die eine Steuereinheit eines Überlagerungsnetzwerk-Switch nutzt;
  • 4 ein Schema ist, das einen Hypervisor zeigt, der Ressourcen auf einem Host-System bereitstellt;
  • 5 ein Schema ist, das eine Steuereinheit eines Überlagerungsnetzwerk-Switch zeigt, die einem Netzwerkadapter über eine Switch-Funktion Speicherzuordnungsinformationen bereitstellt;
  • 6 ein Ablaufplan ist, der Schritte zeigt, die in einem Hypervisor unternommen werden, der virtuelle Funktionen und Speicherpartitionen für entsprechende virtuelle Maschinen bereitstellt;
  • 7A ein beispielhaftes Schema ist, das einen Umsetzungseintrag zeigt, der in einer Partition eines Onboard-Speichers oder in einem externen Speicherbereich gespeichert ist;
  • 7B ein beispielhaftes Schema ist, das eine Partition eines Onboard-Speichers zeigt, deren Größe zwischen einer minimalen Partitionsgröße und einer maximalen Partitionsgrößenbegrenzung dynamisch geändert wird;
  • 8 ein Ablaufplan ist, der Schritte zeigt, die in einem Überlagerungsnetzwerk-Datenverkehrsmodul (Quell-Datenverkehrsmodul) unternommen werden, um nach einem Umsetzungseintrag zu suchen, der zum Senden eines Datenpakets an eine virtuelle Zielmaschine genutzt wird;
  • 9 ein Ablaufplan ist, der Schritte zeigt, die in einem Datenverkehrsmodul unternommen werden, um nach einem Umsetzungseintrag zu suchen, der einem Datenpaket entspricht, das von einer virtuellen Quellmaschine mit einem Ziel auf einer virtuellen Zielmaschine gesendet wurde;
  • 10 ein Ablaufplan ist, der Schritte in einer einer virtuellen Funktion entsprechenden Speicherpartitionsgröße zeigt, um mehr Umsetzungseinträge für die virtuelle Funktion zu speichern;
  • 11 ein Ablaufplan ist, der Schritte beim Auflösen eines Umsetzungseintrags zeigt;
  • 12 ein Schema ist, das eine Steuereinheit eines Überlagerungsnetzwerk-Switch zeigt, die einen verteilten Richtliniendienst auf Umsetzungen physischer Pfade (Umsetzungseinträge) abfragt, die einer bestimmten virtuellen Maschine entsprechen;
  • 13 ein Schema ist, das virtuelle Netzwerkabstraktionen zeigt, die auf einen physischen Netzwerkraum aufgespielt sind;
  • 14 ein Blockschaltbild eines Datenverarbeitungssystems ist, in dem die hierin beschriebenen Verfahren realisiert sein können; und
  • 15 eine Erweiterung der in 14 gezeigten Datenverarbeitungssystem-Umgebung bereitstellt, um zu veranschaulichen, dass die hierin beschriebenen Verfahren auf einer großen Vielfalt von Datenverarbeitungssystemen durchgeführt werden können, die in einer vernetzten Umgebung arbeiten.
  • Ausführliche Beschreibung der bevorzugten Ausführungsform
  • Die hierin verwendete Terminologie dient ausschließlich zur Beschreibung bestimmter Ausführungsformen und ist nicht als Einschränkung der Offenbarung gedacht. Die hier verwendeten Einzahlformen „ein/eine” und „der/die/das” schließen auch die Pluralformen ein, sofern im Kontext nicht ausdrücklich etwas anderes angegeben ist. Es versteht sich des Weiteren, dass die Begriffe „weist auf bzw. „aufweisen/aufweisend” bei Verwendung in der vorliegenden Beschreibung das Vorhandensein angegebener Merkmale, Ganzzahlen, Schritte, Operationen, Elemente und/oder Komponenten bezeichnen, jedoch das Vorhandensein oder die Hinzufügung eines bzw. einer oder mehrerer anderer Merkmale, Ganzzahlen, Schritte, Operationen, Elemente, Komponenten und/oder Gruppen davon nicht ausschließen.
  • Die entsprechenden Strukturen, Materialien, Aktionen und Äquivalente aller Mittel bzw. Schritt-plus-Funktion-Elemente (Steg plus Function Elements) in den folgenden Ansprüchen sollen alle Strukturen, Materialien oder Aktionen zur Ausführung der Funktion in Verbindung mit anderen ausdrücklich beanspruchten Elementen mit einschließen. Die Beschreibung der vorliegenden Offenbarung soll der Veranschaulichung und Beschreibung dienen, ist jedoch nicht vollständig oder auf die Offenbarung in der offenbarten Form beschränkt. Für den Fachmann sind viele Modifikationen und Variationen denkbar, ohne dass diese eine Abweichung vom Schutzbereich und Gedanken der Offenbarung darstellen würden. Die Ausführungsform wurde ausgewählt und beschrieben, um die Grundgedanken und die praktische Anwendung der Offenbarung auf bestmögliche Weise zu erklären und anderen Fachleuten das Verständnis der Offenbarung für verschiedene Ausführungsformen mit verschiedenen Abänderungen für die betreffende betrachtete Verwendung zu ermöglichen.
  • Dem Fachmann wird klar sein, dass Aspekte der vorliegenden Beschreibung der Offenbarung als System, Verfahren oder Computerprogrammprodukt verkörpert sein können. Dementsprechend können Aspekte der vorliegenden Offenbarung die Form einer vollständig in Hardware realisierten Ausführungsform, einer vollständig in Software realisierten Ausführungsform (einschließlich Firmware, residenter Software, Mikrocode usw.) oder einer Ausführungsform annehmen, in der Software- und Hardwareaspekte kombiniert sind, die im vorliegenden Dokument allgemein als „Schaltung”, „Modul” oder „System” bezeichnet werden. Ferner können Aspekte der vorliegenden Offenbarung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien verkörpert ist, auf denen computerlesbarer Programmcode verkörpert ist.
  • Es können beliebige Kombinationen eines oder mehrerer computerlesbarer Medien verwendet werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Zu computerlesbaren Speichermedien können beispielsweise, ohne darauf beschränkt zu sein, ein elektronisches, magnetisches, optisches oder elektromagnetisches System bzw. ein Infrarot- oder Halbleitersystem bzw. eine derartige Vorrichtung oder Einheit oder eine beliebige geeignete Kombination des Vorstehenden gehören. Zu den genaueren Beispielen (unvollständige Liste) computerlesbarer Speichermedien zählen unter anderem folgende: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Nur-Lese-Speicher in Form einer Compact Disc (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder eine beliebige geeignete Kombination des Vorstehenden. Im Kontext des vorliegenden Dokuments kann ein computerlesbares Speichermedium jedes beliebige vergegenständlichte Medium sein, das ein Programm enthalten oder speichern kann, das von oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Befehlsausführung genutzt werden kann.
  • Ein computerlesbares Signalmedium kann unter anderem ein im Basisband oder als Teil einer Trägerwelle übertragenes Datensignal mit darin verkörpertem computerlesbarem Programmcode aufweisen. Ein derartiges übertragenes Signal kann eine beliebige Vielfalt von Formen annehmen, einschließlich, ohne darauf beschränkt zu sein, einer elektromagnetischen oder optischen Form oder einer beliebigen geeigneten Kombination davon. Ein computerlesbares Signalmedium kann ein beliebiges computerlesbares Medium sein, bei dem es sich nicht um ein computerlesbares Speichermedium handelt und das ein Programm übertragen, senden oder transportieren kann, das von oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Befehlsausführung genutzt werden kann.
  • Auf einem computerlesbaren Medium verkörperter Programmcode kann unter Verwendung jedes beliebigen geeigneten Mediums, einschließlich, ohne darauf beschränkt zu sein, drahtloser, drahtgebundener Medien, Lichtwellenleitern, HF usw. oder unter Verwendung einer beliebigen geeigneten Kombination des Vorstehenden übertragen werden.
  • Computerprogrammcode zum Ausführen von Operationen bei Aspekten der vorliegenden Offenbarung kann in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen, darunter in einer objektorientierten Programmiersprache wie Java, Smalltalk, C++ oder dergleichen und in herkömmlichen prozeduralen Programmiersprachen wie „C” oder ähnlichen Programmiersprachen geschrieben sein. Der Programmcode kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. Beim letztgenannten Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über eine beliebige Art von Netzwerk verbunden sein, unter anderem über ein lokales Netzwerk (LAN) oder über ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (beispielsweise über das Internet unter Nutzung eines Internet-Dienstanbieters (Internet Service Provider)).
  • Nachstehend sind Aspekte der vorliegenden Offenbarung unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Beschreibung beschrieben. Es versteht sich, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder und Kombinationen von Blöcken in den Ablaufplänen und/oder Blockschaltbildern durch Computerprogrammanweisungen realisiert werden kann bzw. können. Diese Computerprogrammanweisungen können einem Prozessor eines Mehrzweckcomputers, eines Spezialcomputers oder anderen programmierbaren Datenverarbeitungsvorrichtungen bereitgestellt werden, um eine Maschine zu erzeugen, sodass die Anweisungen, die über den Prozessor des Computers oder anderer programmierbarer Datenverarbeitungsvorrichtungen ausgeführt werden, Mittel zum Realisieren der in einem Block bzw. in den Blöcken des Ablaufplans und/oder des Blockschaltbildes angegebenen Funktionen/Aktionen schaffen.
  • Diese Computerprogrammanweisungen können ebenfalls in einem computerlesbaren Medium gespeichert sein, das einen Computer, andere programmierbare Datenverarbeitungsvorrichtungen oder andere Einheiten anweisen kann, in einer bestimmten Weise zu funktionieren, sodass die im computerlesbaren Medium gespeicherten Anweisungen ein Erzeugnis schaffen, das die Anweisungen aufweist, die die in einem Block bzw. in den Blöcken des Ablaufplans und/oder des Blockschaltbildes angegebene Funktion/Aktion realisieren.
  • Die Computerprogrammanweisungen können auch in einen Computer, in andere programmierbare Datenverarbeitungsvorrichtungen oder in andere Einheiten geladen werden, um zu bewirken, dass auf dem Computer, auf anderen programmierbaren Vorrichtungen oder anderen Einheiten eine Reihe von Arbeitsschritten ausgeführt wird, um einen mittels Computer realisierten Prozess zu schaffen, sodass die Anweisungen, die auf dem Computer oder auf anderen programmierbaren Vorrichtungen ausgeführt werden, Prozesse zur Realisierung der in einem Block bzw. in den Blöcken des Ablaufplans und/oder des Blockschaltbildes angegebenen Funktionen/Aktionen bereitstellen.
  • Die nachstehende ausführliche Beschreibung folgt im Allgemeinen dem oben aufgeführten Überblick über die Offenbarung und erläutert und erweitert je nach Notwendigkeit die Definitionen der verschiedenen Aspekte und Ausführungsformen der Beschreibung.
  • Die vorliegende Offenbarung beschreibt einen Mechanismus zur dynamischen Änderung der Größe von Speicherpartitionen im Onboard-Speicher eines Netzwerkadapters. Die Speicherpartitionen entsprechen virtuellen Funktionen, die auf dem Netzwerkadapter ausgeführt werden, von denen jede dynamische Anforderungen an die Speicherung von Umsetzungseinträgen aufweist. Der Onboard-Speicher des Netzwerkadapters an sich wird effizienter genutzt, und nachteilige Begleiterscheinungen der Ausführung mehrerer virtueller Funktionen auf einem Netzwerkadapter (z. B. Verletzungen von Grenzen zwischen Partitionen) werden minimiert.
  • 1 ist ein Schema, das eine virtuelle Ethernet-Bridge zeigt, die auf der Grundlage von Nutzungsanforderungen einer virtuellen Maschine die Größe von Partitionen des Onboard-Speichers dynamisch ändert. Der Host 100 ist ein Datenverarbeitungssystem (z. B. ein Server) und führt virtuelle Maschinen 105 bis 115 aus. Die virtuellen Maschinen 105 bis 115 können durch einen Hypervisor bereitgestellt sein und voneinander unabhängige Betriebssysteme ausführen.
  • Während der Ausführung können die virtuellen Maschinen 105 bis 115 Datenpakete an Ziele senden, zum Beispiel untereinander oder über eine verteilte Überlagerungsnetzwerk-Umgebung 185 an andere virtuelle Maschinen. Zu der verteilten Überlagerungsnetzwerk-Umgebung 185 gehören ein oder mehrere virtuelle Netzwerke, von denen jedes seine eigene eindeutige Überlagerungsnetzwerk-Kennung aufweist, wodurch die virtuellen Netzwerke gleichzeitig über ein oder mehrere physischen Netzwerke betrieben werden können. Die virtuellen Netzwerke werden logisch auf die physischen Netzwerke aufgespielt, wobei Logikrichtlinien verwendet werden, die die Durchquerung eingebundener Datenpakete zwischen einer virtuellen Quellmaschine und einer virtuellen Zielmaschine beschreiben. Virtuelle Netzwerke an sich sind von Einschränkungen der physischen Topologie eines physischen Netzwerks (z. B. Platzierungen von Routern) unabhängig. Die eingebundenen Datenpakete können mehrere virtuelle Netzwerke durchqueren, wozu auch das Durchqueren physischer Einheiten wie zum Beispiel von Switches, Servern und Routern gehört, die die physischen Netzwerke enthalten (weitere Einzelheiten siehe die 12 bis 13 und den entsprechenden Text).
  • Der Host 100 weist außerdem den Netzwerkadapter 120 (z. B. eine Netzwerkschnittstellenkarte) auf, die virtuelle Funktionen 140 bis 150 aufweist (z. B. entfernt angeordnete Netzwerkschnittstellenkarten oder entfernt angeordnete Adapter), die den virtuellen Maschinen 105 bis 115 entsprechen. Bei einer Ausführungsform können die virtuellen Funktionen 140 bis 150 PCIe-Adapter mit eingeschränktem Funktionsumfang sein, die es den virtuellen Maschinen 105 bis 115 ermöglichen, Datenpakete direkt an die virtuelle Ethernet-Bridge 125 zu senden bzw. direkt von dieser zu empfangen, wodurch der auf dem Host 100 ausgeführte Hypervisor umgangen wird.
  • Die virtuelle Ethernet-Bridge 125 weist ein Überlagerungsnetzwerk-Datenverkehrsmodul 130 auf, das Datenpakete von virtuellen Maschinen 105 bis 115 empfängt. Das Überlagerungsnetzwerk-Datenverkehrsmodul 130 erkennt eine virtuelle Zielmaschine (virtuelle Zielmaschine 195) und greift auf einen Onboard-Speicher 135 zu, um einen Umsetzungseintrag abzurufen, der dem physischen Server (Ziel-Host 190) entspricht, der der virtuellen Zielmaschine entspricht.
  • Der Onboard-Speicher 135 weist Speicherpartitionen 152, 156 und 160 auf, in denen Umsetzungseinträge für entsprechende jeweilige virtuelle Funktionen 140 bis 150 gespeichert sind. Die virtuelle Ethernet-Bridge 125 ändert die Größe der Speicherpartitionen 152, 156 und 158, zum Beispiel unter Verwendung des reservierten Speichers 154, 158 und 162, dynamisch auf der Grundlage der Menge von Umsetzungseinträgen, die die virtuellen Funktionen 140 bis 150 nutzen. Die Größe der Speicherpartitionen kann in einer zusammenhängenden Weise geändert werden, oder ihre Größe kann in einer nicht zusammenhängenden Weise geändert werden (weitere Einzelheiten siehe 7B und den entsprechenden Text).
  • Bei einer Ausführungsform werden die maximalen Speichergrenzen eingerichtet, wenn die virtuellen Funktionen bereitgestellt werden, und die Speicherpartitionen werden auf eine „bevorzugte” Partitionsgröße eingestellt. Während der Ausführung kann die Speicherpartition innerhalb angegebener minimaler und maximaler Partitionsgrößen anwachsen bzw. schrumpfen. Bei einer Ausführungsform sind Speicherpartitionen für die virtuellen Maschinen nicht sichtbar, und die Verwaltung von Speicherpartitionen kann innerhalb des Netzwerkadapters 120 stattfinden.
  • Das Überlagerungsnetzwerk-Datenverkehrsmodul 130 enthält die Umsetzungseintrag-Informationen in Überlagerungsnetzwerk-Kopfdaten 170. Als Nächstes bindet das Überlagerungsnetzwerk-Datenverkehrsmodul 130 ein Datenpaket 175 in die Überlagerungsnetzwerk-Kopfdaten 170 ein und sendet das eingebundene Datenpaket 178 über den Ethernet-Port 180 und die verteilte Überlagerungsnetzwerk-Umgebung 185. Der Ziel-Host 100 weist ebenfalls ein Überlagerungsnetzwerk-Datenverkehrsmodul auf, das das eingebundene Datenpaket herauslöst und das Datenpaket an die virtuelle Zielmaschine 195 entsprechend weiterleitet.
  • Bei einer Ausführungsform kann das Überlagerungsnetzwerk-Datenverkehrsmodul 130 feststellen, dass die virtuelle Zielmaschine von derselben virtuellen Ethernet-Bridge 125 verwaltet wird. Bei dieser Ausführungsform bindet das Überlagerungsnetzwerk-Datenverkehrsmodul 130 die Daten unter Umständen nicht ein, sondern sendet das Datenpaket über die entsprechende virtuelle Funktion der virtuellen Zielmaschine direkt an die virtuelle Zielmaschine.
  • Bei noch einer weiteren Ausführungsform kann das Überlagerungsnetzwerk-Datenverkehrsmodul 130 Steuer- und Leitweginformationen von einer Switch-Steuereinheit empfangen, die auf einer anderen virtuellen Maschine ausgeführt wird. Bei dieser Ausführungsform stellt die Switch-Steuereinheit die Steuer- und Leitweginformationen über eine Switch-Funktion bereit (weitere Einzelheiten siehe die 3, 5 und den entsprechenden Text).
  • Bei noch einer weiteren Ausführungsform kann der externe Speicher aufgeteilt sein, um Umsetzungseinträge für bestimmte virtuelle Maschinen zu speichern. Derartiger externer Speicher kann durch die entsprechende virtuelle Maschine, den Hypervisor oder eine Switch-Steuereinheit verwaltet werden, die auf einer separaten virtuellen Maschine ausgeführt wird. Bei dieser Ausführungsform wird eine Cache-Zwischenspeicherhierarchie eingerichtet, um zunächst den Onboard-Speicher 135 auf einen Umsetzungseintrag zu prüfen, anschließend die externen Speicherorte zu prüfen und danach einen verteilten Richtliniendienst abzufragen, wenn der Umsetzungseintrag nicht gefunden wurde (weitere Einzelheiten siehe die 2, 3 und 9 sowie den entsprechenden Text).
  • 2 ist ein Schema, das eine virtuelle Ethernet-Bridge zeigt, die eine Cache-Zwischenspeicherhierarchie nutzt, um Umsetzungseinträge zu speichern, die virtuellen Funktionen für ausgehende Datendurchquerungen entsprechen. Der Mechanismus der Cache-Zwischenspeicherhierarchie entkoppelt Größen der Umsetzungstabelle vom physischen Onboard-Speicher eines Netzwerkadapters, indem externer Speicherplatz auf den entsprechenden virtuellen Maschinen zugeordnet wird (z. B. ein Second-Level-Cache).
  • Der Host 200 weist den Netzwerkadapter 220 auf. Der Netzwerkadapter führt die virtuelle Ethernet-Bridge 230 aus, die zum Onboard-Speicher 240 gehörende separate Speicherpartitionen nutzt, um Umsetzungseinträge zu speichern, die von den virtuellen Funktionen 245 und 250 genutzt werden. Bei einer Ausführungsform kombiniert die virtuelle Ethernet-Bridge 230 das oben erörterte dynamische Ändern der Größe von Speicherpartitionen mit der in 2 gezeigten Zwischenspeicherungshierarchie. Bei einer weiteren Ausführungsform nutzt die virtuelle Ethernet-Bridge 230 bei der in 2 gezeigten Zwischenspeicherungshierarchie unter Umständen nicht das dynamische Ändern der Größe von Speicherpartitionen.
  • Wenn die virtuellen Funktionen 245 und 250 durch einen Hypervisor bereitgestellt werden, kann der Hypervisor außerdem die virtuellen Maschinen 205 und 210 anweisen, Speicher 270 bzw. 280 als Speicherbereiche zuzuweisen, um entsprechende Umsetzungseinträge zu speichern, wenn ihre entsprechende Onboard-Speicherpartition voll ist (weitere Einzelheiten siehe 6 und den entsprechenden Text).
  • Die virtuelle Ethernet-Bridge 230 an sich kann mehr Umsetzungseinträge auf lokaler Ebene (Onboard-Speicher und externer Speicher) speichern, wodurch die Fälle minimiert werden, in denen die virtuelle Ethernet-Bridge 230 eine Abfrage an einen entfernt angeordneten verteilten Richtliniendienst richtet, um einen Umsetzungseintrag zu empfangen. Darüber hinaus ermöglicht die Cache-Zwischenspeicherhierarchie geringere Anforderungen an den Speicher des Netzwerkadapters, da der Speicher der virtuellen Maschine als Second-Level-Cache verwendet wird. Dies senkt Netzwerkadapterkosten und Stromverbrauch und verringert durch die Verwendung kontextgestützter Adaptertabellen den Latenzzeitaufwand zum Abfragen des verteilten Richtlinienservers des Netzwerks.
  • 3 ist ein Schema, das eine weitere Ausführungsform eines Mechanismus einer Cache-Zwischenspeicherhierarchie zeigt, die eine Steuereinheit eines Überlagerungsnetzwerk-Switch nutzt. 3 ähnelt 2 mit Ausnahme der virtuellen Maschine 315, der Steuereinheit 340 des Überlagerungsnetzwerk-Switch, des Speichers 370 und der Switch-Funktion 345. Die Steuereinheit 340 des Überlagerungsnetzwerk-Switch belegt bei einer Ausführungsform den Onboard-Speicher 240 mit Umsetzungseinträgen für die virtuellen Maschinen 205 und 210. Die Switch-Funktion 345 kann eine privilegierte virtuelle Funktion sein, die es der Steuereinheit 340 des Überlagerungsnetzwerk-Switch außerdem ermöglicht; dem physischen Anschluss des Netzwerkadapters 320 Parameter für physische Anschlüsse bereitzustellen und dadurch den physischen Anschluss zu steuern.
  • Bei einer Ausführungsform führt die Steuereinheit 340 des Überlagerungsnetzwerk-Switch Speicherpartitionierungsfunktionen durch, die hierin als durch einen Hypervisor durchgeführt beschrieben sind. Darüber hinaus kann die Steuereinheit 340 des Überlagerungsnetzwerk-Switch auf der virtuellen Maschine 315 Speicher 370 als weitere Cache-Zwischenspeicherebene (Level-3-Cache) zuordnen, der durch die virtuelle Ethernet-Bridge 230 verwendet wird, um Umsetzungseinträge zu speichern bzw. abzurufen (weitere Einzelheiten siehe 11 und den entsprechenden Text).
  • Wenn die virtuelle Ethernet-Bridge 230 im Onboard-Speicher 240 oder im externen Speicher (der entweder durch die entsprechende virtuelle Maschine oder durch die Steuereinheit 340 des Überlagerungsnetzwerk-Switch verwaltet wird) keinen Umsetzungseintrag finden kann, tauscht die Steuereinheit 340 des Überlagerungsnetzwerk-Switch bei einer weiteren Ausführungsform Daten mit einem verteilten Richtliniendienst aus, um Umsetzungseinträge zu empfangen, die nicht lokal auf dem Host 200 oder Netzwerkadapter 220 gespeichert sind (weitere Einzelheiten siehe 12 und den entsprechenden Text).
  • 4 ist ein Schema, das einen Hypervisor zeigt, der Ressourcen auf einem Host-System bereitstellt. Der Hypervisor 410 weist einen Ressourcenbereitstellungsmanager 420 auf, der Ressourcen innerhalb des Hosts 400 wie zum Beispiel eine virtuelle Maschine 425 bereitstellt, die einer virtuellen Funktion 445 und einer physischen Funktion 440 entspricht. Die physische Funktion 440 ist bei einer Ausführungsform ein PCIe-Adapter mit vollem Funktionsumfang, der es einem Hypervisor 410 ermöglicht, andere Funktionen auf dem Netzwerkadapter 430 zu erzeugen sowie den Betriebszustand der virtuellen Ethernet-Bridge 460 zu verwalten (z. B. Verwalten von Fehlern und Interrupts).
  • Wie bereits zuvor erläutert, ist die virtuelle Funktion 445 ein PCIe-Adapter mit eingeschränktem Funktionsumfang, der es der virtuellen Maschine 425 ermöglicht, Datenpakete direkt an die virtuelle Ethernet-Bridge 460 zu senden bzw. direkt von dieser zu empfangen, wodurch der Hypervisor 410 umgangen wird.
  • Bei einer Ausführungsform sendet der Ressourcenbereitstellungsmanager 420 während des Bereitstellens eine Speicherzuordnung 450 an die virtuelle Ethernet-Bridge 460, die eine minimale, bevorzugte und maximale Speicherpartitionsgröße aufweist. Die virtuelle Ethernet-Bridge 460 an sich konfiguriert wie hierin erläutert eine Speicherpartition, die der virtuellen Funktion 445 im Onboard-Speicher 470 entspricht.
  • 5 ist ein Schema, das eine Steuereinheit eines Überlagerungsnetzwerk-Switch zeigt, die einem Netzwerkadapter über eine Switch-Funktion Speicherzuordnungsinformationen bereitstellt.
  • Eine virtuelle Maschine 510 wird auf einem Host 500 ausgeführt und weist eine Steuereinheit 520 des Überlagerungsnetzwerk-Switch auf, die eine Switch-Funktion 550 nutzt, um eine Speicherzuordnung 530 an eine virtuelle Ethernet-Bridge 560 zu übergeben. Bei einer Ausführungsform konfiguriert ein Hypervisor die Switch-Funktion 550 gemäß SR-IOV-Richtlinien und weist eine MAC-Adresse aus einem Bereich von MAC-Adressen zu, die dem Netzwerkadapter 540 zur Verfügung stehen. Diese MAC-Adresse wird auch der anfordernden virtuellen Maschine zugewiesen (virtuelle Maschine 510). Die Switch-Funktion ist bei einer Ausführungsform eine privilegierte virtuelle Funktion, die ein Anschlussverwaltungsfeld aufweist. Das Anschlussverwaltungsfeld ermöglicht der Steuereinheit des Überlagerungsnetzwerk-Switch, Parameter für physische Anschlüsse (z. B. MTU-Größe, Aktivierung der Anschlussspiegelung usw.) an den Netzwerkadapter 540 zusenden und dadurch den physischen Anschluss zu steuern. Darüber hinaus ermöglicht das Anschlussverwaltungsfeld der Steuereinheit des Überlagerungsnetzwerk-Switch, die zum Onboard-Speicher 570 gehörende Überlagerungsnetzwerk-Datenbank mit Umsetzungseinträgen (Umsetzungen physischer Pfade) zu belegen, die Überlagerungsnetzwerk-Richtlinien entsprechen.
  • 6 ist ein Ablaufplan, der Schritte zeigt, die in einem Hypervisor unternommen werden, der virtuelle Funktionen und Speicherpartitionen für entsprechende virtuelle Maschinen bereitstellt. Die Hypervisor-Verarbeitung beginnt bei 600, wonach der Hypervisor eine Anforderung von einem Administrator empfängt, eine virtuelle Maschine mit einer Überlagerungsnetzwerk-Domäne zu verbinden (Schritt 605). Der Hypervisor an sich erzeugt bei Schritt 610 auf dem Netzwerkadapter 615 eine der virtuellen Funktionen 625, die der virtuellen Maschine entspricht, und stellt im Onboard-Speicher 620 eine Onboard-Speicherpartition bereit. Bei einer Ausführungsform konfiguriert der Hypervisor die virtuelle Funktion gemäß SR-IOV-Richtlinien und weist eine MAC-Adresse aus einem Bereich von MAC-Adressen zu, die dem Netzwerkadapter 615 zur Verfügung stehen. Dieselbe MAC-Adresse wird der anfordernden virtuellen Maschine zugewiesen.
  • Es wird eine Ermittlung dahingehend durchgeführt, ob genug Onboard-Speicherplatz vorhanden ist, um die Partitionsanforderung unterzubringen (Entscheidung 630). Wenn genug Speicherplatz zur Verfügung steht, verzweigt die Entscheidung 630 zum „Ja”-Zweig, wonach der Hypervisor, wenn Cache-Zwischenspeicherhierarchie aktiviert ist, die virtuelle Maschine anweist, externen Speicher zu partitionieren, um Umsetzungseinträge zu speichern. Bei einer Ausführungsform kann der Hypervisor außerdem die Switch-Steuereinheit anweisen, Speicherplatz für die virtuelle Maschine zu partitionieren (weitere Einzelheiten siehe 3 und den entsprechenden Text).
  • Anderenfalls verzweigt die Entscheidung 630, wenn nicht genug Onboard-Speicherplatz zur Verfügung steht, zum „Nein”-Zweig, wonach der Hypervisor leere Steckplätze als benötigt zurückfordert, die nach wie vor bestehende virtuelle Funktionen mit ihrer bevorzugten Speicherpartitionsgröße bereitstellen (Schritt 635). Zum Beispiel kann eine bestehende virtuelle Funktion eine bevorzugte Speicherpartitionsgröße aufweisen, um 200 Umsetzungseinträge zu speichern, und die bestehende Speicherpartition der virtuellen Funktion kann eine Größe zur Speicherung von 300 Umsetzungseinträgen aufweisen, von denen 50 nicht genutzt werden. Bei diesem Beispiel fordert der Hypervisor die 50 nicht verwendeten Zuweisungsbereiche zurück, um sie der neuen virtuellen Funktion zuzuweisen.
  • Es wird eine Ermittlung dahingehend durchgeführt, ob nach dem Zurückfordern bestimmter Speicherzuweisungsbereiche genug Onboard-Speicherplatz vorhanden ist, um die Partitionsanforderung unterzubringen (Entscheidung 640). Wenn genug Speicherplatz zur Verfügung steht, verzweigt die Entscheidung 640 zum „Ja”-Zweig, wonach der Hypervisor gegebenenfalls die virtuelle Maschine anweist, externen Speicher zu partitionieren, um Umsetzungseinträge zu speichern.
  • Anderenfalls verzweigt die Entscheidung 640, wenn nach dem Zurückfordern einiger Speicherzuweisungsbereiche noch immer nicht genug Onboard-Speicherplatz zur Verfügung steht, zum „Nein”-Zweig, wonach der Hypervisor leere Zuweisungsbereiche als benötigt zurückfordert, die nach wie vor bestehende virtuelle Funktionen mit ihrer Mindest-Speicherpartitionsgröße bereitstellen (Schritt 645).
  • Es wird eine Ermittlung dahingehend durchgeführt, ob nach dem Zurückfordern bestimmter Speicherzuweisungsbereiche bis zu ihrem Mindestwert genug Onboard-Speicherplatz vorhanden ist, um die Partitionsanforderung unterzubringen (Entscheidung 650). Wenn genug Speicherplatz zur Verfügung steht, verzweigt die Entscheidung 650 zum „Ja”-Zweig, wonach der Hypervisor gegebenenfalls die virtuelle Maschine anweist, externen Speicher zu partitionieren, um Umsetzungseinträge zu speichern.
  • Anderenfalls verzweigt die Entscheidung 650, wenn nach dem Zurückfordern weiterer Speicherzuweisungsbereiches noch immer nicht genug Onboard-Speicherplatz zur Verfügung steht, zum „Nein”-Zweig, wonach der Hypervisor bei Schritt 655 einen Bereitstellungsfehler meldet und der Zweig bei 660 endet.
  • Es wird eine Ermittlung dahingehend durchgeführt, ob weitere virtuelle Maschinen anfordern, mit der Überlagerungsnetzwerk-Domäne verbunden zu werden (Entscheidung 670). Wenn weitere Maschinen verbunden werden möchten, verzweigt die Entscheidung 670 zum „Ja”-Zweig, der in einer Schleife zurückführt, um weitere virtuelle Funktionen zu instanziieren und zu konfigurieren, die den virtuellen Maschinen entsprechen. Dieses Durchlaufen der Schleife wird fortgesetzt, bis der Hypervisor das Instanziieren und Konfigurieren virtueller Funktionen für anfordernde virtuelle Maschinen abgeschlossen hat, wobei die Entscheidung 670 an diesem Punkt zum „Nein”-Zweig verzweigt, wonach das Bereitstellen von Ressourcen durch den Hypervisor bei 680 endet. Wie sich der Fachmann vorstellen kann, kann der Hypervisor während des Betriebs des Hosts 100 Ressourcen dynamisch bereitstellen (Hinzufügen von Ressourcen und Entfernen von Ressourcen).
  • 7A ist ein beispielhaftes Schema, das einen Umsetzungseintrag zeigt, der in einer Partition eines Onboard-Speichers oder in einem externen Speicherbereich gespeichert ist. Ein Umsetzungseintrag 700 weist Felder 705 bis 730 auf. Das Feld 705 weist eine IP-Adresse einer virtuellen Quellmaschine auf, die der virtuellen Maschine entspricht, die ein Datenpaket auslöst. Eine Kennung 710 des Quell-Überlagerungsnetzwerks weist eine Kennung eines virtuellen Netzwerks auf, zu dem die virtuelle Quellmaschine gehört. Das Feld 715 weist eine IP-Adresse einer virtuellen Zielmaschine auf, die der virtuellen Zielmaschine des Datenpakets entspricht. Das Feld 720 weist eine Kennung eines virtuellen Netzwerks auf, zu dem die virtuelle Zielmaschine gehört, bei dem es sich um dieselbe Kennung wie die des Quell-Überlagerungsnetzwerks handeln kann.
  • Die Felder 725 und 730 weisen Informationen über physische Adressen auf, die zu dem Host-System (Server) gehören, das die virtuelle Zielmaschine ausführt. Das Feld 725 weist die MAC-Adresse des Zielservers auf, und das Feld 730 weist die IP-Adresse des Zielservers auf. Bei einer Ausführungsform weist der Umsetzungseintrag 700 andere Informationen in Bezug auf den Leitweg des Datenpakets durch andere Einrichtungen wie zum Beispiel eine Firewall auf.
  • 7B ist ein beispielhaftes Schema, das eine Partition eines Onboard-Speichers zeigt, deren Größe zwischen einer minimalen Partitionsgröße und einer maximalen Partitionsgrößenbegrenzung dynamisch geändert wird. Der Onboard-Speicher 740 weist die Partition 750 auf. Eine virtuelle Ethernet-Bridge für Umsetzungseinträge kann bei der Anfangskonfiguration der Partition 750 eine bevorzugte Partitionsgröße (760) zuordnen. Da die virtuelle Ethernet-Bridge während des Betriebs Umsetzungseinträge für die entsprechende virtuelle Funktion speichert bzw. entfernt, kann die virtuelle Ethernet-Bridge die Größe der Partition 750 bis zu einer maximalen begrenzenden Partitionsgröße (780) oder einer minimalen Partitionsgröße (770) dynamisch ändern.
  • Das Beispiel in 7B zeigt einen Mechanismus zur zusammenhängenden Speicherpartitionierung. Wie sich der Fachmann vorstellen kann, kann der Onboard-Speicher 740 nicht zusammenhängend partitioniert werden, sodass Speicherbereiche für eine bestimmte virtuelle Funktion zwischen Speicherbereichen für andere virtuelle Funktionen verschachtelt sind.
  • 8 ist ein Ablaufplan, der Schritte zeigt, die in einem Überlagerungsnetzwerk-Datenverkehrsmodul (Quell-Datenverkehrsmodul) unternommen werden, um nach einem Umsetzungseintrag zu suchen, der zum Senden eines Datenpakets an eine virtuelle Zielmaschine genutzt wird.
  • Die Verarbeitung im Quell-Datenverkehrsmodul beginnt bei 800, wonach das Quell-Datenverkehrsmodul bei einer virtuellen Funktion ein Datenpaket empfängt, das von einer virtuellen Quellmaschine 808 gesendet wurde (Schritt 805). Das Quell-Datenverkehrsmodul sucht in einer Speicherpartition, die der virtuellen Funktion entspricht, einen Umsetzungseintrag, der zur virtuellen Quellmaschine 808 und virtuellen Zielmaschine 880 gehört. Zum Suchprozess gehört das Zugreifen auf den Onboard-Speicher 812, und es kann hierzu das Abfragen des Managers 814 für externen Cache-Zwischenspeicher und/oder das Abfragen des verteilten Richtliniendienstes 815 gehören (vordefinierter Prozessblock 810, weitere Einzelheiten siehe 9 und den entsprechenden Text).
  • Als Nächstes bindet das Quell-Datenverkehrsmodul bei Schritt 818 das Datenpaket unter Verwendung des Umsetzungseintrags ein und sendet das eingebundene Datenpaket über ein oder mehrere virtuelle Netzwerke, die auf das physische Netzwerk 825 aufgespielt sind (Schritt 820).
  • Die Verarbeitung im Ziel-Datenverkehrsmodul beginnt bei 845, wonach das Ziel-Datenverkehrsmodul bei Schritt 850 das eingebundene Datenpaket empfängt. Bei Schritt 855 löst das Ziel-Datenverkehrsmodul das Datenpaket heraus und ermittelt, ob das Quell-Datenverkehrsmodul den jüngsten Umsetzungseintrag verwendet hat (Entscheidung 860). Zum Beispiel kann das Quell-Datenverkehrsmodul einen veralteten Umsetzungseintrag genutzt haben, der das Datenpaket zur falschen Host-Einheit leitet (weitere Einzelheiten siehe 7A und den entsprechenden Text).
  • Wenn das Datenpaket mit einem veralteten Datenpaket eingebunden wurde, verzweigt die Entscheidung 860 zum „Ja”-Zweig, wonach das Ziel-Datenverkehrsmodul eine Nachricht an das Quell-Datenverkehrsmodul sendet (Schritt 865), die auf den in seinem Wert geminderten Umsetzungseintrag hinweist, und der Zweig endet bei 870.
  • Beim Quell-Datenverkehrsmodul stellt das Quell-Datenverkehrsmodul fest, dass das Ziel-Datenverkehrsmodul die Nachricht gesendet hat (Entscheidung 830), und verzweigt zum „Ja”-Zweig, um einen aktualisierten Umsetzungseintrag zu übernehmen, zum Beispiel vom verteilten Richtliniendienst. Anderenfalls verzweigt die Entscheidung 830, wenn das Quell-Datenverkehrsmodul keine Nachricht empfängt, zum „Nein”-Zweig, wonach die Verarbeitung im Quell-Datenverkehrsmodul bei 840 endet.
  • Unter erneuter Bezugnahme auf das Ziel-Datenverkehrsmodul verzweigt die Entscheidung 860, wenn die Daten mit dem korrekten Umsetzungseintrag eingebunden wurden, zum „Nein”-Zweig, wonach das Ziel-Datenverkehrsmodul das herausgelöste Datenpaket bei Schritt 875 zur virtuellen Zielmaschine 880 weiterleitet und die Verarbeitung bei 890 endet.
  • 9 ist ein Ablaufplan, der Schritte zeigt, die in einem Datenverkehrsmodul unternommen werden, um nach einem Umsetzungseintrag zu suchen, der einem Datenpaket entspricht, das von einer virtuellen Quellmaschine mit einem Ziel auf einer virtuellen Zielmaschine gesendet wurde. Die Verarbeitung beginnt bei 900, wonach das Datenverkehrsmodul im Onboard-Speicher 812 eine Speicherpartition zu einer virtuellen Funktion erkennt, die der virtuellen Quellmaschine entspricht.
  • Bei Schritt 910 prüft das Datenverkehrsmodul den Onboard-Speicher 812 auf den Umsetzungseintrag. Der Onboard-Speicher 812 ist ein Speicherbereich auf dem Netzwerkadapter und weist eine Speicherposition zu jeder virtuellen Funktion auf, die auf dem Netzwerkadapter ausgeführt wird. Es wird eine Ermittlung dahingehend vorgenommen, ob der Onboard-Speicher 812 den Umsetzungseintrag aufweist (Entscheidung 915). Wenn der Onboard-Speicher 812 einen Umsetzungseintrag aufweist, verzweigt die Entscheidung 915 zum „Ja”-Zweig, wonach das Datenverkehrsmodul bei Schritt 920 den Umsetzungseintrag auswählt und bei 925 zurückkehrt.
  • Anderenfalls verzweigt die Entscheidung 915, wenn der Onboard-Speicher 812 den Umsetzungseintrag nicht aufweist, zum „Nein”-Zweig, wonach eine Ermittlung dahingehend vorgenommen wird, ob in der entsprechenden Speicherpartition der virtuellen Funktion im Onboard-Speicher 812 ein Eintragszuweisungsbereich zur Verfügung steht (in Vorbereitung des Suchens und Speicherns des Umsetzungseintrags im Onboard-Speicher 812). Wenn die Speicherpartition der virtuellen Funktion keinen verfügbaren Zuweisungsbereich aufweist, verzweigt die Entscheidung 930 zum „Nein”-Zweig, wonach das Datenverkehrsmodul (oder eine entsprechende virtuelle Ethernet-Bridge) eine Reihe von Schritten zur Auflösung von Partitionsplatz durchläuft, um einen oder mehrere verfügbare Zuweisungsbereiche zu der Speicherpartition hinzuzufügen (vordefinierter Prozessblock 935, weitere Einzelheiten siehe 10 und den entsprechenden Text).
  • Anderenfalls verzweigt die Entscheidung, wenn ein Zuweisungsbereich zur Verfügung steht, zum „Ja”-Zweig, wonach eine Ermittlung dahingehend vorgenommen wird, ob eine Cache-Zwischenspeicherhierarchie aktiviert ist (Entscheidung 940). Zum Beispiel kann eine virtuelle Funktion Onboard-Speicher sowie externen Speicher nutzen, um Umsetzungseinträge zu speichern (z. B. Host-Speicherplatz). Wenn keine Cache-Zwischenspeicherhierarchie aktiviert ist, verzweigt die Entscheidung 940 zum „Nein”-Zweig, wonach das Datenverkehrsmodul den Umsetzungseintrag (z. B. über eine Switch-Steuereinheit) bei Schritt 945 vom verteilten Richtliniendienst 815 anfordert und empfängt. Der verteilte Richtliniendienst 815 kann zum Beispiel ein auf Servern beruhendes System sein, das Richtlinien zum Senden und Empfangen von Datenpaketen über ein Überlagerungsnetzwerk verwaltet, das ein oder mehrere virtuelle Netzwerke aufweist (weitere Einzelheiten siehe die 12 bis 13 und den entsprechenden Text).
  • Anderenfalls verzweigt die Entscheidung 940, wenn eine Cache-Zwischenspeicherhierarchie aktiviert ist, zum „Ja”-Zweig, wonach das Datenverkehrsmodul einen oder mehrere Manager 814 für externen Cache-Zwischenspeicher abfragt, um den Umsetzungseintrag zu suchen. Bei einer Ausführungsform nutzt das Datenverkehrsmodul eine virtuelle Funktion, um den Umsetzungseintrag im Speicher transparent abzurufen, der der entsprechenden virtuellen Maschine zugeordnet ist (z. B. eine DMA-Leseoperation), wodurch keine aktive Beteiligung durch die virtuelle Maschine erforderlich ist. Wenn das Datenverkehrsmodul den Umsetzungseintrag nicht bei einem der Manager 814 für externen Cache-Zwischenspeicher findet, kann das Datenverkehrsmodul den verteilten Richtliniendienst 815 abfragen (vordefinierter Prozessblock 955, weitere Einzelheiten siehe 11 und den entsprechenden Text).
  • Bei Schritt 980 wählt das Datenverkehrsmodul den Umsetzungseintrag aus, speichert ihn in einem zur Verfügung stehenden Zuweisungsbereich, der der entsprechenden Speicherpartition der virtuellen Funktion zugeordnet ist (der sich im Onboard-Speicher 812 befindet), und kehrt bei 990 zurück.
  • 10 ist ein Ablaufplan, der Schritte in einer einer virtuellen Funktion entsprechenden Speicherpartitionsgröße zeigt, um mehr Umsetzungseinträge für die virtuelle Funktion zu speichern. Die Verarbeitung beginnt bei 1000, wonach eine Ermittlung dahingehend vorgenommen wird, ob die Größe der Speicherpartition der maximalen Partitionsgrößenbeschränkung entspricht (Entscheidung 1010). Wenn die Größe der Partition nicht der maximalen Begrenzung entspricht, verzweigt die Entscheidung 1010 zum „Nein”-Zweig, wonach die Verarbeitung einen Betrag ermittelt, um den die Speicherpartition auf der Grundlage eines oder mehrerer Partitionsparameter bis zur maximalen Begrenzung zu vergrößern ist. Wie hierin erörtert, kann die Verarbeitung einen Ansatz verwenden, bei dem die Speicherpartition verstreut in nicht zusammenhängenden Abschnitten vergrößert wird, oder sie kann einen Ansatz zur Vergrößerung in zusammenhängenden Abschnitten verwenden, wie in 7B gezeigt. Die Verarbeitung kehrt bei 1060 zurück.
  • Anderenfalls verzweigt die Entscheidung 1010, wenn die Größe der Speicherpartition der maximalen Begrenzung entspricht, zum „Ja”-Zweig, wonach die Verarbeitung die bestehenden Umsetzungen analysiert, die in der Speicherpartition gespeichert sind, und einen zu entfernenden oder mehrere zu entfernende Umsetzungseinträge erkennt (z. B. durch Verwenden eines Am-längsten-nicht-verwendet-Algorithmus (least recently used algorithm, LRU algorithm) (Schritt 1040). Die Verarbeitung kehrt bei 1060 zurück.
  • 11 ist ein Ablaufplan, der Schritte beim Auflösen eines Umsetzungseintrags zeigt. Die Verarbeitung beginnt bei 1100, wonach die Verarbeitung bei Schritt 1110 eine erste potenzielle externe Speicherstelle auswählt. Beispielsweise kann eine Cache-Zwischenspeicherhierarchie so gestaltet sein, dass nach der Prüfung eines Onboard-Speicherbereiches durch ein Datenverkehrsmodul das Datenverkehrsmodul danach einen Speicherbereich einer virtuellen Maschine und anschließend einen Speicherbereich einer Switch-Funktion prüft. Darüber hinaus kann ein Hypervisor der virtuellen Funktion Speicher zuweisen, der in die Speicherhierarchie einbezogen wird.
  • Bei Schritt 1120 fragt die Verarbeitung den ausgewählten Manager für externen Cache-Zwischenspeicher wie zum Beispiel einen der Manager 814 für externen Cache-Zwischenspeicher (virtuelle Quellmaschine 965, Switch-Steuereinheit 970 oder Hypervisor 975) ab. Bei einer Ausführungsform sucht das Datenverkehrsmodul im externen Speicher nach dem Umsetzungseintrag. Bei einer weiteren Ausführungsform nutzt das Datenverkehrsmodul eine virtuelle Funktion, um transparent nach dem Umsetzungseintrag in dem Speicher zu suchen, der der entsprechenden virtuellen Maschine zugeordnet ist (z. B. DMA-Leseoperation), wodurch keine aktive Beteiligung durch die virtuelle Maschine erforderlich ist. Es wird eine Ermittlung dahingehend vorgenommen, ob der Umsetzungseintrag gefunden wurde (Entscheidung 1130). Wenn der Umsetzungseintrag gefunden wurde, verzweigt die Entscheidung 1130 zum „Ja”-Zweig, wonach die Verarbeitung bei Schritt 1135 den Umsetzungseintrag abruft und bei 1140 zurückkehrt.
  • Anderenfalls verzweigt die Entscheidung 1130, wenn der Umsetzungseintrag nicht gefunden wurde, zum „Nein”-Zweig, wonach eine Ermittlung dahingehend vorgenommen wird, ob weitere externe Cache-Zwischenspeicherstellen in der Cache-Zwischenspeicherhierarchie abzufragen sind (Entscheidung 1150). Wenn weitere externe Cache-Zwischenspeicherstellen abzufragen sind, verzweigt die Entscheidung 1150 zum „Ja”-Zweig, um einen anderen Manager für Cache-Zwischenspeicher auszuwählen und abzufragen. Dieses Durchlaufen der Schleife wird fortgesetzt, bis keine weiteren Manager für externen Cache-Zwischenspeicher abzufragen sind, wobei die Entscheidung 1150 an diesem Punkt zum „Nein”-Zweig verzweigt, wonach die Verarbeitung bei Schritt 1160 den verteilten Richtliniendienst 815 abfragt und den Umsetzungseintrag empfängt. Die Verarbeitung kehrt bei 1180 zurück.
  • 12 ist ein Schema, das eine Steuereinheit eines Überlagerungsnetzwerk-Switch zeigt, die einen verteilten Richtliniendienst auf Umsetzungen physischer Pfade (Umsetzungseinträge) abfragt, die einer bestimmten virtuellen Maschine entsprechen. Der Host 1210 befindet sich im physischen Netzwerk 1200 und weist eine Steuereinheit 1220 des Überlagerungsnetzwerk-Switch auf, die auf der virtuellen Maschine 1215 ausgeführt wird.
  • Die Steuereinheit 1220 des Überlagerungsnetzwerk-Switch fragt den Richtlinienserver 1235 des virtuellen Netzwerks ab, bei dem es sich um einen lokalen Richtlinienserver handelt, der Richtlinien und Umsetzungen physischer Pfade verwaltet, die zum virtuellen Netzwerk der virtuellen Maschine 1215 gehören. Bei einer Ausführungsform sind Richtlinienserver für unterschiedliche Netzwerke benachbart und unterscheiden Richtlinienanforderungen von unterschiedlichen Switch-Steuereinheiten anhand ihrer entsprechenden Überlagerungsnetzwerk-Kennung.
  • Der verteilte Richtliniendienst 950 ist hierarchisch strukturiert, und wenn der Richtlinienserver 1235 des virtuellen Netzwerks keine entsprechende Umsetzung eines physischen Pfades aufweist, fragt der Richtlinienserver 1235 des virtuellen Netzwerks den Stamm-Richtlinienserver 1240 auf die Richtlinie oder Umsetzung eines physischen Pfades hin ab. Im Gegenzug kann der Stamm-Richtlinienserver 1240 an den Richtlinienserver 1235 des virtuellen Netzwerks entweder die Umsetzung eines physischen Pfades oder den Hinweis auf einen anderen Server senden, der auf die Umsetzung eines physischen Pfades hin abzufragen ist (z. B. die Kennung des Richtlinienservers 1250 des virtuellen Netzwerks). Bei Eintreten des letztgenannten Falles fragt der Richtlinienserver 1230 des virtuellen Netzwerks den Richtlinienserver 1250 des virtuellen Netzwerks auf die Umsetzung eines physischen Pfades hin ab.
  • Sobald der Richtlinienserver 1235 des virtuellen Netzwerks die Umsetzung eines physischen Pfades übernimmt, sendet der Richtlinienserver 1235 des virtuellen Netzwerks die Umsetzung eines physischen Pfades an die Steuereinheit 1220 des Überlagerungsnetzwerk-Switch, die sie im Onboard-Speicher 1230 auf dem Netzwerkadapter 1225 speichert, sodass sie durch ein Datenverkehrsmodul zur Einbindung von Datenpaketen verwendet werden kann.
  • 13 ist ein Schema, das virtuelle Netzwerkabstraktionen zeigt, die auf einen physischen Netzwerkraum aufgespielt sind. Die virtuellen Netzwerke 1300 weisen Richtlinien (z. B. die Richtlinien 1303 bis 1313) auf, die eine virtuelle Ende-zu-Ende-Verbindung zwischen virtuellen Maschinen (z. B. zwischen den virtuellen Maschinen 1302 bis 1310) bereitstellen. Jedes der virtuellen Netzwerke 1300 entspricht einer eindeutigen virtuellen Kennung, die den gleichzeitigen Betrieb mehrerer virtueller Netzwerke über dem physischen Raum 1320 ermöglicht. Wie sich der Fachmann vorstellen kann, können einige der virtuellen Netzwerke 1300 einen Teil der virtuellen Maschinen 1302 bis 1310 aufweisen, während andere virtuelle Netzwerke 1300 andere virtuelle Maschinen und andere Richtlinien als die in 13 gezeigten aufweisen können.
  • Wenn eine virtuelle „Quell”-Maschine Daten an eine virtuelle „Ziel”-Maschine sendet, beschreibt eine den zwei virtuellen Maschinen entsprechende Richtlinie einen logischen Pfad, auf dem die Daten übertragen werden (z. B. über eine Firewall, über einen Beschleuniger usw.). Anders ausgedrückt definieren die Richtlinien 1303 bis 1313, wie unterschiedliche virtuelle Maschinen Daten untereinander (oder mit externen Netzwerken) austauschen. Zum Beispiel kann eine Richtlinie Anforderungen definieren an die Dienstqualität (Quality of Service, QoS); an den Zugriff auf Steuerelemente, die zu bestimmten virtuellen Maschinen gehören; oder an eine Gruppe virtueller oder physischer Einrichtungen (Geräte), die beim Senden oder Empfangen von Daten zu durchqueren sind. Darüber hinaus können einige Einheiten Beschleuniger wie zum Beispiel Komprimierung, IP Security (IPSec), SSL oder Sicherheitseinrichtungen wie zum Beispiel eine Firewall oder ein Warnsystem gegen Angriffe von außen aufweisen. Zudem kann eine Richtlinie so gestaltet sein, dass sie den Datenaustausch zwischen der virtuellen Quellmaschine und der virtuellen Zielmaschine nicht zulässt.
  • Die virtuellen Netzwerke 1300 sind dem physischen Raum 1320 logisch überlagert, der physische Einheiten 1335 bis 1388 aufweist (Hosts, Switches und Router). Obwohl sich die Art, in der eine Richtlinie im System durchgesetzt wird, auf den physischen Raum 1320 auswirkt und von diesem abhängt, sind virtuelle Netzwerke 1300 mehr von logischen Beschreibungen in den Richtlinien abhängig. An sich können mehrere virtuelle Netzwerke 1300 einem physischen Raum 1320 überlagert werden. Wie zu erkennen ist, ist der physische Raum 1320 in das Teilnetz X 1325 und das Teilnetz Y 1330 unterteilt. Die Teilnetze sind über Router 1335 und 1340 verbunden. Virtuelle Netzwerke 1300 sind von Einschränkungen des physischen Raums 1320 (z. B. Einschränkungen der Ebene 12 innerhalb eines Teilnetzes) unabhängig. Daher kann ein virtuelles Netzwerk physische Einheiten aufweisen, die sowohl zum Teilnetz X 1325 als auch zum Teilnetz Y 1330 gehören.
  • Bei einer Ausführungsform unterstützen Abstraktionen virtueller Netzwerke die Adressunabhängigkeit zwischen unterschiedlichen virtuellen Netzwerken 1300. Zum Beispiel können zwei unterschiedliche virtuelle Maschinen, die in zwei unterschiedlichen virtuellen Netzwerken betrieben werden, dieselbe IP-Adresse aufweisen. Um ein weiteres Beispiel zu nennen, unterstützen Abstraktionen virtueller Netzwerke das Bereitstellen virtueller Maschinen, die zu denselben virtuellen Netzwerken gehören, auf unterschiedlichen Hosts, die sich in unterschiedlichen physischen Teilnetzen befinden (dies gilt auch für Switches und/oder Router zwischen den physischen Einheiten). Bei einer weiteren Ausführungsform können virtuelle Maschinen, die zu unterschiedlichen virtuellen Netzwerken gehören, auf demselben physischen Host gehostet sein. Bei noch einer weiteren Ausführungsform unterstützen die Abstraktionen virtueller Netzwerke die Migration virtueller Maschinen an beliebiger Stelle innerhalb des Datenverarbeitungszentrums, ohne die Netzwerkadresse der virtuellen Maschine zu ändern und ihre Netzwerkverbindung zu verlieren.
  • Weitere Einzelheiten zur dieser Architektur siehe die Anmeldung „Virtual Switch Data Control in a Distributed Overlay Network”, Seriennummer 13/204 211, eingereicht am 5. August 2011, die durch Bezugnahme hierin eingeschlossen ist.
  • 14 veranschaulicht ein Informationsverarbeitungssystem 1400, bei dem es sich um ein vereinfachtes Beispiel eines Computersystems handelt, das die hierin beschriebenen Datenverarbeitungsoperationen durchführen kann. Das Informationsverarbeitungssystem 1400 weist einen oder mehrere Prozessoren 1410 auf, die mit dem Prozessorschnittstellenbus 1412 verbunden sind. Der Prozessorschnittstellenbus 1412 verbindet die Prozessoren 1410 mit der Northbridge 1415, die auch als Memory Controller Hub (MCH) bezeichnet wird. Die Northbridge 1415 ist mit dem Systemspeicher 1420 verbunden und stellt dem Prozessor bzw. den Prozessoren 1410 Mittel bereit, um auf den Systemspeicher zuzugreifen. Eine Grafiksteuereinheit 1425 ist ebenfalls mit der Northbridge 1415 verbunden. Bei einer Ausführungsform verbindet ein PCI-Express-Bus 1418 die Northbridge 1415 mit der Grafiksteuereinheit 1425. Die Grafiksteuereinheit 1425 ist mit der Anzeigeeinheit 1430 verbunden, zum Beispiel mit einem Computerbildschirm.
  • Die Northbridge 1415 und die Southbridge 1435 sind über den Bus 1419 miteinander verbunden. Bei einer Ausführungsform ist der Bus ein DMI-Bus (DMI = Direct Media Interface), der Daten mit hoher Geschwindigkeit in beiden Richtungen zwischen der Northbridge 1415 und der Southbridge 1435 überträgt. Bei einer weiteren Ausführungsform verbindet ein PCI-Bus (PCI = Peripheral Component Interconnect) die Northbridge und die Southbridge miteinander. Die Southbridge 1435, die auch als I/O Controller Hub (ICH) bezeichnet wird, ist ein Chipsatz, der im Allgemeinen Funktionen realisiert, die mit geringerer Geschwindigkeit als die von der Northbridge bereitgestellten Funktionen ablaufen. Die Southbridge 1435 stellt normalerweise verschiedene Busse zum Anschluss verschiedener Komponenten bereit. Zu diesen Bussen gehören zum Beispiel der PCI- und der PCI-Express-Bus, ein ISA-Bus, ein System Management Bus (SMBus bzw. SMB) und/oder ein LPC-Bus (LPC = Low Pin Count). Der LPC-Bus dient oft zum Anschluss von Einheiten mit geringer Bandbreite, zum Beispiel von Urlader-ROM 1496 und „älteren” E/A-Einheiten (mithilfe eines „Super-I/O-Chips”). Zu den „älteren” E/A-Einheiten (1498) können zum Beispiel serielle und parallele Anschlüsse, Tastatur, Maus und/oder eine Diskettenlaufwerk-Steuereinheit gehören. Der LPC-Bus verbindet außerdem die Southbridge 1435 mit dem Trusted Platform Module (TPM) 1495. Zu weiteren Komponenten, die die Southbridge 1435 oft aufweist, gehören eine DMA-Steuereinheit (DMA = Direct Memory Access), eine PIC-Steuereinheit (PIC = Programmable Interrupt Controller) und eine Speichereinheit-Steuereinheit, die die Southbridge 1435 über den Bus 1484 mit der nichfflüchtigen Speichereinheit 1485 verbindet, zum Beispiel mit einem Festplattenlaufwerk.
  • Die ExpressCard 1455 ist ein Steckplatz, über den Einheiten während des laufenden Betriebs an das Informationsverarbeitungssystem angeschlossen und von diesem getrennt werden können. Die ExpressCard 1455 unterstützt sowohl PCI-Express- als auch USB-Verbindungen, da sie sowohl über den Universal Serial Bus (USB) als auch über den PCI-Express-Bus an die Southbridge 1435 angeschlossen werden kann. Die Southbridge 1435 enthält eine USB-Steuereinheit 1440, die USB-Verbindungen für die am USB angeschlossenen Einheiten bereitstellt. Zu diesen Einheiten gehören die Webcam (Kamera) 1450, der Infrarot-Empfänger (IR-Empfänger) 1448, die Tastatur und das Trackpad 1444 und die Bluetooth-Einheit 1446, die drahtlose Wireless Personal Area Networks (PANs) bereitstellt. Die USB-Steuereinheit 1440 stellt ebenfalls USB-Verbindungen für verschiedene andere über USB angeschlossene Einheiten 1442 bereit, zum Beispiel für eine Maus, für die nichtflüchtige Wechselspeichereinheit 1445, für Modems, Netzwerkkarten, ISDN-Steckverbinder, Fax, Drucker, USB-Hubs und viele andere über USB angeschlossene Einheiten. Obwohl die nichfflüchtige Wechselspeichereinheit 1445 als eine über USB angeschlossene Einheit dargestellt ist, könnte sie auch mithilfe anderer Schnittstellen angeschlossen sein, zum Beispiel mithilfe einer Firewire-Schnittstelle usw.
  • Die drahtlose LAN-Einheit (LAN = Wireless Local Area Network) 1475 ist mit der Southbridge 1435 über den PCI- oder PCI-Express-Bus 1472 verbunden. Die LAN-Einheit 1475 funktioniert normalerweise auf der Grundlage einer der Normen gemäß IEEE 802.11, in denen die Verfahren zur Modulation über die Luftschnittstelle geregelt sind, wobei alle diese Verfahren dasselbe Protokoll zum drahtlosen Datenaustausch zwischen dem Informationsverarbeitungssystem 1400 und einem anderen Computersystem oder einer anderen Einheit verwenden. Die optische Speichereinheit 1490 ist über den SATA-Bus (SATA = Serial ATA) 1488 mit der Southbridge 1435 verbunden. Serial-ATA-Adapter und -Einheiten tauschen Daten über eine schnelle serielle Verbindung miteinander aus. Der Serial-ATA-Bus verbindet außerdem die Southbridge 1435 mit anderen Formen von Speichereinheiten, zum Beispiel mit Festplattenlaufwerken. Die Audio-Schaltung 1460, zum Beispiel eine Soundkarte, ist über den Bus 1458 mit der Southbridge 1435 verbunden. Die Audio-Schaltung 1460 stellt außerdem Funktionalitäten wie zum Beispiel einen Anschluss 1462 für den Audio-Leitungseingang (Line-in) und optische digitale Audiosignale, eine Ausgangsbuchse 1464 für optische digitale Ausgangssignale und Kopfhörer, interne Lautsprecher 1466 und ein internes Mikrofon 1468 bereit. Die Ethernet-Steuereinheit 1470 ist mit der Southbridge 1435 über einen Bus verbunden, zum Beispiel über den PCI- oder den PCI-Express-Bus. Die Ethernet-Steuereinheit 1470 verbindet das Informationsverarbeitungssystem 1400 mit einem Computernetzwerk wie zum Beispiel mit einem Local Area Network (LAN), dem Internet und mit anderen öffentlichen und privaten Computernetzwerken.
  • Obwohl 14 ein Informationsverarbeitungssystem zeigt, kann ein Informationsverarbeitungssystem viele Formen annehmen. Beispielsweise kann ein Informationsverarbeitungssystem die Form eines Desktops, Servers, transportablen Computers, Laptops, Notebooks oder eines Computers oder Datenverarbeitungssystems mit einem anderen Formfaktor annehmen. Darüber hinaus kann ein Informationssystem andere Formfaktoren annehmen, zum Beispiel den eines Personal Digital Assistant (PDA), einer Spieleeinheit, eines Geldautomaten (ATM), einer transportablen Telefoneinheit, einer Kommunikationseinheit oder den Formfaktor anderer Einheiten, die einen Prozessor und einen Speicher enthalten.
  • Das zur Bereitstellung von Sicherheitsfunktionen in der 14 gezeigte und hierin beschriebene Trusted Platform Module (TPM 1495) ist lediglich ein Beispiel eines Hardware-Sicherheitsmoduls (HSM). Daher weist das hierin beschriebene und beanspruchte TPM alle Arten von HSM auf, darunter und ohne Beschränkung auf die Aufzählung, Hardware-Sicherheitseinheiten, die der Norm der Trusted Computing Groups (TCG) mit dem Titel „Trusted Platform Module (TPM) Specification Version 1.2” entsprechen. Das TPM ist ein Hardware-Sicherheitsteilsystem, das in eine beliebige Anzahl von Informationsverarbeitungssystemen eingebunden werden kann, zum Beispiel in die in 15 dargestellten Informationsverarbeitungssysteme.
  • 15 stellt eine Erweiterung der in 14 gezeigten Datenverarbeitungssystem-Umgebung bereit, um zu veranschaulichen, dass die hierin beschriebenen Verfahren auf einer großen Vielfalt von Datenverarbeitungssystemen durchgeführt werden können, die in einer vernetzten Umgebung arbeiten. Die Arten von Informationssystemen reichen von kleinen Handeinheiten, zum Beispiel dem Handcomputer/Mobiltelefon 1510, bis hin zu Großrechnersystemen wie zum Beispiel dem Großrechner 1570. Zu Beispielen für den Handcomputer 1510 zählen Personal Digital Assistants (PDAs), persönliche Unterhaltungseinheiten wie zum Beispiel MP3-Player, transportable Fernsehgeräte und Compact-Disc-Player. Weitere Beispiele für Informationsverarbeitungssysteme sind mit einem Stift bedienbare Computer oder der Tablet-Computer 1520, der Laptop oder Notebook-Computer 1530, die Workstation 1540, das Personal-Computer-System 1550 und der Server 1560. Andere Arten von Informationsverarbeitungssystemen, die in 15 nicht im Einzelnen gezeigt sind, werden durch das Informationsverarbeitungssystem 1580 dargestellt. Wie gezeigt können die verschiedenen Informationsverarbeitungssysteme mithilfe des Computernetzwerks 1500 miteinander vernetzt sein. Zu den Arten von Computernetzwerken, die zur Verbindung der verschiedenen Informationsverarbeitungssysteme verwendet werden können, gehören Local Area Networks (LANs), Wireless Local Area Networks (WLANs), das Internet, das öffentliche Telefon-Festnetz (Public Switched Telephone Network, PSTN), andere drahtlose Netzwerke und alle anderen Netzwerktopologien, die zur Verbindung der Informationsverarbeitungssysteme untereinander verwendet werden können. Viele der Informationsverarbeitungssysteme enthalten nichtflüchtige Datenspeicher wie zum Beispiel Festplattenlaufwerke und/oder einen nichtflüchtigen Speicher. Bei einigen der in 15 gezeigten Informationsverarbeitungssysteme sind separate nichtflüchtige Datenspeicher abgebildet (der Server 1560 nutzt den nichtflüchtigen Datenspeicher 1565, der Großrechner 1570 nutzt den nichtflüchtigen Datenspeicher 1575, und das Informationsverarbeitungssystem 1580 nutzt den nichtflüchtigen Datenspeicher 1585). Bei dem nichtflüchtigen Datenspeicher kann es sich um eine Komponente handeln, die sich außerhalb der verschiedenen Informationsverarbeitungssysteme befindet oder in eines der Informationsverarbeitungssysteme integriert sein kann. Darüber hinaus kann die nichtflüchtige Wechselspeichereinheit 1445 mithilfe mehrerer Methoden von zwei oder mehr Informationsverarbeitungssystemen gemeinsam genutzt werden, zum Beispiel durch Verbinden der nichtflüchtigen Wechselspeichereinheit 1445 mit einem USB-Anschluss oder mit einem anderen Steckverbinder des Informationsverarbeitungssystems.
  • Obwohl bestimmte Ausführungsformen der vorliegenden Beschreibung dargestellt und beschrieben wurden, wird für den Fachmann offensichtlich sein, dass auf der Grundlage der Erläuterungen im vorliegenden Dokument Änderungen und Modifikationen vorgenommen werden können, ohne von der vorliegenden Beschreibung und ihren weiter gefassten Aspekten abzuweichen. Daher schließen die beigefügten Ansprüche in ihren Schutzbereich alle derartigen Änderungen und Modifikationen als innerhalb des eigentlichen Ideengehalts und Schutzbereiches der vorliegenden Offenbarung liegend ein. Des Weiteren versteht es sich, dass die Beschreibung ausschließlich in den beigefügten Ansprüchen definiert ist. Für den Fachmann wird klar sein, dass, wenn für ein aufgeführtes Anspruchselement eine bestimmte Zahl vorgesehen ist, diese Zahl ausdrücklich im Anspruch erwähnt wird, bei Fehlen einer derartigen Nennung jedoch keine Einschränkung vorliegt. In den folgenden beigefügten Ansprüchen dient die Verwendung einleitender Formulierungen wie z. B. „mindestens ein/eine” und „ein/eine oder mehrere” zur Einleitung von Anspruchselementen und zur Erleichterung des Verständnisses und ist nicht als Einschränkung zu betrachten. Die Verwendung derartiger Formulierungen ist jedoch nicht so auszulegen, dass die Einleitung eines Anspruchselements durch den unbestimmten Artikel „ein/eine” einen bestimmten Anspruch, der ein derartig eingeleitetes Anspruchselement enthält, im Vergleich zu Beschreibungen einschränkt, die nur ein derartiges Element enthalten, selbst wenn derselbe Anspruch die einleitenden Formulierungen „ein/eine oder mehrere” oder „mindestens ein/eine” und unbestimmte Artikel wie „ein” oder „eine” enthält; dasselbe gilt für die Verwendung von bestimmten Artikeln in den Ansprüchen.

Claims (17)

  1. Verfahren zum Konfigurieren von Speicher, aufweisend die Schritte: Auswählen einer ersten virtuellen Funktion aus einer Mehrzahl virtueller Funktionen, die auf einem Netzwerkadapter ausgeführt werden, wobei der Netzwerkadapter einen Speicherbereich aufweist; in dem Speicherbereich Zuordnen einer Speicherpartition, die der ersten virtuellen Funktion entspricht; Speichern eines oder mehrerer Umsetzungseinträge in der Speicherpartition, die zum Senden von Daten genutzt werden, die die erste virtuelle Funktion durchqueren; Senden der Datenpakete vom Netzwerkadapter an ein oder mehrere Ziele, wobei das Senden einen oder mehrere der Umsetzungseinträge nutzt; und dynamisches Ändern der Größe der Speicherpartition auf Grundlage einer Größe der Speicherpartition, die zur Speicherung des einen oder der mehreren Umsetzungseinträge genutzt wird.
  2. Verfahren nach Anspruch 1, ferner aufweisend: Empfangen einer maximalen Partitionsgrößenbegrenzung, die einer ersten virtuellen Funktion entspricht, wobei die Größe der Speicherpartition dynamisch bis zur maximalen Partitionsgrößenbegrenzung geändert wird.
  3. Verfahren nach Anspruch 1 oder Anspruch 2, ferner aufweisend: Erkennen einer anderen Speicherpartition in dem Speicherbereich, der einer anderen virtuellen Funktion entspricht; Feststellen, dass die andere Speicherpartition einen oder mehrere verfügbare Speicherzuweisungsbereiche aufweist; und während des dynamischen Änderns Zuweisen eines oder mehrerer der verfügbaren Speicherzuweisungsbereiche zu der Speicherpartition, die der ersten virtuellen Funktion entspricht.
  4. Verfahren nach Anspruch 3, bei dem die Speicherpartition und die zugeordneten Speicherzuweisungsbereiche nicht zusammenhängend sind.
  5. Verfahren nach einem der vorhergehenden Ansprüche, ferner aufweisend: Erkennen einer virtuellen Quellmaschine und einer virtuellen Zielmaschine, die einem ausgewählten Datenpaket der Datenpakete entsprechen; Feststellen, dass keiner des einen oder der mehreren Umsetzungseinträge, der bzw. die in der Speicherpartition gespeichert ist bzw. sind, sowohl der virtuellen Quellmaschine als auch der virtuellen Zielmaschine entspricht bzw. entsprechen; Senden einer Umsetzungsanforderung an einen verteilten Richtliniendienst für einen neuen Umsetzungseintrag, wobei die Umsetzungsanforderung die virtuelle Quellmaschine und die virtuelle Zielmaschine kennzeichnet; Empfangen des neuen Umsetzungseintrags vom verteilten Richtliniendienst; und Speichern des neuen Umsetzungseintrags in der Speicherpartition.
  6. Verfahren nach Anspruch 5, bei dem das ausgewählte Datenpaket unter Verwendung des neuen Umsetzungseintrags von der virtuellen Quellmaschine über ein oder mehrere virtuelle Netzwerke an die virtuelle Zielmaschine gesendet wird, wobei jedes des einen oder der mehreren virtuellen Netzwerke von Einschränkungen der physischen Topologie eines physischen Netzwerks unabhängig ist.
  7. Verfahren nach Anspruch 6, ferner aufweisend: bei dem der neue Umsetzungseintrag eine Kennung des Quell-Überlagerungsnetzwerks und eine Kennung des Ziel-Überlagerungsnetzwerks aufweist; bei dem die Kennung des Quell-Überlagerungsnetzwerks ein erstes virtuelles Netzwerk kennzeichnet, das der virtuellen Quellmaschine entspricht, wobei das erste virtuelle Netzwerk zu dem einen oder den mehreren virtuellen Netzwerken gehört; bei dem die Kennung des Ziel-Überlagerungsnetzwerks ein zweites virtuelles Netzwerk kennzeichnet, das der virtuellen Zielmaschine entspricht, wobei das zweite virtuelle Netzwerk zu dem einen oder den mehreren virtuellen Netzwerken gehört; und bei dem sich das erste virtuelle Netzwerk vom zweiten virtuellen Netzwerk unterscheidet.
  8. Verfahren nach einem der vorhergehenden Ansprüche, bei dem eine Überlagerungsnetzwerk-Switch-Steuereinheit das dynamische Ändern der Größe der Speicherpartition durchführt, wobei die Überlagerungsnetzwerk-Switch-Steuereinheit auf einer virtuellen Maschine ausgeführt wird und eine auf dem Netzwerkadapter ausgeführte Switch-Funktion nutzt, um die Größe der Speicherpartition dynamisch zu ändern.
  9. Informationsverarbeitungssystem, das mit einem oder mehreren Prozessoren und einem Speicher betriebsfähig ist, der mit mindestens einem der Prozessoren verbunden ist; wobei das Informationsverarbeitungssystem betriebsfähig ist, um die folgenden Aktionen durchzuführen: Auswählen einer ersten virtuellen Funktion aus einer Mehrzahl virtueller Funktionen, die auf einem Netzwerkadapter ausgeführt werden, wobei der einen Speicherbereich aufweist; in dem Speicherbereich Zuordnen einer Speicherpartition, die der ersten virtuellen Funktion entspricht; Speichern eines oder mehrerer Umsetzungseinträge in der Speicherpartition, die zum Senden von Daten genutzt werden, die die erste virtuelle Funktion durchqueren; Senden der Datenpakete vom Netzwerkadapter an ein oder mehrere Ziele, wobei das Senden einen oder mehrere der Umsetzungseinträge nutzt; und dynamisches Ändern der Größe der Speicherpartition auf Grundlage einer Größe der Speicherpartition, die zur Speicherung des einen oder der mehreren Umsetzungseinträge genutzt wird.
  10. Informationsverarbeitungssystem nach Anspruch 9, das ferner betriebsfähig ist, um Aktionen durchzuführen, aufweisend: Empfangen einer maximalen Partitionsgrößenbegrenzung, die einer ersten virtuellen Funktion entspricht, wobei die Größe der Speicherpartition dynamisch bis zur maximalen Partitionsgrößenbegrenzung geändert wird.
  11. Informationsverarbeitungssystem nach Anspruch 9 oder Anspruch 10, das ferner betriebsfähig ist, um die Aktionen durchzuführen, aufweisend: Erkennen einer anderen Speicherpartition in dem Speicherbereich, der einer anderen virtuellen Funktion entspricht; Feststellen, dass die andere Speicherpartition einen oder mehrere verfügbare Speicherzuweisungsbereiche aufweist; und während des dynamischen Änderns Zuweisen eines oder mehrerer der verfügbaren Speicherzuweisungsbereiche zu der Speicherpartition, die der ersten virtuellen Funktion entspricht.
  12. Informationsverarbeitungssystem nach Anspruch 11, bei dem die Speicherpartition und die zugeordneten Speicherzuweisungsbereiche als nicht zusammenhängend betriebsfähig sind.
  13. Informationsverarbeitungssystem nach einem der Ansprüche 9 bis 12, das ferner betriebsfähig ist, um Aktionen durchzuführen, aufweisend: Erkennen einer virtuellen Quellmaschine und einer virtuellen Zielmaschine, die einem ausgewählten Datenpaket der Datenpakete entsprechen; Feststellen, dass keines des einen oder der mehreren Umsetzungseinträge, der bzw. die in der Speicherpartition gespeichert ist bzw. sind, sowohl der virtuellen Quellmaschine als auch der virtuellen Zielmaschine entspricht bzw. entsprechen; Senden einer Umsetzungsanforderung an einen verteilten Richtliniendienst für einen neuen Umsetzungseintrag, wobei die Umsetzungsanforderung die virtuelle Quellmaschine und die virtuelle Zielmaschine kennzeichnet; Empfangen des neuen Umsetzungseintrags vom verteilten Richtliniendienst; und Speichern des neuen Umsetzungseintrags in der Speicherpartition.
  14. Informationsverarbeitungssystem nach Anspruch 13, bei dem das ausgewählte Datenpaket betriebsfähig ist, um unter Verwendung des neuen Umsetzungseintrags von der virtuellen Quellmaschine über ein oder mehrere virtuelle Netzwerke an die virtuelle Zielmaschine gesendet zu werden, wobei jedes des einen oder der mehreren virtuellen Netzwerke von Einschränkungen der physischen Topologie eines physischen Netzwerks unabhängig ist.
  15. Informationsverarbeitungssystem nach Anspruch 14, bei dem: der neue Umsetzungseintrag eine Kennung des Quell-Überlagerungsnetzwerks und eine Kennung des Ziel-Überlagerungsnetzwerks aufweist; die Kennung des Quell-Überlagerungsnetzwerks betriebsfähig ist, um ein erstes virtuelles Netzwerk zu kennzeichnen, das der virtuellen Quellmaschine entspricht, wobei das erste virtuelle Netzwerk betriebsfähig ist, um zu dem einen oder den mehreren virtuellen Netzwerken zu gehören; die Kennung des Ziel-Überlagerungsnetzwerks betriebsfähig ist, um ein zweites virtuelles Netzwerk zu kennzeichnen, das der virtuellen Zielmaschine entspricht, wobei das zweite virtuelle Netzwerk betriebsfähig ist, um zu dem einen oder den mehreren virtuellen Netzwerken zu gehören; und das erste virtuelle Netzwerk betriebsfähig ist, um sich vom zweiten virtuellen Netzwerk zu unterscheiden.
  16. Informationsverarbeitungssystem nach einem der Ansprüche 9 bis 15, bei dem eine Überlagerungsnetzwerk-Switch-Steuereinheit betriebsfähig ist, um das dynamische Ändern der Größe der Speicherpartition durchzuführen, wobei die Überlagerungsnetzwerk-Switch betriebsfähig ist, um auf einer virtuellen Maschine ausgeführt zu werden und – Steuereinheit betriebsfähig ist, um eine auf dem Netzwerkadapter ausgeführte Switch-Funktion zu nutzen, um die Größe der Speicherpartition dynamisch zu ändern.
  17. Computerprogramm, das Programmcodemittel aufweist, die so gestaltet sind, dass alle Schritte jedes beliebigen der Ansprüche 1 bis 8 durchgeführt werden, wenn das Programm auf einem Computer ausgeführt wird.
DE112012003342.6T 2011-08-12 2012-07-13 Dynamisches Anpassen und Begrenzen der Größe des Netzwerkadapterspeichers zur Speicherung von Umsetzungseinträgen für virtuelle Funktionen Pending DE112012003342T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
USUS-13/209,253 2011-08-12
US13/209,253 US8954704B2 (en) 2011-08-12 2011-08-12 Dynamic network adapter memory resizing and bounding for virtual function translation entry storage
PCT/IB2012/053597 WO2013024375A1 (en) 2011-08-12 2012-07-13 Dynamic network adapter memory resizing and bounding for virtual function translation entry storage

Publications (1)

Publication Number Publication Date
DE112012003342T5 true DE112012003342T5 (de) 2014-04-24

Family

ID=47678276

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112012003342.6T Pending DE112012003342T5 (de) 2011-08-12 2012-07-13 Dynamisches Anpassen und Begrenzen der Größe des Netzwerkadapterspeichers zur Speicherung von Umsetzungseinträgen für virtuelle Funktionen

Country Status (4)

Country Link
US (2) US8954704B2 (de)
DE (1) DE112012003342T5 (de)
GB (1) GB2508747B (de)
WO (1) WO2013024375A1 (de)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130042238A1 (en) 2011-08-12 2013-02-14 International Business Machines Corporation Optimized Virtual Function Translation Entry Memory Caching
US9304801B2 (en) * 2012-06-12 2016-04-05 TELEFONAKTIEBOLAGET L M ERRICSSON (publ) Elastic enforcement layer for cloud security using SDN
US9436625B2 (en) * 2012-06-13 2016-09-06 Nvidia Corporation Approach for allocating virtual bank managers within a dynamic random access memory (DRAM) controller to physical banks within a DRAM
JP5958164B2 (ja) * 2012-08-07 2016-07-27 富士通株式会社 制御装置、方法及びプログラム、並びにシステム及び情報処理方法
US9652373B2 (en) * 2013-12-16 2017-05-16 International Business Machines Corporation Adaptive statistics for a linear address space
WO2015119591A1 (en) * 2014-02-04 2015-08-13 Hewlett-Packard Development Company, L.P. Network switch extension
US9262200B2 (en) * 2014-06-25 2016-02-16 Independenceit, Inc. Methods and systems for provisioning a virtual resource in a mixed-use server
US9459905B2 (en) * 2014-12-16 2016-10-04 International Business Machines Corporation Implementing dynamic SRIOV virtual function resizing
US10666754B2 (en) * 2015-05-29 2020-05-26 Dell Products, L.P. System and method for cache reservation in an information handling system
JP6579916B2 (ja) * 2015-10-28 2019-09-25 株式会社日立製作所 仮想計算機間の通信経路制御方法および計算機システム
US9996382B2 (en) * 2016-04-01 2018-06-12 International Business Machines Corporation Implementing dynamic cost calculation for SRIOV virtual function (VF) in cloud environments
US10423437B2 (en) 2016-08-17 2019-09-24 Red Hat Israel, Ltd. Hot-plugging of virtual functions in a virtualized environment
AU2018244293A1 (en) 2017-03-28 2019-09-05 Netapp, Inc. Methods and systems for providing wake-on-demand access to session servers
CN109308163A (zh) * 2017-07-26 2019-02-05 英业达科技有限公司 非挥发性记忆体磁区规划方法
US10810122B2 (en) 2018-11-29 2020-10-20 International Business Machines Corporation Dynamic I/O translation table allocation for single root input output virtualization enabled I/O adapters
US20200409732A1 (en) * 2019-06-26 2020-12-31 Ati Technologies Ulc Sharing multimedia physical functions in a virtualized environment on a processing unit
US11570808B2 (en) * 2020-04-08 2023-01-31 Qualcomm Incorporated Two-step random access procedure in wireless communication
CN113760526A (zh) * 2020-06-03 2021-12-07 百度(美国)有限责任公司 数据处理加速器的具有动态资源隔离的数据保护
US11856097B2 (en) * 2020-12-23 2023-12-26 Oracle International Corporation Mechanism to provide customer VCN network encryption using customer-managed keys in network virtualization device
US11848918B2 (en) 2020-12-23 2023-12-19 Oracle International Corporation End-to-end network encryption from customer on-premise network to customer virtual cloud network using customer-managed keys

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5412787A (en) 1990-11-21 1995-05-02 Hewlett-Packard Company Two-level TLB having the second level TLB implemented in cache tag RAMs
US5293487A (en) * 1991-12-27 1994-03-08 Digital Equipment Corporation Network adapter with high throughput data transfer circuit to optimize network data transfers, with host receive ring resource monitoring and reporting
US6397316B2 (en) 1997-07-24 2002-05-28 Intel Corporation System for reducing bus overhead for communication with a network interface
JP3334588B2 (ja) 1997-12-26 2002-10-15 日本電気株式会社 リソースブロックによる資源分割管理方法及びプログラムを記録した機械読み取り可能な記録媒体
US6947970B2 (en) 2000-12-19 2005-09-20 Intel Corporation Method and apparatus for multilevel translation and protection table
US6851030B2 (en) * 2002-10-16 2005-02-01 International Business Machines Corporation System and method for dynamically allocating associative resources
WO2004068356A1 (ja) 2003-01-29 2004-08-12 Fujitsu Limited データ通信システムおよびデータ通信方法、データ通信プログラム
US7076634B2 (en) 2003-04-24 2006-07-11 International Business Machines Corporation Address translation manager and method for a logically partitioned computer system
US7493465B2 (en) 2004-05-17 2009-02-17 Oracle International Corporation Method and system for extended memory with user mode input/output operations
US7318140B2 (en) * 2004-06-10 2008-01-08 International Business Machines Corporation Method and apparatus for dynamic hosting partition page assignment
US7330942B2 (en) 2004-07-31 2008-02-12 Hewlett-Packard Development Company, L.P. Method for efficient virtualization of physical memory in a virtual-machine monitor
US20060224815A1 (en) 2005-03-30 2006-10-05 Koichi Yamada Virtualizing memory management unit resources
US7823151B2 (en) 2005-06-15 2010-10-26 Intel Corporation Method of ensuring the integrity of TLB entries after changing the translation mode of a virtualized operating system without requiring a flush of the TLB
US7721299B2 (en) 2005-08-05 2010-05-18 Red Hat, Inc. Zero-copy network I/O for virtual hosts
US20070073832A1 (en) 2005-09-27 2007-03-29 Curtis Bryce A Method and system of storing and accessing meta-data in a network adapter
US7756943B1 (en) 2006-01-26 2010-07-13 Symantec Operating Corporation Efficient data transfer between computers in a virtual NUMA system using RDMA
CN100418331C (zh) 2006-03-03 2008-09-10 清华大学 基于网络处理器的路由查找结果缓存方法
CN101043428B (zh) 2006-05-30 2012-05-02 华为技术有限公司 一种路由转发的方法和系统
US7752417B2 (en) 2006-06-05 2010-07-06 Oracle America, Inc. Dynamic selection of memory virtualization techniques
US7630368B2 (en) 2006-06-30 2009-12-08 Sun Microsystems, Inc. Virtual network interface card loopback fastpath
US7587575B2 (en) 2006-10-17 2009-09-08 International Business Machines Corporation Communicating with a memory registration enabled adapter using cached address translations
US7949834B2 (en) 2007-01-24 2011-05-24 Qualcomm Incorporated Method and apparatus for setting cache policies in a processor
US20080201540A1 (en) 2007-02-16 2008-08-21 Ravi Sahita Preservation of integrity of data across a storage hierarchy
US20080240098A1 (en) 2007-03-26 2008-10-02 James Uttaro Method and apparatus for providing flexible virtual forwarding table
GB2458154B (en) 2008-03-07 2012-06-27 Hewlett Packard Development Co Routing across a virtual network
US8521919B2 (en) 2009-06-30 2013-08-27 International Business Machines Corporation Direct memory access in a computing environment
US8386745B2 (en) 2009-07-24 2013-02-26 Advanced Micro Devices, Inc. I/O memory management unit including multilevel address translation for I/O and computation offload
US8995446B2 (en) 2009-12-21 2015-03-31 Cisco Technology, Inc. Efficient generation of VPN-based BGP updates
US8396946B1 (en) 2010-03-31 2013-03-12 Amazon Technologies, Inc. Managing integration of external nodes into provided computer networks
US8086765B2 (en) 2010-04-29 2011-12-27 Hewlett-Packard Development Company, L.P. Direct I/O device access by a virtual machine with memory managed using memory disaggregation
US8392628B2 (en) 2010-07-16 2013-03-05 Hewlett-Packard Development Company, L.P. Sharing memory spaces for access by hardware and software in a virtual machine environment
US8804747B2 (en) 2010-09-23 2014-08-12 Cisco Technology, Inc. Network interface controller for virtual and distributed services
US20120137062A1 (en) 2010-11-30 2012-05-31 International Business Machines Corporation Leveraging coalesced memory
US8725898B1 (en) 2011-03-17 2014-05-13 Amazon Technologies, Inc. Scalable port address translations
US20120290695A1 (en) 2011-05-13 2012-11-15 International Business Machines Corporation Distributed Policy Service
US20130034094A1 (en) 2011-08-05 2013-02-07 International Business Machines Corporation Virtual Switch Data Control In A Distributed Overlay Network
US8660124B2 (en) 2011-08-05 2014-02-25 International Business Machines Corporation Distributed overlay network data traffic management by a virtual server
US20130042238A1 (en) 2011-08-12 2013-02-14 International Business Machines Corporation Optimized Virtual Function Translation Entry Memory Caching
US8782128B2 (en) 2011-10-18 2014-07-15 International Business Machines Corporation Global queue pair management in a point-to-point computer network

Also Published As

Publication number Publication date
GB2508747A (en) 2014-06-11
US20130042086A1 (en) 2013-02-14
GB201403417D0 (en) 2014-04-16
US8954704B2 (en) 2015-02-10
GB2508747B (en) 2020-04-15
WO2013024375A1 (en) 2013-02-21
US20130042237A1 (en) 2013-02-14
US8959310B2 (en) 2015-02-17

Similar Documents

Publication Publication Date Title
DE112012003342T5 (de) Dynamisches Anpassen und Begrenzen der Größe des Netzwerkadapterspeichers zur Speicherung von Umsetzungseinträgen für virtuelle Funktionen
DE112012003336B4 (de) Optimiertes Cachespeichern von Umsetzungseinträgen für virtuelle Funktionen
DE112012003776T5 (de) Migration logischer Partitionen mit zustandsbehafteten Auslagerungsdatenverbindungen während des laufenden Betriebs unter Verwendung der Kontextherauslösung und -einfügung
DE112012003808T5 (de) Ermittlung der Migration des Netzwerkadapter-Hardwarezustands in einer zustandsbehafteten Umgebung
DE112018006769B4 (de) Erweiterte zwischenspeicherzuweisung basierend auf virtuellen knotenressourcen
DE112015001977B4 (de) Synchronisieren von Aktualisierungen von Statusanzeigern in einer Datenverarbeitungsumgebung
DE112013001904B4 (de) Paketvermittlung auf der Ebene 2 ohne Nachschlagetabelle für Ethernet-Switches
DE112010004160T5 (de) Portieren virtueller Abbilder zwischen Plattformen
DE112012002404B4 (de) Konfiguration und Management virtueller Netzwerke
DE112016001657T5 (de) Multi-Tenant-Sensitiver DHCP-Mechanismus für Cloud-Netzwerke
DE112011103875T5 (de) Netzwerkschnittstelle zum Bereitstellen/erneuten Bereitstellen elner Partition in einer Cloud-Umgebung
DE112017000337T5 (de) Spezifizieren eines disaggregierten Datenverarbeitungssystems
DE102012221041A1 (de) Ermöglichen des gleichzeitigen Vorhandenseins von Hostrechnern oder virtuellen Maschinen mit identischen Adressen
DE112012002998T5 (de) Virtuelle Netzwerküberlagerungen
DE112011103522T5 (de) Erstellung eines Multidimensionalen Modells von Software-Angeboten
DE112013003225T5 (de) Sicherer Zugriff auf gemeinsam genutzte Speicher-Ressourcen
DE112020003929B4 (de) Verwaltung von metadaten von virtuellen speichern
DE112011100392T5 (de) Ressourcenaffinität durch dynamisches hinzufügen oder entfernen von warteschlangenpaaren für netzadapter mit software zur empfangsseitigen skalierung (rss)
DE112012004550T5 (de) Zustandsmigration für einen Remote Direct Memory Access-Adapter in einer virtuellen Umgebung
DE112020000223B4 (de) Gemeinsame speichernutzung zwischen einer sicheren domäne und einer nicht sicheren entität
DE102018115251A1 (de) Technologien zum Schutz eines virtuellen Maschinenspeichers
DE112017003294T5 (de) Technologien für ein skalierbares Senden und Empfangen von Paketen
DE112018005404T5 (de) Vereinfachen des zugriffs auf lokalitätsdomäneninformationen eines speichers
DE112013004187T5 (de) Technologie für Netzwerk-Datenübertragung durch ein Computersystem unter Verwendung von mindestens zwei Datenübertragungsprotokollen
DE112013000808T5 (de) Dekodierdaten zur schnellen Dekodierung von Adressen von PCI-Express-Multifunktionseinheiten

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0012020000

Ipc: G06F0015160000

Effective date: 20140401

R082 Change of representative

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

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

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

R082 Change of representative

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

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

R082 Change of representative

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

R016 Response to examination communication
R084 Declaration of willingness to licence