DE112019000910T5 - Technologien zum erreichen einer netzwerk-qualitätssicherung mit hardwarebeschleunigung - Google Patents
Technologien zum erreichen einer netzwerk-qualitätssicherung mit hardwarebeschleunigung Download PDFInfo
- Publication number
- DE112019000910T5 DE112019000910T5 DE112019000910.9T DE112019000910T DE112019000910T5 DE 112019000910 T5 DE112019000910 T5 DE 112019000910T5 DE 112019000910 T DE112019000910 T DE 112019000910T DE 112019000910 T5 DE112019000910 T5 DE 112019000910T5
- Authority
- DE
- Germany
- Prior art keywords
- orchestrator server
- units
- slo
- service
- computing
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Cooling Or The Like Of Electrical Apparatus (AREA)
Abstract
Technologien zum Managen der Service-Sicherstellung in einem Netzwerk umfassen einen Orchestrator-Server. Der Orchestrator-Server empfängt eine Aufforderung, eine Virtuelle-Maschine- (VM) Instanz zu starten, wobei die Aufforderung eine Auswahl einer Serviceklasse (CLoS) einer Erfahrungsqualitäts- (QoS) Spezifikation spezifiziert. Der Orchestrator-Server bildet die gewählte CLoS auf eine oder mehrere Service-Level-Ziel- (SLO) Einheiten ab, wobei die eine oder die mehreren SLO-Einheiten eine Rechenfähigkeit und eine erforderliche Netzwerk-Bandbreite, spezifiziert in einem Service Level Agreement (SLA), anzeigen. Der Orchestrator-Server startet die VM auf einer als eine Funktion der abgebildeten SLO-Einheiten identifizierten Rechenvorrichtung. Der Orchestrator-Server erzeugt einen oder mehrere Scores, die einer Performance der VM zugeordnet sind, und bestimmt, als eine Funktion des einen oder der mehreren erzeugten Scores, ob die Performance der VM auf der Rechenvorrichtung jede der einen oder mehreren SLO-Einheiten zufriedenstellt.
Description
- BEZUGNAHME AUF VERWANDTE ANMELDUNGEN
- Die vorliegende Offenbarung beansprucht die Priorität der Provisorischen US-Patentanmeldung mit dem Aktenzeichen 62/633,397, eingereicht am 21. Februar 2018, die hierin durch Bezugnahme aufgenommen ist.
- HINTERGRUND
- Service-Sicherstellung ist wichtig für Netzwerkfunktionen-Virtualisierungs- (NFV; network functions virtualization) und Softwaredefiniertes Networking- (SDN; software defined networking) Technologien. Im Allgemeinen bezieht sich Service-Sicherstellung auf eine Anwendung von Richtlinien und Prozessen zum Sicherstellen, dass Dienste, die über ein Netzwerk bereitgestellt werden, ein spezifiziertes Service-Qualitäts-Level erfüllen. Beispielsweise stellt ein Bestimmen einer Service-Qualität (QoS; quality of service) an einem Endpunkt und einem anderen Endpunkt ein Maß für die Service-Sicherstellung bereit. Dies umfasst ein Überwachen der Service-Infrastruktur-Performance bei virtualisierten Netzwerkfunktionen (VNFs; virtualized network functions), Einhaltung von Performance-Zielen, Warnungen für Schwellenverletzung und geeignete Handlungen. Ferner ist eine NFV-Arbeitslast üblicherweise einer Netzwerk-QoS-Anforderung zugeordnet, deren Verletzung dazu führen kann, dass ein Anbieter einen Kunden entschädigt. Derzeit sind Lösungen verfügbar, um QoS für Aspekte wie beispielsweise Rechenressourcen und Performance zu garantieren, aber eine umfassende Service-Sicherstellung für eine VNF erfordert oft eine Feinabstimmung von Prozessor, Speicher (memory) und Netzwerksteuerungen pro virtueller zentraler Verarbeitungseinheit (vCPU; virtual central processing unit) und pro Thread. Service-Sicherstellung kann auch eine konstante Rückkopplungsschleife zur Aufrechterhaltung einer QoS erfordern.
- Figurenliste
- Die hierin beschriebenen Konzepte sind beispielhaft und nicht einschränkend in den beiliegenden Figuren dargestellt. Der Einfachheit und Klarheit der Darstellung halber sind die in den Figuren dargestellten Elemente nicht notwendigerweise maßstabstreu gezeichnet. Wo es angemessen erscheint, wurden Bezugszeichen in den Figuren wiederholt, um entsprechende oder analoge Elemente anzuzeigen.
-
1 ist ein vereinfachtes Diagramm von zumindest einem Ausführungsbeispiel eines Rechenzentrums für ein Ausführen von Arbeitslasten mit disaggregierten Ressourcen; -
2 ist ein vereinfachtes Diagramm von zumindest einem Ausführungsbeispiel eines Pods, der in dem Rechenzentrum aus1 umfasst sein kann; -
3 ist eine Perspektivenansicht von zumindest einem Ausführungsbeispiel eines Racks, das in dem Pod aus2 umfasst sein kann; -
4 ist eine Seitenansicht des Racks aus3 ; -
5 ist eine Perspektivenansicht des Racks aus3 , das einen darin befestigten Schlitten aufweist; -
6 ist ein vereinfachtes Blockdiagramm von zumindest einem Ausführungsbeispiel einer Oberseite des Schlittens aus5 ; -
7 ist ein vereinfachtes Blockdiagramm von zumindest einem Ausführungsbeispiel einer Unterseite des Schlittens aus6 ; -
8 ist ein vereinfachtes Blockdiagramm von zumindest einem Ausführungsbeispiel eines Rechenschlittens, der in dem Rechenzentrum aus1 verwendbar ist; -
9 ist eine perspektivische Draufsicht von zumindest einem Ausführungsbeispiel des Rechenschlittens aus8 ; -
10 ist ein vereinfachtes Blockdiagramm von zumindest einem Ausführungsbeispiel eines Beschleunigerschlittens, der in dem Rechenzentrum aus1 verwendbar ist; -
11 ist eine perspektivische Draufsicht von zumindest einem Ausführungsbeispiel des Beschleunigerschlittens aus10 ; -
12 ist ein vereinfachtes Blockdiagramm von zumindest einem Ausführungsbeispiel eines Speicherungsschlittens (storage sled), der in dem Rechenzentrum aus1 verwendbar ist; -
13 ist eine perspektivische Draufsicht von zumindest einem Ausführungsbeispiel des Speicherungsschlittens aus12 ; -
14 ist ein vereinfachtes Blockdiagramm von zumindest einem Ausführungsbeispiel eines Speicherschlittens (memory sled), der in dem Rechenzentrum aus1 verwendbar ist; und -
15 ist ein vereinfachtes Blockdiagramm eines Systems, das innerhalb des Rechenzentrums aus1 hergestellt werden kann, um Arbeitslasten mit gemanagten Knoten auszuführen, die aus disaggregierten Ressourcen zusammengesetzt sind. -
16 ist ein vereinfachtes Blockdiagramm eines Systems, das einen Erfahrungsqualitäts-(QoE; quality of experience) Softwarestapel bereitstellt, der einen Netzwerk-Service-Rahmen repräsentiert, der zum Einsetzen, Orchestrieren und Managen von Diensten verwendet wird, die durch eine virtualisierte Netzwerkfunktion (VNF) bereitgestellt werden; -
17 ist ein vereinfachtes Blockdiagramm von zumindest einem Ausführungsbeispiel eines Orchestrator-Servers in dem relativ zu16 beschriebenen System; -
18 ist ein vereinfachtes Blockdiagramm von zumindest einem Ausführungsbeispiel einer Umgebung, die durch den Orchestrator-Server aus16 und17 hergestellt werden kann; und -
19 ist ein vereinfachtes Flussdiagramm von zumindest einem Ausführungsbeispiel eines Verfahrens zum Managen der Service-Sicherstellung in einer Netzwerkumgebung, wie beispielsweise dem relativ zu16 beschriebenen System. - DETAILLIERTE BESCHREIBUNG DER ZEICHNUNGEN
- Obwohl die Konzepte der vorliegenden Offenbarung verschiedenen Modifikationen und alternativen Formen unterliegen, wurden spezielle Ausführungsbeispiele derselben beispielhaft in den Zeichnungen gezeigt und werden hierin detailliert beschrieben. Es versteht sich jedoch, dass keinerlei Absicht besteht, die Konzepte der vorliegenden Offenbarung auf die bestimmten offenbarten Formen zu begrenzen, sondern im Gegenteil die Absicht besteht, alle Modifikationen, Entsprechungen und Alternativen abzudecken, die der vorliegenden Offenbarung und den beigefügten Ansprüchen entsprechen.
- Bezugnahmen in der Beschreibung auf „ein Ausführungsbeispiel“, „das Ausführungsbeispiel“, „ein darstellendes Ausführungsbeispiel“ etc. zeigen an, dass das beschriebene Ausführungsbeispiel ein bestimmtes Merkmal, eine Struktur oder Charakteristik umfassen kann, aber jedes Ausführungsbeispiel nicht notwendigerweise dieses bestimmte Merkmal, die Struktur oder Charakteristik umfasst. Ferner beziehen sich solche Phrasen nicht notwendigerweise auf dasselbe Ausführungsbeispiel. Ferner, wenn ein bestimmtes Merkmal, eine Struktur oder Charakteristik in Verbindung mit einem Ausführungsbeispiel beschrieben ist, wird mitgeteilt, dass es innerhalb der Kenntnisse eines Fachmanns liegt, ein solches Merkmal, eine solche Struktur oder Charakteristik in Verbindung mit anderen Ausführungsbeispielen auszuführen, ob dies ausdrücklich beschrieben ist oder nicht. Zusätzlich wird darauf hingewiesen, dass Gegenstände, die in einer Liste in der Form von „zumindest eines von A, B oder C“ umfasst sind, (A); (B); (C); (A und B); (A und C); (B und C); oder (A, B und C) bedeuten können. Ähnlich können Gegenstände, die in der Form von „zumindest eines von A, B oder C“ aufgelistet sind, (A); (B); (C); (A und B); (A und C); (B und C); oder (A, B und C) bedeuten.
- Die offenbarten Ausführungsbeispiele können in einigen Fällen in Hardware, Firmware, Software oder irgendeine Kombination derselben implementiert sein. Die offenbarten Ausführungsbeispiele können auch als Anweisungen implementiert werden, die durch ein flüchtiges oder nichtflüchtiges maschinenlesbares (z. B. computerlesbares) Speicherungsmedium getragen werden oder darauf gespeichert werden können, das durch einen oder mehrere Prozessoren gelesen und ausgeführt werden kann. Ein maschinenlesbares Speicherungsmedium kann als irgendeine Speicherungsvorrichtung, irgendein Mechanismus oder irgendeine andere physikalische Struktur zum Speichern oder Übertragen von Informationen in einer durch eine Maschine lesbaren Form (z. B. ein flüchtiger oder nichtflüchtiger Speicher, eine Medienplatte oder eine andere Medienvorrichtung) ausgeführt sein.
- In den Zeichnungen können einige Struktur- oder Verfahrensmerkmale in speziellen Anordnungen und/oder Reihenfolgen gezeigt sein. Es wird jedoch darauf hingewiesen, dass solche speziellen Anordnungen und/oder Reihenfolgen möglicherweise nicht erforderlich sind. Vielmehr können bei einigen Ausführungsbeispielen solche Merkmale auf eine unterschiedliche Art und/oder in einer unterschiedlichen Reihenfolge angeordnet sein als in den darstellenden Figuren gezeigt ist. Zusätzlich soll das Umfassen eines Struktur- oder Verfahrensmerkmals in einer bestimmten Figur nicht andeuten, dass ein solches Merkmal in allen Ausführungsbeispielen erforderlich ist, und bei einigen Ausführungsbeispielen ist es möglicherweise nicht umfasst oder ist möglicherweise mit anderen Merkmalen kombiniert.
- Bezug nehmend nun auf
1 umfasst ein Rechenzentrum100 , in dem disaggregierte Ressourcen kooperativ eine oder mehrere Arbeitslasten (z. B. Anwendungen im Namen von Kunden) ausführen können, mehrere Pods110 ,120 ,130 ,140 , von denen jeder eine oder mehrere Reihen von Racks umfasst. Obwohl das Rechenzentrum100 mit mehreren Pods dargestellt wird, kann das Rechenzentrum100 bei einigen Ausführungsbeispielen natürlich als ein einzelner Pod ausgeführt sein. Wie hierin detaillierter beschrieben, häust jedes Rack mehrere Schlitten, von denen jeder primär mit einer bestimmten Art von Ressource ausgestattet sein kann (z. B. Speichervorrichtungen, Datenspeicherungsvorrichtungen, Beschleunigervorrichtungen, Allzweckprozessoren), d. h. Ressourcen, die logisch gekoppelt werden können, um einen zusammengesetzten Knoten zu bilden, der z. B. als ein Server agieren kann. Bei dem darstellenden Ausführungsbeispiel sind die Schlitten in jedem Pod110 ,120 ,130 ,140 mit mehreren Pod-Schaltern (z. B. Schalter, die Datenkommunikationen zu und von Schlitten innerhalb des Pod routen) verbunden. Die Pod-Schalter verbinden wiederum mit Spine-Schaltern150 , die Kommunikationen unter Pods (z. B. den Pods110 ,120 ,130 ,140 ) in dem Rechenzentrum100 schalten. Bei einigen Ausführungsbeispielen können die Schlitten mit einer Struktur unter Verwendung von Intel Omni-Path Technologie verbunden sein. Bei anderen Ausführungsbeispielen können die Schlitten mit anderen Strukturen, wie beispielsweise InfiniBand oder Ethernet, verbunden sein. Wie hierin detaillierter beschrieben ist, können Ressourcen innerhalb von Schlitten in dem Rechenzentrum100 einer Gruppe (hierin als ein „gemanagter Knoten“ bezeichnet) allokiert werden, die Ressourcen von einem oder mehreren Schlitten umfasst, die bei der Ausführung einer Arbeitslast gemeinschaftlich genutzt werden sollen. Die Arbeitslast kann ausgeführt werden, als ob die Ressourcen, die zu dem gemanagten Knoten gehören, auf demselben Schlitten positioniert sind. Die Ressourcen in einem gemanagten Knoten können zu Schlitten gehören, die zu unterschiedlichen Racks und sogar zu unterschiedlichen Pods110 ,120 ,130 ,140 gehören. Somit können einige Ressourcen eines einzelnen Schlittens einem gemanagten Knoten allokiert sein, während andere Ressourcen desselben Schlittens einem unterschiedlichen gemanagten Knoten (z. B. ein Prozessor ist einem gemanagten Knoten zugewiesen und ein anderer Prozessor desselben Schlittens ist einem unterschiedlichen gemanagten Knoten zugewiesen) allokiert sind. - Ein Rechenzentrum, umfassend disaggregierte Ressourcen, wie z. B. das Rechenzentrum
100 , kann in einer breiten Vielzahl von Kontexten verwendet werden, wie z. B. Unternehmen, Regierung, Cloud-Dienstanbieter und Kommunikationsdienst-Anbieter (z. B. Telcos), sowie in einer breiten Vielzahl von Größen, von Mega-Rechenzentren von Cloud-Dienstanbietern, die über 10.000 Quadratmeter verbrauchen, bis hin zu Einzel- oder Mehrfach-Rack-Installationen zur Verwendung in Basisstationen. - Das Disaggregieren von Ressourcen zu Schlitten, die überwiegend einen einzigen Ressourcentyp (z. B. Rechenschlitten, die primär Rechenressourcen umfassen, Speicherschlitten, die primär Speicherressourcen umfassen) aufweisen und das selektive Allokieren und De-Allokieren der disaggregierten Ressourcen, um einen gemanagten Knoten zu bilden, der zugewiesen ist, um eine Arbeitslast auszuführen, verbessert den Betrieb und die Ressourcennutzung des Rechenzentrums
100 im Vergleich zu typischen Rechenzentren, aufweisend hyperkonvergente Server, die Rechen-, Speicher- (memory), Speicherungs-(storage) und möglicherweise zusätzliche Ressourcen in einem einzelnen Gehäuse umfassen. Da Schlitten beispielsweise überwiegend Ressourcen eines bestimmten Typs umfassen, können Ressourcen eines gegebenen Typs unabhängig von anderen Ressourcen aufgerüstet werden. Zusätzlich, da verschiedene Ressourcentypen (Prozessoren, Speicherung, Beschleuniger usw.) üblicherweise unterschiedliche Aktualisierungsraten aufweisen, können außerdem eine größere Ressourcennutzung und reduzierte Gesamtbetriebskosten erreicht werden. Beispielsweise kann ein Rechenzentrumsbetreiber die Prozessoren in seiner gesamten Anlage aufrüsten, indem er nur die Rechenschlitten auslagert. In einem solchen Fall werden Beschleuniger- und Speicherungsressourcen möglicherweise nicht gleichzeitig aufgerüstet, sondern es kann ihnen vielmehr erlaubt werden, so lange weiterzuarbeiten, bis die eigene Aktualisierung dieser Ressourcen vorgesehen ist. Auch die Ressourcennutzung kann zunehmen. Wenn gemanagte Knoten beispielsweise basierend auf Anforderungen der Arbeitslasten zusammengesetzt sind, die auf ihnen ausgeführt werden, ist es wahrscheinlicher, dass Ressourcen innerhalb eines Knotens vollständig verwendet werden. Eine solche Nutzung kann es erlauben, dass mehr gemanagte Knoten in einem Rechenzentrum mit einem gegebenen Satz von Ressourcen ausgeführt werden oder dass ein Rechenzentrum, von dem erwartet wird, dass es einen gegebenen Satz von Arbeitslasten ausführt, unter Verwendung von weniger Ressourcen gebaut wird. - Bezug nehmend nun auf
2 umfasst der Pod110 in dem darstellenden Ausführungsbeispiel einen Satz von Reihen200 ,210 ,220 ,230 von Racks240 . Jedes Rack240 kann mehrere Schlitten (z. B. sechzehn Schlitten) häusen und den gehäusten Schlitten Leistung und Datenverbindungen bereitstellen, wie hierin detaillierter beschrieben ist. Bei dem darstellenden Ausführungsbeispiel sind die Racks in jeder Reihe200 ,210 ,220 ,230 mit mehreren Pod-Schaltern250 ,260 verbunden. Der Pod-Schalter250 umfasst einen Satz von Ports252 , mit denen die Schlitten der Racks des Pods110 verbunden sind, und einen anderen Satz von Ports254 , die den Pod110 mit den Spine-Schaltern150 verbinden, um Konnektivität zu anderen Pods in dem Rechenzentrum100 bereitzustellen. Ähnlich umfasst der Pod-Schalter260 einen Satz von Ports262 , mit dem die Schlitten der Racks des Pods110 verbunden sind, und einen Satz von Ports264 , die den Pod110 mit den Spine-Schaltern150 verbinden. Somit stellt die Verwendung des Paares von Schaltern250 ,260 dem Pod110 einen Betrag von Redundanz bereit. Zum Beispiel, falls irgendeiner der Schalter250 ,260 ausfällt, können die Schlitten in dem Pod110 immer noch eine Datenkommunikation mit dem Rest des Rechenzentrums100 (z. B. Schlitten anderer Pods) durch den anderen Schalter250 ,260 aufrechterhalten. Ferner können die Schalter150 ,250 ,260 in dem darstellenden Ausführungsbeispiel als Dual-Modeoptische Schalter ausgeführt sein, die sowohl in der Lage sind, Ethernet-Protokoll-Kommunikationen, die Internet-Protocol (IP) -Pakete tragen, als auch Kommunikationen gemäß einem zweiten, Hochperformance-Link-Layer-Protokoll (z. B. Intels Omni-Path-Architektur, InfiniBand, PCI Express) über optische Signalisierungsmedien einer optischen Struktur zu routen. - Es wird darauf hingewiesen, dass jeder der anderen Pods
120 ,130 ,140 (sowie irgendwelche zusätzlichen Pods des Rechenzentrums100 ) ähnlich strukturiert sein können wie und Komponenten aufweisen können, die ähnlich sind wie der Pod110 , der Bezug nehmend auf2 gezeigt und beschrieben ist (z. B. jeder Pod kann Reihen von Racks aufweisen, die mehrere Schlitten häusen, wie vorangehend beschrieben ist). Zusätzlich, während zwei Pod-Schalter250 ,260 gezeigt sind, sollte es sich verstehen, dass bei anderen Ausführungsbeispielen jeder Pod110 ,120 ,130 ,140 mit einer unterschiedlichen Anzahl von Pod-Schaltern, die noch mehr Failover-Kapazität bereitstellt, verbunden sein kann. Natürlich können bei anderen Ausführungsbeispielen die Pods anders angeordnet sein als die in den1-2 gezeigte Reihen-von-Racks-Konfiguration. Beispielsweise kann ein Pod als mehrere Sätze von Racks ausgeführt sein, in denen jeder Satz von Racks radial angeordnet ist, d. h. die Racks sind äquidistant von einem mittleren Schalter. - Bezug nehmend nun auf
3-5 umfasst jedes darstellende Rack240 des Rechenzentrums100 zwei längliche Stützpfosten302 ,304 , die vertikal angeordnet sind. Zum Beispiel können sich die länglichen Stützpfosten302 ,304 von einem Boden des Rechenzentrums100 nach oben erstrecken, wenn sie eingesetzt werden. Das Rack240 umfasst auch ein oder mehrere horizontale Paare310 länglicher Stützarme312 (in3 über eine gestrichelte Ellipse identifiziert), die ausgebildet sind, um einen Schlitten des Rechenzentrums100 wie nachfolgend beschrieben zu stützen. Ein länglicher Stützarm312 des Paares von länglichen Stützarmen312 erstreckt sich von dem länglichen Stützpfosten302 nach außen und der andere längliche Stützarm312 erstreckt sich von dem länglichen Stützpfosten304 nach außen. - Bei den darstellenden Ausführungsbeispielen ist jeder Schlitten des Rechenzentrums
100 als ein gehäuseloser Schlitten ausgeführt. Das heißt, jeder Schlitten weist ein gehäuseloses Schaltungsplatinensubstrat auf, auf dem physische Ressourcen (z. B. Prozessoren, Speicher (memory), Beschleuniger, Speicherung (storage), etc.) befestigt sind, wie nachfolgend detaillierter erörtert ist. Somit ist das Rack240 ausgebildet, um die gehäuselosen Schlitten zu empfangen. Beispielsweise definiert jedes Paar310 länglicher Stützarme312 einen Schlitten-Slot320 des Racks240 , der ausgebildet ist, um einen entsprechenden gehäuselosen Schlitten zu empfangen. Zu diesem Zweck umfasst jeder darstellende, längliche Stützarm312 eine Schaltungsplatinenführung330 , die ausgebildet ist, um das gehäuselose Schaltungsplatinensubstrat des Schlittens zu empfangen. Jede Schaltungsplatinenführung330 ist an einer Oberseite332 des entsprechenden länglichen Stützarms312 befestigt oder anderweitig angebracht. Zum Beispiel, bei dem darstellenden Ausführungsbeispiel ist jede Schaltungsplatinenführung330 an einem distalen Ende des entsprechenden länglichen Stützarmes312 relativ zu dem entsprechenden länglichen Stützpfosten302 ,304 befestigt. Der Klarheit der Figuren halber, wird sich möglicherweise nicht in jeder Figur auf jede Schaltungsplatinenführung330 bezogen. - Jede Schaltungsplatinenführung
330 umfasst eine innere Wand, die einen Schaltungsplatinen-Slot380 definiert, der ausgebildet ist, um das gehäuselose Schaltungsplatinensubstrat eines Schlittens400 zu empfangen, wenn der Schlitten400 in dem entsprechenden Schlitten-Slot320 des Racks240 empfangen wird. Dazu richtet, wie in4 gezeigt ist, ein Benutzer (oder Roboter) das gehäuselose Schaltungsplatinensubstrat eines darstellenden gehäuselosen Schlittens400 zu einem Schlitten-Slot320 aus. Der Benutzer oder Roboter kann dann das gehäuselose Schaltungsplatinensubstrat vorwärts in den Schlitten-Slot320 schieben, sodass jeder Seitenrand414 des gehäuselosen Schaltungsplatinensubstrats in einem entsprechenden Schaltungsplatinen-Slot380 der Schaltungsplatinenführungen330 des Paares310 länglicher Stützarme312 empfangen wird, die den entsprechenden Schlitten-Slot320 definieren, wie in4 gezeigt ist. Durch ein Aufweisen von robotisch zugänglichen und robotisch manipulierbaren Schlitten, die disaggregierte Ressourcen aufweisen, kann irgendeine Art von Ressource unabhängig voneinander und mit ihrer eigenen optimierten Aktualisierungsrate upgegraded werden. Ferner sind die Schlitten ausgebildet, um blind mit Leistungs- und Datenkommunikationskabeln in jedem Rack240 zusammenzupassen, was ihre Fähigkeit verbessert, schnell entfernt, upgegraded, neu installiert und/oder ersetzt werden zu können. Somit kann das Rechenzentrum100 bei einigen Ausführungsbeispielen ohne menschliche Beteiligung vor Ort in dem Rechenzentrum arbeiten (z. B. Ausführen von Arbeitslasten, Durchführen von Wartung und/oder Upgrades, etc.). Bei anderen Ausführungsbeispielen kann ein Mensch eine oder mehrere Wartungs- oder Upgrade-Operationen in dem Rechenzentrum100 erleichtern. - Es wird darauf hingewiesen, dass jede Schaltungsplatinenführung
330 doppelseitig ist. Das heißt, jede Schaltungsplatinenführung330 umfasst eine innere Wand, die einen Schaltungsplatinen-Slot380 auf jeder Seite der Schaltungsplatinenführung330 definiert. Auf diese Weise kann jede Schaltungsplatinenführung330 ein gehäuseloses Schaltungsplatinensubstrat auf beiden Seiten stützen. Somit kann dem Rack240 ein einzelner zusätzlicher länglicher Stützpfosten dazugefügt werden, um das Rack240 in eine Zwei-Rack-Lösung umzubauen, die doppelt so viele Schlitten-Slots320 halten kann, wie in3 gezeigt ist. Das darstellende Rack240 umfasst sieben Paare310 länglicher Stützarme312 , die entsprechende sieben Schlitten-Slots320 definieren, die jeweils ausgebildet sind, um einen entsprechenden Schlitten400 wie vorangehend erörtert ist, zu empfangen und zu stützen. - Natürlich kann bei anderen Ausführungsbeispielen das Rack
240 zusätzliche oder weniger Paare310 länglicher Stützarme312 (d.h. zusätzliche oder weniger Schlitten-Slots320 ) umfassen. Es wird darauf hingewiesen, dass, da der Schlitten400 gehäuselos ist, der Schlitten400 eine Gesamthöhe aufweisen kann, die unterschiedlich ist als typische Server. Somit kann bei einigen Ausführungsbeispielen die Höhe jedes Schlitten-Slots320 niedriger sein als die Höhe eines typischen Servers (z. B. niedriger als eine einzelne Rangeinheit, „1U“). Das heißt, die vertikale Distanz zwischen jedem Paar310 länglicher Stützarme312 kann geringer sein als eine Standard-Rack-Einheit „1U“. Zusätzlich kann aufgrund der relativen Verringerung der Höhe der Schlitten-Slots320 die Gesamthöhe des Racks240 bei einigen Ausführungsbeispielen niedriger sein als die Höhe traditioneller Rack-Einhäusungen. Zum Beispiel, bei einigen Ausführungsbeispielen kann jeder der länglichen Stützpfosten302 ,304 eine Länge von sechs Fuß oder weniger aufweisen. Bei anderen Ausführungsbeispielen kann das Rack240 wiederum unterschiedliche Dimensionen aufweisen. Zum Beispiel kann bei einigen Ausführungsbeispielen die vertikale Distanz zwischen jedem Paar310 länglicher Stützarme312 größer sein als ein Standard-Rack bis „1U“. Bei solchen Ausführungsbeispielen ermöglicht die erhöhte vertikale Distanz zwischen den Schlitten ein Anbringen größerer Wärmesenken an den physischen Ressourcen und ein Verwenden größerer Lüfter (z. B. in dem nachfolgend beschriebenen Lüfter-Array370 ) zum Kühlen jedes Schlittens, was es wiederum erlauben kann, dass die physischen Ressourcen bei höheren Leistungspegeln arbeiten. Ferner wird darauf hingewiesen, dass das Rack240 keine Wände, Einhäusungen oder ähnliches umfasst. Vielmehr ist das Rack240 ein einhäusungsloses Rack, das zu der lokalen Umgebung geöffnet ist. Natürlich kann in einigen Fällen eine Endplatte an einem der länglichen Stützpfosten302 ,304 angebracht sein, in diesen Situationen, in denen das Rack240 ein Endeder-Reihe-Rack in dem Rechenzentrum100 bildet. - Bei einigen Ausführungsbeispielen können verschiedene Verbindungen durch die länglichen Stützpfosten
302 ,304 nach oben oder unten geroutet sein. Um ein solches Routing zu erleichtern, umfasst jeder längliche Stützpfosten302 ,304 eine innere Wand, die eine innere Kammer definiert, in der Verbindungen positioniert sein können. Die Verbindungen, die durch die länglichen Stützpfosten302 ,304 geroutet sind, können als irgendeine Art von Verbindungen ausgeführt sein, umfassend, aber nicht beschränkt auf Daten- oder Kommunikationsverbindungen, um jedem Schlitten-Slot320 Kommunikationsverbindungen bereitzustellen, Leistungsverbindungen, um jedem Schlitten-Slot320 Leistung bereitzustellen, und/oder andere Arten von Verbindungen. - Das Rack
240 , bei dem darstellenden Ausführungsbeispiel, umfasst eine Stützplattform, auf der ein entsprechender optischer Datenverbinder (nicht gezeigt) befestigt ist. Jeder optische Datenverbinder ist einem entsprechenden Schlitten-Slot320 zugeordnet und ist ausgebildet, um mit einem optischen Datenverbinder eines entsprechenden Schlittens400 zusammenzupassen, wenn der Schlitten400 in dem entsprechenden Schlitten-Slot320 empfangen wird. Bei einigen Ausführungsbeispielen werden optische Verbindungen zwischen Komponenten (z. B. Schlitten, Racks und Schalter) in dem Rechenzentrum100 mit einer blind zusammenpassenden optischen Verbindung hergestellt. Beispielsweise kann eine Tür an jedem Kabel verhindern, dass Staub die Faser im Inneren des Kabels verunreinigt. Bei dem Prozess eines Verbindens mit einem blind zusammenpassenden optischen Verbindermechanismus wird die Tür aufgeschoben, wenn das Ende des Kabels sich dem Verbindermechanismus nähert oder in diesen eindringt. Anschließend kann die optische Faser innerhalb des Kabels in ein Gel innerhalb des Verbindermechanismus eindringen und die optische Faser eines Kabels kommt in Kontakt mit der optischen Faser eines anderen Kabels innerhalb des Gels innerhalb des Verbindermechanismus. - Das darstellende Rack
240 umfasst auch ein Lüfterarray370 , das mit den Quer-Stützarmen des Racks240 gekoppelt ist. Das Lüfterarray370 umfasst eine oder mehrere Reihen von Kühllüftungen372 , die in einer horizontalen Linie zwischen den länglichen Stützpfosten302 ,304 ausgerichtet sind. Bei dem darstellenden Ausführungsbeispiel umfasst das Lüfterarray370 eine Reihe von Kühllüftungen372 für jeden Schlitten-Slot320 des Racks240 . Wie vorangehend erörtert wurde, umfasst jeder Schlitten400 bei dem darstellenden Ausführungsbeispiel nicht irgendein eingebautes Kühlsystem, und somit stellt das Lüfterarray370 für jeden in dem Rack240 empfangenen Schlitten400 Kühlung bereit. Jedes Rack240 umfasst bei dem darstellenden Ausführungsbeispiel auch eine Leistungsversorgung, die jedem Schlitten-Slot320 zugeordnet ist. Jede Leistungsversorgung ist an einem der länglichen Stützarme312 des Paares310 von länglichen Stützarmen312 , die den entsprechenden Schlitten-Slot320 definieren, befestigt. Zum Beispiel kann das Rack240 eine Leistungsversorgung umfassen, die mit jedem länglichem Stützarm312 , der sich von dem länglichen Stützpfosten302 erstreckt, gekoppelt oder an demselben befestigt ist. Jede Leistungsversorgung umfasst einen Leistungsverbinder, der ausgebildet ist, um mit einem Leistungsverbinder des Schlittens400 zusammenzupassen, wenn der Schlitten400 in dem entsprechenden Schlitten-Slot320 empfangen wird. Bei dem darstellenden Ausführungsbeispiel umfasst der Schlitten400 nicht irgendeine eingebaute Leistungsversorgung, und somit versorgen die Leistungsversorgungen, die in dem Rack240 bereitgestellt sind, die entsprechenden Schlitten400 mit Leistung, wenn sie an dem Rack240 befestigt sind. Jede Leistungsversorgung ist ausgebildet, um die Leistungsanforderungen für ihren zugeordneten Schlitten zu erfüllen, die von Schlitten zu Schlitten variieren können. Zusätzlich können die in dem Rack240 bereitgestellten Leistungsversorgungen unabhängig voneinander arbeiten. Das heißt, innerhalb eines einzelnen Racks kann eine erste Leistungsversorgung, die Leistung an einen Rechenschlitten liefert, Leistungspegel bereitstellen, die sich von den Leistungspegeln unterscheiden, die durch eine zweite Leistungsversorgung geliefert werden, die Leistung an einen Beschleunigerschlitten bereitstellt. Die Leistungsversorgungen können auf Schlittenebene oder Rackebene steuerbar sein und können lokal durch Komponenten auf dem zugeordneten Schlitten oder aus der Ferne gesteuert werden, wie beispielsweise durch einen anderen Schlitten oder einen Orchestrator. - Bezug nehmend nun auf
6 ist der Schlitten400 bei dem darstellenden Ausführungsbeispiel ausgebildet, um in einem entsprechenden Rack240 des Rechenzentrums100 befestigt zu werden, wie vorangehend erörtert wurde. Bei einigen Ausführungsbeispielen kann jeder Schlitten400 für die Ausführung bestimmter Aufgaben optimiert oder anderweitig ausgebildet sein, wie z. B. Rechenaufgaben, Beschleunigungsaufgaben, Datenspeicherungsaufgaben usw. Zum Beispiel kann der Schlitten400 ausgeführt sein als ein Rechenschlitten800 , wie nachfolgend Bezug nehmend auf8 -9 erörtert ist, als ein Beschleunigerschlitten1000 , wie nachfolgend Bezug nehmend auf10 -11 erörtert ist, als ein Speicherungsschlitten (storage sled)1200 , wie nachfolgend Bezug nehmend auf12 -13 erörtert ist, oder als ein Schlitten, der optimiert oder anderweitig ausgebildet ist, um andere spezialisierte Aufgaben auszuführen, wie beispielsweise ein Speicherschlitten (memory sled)1400 , wie nachfolgend Bezug nehmend auf14 erörtert ist. - Wie vorangehend erörtert wurde, umfasst der darstellende Schlitten
400 ein gehäuseloses Schaltungsplatinensubstrat602 , das verschiedene physische Ressourcen (z. B. elektrische Komponenten) stützt, die darauf befestigt sind. Es wird darauf hingewiesen, dass das Schaltungsplatinensubstrat602 insofern „gehäuselos“ ist, als der Schlitten400 kein Gehäuse oder keine Einhäusung umfasst. Vielmehr ist das gehäuselose Schaltungsplatinensubstrat602 offen für die lokale Umgebung. Das gehäuselose Schaltungsplatinensubstrat602 kann aus irgendeinem Material gebildet werden, das in der Lage ist, die verschiedenen elektrischen Komponenten zu stützen, die darauf befestigt sind. Beispielsweise wird bei einem darstellenden Ausführungsbeispiel das gehäuselose Schaltungsplatinensubstrat602 aus einem FR-4 glasverstärkten Epoxid-Laminatmaterial gebildet. Natürlich können bei anderen Ausführungsbeispielen andere Materialien verwendet werden, um das gehäuselose Schaltungsplatinensubstrat602 zu bilden. - Wie nachfolgend detaillierter erörtert ist, umfasst das gehäuselose Schaltungsplatinensubstrat
602 mehrere Merkmale, die die thermischen Kühlcharakteristika der verschiedenen elektrischen Komponenten, die auf dem gehäuselosen Schaltungsplatinensubstrat602 befestigt sind, verbessern. Wie bereits erörtert, umfasst das gehäuselose Schaltungsplatinensubstrat602 kein Gehäuse oder keine Einhäusung, was den Luftstrom über die elektrischen Komponenten des Schlittens400 verbessern kann, indem es diese Strukturen reduziert, die einen Luftstrom behindern können. Zum Beispiel, da das gehäuselose Schaltungsplatinensubstrat602 nicht in einem einzelnen Gehäuse oder einer Einhäusung positioniert ist, gibt es keine vertikal angebrachte Rückwand (z. B. eine Rückplatte des Gehäuses), angebracht an dem gehäuselosen Schaltungsplatinensubstrat602 , die einen Luftstrom über die elektrischen Komponenten behindern könnte. Zusätzlich weist das gehäuselose Schaltungsplatinensubstrat602 eine geometrische Form auf, die ausgebildet ist, um die Länge des Luftstrompfades über die elektrischen Komponenten, die auf dem gehäuselosen Schaltungsplatinensubstrat602 befestigt sind, zu reduzieren. Beispielsweise weist das darstellende gehäuselose Schaltungsplatinensubstrat602 eine Breite604 auf, die größer ist als eine Tiefe606 des gehäuselosen Schaltungsplatinensubstrats602 . Bei einem bestimmten Ausführungsbeispiel, zum Beispiel, weist das gehäuselose Schaltungsplatinensubstrat602 eine Breite von etwa 21 Zoll und eine Tiefe von etwa 9 Zoll auf, im Vergleich zu einem typischen Server, der eine Breite von etwa 17 Zoll und eine Tiefe von etwa 39 Zoll aufweist. Somit weist ein Luftstrompfad608 , der sich von einem vorderen Rand610 des gehäuselosen Schaltungsplatinensubstrats602 in Richtung eines hinteren Rands612 erstreckt, relativ zu typischen Servern eine kürzere Distanz auf, was die thermischen Kühlcharakteristika des Schlittens400 verbessern kann. Ferner, obgleich in6 nicht dargestellt, sind die verschiedenen physischen Ressourcen, die auf dem gehäuselosen Schaltungsplatinensubstrat602 befestigt sind, an entsprechenden Stellen befestigt, sodass sich keine zwei im Wesentlichen wärmeproduzierenden elektrischen Komponenten gegenseitig beschatten, wie nachfolgend detaillierter erörtert wird. Das heißt, keine zwei elektrischen Komponenten, die während des Betriebs merkliche Wärme produzieren (d. h. größer als eine Nennwärme, die ausreicht, um die Kühlung einer anderen elektrischen Komponente nachteilig zu beeinflussen), sind auf dem gehäuselosen Schaltungsplatinensubstrat602 linear in Reihe zueinander entlang der Richtung des Luftstompfads608 (d. h. entlang einer Richtung, die sich von dem vorderen Rand610 zu dem hinteren Rand612 des gehäuselosen Schaltungsplatinensubstrats602 erstreckt) befestigt. - Wie vorangehend erörtert wurde, umfasst der darstellende Schlitten
400 eine oder mehrere physische Ressourcen620 , die auf einer Oberseite650 des gehäuselosen Schaltungsplatinensubstrats602 befestigt sind. Obwohl zwei physische Ressourcen620 in6 gezeigt sind, wird darauf hingewiesen, dass der Schlitten400 bei anderen Ausführungsbeispielen ein, zwei oder mehr physische Ressourcen620 umfassen kann. Die physischen Ressourcen620 können als irgendeine Art von Prozessor, Steuerung oder andere Rechenschaltung ausgeführt sein, der/die in der Lage ist, verschiedene Aufgaben wie beispielsweise Rechenfunktionen und/oder ein Steuern der Funktionen des Schlittens400 auszuführen, abhängig von, zum Beispiel, dem Typ oder der beabsichtigten Funktionalität des Schlittens400 . Zum Beispiel können, wie nachfolgend detaillierter erörtert, die physischen Ressourcen620 ausgeführt sein als Hochperformance-Prozessoren bei Ausführungsbeispielen, bei denen der Schlitten400 ausgeführt ist als ein Rechenschlitten, als Beschleuniger-Co-Prozessoren oder Schaltungen bei Ausführungsbeispielen, bei denen der Schlitten400 ausgeführt ist als ein Beschleunigerschlitten, Speicherungssteuerungen bei Ausführungsbeispielen, bei denen der Schlitten400 ausgeführt ist als ein Speicherungsschlitten, oder ein Satz von Speichervorrichtungen bei Ausführungsbeispielen, bei denen der Schlitten400 als Speicherschlitten ausgeführt ist. - Der Schlitten
400 umfasst auch eine oder mehrere zusätzliche physische Ressourcen630 , die auf der Oberseite650 des gehäuselosen Schaltungsplatinensubstrats602 befestigt sind. Bei dem darstellenden Ausführungsbeispiel umfassen die zusätzlichen physischen Ressourcen eine Netzwerkschnittstellensteuerung (NIC; Network Interface Controller), wie nachfolgend detaillierter erörtert wird. Natürlich können abhängig von dem Typ und der Funktionalität des Schlittens400 die physischen Ressourcen630 bei anderen Ausführungsbeispielen zusätzliche oder andere elektrische Komponenten, Schaltungen und/oder Vorrichtungen umfassen. - Die physischen Ressourcen
620 sind mit den physischen Ressourcen630 über ein Eingang/Ausgang (I/O; input/output) -Teilsystem622 kommunikativ gekoppelt. Das I/O-Teilsystem622 kann als eine Schaltungsanordnung und/oder Komponenten ausgeführt sein, um Eingabe-/Ausgabe-Operationen mit den physischen Ressourcen620 , den physischen Ressourcen630 und/oder anderen Komponenten des Schlittens400 zu erleichtern. Zum Beispiel kann das I/O-Teilsystem622 als Speichersteuerungs-Hubs, Eingabe/Ausgabe-Steuerungs-Hubs, Integrierter-Sensor-Hubs, Firmware-Vorrichtungen, Kommunikationslinks (z. B. Punkt-zu-Punkt-Links, Bus-Links, Drähte, Kabel, Wellenleiter, Lichtführungen, Gedruckte-Schaltungsplatinen-Leiterbahnen etc.) und/oder andere Komponenten und Teilsysteme, um die Eingabe-/Ausgabeoperationen zu erleichtern, ausgeführt sein oder diese anderweitig umfassen. Bei dem darstellenden Ausführungsbeispiel ist das I/O-Teilsystem622 als ein Doppeldatenrate-4 (DDR4; double data rate 4) -Datenbus oder als ein DDR5-Datenbus ausgeführt oder umfasst dieselben anderweitig. - Bei einigen Ausführungsbeispielen kann der Schlitten
400 auch eine Ressource-zu-Ressource-Verbindung624 umfassen. Die Ressource-zu-Ressource-Verbindung624 kann als irgendeine Art von Kommunikationsverbindung ausgeführt sein, die in der Lage ist, Ressource-zu-Ressource-Kommunikationen zu erleichtern. Bei dem darstellenden Ausführungsbeispiel ist die Ressource-zu-Ressource-Verbindung624 als eine Hochgeschwindigkeits-Punkt-zu-Punkt-Verbindung (z. B. schneller als das I/O-Teilsystem622 ) ausgeführt. Zum Beispiel kann die Ressource-zu-Ressource-Verbindung624 als eine QuickPath Interconnect (QPI), eine UltraPath Interconnect (UPI) oder eine andere Hochgeschwindigkeits-Punkt-zu-Punkt-Verbindung ausgeführt sein, die für Ressource-zu-Ressource-Kommunikationen dediziert ist. - Der Schlitten
400 umfasst auch einen Leistungsverbinder640 , der ausgebildet ist, um mit einem entsprechenden Leistungsverbinder des Racks240 zusammenzupassen, wenn der Schlitten400 in dem entsprechenden Rack240 befestigt ist. Der Schlitten400 empfängt Leistung von einer Leistungsversorgung des Racks240 über den Leistungsverbinder640 , um den verschiedenen elektrischen Komponenten des Schlittens400 Leistung zu liefern. Das heißt, der Schlitten400 umfasst nicht irgendeine lokale Leistungsversorgung (d. h. eine eingebaute Leistungsversorgung), um den elektrischen Komponenten des Schlittens400 Leistung bereitzustellen. Der Ausschluss einer lokalen oder eingebauten Leistungsversorgung erleichtert die Reduzierung der Gesamtgrundfläche des gehäuselosen Schaltungsplatinensubstrats602 , was die thermischen Kühlcharakteristika der verschiedenen elektrischen Komponenten, die auf dem gehäuselosen Schaltungsplatinensubstrat602 befestigt sind, erhöhen kann, wie vorangehend erörtert wurde. Bei einigen Ausführungsbeispielen sind Spannungsregler auf einer Unterseite750 (siehe7 ) des gehäuselosen Schaltungsplatinensubstrats602 direkt gegenüber den Prozessoren820 (siehe8 ) platziert, und Leistung wird von den Spannungsreglern zu den Prozessoren820 durch Vias geroutet, die sich durch das Schaltungsplatinensubstrat602 erstrecken. Eine solche Konfiguration stellt ein erhöhtes thermisches Budget, zusätzlichen Strom und/oder Spannung und eine bessere Spannungssteuerung relativ zu typischen gedruckten Schaltungsplatinen bereit, bei denen die Prozessorleistung von einem Spannungsregler teilweise durch gedruckte Schaltungs-Leiterbahnen geliefert wird. - Bei einigen Ausführungsbeispielen kann der Schlitten
400 auch Befestigungsmerkmale642 umfassen, die ausgebildet sind, um mit einem befestigenden Arm oder einer anderen Struktur eines Roboters zusammenzupassen, um das Platzieren des Schlittens600 in einem Rack240 durch den Roboter zu erleichtern. Die Befestigungsmerkmale642 können als irgendeine Art physischer Strukturen ausgeführt sein, die es dem Roboter erlauben, den Schlitten400 zu greifen, ohne das gehäuselose Schaltungsplatinensubstrat602 oder die darauf befestigten elektrischen Komponenten zu beschädigen. Zum Beispiel können bei einigen Ausführungsbeispielen die Befestigungsmerkmale642 als nicht leitfähige Anschlussflächen, die an dem gehäuselosen Schaltungsplatinensubstrat602 angebracht sind, ausgeführt sein. Bei anderen Ausführungsbeispielen können die Befestigungsmerkmale als Klammern, Spangen oder ähnliche Strukturen, die an dem gehäuselosen Schaltungsplatinensubstrat602 angebracht sind, ausgeführt sein. Die bestimmte Anzahl, Form, Größe und/oder Zusammensetzung des Befestigungsmerkmals642 kann von dem Entwurf des Roboters abhängen, der ausgebildet ist, um den Schlitten400 zu managen. - Bezug nehmend nun auf
7 umfasst der Schlitten400 zusätzlich zu den physischen Ressourcen630 , die auf der Oberseite650 des gehäuselosen Schaltungsplatinensubstrats602 befestigt sind, auch eine oder mehrere Speichervorrichtungen720 , die an einer Unterseite750 des gehäuselosen Schaltungsplatinensubstrats602 befestigt sind. Das heißt, das gehäuselose Schaltungsplatinensubstrat602 ist als eine doppelseitige Schaltungsplatine ausgeführt. Die physischen Ressourcen620 sind mit den Speichervorrichtungen720 über das I/O-Teilsystem622 kommunikativ gekoppelt. Zum Beispiel können die physischen Ressourcen620 und die Speichervorrichtungen720 durch ein oder mehrere Vias, die sich durch das gehäuselose Schaltungsplatinensubstrat602 erstrecken, kommunikativ gekoppelt sein. Jede physische Ressource620 kann bei einigen Ausführungsbeispielen mit einem unterschiedlichen Satz von einer oder mehreren Speichervorrichtungen720 kommunikativ gekoppelt sein. Alternativ kann bei anderen Ausführungsbeispielen jede physische Ressource620 kommunikativ mit jeder Speichervorrichtung720 gekoppelt sein. - Die Speichervorrichtungen
720 können als irgendeine Art von Speichervorrichtung ausgeführt sein, die in der Lage ist, Daten für die physischen Ressourcen620 während des Betriebs des Schlittens400 zu speichern, wie beispielsweise irgendeine Art von flüchtigem (z. B. dynamischer Direktzugriffsspeicher (DRAM; dynamic random access memory), etc.) oder nichtflüchtigem Speicher. Ein flüchtiger Speicher kann ein Speicherungsmedium sein, das Leistung benötigt, um den Zustand von durch das Medium gespeicherten Daten aufrechtzuerhalten. Nicht einschränkende Beispiele für flüchtigen Speicher können verschiedene Typen von Direktzugriffsspeicher (RAM; random access memory) umfassen, wie beispielsweise dynamischen Direktzugriffsspeicher (DRAM) oder statischen Direktzugriffsspeicher (SRAM; static random access memory). Ein bestimmter Typ von DRAM, der in einem Speichermodul verwendet werden kann, ist synchroner dynamischer Direktzugriffsspeicher (SDRAM; synchronous dynamic random access memory). Bei bestimmten Ausführungsbeispielen kann der DRAM einer Speicherkomponente einem durch JEDEC veröffentlichten Standard entsprechen, wie beispielsweise JESD79F für DDR SDRAM, JESD79-2F für DDR2 SDRAM, JESD79-3F für DDR3 SDRAM, JESD79-4A für DDR4 SDRAM, JESD209 für Low Power DDR (LPDDR), JESD209-2 für LPDDR2, JESD209-3 für LPDDR3 und JESD209-4 für LPDDR4. Solche Standards (und ähnliche Standards) können als DDR-basierte Standards bezeichnet werden und Kommunikationsschnittstellen der Speicherungsvorrichtungen, die solche Standards implementieren, können als DDR-basierte Schnittstellen bezeichnet werden. - Bei einem Ausführungsbeispiel ist die Speichervorrichtung eine blockadressierbare Speichervorrichtung, wie beispielsweise die, die auf NAND oder NOR-Technologien basieren. Eine Speichervorrichtung kann auch nichtflüchtige Vorrichtungen der nächsten Generation umfassen, wie beispielsweise Intel 3D XPoint™ Speicher oder andere byteadressierbare Write-in-Place- nichtflüchtige Speichervorrichtungen. Bei einem Ausführungsbeispiel kann die Speichervorrichtung Speichervorrichtungen sein oder umfassen, die Chalkogenidglas, Multi-Schwellenpegel-NAND-Flash-Speicher, NOR-Flash-Speicher, Single- oder Multi-Level-Phasenwechselspeicher (PCM; Phase Change Memory), einen resistiven Speicher, Nanodraht-Speicher, ferroelektrischen Transistor-Direktzugriffsspeicher (FeTRAM; ferroelectric transistor random access memory), antiferroelektrischen Speicher, magnetoresistiven Direktzugriffsspeicher (MRAM; magnetoresistive random access memory), der Memristor-Technologie einbringt, resistiven Speicher, umfassend die Metalloxidbasis, die Sauerstoffleerstellenbasis und den Leitfähige-Brücken-Direktzugriffsspeicher (CB-RAM; conductive bridge Random Access Memory), oder Spin-Transfer-Torque- (STT; spin transfer torque) MRAM, eine Spintronik-Magnetübergangsspeicher-basierte Vorrichtung, eine Magnet-Tunnelübergang (MTJ; magnetic tunneling junction) -basierte Vorrichtung, eine DW-(Domain Wall-) und Spin-Bahn-Transfer- (SOT-; Spin Orbit Transfer) -basierte Vorrichtung, eine thyristorbasierte Speichervorrichtung oder eine Kombination von irgendwelchen aus den vorstehend Genannten oder einem anderen Speicher verwenden. Die Speichervorrichtung kann sich auf den Die selbst und/oder auf ein gepackagtes Speicherprodukt beziehen. Bei einigen Ausführungsbeispielen kann die Speichervorrichtung eine transistorlose, stapelbare Kreuzpunktarchitektur umfassen, bei der Speicherzellen an dem Schnittpunkt von Wortleitungen und Bitleitungen sitzen und individuell adressierbar sind und wobei Bitspeicherung auf einer Veränderung des Bulkwiderstands basiert.
- Bezug nehmend nun auf
8 kann der Schlitten400 bei einigen Ausführungsbeispielen als ein Rechenschlitten800 ausgeführt sein. Der Rechenschlitten800 ist optimiert, oder anderweitig ausgebildet, um Rechenaufgaben durchzuführen. Natürlich kann der Rechenschlitten800 , wie vorangehend erörtert wurde, sich auf andere Schlitten verlassen, wie beispielsweise Beschleunigerschlitten und/oder Speicherungsschlitten, um solche Rechenaufgaben durchzuführen. Der Rechenschlitten800 umfasst verschiedene physische Ressourcen (z. B. elektrische Komponenten), die ähnlich zu den physischen Ressourcen des Schlittens400 sind, die in8 unter Verwendung derselben Bezugszeichen identifiziert wurden. Die Beschreibung solcher Komponenten, die vorangehend in Bezug auf6 und7 bereitgestellt wurde, ist anwendbar für die entsprechenden Komponenten des Rechenschlittens800 und wird hierin der Klarheit der Beschreibung des Rechenschlittens800 halber nicht wiederholt. - Bei dem darstellenden Rechenschlitten
800 sind die physischen Ressourcen620 als Prozessoren820 ausgeführt. Obwohl nur zwei Prozessoren820 in8 gezeigt sind, wird darauf hingewiesen, dass der Rechenschlitten800 bei anderen Ausführungsbeispielen zusätzliche Prozessoren820 umfassen kann. Darstellenderweise sind die Prozessoren820 als Hochperformance-Prozessoren820 ausgeführt und können ausgebildet sein, um mit einer relativ hohen Nennleistung zu arbeiten. Obwohl die Prozessoren820 bei einem Arbeiten mit Nennleistungen, die höher sind als typische Prozessoren (die mit etwa 155-230 W arbeiten) zusätzliche Wärme erzeugen, erleichtern die vorangehend erörterten verbesserten thermischen Kühlcharakteristika des gehäuselosen Schaltungsplatinensubstrats602 den Betrieb mit höherer Leistung. Zum Beispiel sind bei dem darstellenden Ausführungsbeispiel die Prozessoren820 ausgebildet, um mit einer Nennleistung von zumindest 250 W zu arbeiten. Bei einigen Ausführungsbeispielen können die Prozessoren820 ausgebildet sein, um mit einer Nennleistung von zumindest 350 W zu arbeiten. - Bei einigen Ausführungsbeispielen kann der Rechenschlitten
800 auch eine Prozessor-zu-Prozessor-Verbindung842 umfassen. Ähnlich zu der Ressource-zu-Ressource-Verbindung624 des vorangehend erörterten Schlittens400 , kann die Prozessor-zu-Prozessor-Verbindung842 als irgendeine Art von Kommunikationsverbindung ausgeführt sein, die in der Lage ist, Prozessor-zu-Prozessor-Verbindungs-842 Kommunikationen zu erleichtern. Bei dem darstellenden Ausführungsbeispiel ist die Prozessor-zu-Prozessor-Verbindung842 als eine Hochgeschwindigkeits-Punkt-zu-Punkt-Verbindung (z. B. schneller als das I/O-Teilsystem622 ) ausgeführt. Zum Beispiel kann die Prozessor-zu-Prozessor-Verbindung842 als eine QuickPath Interconnect (QPI), eine UltraPath Interconnect (UPI) oder eine andere Hochgeschwindigkeits-Punkt-zu-Punkt-Verbindung ausgeführt sein, die für Prozessor-zu-Prozessor-Kommunikationen dediziert ist. - Der Rechenschlitten
800 umfasst auch eine Kommunikationsschaltung830 . Die darstellende Kommunikationsschaltung830 umfasst eine Netzwerkschnittstellensteuerung (NIC; network interface controller)832 , der auch als eine Host-Strukturschnittstelle (HIF; host fabric interface) bezeichnet werden kann. Die NIC832 kann als irgendeine Art von integrierter Schaltung, diskreten Schaltungen, Steuerungschips, Chipsätzen, Add-in-Platinen, Tochterkarten, Netzwerkschnittstellenkarten oder anderen Vorrichtungen, die durch den Rechenschlitten800 genutzt werden können, um sich mit anderen Rechenvorrichtungen (z. B. mit anderen Schlitten400 ) zu verbinden, ausgeführt sein oder diese anderweitig umfassen. Bei einigen Ausführungsbeispielen kann die NIC832 als Teil eines Systems-auf-einem-Chip (SoC; system-on-a-chip), das einen oder mehrere Prozessoren umfasst, ausgeführt sein, oder auf einem Multi-Chip-Package, das auch einen oder mehrere Prozessoren umfasst, umfasst sein. Bei einigen Ausführungsbeispielen kann die NIC832 einen lokalen Prozessor (nicht gezeigt) und/oder einen lokalen Speicher (nicht gezeigt) umfassen, die beide lokal zu der NIC832 sind. Bei solchen Ausführungsbeispielen kann der lokale Prozessor der NIC832 in der Lage sein, eine oder mehrere der Funktionen des Prozessors820 auszuführen. Zusätzlich oder alternativ kann bei solchen Ausführungsbeispielen der lokale Speicher der NIC832 in eine oder mehrere Komponenten des Rechenschlittens auf der Platinenebene, Buchsenebene, Chip-Ebene und/oder anderen Ebenen integriert sein. - Die Kommunikationsschaltung
830 ist kommunikativ mit einem optischen Datenverbinder834 gekoppelt. Der optische Datenverbinder834 ist ausgebildet, um mit einem entsprechenden optischen Datenverbinder des Racks240 zusammenzupassen, wenn der Rechenschlitten800 in dem Rack240 befestigt ist. Darstellenderweise umfasst der optische Datenverbinder834 eine Mehrzahl von optischen Fasern, die von einer zusammenpassenden Oberfläche des optischen Datenverbinders834 zu einem optischen Sendeempfänger836 führen. Der optische Sendeempfänger836 ist ausgebildet, um eingehende optische Signale von dem rackseitigen optischen Datenverbinder in elektrische Signale umzuwandeln und um elektrische Signale in ausgehende optische Signale zu dem rackseitigen optischen Datenverbinder umzuwandeln. Obwohl der optische Sendeempfänger836 in dem darstellenden Ausführungsbeispiel als einen Teil des optischen Datenverbinders834 bildend gezeigt ist, kann er bei anderen Ausführungsbeispielen einen Abschnitt der Kommunikationsschaltung830 bilden. - Bei einigen Ausführungsbeispielen kann der Rechenschlitten
800 auch einen Erweiterungsverbinder840 umfassen. Bei solchen Ausführungsbeispielen ist der Erweiterungsverbinder840 ausgebildet, um mit einem entsprechenden Verbinder eines gehäuselosen Erweiterungsschaltungsplatinensubstrats zusammenzupassen, um dem Rechenschlitten800 zusätzliche physische Ressourcen bereitzustellen. Die zusätzlichen physischen Ressourcen können, zum Beispiel, durch die Prozessoren820 während eines Betriebs des Rechenschlittens800 genutzt werden. Das gehäuselose Expansionsschaltungsplatinensubstrat kann im Wesentlichen ähnlich zu dem vorangehend erörterten gehäuselosen Schaltungsplatinensubstrat602 sein und kann verschiedene elektrische Komponenten umfassen, die daran befestigt sind. Die bestimmten elektrischen Komponenten, die an dem gehäuselosen Erweiterungsschaltungsplatinensubstrat befestigt sind, können von der beabsichtigten Funktionalität des gehäuselosen Erweiterungsschaltungsplatinensubstrats abhängen. Beispielsweise kann das gehäuselose Erweiterungsschaltungsplatinensubstrat zusätzliche Rechenressourcen, Speicherressourcen (memory resources) und/oder Speicherungsressourcen (storage resources) bereitstellen. Als solche können die zusätzlichen physischen Ressourcen des gehäuselosen Erweiterungsschaltungsplatinensubstrats Prozessoren, Speichervorrichtungen (memory devices), Speicherungsvorrichtungen (storage devices) und/oder Beschleunigerschaltungen, umfassend zum Beispiel feldprogrammierbare Gate-Arrays (FPGA; field programmable gate array), anwendungsspezifische integrierte Schaltungen (ASICs; application-specific integrated circuits), Sicherheits-Co-Prozessoren, Grafikverarbeitungseinheiten (GPUs; graphics processing units), Maschinelles-Lernen-Schaltungen oder andere spezialisierte Prozessoren, Steuerungen, Vorrichtungen und/oder Schaltungen umfassen, sind aber nicht darauf beschränkt. - Bezug nehmend nun auf
9 ist ein darstellendes Ausführungsbeispiel des Rechenschlittens800 gezeigt. Wie gezeigt ist, sind die Prozessoren820 , die Kommunikationsschaltung830 und der optische Datenverbinder834 an der Oberseite650 des gehäuselosen Schaltungsplatinensubstrats602 befestigt. Irgendeine geeignete Anbringungs- oder Befestigungstechnologie kann verwendet werden, um die physischen Ressourcen des Rechenschlittens800 an dem gehäuselosen Schaltungsplatinensubstrat602 zu befestigen. Zum Beispiel können die verschiedenen physischen Ressourcen in entsprechenden Buchsen (z. B. einer Prozessorbuchse), Halterungen oder Klammern befestigt sein. In einigen Fällen können einige der elektrischen Komponenten durch Löten oder ähnliche Techniken direkt an dem gehäuselosen Schaltungsplatinensubstrat602 befestigt sein. - Wie vorangehend erörtert wurde, sind die individuellen Prozessoren
820 und die Kommunikationsschaltung830 an der Oberseite650 des gehäuselosen Schaltungsplatinensubstrats602 derart befestigt, dass sich keine zwei wärmeproduzierenden, elektrischen Komponenten gegenseitig beschatten. Bei dem darstellenden Ausführungsbeispiel sind die Prozessoren820 und die Kommunikationsschaltung830 an entsprechenden Stellen auf der Oberseite650 des gehäuselosen Schaltungsplatinensubstrats602 derart befestigt, dass keine zwei dieser physischen Ressourcen linear in einer Reihe mit anderen entlang der Richtung des Luftstrompfads608 sind. Es wird darauf hingewiesen, dass, obwohl der optische Datenverbinder834 in einer Reihe mit der Kommunikationsschaltung830 ist, der optische Datenverbinder834 im Betrieb keine oder nominale Wärme erzeugt. - Die Speichervorrichtungen
720 des Rechenschlittens800 sind an der Unterseite750 des gehäuselosen Schaltungsplatinensubstrats602 befestigt, wie vorangehend Bezug nehmend auf den Schlitten400 erörtert wurde. Obgleich sie an der Unterseite750 befestigt sind, sind die Speichervorrichtungen720 über das I/O-Teilsystem622 kommunikativ mit den Prozessoren820 gekoppelt, die auf der Oberseite650 positioniert sind. Da das gehäuselose Schaltungsplatinensubstrat602 als eine doppelseitige Schaltungsplatine ausgeführt ist, können die Speichervorrichtungen720 und die Prozessoren820 durch eines oder mehrere Vias, Verbinder oder andere Mechanismen, die sich durch das gehäuselose Schaltungsplatinensubstrat602 erstrecken, kommunikativ gekoppelt sein. Natürlich kann jeder Prozessor820 bei einigen Ausführungsbeispielen mit einem unterschiedlichen Satz von einer oder mehreren Speichervorrichtungen720 kommunikativ gekoppelt sein. Alternativ kann bei anderen Ausführungsbeispielen jeder Prozessor820 kommunikativ mit jeder Speichervorrichtung720 gekoppelt sein. Bei einigen Ausführungsbeispielen können die Speichervorrichtungen720 an einer oder mehreren Speichermezzaninen auf der Unterseite des gehäuselosen Schaltungsplatinensubstrats602 befestigt sein und können mit einem entsprechenden Prozessor820 durch ein Kugelgitter-Array verbunden sein. - Jeder der Prozessoren
820 umfasst eine daran befestigte Wärmesenke850 . Durch das Befestigen der Speichervorrichtungen720 an der Unterseite750 des gehäuselosen Schaltungsplatinensubstrats602 (sowie das vertikale Beabstanden der Schlitten400 in dem entsprechenden Rack240 ) umfasst die Oberseite650 des gehäuselosen Schaltungsplatinensubstrats602 zusätzlichen „freien“ Bereich oder Raum, der die Verwendung von Wärmesenken850 erleichtert, die eine größere Größe relativ zu traditionellen Wärmesenken aufweisen, die in typischen Servern verwendet werden. Zusätzlich umfassen aufgrund der verbesserten thermischen Kühlcharakteristika des gehäuselosen Schaltungsplatinensubstrats602 keine der Prozessor-Wärmesenken850 Kühllüftungen, die daran angebracht sind. Das heißt, jede der Wärmesenken850 ist als eine lüfterlose Wärmesenke ausgeführt. Bei einigen Ausführungsbeispielen können sich die Wärmesenken850 , die auf den Prozessoren820 befestigt sind, mit der Wärmesenke überlappen, die an der Kommunikationsschaltung830 in Richtung des Luftstrompfads608 angebracht ist, aufgrund ihrer erhöhten Größe, wie durch9 veranschaulichend vorgeschlagen. - Bezug nehmend nun auf
10 kann der Schlitten400 bei einigen Ausführungsbeispielen als ein Beschleunigerschlitten1000 ausgeführt sein. Der Beschleunigerschlitten1000 ist ausgebildet, um spezialisierte Rechenaufgaben, wie beispielsweise maschinelles Lernen, Verschlüsselung, Hashing oder andere rechenintensive Aufgaben, auszuführen. Bei einigen Ausführungsbeispielen kann zum Beispiel ein Rechenschlitten800 im Betrieb Aufgaben an den Beschleunigerschlitten1000 abgeben. Der Beschleunigerschlitten1000 umfasst verschiedene Komponenten, die ähnlich zu den Komponenten des Schlittens400 und/oder des Rechenschlittens800 sind, die in10 unter Verwendung derselben Bezugszeichen identifiziert wurden. Die Beschreibung solcher Komponenten, die vorangehend in Bezug auf6 ,7 und8 bereitgestellt wurde, ist anwendbar für die entsprechenden Komponenten des Beschleunigerschlittens1000 und wird hierin der Klarheit der Beschreibung des Beschleunigerschlittens1000 halber nicht wiederholt. - Bei dem darstellenden Beschleunigerschlitten
1000 sind die physischen Ressourcen620 als Beschleunigerschaltungen1020 ausgeführt. Obwohl nur zwei Beschleunigerschaltungen1020 in10 gezeigt sind, wird darauf hingewiesen, dass der Beschleunigerschlitten1000 bei anderen Ausführungsbeispielen zusätzliche Beschleunigerschaltungen1020 umfassen kann. Zum Beispiel, wie in11 gezeigt ist, kann der Beschleunigerschlitten1000 bei einigen Ausführungsbeispielen vier Beschleunigerschaltungen1020 umfassen. Die Beschleunigerschaltungen1020 können als irgendeine Art von Prozessor, Co-Prozessor, Rechenschaltung oder andere Vorrichtung, die in der Lage ist, Rechen- oder Verarbeitungsoperationen durchzuführen, ausgeführt sein. Zum Beispiel können die Beschleunigerschaltungen1020 beispielsweise als feldprogrammierbare Gate-Arrays (FPGA), anwendungsspezifische integrierte Schaltungen (ASICs), Sicherheits-Co-Prozessoren, Grafikverarbeitungseinheiten (GPUs), neuromorphe Prozessoreinheiten, Quantencomputer, Maschinelles-Lernen-Schaltungen oder andere spezialisierte Prozessoren, Steuerungen, Vorrichtungen und/oder Schaltungen ausgeführt sein. - Bei einigen Ausführungsbeispielen kann der Beschleunigerschlitten
1000 auch eine Beschleuniger-zu- Beschleuniger-Verbindung1042 umfassen. Ähnlich zu der Ressource-zu-Ressource-Verbindung624 des vorangehend erörterten Schlittens600 , kann die Beschleuniger-zu-Beschleuniger-Verbindung1042 als irgendeine Art von Kommunikationsverbindung ausgeführt sein, die in der Lage ist, Beschleuniger-zu-Beschleuniger-Kommunikationen zu erleichtern. Bei dem darstellenden Ausführungsbeispiel ist die Beschleuniger-zu-Beschleuniger-Verbindung1042 als eine Hochgeschwindigkeits-Punkt-zu-Punkt-Verbindung (z. B. schneller als das I/O-Teilsystem622 ) ausgeführt. Zum Beispiel kann die Beschleuniger-zu-Beschleuniger-Verbindung1042 als eine QuickPath Interconnect (QPI), eine UltraPath Interconnect (UPI) oder eine andere Hochgeschwindigkeits-Punkt-zu-Punkt-Verbindung ausgeführt sein, die für Prozessor-zu-Prozessor-Kommunikationen dediziert ist. Bei einigen Ausführungsbeispielen können die Beschleunigerschaltungen1020 mit einer primären Beschleunigerschaltung1020 , die durch das I/O-Teilsystem622 mit der NIC832 und dem Speicher720 verbunden ist, und einer sekundären Beschleunigerschaltung1020 , die durch eine primäre Beschleunigerschaltung1020 mit der NIC832 und dem Speicher720 verbunden ist, als Daisy-Chain verbunden sein. - Bezug nehmend nun auf
11 ist ein darstellendes Ausführungsbeispiel des Beschleunigerschlittens1000 gezeigt. Wie vorangehend erörtert wurde, sind die Beschleunigerschaltungen1020 , die Kommunikationsschaltung830 und der optische Datenverbinder834 an der Oberseite650 des gehäuselosen Schaltungsplatinensubstrats602 befestigt. Wiederum sind die individuellen Beschleunigerschaltungen1020 und die Kommunikationsschaltung830 an der Oberseite650 des gehäuselosen Schaltungsplatinensubstrats602 derart befestigt, dass sich keine zwei wärmeproduzierenden, elektrischen Komponenten gegenseitig beschatten, wie vorangehend erörtert wurde. Die Speichervorrichtungen720 des Beschleunigerschlittens1000 sind an der Unterseite750 des gehäuselosen Schaltungsplatinensubstrats602 befestigt, wie vorangehend Bezug nehmend auf den Schlitten600 erörtert wurde. Obgleich sie an der Unterseite750 befestigt sind, sind die Speichervorrichtungen720 über das I/O-Teilsystem622 (z. B. durch Vias) kommunikativ mit den Beschleunigerschaltungen1020 gekoppelt, die auf der Oberseite650 positioniert sind. Ferner kann jede der Beschleunigerschaltungen1020 eine Wärmesenke1070 umfassen, die größer ist als eine traditionelle Wärmesenke, die in einem Server verwendet wird. Wie vorangehend Bezug nehmend auf die Wärmesenken870 erörtert wurde, können die Wärmesenken1070 größer als traditionelle Wärmesenken sein, aufgrund des „freien“ Bereichs, der durch die Speicherressourcen720 bereitgestellt ist, die auf der Unterseite750 des gehäuselosen Schaltungsplatinensubstrats602 anstatt auf der Oberseite650 positioniert sind. - Bezug nehmend nun auf
12 kann der Schlitten400 bei einigen Ausführungsbeispielen als ein Speicherungsschlitten1200 ausgeführt sein. Der Speicherungsschlitten1200 ist ausgebildet, um Daten in einer Datenspeicherung1250 zu speichern, die lokal zu dem Speicherungsschlitten1200 ist. Zum Beispiel kann ein Rechenschlitten800 oder ein Beschleunigerschlitten1000 im Betrieb Daten von der Datenspeicherung1250 des Speicherungsschlittens1200 speichern und abrufen. Der Speicherungsschlitten1200 umfasst verschiedene Komponenten, die ähnlich zu den Komponenten des Schlittens400 und/oder des Rechenschlittens800 sind, die in12 unter Verwendung derselben Bezugszeichen identifiziert wurden. Die Beschreibung solcher Komponenten, die vorangehend in Bezug auf6 ,7 und8 bereitgestellt wurde, ist anwendbar auf die entsprechenden Komponenten des Speicherungsschlittens1200 und wird hierin der Klarheit der Beschreibung des Speicherungsschlittens1200 halber nicht wiederholt. - Bei dem darstellenden Speicherungsschlitten
1200 sind die physischen Ressourcen620 als Speicherungssteuerungen1220 ausgeführt. Obwohl nur zwei Speicherungssteuerungen1220 in12 gezeigt sind, wird darauf hingewiesen, dass der Speicherungsschlitten1200 bei anderen Ausführungsbeispielen zusätzliche Speicherungssteuerungen1220 umfassen kann. Die Speicherungssteuerungen1220 können als irgendeine Art von Prozessor, Steuerung oder Steuerschaltung ausgeführt sein, die in der Lage ist, die Speicherung und den Abruf von Daten in die Datenspeicherung1250 basierend auf Anforderungen, die über die Kommunikationsschaltung830 empfangen werden, zu steuern. Bei dem darstellenden Ausführungsbeispiel sind die Speicherungssteuerungen1220 als relativ Niedrig-Leistungs-Prozessoren oder -Steuerungen ausgeführt. Zum Beispiel können bei einigen Ausführungsbeispielen die Speicherungssteuerungen1220 ausgebildet sein, um bei einer Nennleistung von etwa 75 Watt zu arbeiten. - Bei einigen Ausführungsbeispielen kann der Speicherungsschlitten
1200 auch eine Steuerung-zu- Steuerung-Verbindung1242 umfassen. Ähnlich zu der Ressource-zu-Ressource-Verbindung624 des vorangehend erörterten Schlittens400 , kann die Steuerung-zu-Steuerung-Verbindung1242 als irgendeine Art von Kommunikationsverbindung ausgeführt sein, die in der Lage ist, Steuerung-zu-Steuerung-Kommunikationen zu erleichtern. Bei dem darstellenden Ausführungsbeispiel ist die Steuerung-zu-Steuerung-Verbindung1242 als eine Hochgeschwindigkeits-Punkt-zu-Punkt-Verbindung (z. B. schneller als das I/O-Teilsystem622 ) ausgeführt. Zum Beispiel kann die Steuerung-zu-Steuerung-Verbindung1242 als eine QuickPath Interconnect (QPI), eine UltraPath Interconnect (UPI) oder eine andere Hochgeschwindigkeits-Punkt-zu-Punkt-Verbindung ausgeführt sein, die für Prozessor-zu-Prozessor-Kommunikationen dediziert ist. - Bezug nehmend nun auf
13 ist ein darstellendes Ausführungsbeispiel des Speicherungsschlittens (storage sled)1200 gezeigt. Bei dem darstellenden Ausführungsbeispiel ist die Datenspeicherung1250 als ein Speicherungskäfig1252 ausgeführt, der ausgebildet ist, um eines oder mehrere Solid-State-Laufwerke (SSDs; solid state drives)1254 zu häusen, oder umfasst diesen anderweitig. Zu diesem Zweck umfasst der Speicherungskäfig1252 eine Anzahl von Befestigungsslots1256 , die jeweils ausgebildet sind, um ein entsprechendes Solid-State-Laufwerk1254 zu empfangen. Jeder der Befestigungsslots1256 umfasst eine Anzahl von Laufwerkführungen1258 , die zusammenwirken, um eine Zugriffsöffnung1260 des entsprechenden Befestigungsslots1256 zu definieren. Der Speicherungskäfig1252 ist so auf dem gehäuselosen Schaltungsplatinensubstrat602 befestigt, dass die Zugriffsöffnungen von dem gehäuselosen Schaltungsplatinensubstrat602 weg (d. h. in Richtung der Vorderseite) zeigen. Somit sind die Solid-State-Laufwerke1254 zugänglich, während der Speicherungsschlitten1200 in einem entsprechenden Rack204 befestigt ist. Zum Beispiel kann ein Solid-State-Laufwerk1254 aus einem Rack240 (z. B. über einen Roboter) getauscht werden, während der Speicherungsschlitten1200 in dem entsprechenden Rack240 befestigt bleibt. - Der Speicherungsschlitten
1252 umfasst darstellenderweise sechzehn Befestigungsslots1256 und ist in der Lage, sechzehn Solid-State-Laufwerke1254 zu befestigen und zu lagern. Natürlich kann der Speicherungskäfig1252 bei anderen Ausführungsbeispielen ausgebildet sein, um zusätzliche oder weniger Solid-State-Laufwerke1254 zu lagern. Zusätzlich sind bei dem darstellenden Ausführungsbeispiel die Solid-State-Treiber vertikal in dem Speicherungskäfig1252 befestigt, können aber bei anderen Ausführungsbeispielen in einer unterschiedlichen Orientierung in dem Speicherungskäfig1252 befestigt sein. Jedes Solid-State-Laufwerk1254 kann als irgendeine Art von Datenspeicherungsvorrichtung ausgeführt sein, die in der Lage ist, Langzeitdaten zu speichern. Zu diesem Zweck können die Solid-State-Laufwerke1254 flüchtige und nichtflüchtige Speichervorrichtungen umfassen, die vorangehend erörtert wurden. - Wie in
13 gezeigt ist, sind die Speicherungssteuerungen1220 , die Kommunikationsschaltung830 und der optische Datenverbinder834 darstellenderweise an der Oberseite650 des gehäuselosen Schaltungsplatinensubstrats602 befestigt. Wiederum kann, wie vorangehend erörtert wurde, irgendeine geeignete Anbringungs- oder Befestigungstechnologie verwendet werden, um die elektrischen Komponenten des Speicherungsschlittens1200 auf dem gehäuselosen Schaltungsplatinensubstrat602 zu befestigen, umfassend, zum Beispiel, Buchsen (z. B. eine Prozessorbuchse), Halterungen, Klammern, gelötete Verbindungen und/oder andere Befestigungs- oder Sicherungstechniken. - Wie vorangehend erörtert wurde, sind die individuellen Speicherungssteuerungen
1220 und die Kommunikationsschaltung830 an der Oberseite650 des gehäuselosen Schaltungsplatinensubstrats602 derart befestigt, dass sich keine zwei wärmeproduzierenden, elektrischen Komponenten gegenseitig beschatten. Zum Beispiel sind die Speicherungssteuerungen1220 und die Kommunikationsschaltung830 an entsprechenden Stellen auf der Oberseite650 des gehäuselosen Schaltungsplatinensubstrats602 derart befestigt, dass keine zwei dieser elektrischen Komponenten linear in einer Reihe zueinander entlang der Richtung des Luftstrompfads608 sind. - Die Speichervorrichtungen
720 des Speicherungsschlittens1200 sind an der Unterseite750 des gehäuselosen Schaltungsplatinensubstrats602 befestigt, wie vorangehend Bezug nehmend auf den Schlitten400 erörtert wurde. Obgleich sie an der Unterseite750 befestigt sind, sind die Speichervorrichtungen720 über das I/O-Teilsystem622 kommunikativ mit den Speicherungssteuerungen1220 gekoppelt, die auf der Oberseite650 positioniert sind. Da das gehäuselose Schaltungsplatinensubstrat602 als eine doppelseitige Schaltungsplatine ausgeführt ist, können die Speichervorrichtungen720 und die Speicherungssteuerungen1220 wiederum durch eines oder mehrere Vias, Verbinder oder andere Mechanismen, die sich durch das gehäuselose Schaltungsplatinensubstrat602 erstrecken, kommunikativ gekoppelt sein. Jede der Speicherungssteuerungen1220 umfasst eine daran befestigte Wärmesenke1270 . Wie vorangehend erörtert wurde, umfassen aufgrund der verbesserten thermischen Kühlcharakteristika des gehäuselosen Schaltungsplatinensubstrats602 des Speicherungsschlittens1200 keine der Wärmesenken1270 Kühllüftungen, die daran angebracht sind. Das heißt, jede der Wärmesenken1270 ist als eine lüfterlose Wärmesenke ausgeführt. - Bezug nehmend nun auf
14 kann der Schlitten400 bei einigen Ausführungsbeispielen als ein Speicherschlitten (memory sled)1400 ausgeführt sein. Der Speicherungsschlitten1400 ist optimiert, oder anderweitig ausgebildet, um anderen Schlitten400 (z. B. Rechenschlitten800 , Beschleunigerschlitten1000 , etc.) Zugriff auf einen Pool von Speicher (z. B. in zwei oder mehr Sätzen1430 ,1432 von Speichervorrichtungen720 ) lokal zu dem Speicherschlitten1200 bereitzustellen. Zum Beispiel kann ein Rechenschlitten800 oder ein Beschleunigerschlitten1000 während des Betriebs aus der Ferne auf einen oder mehrere der Speichersätze1430 ,1432 des Speicherschlittens1200 schreiben und/oder von diesen lesen, unter Verwendung eines logischen Adressraums, der auf physische Adressen in den Speichersätzen1430 ,1432 abbildet. Der Speicherschlitten1400 umfasst verschiedene Komponenten, die ähnlich zu Komponenten des Schlittens400 und/oder des Rechenschlittens800 sind, die in14 unter Verwendung derselben Bezugszeichen identifiziert wurden. Die Beschreibung solcher Komponenten, die vorangehend in Bezug auf6 ,7 und8 bereitgestellt wurde, ist anwendbar für die entsprechenden Komponenten des Speicherschlittens1400 und wird hierin der Klarheit der Beschreibung des Speicherschlittens1400 halber nicht wiederholt. - Bei dem darstellenden Speicherschlitten
1400 sind die physischen Ressourcen620 als Speichersteuerungen1420 ausgeführt. Obwohl nur zwei Speichersteuerungen1420 in14 gezeigt sind, wird darauf hingewiesen, dass der Speicherschlitten1400 bei anderen Ausführungsbeispielen zusätzliche Speichersteuerungen1420 umfassen kann. Die Speichersteuerungen1420 können als irgendeine Art von Prozessor, Steuerung oder Steuerschaltung ausgeführt sein, die in der Lage ist, das Schreiben und Lesen von Daten in die Speichersätze1430 ,1432 basierend auf Anforderungen, die über die Kommunikationsschaltung830 empfangen werden, zu steuern. Bei dem darstellenden Ausführungsbeispiel ist jede Speichersteuerung1420 mit einem entsprechenden Speichersatz1430 ,1432 verbunden, um auf die Speichervorrichtungen720 innerhalb des entsprechenden Speichersatzes1430 ,1432 zu schreiben und von ihnen zu lesen, und irgendwelche Berechtigungen (z. B. Lesen, Schreiben etc.) durchzusetzen, die dem Schlitten400 zugeordnet sind, der eine Anforderung an den Speicherschlitten1400 gesendet hat, um eine Speicherzugriffsoperation (z. B. Lesen oder Schreiben) durchzuführen. - Bei einigen Ausführungsbeispielen kann der Speicherschlitten
1400 auch eine Steuerung-zu-Steuerung-Verbindung1442 umfassen. Ähnlich zu der Ressource-zu-Ressource-Verbindung624 des vorangehend erörterten Schlittens400 , kann die Steuerung-zu-Steuerung-Verbindung1442 als irgendeine Art von Kommunikationsverbindung ausgeführt sein, die in der Lage ist, Steuerung-zu-Steuerung-Kommunikationen zu erleichtern. Bei dem darstellenden Ausführungsbeispiel ist die Steuerung-zu-Steuerung-Verbindung1442 als eine Hochgeschwindigkeits-Punkt-zu-Punkt-Verbindung (z. B. schneller als das I/O-Teilsystem622 ) ausgeführt. Zum Beispiel kann die Steuerung-zu-Steuerung-Verbindung1442 als eine QuickPath Interconnect (QPI), eine UltraPath Interconnect (UPI) oder eine andere Hochgeschwindigkeits-Punkt-zu-Punkt-Verbindung ausgeführt sein, die für Prozessor-zu-Prozessor-Kommunikationen dediziert ist. Somit kann bei einigen Ausführungsbeispielen eine Speichersteuerung1420 durch die Steuerung-zu-Steuerung-Verbindung1442 auf Speicher zugreifen, der innerhalb des Speichersatzes1432 ist, der einer anderen Speichersteuerung1420 zugeordnet ist. Bei einigen Ausführungsbeispielen ist eine skalierbare Speichersteuerung aus mehreren kleineren Speichersteuerungen, hierin als „Chiplets“ bezeichnet, auf einem Speicherschlitten (z. B. dem Speicherschlitten1400 ) hergestellt. Die Chiplets können verbunden sein (z. B. unter Verwendung einer EMIB (Embedded Multi-Die Interconnect Bridge)). Die kombinierte Chiplet-Speichersteuerung kann auf eine relativ große Anzahl von Speichersteuerungen und I/O-Ports (z. B. bis zu 16 Speicherkanäle) skaliert werden. Bei einigen Ausführungsbeispielen können die Speichersteuerungen1420 eine Speicherverschachtelung (z. B. eine Speicheradresse ist auf den Speichersatz1430 abgebildet, die nächste Speicheradresse ist auf den Speichersatz1432 abgebildet und die dritte Adresse ist auf den Speichersatz1430 abgebildet, etc.) implementieren. Das Verschachteln kann innerhalb der Speichersteuerungen1420 oder von CPU-Buchsen (z. B. des Rechenschlittens800 ) über Netzwerklinks zu den Speichersätzen1430 ,1432 gemanagt werden und kann die Latenz, die einem Durchführen von Speicherzugriffsoperationen zugeordnet ist, im Vergleich zum Zugriff auf angrenzende Speicheradressen von derselben Speichervorrichtung verbessern. - Ferner kann bei einigen Ausführungsbeispielen der Speicherschlitten
1400 mit einem oder mehreren anderen Schlitten400 (z. B. in dem gleichen Rack240 oder einem benachbarten Rack240 ) durch einen Wellenleiter verbunden sein, unter Verwendung des Wellenleiterverbinders1480 . Bei dem darstellenden Ausführungsbeispiel sind die Wellenleiter 64-Millimeter-Wellenleiter, die 16 Rx- (d. h. Empfangs-) Spuren und 16 Tx- (d. h. Sende-) Spuren bereitstellen. Jede Spur bei dem darstellenden Ausführungsbeispiel ist entweder 16 Ghz oder 32 Ghz. Bei anderen Ausführungsbeispielen können die Frequenzen unterschiedlich sein. Ein Verwenden eines Wellenleiters kann Zugriff mit hohem Durchsatzverhalten auf den Speicherpool (z. B. die Speichersätze1430 ,1432 ) auf einen anderen Schlitten (z. B. einen Schlitten400 in demselben Rack240 oder einem benachbarten Rack240 als der Speicherschlitten1400 ) bereitstellen, ohne die Last auf den optischen Datenverbinder834 zu erhöhen. - Bezug nehmend nun auf
15 kann ein System zum Ausführen einer oder mehrerer Arbeitslasten (z. B. Anwendungen) gemäß dem Rechenzentrum100 implementiert sein. Bei dem darstellenden Ausführungsbeispiel umfasst das System1510 einen Orchestrator-Server1520 , der als ein gemanagter Knoten ausgeführt sein kann, aufweisend eine Rechenvorrichtung (z. B. einen Prozessor820 auf einem Rechenschlitten800 ), die Management-Software (z. B. eine Cloud-arbeitende Umgebung, wie beispielsweise Open Stack) ausführt, die kommunikativ mit mehreren Schlitten400 , umfassend eine große Anzahl von Rechenschlitten1530 (z. B. jeweils ähnlich zu dem Rechenschlitten800 ), Speicherschlitten1540 (z. B. jeweils ähnlich zu dem Speicherschlitten1400 ), Beschleunigerschlitten1550 (z. B. jeweils ähnlich zu dem Speicherschlitten1000 ), und Speicherungsschlitten1560 (z. B. jeweils ähnlich zu dem Speicherungsschlitten1200 ), gekoppelt ist. Einer oder mehrere der Schlitten1530 ,1540 ,1550 ,1560 können in einen gemanagten Knoten1570 gruppiert sein, wie beispielsweise durch den Orchestrator-Server1520 , um gemeinsam eine Arbeitslast (z. B. eine Anwendung1532 , die in einer virtuellen Maschine oder in einem Container ausgeführt wird) durchzuführen. Der gemanagte Knoten1570 kann als eine Anordnung von physischen Ressourcen620 , wie beispielsweise Prozessoren820 , Speicherressourcen720 , Beschleunigerschaltungen1020 oder Datenspeicherung1250 , von dem gleichen oder unterschiedlichen Schlitten400 ausgeführt sein. Ferner kann der gemanagte Knoten zu der Zeit, zu der dem gemanagten Knoten eine Arbeitslast zugewiesen werden soll, oder zu irgendeinem anderen Zeitpunkt durch den Orchestrator-Server1520 eingerichtet, definiert oder „aufgesponnen“ werden und kann unabhängig davon existieren, ob dem gemanageten Knoten derzeit irgendwelche Arbeitslasten zugewiesen sind. Bei dem darstellenden Ausführungsbeispiel kann der Orchestrator-Server1520 selektiv physische Ressourcen620 von den Schlitten400 allokieren und/oder de-allokieren und/oder einen oder mehrere Schlitten400 zu dem gemanagten Knoten1570 als eine Funktion von Service-Qualitäts- (QoS) Zielen (z. B. Performance-Ziele, die einem Durchsatz, Latenz, Anweisungen pro Sekunde, etc.), die einem Service Level Agreement für die Arbeitslast (z. B. die Anwendung1532 ) zugeordnet sind, hinzufügen oder von demselben entfernen. Dabei kann der Orchestrator Server1520 Telemetriedaten empfangen, die Performance-Bedingungen (z. B. Durchsatz, Latenz, Anweisungen pro Sekunde, etc.) in jedem Schlitten400 des gemanagten Knotens1570 anzeigen, und die Telemetriedaten mit den Service-Qualitäts-Zielen vergleichen, um zu bestimmen, ob die Service-Qualitäts-Ziele erfüllt werden. Der Orchestrator-Server1520 kann zusätzlich bestimmen, ob eine oder mehrere physische Ressourcen von dem gemanagten Knoten1570 de-allokiert werden können, während die QoS-Ziele noch erfüllt werden, wodurch diese physischen Ressourcen für eine Verwendung in einem anderen gemanagten Knoten (z. B. um eine unterschiedliche Arbeitslast durchzuführen) freigegeben werden. Alternativ, wenn die QoS-Ziele derzeit nicht erfüllt sind, kann der Orchestrator-Server1520 bestimmen, zusätzliche physische Ressourcen dynamisch zu allokieren, um bei der Ausführung der Arbeitslast (z. B. der Anwendung1532 ) zu helfen, während die Arbeitslast ausgeführt wird. In ähnlicher Weise kann der Orchestrator-Server1520 bestimmen, physische Ressourcen von einem gemanagten Knoten dynamisch zu de-allokieren, wenn der Orchestrator-Server1520 bestimmt, dass ein De-Allokieren der physischen Ressource dazu führen würde, dass die QoS-Ziele immer noch erreicht werden. - Zusätzlich kann der Orchestrator-Server
1520 bei einigen Ausführungsbeispielen Trends in der Ressourcennutzung der Arbeitslast (z. B. der Anwendung1532 ) identifizieren, wie beispielsweise durch ein Identifizieren von Phasen einer Ausführung (z. B. Zeitperioden, in denen unterschiedliche Operationen, wobei jede unterschiedliche Ressourcennutzungscharakteristika aufweist, durchgeführt werden) der Arbeitslast (z. B. der Anwendung1532 ) und durch vorausschauendes Identifizieren verfügbarer Ressourcen im Rechenzentrum100 ein Allokieren derselben zu dem gemanagten Knoten1570 (z. B. innerhalb einer vordefinierten Zeitperiode des zugeordneten Phasenbeginns). Bei einigen Ausführungsbeispielen kann der Orchestrator-Server1520 Performance basierend auf verschiedenen Latenzen und einem Verteilungsschema modellieren, um Arbeitslasten unter Rechenschlitten und anderen Ressourcen (z. B. Beschleunigerschlitten, Speicherschlitten (memory sleds), Speicherungsschlitten (storage sleds)) in dem Rechenzentrum100 zu verteilen. Der Orchestrator-Server1520 kann beispielsweise ein Modell verwenden, das die Performance von Ressourcen auf dem Schlitten400 (z. B. FPGA-Performance, Speicherzugrifflatenz, etc.) und die Performance (z. B. Überlastung, Latenz, Bandbreite) des Pfads durch das Netzwerk zu der Ressource (z. B. FPGA) berücksichtigt. Somit kann der Orchestrator-Server1520 basierend auf der Gesamtlatenz, die jeder potenziellen Ressource, die in dem Rechenzentrum100 (z. B. die Latenz, die der Performance der Ressource selbst zugeordnet ist, zusätzlich zu der Latenz, die dem Pfad durch das Netzwerk zwischen dem Rechenschlitten, der die Arbeitslast ausführt, und dem Schlitten400 , auf dem die Ressource positioniert ist, zugeordnet ist) verfügbar ist, zugeordnet ist, bestimmen, welche Ressource(n) mit welchen Arbeitslasten verwendet werden sollten. - Bei einigen Ausführungsbeispielen kann der Orchestrator-Server
1520 eine Karte von Wärmeerzeugung in dem Rechenzentrum100 erstellen, unter Verwendung von Telemetriedaten (z. B. Temperaturen, Lüftergeschwindigkeiten, etc.), die von den Schlitten400 gemeldet werden, und gemanagten Knoten als eine Funktion der Karte von Wärmeerzeugung und vorhergesagter Wärmeerzeugung, die unterschiedlichen Arbeitslasten zugeordnet ist, Ressourcen zuweisen, um eine Zieltemperatur und Wärmeverteilung in dem Rechenzentrum100 zu erhalten. Zusätzlich oder alternativ dazu kann der Orchestrator-Server1520 bei einigen Ausführungsbeispielen empfangene Telemetriedaten in einem hierarchischen Modell organisieren, das eine Beziehung zwischen den gemanagten Knoten (z. B. eine räumliche Beziehung wie beispielsweise die physischen Standorte der Ressourcen der gemanagten Knoten innerhalb des Rechenzentrums100 und/oder eine funktionale Beziehung wie beispielsweise Gruppierungen der gemanagten Knoten durch die Kunden, für die die gemanagten Knoten Dienste bereitstellen, die Arten von Funktionen, die typischerweise durch die gemanagten Knoten ausgeführt werden, gemanagte Knoten, die typischerweise Arbeitslasten untereinander teilen oder austauschen, etc.) anzeigt. Basierend auf Unterschieden bei den physischen Standorten und Ressourcen in den gemanagten Knoten kann eine gegebene Arbeitslast unterschiedliche Ressourcennutzungen (z. B. Verursachen einer unterschiedlichen, internen Temperatur, Verwenden eines unterschiedlichen Prozentsatzes von Prozessor- oder Speicherkapazität) über die Ressourcen von unterschiedlichen gemanagten Knoten aufzeigen. Der Orchestrator-Server1520 kann die Unterschiede basierend auf den Telemetriedaten bestimmen, die in dem hierarchischen Modell gespeichert sind, und die Unterschiede in eine Vorhersage einer zukünftigen Ressourcennutzung einer Arbeitlast einfließen lassen, falls die Arbeitslast von einem gemanagten Knoten einem anderen gemanagten Knoten neu zugewiesen wird, um die Ressourcennutzung in dem Rechenzentrum100 genau auszubalancieren. - Um die Rechenlast auf dem Orchestrator-Server
1520 und die Datenübertragungslast auf dem Netzwerk zu reduzieren, kann der Orchestrator-Server1520 bei einigen Ausführungsbeispielen Selbsttestinformationen an die Schlitten400 senden, um es jedem Schlitten400 zu ermöglichen, lokal (z. B. auf dem Schlitten400 ) zu bestimmen, ob die Telemetriedaten, die durch den Schlitten400 erzeugt wurden, eine oder mehrere Bedingungen (z. B. eine verfügbare Kapazität, die eine vorbestimmte Schwelle erfüllt, eine Temperatur, die eine vorbestimmte Schwelle erfüllt) erfüllen. Jeder Schlitten400 kann dann ein vereinfachtes Ergebnis (z. B. Ja oder Nein) an den Orchestrator-Server1520 zurückmelden, was der Orchestrator-Server1520 bei dem Bestimmen der Allokation von Ressourcen zu gemanagten Knoten nutzen kann. - Bezug nehmend nun auf
16 ist ein Blockdiagramm für ein System1600 für einen Erfahrungsqualitäts- (QoE) Softwarestapel bereitgestellt, der einen Netzwerk-Service-Rahmen repräsentiert, der zum Einsetzen, Orchestrieren und Managen von Diensten verwendet wird, die durch eine virtualisierte Netzwerkfunktion (VNF) bereitgestellt werden, die in dem System1510 ausführen kann. Wie hierin weiter beschrieben, verwendet der Netzwerk-Service-Rahmen rechen-, netzwerk- und speicherbasierte Performance-Scores und darauf basierende Ressourcenvergabe-Abhilfen, um eine Service-Sicherstellung in dem System1510 bereitzustellen. Das System1600 wird auf einen auf QoE basierenden Industrie-Rahmen abgebildet. Das System1600 stellt eine Service-Qualität (QoS) pro virtualisierter Netzwerkfunktion (VNF) als eine Kombination aus QoS pro CPU-Thread und Datenebenen-Entwicklungsbibliothek- (z. B. Data Plane Development Kit (DPDK)) basierte QoS pro Poll Mode Driver- (PMD) Thread bereit. Ferner bietet der Netzwerk-Service-Rahmen eine Rekalibrierung pro Sekunde unter Verwendung eines Überwachungs- und Ressourcenbewertungsagenten auf einem QoS-zu-QoE-Anteil. Der Ressource-Bewertungs-Agent kann die Ressourcen anpassen, um die QoE in einer VNF (oder einer anderen virtuellen Maschine (VM)) innerhalb eines bestimmten Bereichs zu halten. - Der durch das System
1600 bereitgestellte Netzwerk-Service-Rahmen umfasst die QoE-Überwachungseinrichtung, eine Service-Level-Ziel- (SLO; service level objective) Überwachungseinrichtung, eine Vorhergesagte-QoS-Überwachungseinrichtung, einen SLO-Agenten, einen Vorhergesagte-QoS-Agenten, einen CPU-Service-Recheneinheit- (SCU; service compute unit) Management-Agenten, einen Netzwerk-Service-Netzwerk-Einheit-(SNU; service network unit) Management-Agenten, einen Plattform-Telemetrie-Kollektor-Agenten, einen Abhilfe-Agenten und einen Virtuelle-Maschine-Manager (VMM) auf der zugrunde liegenden Hardware (HW). Unter Verwendung einer oder mehrerer solcher Komponenten stellt das System1600 Netzwerk- und Rechenfähigkeit, Performance-QoS, Zuverlässigkeit (z. B. in Bezug auf Netzwerkbandbreite und CPU-Zyklen) und Verfügbarkeit (z. B. durch eine periodische Management-Agent-Neuberechnung von SCUs und SNUs) bereit. Bei einigen Ausführungsbeispielen stellt das System1600 eine autonome Umgebung bereit, die ein QoE-Modell für einen Endnutzer und ein funktionales Abbilden von QoE-Parametern auf Arbeitslast-SLO-Parametern umfasst. Beispielsweise können Komponenten in dem System1600 ein Arbeitslastmerkmal in eine VNF-Ressourcen- und eine SLO-Definition teilen, die zusammen ein Arbeitslast-SLO bilden können. Ferner stellt das System1600 einen Kapazitätsplaner bereit, der Metriken und Scores erfasst, die sich auf Ressourcen wie beispielsweise Berechnung, Netzwerk und Beschleunigung beziehen. Dies ermöglicht ein Auffinden von Kapazität, Verfügbarkeit und für ein gegebenes SLO geeignete Hardware. Ferner überwacht und sammelt der Plattform-Telemetrie-Kollektor-Agent Metriken, die zum Detektieren von Instanzen verwendet werden, bei denen die Metriken außerhalb eines Bereichs für ein gegebenes SLO fallen. Das System1600 umfasst Komponenten (z. B. die Vorhergesagte-QoS-Überwachungseinrichtung und den Vorhergesagte-QoS-Agenten), die ein tatsächliches Service-Level relativ zu einem erforderlichen (z. B. einem Ziel-) Service-Level basierend auf der oben genannten Abbildung auf eine QoE vorhersagen. Der Abhilfe-Agent kann Handlungen zur Minderung oder Wiederherstellung von Ressourcen auf ein gewünschtes Service Level durchführen. - Bei einigen Ausführungsbeispielen können die Schlittenvorrichtungen, die relativ zu
1-15 beschrieben sind, den Netzwerk-Service-Rahmen von System1600 implementieren. Erläuternd stellt das System1600 den Orchestrator-Server1520 , einen Rechenschlitten1610 , einen Speicherschlitten1620 und einen Beschleunigerschlitten1640 bereit, die jeweils mit einem Netzwerk1640 (z. B. dem Internet) verbunden sind. Der Orchestrator-Server1520 umfasst eine Service-Management-Logikeinheit1602 , die als irgendeine Vorrichtung oder Schaltungsanordnung zum Ausführen der hierin beschriebenen Funktionen ausgeführt sein kann, wie beispielsweise Empfangen von CPU und Netzwerkmetriken von den Agenten1614 ,1624 und1644 , die jeweils in dem Rechenschlitten1610 , in dem Speicherschlitten1620 und dem Beschleunigerschlitten1640 ausführen. - Der darstellende Rechenschlitten
1610 umfasst eine Anwendung1612 (z. B. eine Arbeitslast, die im Namen eines Benutzers auszuführen ist) und einen Agenten1614 , der ausgebildet ist, um Rechen- und Netzwerkmetriken zu sammeln. Der Agent1614 kann dann aus den Rechen- und Netzwerkmetriken Service-Rechen-Einheiten (SCUs) und Service-Netzwerk-Einheiten (SNUs) bestimmen, die verfügbare Rechen- und Netzwerkressourcen anzeigen, die zum Bedienen einer Arbeitslast, z. B. einer Anwendung, verfügbar sind. - Der darstellende Speicherschlitten
1620 umfasst eine oder mehrere Speichervorrichtungen1622 (z. B. flüchtige und nichtflüchtige Speichervorrichtungen) und einen Agenten1624 . Ähnlich wie der Agent1614 kann der Agent1624 Rechen- und Netzwerkmetriken sammeln und SCUs und SNUs berechnen. Der darstellende Beschleunigerschlitten1630 umfasst eine oder mehrere Beschleunigervorrichtungen1632 (z. B. feldprogrammierbare Gate-Arrays (FPGAs; Field Programmable Gate Arrays), anwendungsspezifische integrierte Schaltungen (ASICs; application-specific integrated circuits), graphische Verarbeitungseinheiten (GPU; graphical processing units) usw.) und einen Agenten1634 , der Rechen- und Netzwerkmetriken zum Berechnen von SCUs und SNUs sammelt. Es wird darauf hingewiesen, dass das System1600 mehrere Rechenschlitten1610 , Speicherschlitten1620 und Beschleunigerschlitten1630 umfassen kann. - Ferner können die Komponenten des Systems
1600 (z. B. die Agenten, Überwachungseinrichtungen und Telemetriekollektoren) als beschleunigte Einheiten implementiert sein, z. B. ausgeführt auf einem oder mehreren Beschleunigerschlitten1630 oder Beschleunigern, die auf anderen Komponenten des Systems1600 ausführen. Um zu vermeiden, dass Rechenplattformzyklen durch diese Komponenten verbraucht werden, kann eine Beschleunigervorrichtung (z. B. eine feld-programmierbares Gate-Array- (FPGA) Herleitung oder eine Beschleunigung im Package) es einem gegebenen Anwender eines Systems1600 erlauben, beschleunigte Kernel-Bitströme zum Überwachen, Vorhersagen und Verarbeiten von Telemetrie zu registrieren. Die Beschleunigung kann eine proprietäre System-QoE-beschleunigte Logik umfassen, die ausgebildet ist, um die Anwender-Telemetrie von einer konvergierten Telemetrie-Architektur zu jedem der registrierten Bitströme zu routen. Dies erlaubt ein nahtloses Routing von Rückrufen von den beschleunigten Kernel-Bitströmen zu der CPU und anderen Komponenten. Die beschleunigte Logik umfasst beschleunigte Kernel-Bitstrom-Überwachungseinrichtungen, Agenten und Telemetrieprozessoren für jeden Anwender. Die beschleunigte Logik legt auch beschleunigte Funktionen frei, die durch Agenten verwendet werden können (z. B. für Funktionen wie beispielsweise Fast-FourierTransformation (FFT)). Ferner managt und routet die beschleunigte Logik Flüsse zwischen beschleunigten Komponenten und nicht-beschleunigten Komponenten. - Bezug nehmend nun auf
17 kann der Orchestrator-Server1520 als irgendeine Art von Rechenvorrichtung ausgeführt sein, die in der Lage ist, die hierin beschriebenen Funktionen auszuführen. Wie gezeigt ist, umfasst der darstellende Orchestrator-Server1520 eine Rechenmaschine1702 , ein Eingang/Ausgang (I/O) -Teilsystem 1708, eine Kommunikationsschaltungsanordnung1710 und eine oder mehrere Datenspeicherungsvorrichtungen1714 . Natürlich kann der Orchestrator-Server1520 bei anderen Ausführungsbeispielen andere oder zusätzliche Komponenten umfassen, wie solche, die üblicherweise in einem Computer zu finden sind (z. B. Display, Peripherievorrichtungen1716 etc.). Zusätzlich können bei einigen Ausführungsbeispielen eine oder mehrere der darstellenden Komponenten in eine andere Komponente eingebracht sein oder auf andere Weise einen Abschnitt einer selben bilden. - Die Rechenmaschine
1702 kann als irgendeine Art von Vorrichtung oder Sammlung von Vorrichtungen ausgeführt sein, die in der Lage ist, verschiedene unten beschriebene Rechenfunktionen auszuführen. Bei einigen Ausführungsbeispielen kann die Rechenmaschine1702 als eine einzelne Vorrichtung, wie beispielsweise eine integrierte Schaltung, ein eingebettetes System, ein feldprogrammierbares Gate-Array (FPGA), ein System-auf-einem-Chip (SoC) oder ein anderes integriertes System oder Vorrichtung ausgeführt sein. Zusätzlich umfasst die Rechenmaschine1702 bei einigen Ausführungsbeispielen einen Prozessor1704 und einen Speicher1706 oder ist als solcher ausgeführt. Der Prozessor1704 kann als irgendeine Art von Prozessor ausgeführt sein, der in der Lage ist, die hierin beschriebenen Funktionen auszuführen. Zum Beispiel kann der Prozessor1704 als ein Einzel- oder Multi-Kernprozessor(en), ein Mikrocontroller oder anderer Prozessor oder Verarbeitungs-/Steuerungsschaltung ausgeführt sein. Bei einigen Ausführungsbeispielen kann der Prozessor1704 als ein FPGA, eine anwendungsspezifische integrierte Schaltung (ASIC), neukonfigurierbare Hardware oder Hardwareschaltungsanordnung oder andere spezialisierte Hardware ausgeführt sein, solche umfassen oder damit gekoppelt sein, um eine Performance der hierin beschriebenen Funktionen zu erleichtern. Wie gezeigt ist, kann der Prozessor1704 auch die oben genannte Service-Management-Logikeinheit1602 umfassen. - Der Speicher
1706 kann als irgendeine Art von flüchtigem (z. B. dynamischem Direktzugriffsspeicher (DRAM), etc.) oder nichtflüchtigem Speicher oder Datenspeicherung, der in der Lage ist, die hierin beschriebenen Funktionen auszuführen, ausgeführt sein. Ein flüchtiger Speicher kann ein Speicherungsmedium sein, das Leistung benötigt, um den Zustand von durch das Medium gespeicherten Daten aufrechtzuerhalten. Nicht einschränkende Beispiele für flüchtigen Speicher können verschiedene Typen von Direktzugriffsspeicher (RAM; random access memory) umfassen, wie beispielsweise dynamischen Direktzugriffsspeicher (DRAM) oder statischen Direktzugriffsspeicher (SRAM; static random access memory). Ein bestimmter Typ von DRAM, der in einem Speichermodul verwendet werden kann, ist synchroner dynamischer Direktzugriffsspeicher (SDRAM; synchronous dynamic random access memory). Bei bestimmten Ausführungsbeispielen kann der DRAM einer Speicherkomponente einem durch JEDEC veröffentlichten Standard entsprechen, wie beispielsweise JESD79F für DDR SDRAM, JESD79-2F für DDR2 SDRAM, JESD79-3F für DDR3 SDRAM, JESD79-4A für DDR4 SDRAM, JESD209 für Low Power DDR (LPDDR), JESD209-2 für LPDDR2, JESD209-3 für LPDDR3 und JESD209-4 für LPDDR4 (diese Standards sind verfügbar unter www.jedec.org). Solche Standards (und ähnliche Standards) können als DDR-basierte Standards bezeichnet werden und Kommunikationsschnittstellen der Speicherungsvorrichtungen, die solche Standards implementieren, können als DDR-basierte Schnittstellen bezeichnet werden. - Bei einem Ausführungsbeispiel ist die Speichervorrichtung eine blockadressierbare Speichervorrichtung, wie beispielsweise die, die auf NAND oder NOR-Technologien basieren. Eine Speichervorrichtung kann auch nichtflüchtige Vorrichtungen umfassen, wie beispielsweise eine dreidimensionale Crosspoint-Speichervorrichtung (z. B. Intel 3D XPoint™ Speicher), oder andere byteadressierbare Write-in-Place- nichtflüchtige Speichervorrichtungen. Bei einem Ausführungsbeispiel kann die Speichervorrichtung Speichervorrichtungen sein oder umfassen, die Chalkogenidglas, Multi-Schwellenpegel-NAND-Flash-Speicher, NOR-Flash-Speicher, Single- oder Multi-Level-Phasenwechselspeicher (PCM; Phase Change Memory), einen resistiven Speicher, Nanodraht-Speicher, ferroelektrischen Transistor-Direktzugriffsspeicher (FeTRAM; ferroelectric transistor random access memory), antiferroelektrischen Speicher, magnetoresistiven Direktzugriffsspeicher (MRAM; magnetoresistive random access memory), der Memristor-Technologie einbringt, resistiven Speicher, umfassend die Metalloxidbasis, die Sauerstoffleerstellenbasis und den Leitfähige-Brücken-Direktzugriffsspeicher (CB-RAM; conductive bridge Random Access Memory), oder Spin-Transfer-Torque- (STT; spin transfer torque) MRAM, eine Spintronik-Magnetübergangsspeicher-basierte Vorrichtung, eine Magnet-Tunnelübergang (MTJ; magnetic tunneling junction) -basierte Vorrichtung, eine DW-(Domain Wall-) und Spin-Bahn-Transfer- (SOT-; Spin Orbit Transfer) -basierte Vorrichtung, eine thyristorbasierte Speichervorrichtung oder eine Kombination von irgendwelchen aus den vorstehend Genannten oder einem anderen Speicher verwenden. Die Speichervorrichtung kann sich auf den Die selbst und/oder auf ein gepackagtes Speicherprodukt beziehen.
- Bei einigen Ausführungsbeispielen, kann 3D-Crosspoint-Speicher (z. B. Intel 3D XPoint™ Speicher) eine transistorlose, stapelbare Kreuzpunkt (cross point) -Architektur umfassen, bei der Speicherzellen an dem Schnittpunkt von Wortleitungen und Bitleitungen sitzen und individuell adressierbar sind, und bei der Bitspeicherung auf einer Veränderung des Bulkwiderstands basiert. Bei einigen Ausführungsbeispielen können alle oder ein Abschnitt des Speichers
1706 in den Prozessor1704 integriert sein. In Betrieb kann der Speicher1706 verschiedene Software und Daten speichern, die während des Betriebs verwendet werden, wie beispielsweise Aufgaben-Aufforderungs-Daten, Kernel-Abbildungs-Daten, Telemetriedaten, Anwendungen, Programme, Bibliotheken und Treiber. - Die Rechenmaschine
1702 ist kommunikativ mit anderen Komponenten des Orchestrator-Servers1520 über das I/O-Teilsystem 1708 gekoppelt, das als Schaltungsanordnung und/oder Komponenten ausgeführt sein kann, um Ein-/Ausgabe-Operationen mit der Rechenmaschine1702 (z. B. mit dem Prozessor1704 und/oder dem Speicher1706 ) und anderen Komponenten des Orchestrator-Servers1520 zu erleichtern. Zum Beispiel kann das I/O-Teilsystem1708 als Speichersteuerungs-Hubs, Eingabe/Ausgabe-Steuerungs-Hubs, Integrierter-Sensor-Hubs, Firmware-Vorrichtungen, Kommunikationslinks (z. B. Punkt-zu-Punkt-Links, Bus-Links, Drähte, Kabel, Lichtführungen, Gedruckte-Schaltungsplatinen-Leiterbahnen etc.) und/oder andere Komponenten und Teilsysteme, um die Eingabe-/Ausgabeoperationen zu erleichtern, ausgeführt sein oder diese anderweitig umfassen. Bei einigen Ausführungsbeispielen kann das I/O-Teilsystem1708 einen Abschnitt eines Systems-auf-einem-Chip (SoC; system-on-a-chip) bilden und zusammen mit einem oder mehreren aus dem Prozessor1704 , dem Speicher1706 und anderen Komponenten des Orchestrator-Servers1520 in die Rechenmaschine1702 eingebracht sein. - Die Kommunikationsschaltungsanordnung
1710 kann als irgendeine Kommunikationsschaltung, Vorrichtung oder Sammlung davon ausgeführt sein, die in der Lage ist, Kommunikationen über das Netzwerk1640 zwischen dem Orchestrator-Server1520 und einer anderen Rechenvorrichtung (z. B. dem Rechenschlitten1610 , dem Speicherschlitten1620 , dem Beschleunigerschlitten1640 usw.) zu ermöglichen. Die Kommunikationsschaltungsanordnung1710 kann ausgebildet sein, um irgendeine einzige oder mehrere Kommunikationstechnologien (z. B. verdrahtete oder drahtlose Kommunikation) und zugeordnete Protokolle (z. B. Ethernet, Bluetooth®, Wi-Fi®, WiMAX, etc.) zu verwenden, um eine solche Kommunikation zu bewirken. - Die darstellende Kommunikationsschaltungsanordnung
1710 umfasst eine Netzwerkschnittstellensteuerung (NIC; network interface controller)1712 , die auch als eine Host-Strukturschnittstelle (HIF; host fabric interface) bezeichnet werden kann. Die NIC1712 kann als eine oder mehrere Add-in-Platinen, Tochterkarten, Netzwerkschnittstellenkarten, Steuerungschips, Chipsätze oder andere Vorrichtungen ausgeführt sein, die durch den Orchestrator-Server1520 verwendet werden können, um sich mit einer anderen Rechenvorrichtung (z. B. dem Rechenschlitten1610 , dem Speicherschlitten1620 , dem Beschleunigerschlitten1640 etc.) zu verbinden. Bei einigen Ausführungsbeispielen kann die NIC1712 als Teil eines Systems-auf-einem-Chip (SoC; system-on-a-chip), das einen oder mehrere Prozessoren umfasst, ausgeführt sein, oder auf einem Multi-Chip-Package, das auch einen oder mehrere Prozessoren umfasst, umfasst sein. Bei einigen Ausführungsbeispielen kann die NIC1712 einen lokalen Prozessor (nicht gezeigt) und/oder einen lokalen Speicher (nicht gezeigt) umfassen, die beide lokal zu der NIC1712 sind. Bei solchen Ausführungsbeispielen kann der lokale Prozessor der NIC1712 in der Lage sein, eine oder mehrere der Funktionen der hierin beschriebenen Rechenmaschine1702 auszuführen. Zusätzlich oder alternativ kann bei solchen Ausführungsbeispielen der lokale Speicher der NIC1712 in eine oder mehrere Komponenten des Orchestrator-Servers1520 auf der Platinenebene, Buchsenebene, Chip-Ebene und/oder anderen Ebenen integriert sein. - Die eine oder die mehreren darstellenden Datenspeicherungsvorrichtungen
1714 können als irgendeine Art von Vorrichtungen ausgeführt sein, die für kurzfristige oder langfristige Speicherung von Daten ausgebildet sind, wie beispielsweise Speichervorrichtungen und - Schaltungen, Speicherkarten, Festplattenlaufwerke, Solid-State-Laufwerke oder andere Datenspeicherungsvorrichtungen. Jede Datenspeicherungsvorrichtung1714 kann eine Systemunterteilung umfassen, die Daten und Firmwarecode für die Datenspeicherungsvorrichtung1714 speichert. Jede Datenspeicherungsvorrichtung1714 kann auch eine Betriebssystemunterteilung umfassen, die Datendateien und Ausführbare für ein Betriebssystem speichern. - Zusätzlich oder alternativ kann der Orchestrator-Server
1520 eine oder mehrere Peripherievorrichtungen1716 umfassen. Solche Peripherievorrichtungen1716 können irgendeine Art von Peripherievorrichtung umfassen, die üblicherweise in einer Rechenvorrichtung zu finden sind, wie beispielsweise einer Anzeige, Lautsprechern, einer Maus, einer Tastatur und/oder anderen Eingabe-/Ausgabe-Vorrichtungen, Schnittstellenvorrichtungen, und/oder anderen Peripherievorrichtungen. Ferner kann jeder der Schlitten1610 ,1620 und1630 vergleichbare Komponenten umfassen wie die des Orchestrator-Servers1520 , möglicherweise mit Ausnahme der Schlitten1610 ,1620 und1630 , nicht umfassend die Service-Management-Logikeinheit1602 . - Bezug nehmend nun auf
18 kann der Orchestrator-Server1520 während eines Betriebs eine Umgebung1800 einrichten. Die darstellende Umgebung1800 umfasst einen Netzwerkkommunikator1820 und einen Service-Manager1830 . Jede der Komponenten der Umgebung1800 kann als Hardware, Firmware, Software oder eine Kombination davon ausgeführt sein. Somit können bei einigen Ausführungsbeispielen eine oder mehrere der Komponenten der Umgebung1800 als Schaltungsanordnung oder eine Sammlung elektrischer Vorrichtungen (z. B. Netzwerkkommunikatorschaltungsanordnung1820 , Service-Manager-Schaltungsanordnung1830 , etc.) ausgeführt sein. Es wird darauf hingewiesen, dass bei solchen Ausführungsbeispielen eine oder mehrere aus der Netzwerkkommunikatorschaltungsanordnung1820 oder der Service-Manager-Schaltungsanordnung1830 einen Abschnitt einer oder mehrerer aus der Rechenmaschine1702 , der Kommunikationsschaltungsanordnung1710 , des I/O-Teilsystems1708 und/oder anderer Komponenten des Orchestrator-Servers1520 bilden können. - Bei der darstellenden Umgebung
1800 ist der Netzwerkkommunikator1820 , der als Hardware, Firmware, Software, virtualisierte Hardware, emulierte Architektur und/oder eine Kombination derselben, wie vorangehend erörtert wurde, ausgeführt sein kann, ausgebildet, um Netzwerkkommunikationen (z. B. Netzwerkverkehr, Netzwerkpakete, Netzwerkflüsse, etc.) jeweils nach innen oder nach außen zu und von dem Orchestrator-Server1520 , zu ermöglichen. Dazu ist der Netzwerkkommunikator1820 ausgebildet, um Datenpakete von einem System oder einer Rechenvorrichtung (z. B. dem Rechenschlitten1610 ) zu empfangen und zu verarbeiten, und um Datenpakete an eine andere Rechenvorrichtung oder System (z. B. den Speicherschlitten1620 , den Beschleunigerschlitten1630 ) vorzubereiten und zu senden. Dementsprechend kann bei einigen Ausführungsbeispielen zumindest ein Teil der Funktionalität des Netzwerkkommunikators1820 durch die Kommunikationsschaltungsanordnung1710 und, bei dem darstellenden Ausführungsbeispiel, durch die NIC1712 durchgeführt werden. - Der Service-Manager
1830 , der als Hardware, Firmware, Software, virtualisierte Hardware, emulierte Architektur und/oder eine Kombination davon ausgeführt sein kann, ist ausgebildet, um das Management von Rechen- und Netzwerkressourcen gemäß den hierin beschriebenen Techniken zu koordinieren. Dazu umfasst der Service-Manager1830 bei dem darstellenden Ausführungsbeispiel eine Überwachungskomponente1832 , eine Vorhersagekomponente1834 und eine Abhilfekomponente1836 . - Die Überwachungskomponente
1832 ist bei dem darstellenden Ausführungsbeispiel ausgebildet, um eine CPU und Netzwerkmetriken von Schlitten in dem System1600 zu empfangen. Zusätzlich ist die Überwachungskomponente1832 ausgebildet, um eine Anzeige eines Betrags von verfügbaren Service-Rechen-Einheiten (SCUs) und Service-Netzwerk-Einheiten (SNUs) zu empfangen. Jede der SCUs und SNUs sind logische Repräsentationen im Service Manager1830 von verfügbaren Recheneinheiten und Netzwerkeinheiten auf Rechenvorrichtungen (z. B. dem Rechenschlitten1610 ) in dem System1600 . Um die Metriken zu empfangen, kann die Überwachungskomponente1832 mit den Agenten kommunizieren, die auf Vorrichtungen in dem System1600 ausführen, wie z. B. die Agenten1614 ,1624 und1634 . Die Überwachungskomponente1832 ist auch ausgebildet, um zu bestimmen, ob eine gegebene Ressource die SLO- (Service Level Objective) Anforderungen erfüllt, die z. B. innerhalb eines Service Level Agreement (SLA) spezifiziert sind. - Die Vorhersagekomponente
1834 , in dem darstellenden Ausführungsbeispiel, ist ausgebildet, um verfügbare SNU-Daten und SCU-Daten zu empfangen und Rechenvorrichtungen in dem System1600 Rechenvorrichtungen zu bestimmen, die in der Lage sind, Ressourcen bereitzustellen, wie beispielsweise beim Starten einer Virtuelle Maschine- (VM) Instanz. Die Vorhersagekomponente1834 kann z. B. ein SLA und Service-Qualitäts- (QoS) Anforderungen, die einem gegebenen Benutzer zugeordnet sind, auswerten, um eine geeignete Rechenvorrichtung aus den Rechenvorrichtungen zu bestimmen, die verfügbaren SCU- und SNU-Einheiten zugeordnet sind, die SLOs erfüllt, die auch repräsentativ für SLO-Einheiten in dem Service-Manager1830 sein können. - Die Abhilfekomponente
1836 , in dem darstellenden Ausführungsbeispiel, ist ausgebildet, um bei einer Bestimmung, dass eine der Rechen- oder Netzwerkressourcen ein gegebenes SLO nicht erfüllt (oder vorhergesagt wird, dass sie dieselbe nicht erfüllt), eine oder mehrere Abhilfehandlungen zu bestimmen und zu erzeugen. Beispiel-Abhilfehandlungen umfassen eine Allokation von Rechen- und Netzwerkressourcen an einen gegebenen Rechenschlitten, die Verlagerung einer VM auf einen anderen Rechenschlitten, eine Allokation von Ressourcen an einen Beschleunigerschlitten und Ähnliches. Die Abhilfekomponente1836 kann auch verursachen, dass betroffene Vorrichtungen die erzeugte Abhilfehandlung ausführen. - Bezug nehmend nun auf
19 kann der Orchestrator-Server1520 (z. B. einer oder mehrere der Schlitten in System1600 ), der die Komponenten des Systems1600 , in Ausführung, einbringt, ein Verfahren1900 ausführen, um die Service-Sicherstellung im System1600 zu managen. Beispielsweise kann das Verfahren1900 ausgeführt werden, indem eine gegebene virtuelle Maschine (VM) auf einem Rechenschlitten gestartet wird. Bei Block1902 werden verfügbare SCUs und SNUs bestimmt. Dazu bestimmt beispielsweise bei Block1904 der Orchestrator-Server1520 verfügbare SCUs und SNUs als eine Funktion von gesammelten CPU- und Netzwerkmetriken von Agenten, die auf Rechenvorrichtungen ausführen. Insbesondere bestimmen die Agenten, die in Rechenschlitten ausführen, eine Menge verfügbarer SCUs und SNUs am Host und veröffentlichen die Menge an Erfahrungsqualität (QoE) und SLO-Überwachungseinrichtungen, die in dem System1600 ausführen. Eine SCU definiert eine Rechenfähigkeit. Eine SNU definiert die für eine VM erforderliche Netzwerkbandbreite. Die QoE- und SLO-Überwachungseinrichtungen können z. B. auf dem Orchestrator-Server1520 ausführen. Die Menge an freien SCUs und SNUs kann unter Verwendung von CPU- und Netzwerkmetriken bestimmt werden, die durch einen Plattform-Telemetrie-Sammel-Agenten gesammelt werden. - Bei Block
1906 wird eine Service-Klasse (CLoS; class of service) einer QoE für eine gegebene VM ausgewählt, die gestartet werden soll (z. B. durch einen Zeitplaner in dem System1600 ). Bei Block1908 stimmt der Orchestrator-Server1520 Hosts, auf denen die VM gestartet werden kann, mit Service-Levels für die VM ab. Bei Block1910 wird eine ausgewählte CLoS auf SLO-Einheiten abgebildet. Bei Block1912 werden die verfügbaren SNUs, SCUs und eine vorhergesagte QoS für jede Host-Rechenvorrichtung (z. B. Rechenschlitten1610 ) ausgewertet. Auf dieser Grundlage platziert der Orchestrator-Server1520 bei Block1914 die VM in die geeignete Host-Rechenvorrichtung. Bei Block1916 startet der Orchestrator-Server1520 die VM an der Host-Rechen-Vorrichtung. Das Ergebnis der Vorhersage durch den QoS-Agenten wird an den Abhilfe-Agenten gesendet. Bei Block1918 erzeugt der Orchestrator-Server1520 einen oder mehrere Scores, die der Performance der in der Host-Rechenvorrichtung gestarteten VM zugeordnet sind. - Bei Block
1920 kann der SLO-Agent bestimmen, ob die Performance der VM das geforderte SLO erfüllt. Dafür berechnet der SLO-Agent von einer Performance-Überwachungseinrichtung empfangene Metriken. Der SLO-Agent kann die Ergebnisse an den Abhilfe-Agenten senden. Der Abhilfe-Agent kann die VM kennzeichnen, wenn die VM Ressourcen anderer VMs verbraucht. Wenn das SLO nicht erfüllt ist, kann der Abhilfe-Agent bei Block1922 eine Abhilfe-Handlung erzeugen. Die SCU- und SNU-Agenten können die Abhilfe-Handlungen empfangen und entsprechend ausführen. Die QoE-Überwachungseinrichtung wird auf periodischer Basis (z. B. alle zwei Sekunden) über QoS-Werte pro VNF benachrichtigt. - Ein beispielhafter Anwendungsfall für ein Managen der Service-Sicherstellung in einer Kunden-NFV-Umgebung wird nun beschrieben. Eine Quality Solution Stack- (QSS) Überwachungseinrichtung an dem Orchestrator Server
1520 kann Module zum Definieren einer QoE und Prozessvorlagen umfassen. Die QSS-Überwachungseinrichtung kann auch einen Mapping-Prozessor zum Abbilden von QoE auf SLO-Anforderungen und ein Modul zur Definition von SLOs umfassen. Die QSS-Überwachungseinrichtung kann auch ein Kapazitätsplaner-Modul umfassen, das eine Schnittstelle mit QSS-Agenten an jedem Host bildet. Ein durch die QSS-Überwachungseinrichtung bereitgestelltes Analytikmodul kann auch spezialisierte Metriken auswerten. Die QSS-Überwachungseinrichtung stellt auch einen Kapazitätsrechner zur Schätzung der Kapazität auf Clusterebene bereit. Ein QSS-Agent umfasst einen Kapazitätsrechner auf der Host-Ebene. Der QSS-Agent überwacht auch Telemetrie und QoE auf einer Pro-VNF-Ebene. Der QSS-Agent setzt auch die SLO-Anforderungen durch. Zum Beispiel umfasst der QSS-Agent die SCU- und SNU-Agenten und die zuvor beschriebenen Abhilfe-Agenten. Die SCU- und SNU-Agenten können Rechen-/Netzwerkressourcen allokieren und anpassen. Der Abhilfe-Agent kann eine Richtlinie basierend auf dem Ausgang der SCU- und SNU-Agenten durchsetzen. Ferner kann eine virtualisierte Infrastrukturmanager- (VIM) Schicht Filter und Gewichte für einen Zeitplaner basierend auf durch die QSS-Überwachungseinrichtung berechneten Metriken umfassen. Die VIM-Schicht stellt auch Konfigurationen und Datenbanken für das System1510 bereit. - Eine beispielhafte Abbildung von QoE auf SLO auf QoS wird nun relativ zu der Anwendung QoE auf VMs beschrieben. Die QoS wird an jedem Steuerebenen-Aggregat basierend auf einem Infrastruktur-VM-Aggregat und einem Anwendungs-Berechnungs- und Daten-VM-Aggregat berechnet. Diese Werte werden auf eine Anwendungs-QoE abgebildet. Überwachung und Abhilfe werden bei jedem Aggregat ausgeführt. Das QoE-Management kann auch über DPDK-Steuerungen und HW-Performance-Haken geleitet werden.
- Im Hinblick auf die Hardware können Ausführungsbeispiele basierend auf einem Software- und Hardware-Co-Entwurfs-Management und Orchestrierungs-Ansatz angepasst werden. Dies erlaubt niedrigere Gesamtbetriebskosten (TCO; total cost of ownership) aufgrund eines geringeren Betrags an Software-Management-Mehraufwand, verbesserter Antwortzeiten durch die Möglichkeit, Daten auf beschleunigte Weise zu verarbeiten, und Multi-Anwender-Unterstützung.
- Bei einigen Ausführungsbeispielen kann die QoS als eine Funktion von Verzögerung, Jitter, Latenz und Bandbreite definiert werden, und die QoE kann als eine Funktion der QoS definiert werden. QoE-Parameter können die Round-Trip-Zeit (RTT; round trip time) und die mittlere Beurteilungsnote (MOS; mean opinion score) auf Benutzerebene umfassen. Zum Beispiel für die RTT von 10.000 UDP-Paketen, die über ein Netzwerk gesendet werden, wobei PING als der Durchschnitt aller RTTs definiert ist und JITTER als das 99,9%-Quantil aller RTTs minus dem Minimum ist, kann RTT ausgedrückt werden als: Jitter = 99% of
- Es besteht die Möglichkeit, dass eine Netzwerklast einer VNF den Durchsatz anderer VNF (auf einem gleichen Host oder Rechenschlitten) auf derselben Anwender-Schnittstelle drosselt. Um solche Szenarien zu handhaben und eine Mindestbandbreite der VNFs sicherzustellen, kann der Bandbreitenanteil, den jede VNF in einem Host empfängt, auf der Anwender-Schnittstelle gesteuert werden. Dieser Steuerparameter kann unter Verwendung von SNU als Teil des SLO eingestellt werden. Jede SNU kann als ein niedrigster akzeptabler Durchsatz definiert werden (z. B. 1 SNU = 100 kbps).
- Im Folgenden wird eine beispielhafte SLO-Definition bereitgestellt:
'slo': { 'slo_definition': { 'slos': [ { 'SCU:'GIPS', // } { 'value': [‚100:200: 400: 500‘], 'type': ‚SNU‘, 'id': 29, 'Description': ‚service network unit‘ } } ] }
Im Folgenden wird eine beispielhafte QoE-Vorlage-Definition bereitgestellt:
QOE_CLOS:{ 'HICritical': { 'RTT': { 'value': [10,20] 'units': ‚ms‘ } } 'MedCritical': { 'RTT': { 'value': [21,30] 'units': ‚ms‘ } } 'MinCritical': { 'RTT': { 'value': [40,50] 'units': ‚ms‘ } } }
In dem Obigen hat der Tag „value“ der SNU das folgende Format: ‚value‘: [Min. garantierte Downlink-SNU: Max. Downlink-SNU: Min. garantierte Uplink-SNU: Max. Uplink-SNU].
Das Folgende ist ein Beispielalgorithmus für eine QoE-Klassen-Abbildung auf SLP-Parameter:
- Wenn QOE_CLOS „HiCrtical“ ist
- Weise 2 bis 4 SCUs zu
- Weise 400-500 SNUs zu
Wenn RTT > Maximalwert an der QOE-Überwachungseinrichtung, sende eine Warnung an den SLO-Agenten.
Am Host, prüfe IPC und Cache-Metriken von dem Performance-Überwachungs-Agenten, um VNF als berechnungsstark zu kategorisieren.
Wenn wahr, wird SLO-Agent benachrichtigt, der die SCU erhöht, was zu mehr CPU-Zyklen führt. Wenn die Cache-Fehlschläge hoch sind, allokiere Cache in BDX-Systemen
Wenn nicht berechnungsstark, prüfe IO trans-Zähler und RX-TX > 90% der SNU kategorisiere als netzwerkstark.
Wenn wahr, erhöht SLO-Agent SNUs.
Verwende libvirt, um Ports zu VMs hinzuzufügen.
Wenn wahr, erhöht SLO-Agent SNUs.
Verwende libvirt, um Ports zu VMs hinzuzufügen.
Überwache RTT und Jitter an der QOE-Überwachungseinrichtung und richte Verhältnisse ein
Wenn Schwellen, z. B. VM1, überschritten werden:
- Berechne den benötigten Latenz-Durchsatz.
Wende eine proportionale Drosselung durch DPDK-vhost-Austritts-Policer und Eintritts-Policer an.
Gewichtete Drosselung von VMs basierend auf den folgenden Verhältnissen. (TBD) Verhältnis von SLO zu QOE erreicht
Wenn mehr als 10% der VMs leiden, Migrieren.
Allokieren dynamischer pNIC PF in RSD-Umgebungen
Lastausgleich durch Hinzufügen von pmd-Threads für die Buchse, die die am stärksten leidenden VMs hostet.
Vorteilhafterweise erhalten VNFs, die in demselben oder einem unterschiedlichen Host gestartet werden, abhängig von der definierten SNU die gleichen Bandbreitenbegrenzungen. In einem bestimmten Host sollte die Summe der Mindestbandbreite, die für alle VNFs in einer bestimmten Anwender-Schnittstelle festgelegt ist, nicht über den tatsächlich durch diese Schnittstelle erreichten Durchsatz hinausgehen. Die Summe der festgelegten maximalen Bandbreite kann jedoch mehr als der tatsächliche Durchsatz der Anwender-Schnittstelle sein. Der festgelegte minimale und maximale Durchsatz kann nicht über den tatsächlichen Durchsatz der Anwender-Schnittstelle hinausgehen. Eine bestimmte VNF mit einer SNU weist die garantierte Mindestbandbreite auf und kann bis zu dem maximalen Durchsatz nutzen, vorausgesetzt, die SNU wird nicht durch andere VNFs in dem gleichen Host auf dieser Anwender-Schnittstelle verwendet.
Bei einigen Ausführungsbeispielen gibt jeder Host oder Rechenschlitten verfügbare SNUs pro Anwender-Schnittstellen periodisch an einen Service-Sicherstellungs-Manager bekannt. Das System 1600 kann die Steuerung aller Hosts zentralisieren und bei der Zeitplanung der VNFs helfen. Die Netzwerkmetriken jeder der VMs in dem Host werden auch als Graphen zur Überwachung angezeigt. Durch Verwenden einer DPDK-Bibliothek kann die VNF-Netzwerk-Durchsatz-Performance erhöht und die Latenz kann minimiert werden. Ferner werden Netzwerktreiber und Weiterleitungs-Threads in den Benutzerraum bewegt, was zu einer erhöhten Performance führt. Die physischen Ports (eth0), die an Anwender-Brücken angebracht sind, werden durch den Poll Mode Driver belegt, was dazu führt, dass der Kernel die Steuerung über die Ports verliert. Die an die Integrationsbrücken angebrachten VNF-Schnittstellen (vnet) sind vom Typ dpdkhostuser. Die Performance der VNFs wird weiter verbessert, indem die Anzahl der Weiterleitungs-Threads erhöht und IG-große Seiten der VM allokiert werden. Die Performance kann auch verbessert werden, indem die Weiterleitungs-Threads CPU-Kernen zugewiesen werden, die von der Betriebssystem-Zeitplanung isoliert sind. Die Performance kann auch in einem NUMA- (Non-Uniform Memory Access) bewussten System verbessert werden, indem die Weiterleitungs-Threads, die die physischen Ports bedienen, den CPU-Kernen an der Buchse allokiert werden, an der die physischen Ports positioniert sind. Die Performance kann auch dadurch verbessert werden, dass der sendende und der empfangende Thread der gleichen Buchse zugewiesen werden, an der der Weiterleitungs-Thread geplant ist.
Bei einigen Ausführungsbeispielen werden Ports durch DPDK gemanagt. In einem solchen Fall können die QoS und Ratenbegrenzungssteuerungen üblicherweise nicht angewendet werden. Open-Source-Lösungen können jedoch Ansätze für die Durchführung der Eintritt- und Austritt-Durchsatz-Steuerung bereitstellen. Darüber hinaus kann der Eintritts- und Austritts-Netzwerk-Durchsatz durch Anwenden der Eintritts- (ingress policing rates) und Austritts-Überwachungsraten (egress policing rates) auf die mit der Integrationsbrücke verbundenen vhost-Ports gesteuert werden, indem die Parameter ingress_policing_rate und egress_policing_rate des Ports an der Integrationsbrücke gesetzt werden. Durch Verwenden dieses Verfahrens kann jedoch die maximale Bandbreite der VNF eingestellt werden. In einem solchen Fall sind die SNU-Minimal- und Maximalwerte die gleichen, und es wird keine Überzeichnung implementiert. Anwendungen, die keine Änderung der QoS erfordern, werden auf solchen Systemen geplant (z. B. missionskritische Videoanwendungen).
Ferner können, wie vorangehend beschrieben, Ausführungsbeispiele an einen Software- und Hardware-Co-Entwurf angepasst werden. Beispielsweise kann eine Hardware-Offload-Architektur eine Schnittstellen- und Management-Logik, einen Plattform-Telemetrie-Verteiler, einen Rückrufmanager und eine Geistiges-Eigentum- (IP; intellectual property) Vorhersage- und Telemetriebeschleunigungsfunktion umfassen. Die Schnittstellen- und Management-Logik ist zu Softwarestapel- (z. B. des Systems 1600 ) Schnittstellen freigelegt, die es einem bestimmten Anwender, der eine Instanz von QoE ausführt, ermöglichen, Bitströme für die oben beschriebenen zwei Agenten und zwei Prädiktorkomponenten sowie einen Bitstrom für einen Agenten, der für die Verarbeitung der durch den Telemetrieverteiler gesendeten Telemetrie verantwortlich ist, zu instanziieren.
Der Plattform-Telemetrieverteiler ist ausgebildet, um entsprechende Performance-Zähler zu sammeln, die durch die Plattform-konvergierte Telemetriearchitektur, die jedem der Anwender zugeordnet ist, freigelegt werden, und die Zähler automatisch an den Bitstrom zur Verarbeitung der Telemetrie zu liefern. Der Bitstrom kann (z. B. gleichzeitig) die verarbeiteten Daten an die unterschiedlichen Bitstrom-Prädiktoren weitergeben. Wenn ein bestimmter QoEbeschleunigter Bitstrom über die Schnittstelle und die Management-Logik registriert wird, kann ein Anwender spezifizieren, welche Telemetriedaten der Prädiktor und die Telemetrieprozessoren verwenden.
Der Rückruf-Manager legt Schnittstellen für die Bitströme frei, um Rückrufe an die entsprechenden Software-Entitäten (z. B. die verschiedenen QoE-Manager, CPU, Netzwerk usw.) zu senden. Die IP-Vorhersage und Telemetrie-Beschleunigungs-Funktions-IP-Bibliothek legt einen Satz von Funktionen frei, die durch die Bitströme verwendet werden können. Die Bibliothek stellt auch zugriffsbeschleunigte Funktionen bereit, die durch proprietäre Bitstromlogik freigelegt werden. Ferner kann der Softwarestapel vor dem Registrieren von Benutzer-Bitströmen prüfen, welche Funktionen durch eine gegebene IP über einen CPUID-Mechanismus freigelegt werden.
BEISPIELE
Nachfolgend sind darstellende Beispiele der hierin offenbarten Technologien bereitgestellt. Ein Ausführungsbeispiel der Technologien kann irgendeine einzelne oder mehrere und irgendeine Kombination der nachfolgend beschriebenen Beispiele umfassen.
Beispiel 1 umfasst einen Orchestrator-Server zum Managen der Service-Sicherstellung einer Plattform, der Orchestrator-Server umfassend einen oder mehrere Prozessoren; und einen Speicher, der eine Mehrzahl von Anweisungen speichert, die, wenn sie auf dem einen oder den mehreren Prozessoren ausgeführt werden, den Orchestrator-Server veranlassen zum Empfangen einer Aufforderung, eine Virtuelle-Maschine- (VM) Instanz zu starten, wobei die Aufforderung eine Auswahl einer Serviceklasse (CLoS) einer Erfahrungsqualitäts- (QoS) Spezifikation spezifiziert; Abbilden der gewählten CLoS auf eine oder mehrere Service-Level-Ziel- (SLO) Einheiten, wobei die eine oder die mehreren SLO-Einheiten eine Rechenfähigkeit und eine erforderliche Netzwerk-Bandbreite, spezifiziert in einem Service Level Agreement (SLA), anzeigen; Starten der VM auf einer Rechenvorrichtung einer Mehrzahl von Rechenvorrichtungen, identifiziert als eine Funktion der abgebildeten SLO-Einheiten; Erzeugen eines oder mehrerer Scores, die einer Performance der VM zugeordnet sind; und Bestimmen, als eine Funktion des einen oder der mehreren erzeugten Scores, ob die Performance der VM auf der Rechenvorrichtung jede der einen oder mehreren SLO-Einheiten zufriedenstellt.
Beispiel 2 umfasst den Gegenstand von Beispiel 1, und wobei die Mehrzahl von Anweisungen ferner verursacht, dass der Orchestrator-Server in der Plattform eine Mehrzahl von verfügbaren Service-Rechen-Einheiten und eine Mehrzahl von verfügbaren Service-Netzwerk-Einheiten bestimmt.
Beispiel 3 umfasst den Gegenstand von einem der Beispiele 1 und 2, und wobei ein Bestimmen der Mehrzahl von verfügbaren Service-Rechen-Einheiten und der Mehrzahl von verfügbaren Service-Netzwerk-Einheiten ein Bestimmen der Mehrzahl von verfügbaren Service-Rechen-Einheiten und der Mehrzahl von verfügbaren Service-Netzwerk-Einheiten als eine Funktion von gesammelten Rechen- und Netzwerk-Metriken von Agent-Anwendungen, die auf Rechenvorrichtungen in der Plattform ausführen, umfasst.
Beispiel 4 umfasst den Gegenstand von einem der Beispiele 1-3, und wobei ein Identifizieren der Rechenvorrichtung als eine Funktion der abgebildeten SLO-Einheiten ein Auswerten der Mehrzahl von verfügbaren Service-Rechen-Einheiten, der Mehrzahl von verfügbaren Service-Netzwerk-Einheiten und einer vorhergesagten Service-Qualität (QoS) jeder der Mehrzahl von Rechenvorrichtungen umfasst.
Beispiel 5 umfasst den Gegenstand von einem der Beispiele 1-4, und wobei die Mehrzahl von Anweisungen ferner verursacht, dass der Orchestrator-Server die VM in der identifizierten Rechenvorrichtung platziert.
Beispiel 6 umfasst den Gegenstand von einem der Beispiele 1-5, und wobei die Mehrzahl von Anweisungen ferner verursacht, dass der Orchestrator-Server, bei einer Bestimmung, dass zumindest eine der SLO-Einheiten nicht zufriedengestellt ist, eine Abhilfehandlung zum Ausführen erzeugt.
Beispiel 7 umfasst den Gegenstand von einem der Beispiele 1-6, und wobei die Mehrzahl von Anweisungen ferner verursacht, dass der Orchestrator-Server verursacht, dass die identifizierte Rechenvorrichtung die Abhilfehandlung ausführt.
Beispiel 8 umfasst ein Verfahren zum Managen der Service-Sicherstellung einer Plattform, umfassend ein Empfangen, durch einen Orchestrator-Server, einer Aufforderung, eine Virtuelle-Maschine- (VM) Instanz zu starten, wobei die Aufforderung eine Auswahl einer Serviceklasse (CLoS) einer Erfahrungsqualitäts- (QoS) Spezifikation spezifiziert; Abbilden, durch den Orchestrator-Server, der gewählten CLoS auf eine oder mehrere Service-Level-Ziel-(SLO) Einheiten, wobei die eine oder die mehreren SLO-Einheiten eine Rechenfähigkeit und eine erforderliche Netzwerk-Bandbreite, spezifiziert in einem Service Level Agreement (SLA), anzeigen; Starten, durch den Orchestrator-Server, der VM auf einer Rechenvorrichtung einer Mehrzahl von Rechenvorrichtungen, identifiziert als eine Funktion der abgebildeten SLO-Einheiten; Erzeugen, durch den Orchestrator-Server, eines oder mehrerer Scores, die einer Performance der VM zugeordnet sind; und Bestimmen, durch den Orchestrator-Server, als eine Funktion des einen oder der mehreren erzeugten Scores, ob die Performance der VM auf der Rechenvorrichtung jede der einen oder mehreren SLO-Einheiten zufriedenstellt.
Beispiel 9 umfasst den Gegenstand von Beispiel 8, und ferner umfassend ein Bestimmen, in der Plattform und durch den Orchestrator-Server, einer Mehrzahl von verfügbaren Service-Rechen-Einheiten und einer Mehrzahl von verfügbaren Service-Netzwerk-Einheiten.
Beispiel 10 umfasst den Gegenstand von einem der Beispiele 8 und 9, und wobei ein Bestimmen der Mehrzahl von verfügbaren Service-Rechen-Einheiten und der Mehrzahl von verfügbaren Service-Netzwerk-Einheiten ein Bestimmen, durch den Orchestrator-Server, der Mehrzahl von verfügbaren Service-Rechen-Einheiten und der Mehrzahl von verfügbaren Service-Netzwerk-Einheiten als eine Funktion von gesammelten Rechen- und Netzwerk-Metriken von Agent-Anwendungen, die auf Rechenvorrichtungen in der Plattform ausführen, umfasst.
Beispiel 11 umfasst den Gegenstand von einem der Beispiele 8-10, und wobei ein Identifizieren der Rechenvorrichtung als eine Funktion der abgebildeten SLO-Einheiten ein Auswerten, durch den Orchestrator-Server, der Mehrzahl von verfügbaren Service-Rechen-Einheiten, der Mehrzahl von verfügbaren Service-Netzwerk-Einheiten und einer vorhergesagten Service-Qualität (QoS) jeder der Mehrzahl von Rechenvorrichtungen umfasst.
Beispiel 12 umfasst den Gegenstand von einem der Beispiele 8-11, und ferner umfassend ein Platzieren, durch den Orchestrator-Server, der VM in der identifizierten Rechenvorrichtung.
Beispiel 13 umfasst den Gegenstand von einem der Beispiele 8-12, und ferner umfassend, beim Bestimmen, durch den Orchestrator-Server, dass zumindest eine der SLO-Einheiten nicht zufriedengestellt ist, ein Erzeugen einer auszuführenden Abhilfehandlung.
Beispiel 14 umfasst den Gegenstand von einem der Beispiele 8-13, und ferner umfassend ein Veranlassen, durch den Orchestrator-Server, der identifizierten Rechenvorrichtung, die Abhilfehandlung auszuführen.
Beispiel 15 umfasst einen Orchestrator-Server zum Managen der Service-Sicherstellung einer Plattform, umfassend eine Schaltungsanordnung zum Empfangen einer Aufforderung, eine Virtuelle-Maschine- (VM) Instanz zu starten, wobei die Aufforderung eine Auswahl einer Serviceklasse (CLoS) einer Erfahrungsqualitäts- (QoS) Spezifikation spezifiziert; Mittel zum Abbilden der gewählten CLoS auf eine oder mehrere Service-Level-Ziel- (SLO) Einheiten, wobei die eine oder die mehreren SLO-Einheiten eine Rechenfähigkeit und eine erforderliche Netzwerk-Bandbreite, spezifiziert in einem Service Level Agreement (SLA), anzeigen; eine Schaltungsanordnung zum Starten der VM auf einer Rechenvorrichtung einer Mehrzahl von Rechenvorrichtungen, identifiziert als eine Funktion der abgebildeten SLO-Einheiten; Mittel zum Erzeugen eines oder mehrerer Scores, die einer Performance der VM zugeordnet sind; und Mittel zum Bestimmen, als eine Funktion des einen oder der mehreren erzeugten Scores, ob die Performance der VM auf der Rechenvorrichtung jede der einen oder mehreren SLO-Einheiten zufriedenstellt.
Beispiel 16 umfasst den Gegenstand von Beispiel 15, und ferner umfassend Mittel zum Bestimmen, in der Plattform, einer Mehrzahl von verfügbaren Service-Rechen-Einheiten und einer Mehrzahl von verfügbaren Service-Netzwerk-Einheiten.
Beispiel 17 umfasst den Gegenstand von einem der Beispiele 15 und 16, und wobei die Mittel zum Bestimmen der Mehrzahl von verfügbaren Service-Rechen-Einheiten und der Mehrzahl von verfügbaren Service-Netzwerk-Einheiten Mittel zum Bestimmen der Mehrzahl von verfügbaren Service-Rechen-Einheiten und der Mehrzahl von verfügbaren Service-Netzwerk-Einheiten als eine Funktion von gesammelten Rechen- und Netzwerk-Metriken von Agent-Anwendungen, die auf Rechenvorrichtungen in der Plattform ausführen, umfassen.
Beispiel 18 umfasst den Gegenstand von einem der Beispiele 15-17, und ferner umfassend Mittel zum Auswerten der Mehrzahl von verfügbaren Service-Rechen-Einheiten, der Mehrzahl von verfügbaren Service-Netzwerk-Einheiten und einer vorhergesagten Service-Qualität (QoS) jeder der Mehrzahl von Rechenvorrichtungen, um die Rechenvorrichtung als eine Funktion der abgebildeten SLO-Einheiten zu identifizieren.
Beispiel 19 umfasst den Gegenstand von einem der Beispiele 15-18, und ferner umfassend eine Schaltungsanordnung zum Platzieren der VM in der identifizierten Rechenvorrichtung.
Beispiel 20 umfasst den Gegenstand von einem der Beispiele 15-19, und ferner umfassend Mittel zum Erzeugen einer Abhilfehandlung, auszuführen bei der Bestimmung, dass zumindest eine der SLO-Einheiten nicht zufriedengestellt ist; und Mittel zum Veranlassen der identifizierten Rechenvorrichtung zum Ausführen der Abhilfehandlung.
Beispiel 21 umfasst eines oder mehrere maschinenlesbare Speicherungsmedien, umfassend eine Mehrzahl darauf gespeicherter Befehle, die ansprechend darauf, dass sie ausgeführt werden, verursachen, dass ein Orchestrator-Server das Verfahren von einem der Beispiele 8-14 ausführt.
Beispiel 22 umfasst einen Orchestrator-Server, umfassend eine Schaltungsanordnung zum Ausführen des Verfahrens von einem der Beispiele 8-14.
Claims (20)
- Ein Orchestrator-Server zum Managen der Service-Sicherstellung einer Plattform, der Orchestrator-Server umfassend: einen oder mehrere Prozessoren; und einen Speicher, der eine Mehrzahl von Anweisungen speichert, die, wenn sie auf einem oder mehreren Prozessoren ausgeführt werden, den Orchestrator-Server veranlassen zum: Empfangen einer Aufforderung, eine Virtuelle-Maschine- (VM) Instanz zu starten, wobei die Aufforderung eine Auswahl einer Serviceklasse (CLoS) einer Erfahrungsqualitäts- (QoS) Spezifikation spezifiziert; Abbilden der gewählten CLoS auf eine oder mehrere Service-Level-Ziel- (SLO) Einheiten, wobei die eine oder die mehreren SLO-Einheiten eine Rechenfähigkeit und eine erforderliche Netzwerk-Bandbreite, spezifiziert in einem Service Level Agreement (SLA), anzeigen; Starten der VM auf einer Rechenvorrichtung einer Mehrzahl von Rechenvorrichtungen, identifiziert als eine Funktion der abgebildeten SLO-Einheiten; Erzeugen eines oder mehrerer Scores, die einer Performance der VM zugeordnet sind; und Bestimmen, als eine Funktion des einen oder der mehreren erzeugten Scores, ob die Performance der VM auf der Rechenvorrichtung jede der einen oder mehreren SLO-Einheiten zufriedenstellt.
- Der Orchestrator-Server gemäß
Anspruch 1 , wobei die Mehrzahl von Anweisungen ferner verursacht, dass der Orchestrator-Server in der Plattform eine Mehrzahl von verfügbaren Service-Rechen-Einheiten und eine Mehrzahl von verfügbaren Service-Netzwerk-Einheiten bestimmt. - Der Orchestrator-Server gemäß
Anspruch 2 , wobei ein Bestimmen der Mehrzahl von verfügbaren Service-Rechen-Einheiten und der Mehrzahl von verfügbaren Service-Netzwerk-Einheiten ein Bestimmen der Mehrzahl von verfügbaren Service-Rechen-Einheiten und der Mehrzahl von verfügbaren Service-Netzwerk-Einheiten als eine Funktion von gesammelten Rechen- und Netzwerk-Metriken von Agent-Anwendungen, die auf Rechenvorrichtungen in der Plattform ausführen, umfasst. - Der Orchestrator-Server gemäß
Anspruch 3 , ein Identifizieren der Rechenvorrichtung als eine Funktion der abgebildeten SLO-Einheiten umfassend: Auswerten der Mehrzahl von verfügbaren Service-Rechen-Einheiten, der Mehrzahl von verfügbaren Service-Netzwerk-Einheiten und einer vorhergesagten Service-Qualität (QoS) jeder der Mehrzahl von Rechenvorrichtungen. - Der Orchestrator-Server gemäß
Anspruch 4 , wobei die Mehrzahl von Anweisungen ferner verursacht, dass der Orchestrator-Server die VM in der identifizierten Rechenvorrichtung platziert. - Der Orchestrator-Server gemäß
Anspruch 1 , wobei die Mehrzahl von Anweisungen ferner verursacht, dass der Orchestrator-Server, bei einer Bestimmung, dass zumindest eine der SLO-Einheiten nicht zufriedengestellt ist, eine Abhilfehandlung zum Ausführen erzeugt. - Der Orchestrator-Server gemäß
Anspruch 6 , wobei die Mehrzahl von Anweisungen ferner verursacht, dass der Orchestrator-Server verursacht, dass die identifizierte Rechenvorrichtung die Abhilfehandlung ausführt. - Ein Verfahren zum Managen der Service-Sicherstellung einer Plattform, umfassend: Empfangen, durch einen Orchestrator-Server, einer Aufforderung, eine Virtuelle-Maschine- (VM) Instanz zu starten, wobei die Aufforderung eine Auswahl einer Serviceklasse (CLoS) einer Erfahrungsqualitäts- (QoS) Spezifikation spezifiziert; Abbilden, durch den Orchestrator-Server, der gewählten CLoS auf eine oder mehrere Service-Level-Ziel- (SLO) Einheiten, wobei die eine oder die mehreren SLO-Einheiten eine Rechenfähigkeit und eine erforderliche Netzwerk-Bandbreite, spezifiziert in einem Service Level Agreement (SLA), anzeigen; Starten, durch den Orchestrator-Server, der VM auf einer Rechenvorrichtung einer Mehrzahl von Rechenvorrichtungen, identifiziert als eine Funktion der abgebildeten SLO-Einheiten; Erzeugen, durch den Orchestrator-Server, eines oder mehrerer Scores, die einer Performance der VM zugeordnet sind; und Bestimmen, durch den Orchestrator-Server, als eine Funktion des einen oder der mehreren erzeugten Scores, ob die Performance der VM auf der Rechenvorrichtung jede der einen oder mehreren SLO-Einheiten zufriedenstellt.
- Das Verfahren gemäß
Anspruch 8 , ferner umfassend ein Bestimmen, in der Plattform und durch den Orchestrator-Server, einer Mehrzahl von verfügbaren Service-Rechen-Einheiten und einer Mehrzahl von verfügbaren Service-Netzwerk-Einheiten. - Das Verfahren gemäß
Anspruch 9 , wobei ein Bestimmen der Mehrzahl von verfügbaren Service-Rechen-Einheiten und der Mehrzahl von verfügbaren Service-Netzwerk-Einheiten ein Bestimmen, durch den Orchestrator-Server, der Mehrzahl von verfügbaren Service-Rechen-Einheiten und der Mehrzahl von verfügbaren Service-Netzwerk-Einheiten als eine Funktion von gesammelten Rechen- und Netzwerk-Metriken von Agent-Anwendungen, die auf Rechenvorrichtungen in der Plattform ausführen, umfasst. - Das Verfahren gemäß
Anspruch 10 , wobei ein Identifizieren der Rechenvorrichtung als eine Funktion der abgebildeten SLO-Einheiten ein Auswerten, durch den Orchestrator-Server, der Mehrzahl von verfügbaren Service-Rechen-Einheiten, der Mehrzahl von verfügbaren Service-Netzwerk-Einheiten und einer vorhergesagten Service-Qualität (QoS) jeder der Mehrzahl von Rechenvorrichtungen umfasst. - Das Verfahren gemäß
Anspruch 11 , ferner umfassend ein Platzieren, durch den Orchestrator-Server, der VM in der identifizierten Rechenvorrichtung. - Das Verfahren gemäß
Anspruch 8 , ferner umfassend, beim Bestimmen durch den Orchestrator-Server, dass zumindest eine der SLO-Einheiten nicht zufriedengestellt ist, ein Erzeugen einer auszuführenden Abhilfehandlung. - Das Verfahren gemäß
Anspruch 13 , ferner umfassend ein Veranlassen, durch den Orchestrator-Server, der identifizierten Rechenvorrichtung, die Abhilfehandlung auszuführen. - Ein Orchestrator-Server zum Managen der Service-Sicherstellung einer Plattform, umfassend: eine Schaltungsanordnung zum Empfangen einer Aufforderung, eine Virtuelle-Maschine-(VM) Instanz zu starten, wobei die Aufforderung eine Auswahl einer Serviceklasse (CLoS) einer Erfahrungsqualitäts- (QoS) Spezifikation spezifiziert; Mittel zum Abbilden der gewählten CLoS auf eine oder mehrere Service-Level-Ziel-(SLO) Einheiten, wobei die eine oder die mehreren SLO-Einheiten eine Rechenfähigkeit und eine erforderliche Netzwerk-Bandbreite, spezifiziert in einem Service Level Agreement (SLA), anzeigen; eine Schaltungsanordnung zum Starten der VM auf einer Rechenvorrichtung einer Mehrzahl von Rechenvorrichtungen, identifiziert als eine Funktion der abgebildeten SLO-Einheiten; Mittel zum Erzeugen eines oder mehrerer Scores, die einer Performance der VM zugeordnet sind; und Mittel zum Bestimmen, als eine Funktion des einen oder der mehreren erzeugten Scores, ob die Performance der VM auf der Rechenvorrichtung jede der einen oder mehreren SLO-Einheiten zufriedenstellt.
- Der Orchestrator-Server gemäß
Anspruch 15 , ferner umfassend Mittel zum Bestimmen, in der Plattform, einer Mehrzahl von verfügbaren Service-Rechen-Einheiten und einer Mehrzahl von verfügbaren Service-Netzwerk-Einheiten. - Der Orchestrator-Server gemäß
Anspruch 16 , wobei die Mittel zum Bestimmen der Mehrzahl von verfügbaren Service-Rechen-Einheiten und der Mehrzahl von verfügbaren Service-Netzwerk-Einheiten Mittel zum Bestimmen der Mehrzahl von verfügbaren Service-Rechen-Einheiten und der Mehrzahl von verfügbaren Service-Netzwerk-Einheiten als eine Funktion von gesammelten Rechen- und Netzwerk-Metriken von Agent-Anwendungen, die auf Rechenvorrichtungen in der Plattform ausführen, umfasst. - Der Orchestrator-Server gemäß
Anspruch 17 , ferner umfassend Mittel zum Auswerten der Mehrzahl von verfügbaren Service-Rechen-Einheiten, der Mehrzahl von verfügbaren Service-Netzwerk-Einheiten und einer vorhergesagten Service-Qualität (QoS) jeder der Mehrzahl von Rechenvorrichtungen, um die Rechenvorrichtung als eine Funktion der abgebildeten SLO-Einheiten zu identifizieren. - Der Orchestrator-Server gemäß
Anspruch 18 , ferner umfassend eine Schaltungsanordnung zum Platzieren der VM in der identifizierten Rechenvorrichtung. - Der Orchestrator-Server gemäß
Anspruch 15 , ferner umfassend: Mittel zum Erzeugen einer Abhilfehandlung, auszuführen bei der Bestimmung, dass zumindest eine der SLO-Einheiten nicht zufriedengestellt ist, und Mittel zum Veranlassen der identifizierten Rechenvorrichtung zum Ausführen der Abhilfehandlung.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862633397P | 2018-02-21 | 2018-02-21 | |
US62/633,397 | 2018-02-21 | ||
PCT/US2019/019008 WO2019165110A1 (en) | 2018-02-21 | 2019-02-21 | Technologies for achieving network quality of assurance with hardware acceleration |
Publications (1)
Publication Number | Publication Date |
---|---|
DE112019000910T5 true DE112019000910T5 (de) | 2021-03-18 |
Family
ID=67687946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE112019000910.9T Pending DE112019000910T5 (de) | 2018-02-21 | 2019-02-21 | Technologien zum erreichen einer netzwerk-qualitätssicherung mit hardwarebeschleunigung |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN111492348A (de) |
DE (1) | DE112019000910T5 (de) |
WO (1) | WO2019165110A1 (de) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114629805B (zh) * | 2020-11-27 | 2023-07-21 | 中国移动通信有限公司研究院 | Sla策略的处理方法、装置、服务器及服务节点 |
WO2022133690A1 (en) * | 2020-12-21 | 2022-06-30 | Intel Corporation | Efficient resource allocation for service level compliance |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8732310B2 (en) * | 2010-04-22 | 2014-05-20 | International Business Machines Corporation | Policy-driven capacity management in resource provisioning environments |
CN104246739A (zh) * | 2012-04-27 | 2014-12-24 | 惠普发展公司,有限责任合伙企业 | 面向数据中心服务的联网 |
US9183031B2 (en) * | 2012-06-19 | 2015-11-10 | Bank Of America Corporation | Provisioning of a virtual machine by using a secured zone of a cloud environment |
US9998531B2 (en) * | 2013-09-18 | 2018-06-12 | International Business Machines Corporation | Computer-based, balanced provisioning and optimization of data transfer resources for products and services |
US10721137B2 (en) * | 2016-06-30 | 2020-07-21 | Intel Corporation | Performance assurance using workload phase detection |
-
2019
- 2019-02-21 DE DE112019000910.9T patent/DE112019000910T5/de active Pending
- 2019-02-21 CN CN201980006775.0A patent/CN111492348A/zh active Pending
- 2019-02-21 WO PCT/US2019/019008 patent/WO2019165110A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
CN111492348A (zh) | 2020-08-04 |
WO2019165110A1 (en) | 2019-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE112018004798T5 (de) | Technologien für ein bereitstellen von effizientem speicherzugriff auf einem beschleunigerschlitten | |
DE102020118494A1 (de) | Technologien zur behandlung einer latenzbasierten dienstebenenvereinbarung in fern-direktspeicherzugriffsnetzen | |
US11888967B2 (en) | Technologies for dynamic accelerator selection | |
DE102020125046A1 (de) | Konfigurationsschnittstelle zum auslagern von fähigkeiten an eine netzwerkschnittstelle | |
DE102020118307A1 (de) | Proaktiver daten-vorabruf mit angewandter quality-of-service | |
DE102018214775A1 (de) | Technologien zum Aufteilen der Arbeit über Beschleunigervorrichtungen hinweg | |
DE102014117462A1 (de) | Poolen von Speicherressourcen über mehrere Knoten hinweg | |
DE102020201834A1 (de) | Technologien für netzvorrichtungslastausgleichseinrichtungen für beschleunigte funktionen-als-dienst | |
DE112017003710T5 (de) | Verfahren zum Konfigurieren physischer Rechenressourcen für Arbeitslasten per Leitungsvermittlung verwandte Fälle | |
DE102020132078A1 (de) | Ressourcenzuteilung basierend auf anwendbarem service level agreement | |
DE102022104207A1 (de) | Pooling von Netzwerkverarbeitungsressourcen | |
DE112017001762T5 (de) | Technologien für den einsatz dynamischer underlay-netzwerke in cloud-computing-infrastrukturen | |
DE112007001215B4 (de) | Vorhersage der Leistungsnutzung von Rechenplattformspeicher | |
DE102016100902A1 (de) | Verfahren zum dynamischen Zuteilen von Ressourcen von konfigurierbaren Datenverarbeitungsressourcen | |
DE102020113279A1 (de) | Technologien zum managen von burst-bandbreite | |
DE102020128959A1 (de) | Verfahren und vorrichtungen zur verwaltung des thermischen verhaltens in mehrchip-kapselungen | |
DE102020118312A1 (de) | Technologien zum verwalten von disaggregierten beschleunigernetzwerken basierend auf remote direct memory access | |
US20080270653A1 (en) | Intelligent resource management in multiprocessor computer systems | |
DE102020110582A1 (de) | TECHNOLOGIEN ZUR AUTOMATISCHEN ARBEITSLASTERKENNUNG UND CACHE-QoS-RICHTLINIENANWENDUNG | |
US20210326221A1 (en) | Network interface device management of service execution failover | |
US20200021492A1 (en) | Technologies for storage cluster rebuild service traffic management | |
DE102020201347A1 (de) | Technologien zum abgleichen von sicherheitsanforderungen von funktion-als-dienst in edge-clouds | |
DE102022124530A1 (de) | Speicherpoolmanagement | |
DE102020130555A1 (de) | Adaptiver datenversand basierend auf lastfunktionen | |
DE102020132767A1 (de) | Verwaltung der Dienstgüte (QoS) eines Speichersystems |