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 PDFInfo
- 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
Links
- 230000006870 function Effects 0.000 title claims abstract description 101
- 238000013519 translation Methods 0.000 title claims abstract description 86
- 238000005192 partition Methods 0.000 claims abstract description 122
- 230000010365 information processing Effects 0.000 claims description 24
- 238000000034 method Methods 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 10
- 230000009471 action Effects 0.000 claims description 8
- 230000008859 change Effects 0.000 claims description 5
- 230000009466 transformation Effects 0.000 claims description 5
- 238000006243 chemical reaction Methods 0.000 abstract description 8
- 238000013459 approach Methods 0.000 abstract description 4
- 230000014616 translation Effects 0.000 description 65
- 238000012545 processing Methods 0.000 description 27
- 238000010586 diagram Methods 0.000 description 19
- 238000013500 data storage Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000009472 formulation Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000017105 transposition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0284—Multiple user address space allocation, e.g. using different base addresses
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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
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 in14 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 Host100 ist ein Datenverarbeitungssystem (z. B. ein Server) und führt virtuelle Maschinen105 bis115 aus. Die virtuellen Maschinen105 bis115 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 bis115 Datenpakete an Ziele senden, zum Beispiel untereinander oder über eine verteilte Überlagerungsnetzwerk-Umgebung185 an andere virtuelle Maschinen. Zu der verteilten Überlagerungsnetzwerk-Umgebung185 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 die12 bis13 und den entsprechenden Text). - Der Host
100 weist außerdem den Netzwerkadapter120 (z. B. eine Netzwerkschnittstellenkarte) auf, die virtuelle Funktionen140 bis150 aufweist (z. B. entfernt angeordnete Netzwerkschnittstellenkarten oder entfernt angeordnete Adapter), die den virtuellen Maschinen105 bis115 entsprechen. Bei einer Ausführungsform können die virtuellen Funktionen140 bis150 PCIe-Adapter mit eingeschränktem Funktionsumfang sein, die es den virtuellen Maschinen105 bis115 ermöglichen, Datenpakete direkt an die virtuelle Ethernet-Bridge125 zu senden bzw. direkt von dieser zu empfangen, wodurch der auf dem Host100 ausgeführte Hypervisor umgangen wird. - Die virtuelle Ethernet-Bridge
125 weist ein Überlagerungsnetzwerk-Datenverkehrsmodul130 auf, das Datenpakete von virtuellen Maschinen105 bis115 empfängt. Das Überlagerungsnetzwerk-Datenverkehrsmodul130 erkennt eine virtuelle Zielmaschine (virtuelle Zielmaschine195 ) und greift auf einen Onboard-Speicher135 zu, um einen Umsetzungseintrag abzurufen, der dem physischen Server (Ziel-Host190 ) entspricht, der der virtuellen Zielmaschine entspricht. - Der Onboard-Speicher
135 weist Speicherpartitionen152 ,156 und160 auf, in denen Umsetzungseinträge für entsprechende jeweilige virtuelle Funktionen140 bis150 gespeichert sind. Die virtuelle Ethernet-Bridge125 ändert die Größe der Speicherpartitionen152 ,156 und158 , zum Beispiel unter Verwendung des reservierten Speichers154 ,158 und162 , dynamisch auf der Grundlage der Menge von Umsetzungseinträgen, die die virtuellen Funktionen140 bis150 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 siehe7B 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-Kopfdaten170 . Als Nächstes bindet das Überlagerungsnetzwerk-Datenverkehrsmodul130 ein Datenpaket175 in die Überlagerungsnetzwerk-Kopfdaten170 ein und sendet das eingebundene Datenpaket178 über den Ethernet-Port180 und die verteilte Überlagerungsnetzwerk-Umgebung185 . Der Ziel-Host100 weist ebenfalls ein Überlagerungsnetzwerk-Datenverkehrsmodul auf, das das eingebundene Datenpaket herauslöst und das Datenpaket an die virtuelle Zielmaschine195 entsprechend weiterleitet. - Bei einer Ausführungsform kann das Überlagerungsnetzwerk-Datenverkehrsmodul
130 feststellen, dass die virtuelle Zielmaschine von derselben virtuellen Ethernet-Bridge125 verwaltet wird. Bei dieser Ausführungsform bindet das Überlagerungsnetzwerk-Datenverkehrsmodul130 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 die3 ,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 die2 ,3 und9 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 Netzwerkadapter220 auf. Der Netzwerkadapter führt die virtuelle Ethernet-Bridge230 aus, die zum Onboard-Speicher240 gehörende separate Speicherpartitionen nutzt, um Umsetzungseinträge zu speichern, die von den virtuellen Funktionen245 und250 genutzt werden. Bei einer Ausführungsform kombiniert die virtuelle Ethernet-Bridge230 das oben erörterte dynamische Ändern der Größe von Speicherpartitionen mit der in2 gezeigten Zwischenspeicherungshierarchie. Bei einer weiteren Ausführungsform nutzt die virtuelle Ethernet-Bridge230 bei der in2 gezeigten Zwischenspeicherungshierarchie unter Umständen nicht das dynamische Ändern der Größe von Speicherpartitionen. - Wenn die virtuellen Funktionen
245 und250 durch einen Hypervisor bereitgestellt werden, kann der Hypervisor außerdem die virtuellen Maschinen205 und210 anweisen, Speicher270 bzw.280 als Speicherbereiche zuzuweisen, um entsprechende Umsetzungseinträge zu speichern, wenn ihre entsprechende Onboard-Speicherpartition voll ist (weitere Einzelheiten siehe6 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-Bridge230 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 ähnelt2 mit Ausnahme der virtuellen Maschine315 , der Steuereinheit340 des Überlagerungsnetzwerk-Switch, des Speichers370 und der Switch-Funktion345 . Die Steuereinheit340 des Überlagerungsnetzwerk-Switch belegt bei einer Ausführungsform den Onboard-Speicher240 mit Umsetzungseinträgen für die virtuellen Maschinen205 und210 . Die Switch-Funktion345 kann eine privilegierte virtuelle Funktion sein, die es der Steuereinheit340 des Überlagerungsnetzwerk-Switch außerdem ermöglicht; dem physischen Anschluss des Netzwerkadapters320 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 Steuereinheit340 des Überlagerungsnetzwerk-Switch auf der virtuellen Maschine315 Speicher370 als weitere Cache-Zwischenspeicherebene (Level-3-Cache) zuordnen, der durch die virtuelle Ethernet-Bridge230 verwendet wird, um Umsetzungseinträge zu speichern bzw. abzurufen (weitere Einzelheiten siehe11 und den entsprechenden Text). - Wenn die virtuelle Ethernet-Bridge
230 im Onboard-Speicher240 oder im externen Speicher (der entweder durch die entsprechende virtuelle Maschine oder durch die Steuereinheit340 des Überlagerungsnetzwerk-Switch verwaltet wird) keinen Umsetzungseintrag finden kann, tauscht die Steuereinheit340 des Überlagerungsnetzwerk-Switch bei einer weiteren Ausführungsform Daten mit einem verteilten Richtliniendienst aus, um Umsetzungseinträge zu empfangen, die nicht lokal auf dem Host200 oder Netzwerkadapter220 gespeichert sind (weitere Einzelheiten siehe12 und den entsprechenden Text). -
4 ist ein Schema, das einen Hypervisor zeigt, der Ressourcen auf einem Host-System bereitstellt. Der Hypervisor410 weist einen Ressourcenbereitstellungsmanager420 auf, der Ressourcen innerhalb des Hosts400 wie zum Beispiel eine virtuelle Maschine425 bereitstellt, die einer virtuellen Funktion445 und einer physischen Funktion440 entspricht. Die physische Funktion440 ist bei einer Ausführungsform ein PCIe-Adapter mit vollem Funktionsumfang, der es einem Hypervisor410 ermöglicht, andere Funktionen auf dem Netzwerkadapter430 zu erzeugen sowie den Betriebszustand der virtuellen Ethernet-Bridge460 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 Maschine425 ermöglicht, Datenpakete direkt an die virtuelle Ethernet-Bridge460 zu senden bzw. direkt von dieser zu empfangen, wodurch der Hypervisor410 umgangen wird. - Bei einer Ausführungsform sendet der Ressourcenbereitstellungsmanager
420 während des Bereitstellens eine Speicherzuordnung450 an die virtuelle Ethernet-Bridge460 , die eine minimale, bevorzugte und maximale Speicherpartitionsgröße aufweist. Die virtuelle Ethernet-Bridge460 an sich konfiguriert wie hierin erläutert eine Speicherpartition, die der virtuellen Funktion445 im Onboard-Speicher470 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 Host500 ausgeführt und weist eine Steuereinheit520 des Überlagerungsnetzwerk-Switch auf, die eine Switch-Funktion550 nutzt, um eine Speicherzuordnung530 an eine virtuelle Ethernet-Bridge560 zu übergeben. Bei einer Ausführungsform konfiguriert ein Hypervisor die Switch-Funktion550 gemäß SR-IOV-Richtlinien und weist eine MAC-Adresse aus einem Bereich von MAC-Adressen zu, die dem Netzwerkadapter540 zur Verfügung stehen. Diese MAC-Adresse wird auch der anfordernden virtuellen Maschine zugewiesen (virtuelle Maschine510 ). 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 Netzwerkadapter540 zusenden und dadurch den physischen Anschluss zu steuern. Darüber hinaus ermöglicht das Anschlussverwaltungsfeld der Steuereinheit des Überlagerungsnetzwerk-Switch, die zum Onboard-Speicher570 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 bei600 , wonach der Hypervisor eine Anforderung von einem Administrator empfängt, eine virtuelle Maschine mit einer Überlagerungsnetzwerk-Domäne zu verbinden (Schritt605 ). Der Hypervisor an sich erzeugt bei Schritt610 auf dem Netzwerkadapter615 eine der virtuellen Funktionen625 , die der virtuellen Maschine entspricht, und stellt im Onboard-Speicher620 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 Netzwerkadapter615 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 Entscheidung630 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 siehe3 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 (Schritt635 ). 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 Entscheidung640 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 (Schritt645 ). - 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 Entscheidung650 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 Schritt655 einen Bereitstellungsfehler meldet und der Zweig bei660 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 Entscheidung670 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 Entscheidung670 an diesem Punkt zum „Nein”-Zweig verzweigt, wonach das Bereitstellen von Ressourcen durch den Hypervisor bei680 endet. Wie sich der Fachmann vorstellen kann, kann der Hypervisor während des Betriebs des Hosts100 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 Umsetzungseintrag700 weist Felder705 bis730 auf. Das Feld705 weist eine IP-Adresse einer virtuellen Quellmaschine auf, die der virtuellen Maschine entspricht, die ein Datenpaket auslöst. Eine Kennung710 des Quell-Überlagerungsnetzwerks weist eine Kennung eines virtuellen Netzwerks auf, zu dem die virtuelle Quellmaschine gehört. Das Feld715 weist eine IP-Adresse einer virtuellen Zielmaschine auf, die der virtuellen Zielmaschine des Datenpakets entspricht. Das Feld720 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 und730 weisen Informationen über physische Adressen auf, die zu dem Host-System (Server) gehören, das die virtuelle Zielmaschine ausführt. Das Feld725 weist die MAC-Adresse des Zielservers auf, und das Feld730 weist die IP-Adresse des Zielservers auf. Bei einer Ausführungsform weist der Umsetzungseintrag700 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-Speicher740 weist die Partition750 auf. Eine virtuelle Ethernet-Bridge für Umsetzungseinträge kann bei der Anfangskonfiguration der Partition750 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 Partition750 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-Speicher740 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 Quellmaschine808 gesendet wurde (Schritt805 ). Das Quell-Datenverkehrsmodul sucht in einer Speicherpartition, die der virtuellen Funktion entspricht, einen Umsetzungseintrag, der zur virtuellen Quellmaschine808 und virtuellen Zielmaschine880 gehört. Zum Suchprozess gehört das Zugreifen auf den Onboard-Speicher812 , und es kann hierzu das Abfragen des Managers814 für externen Cache-Zwischenspeicher und/oder das Abfragen des verteilten Richtliniendienstes815 gehören (vordefinierter Prozessblock810 , weitere Einzelheiten siehe9 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 Netzwerk825 aufgespielt sind (Schritt820 ). - Die Verarbeitung im Ziel-Datenverkehrsmodul beginnt bei
845 , wonach das Ziel-Datenverkehrsmodul bei Schritt850 das eingebundene Datenpaket empfängt. Bei Schritt855 löst das Ziel-Datenverkehrsmodul das Datenpaket heraus und ermittelt, ob das Quell-Datenverkehrsmodul den jüngsten Umsetzungseintrag verwendet hat (Entscheidung860 ). Zum Beispiel kann das Quell-Datenverkehrsmodul einen veralteten Umsetzungseintrag genutzt haben, der das Datenpaket zur falschen Host-Einheit leitet (weitere Einzelheiten siehe7A 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 (Schritt865 ), die auf den in seinem Wert geminderten Umsetzungseintrag hinweist, und der Zweig endet bei870 . - 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 Entscheidung830 , wenn das Quell-Datenverkehrsmodul keine Nachricht empfängt, zum „Nein”-Zweig, wonach die Verarbeitung im Quell-Datenverkehrsmodul bei840 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 Schritt875 zur virtuellen Zielmaschine880 weiterleitet und die Verarbeitung bei890 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 bei900 , wonach das Datenverkehrsmodul im Onboard-Speicher812 eine Speicherpartition zu einer virtuellen Funktion erkennt, die der virtuellen Quellmaschine entspricht. - Bei Schritt
910 prüft das Datenverkehrsmodul den Onboard-Speicher812 auf den Umsetzungseintrag. Der Onboard-Speicher812 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-Speicher812 den Umsetzungseintrag aufweist (Entscheidung915 ). Wenn der Onboard-Speicher812 einen Umsetzungseintrag aufweist, verzweigt die Entscheidung915 zum „Ja”-Zweig, wonach das Datenverkehrsmodul bei Schritt920 den Umsetzungseintrag auswählt und bei925 zurückkehrt. - Anderenfalls verzweigt die Entscheidung
915 , wenn der Onboard-Speicher812 den Umsetzungseintrag nicht aufweist, zum „Nein”-Zweig, wonach eine Ermittlung dahingehend vorgenommen wird, ob in der entsprechenden Speicherpartition der virtuellen Funktion im Onboard-Speicher812 ein Eintragszuweisungsbereich zur Verfügung steht (in Vorbereitung des Suchens und Speicherns des Umsetzungseintrags im Onboard-Speicher812 ). Wenn die Speicherpartition der virtuellen Funktion keinen verfügbaren Zuweisungsbereich aufweist, verzweigt die Entscheidung930 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 Prozessblock935 , weitere Einzelheiten siehe10 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 Entscheidung940 zum „Nein”-Zweig, wonach das Datenverkehrsmodul den Umsetzungseintrag (z. B. über eine Switch-Steuereinheit) bei Schritt945 vom verteilten Richtliniendienst815 anfordert und empfängt. Der verteilte Richtliniendienst815 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 die12 bis13 und den entsprechenden Text). - Anderenfalls verzweigt die Entscheidung
940 , wenn eine Cache-Zwischenspeicherhierarchie aktiviert ist, zum „Ja”-Zweig, wonach das Datenverkehrsmodul einen oder mehrere Manager814 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 Manager814 für externen Cache-Zwischenspeicher findet, kann das Datenverkehrsmodul den verteilten Richtliniendienst815 abfragen (vordefinierter Prozessblock955 , weitere Einzelheiten siehe11 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-Speicher812 befindet), und kehrt bei990 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 bei1000 , wonach eine Ermittlung dahingehend vorgenommen wird, ob die Größe der Speicherpartition der maximalen Partitionsgrößenbeschränkung entspricht (Entscheidung1010 ). Wenn die Größe der Partition nicht der maximalen Begrenzung entspricht, verzweigt die Entscheidung1010 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 in7B gezeigt. Die Verarbeitung kehrt bei1060 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) (Schritt1040 ). Die Verarbeitung kehrt bei1060 zurück. -
11 ist ein Ablaufplan, der Schritte beim Auflösen eines Umsetzungseintrags zeigt. Die Verarbeitung beginnt bei1100 , wonach die Verarbeitung bei Schritt1110 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 Manager814 für externen Cache-Zwischenspeicher (virtuelle Quellmaschine965 , Switch-Steuereinheit970 oder Hypervisor975 ) 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 (Entscheidung1130 ). Wenn der Umsetzungseintrag gefunden wurde, verzweigt die Entscheidung1130 zum „Ja”-Zweig, wonach die Verarbeitung bei Schritt1135 den Umsetzungseintrag abruft und bei1140 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 (Entscheidung1150 ). Wenn weitere externe Cache-Zwischenspeicherstellen abzufragen sind, verzweigt die Entscheidung1150 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 Entscheidung1150 an diesem Punkt zum „Nein”-Zweig verzweigt, wonach die Verarbeitung bei Schritt1160 den verteilten Richtliniendienst815 abfragt und den Umsetzungseintrag empfängt. Die Verarbeitung kehrt bei1180 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 Host1210 befindet sich im physischen Netzwerk1200 und weist eine Steuereinheit1220 des Überlagerungsnetzwerk-Switch auf, die auf der virtuellen Maschine1215 ausgeführt wird. - Die Steuereinheit
1220 des Überlagerungsnetzwerk-Switch fragt den Richtlinienserver1235 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 Maschine1215 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 Richtlinienserver1235 des virtuellen Netzwerks keine entsprechende Umsetzung eines physischen Pfades aufweist, fragt der Richtlinienserver1235 des virtuellen Netzwerks den Stamm-Richtlinienserver1240 auf die Richtlinie oder Umsetzung eines physischen Pfades hin ab. Im Gegenzug kann der Stamm-Richtlinienserver1240 an den Richtlinienserver1235 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 Richtlinienservers1250 des virtuellen Netzwerks). Bei Eintreten des letztgenannten Falles fragt der Richtlinienserver1230 des virtuellen Netzwerks den Richtlinienserver1250 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 Richtlinienserver1235 des virtuellen Netzwerks die Umsetzung eines physischen Pfades an die Steuereinheit1220 des Überlagerungsnetzwerk-Switch, die sie im Onboard-Speicher1230 auf dem Netzwerkadapter1225 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 Netzwerke1300 weisen Richtlinien (z. B. die Richtlinien1303 bis1313 ) auf, die eine virtuelle Ende-zu-Ende-Verbindung zwischen virtuellen Maschinen (z. B. zwischen den virtuellen Maschinen1302 bis1310 ) bereitstellen. Jedes der virtuellen Netzwerke1300 entspricht einer eindeutigen virtuellen Kennung, die den gleichzeitigen Betrieb mehrerer virtueller Netzwerke über dem physischen Raum1320 ermöglicht. Wie sich der Fachmann vorstellen kann, können einige der virtuellen Netzwerke1300 einen Teil der virtuellen Maschinen1302 bis1310 aufweisen, während andere virtuelle Netzwerke1300 andere virtuelle Maschinen und andere Richtlinien als die in13 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 bis1313 , 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 Raum1320 logisch überlagert, der physische Einheiten1335 bis1388 aufweist (Hosts, Switches und Router). Obwohl sich die Art, in der eine Richtlinie im System durchgesetzt wird, auf den physischen Raum1320 auswirkt und von diesem abhängt, sind virtuelle Netzwerke1300 mehr von logischen Beschreibungen in den Richtlinien abhängig. An sich können mehrere virtuelle Netzwerke1300 einem physischen Raum1320 überlagert werden. Wie zu erkennen ist, ist der physische Raum1320 in das Teilnetz X1325 und das Teilnetz Y1330 unterteilt. Die Teilnetze sind über Router1335 und1340 verbunden. Virtuelle Netzwerke1300 sind von Einschränkungen des physischen Raums1320 (z. B. Einschränkungen der Ebene12 innerhalb eines Teilnetzes) unabhängig. Daher kann ein virtuelles Netzwerk physische Einheiten aufweisen, die sowohl zum Teilnetz X1325 als auch zum Teilnetz Y1330 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 Informationsverarbeitungssystem1400 , bei dem es sich um ein vereinfachtes Beispiel eines Computersystems handelt, das die hierin beschriebenen Datenverarbeitungsoperationen durchführen kann. Das Informationsverarbeitungssystem1400 weist einen oder mehrere Prozessoren1410 auf, die mit dem Prozessorschnittstellenbus1412 verbunden sind. Der Prozessorschnittstellenbus1412 verbindet die Prozessoren1410 mit der Northbridge1415 , die auch als Memory Controller Hub (MCH) bezeichnet wird. Die Northbridge1415 ist mit dem Systemspeicher1420 verbunden und stellt dem Prozessor bzw. den Prozessoren1410 Mittel bereit, um auf den Systemspeicher zuzugreifen. Eine Grafiksteuereinheit1425 ist ebenfalls mit der Northbridge1415 verbunden. Bei einer Ausführungsform verbindet ein PCI-Express-Bus1418 die Northbridge1415 mit der Grafiksteuereinheit1425 . Die Grafiksteuereinheit1425 ist mit der Anzeigeeinheit1430 verbunden, zum Beispiel mit einem Computerbildschirm. - Die Northbridge
1415 und die Southbridge1435 sind über den Bus1419 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 Northbridge1415 und der Southbridge1435 überträgt. Bei einer weiteren Ausführungsform verbindet ein PCI-Bus (PCI = Peripheral Component Interconnect) die Northbridge und die Southbridge miteinander. Die Southbridge1435 , 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 Southbridge1435 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-ROM1496 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 Southbridge1435 mit dem Trusted Platform Module (TPM)1495 . Zu weiteren Komponenten, die die Southbridge1435 oft aufweist, gehören eine DMA-Steuereinheit (DMA = Direct Memory Access), eine PIC-Steuereinheit (PIC = Programmable Interrupt Controller) und eine Speichereinheit-Steuereinheit, die die Southbridge1435 über den Bus1484 mit der nichfflüchtigen Speichereinheit1485 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 ExpressCard1455 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 Southbridge1435 angeschlossen werden kann. Die Southbridge1435 enthält eine USB-Steuereinheit1440 , 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 Trackpad1444 und die Bluetooth-Einheit1446 , die drahtlose Wireless Personal Area Networks (PANs) bereitstellt. Die USB-Steuereinheit1440 stellt ebenfalls USB-Verbindungen für verschiedene andere über USB angeschlossene Einheiten1442 bereit, zum Beispiel für eine Maus, für die nichtflüchtige Wechselspeichereinheit1445 , für Modems, Netzwerkkarten, ISDN-Steckverbinder, Fax, Drucker, USB-Hubs und viele andere über USB angeschlossene Einheiten. Obwohl die nichfflüchtige Wechselspeichereinheit1445 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 Southbridge1435 über den PCI- oder PCI-Express-Bus1472 verbunden. Die LAN-Einheit1475 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 Informationsverarbeitungssystem1400 und einem anderen Computersystem oder einer anderen Einheit verwenden. Die optische Speichereinheit1490 ist über den SATA-Bus (SATA = Serial ATA)1488 mit der Southbridge1435 verbunden. Serial-ATA-Adapter und -Einheiten tauschen Daten über eine schnelle serielle Verbindung miteinander aus. Der Serial-ATA-Bus verbindet außerdem die Southbridge1435 mit anderen Formen von Speichereinheiten, zum Beispiel mit Festplattenlaufwerken. Die Audio-Schaltung1460 , zum Beispiel eine Soundkarte, ist über den Bus1458 mit der Southbridge1435 verbunden. Die Audio-Schaltung1460 stellt außerdem Funktionalitäten wie zum Beispiel einen Anschluss1462 für den Audio-Leitungseingang (Line-in) und optische digitale Audiosignale, eine Ausgangsbuchse1464 für optische digitale Ausgangssignale und Kopfhörer, interne Lautsprecher1466 und ein internes Mikrofon1468 bereit. Die Ethernet-Steuereinheit1470 ist mit der Southbridge1435 über einen Bus verbunden, zum Beispiel über den PCI- oder den PCI-Express-Bus. Die Ethernet-Steuereinheit1470 verbindet das Informationsverarbeitungssystem1400 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 (TPM1495 ) 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 in15 dargestellten Informationsverarbeitungssysteme. -
15 stellt eine Erweiterung der in14 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/Mobiltelefon1510 , bis hin zu Großrechnersystemen wie zum Beispiel dem Großrechner1570 . Zu Beispielen für den Handcomputer1510 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-Computer1520 , der Laptop oder Notebook-Computer1530 , die Workstation1540 , das Personal-Computer-System1550 und der Server1560 . Andere Arten von Informationsverarbeitungssystemen, die in15 nicht im Einzelnen gezeigt sind, werden durch das Informationsverarbeitungssystem1580 dargestellt. Wie gezeigt können die verschiedenen Informationsverarbeitungssysteme mithilfe des Computernetzwerks1500 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 in15 gezeigten Informationsverarbeitungssysteme sind separate nichtflüchtige Datenspeicher abgebildet (der Server1560 nutzt den nichtflüchtigen Datenspeicher1565 , der Großrechner1570 nutzt den nichtflüchtigen Datenspeicher1575 , und das Informationsverarbeitungssystem1580 nutzt den nichtflüchtigen Datenspeicher1585 ). 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 Wechselspeichereinheit1445 mithilfe mehrerer Methoden von zwei oder mehr Informationsverarbeitungssystemen gemeinsam genutzt werden, zum Beispiel durch Verbinden der nichtflüchtigen Wechselspeichereinheit1445 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)
- 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.
- 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.
- 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.
- Verfahren nach Anspruch 3, bei dem die Speicherpartition und die zugeordneten Speicherzuweisungsbereiche nicht zusammenhängend sind.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Informationsverarbeitungssystem nach Anspruch 11, bei dem die Speicherpartition und die zugeordneten Speicherzuweisungsbereiche als nicht zusammenhängend betriebsfähig sind.
- 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.
- 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.
- 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.
- 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.
- 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.
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)
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)
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 |
-
2011
- 2011-08-12 US US13/209,253 patent/US8954704B2/en active Active
-
2012
- 2012-07-13 DE DE112012003342.6T patent/DE112012003342T5/de active Pending
- 2012-07-13 GB GB1403417.7A patent/GB2508747B/en active Active
- 2012-07-13 WO PCT/IB2012/053597 patent/WO2013024375A1/en active Application Filing
- 2012-07-28 US US13/561,010 patent/US8959310B2/en not_active Expired - Fee Related
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 |