DE102020113346A1 - Bereitstellen von service-containern in einer adaptervorrichtung - Google Patents

Bereitstellen von service-containern in einer adaptervorrichtung Download PDF

Info

Publication number
DE102020113346A1
DE102020113346A1 DE102020113346.4A DE102020113346A DE102020113346A1 DE 102020113346 A1 DE102020113346 A1 DE 102020113346A1 DE 102020113346 A DE102020113346 A DE 102020113346A DE 102020113346 A1 DE102020113346 A1 DE 102020113346A1
Authority
DE
Germany
Prior art keywords
container
service
adapter
composer
adapter device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102020113346.4A
Other languages
English (en)
Inventor
Harish Bantwal Kamath
Thomas Lewis Vaden
William Norwood Scherer III
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of DE102020113346A1 publication Critical patent/DE102020113346A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches

Abstract

In einer Implementierung umfasst ein Adaptergerät einen Prozessor und ein Speichermedium mit Anweisungen. Die Befehle sind durch den Prozessor ausführbar, um: einen Zusammensetzungscontainer in der Adaptervorrichtung zu entfalten, wobei die Adaptervorrichtung mit einer Hostvorrichtung gekoppelt ist; durch den Zusammensetzungscontainer eine Vielzahl von Adapter-Serviceanforderungen von der Hostvorrichtung zu empfangen; und als Antwort auf die Vielzahl von Serviceanforderungen durch den Zusammensetzungscontainer eine Vielzahl von Servicecontainern in der Adaptervorrichtung zu entfalten, wobei jeder Servicecontainer einen bestimmten Adapterdienst für die Hostvorrichtung bereitstellen soll, und wobei jedem Servicecontainer eine Teilmenge der Vielzahl von Rechenressourcen der Adaptervorrichtung zugewiesen wird.

Description

  • Hintergrund
  • Ein Computersystem kann eine beliebige Anzahl von Computergeräten und - komponenten umfassen. Beispielsweise kann ein Serversystem mehrere Computergeräte, Netzwerkgeräte, Speichergeräte, Stromversorgungskomponenten usw. umfassen. Jedes Rechengerät kann Hardwarekomponenten wie Prozessoren, Speicher (z.B. dynamischer Speicher mit wahlfreiem Zugriff (DRAM), statischer Speicher mit wahlfreiem Zugriff (SRAM) usw. enthalten.), Speicher (z.B. Festplatten, Flash-Speicher, optische Platten usw.), Netzschnittstellengeräte, Benutzereingabegeräte, Stromversorgungsgeräte, Anzeigegeräte usw.
  • Figurenliste
  • Eine oder mehrere Beispielimplementierungen werden im Hinblick auf die folgenden Abbildungen beschrieben.
    • BILD1 ist eine schematische Darstellung eines Beispielsystems, in Übereinstimmung mit einigen Implementierungen.
    • 2 ist eine Illustration eines Beispielprozesses, in Übereinstimmung mit einigen Implementierungen.
    • 3 ist eine Illustration eines Beispielsystems, in Übereinstimmung mit einigen Implementierungen.
    • 4 ist eine Illustration eines Beispielprozesses, in Übereinstimmung mit einigen Implementierungen.
    • BILD 5 ist ein schematisches Diagramm eines Beispiel-Rechengeräts, in Übereinstimmung mit einigen Implementierungen.
    • BILD 6 ist ein Diagramm eines Beispiels für ein maschinenlesbares Medium, das Anweisungen gemäß einigen Implementierungen speichert.
  • Detaillierte Beschreibung
  • Einige Computergeräte können an einen Adapter gekoppelt werden , der zusätzliche Funktionalität bietet. Zum Beispiel kann ein Host-Server einen Netzwerkadapter (z.B. eine Netzwerkschnittstellenkarte) enthalten , der es dem Host-Server ermöglicht, mit entfernten Geräten über ein Kommunikationsnetzwerk (z.B. ein Ethernet-Netzwerk) zu kommunizieren. In einigen Beispielen können Adapter Komponenten enthalten, die dem Host-Server Verarbeitungsfunktionen zur Verfügung stellen. Wie hier verwendet, bezieht sich der Begriff „Smart-Adapter“ auf ein Adaptergerät, das so konfiguriert ist, dass es an einen Host koppelt und dem Host Verarbeitungsfunktionen zur Verfügung stellt. Einige Smart-Adapter können mehrere Verarbeitungsfunktionen oder Dienste für den Host bereitstellen . Einige Smart-Adapter ermöglichen es einem Benutzer jedoch möglicherweise nicht, die Verarbeitungsfunktionen für den Host zu konfigurieren und/oder anzupassen.
  • Wie weiter unten mit Bezug auf die FIGs beschrieben. 1-6 können einige Implementierungen einen intelligenten Adapter enthalten, der Container verwendet, um Verarbeitungsfunktionen für einen Hostbereitzustellen. Der Smart-Adapter kann Rechenressourcen (z.B. Prozessor, Speicher, Storage, Beschleuniger usw.) enthalten, die mehrere Container ausführen können. Wie hier verwendet, bezieht sich „Container“ auf eine isolierte Rechenumgebung, die von einem Smart-Adapter ausgeführt wird. In einigen Implementierungen können die Container in einem Smart-Adapter einen Composer-Container und eine beliebige Anzahl von Service-Containern enthalten . In einigen Implementierungen kann der Composer-Container eine Benutzeranforderung zum Zusammenstellen eines bestimmten Diensteserhalten . Als Antwort auf die empfangene Anforderung kann der Composer-Container feststellen, ob das Adaptergerät über ausreichende Rechenressourcen verfügt, um einen Service-Container zur Bereitstellung des angeforderten Adapterdienstes zu unterstützen . Wenn dies der Fall ist, kann der Composer-Container einen Teil der Rechenressourcen dem Service-Containerzuweisen und den Service-Container in der Adaptervorrichtung bereitstellen. Außerdemkann der Composer-Container Rechenressourcen des Smart-Adapters verfolgen und mehreren Service-Containern zuweisen. In einigenImplementierungen können solche Dienste es dem Host ermöglichen, die Verarbeitung auf den Smart-Adapterauszulagern und dadurch die Leistung und Flexibilität des Hostszu verbessern. In einigen Implementierungenkönnen die Service-Container außerdem voneinanderisoliert werden , wodurch die Sicherheit der ausgelagerten Dienste verbessert wird
  • BILD 1 ist ein schematisches Diagramm eines Beispiel-Host-Systems 100, in Übereinstimmung mit einigen Implementierungen. In einigen Implementierungen kann das Hostsystem 100 ein Computergerät sein (z.B. ein Server, ein Gerät usw.), das die Host-Hardware 110 enthält. Wie gezeigt, kann die Host-Hardware 110 Speicher 112, einen Prozessor 115 und Speicher 116 enthalten. Bei Speicher 112 kann es sich um jede Art von Computerspeicher handeln (z. B. dynamischer Speicher mit wahlfreiem Zugriff (DRAM), statischer Speicher mit wahlfreiem Zugriff (SRAM) usw.). Der Prozessor 115 kann einen Mikroprozessor, einen Mikrocontroller, ein Prozessormodul oder -subsystem, eine programmierbare integrierte Schaltung, ein programmierbares Gate-Array, mehrere Prozessoren, einen Mikroprozessor mit mehreren Verarbeitungskernen oder ein anderes Steuer- oder Rechengerät umfassen. In einigen Implementierungen kann der Speicher 130 nicht-transitorische maschinenlesbare Speichermedien wie Festplatten, Flash-Speicher, optische Platten usw. enthalten.
  • In einigen Implementierungen kann das Hostsystem 100 eine Adapterschnittstelle 118 zur Kopplung an ein Adaptergerät 120 enthalten. Die Adapterschnittstelle 118 kann das Adaptergerät 120 mit elektrischer Energie vom Host-System 100 versorgen und die Datenkommunikation zum/vom Host-System 100 bereitstellen. In einigen Implementierungen kann die Adapterschnittstelle 118 beispielsweise einen lokalen Computerbus bereitstellen (z.B. einen Peripheral Component Interconnect (PCI)-Bus). Ferner kann in einigen Implementierungen die Adapter-Schnittstelle 118 in einem physischen Bus-Steckplatz oder einer Buchse des Host-Systems 100 implementiert sein. In einigen Implementierungen kann sich das Adaptergerät 120 in einem Gehäuse oder einer Hülle des Host-Systems 100 befinden, wenn das Adaptergerät 120 an die Adapterschnittstelle 118 gekoppelt ist.
  • Wie in BILD 1dargestellt, kann das Adaptergerät 120 Speicher 122, einen Prozessor 125, Speicher 126 und eine Netzwerkschnittstelle 128 enthalten . Der Speicher 122, Prozessor 125, Speicher 126 kann ähnlich oder äquivalent zu dem oben beschriebenenSpeicher 112, einem Prozessor 115 und Speicher 116 sein . Die Netzschnittstelle 128 kann eine Verbindung zu einem Kommunikationsnetz (z.B. einem Ethernet-Netz, einem lokalen drahtlosen Netz, einem zellularen Telefonnetz usw.) herstellen.
  • In einigen Implementierungen kann das Adaptergerät 120, wenn es mit der Adapterschnittstelle 118 gekoppelt ist, einen oder mehrere Adapterdienste für das Hostsystem 100 bereitstellen. Wie hier verwendet, bezieht sich ein „Adapterdienst“ auf einen bestimmten Verarbeitungsdienst oder eine bestimmte Funktion, die von einem Adaptergerät für ein gekoppeltes Hostgerät bereitgestellt wird. Beispielsweise kann die Adaptervorrichtung 120 dem Hostsystem 100 einen oder mehrere Adapterdienste wie Netzwerkkonnektivität, Speicherkonnektivität, Video-/Grafikbeschleunigung, kryptographische Verarbeitung, Telemetrie, Systemverwaltung, Paketverarbeitung usw. zur Verfügung stellen .
  • In einer oder mehreren Implementierungen kann das Adaptergerät 120 jeden Adapterdienst in einem diskreten Dienstcontainer implementieren . Wie hier verwendet, bezieht sich ein „Servicecontainer“ auf eine isolierte Rechnerumgebung, die zur Bereitstellung eines bestimmten Adapterdienstes ausgeführt wird. In einigen Implementierungen kann das Adaptergerät 120 einen Composer-Container ausführen , um eine beliebige Anzahl von Service-Containern bereitzustellen. Eine Beispielimplementierung eines Adapterbausteins 120 unter Verwendung eines Composer-Containers und eines oder mehrerer Service-Container wird im Folgenden unter Bezugnahme auf beschrieben.
  • In einer oder mehreren Implementierungen kann ein Composer-Container ein spezialisierter Container sein, der die Zuweisungen von Ressourcen des Adapter-Gerätes 120 zu verschiedenen Service-Containern verwaltet. Der Composer-Container kann die Betriebseigenschaften der Service-Container steuern. In einigen Implementierungen kann der Composer-Containerbeispielsweise jeden Service-Container als einen von drei Service-Container-Typen angeben, nämlich als einen Gerätetyp, einen Host-Typ und einen Service-Endpunkt-Typ. Solche Typen können bestimmen, wie Service-Container dem Host-System 100 ausgesetzt sind (oder erscheinen).In einigen Implementierungen kann z.B. der Gerätetyp des Dienstcontainers vom Hostsystem 100 als ein bestimmter Typ von Peripheriegerät wahrgenommen werden (z.B. ein Speichergerät, ein Netzwerk-Switch, eine NetzwerkSchnittstellenkarte (NIC) usw.). Der Hosttyp des Dienstcontainers kann vom Hostsystem 100 als ein entferntes oder gleichrangiges Computergerät (z.B. ein Server, ein Desktop usw.) wahrgenommen werden. Service-Endpunkt-Typ des Service-Containers kann vom Hostsystem 100 als Zugangspunkt für einen bestimmten Computerdienst (z.B. eine Adresse für einen bestimmten Webdienst, eine REST-Schnittstelle (Representational State Transfer)usw. ) wahrgenommen werden.
  • Beachten Sie, dass BILD 1 zwar Beispielimplementierungen des Host-Systems 100 und des Adaptergerätes 120 zeigt, die bestimmte Komponenten enthalten , dass aber auch andere Implementierungen möglich sind. Beispielsweise wird in Betracht gezogen, dass das Hostsystem 100 und/oder die Adaptervorrichtung 120 zusätzliche Komponenten, andere Komponenten, weniger Komponenten usw. enthalten können. In einigen Beispielen kann das Adaptergerät 120 eine beliebige Anzahl von Prozessoren, Grafikbeschleunigern, Mathematikbeschleunigern, Verschlüsselungsbeschleunigern, Netzwerkschnittstellen, Busschnittstellen, Speichergeräten, FPGA-Geräten (Field-Programmable Gate Array ) usw. enthalten.
  • Unter Bezugnahme auf 2 wird nun ein Flussdiagramm eines Beispielkonfigurationsprozesses 200 in Übereinstimmung mit einigen Implementierungen gezeigt. Zur Veranschaulichung können im Folgenden Einzelheiten des Prozesses 200 unter Bezugnahme auf BILD 3 beschrieben werden, das ein Beispielsystem 300 in Übereinstimmung mit einer oder mehreren Implementierungen zeigt. Eine oder mehrere in 3 gezeigte Komponenten können im allgemeinen einer oder mehreren in 1 gezeigten Komponenten entsprechen. Zum Beispiel kann das Host-Gerät 310 im allgemeinen einer Beispielimplementierung des Host-Systems 100 entsprechen, und das Adapter-Gerät 320 kann im allgemeinen einer Beispielimplementierung des Adapter-Gerätes 120 entsprechen. Es sind jedoch auch andere Implementierungen möglich. Der Prozess 200 kann in Hardware oder maschinenlesbaren Anweisungen (z.B. Software und/oder Firmware) implementiert sein. Die maschinenlesbaren Anweisungen können in einem nicht vorübergehenden computerlesbaren Medium gespeichert werden, z.B. in einem optischen, Halbleiter- oder Magnetspeichergerät.
  • Wie in 2 gezeigt, kann Block 210 den Empfang einer Anforderung von einem Host zur Bereitstellung eines Service-Containers durch einen Composer-Container in einem Adapter-Gerät beinhalten. Unter Bezugnahme auf 3 kann beispielsweise ein Host-Gerät 310 eine Composer-Anwendung 312, einen Composer-Treiber 314 und einen PCI-BusTreiber 316 enthalten. Ferner kann ein Adaptergerät 320 einen Composer-Container 322 und mehrere Service-Container 324A-324F (im Allgemeinen auch als Service-Container 324 bezeichnet) enthalten. Angenommen, ein Benutzer interagiert mit der Composer-Anwendung 312, um einen bestimmten Adapterdienst und/oder Servicecontainer anzugeben. Als Antwort darauf kann die Composer-Anwendung 312 eine Anforderung 311 erzeugen, einen Service-Container 324 bereitzustellen, um den angegebenen Adapterdienst bereitzustellen. In einigen Implementierungen kann die Anforderung 311 über den Composer-Treiber 314 und den PCI-Bustreiber 316 des Host-Gerätes 310 an den Composer-Container 322 des Adapter-Gerätes 320 übermittelt werden. In einigen Beispielen kann die Anforderung 311 zumindest teilweise über Datenformate wie JavaScript Object Notation (JSON), Extensible Markup Language (XML), Binary Encoded JSON (BEJ ) usw. übermittelt werden . In einigen Implementierungen kann die Funktionalität der Composer-Anwendung 312 in einem anderen Gerät und/oder einer anderen Software-Anwendung implementiert sein (z.B. in einem Gerät zur entfernten Systemverwaltung oder einer Anwendung, die über das Netzwerk 330 an das Adaptergerät 320 gekoppelt ist).
  • Unter erneutem Verweis auf 2 kann Block 220 die Bestimmung der Hardware-Anforderungen des angeforderten Service-Containers enthalten. Block 230 kann die Bestimmung der verfügbaren Ressourcen des Adapters beinhalten. Diamant 240 kann die Bestimmung beinhalten, ob die verfügbaren Ressourcen des Adapters die Hardware-Anforderungen des angeforderten Service-Containers unterstützen können. Unter Bezugnahme auf BILD 3 kann beispielsweise der Composer-Container 322 als Antwort auf die Anfrage 311 den Typ und die Menge der Hardwareressourcen des Adaptergerätes 320 bestimmen, die für die Implementierung des angeforderten Service-Containers 324 erforderlich wären (z.B. ein erforderlicher Speicherplatz, eine erforderliche Verarbeitungsgeschwindigkeit usw.). Der Composer-Container 322 kann auch die verfügbaren Ressourcen des Adapterbausteins 320 bestimmen (z.B. durch Subtraktion früherer Zuweisungen zu bestehenden Containern von der Gesamtmenge der Ressourcen des Adapterbausteins 320). Der Composer-Container 322 kann auch bestimmen, ob die Anforderungen des angeforderten Service-Containers durch die verfügbaren Ressourcen der Adaptervorrichtung 320 unterstützt werden können. In einigen Implementierungen kann der Composer-Container 322 eine oder mehrere gespeicherte Datenstrukturen pflegen, um bestehende Zuweisungen von Ressourcen zu Containern (z.B. zu den Service-Containern 324 und dem Composer-Container 322), Gesamtressourcen usw. zu verfolgen.
  • Wenn bei Raute 240 festgestellt wird, dass die verfügbaren Ressourcen des Adapters die Anforderungen des angeforderten Servicebehälters nicht unterstützen können, kann der Prozess 200 bei Block 270 fortgesetzt werden, einschließlich der Auslösung einer Ausnahme. Nach Block 270 kannder Prozess 200 abgeschlossen werden. Zum Beispiel kann unter Bezugnahme auf BILD 3 als Reaktion auf die Feststellung, dass die Anforderungen des angeforderten Service-Containers 324 nicht durch die verfügbaren Ressourcen des Adaptergerätes 320 unterstützt werden können, der Composer-Container 322 eine Fehlermeldung erzeugen, um den Benutzer darauf hinzuweisen, dass der angeforderte Service-Container 324 nicht auf dem Adaptergerät 320 eingesetzt werden kann.
  • Wenn jedoch bei Raute 240 festgestellt wird, dass die verfügbaren Ressourcen des Adapters die Anforderungen des angeforderten Servicecontainers unterstützen können, dann kann der Prozess 200 bei Block 250 fortgesetzt werden, einschließlich der Zuweisung einer Teilmenge der Adapterressourcen an den angeforderten Servicecontainer. Ferner kann Block 260 die Bereitstellung des angeforderten Servicecontainers auf dem Adaptergerät beinhalten. Nach Block 260 kannder Prozess 200 abgeschlossen werden. Bezogen auf BILD 3 kann beispielsweise als Reaktion auf die Feststellung, dass die Anforderungen des angeforderten Service-Containers 324 durch die verfügbaren Ressourcen der Adaptervorrichtung 320 unterstützt werden können, der Composer-Container 322 eine Teilmenge der Adapterressourcen dem angeforderten Service-Container 324 zuweisen und die Ausführung des angeforderten Service-Containers 324 in der Adaptervorrichtung 320 einleiten. In einigen Implementierungen kann der Composer-Container 322 die gemeinsame Nutzung von Adapter-Ressourcen über mehrere Service-Container 324 koordinieren. Beispielsweise kann der Composer-Container 322 Teile bestimmter Ressourcen (z.B. Kerne oder Bandbreite der Zentraleinheit (CPU), Bandbreite der Netzwerkschnittstelle, Kerne oder Bandbreite der Grafikverarbeitungseinheit (GPU), kryptographische Beschleunigungseinheit usw.) verschiedenen Service-Containern 324 in bestimmten Zeitscheiben, Zeitbereichen usw. zuweisen.
  • In einer oder mehreren Implementierungen kann der Composer-Container 322 den Dienstcontainertyp und andere Betriebseigenschaften jedes eingesetzten Dienstcontainers 324 auf der Grundlage der Anforderung 311 steuern. Beispielsweise kann der Service-Container 324A als ein Gerätetyp-Container eingesetzt werden, dem ein einzelner CPU-Kern und eine bestimmte Netzwerkbandbreite zugewiesen wird und der eine virtuelle Netzwerkkarte bereitstellt, um das Host-Gerät 310 mit dem Netzwerk 330 zu verbinden. In einem zweiten Beispiel kann der Servicecontainer 324B als ein Service-Endpunkttyp eingesetzt werden, dem zwei CPU-Kerne zugeordnet sind und der einen bestimmten Webdienst für das Host-Gerät 310 bereitstellt. In einem dritten Beispiel kann der Servicecontainer 324C als ein Gerätetyp eingesetzt werden, dem ein CPU-Kern und zwei GPU-Kerne zugeordnet sind und der einen Netzwerk-Switch-Dienst für das Host-Gerät 310 bereitstellt. In einem vierten Beispiel kann der Servicecontainer 324D als ein Host-Typ eingesetzt werden, dem ein CPU-Kern und eine kryptographische Beschleunigungseinheit zugeordnet sind und der dem Host-Gerät 310 Ver- und/oder Entschlüsselungsdienste zur Verfügung stellt . In einem fünften Beispiel kann der Servicecontainer 324E als ein Gerätetyp eingesetzt werden, dem ein CPU-Kern und sieben GPU-Kerne zugeordnet sind und der dem Host-Gerät 310 einen NVMe-Speicherdienst (Non-Volatile Memory Express)zur Verfügung stellt. In einem sechsten Beispiel kann der Servicecontainer 324F als ein Gerätetyp-Container eingesetzt werden, dem zwei CPU-Kerne und fünf GPU-Kerne zugeordnet sind und der ein Speichergerät mit Daten-Deduplizierung für das Host-Gerät 310 bereitstellt. Darüber hinaus kann in einigen Beispielen ein einzelner Servicecontainer 324 mehrere Adapterdienste für das Host-Gerät 310 bereitstellen.
  • In einer oder mehreren Implementierungen können die Service-Container 324 isoliert voneinander unterhalten werden. Beispielsweise hat der Servicecontainer 324A möglicherweise keinen Zugriff auf interne Daten des Servicecontainers 324B und umgekehrt. Ferner hat der Dienstcontainer 324C unter Umständen keinen Zugriff auf die Kommunikation zwischen dem Host-Gerät 310 und dem Dienstcontainer 324D und umgekehrt. Auf diese Weise kann die Datensicherheit verschiedener Adapterdienste, die vom Adaptergerät 320 bereitgestellt werden, verbessert werden. Ferner kann die Wahrscheinlichkeit verringert werden, dass ein falsch konfigurierter oder implementierter Dienstcontainer 324 andere Dienstcontainer 324 beeinträchtigt. Darüber hinaus kann eine solche Isolierung zwischen den Servicecontainern 324 den Schaden und/oder die Verbreitung von Malware, die einen bestimmten Servicecontainer 324 beeinträchtigt, verringern.
  • In einer oder mehreren Implementierungen können die Servicecontainer 324 auf Rechenressourcen von Gerät(en) zugreifen, die außerhalb des Adaptergerätes 320 liegen (nicht in 3 dargestellt). Beispielsweise kann dem Servicecontainer 324A die Verarbeitungsbandbreite eines GPU-Geräts zugewiesen werden, das in das Host-Gerät 310 eingebaut ist (z.B. in einem anderen PCI-Steckplatz). In einem anderen Beispiel kann dem Servicecontainer 324B die Verarbeitungsbandbreite eines FPGA-Geräts zugewiesen werden, das an eine Busschnittstelle des Adaptergeräts 320 gekoppelt ist (z.B. in einem PCI-Steckplatz des Adaptergeräts 320). In einigen Implementierungen sind solche externen Ressourcen, die dem Adapterbaustein 320 zugeordnet sind, für den Hostbaustein 310 möglicherweise nicht sichtbar.
  • In einigen Implementierungen kann das Adaptergerät 320 mehrere Netzwerkanschlüsse enthalten, die mit dem Netzwerk 330 gekoppelt sind. In solchen Implementierungen kann ein Service-Container 324 die Aggregation des Netzwerkverkehrs zum Host-Gerät 310 bereitstellen. Beispielsweise kann der Servicecontainer 324A Netzwerkverkehr von mehreren NVMe-Speichergeräten aggregieren .
  • Unter Bezugnahme auf 4 wird nun ein Flussdiagramm eines Beispielprozesses 400 in Übereinstimmung mit einigen Implementierungen gezeigt. Zur Veranschaulichung können im Folgenden Einzelheiten des Prozesses 400 unter Bezugnahme auf die FIGs beschrieben werden. 1-3, die Beispielimplementierungen zeigen. Es sind jedoch auch andere Implementierungen möglich. Der Prozess 400 kann in Hardware (z.B. Schaltkreise) oder in maschinenlesbaren Anweisungen (z.B. Software und/oder Firmware) implementiert sein. Die maschinenlesbaren Instruktionen werden in einem nichttransitorischen computerlesbaren Medium gespeichert, z.B. in einem optischen, Halbleiter- oder magnetischen Speichergerät.
  • Wie in 4 gezeigt, kann Block 410 die Ausführung eines Composer-Containers in einer mit dem Host-Gerät gekoppelten Adaptervorrichtung umfassen , wobei die Adaptervorrichtung eine Vielzahl von Rechenressourcen umfasst. Bezogen auf 3 kann beispielsweise der Composer-Container 322 von der Adaptervorrichtung 320 ausgeführt werden. In einigen Implementierungen kann die Adaptervorrichtung 320 verschiedene Rechenressourcen enthalten (z.B. Speicher 122, Prozessor 125, Speicher 126 und Netzwerkschnittstelle 128, dargestellt in 1).
  • Block 420 kann den Empfang einer Vielzahl von Adapter-Serviceanforderungen vom Host-Gerätdurch den Composer-Container im Adapter-Gerät beinhalten . Wie hier verwendet, ist eine „Adapter-Serviceanforderung“ eine Anforderung, die bewirkt, dass ein Servicecontainer in einem Adaptergerät bereitgestellt wird. In einigen Implementierungen kann die Adapter-Serviceanforderung Merkmale eines Servicecontainers angeben. In anderen Implementierungen kann die Adapter-Serviceanforderung Merkmale eines Adapter-Service angeben, der in einem Service-Container implementiert ist. In Bezug auf BILD 3 kann beispielsweise die Composer-Anwendung 312 im Host-Gerät 310 eine Anforderung 311 erzeugen, die bewirkt, dass ein Service-Container 324 im Adapter-Gerät 320 deployt wird. In einigen Implementierungen können die Anforderungen 311 über den Composer-Treiber 314 und den PCI-Bustreiber 316 des Host-Gerätes 310 an den Composer-Container 322 des Adapter-Gerätes 320 übermittelt werden.
  • Block 430 kann als Antwort auf die Vielzahl von Adapter-Serviceanforderungen den Composer-Container enthalten, der eine Vielzahl von Servicecontainern in der Adaptervorrichtung einsetzt, wobei jeder Servicecontainer einen bestimmten Verarbeitungsdienst für die Hostvorrichtung bereitstellen soll, und wobei jedem Servicecontainer eine Teilmenge der Vielzahl von Rechenressourcen der Adaptervorrichtung zugewiesen wird Zum Beispiel kann der Composer-Container 322 unter Bezugnahme auf 3 als Antwort auf die Anforderungen 311 einen Typ und eine Menge von Rechenressourcen der Adaptervorrichtung 320 bestimmen, die erforderlich wären, um jeden angeforderten Servicecontainer 324 zu implementieren. Der Composer-Container 322 kann die verfügbaren Rechenressourcen der Adaptervorrichtung 320 bestimmen (z.B. basierend auf einer oder mehreren gespeicherten Datenstrukturen, indem er frühere Zuweisungen zu bestehenden Containern von der Gesamtmenge der Ressourcen der Adaptervorrichtung 320 subtrahiert, usw.). Für jede Anforderung 311 kann der Composer-Container 322 bestimmen, ob die Anforderungen des angeforderten Service-Containers durch die verfügbaren Rechenressourcen der Adaptervorrichtung 320 unterstützt werden können. Wenn dies der Fall ist, kann der Composer-Container 322 eine Teilmenge der Adapter-Ressourcen dem angeforderten Service-Container 324 zuweisen und die Ausführung des angeforderten Service-Containers 324 in der Adaptervorrichtung 320 einleiten. Nach Block 430 kann der Prozess 400 abgeschlossen werden.
  • Unter Bezugnahme auf BILD 5 ist nun eine schematische Darstellung eines Beispieladapters Gerät 500 dargestellt. In einigen Beispielen kann die Adaptervorrichtung 500 im allgemeinen der Adaptervorrichtung 120 (in BILD 1 dargestellt ) und/oder der Adaptervorrichtung 320 (in BILD 3 dargestellt) entsprechen . Wie gezeigt, kann das Adaptergerät 500 Hardware-Prozessor(en ) 502, Speicher 503 und ein maschinenlesbares Speichermedium 505 einschließlich der Anweisungen 510-530 enthalten Das maschinenlesbare Speichermedium 505 kann ein nicht-transitorisches Medium sein. Ferner kann die Adaptervorrichtung 500 enthalten, wie z.B. Netzwerkschnittstelle(n), Grafikbeschleuniger, Kryptographiebeschleuniger, Busschnittstelle(n), ein FPGA (Field-Programmable Gate Array) und so weiter. Die Anweisungen 510-530 können von dem/den Hardware-Prozessor(en) 502 ausgeführt werden. Veranschaulichung können die Einzelheiten der Anweisungen 510-530 im Folgenden unter Bezugnahme auf FIGs beschrieben werden. 1-3, die Beispielimplementierungen zeigen. Es sind jedoch auch andere Implementierungen möglich.
  • Der/die Hardware-Prozessor(en) 502 kann/können einen Allzweck-Mikroprozessor, einen spezialisierten Controller, ein Prozessormodul oder Subsystem, eine programmierbare integrierte Schaltung, ein programmierbares Gate-Array, mehrere Prozessoren, einen Mikroprozessor mit mehreren Verarbeitungskernen usw. umfassen. Der Speicher 503 kann jede Art von Computerspeicher enthalten (z.B. dynamischer Speicher mit wahlfreiem Zugriff (DRAM), statischer Speicher mit wahlfreiem Zugriff (SRAM) usw.).
  • Die Anweisung 510 kann ausgeführt werden, um einen Composer-Container im Adaptergerät bereitzustellen, wobei das Adaptergerät mit einem Host-Gerät gekoppelt ist. Zum Beispiel, bezogen auf BILD 3, kann die Adaptervorrichtung 320 den Composer-Container 322 ausführen und mit der Hostvorrichtung 310 gekoppelt werden. In einigen Implementierungen kann die Adaptervorrichtung 320 mit einer physikalischen Slot-Schnittstelle der Hostvorrichtung 310 gekoppelt sein (z.B. die in BILD 1 gezeigte Adapter-Schnittstelle 118). Ferner kann in einigen Implementierungen das Adaptergerät 320 in einem Gehäuse des Host-Gerätes 310 eingeschlossen sein.
  • Die Anweisung 520 kann ausgeführt werden, um durch den Composer-Container im Adaptergerät eine Vielzahl von Adapter-Service-Anforderungen vom Hostgerät zu empfangen. Bezogen auf BILD 3 kann beispielsweise die Composer-Anwendung 312 im Host-Gerät 310 eine oder mehrere Anforderungen 311 für Adapterdienste im Adapter-Gerät 320 erzeugen . In einigen Implementierungen können die Anforderungen 311 über den Composer-Treiber 314 und den PCI-Bustreiber 316 des Host-Gerätes 310 an den Composer-Container 322 des Adaptergerätes 320 übermittelt werden.
  • Die Anweisung 530 kann ausgeführt werden, um als Antwort auf die Vielzahl von Adapter-Serviceanforderungen durch den Composer-Container eine Vielzahl von Servicecontainern in der Adaptervorrichtung bereitzustellen, wobei jeder Servicecontainer einen bestimmten Adapterdienst für die Hostvorrichtung bereitstellen soll, und wobei jedem Servicecontainer eine Teilmenge der Vielzahl von Rechenressourcen der Adaptervorrichtung zugewiesen wird. Zum Beispiel kann unter Bezugnahme auf BILD 3 als Antwort auf die Anforderungen 311 der Composer-Container 322 einen Typ und eine Menge von Rechenressourcen der Adaptervorrichtung 320 bestimmen, die erforderlich wären, um jeden angeforderten Servicecontainer 324 zu implementieren. Der Composer-Container 322 kann die verfügbaren Rechenressourcen der Adaptervorrichtung 320 bestimmen. Für jede Anforderung 311 kann der Composer-Container 322 bestimmen, ob die Anforderungen des angeforderten Service-Containers durch die verfügbaren Rechenressourcen der Adaptervorrichtung 320 unterstützt werden können. Wenn dies der Fall ist, kann der Composer-Container 322 eine Teilmenge der Adapter-Ressourcen dem angeforderten Service-Container 324 zuweisen und die Ausführung des angeforderten Service-Containers 324 in der Adaptervorrichtung 320 einleiten.
  • Unter Bezugnahme auf 6 wird nun das maschinenlesbare Medium 600 gezeigt, das die Anweisungen 610-630 speichert, in Übereinstimmung mit einigen Implementierungen. Die Instruktionen 610-630 können von einem oder mehreren Hardware-Prozessoren ausgeführt werden. Das maschinenlesbare Medium 600 kann ein nichtflüchtiges Speichermedium sein, wie z.B. ein optisches, Halbleiter-, Magnetspeichermedium, nichtflüchtiger Flash-Speicher usw. Zur Veranschaulichung können die Einzelheiten der Anweisungen 610-630 im Folgenden unter Bezugnahme auf FIGs beschrieben werden. 1-3, die Beispielimplementierungen zeigen. Es sind jedoch auch andere Implementierungen möglich.
  • Die Anweisung 610 kann ausgeführt werden, um einen Composer-Container in einem mit einem Host-Gerät gekoppelten Adaptergerät bereitzustellen , wobei das Adaptergerät eine Vielzahl von Rechenressourcen umfasst. Unter Bezugnahme auf BILD 3 kann beispielsweise die Adaptervorrichtung 320 den Composer-Container 322 ausführen und mit der Host-Vorrichtung 310 gekoppelt werden. Die Adaptervorrichtung 320 kann Hardware-Rechenressourcen enthalten (z.B. Prozessor(en), Speicher, Speicher, Netzwerkschnittstelle(n), Grafikbeschleuniger, Kryptographiebeschleuniger, Busschnittstelle(n), ein FPGA (Field-Programmable Gate Array) usw.). In einigen Implementierungen kann das Adaptergerät 320 an eine physikalische Steckplatz-Schnittstelle des Host-Gerätes 310 gekoppelt werden (z.B. die in BILD 1 dargestellte Adapter-Schnittstelle 118). Ferner kann in einigen Implementierungen der Adapter 320 in einem Gehäuse des Host-Gerätes 310 untergebracht sein.
  • Die Anweisung 620 kann ausgeführt werden, um durch den Composer-Container im Adaptergerät eine Vielzahl von Adapter-Service-Anforderungen vom Hostgerät zu empfangen. Bezogen auf BILD 3 kann beispielsweise die Composer-Anwendung 312 im Host-Gerät 310 eine oder mehrere Anforderungen 311 für Adapterdienste im Adapter-Gerät 320 erzeugen . In einigen Implementierungen können die Anforderungen 311 über den Composer-Treiber 314 und den PCI-Bustreiber 316 des Host-Gerätes 310 an den Composer-Container 322 des Adaptergerätes 320 übermittelt werden.
  • Die Anweisung 630 kann ausgeführt werden, um als Antwort auf die Vielzahl von Adapter-Serviceanforderungen durch den Composer-Container eine Vielzahl von Servicecontainern in der Adaptervorrichtung bereitzustellen, wobei jeder Servicecontainer einen bestimmten Adapterdienst für die Hostvorrichtung bereitstellen soll, und wobei jedem Servicecontainer eine Teilmenge der Vielzahl von Rechenressourcen der Adaptervorrichtung zugewiesen wird. Zum Beispiel kann unter Bezugnahme auf BILD 3 als Antwort auf die Anforderungen 311 der Composer-Container 322 einen Typ und eine Menge von Rechenressourcen der Adaptervorrichtung 320 bestimmen, die erforderlich wären, um jeden angeforderten Servicecontainer 324 zu implementieren. Der Composer-Container 322 kann die verfügbaren Rechenressourcen der Adaptervorrichtung 320 bestimmen. Für jede Anforderung 311 kann der Composer-Container 322 bestimmen, ob die Anforderungen des angeforderten Service-Containers durch die verfügbaren Rechenressourcen der Adaptervorrichtung 320 unterstützt werden können. Wenn dies der Fall ist, kann der Composer-Container 322 eine Teilmenge der Adapter-Ressourcen dem angeforderten Service-Container 324 zuweisen und die Ausführung des angeforderten Service-Containers 324 in der Adaptervorrichtung 320 einleiten.
  • In Übereinstimmung mit einigen Implementierungen können Beispiele die Bereitstellung von Servicecontainern in einem Adaptergerät vorsehen. Bei der Adaptervorrichtung kann es sich um einen intelligenten Adaptermit Rechenressourcen (z.B. Prozessor, Speicher, Speicher, Beschleuniger usw.) handeln. Das Adaptergerät kann einen Composer-Container ausführen, der eine Anforderung für einen Adapterdienst empfangen kann. Als Antwort auf die Anforderung kann der Composer-Container feststellen, ob das Adaptergerät über ausreichende Rechenressourcen verfügt, um einen Service-Container zur Bereitstellung des angeforderten Adapterdienstes zu unterstützen. Wenn dies der Fall ist, kann der Composer-Container einen Teil der Rechenressourcen dem Service-Container zuweisen und den Service-Container in der Adaptervorrichtung bereitstellen. In einigen Implementierungen kann die Bereitstellung von Adapterdiensten in Servicecontainern es dem Host ermöglichen, die Verarbeitung auf den Smart-Adapter auszulagern und dadurch die Host-Leistung und -Flexibilität zu verbessern. Bei einigen Implementierungen können die Service-Container außerdem voneinander isoliert werden, wodurch die Sicherheit der ausgelagerten Services verbessert wird .
  • Beachten Sie, dass die 1-6 zwar verschiedene Beispiele zeigen, die Implementierungen in dieser Hinsicht jedoch nicht begrenzt sind. Obwohl sie nicht in jedem der gezeigt werden, können die oben beschriebenen Geräte beispielsweise zusätzliche Komponenten enthalten, wie Speicher (z.B. dynamischer Speicher mit wahlfreiem Zugriff (DRAM)), Prozessoren, Controller, Speichergeräte, Busse, Schalter, Batterien, Antennen, Anzeigegeräte, Eingabegeräte, Stromversorgungen und so weiter. In einem anderen Beispiel werden zwar Beispielimplementierungen unter Verwendung eines Composer-Containers und von Service-Containern beschrieben, es wird jedoch erwogen, dass auch andere isolierte Computerumgebungen oder -technologien verwendet werden können. Unter Bezugnahme auf BILD 3 wird beispielsweise erwogen, dass das Adaptergerät 320 eine Composer-VM (Composer Virtual Machine) und mehrere Service-VMs enthalten kann. Andere Kombinationen und/oder Variationen sind ebenfalls möglich.
  • Daten und Anweisungen werden in entsprechenden Speichergeräten gespeichert, die als ein oder mehrere computerlesbare oder maschinenlesbare Speichermedien ausgeführt sind. Zu den Speichermedien gehören verschiedene Formen nicht vorübergehender Speicher, einschließlich Halbleiterspeichereinrichtungen wie dynamische oder statische Speicher mit wahlfreiem Zugriff (DRAMs oder SRAMs), löschbare und programmierbare Festwertspeicher (EPROMs), elektrisch löschbare und programmierbare Festwertspeicher (EEPROMs) und Flash-Speicher; Magnetplatten wie Fest-, Disketten- und Wechselplatten; andere magnetische Medien einschließlich Band; optische Medien wie Compact Disks (CDs) oder digitale Videoplatten (DVDs); oder andere Arten von Speichereinrichtungen.
  • Beachten Sie, dass die oben erörterten Anweisungen auf einem computerlesbaren oder maschinenlesbaren Speichermedium oder alternativ auf mehreren computerlesbaren oder maschinenlesbaren Speichermedien bereitgestellt werden können, die in einem großen System mit möglicherweise mehreren Knoten verteilt sind. Ein solches computerlesbares oder maschinenlesbares Speichermedium bzw. solche Speichermedien wird (werden) als Teil eines Artikels (oder Herstellungsartikels) betrachtet. Ein Artikel oder Fertigungsgegenstand kann sich auf jede hergestellte Einzelkomponente oder mehrere Komponenten beziehen. Das Speichermedium bzw. die Speichermedien können sich entweder in der Maschine befinden, auf der die maschinenlesbaren Anweisungen ausgeführt werden, oder an einem entfernten Standort, von dem maschinenlesbare Anweisungen zur Ausführung über ein Netzwerk heruntergeladen werden können.
  • In der vorstehenden Beschreibung werden zahlreiche Einzelheiten dargelegt, um ein Verständnis des hier offengelegten Themas zu ermöglichen. Implementierungen können jedoch auch ohne einige dieser Details praktiziert werden. Andere Implementierungen können Modifikationen und Abweichungen von den oben besprochenen Details enthalten. Es ist beabsichtigt, dass die beigefügten Ansprüche solche Modifikationen und Abweichungen abdecken.

Claims (20)

  1. Eine Adaptervorrichtung umfassend: einen Prozessor; und ein Speichermedium mit vom Prozessor ausführbaren Anweisungen, die Anweisungen umfassend: Entfalten eines Composer-Behälters in der Adaptervorrichtung, wobei die Adaptervorrichtung mit einer Hostvorrichtung gekoppelt ist; durch den Composer-Container eine Vielzahl von Adapter-Service-Anforderungen vom Host-Gerät empfangen; und als Antwort auf die Vielzahl von Dienstanforderungen durch den Composer-Container eine Vielzahl von Dienstcontainern in der Adaptervorrichtung bereitstellen, wobei jeder Dienstcontainer einen bestimmten Adapterdienst für die Hostvorrichtung bereitstellen soll, und wobei jedem Dienstcontainer eine Teilmenge der Vielzahl von Rechenressourcen der Adaptervorrichtung zugewiesen wird.
  2. Adaptervorrichtung nach Anspruch 1, wobei der Composer-Behälter für jeden Servicebehälter jedes der mehreren Servicebehälter bestimmt ist: die Anforderungen an den Servicecontainerbestimmen; die verfügbaren Rechenressourcen des Adaptergerätes zu bestimmen; und als Reaktion auf eine Feststellung, dass die verfügbaren Rechenressourcen des Adaptergeräts die Anforderungen des Servicecontainers unterstützen können, den Servicecontainer auf dem Adaptergerät bereitstellen.
  3. Adaptervorrichtung nach Anspruch 1 oder 2, wobei der Composer-Container einen Servicecontainertyp von jedem der mehreren Servicecontainer konfigurieren soll und wobei der Servicecontainertyp einer ist, der aus einem Gerätetyp, einem Hosttyp und einem Service-Endpunkttyp ausgewählt wird.
  4. Adaptervorrichtung nach Anspruch 3, wobei ein erster Dienstcontainer aus der Vielzahl von Dienstcontainern als ein geräteartiger Container eingesetzt wird, der eine virtuelle Netzwerkkarte (NIC) bereitstellt, um das Host-Gerät mit einem Netzwerk zu verbinden.
  5. Adaptervorrichtung nach Anspruch 4, bei der ein zweiter Dienstcontainer aus der Vielzahl von Dienstcontainern als ein Hosttyp-Container eingesetzt wird, der dem Hostgerät einen Verschlüsselungsdienst zur Verfügung stellt.
  6. Adaptervorrichtung nach Anspruch 5, bei der ein dritter Servicecontainer aus der Vielzahl von Servicecontainern als ein Container vom Service-Endpunkttyp eingesetzt wird, der dem Host-Gerät einen bestimmten Webdienst zur Verfügung stellt.
  7. Die Adaptervorrichtung nach einem der Ansprüche 1 bis 6, wobei die Mehrzahl der Rechenressourcen der Adaptervorrichtung einen Prozessor, einen Grafikbeschleuniger, Speicher, Speicher und eine Netzwerkschnittstelle umfasst.
  8. Ein nicht vorübergehendes maschinenlesbares Speichermedium, das Befehle speichert, die bei der Ausführung einen Prozessor eines Computergerätes dazu veranlassen: Bereitstellen eines Composer-Containers in einer Adaptervorrichtung, die mit einer Hostvorrichtung gekoppelt ist, wobei die Adaptervorrichtung eine Vielzahl von Rechenressourcen umfasst; durch den Composer-Container in der Adaptervorrichtung eine Vielzahl von Adapter-Serviceanforderungen von der Hostvorrichtung empfangen; und als Antwort auf die Vielzahl von Adapter-Serviceanforderungen durch den Composer-Container eine Vielzahl von Servicecontainern in der Adaptervorrichtung bereitstellen, wobei jeder Servicecontainer einen bestimmten Adapterdienst für die Hostvorrichtung bereitstellen soll, und wobei jedem Servicecontainer eine Teilmenge der Vielzahl von Rechenressourcen der Adaptervorrichtung zugewiesen wird .
  9. Das nicht vorübergehende maschinenlesbare Speichermedium nach Anspruch 8, wobei die Anweisungen den Prozessor dazu veranlassen : durch den Composer-Container eine oder mehrere gespeicherte Datenstrukturen verwalten , um die Zuweisungen der Vielzahl von Rechenressourcen an die Vielzahl von Service-Containern zu verfolgen .
  10. Das nicht vorübergehende maschinenlesbare Speichermedium nach Anspruch 8 oder 9, wobei die Anweisungen den Prozessor dazu veranlassen : bestimmen durch den Composer-Container die Anforderungen an den Service-Container; durch den Composer-Container die verfügbaren Rechenressourcen des Adaptergerätes zu bestimmen; und als Reaktion auf die Feststellung, dass die verfügbaren Rechenressourcen der Adaptervorrichtung die Anforderungen des Service-Containers unterstützen können, den Service-Container auf der Adaptervorrichtung durch den Composer-Containerbereitstellen.
  11. Das nicht vorübergehende maschinenlesbare Speichermedium eines der Ansprüche 8 bis 10, wobei die Anweisungen den Prozessor dazu veranlassen: durch den Zusammenstellungscontainer einen Dienstcontainertyp eines ersten Dienstcontainers aus der Vielzahl von Dienstcontainern konfigurieren , wobei der Dienstcontainertyp einer ist, der aus einem Gerätetyp, einem Hosttyp und einem Dienstendpunkttyp ausgewählt wird.
  12. Das nicht vorübergehende maschinenlesbare Speichermedium nach Anspruch 11, wobei der erste Dienstcontainer als ein geräteartiger Container eingesetzt wird, der dem Host-Gerät einen Netzwerk-Switch-Dienst zur Verfügung stellt.
  13. Das nicht vorübergehende maschinenlesbare Speichermedium eines der Ansprüche 11 bis 12, wobei die Anweisungen den Prozessor dazu veranlassen : dem ersten Service-Containerdurch den Composer-Container eine Teilmenge verfügbarer Zentraleinheitskerne und eine Teilmenge verfügbarer Grafikverarbeitungseinheitskerne zuweisen .
  14. Ein Verfahren, umfassend: Ausführen eines Composer-Containers in einer Adaptervorrichtung, die mit der Hostvorrichtung gekoppelt ist, wobei die Adaptervorrichtung eine Vielzahl von Rechenressourcen umfasst; Empfangen einer Vielzahl von Dienstanforderungen von der Host-Vorrichtung durch den Composer-Container in der Adaptervorrichtung; und als Antwort auf die Vielzahl von Dienstanforderungen, wobei der Composer-Container eine Vielzahl von Dienstcontainern in der Adaptervorrichtung einsetzt, wobei jeder Dienstcontainer einen bestimmten Verarbeitungsdienst für die Hostvorrichtung bereitstellen soll und wobei jedem Dienstcontainer eine Teilmenge der Vielzahl der Rechenressourcen der Adaptervorrichtung zugewiesen wird.
  15. Das Verfahren nach Anspruch 14, bestehend aus: Bestimmung der Anforderungen an den Service-Container durch den Composer-Container; Bestimmung durch den Composer-Container, ob die verfügbaren Rechenressourcen des Adaptergerätes die Anforderungen des Service-Containers unterstützen können; und als Reaktion auf die Feststellung, dass die verfügbaren Rechenressourcen des Adaptergeräts die Anforderungen des Servicecontainers unterstützen können, wird der Servicecontainer durch den Composer-Container auf dem Adaptergerätbereitgestellt.
  16. Das Verfahren nachAnspruch 14 oder 15, bestehend aus: Pflege einer oder mehrerer gespeicherter Datenstrukturen durch den Composer-Container, um die Zuweisungen der Vielzahl von Rechenressourcen an die Vielzahl von Service-Containern zu verfolgen .
  17. Das Verfahren nachjedem der Ansprüche 14 bis 16, bestehend aus: Konfigurieren eines Dienstcontainertyps eines ersten Dienstcontainers aus der Vielzahl von Dienstcontainern durch den Composer-Container, wobei der Dienstcontainertyp einer ist, der aus einem Gerätetyp, einem Hosttyp und einem Dienstendpunkttyp ausgewählt wird.
  18. Das Verfahren nach Anspruch 17, wobei der erste Servicecontainer als ein geräteartiger Container eingesetzt wird, der ein Speichergerät mit Daten-Deduplizierung zum Hostgerätbereitstellt .
  19. Das Verfahren nach Anspruch 17, wobei der erste Servicecontainer als ein geräteartiger Container eingesetzt wird, der dem Hostgerät ein nichtflüchtiges Speicher-Express-Speicherdienst-Speichergerät (NVMe) zur Verfügung stellt.
  20. Das Verfahren nach einem der Ansprüche 14 bis 19, bestehend aus: Koppeln der Adaptervorrichtung an einen physikalischen Bus-Steckplatz der Host-Vorrichtung, wobei die gekoppelte Adaptervorrichtung in einem Gehäuse der Host-Vorrichtung enthalten ist.
DE102020113346.4A 2019-07-02 2020-05-18 Bereitstellen von service-containern in einer adaptervorrichtung Pending DE102020113346A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN201941026537 2019-07-02
IN201941026537 2019-07-02

Publications (1)

Publication Number Publication Date
DE102020113346A1 true DE102020113346A1 (de) 2021-01-07

Family

ID=73919522

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020113346.4A Pending DE102020113346A1 (de) 2019-07-02 2020-05-18 Bereitstellen von service-containern in einer adaptervorrichtung

Country Status (3)

Country Link
US (2) US11693669B2 (de)
CN (1) CN112181632A (de)
DE (1) DE102020113346A1 (de)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9225638B2 (en) 2013-05-09 2015-12-29 Vmware, Inc. Method and system for service switching using service tags
US9825810B2 (en) 2014-09-30 2017-11-21 Nicira, Inc. Method and apparatus for distributing load among a plurality of service nodes
US10225137B2 (en) 2014-09-30 2019-03-05 Nicira, Inc. Service node selection by an inline service switch
US10594743B2 (en) 2015-04-03 2020-03-17 Nicira, Inc. Method, apparatus, and system for implementing a content switch
US10797966B2 (en) 2017-10-29 2020-10-06 Nicira, Inc. Service operation chaining
US10805192B2 (en) 2018-03-27 2020-10-13 Nicira, Inc. Detecting failure of layer 2 service using broadcast messages
US11595250B2 (en) 2018-09-02 2023-02-28 Vmware, Inc. Service insertion at logical network gateway
US11467861B2 (en) 2019-02-22 2022-10-11 Vmware, Inc. Configuring distributed forwarding for performing service chain operations
US11140218B2 (en) 2019-10-30 2021-10-05 Vmware, Inc. Distributed service chain across multiple clouds
US20230027179A1 (en) * 2019-12-19 2023-01-26 Koninklijke Philips N.V. Dynamic personalized platform generation based on on-the-fly requirements
US11659061B2 (en) 2020-01-20 2023-05-23 Vmware, Inc. Method of adjusting service function chains to improve network performance
US11438257B2 (en) 2020-04-06 2022-09-06 Vmware, Inc. Generating forward and reverse direction connection-tracking records for service paths at a network edge
US11611625B2 (en) 2020-12-15 2023-03-21 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers
US11734043B2 (en) 2020-12-15 2023-08-22 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9489647B2 (en) * 2008-06-19 2016-11-08 Csc Agility Platform, Inc. System and method for a cloud computing abstraction with self-service portal for publishing resources
US9582292B2 (en) * 2008-10-07 2017-02-28 Microsoft Technology Licensing, Llc. Merged tree-view UI objects
US8065454B1 (en) 2009-08-20 2011-11-22 Qlogic, Corporation System and method for mapping functions to and from network devices using configuration compatible with an adapter by remapping plurality of logical ports of adapter
US8904343B2 (en) * 2009-12-21 2014-12-02 Sap Se Adding services to application platform via extension
US10338958B1 (en) * 2014-01-27 2019-07-02 Amazon Technologies, Inc. Stream adapter for batch-oriented processing frameworks
US9948505B2 (en) * 2015-05-05 2018-04-17 Citrix Systems, Inc. Systems and methods for integrating a device with a software-defined networking controller
US11719857B1 (en) * 2015-05-13 2023-08-08 United States Of America As Represented By The Administrator Of Nasa System and method for providing a reanalysis ensemble service
US9674090B2 (en) 2015-06-26 2017-06-06 Microsoft Technology Licensing, Llc In-line network accelerator
US10333865B2 (en) * 2015-08-21 2019-06-25 Cisco Technology, Inc. Transformation of peripheral component interconnect express compliant virtual devices in a network environment
US10608992B2 (en) 2016-02-26 2020-03-31 Microsoft Technology Licensing, Llc Hybrid hardware-software distributed threat analysis
EP3623954A1 (de) * 2016-06-14 2020-03-18 Huawei Technologies Co. Ltd. Datenzugriffsverfahren und zugehörige vorrichtung und system
US10187323B2 (en) * 2016-09-02 2019-01-22 Pivotal Software, Inc. On-demand resource provisioning
US10908895B2 (en) * 2018-12-21 2021-02-02 Pensando Systems Inc. State-preserving upgrade of an intelligent server adapter
US11157203B2 (en) * 2019-05-15 2021-10-26 EMC IP Holding Company LLC Adaptive load balancing in storage system having multiple input-output submission queues
US11379387B2 (en) * 2019-08-02 2022-07-05 EMC IP Holding Company LLC Storage system with submission queue selection utilizing application and submission queue priority
US20230148292A1 (en) * 2021-11-08 2023-05-11 Spawn Computing LLC System and method for reward-based computing services on a distributed computing platform

Also Published As

Publication number Publication date
US20230315489A1 (en) 2023-10-05
US11693669B2 (en) 2023-07-04
CN112181632A (zh) 2021-01-05
US20210004245A1 (en) 2021-01-07

Similar Documents

Publication Publication Date Title
DE102020113346A1 (de) Bereitstellen von service-containern in einer adaptervorrichtung
DE102016221811B4 (de) Zuordnung von Ressourcen mit mehrschichtigem Speicher
DE102015105884B4 (de) Rechenknoten und Verfahren zur Migration einer virtuellen Maschine, Rechenzentrummanager zur Migration virtueller Maschinen, Maschinenlesbares Speichermedium und Rechenvorrichtungen
DE112013000395B4 (de) Vorrichtung, verfahren und computerlesbarer speicher zur richtliniendurchsetzung in rechenumgebung
DE112019001481T5 (de) Selektives bereitstellen gegenseitiger transportschichtsicherheit mittels alternativer servernamen
DE112017001762T5 (de) Technologien für den einsatz dynamischer underlay-netzwerke in cloud-computing-infrastrukturen
DE102019131123A1 (de) Technologien zur transparenten function-as-a-service-arbitrierung für edge-systeme
DE112016001657T5 (de) Multi-Tenant-Sensitiver DHCP-Mechanismus für Cloud-Netzwerke
DE112013007696T5 (de) Dienstvorlagenerzeugung und -einsatz basierend auf Erfordernissen der Vereinbarung über die Verbindungsgüte
DE102014117462A1 (de) Poolen von Speicherressourcen über mehrere Knoten hinweg
DE112012002404B4 (de) Konfiguration und Management virtueller Netzwerke
DE102019130686A1 (de) Technologien zur bereitstellung dynamischer auswahl von edge- und lokalen beschleunigerressourcen
CN109634720B (zh) 一种多虚拟机共享fpga板卡的方法、系统及装置
DE112017003294T5 (de) Technologien für ein skalierbares Senden und Empfangen von Paketen
DE102016102424A1 (de) Auf Inhalt beruhende Hardware-Sicherheitsmodulzuweisung zu virtuellen Maschinen
DE112020006858T5 (de) Dynamische interrupt-bereitstellung
DE102018118061A1 (de) Virtuelle-maschine-monitor-interrupt-unterstützung für computerverarbeitungseinheit (cpu)
DE112017001806T5 (de) Ein mechanismus zur entdeckung von pcie-kabeltopologien in einer rack-scale-architekturumgebung
DE102018115251A1 (de) Technologien zum Schutz eines virtuellen Maschinenspeichers
DE102018202432A1 (de) Strukturunterstützung für die Dienstgüte
US20190089618A1 (en) Extensible, Decentralized Health Checking of Cloud Service Components and Capabilities
DE112021002487T5 (de) Teilen einer geografisch konzentrierten arbeitslast zwischen benachbarten mec-hosts mehrerer netzbetreiber
DE112021005636T5 (de) Migrieren von komplexen legacy-anwendungen
DE112022002615T5 (de) Kontinuierliche funktionsfähigkeit und integrität von anwendungen während eines migrationsvorgangs
DE112018004415B4 (de) Optimierung von cloud-ressourcen bei operationen in mehrstufigem speicher auf richtliniengrundlage

Legal Events

Date Code Title Description
R082 Change of representative

Representative=s name: HL KEMPNER PATENTANWAELTE, SOLICITORS (ENGLAND, DE

Representative=s name: HL KEMPNER PATENTANWALT, RECHTSANWALT, SOLICIT, DE

R081 Change of applicant/patentee

Owner name: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, SPR, US

Free format text: FORMER OWNER: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, HOUSTON, TEX., US

R012 Request for examination validly filed