-
HINTERGRUND
-
Die Daten können auf Rechenknoten gespeichert werden, z. B. auf einem Server, einem Speicher-Array, einem Server-Cluster, einer Computeranwendung, einer Workstation, einem Speichersystem, einem konvergenten System, einem hyperkonvergenten System oder ähnlichem. Auf den Rechenknoten können Arbeitslasten gehostet werden, die die Daten während ihrer jeweiligen Operationen erzeugen oder verbrauchen können.
-
Figurenliste
-
Diese und andere Merkmale, Aspekte und Vorteile der vorliegenden Spezifikation werden besser verstanden, wenn die folgende detaillierte Beschreibung mit Bezug auf die beigefügten Zeichnungen gelesen wird, in denen gleiche Zeichen gleiche Teile in den Zeichnungen darstellen, wobei:
- 1 zeigt ein vernetztes System mit einer Vielzahl von Arbeitsknoten und einem Verwaltungsknoten zur Verwaltung der Bereitstellung einer Arbeitslast auf den Arbeitsknoten gemäß einem Beispiel;
- 2A, 2B und 2C zeigen beispielhafte Workload-Konfigurationsdateien gemäß einem Beispiel;
- 3 ist ein Flussdiagramm, das ein Verfahren zur Bereitstellung einer Arbeitslast in Übereinstimmung mit einem Beispiel darstellt;
- 4 ist ein Flussdiagramm, das ein Verfahren zur Bereitstellung einer Arbeitslast in Übereinstimmung mit einem anderen Beispiel darstellt; und
- 5 ist ein Blockdiagramm, das eine Verarbeitungsressource und ein maschinenlesbares Medium darstellt, das mit Beispielanweisungen zum Einsatz einer Arbeitslast gemäß einem Beispiel kodiert ist.
-
Es wird betont, dass die verschiedenen Merkmale in den Zeichnungen nicht maßstabsgetreu gezeichnet sind. Vielmehr sind die Abmessungen der verschiedenen Merkmale in den Zeichnungen willkürlich vergrößert oder verkleinert worden, um die Diskussion zu verdeutlichen.
-
DETAILLIERTE BESCHREIBUNG
-
Die folgende detaillierte Beschreibung bezieht sich auf die beigefügten Zeichnungen. Wo immer es möglich ist, werden in den Zeichnungen und in der folgenden Beschreibung gleiche Bezugsnummern verwendet, um auf gleiche oder ähnliche Teile zu verweisen. Es wird ausdrücklich darauf hingewiesen, dass die Zeichnungen nur der Veranschaulichung und Beschreibung dienen. Obwohl in diesem Dokument mehrere Beispiele beschrieben werden, sind Änderungen, Anpassungen und andere Ausführungen möglich. Dementsprechend schränkt die folgende detaillierte Beschreibung die offengelegten Beispiele nicht ein. Stattdessen kann der richtige Umfang der offengelegten Beispiele durch die beigefügten Ansprüche definiert werden.
-
Die hier verwendete Terminologie dient der Beschreibung bestimmter Beispiele und ist nicht als einschränkend zu verstehen. Die hier verwendeten Singularformen „ein“, „ein“ und „die“ schließen auch die Pluralformen ein, sofern aus dem Kontext nicht eindeutig etwas anderes hervorgeht. Der hier verwendete Begriff „ein anderer“ ist definiert als mindestens ein zweiter oder mehr. Der hier verwendete Begriff „gekoppelt“ ist definiert als verbunden, entweder direkt ohne dazwischenliegende Elemente oder indirekt mit mindestens einem dazwischenliegenden Element, sofern nicht anders angegeben. Beispielsweise können zwei Elemente mechanisch, elektrisch oder kommunikativ über einen Kommunikationskanal, -pfad, -netz oder -system miteinander verbunden sein. Darüber hinaus bezieht sich der Begriff „und/oder“, wie er hier verwendet wird, auf alle möglichen Kombinationen der aufgeführten Elemente und schließt diese ein. Obwohl die Begriffe „erstes“, „zweites“, „drittes“, „viertes“ usw. hier verwendet werden, um verschiedene Elemente zu beschreiben, sollten diese Elemente nicht durch diese Begriffe eingeschränkt werden, da diese Begriffe nur verwendet werden, um ein Element von einem anderen zu unterscheiden, es sei denn, es wird etwas anderes angegeben oder der Kontext zeigt etwas anderes an. Wie hierin verwendet, bedeutet der Begriff „beinhaltet“, dass er beinhaltet, aber nicht darauf beschränkt ist, der Begriff „einschließlich“ bedeutet, dass er beinhaltet, aber nicht darauf beschränkt ist. Der Begriff „basierend auf“ bedeutet zumindest teilweise basierend auf.
-
Daten können in Rechenknoten gespeichert und/oder verarbeitet werden, z. B. in einem Server, einem Speicherarray, einem Servercluster, einer Computeranwendung, einer Arbeitsstation, einem Speichersystem, einem konvergenten System, einem hyperkonvergenten System oder ähnlichem. Die Rechenknoten können Arbeitslasten hosten und ausführen, die während ihrer jeweiligen Operationen Daten erzeugen und/oder verbrauchen können. Beispiele für solche Arbeitslasten können unter anderem eine virtuelle Maschine, ein Container, ein Pod, eine Datenbank, ein Datenspeicher, eine logische Festplatte oder eine containerisierte Anwendung sein.
-
In einigen Beispielen können Arbeitslasten über ein Arbeitslast-Orchestrierungssystem verwaltet werden. So können beispielsweise Arbeitslasten wie Pods über ein Container-Orchestrierungssystem wie Kubernetes verwaltet werden. Das Workload-Orchestrierungssystem kann auf einem Computerknoten, im Folgenden als Managementknoten bezeichnet, betrieben werden. Der Managementknoten kann eine Anforderung zur Bereitstellung einer Arbeitslast empfangen und die Bereitstellung der Arbeitslast auf einem oder mehreren anderen Rechenknoten, im Folgenden als Arbeitsknoten bezeichnet, planen. In einigen Fällen kann der Managementknoten eine oder mehrere Replikate der Arbeitslasten auf mehreren Arbeitsknoten bereitstellen, um eine hohe Verfügbarkeit der Arbeitslasten zu ermöglichen. Die Arbeitsknoten können Ressourcen, z. B. Rechen-, Speicher- und/oder Netzwerkkapazitäten, für die Ausführung der Arbeitslasten bereitstellen.
-
Die Planung der Arbeitslasten kann so verwaltet werden, dass der Bedarf an einer schnellen Bereitstellung von Diensten im Cloud-Maßstab gedeckt wird, wobei Faktoren wie Agilität, einfache Anwendungs-Upgrades oder Rollbacks und Cloud-native Arbeitslasten zu berücksichtigen sind. Eine solche Planung der Arbeitslasten funktioniert oft gut in vernetzten Systemen (z. B. Kubernetes-Clustern), die Arbeitsknoten mit Standardhardware (z. B. x86-Standardverarbeitungsressourcen) umfassen. In bestimmten Implementierungen können die Arbeitsknoten in den vernetzten Systemen hochwertige Hardware enthalten. Aufgrund der zunehmenden Verbreitung von Containern in verschiedenen Unternehmen enthalten Worker-Knoten in modernen Kubernetes-Clustern beispielsweise hochwertige Hardware, um geschäftskritische Arbeitslasten auszuführen. Um eine maximale Kapitalrendite (ROI) und reduzierte oder niedrigste Gesamtbetriebskosten (TCO) zu erzielen, ist die Ausführung der Arbeitslasten auf der richtigen Hardware wünschenswert. Dies ist möglich, wenn die Workloads optimal platziert werden, d. h., die Workloads werden auf den Worker Nodes mit der richtigen Art von Hardware bereitgestellt. Workload-Orchestrierungssysteme wie Kubernetes unterstützen die manuelle Kennzeichnung von Worker-Knoten und die Planung von Workloads auf der Grundlage dieser manuell definierten Ressourcen-Kennzeichnungen. Dieser manuelle Prozess der Kennzeichnung der Arbeitsknoten erfordert administrative Eingriffe und ist arbeitsintensiv.
-
Bestimmte Versionen von Container-Orchestratoren oder - Plattformen wie Kubernetes können eine Funktion zur Erkennung von Knotenmerkmalen unterstützen (die als Add-in implementiert werden kann), die es den Arbeitsknoten ermöglicht, die Hardware- und Software-Fähigkeiten des Arbeitsknotens zu erkennen und zu melden/veröffentlichen. Die veröffentlichten Hardware- und Software-Fähigkeiten der Arbeitsknoten können wiederum von einem Planer verwendet werden, der auf dem Managementknoten (alternativ als Masterknoten bezeichnet) läuft, um die intelligente Planung von Arbeitslasten zu erleichtern. Das Add-in zur Erkennung von Knotenmerkmalen auf einem bestimmten Arbeitsknoten ermöglicht es dem betreffenden Arbeitsknoten, seine Hardware- und Softwarefähigkeiten in Form von Ressourcenbezeichnungen zu veröffentlichen. Traditionell sind die von den Arbeitsknoten veröffentlichten Ressourcenkennzeichnungen zu detailliert und liefern zu viele Informationen, die schwer zu analysieren sind und zu Planungsentscheidungen führen können. Die Verwendung der einzelnen Ressourcenkennzeichnungen oder sogar die Auswahl der richtigen Art von Ressourcenkennzeichnungen für Planungsentscheidungen war eine schwierige Aufgabe.
-
Zu diesem Zweck wird gemäß den Aspekten der vorliegenden Offenbarung ein Managementknoten vorgestellt, der eine verbesserte Planung von Arbeitslasten unter Berücksichtigung selbstbeschreibender Arbeitslasten und bestimmter benutzerdefinierter Ressourcenkennzeichnungen ermöglicht, die automatisch auf der Grundlage der den Arbeitsknoten zugeordneten Ressourcenkennzeichnungen bestimmt werden. In einigen Beispielen kann der Managementknoten Werte von Ressourcenkennzeichnungen erhalten, die sich auf Plattformmerkmale einer Vielzahl von Arbeitsknoten beziehen. Die Plattformeigenschaften können eine oder mehrere der folgenden Eigenschaften umfassen: thermische Stabilität, Speicher und Bandbreite, Rechenleistung oder Sicherheit. Ferner kann der Managementknoten Werte eines oder mehrerer benutzerdefinierter Ressourcenlabels für jeden der mehreren Arbeitsknoten bestimmen, wobei ein Wert jedes benutzerdefinierten Ressourcenlabels des einen oder der mehreren benutzerdefinierten Ressourcenlabels auf der Grundlage von Werten eines jeweiligen Satzes von Ressourcenlabels der Ressourcenlabels bestimmt wird. Darüber hinaus kann der Managementknoten eine Bereitstellungsanforderung zum Bereitstellen eines Workloads (im Folgenden als Workload-Bereitstellungsanforderung bezeichnet) empfangen. Die Anforderung zur Bereitstellung einer Arbeitslast kann eine Arbeitslastbeschreibung enthalten, die die Arbeitslast definiert. Darüber hinaus kann der Managementknoten die Arbeitslast auf der Grundlage der Arbeitslastbeschreibung und der Werte der einen oder mehreren benutzerdefinierten Ressourcenkennzeichnungen auf einem Arbeitsknoten aus der Vielzahl der Arbeitsknoten bereitstellen.
-
Der Managementknoten und die hier vorgestellten Methoden erleichtern die verbesserte Planung/Einsatzplanung von Arbeitslasten durch die Verwendung sinnvoll generierter benutzerdefinierter Ressourcenlabels, deren Werte automatisch berechnet und/oder aktualisiert werden können, basierend auf mehreren feinkörnigen Ressourcenlabels, die von den Arbeitsknoten veröffentlicht werden. Durch den Aufbau von Planungs- oder Bereitstellungsfunktionen auf Workload-Orchestrierungssystemen (z. B. Kubernetes), die auf veröffentlichten Leistungs- und Sicherheitsfähigkeiten oder Leistungs- und Sicherheitseinschränkungen basieren, können Benutzer Workloads wie Geschäftsanwendungen unter Berücksichtigung der Hardware- und Softwarefähigkeiten und/oder Schwachstellen der Arbeitsknoten ausführen. Insbesondere die verbesserte Bereitstellung der Arbeitslasten, die durch verschiedene hier vorgestellte Beispielaspekte bewirkt wird, stellt sicher, dass die Arbeitslasten auf einem gut ausgestatteten Arbeitsknoten ausgeführt werden, der über ausreichende Ressourcen verfügt, um die Anforderungen der Arbeitslasten zu erfüllen. Die Bereitstellung der Arbeitslasten auf der Grundlage der Werte der benutzerdefinierten Ressourcenkennzeichnungen und der Arbeitslastbeschreibungen kann eine verbesserte Leistung und Sicherheit für die Arbeitslasten auf vernetzten Systemen (z. B. Kubernetes-Clustern) ermöglichen, die sich entweder in einem privaten Cloud-Rechenzentrum eines Kunden befinden, das dem Kunden gehört oder von ihm geleast wird, oder die als As-a-Service-Angebot eines Anbieters genutzt werden (z. B. über ein nutzungsabhängiges oder verbrauchsbasiertes Finanzmodell). Da die Werte der benutzerdefinierten Ressourcen und die Beschreibungen der Arbeitslast während des Betriebs automatisch und dynamisch bestimmt werden, können manuelle Eingriffe reduziert oder eliminiert werden.
-
In den Zeichnungen ist in 1 ein vernetztes System 100 gemäß einem Beispiel abgebildet. Das vernetzte System 100 kann eine Vielzahl von Arbeitsknoten 102, 104, und 106, enthalten, die im Folgenden gemeinsam als Arbeitsknoten 102 bezeichnet werden 106. Ferner kann das vernetzte System 100 auch einen Managementknoten 108 umfassen, der über ein Netzwerk 110 mit den Arbeitsknoten 102-106 verbunden ist. In einigen Beispielen kann das vernetzte System 100 ein verteiltes System sein, bei dem sich einer oder mehrere der Arbeitsknoten 102-106 und der Managementknoten 108 an physisch verschiedenen Orten befinden (z. B. auf verschiedenen Racks, in verschiedenen Gehäusen, in verschiedenen Gebäuden, in verschiedenen Städten, in verschiedenen Ländern und dergleichen), während sie über das Netzwerk 110 verbunden sind. In bestimmten anderen Beispielen kann das vernetzte System 100 eine schlüsselfertige Lösung oder ein integriertes Produkt sein. In einigen Beispielen können sich die Begriffe „schlüsselfertige Lösung“ oder „integriertes Produkt“ auf eine gebrauchsfertig verpackte Lösung oder ein Produkt beziehen, bei dem die Arbeitsknoten 102-106, der Managementknoten 108 und das Netzwerk 110 alle in einem gemeinsamen Gehäuse oder einem gemeinsamen Rack angeordnet sind. Darüber hinaus kann in einigen Beispielen das vernetzte System 100 in jeder Form, sei es ein verteiltes System, eine schlüsselfertige Lösung oder ein integriertes Produkt, durch Hinzufügen oder Entfernen von Arbeitsknoten und/oder durch Hinzufügen oder Entfernen von internen Ressourcen (z. B. Rechenleistung, Speicher, Netzwerkkarten usw.) zu und von den Arbeitsknoten 102-106 und dem Managementknoten 108 rekonfiguriert werden.
-
Beispiele für das Netzwerk 110 können unter anderem ein Internetprotokoll (IP) oder ein nicht-IP-basiertes lokales Netzwerk (LAN), ein drahtloses LAN (WLAN), ein Metropolitan Area Network (MAN), ein Wide Area Network (WAN), ein Storage Area Network (SAN), ein Personal Area Network (PAN), ein zellulares Kommunikationsnetzwerk, ein Public Switched Telephone Network (PSTN) und das Internet sein. Die Kommunikation über das Netzwerk 110 kann in Übereinstimmung mit verschiedenen Kommunikationsprotokollen erfolgen, wie z. B. Transmission Control Protocol und Internet Protocol (TCP/IP), User Datagram Protocol (UDP), IEEE 802.11 und/oder zellulären Kommunikationsprotokollen, ohne darauf beschränkt zu sein. Die Kommunikation über das Netzwerk 110 kann über eine drahtgebundene (z. B. Kupferkabel, optische Kommunikation usw.) oder drahtlose (z. B. Wi-Fi®, zellulare Kommunikation, Satellitenkommunikation, Bluetooth usw.) Kommunikationstechnologie erfolgen. In einigen Beispielen kann das Netzwerk 110 über private Kommunikationsverbindungen aktiviert werden, einschließlich, aber nicht beschränkt auf Kommunikationsverbindungen, die über Bluetooth, zellulare Kommunikation, optische Kommunikation, Hochfrequenzkommunikation, verdrahtet (z. B. Kupfer) und dergleichen hergestellt werden. In einigen Beispielen können die privaten Kommunikationsverbindungen direkte Kommunikationsverbindungen zwischen dem Managementknoten 108 und den Arbeitsknoten 102-106 sein.
-
Jeder der Arbeitsknoten 102106kann ein Gerät sein, das einen Prozessor oder Mikrocontroller und/oder eine andere elektronische Komponente enthält, oder ein Gerät oder System, das verschiedene Rechen- und/oder Datenspeicherdienste ermöglicht. Beispiele für Arbeitsknoten 102106können unter anderem ein Desktop-Computer, ein Laptop, ein Smartphone, ein Server, ein Computergerät, eine Workstation, ein Speichersystem, ein konvergentes oder hyperkonvergentes System und dergleichen sein. Obwohl das vernetzte System 100 in 1 mit drei Arbeitsknoten 102 dargestellt ist106, kann das vernetzte System 100 eine beliebige Anzahl von Arbeitsknoten umfassen, ohne den Umfang der vorliegenden Offenbarung einzuschränken. Die Arbeitsknoten 102-106 können in einer bestimmten Implementierung des vernetzten Systems 100 ähnliche oder unterschiedliche Hardware- und/oder Softwarekonfigurationen aufweisen. So können beispielsweise einige Arbeitsknoten über High-End-Rechenkapazitäten verfügen, einige Arbeitsknoten können eine hohe Datensicherheit ermöglichen und bestimmte Arbeitsknoten können über verbesserte thermische Fähigkeiten verfügen.
-
Die Arbeitsknoten 102-106 können Ressourcen, z. B. Rechen-, Speicher- und/oder Netzwerkkapazitäten, für eine oder mehrere darauf auszuführende Arbeitslasten bereitstellen. Der Begriff Workload kann sich auf eine Computerressource beziehen, einschließlich, aber nicht beschränkt auf eine Anwendung (z. B. ein Softwareprogramm), eine virtuelle Maschine (VM), einen Container, einen Pod, eine Datenbank, einen Datenspeicher, eine logische Festplatte oder eine containerisierte Anwendung. Selbstverständlich kann eine Arbeitslast wie eine VM eine Instanz eines Betriebssystems sein, die auf einem bestimmten Arbeitsknoten über ein VM-Host-Programm wie einen Hypervisor gehostet wird. Darüber hinaus kann eine Arbeitslast, wie z. B. ein Container, eine paketierte Anwendung mit ihren Abhängigkeiten (z. B. Betriebssystemressourcen, Verarbeitungszuweisungen, Speicherzuweisungen usw.) sein, die auf einem bestimmten Arbeitsknoten über ein Container-Hostprogramm, wie z. B. eine Container-Laufzeitumgebung (z. B. Docker Engine), gehostet wird. Darüber hinaus können in einigen Beispielen ein oder mehrere Container zu einem Pod gruppiert werden. So kann beispielsweise eine Gruppe von Containern, die mit einer gemeinsamen Anwendung verbunden sind, zu einem Pod zusammengefasst werden.
-
In der nachstehenden Beschreibung werden die Arbeitslasten zur Veranschaulichung als Pods bezeichnet. Pods können über ein Container-Orchestrierungssystem wie z. B. Kubernetes verwaltet werden. Im Beispiel von 1 ist der Arbeitsknoten 102 als Host für die Arbeitslasten WL1 und WL2, der Arbeitsknoten 104 als Host für die Arbeitslasten WL3 und WL4 und der Arbeitsknoten 106 als Host für die Arbeitslasten WL5 und WL6 dargestellt. Obwohl eine bestimmte Anzahl von Arbeitslasten von jedem der in 1 dargestellten Arbeitsknoten 102-106 gehostet wird, können die Arbeitsknoten 102-106 je nach den jeweiligen Hardware- und/oder Softwarekonfigurationen eine beliebige Anzahl von Arbeitslasten hosten.
-
Darüber hinaus können in einigen Beispielen einer oder mehrere der Arbeitsknoten 102-106 einen Knotenüberwachungsagenten (NMA) und einen Merkmalsveröffentlichungsagenten (FPA) beherbergen. Im Beispiel von 1 ist der Arbeitsknoten 102 als Host für NMA1 und FPA1 dargestellt, der Arbeitsknoten 104 als Host für NMA2 und FPA2, und der Arbeitsknoten 106 als Host für NMA3 und FPA3. Die Knotenüberwachungsagenten NMA1, NMA2 und NMA3 und die Feature-Publisher-Agenten FPA1, FPA2 und FPA3 können einen Typ einer Arbeitslast (z. B. einen Pod) darstellen, der auf den jeweiligen Arbeitsknoten 102-106 ausgeführt wird. Der Kürze halber werden im Folgenden nur die Operationen des Knotenüberwachungsagenten NMA1 und des Merkmalsveröffentlichungsagenten FPA1 beschrieben, die auf dem Arbeitsknoten 102 gehostet werden. Die Knotenüberwachungsagenten NMA2 und NMA3 können auf den jeweiligen Arbeitsknoten 104, 106 ähnliche Operationen durchführen wie der Knotenüberwachungsagent NMA1 auf dem Arbeitsknoten 102. Darüber hinaus können die Feature-Publisher-Agenten FPA2 und FPA3 auf den jeweiligen Arbeitsknoten 104, 106 ähnliche Operationen durchführen, wie sie von den Feature-Publisher-Agenten FPA1 auf dem Arbeitsknoten 102 durchgeführt werden.
-
Während der Inbetriebnahme und/oder des Echtzeitbetriebs des Arbeitsknotens 102 kann der Knotenüberwachungsagent NMA1 die Hardware und/oder Software des Arbeitsknotens 102 überwachen, um Informationen über verschiedene Plattformmerkmale des Arbeitsknotens 102 zu sammeln. Die Plattformeigenschaften, die vom Knotenüberwachungsagenten NMA1 überwacht werden, können unter anderem eine oder mehrere der folgenden Eigenschaften umfassen: thermische Stabilität, Speicher und Bandbreite, Rechenleistung oder Sicherheit für den Arbeitsknoten 102. Um Informationen zu den Plattformeigenschaften zu sammeln, kann der NMA1 eines oder mehrere Plattformattribute, betriebssystembasierte Attribute, Attribute in Bezug auf den dynamischen Systemzustand oder Attribute in Bezug auf die Sicherheitslage überwachen.
-
Beispielsweise kann der Knotenüberwachungsagent NMA1 verschiedene Plattformattribute überwachen, wie Prozessorregister (z. B. modellspezifische Register auf Prozessoren), Systemmanagement-BIOS (SMBIOS)-Aufzeichnungen (z. B. dmidecode-Ausgabe), Ausgaben von Betriebssystembefehlen (z. B. Iscpu, turbostat) oder herstellerspezifische Tools für Sicherheitsschwachstellen (z. B. Tools zur Identifizierung von Spectre- oder Meltdown-anfälligen Prozessoren), aber nicht darauf beschränkt. Darüber hinaus kann der Knotenüberwachungsagent NMA1 in einigen Beispielen mehrere betriebssystembasierte Attribute überwachen, wie z. B. die NUMA-Fähigkeit (Non-Uniform Memory Access, nicht einheitlicher Speicherzugriff) (z. B. Ausgabe von numastat), die Hardwaretopologie (z. B. Ausgabe eines Befehls - Ishw), die Netzwerkschnittstellenkarten-Fähigkeit (z. B. Ausgabe eines Befehls - ethtool) oder Speichereigenschaften (z. B. Ausgabe eines Befehls diskinfo oder eines Befehls hdinfo). Darüber hinaus kann der Knotenüberwachungsagent NMA1 in einigen Beispielen mehrere Attribute überwachen, die sich auf den dynamischen Systemzustand beziehen, wie z. B. die CPU- und Speicherauslastung (z. B. Ausgabe eines Befehls top oder eines Befehls numastat), die Festplattenauslastung (z. B. Ausgabe eines Befehls iostat) oder die Netzwerkauslastung (z. B. Ausgabe eines Befehls netstat), jedoch nicht nur. Darüber hinaus kann der Knotenüberwachungsagent NMA1 in einigen Beispielen mehrere Attribute im Zusammenhang mit der Sicherheitslage überwachen, wie z. B. die Fähigkeit zur Vertrauenswürdigkeit der Hardware, die Fähigkeit zum sicheren Booten, die Fähigkeit zum Signieren von Firmware-Images, die Verwendung von Zertifikaten und die Sicherheit der Anwendungsumgebung (z. B. Fähigkeiten wie Firewall und Betriebssystemhärtung).
-
In einigen Beispielen kann der Feature-Publisher-Agent FPA1 auf der Grundlage der oben erwähnten Überwachung des Arbeitsknotens 102 durch die NMA1 Werte von Ressourcen-Labels bestimmen, die einem oder mehreren der Plattformmerkmale des Arbeitsknotens 102 entsprechen. Ferner kann der Feature-Publisher-Agent FPA1 die Ressourcenlabels und die Werte der Ressourcenlabels des Arbeitsknotens 102 veröffentlichen. In einigen Beispielen kann die Veröffentlichung der Ressourcenkennzeichnungen und ihrer Werte die Übermittlung der Ressourcenkennzeichnungen und ihrer Werte an den Managementknoten 108 durch den Feature Publisher Agent FPA1 beinhalten. In bestimmten anderen Beispielen kann die Veröffentlichung der Ressourcenkennzeichnungen (z. B. Namen von Ressourcenkennzeichnungen) und ihrer Werte die Speicherung der Ressourcenkennzeichnungen und ihrer Werte in einem Speichermedium umfassen, auf das der Managementknoten 108 zugreifen kann.
-
Ressourcenkennzeichnungen, die der Plattformeigenschaft wie der thermischen Stabilität entsprechen, werden im Folgenden als ein erster Satz von Ressourcenkennzeichnungen bezeichnet, deren zugehörige Werte statische Informationen, Echtzeitinformationen oder sowohl statische als auch Echtzeitinformationen über die thermische Stabilität enthalten können. Der Begriff statische Informationen, die einem bestimmten Ressourcenetikett entsprechen, kann sich auf einen Entwurfswert, einen Spezifikationswert oder einen Nennwert des Ressourcenetiketts beziehen. Ferner kann sich der Begriff Echtzeitinformationen für ein bestimmtes Ressourcenetikett auf einen Echtzeitwert oder einen konfigurierten Wert des Ressourcenetiketts beziehen. Beispielsweise kann eine Ressourcenbezeichnung wie die Anzahl der Kerne in einem bestimmten Arbeitsknoten einen statischen Wert von 12 haben, d. h. eine spezifizierte Anzahl von Kernen (z. B. die Gesamtzahl der Kerne), von denen jedoch während des Betriebs des bestimmten Arbeitsknotens nur wenige aktiv sein können. Dementsprechend kann die Anzahl der aktiven Kerne, z. B. 10 aktive Kerne, eine Echtzeitinformation bezüglich des Ressourcenlabels darstellen. Beispiele für den ersten Satz von Ressourcenkennzeichnungen sind unter anderem ein thermischer Auslegungspunkt (TDP) eines Prozessors, eine Temperatur des Prozessors, eine Temperatur eines Speichermoduls, eine Lüftergeschwindigkeit, ein Plattformformfaktor, eine thermische Konfiguration, eine Turbospreizung oder eine Anzahl aktiver Kerne. Der Feature-Publisher-Agent FPA1 kann die Werte einer oder mehrerer der ersten Gruppe von Ressourcenlabels bestimmen und die erste Gruppe von Ressourcenlabels und ihre jeweiligen Werte veröffentlichen.
-
Darüber hinaus werden Ressourcenbezeichnungen, die den Plattformmerkmalen wie dem Speicher und der Bandbreite entsprechen, im Folgenden als zweiter Satz von Ressourcenbezeichnungen bezeichnet, deren zugehörige Werte statische Informationen, Echtzeitinformationen oder sowohl statische als auch Echtzeitinformationen über den Speicher und die Bandbreite enthalten können. Beispiele für den zweiten Satz von Ressourcenkennzeichnungen können unter anderem eine Datenrate, eine Busbreite, eine Anzahl von Speichermodulen und eine Anzahl von Speichersockeln umfassen. Der Feature-Publisher-Agent FPA1 kann die Werte einer oder mehrerer Ressourcenbezeichnungen des zweiten Satzes bestimmen und den zweiten Satz von Ressourcenbezeichnungen und ihre jeweiligen Werte veröffentlichen.
-
Darüber hinaus werden die Ressourcenkennzeichnungen, die dem Plattformmerkmal wie der Rechenleistung entsprechen, im Folgenden als dritter Satz von Ressourcenkennzeichnungen bezeichnet, deren zugehörige Werte statische Informationen, Echtzeitinformationen oder sowohl statische als auch Echtzeitinformationen über die Rechenleistung enthalten können. Beispiele für den dritten Satz von Ressourcenkennzeichnungen können unter anderem eine oder mehrere aktiv konfigurierte Kern-C-Zustände, ein Jitter-Wert-Flag oder eine OS-Interrupt-Affinitätseinstellung umfassen. Der Feature-Publisher-Agent FPA1 kann die Werte einer oder mehrerer der dritten Gruppe von Ressourcenkennzeichnungen bestimmen und die dritte Gruppe von Ressourcenkennzeichnungen und ihre jeweiligen Werte veröffentlichen.
-
Darüber hinaus werden Ressourcenkennzeichnungen, die dem Plattformmerkmal wie der Sicherheit entsprechen, im Folgenden als vierter Satz von Ressourcenkennzeichnungen bezeichnet, deren zugehörige Werte statische Informationen, Echtzeitinformationen oder sowohl statische als auch Echtzeitinformationen über die Sicherheitsfähigkeit des Arbeitsknotens 102 enthalten können. Beispiele für die vierte Gruppe von Ressourcenkennzeichnungen können unter anderem eine oder mehrere der folgenden sein: eine Anwendungssicherheitsfähigkeit, eine Betriebssystemhärtungsfähigkeit, eine sichere Bootfähigkeit und eine Silizium-Root-of-Trust-Fähigkeit. Der Feature-Publisher-Agent FPA1 kann die Werte eines oder mehrerer Ressourcenlabels des vierten Satzes bestimmen und den vierten Satz von Ressourcenlabels und ihre jeweiligen Werte veröffentlichen.
-
In einigen Beispielen kann der Feature-Publisher-Agent FPA1 die Ressourcenkennzeichnungen und ihre Werte durch Senden von Ressourcenkennzeichnungsdaten (in 1 als RLD_WN1 103bezeichnet), die dem Arbeitsknoten 102 entsprechen, über das Netzwerk 110 an den Managementknoten 108 veröffentlichen. Zum Beispiel können die Ressourcenetikettendaten 103 Schlüssel-Wert-Paare enthalten, zum Beispiel Ressourcenetiketten (z.B. Namen der Ressourcenetiketten) und ihre jeweiligen Werte für einige oder alle des ersten Satzes von Ressourcenetiketten, des zweiten Satzes von Ressourcenetiketten, des dritten Satzes von Ressourcenetiketten oder des vierten Satzes von Ressourcenetiketten, die dem Arbeitsknoten 102 entsprechen. In ähnlicher Weise können die Feature-Publisher-Agenten FPA2 und FPA3 auch Ressourcenlabel-Daten 105 (in 1 als RLD_WN2 bezeichnet) und 107 (in 1 als RLD_WN3 bezeichnet) der Arbeitsknoten 104 bzw. 106 an den Managementknoten 108 senden. Die Ressourcenkennzeichnungsdaten 105 und 107 können Schlüssel-Wert-Paare enthalten, z. B. die Ressourcenkennzeichnungen und ihre jeweiligen Werte für die Arbeitsknoten 104 bzw. 106.
-
Der Managementknoten 108 kann die Ressourcenkennzeichnungen und die Werte der Ressourcenkennzeichnungen (in Form der Ressourcenkennzeichnungsdaten 103, 105, 107) von der Vielzahl der Arbeitsknoten 102-106 erhalten. Darüber hinaus kann der Managementknoten 108 auch eine Anforderung zur Bereitstellung einer Arbeitslast empfangen, die eine Beschreibung einer zu bereitstellenden Arbeitslast enthält. Der Managementknoten 108 kann die Bereitstellung des Arbeitsaufkommens auf der Grundlage einer Arbeitsaufkommensbeschreibung (später beschrieben) und einer oder mehrerer benutzerdefinierter Ressourcenkennzeichnungen verwalten, die auf der Grundlage der von der Mehrzahl der Arbeitsknoten 102-106 empfangenen Ressourcenkennzeichnungen (später beschrieben) bestimmt werden. Wie in 1 dargestellt, kann der Managementknoten 108 in einigen Beispielen ein Gerät sein, das einen Prozessor oder Mikrocontroller und/oder eine andere elektronische Komponente enthält, oder ein Gerät oder System, das z. B. verschiedene Rechen- und/oder Datenspeicherdienste ermöglichen kann. Beispiele für den Managementknoten 108 können unter anderem ein Desktop-Computer, ein Laptop, ein Smartphone, ein Server, ein Computergerät, eine Workstation, ein Speichersystem oder ein konvergentes oder hyperkonvergentes System und dergleichen sein, das für die Verwaltung der Bereitstellung von Arbeitslasten konfiguriert ist. Darüber hinaus kann der Managementknoten 108 in bestimmten Beispielen eine virtuelle Maschine oder eine containerisierte Anwendung sein, die auf der Hardware des vernetzten Systems 100 ausgeführt wird.
-
In einigen Beispielen kann der Managementknoten 108 eine Verarbeitungsressource 112 und ein maschinenlesbares Medium 114 umfassen. Das maschinenlesbare Medium 114 kann ein beliebiges elektronisches, magnetisches, optisches oder anderes physisches Speichergerät sein, das Daten und/oder ausführbare Anweisungen 116 speichern kann. Zum Beispiel kann das maschinenlesbare Medium 114 einen oder mehrere Random Access Memory (RAM), einen Electrically Erasable Programmable Read-Only Memory (EEPROM), ein Speicherlaufwerk, einen Flash-Speicher, einen Compact Disc Read Only Memory (CD-ROM) und dergleichen umfassen. Das maschinenlesbare Medium 114 kann nicht-übertragbar sein. Wie hier im Detail beschrieben, kann das maschinenlesbare Medium 114 mit den ausführbaren Anweisungen 116 kodiert sein, um eine oder mehrere Methoden durchzuführen, zum Beispiel die in den 4 und 5 beschriebenen Methoden.
-
Darüber hinaus kann die Verarbeitungsressource 112 ein physisches Gerät sein, z. B. eine oder mehrere Zentraleinheiten (CPU), ein oder mehrere Mikroprozessoren auf Halbleiterbasis, eine oder mehrere Grafikverarbeitungseinheiten (GPU), anwendungsspezifische integrierte Schaltungen (ASIC), ein feldprogrammierbares Gate-Array (FPGA), andere Hardwaregeräte, die in der Lage sind, im maschinenlesbaren Medium 114 gespeicherte Anweisungen 116 abzurufen und auszuführen, oder Kombinationen davon. Die Verarbeitungsressource 112 kann die im maschinenlesbaren Medium 114 gespeicherten Anweisungen 116 abrufen, dekodieren und ausführen, um die Bereitstellung einer Arbeitslast zu verwalten (weiter unten beschrieben). Alternativ oder zusätzlich zur Ausführung der Anweisungen 116 kann die Verarbeitungsressource 112 mindestens einen integrierten Schaltkreis (IC), eine Steuerlogik, elektronische Schaltkreise oder Kombinationen davon enthalten, die eine Reihe elektronischer Komponenten zur Ausführung der Funktionen umfassen, die vom Managementknoten 108 ausgeführt werden sollen (wie weiter unten beschrieben). Darüber hinaus können in bestimmten Beispielen, in denen der Managementknoten 108 eine virtuelle Maschine oder eine containerisierte Anwendung sein kann, die Verarbeitungsressource 112 und das maschinenlesbare Medium 114 eine Verarbeitungsressource und ein maschinenlesbares Medium der Hardware oder eines Computersystems darstellen, das den Managementknoten 108 als virtuelle Maschine oder containerisierte Anwendung hostet.
-
Während des Betriebs kann die Verarbeitungsressource 112 die Ressourcenetikettendaten 103, 105 und 107 von den Arbeitsknoten 102, 104 bzw. 106 erhalten und die empfangenen Ressourcenetikettendaten 103, 105 und 107 in dem maschinenlesbaren Medium 114 als Ressourcenetikettenspeicher 118 speichern. In einigen Beispielen kann die Verarbeitungsressource 112 die Ressourcenetikettendaten 103, 105 und 107 periodisch oder in zufälligen Abständen von den Arbeitsknoten 102, 104 bzw. 106 erhalten. Darüber hinaus kann die Verarbeitungsressource 112 die Werte eines oder mehrerer benutzerdefinierter Ressourcenlabels für jeden der mehreren Arbeitsknoten 102-106 bestimmen. Beispiele für die benutzerdefinierten Ressourcenkennzeichnungen, die von der Verarbeitungsressource 112 bestimmt werden, können unter anderem einen Turboindex, einen Speicherbandbreitenindex, einen Jitterindex oder einen Sicherheitsindex umfassen. In einigen Beispielen kann die Verarbeitungsressource 112 einen Wert jeder benutzerdefinierten Ressourcenkennzeichnung der einen oder mehreren benutzerdefinierten Ressourcenkennzeichnungen auf der Grundlage von Werten der jeweiligen Sätze von Ressourcenkennzeichnungen bestimmen, z. B. des ersten Satzes von Ressourcenkennzeichnungen, des zweiten Satzes von Ressourcenkennzeichnungen, des dritten Satzes von Ressourcenkennzeichnungen oder des vierten Satzes von Ressourcenkennzeichnungen.
-
In der folgenden Beschreibung wurden Beispielberechnungen dieser benutzerdefinierten Ressourcenetiketten auf der Grundlage eines oder mehrerer Ressourcenetiketten der jeweiligen Sätze von Ressourcenetiketten zu Illustrationszwecken beschrieben. Es wird darauf hingewiesen, dass auch andere Ressourcenetiketten aus dem jeweiligen Satz von Ressourcenetiketten oder anderen Sätzen von Ressourcenetiketten verwendet werden können, um den Wert der benutzerdefinierten Ressourcenetiketten zu bestimmen, ohne den Umfang der vorliegenden Offenbarung einzuschränken. Darüber hinaus können in einigen Beispielen auch andere Beziehungen oder Gleichungen als die in der vorliegenden Offenbarung dargestellten verwendet werden, um die Werte der benutzerdefinierten Ressourcenetiketten zu bestimmen, ohne den Umfang der vorliegenden Offenbarung einzuschränken.
-
Der Turbo-Index für einen bestimmten Arbeitsknoten ist ein Beispiel für eine benutzerdefinierte Ressourcenkennzeichnung, und ein Wert des Turbo-Index kann ein Hinweis auf die Fähigkeit des bestimmten Arbeitsknotens sein, unter anspruchsvollen Bedingungen, wie z. B. großen Frequenzschwankungen, ohne Ausfall zu arbeiten. Für den gegebenen Arbeitsknoten ist ein höherer Wert des Turbo-Index ein Indikator für eine bessere Fähigkeit des Arbeitsknotens, während seines Betriebs hohe Frequenzanforderungen zu bewältigen. In einigen Beispielen kann die Verarbeitungsressource 112 den Turbo-Index auf der Grundlage einer oder mehrerer der ersten Gruppe von Ressourcenkennzeichnungen bestimmen. Um den Turbo-Index für den gegebenen Arbeitsknoten zu bestimmen, kann die Verarbeitungsressource 112 eine oder mehrere der ersten Gruppe von Ressourcenbezeichnungen und ihre jeweiligen Werte aus dem Ressourcenbezeichnungsspeicher 118 abrufen und den Turbo-Index auf der Grundlage bestimmter voreingestellter Beziehungen zwischen einer oder mehreren der ersten Gruppe von Ressourcenbezeichnungen berechnen. Beispielsweise kann der Turbo-Index für den gegebenen Arbeitsknoten auf der Grundlage von Ressourcenkennzeichnungen wie dem Turbo-Spread-Index, dem TDP der Prozessoren und der Anzahl der aktiven Kerne auf dem gegebenen Arbeitsknoten bestimmt werden. In einem Beispiel kann die Verarbeitungsressource 112 den Turbo-Index (TI
k) für einen Arbeiterknoten k unter Verwendung der folgenden Gleichung (1) bestimmen.
wobei, TurboSpreadIndex
k für einen Turbo-Spread-Index (siehe unten) für den Arbeitsknoten k, N
k für die Anzahl der aktiven Kerne auf dem Arbeitsknoten steht k, TDP
k für einen thermischen Entwurfspunkt des Arbeitsknotens steht k, und k steht für einen der Arbeiterknoten 102, 104 oder 106. Gleichung (1) stellt ein Berechnungsbeispiel für die Bestimmung des Turbo-Indexes zur Veranschaulichung dar. In einigen anderen Beispielen können auch Werte anderer Ressourcenkennzeichnungen aus dem ersten Satz von Ressourcenkennzeichnungen oder anderen Sätzen von Ressourcenkennzeichnungen verwendet werden, um den Turboindex zu berechnen, ohne den Umfang der vorliegenden Offenbarung einzuschränken.
-
In einigen Beispielen kann der Turbo-Spread-Index (TurboSpreadIndex
k) kann auf der Grundlage von Werten einer Basisbetriebsfrequenz (F
base_k), einer minimalen Betriebsfrequenz (F
min_k) und einer maximalen Betriebsfrequenz (F
max_k) (z. B. Turbofrequenz) eines Prozessors für den Arbeitsknoten k. Beispielsweise kann die Basisbetriebsfrequenz eine Frequenz sein, mit der der Prozessor arbeiten soll, wenn etwa die Hälfte der Kerne aktiv ist. Die Mindestbetriebsfrequenz kann erreicht werden, wenn alle Kerne des Prozessors aktiv sind. Die maximale Betriebsfrequenz kann erreicht werden, wenn ein einziger Kern des Prozessors aktiv ist. In einigen Beispielen kann der Turbo-Spread-Index (TurboSpreadIndex
k) auf der Grundlage einer Frequenzspreizung (F
spread_k) und einer Frequenzerhöhung (F
boost_k) für den gegebenen Arbeitsknoten k. Die Verarbeitungsressource 112 kann die Frequenzspreizung (F
spread_k) und die Frequenzüberhöhung (F
boost_k) unter Verwendung der folgenden Gleichung (2) bzw. Gleichung (3) bestimmen.
-
Dementsprechend kann die Verarbeitungsressource 112 in einigen Beispielen den Turbo Spread Index (TurboSpreadIndex
k) als gleich der Frequenzüberhöhung (F
boost_
k), wenn die Frequenzspreizung kleiner oder gleich Null ist (d. h., F
spread_k ≤ 0). Wenn die Frequenzspreizung jedoch größer als Null ist (d. h., F
spread_k > 0), kann die Verarbeitungsressource 112 den Turbo-Spreizungsindex (TurboSpreadIndex
k) unter Verwendung von Gleichung (4) bestimmen.
-
Darüber hinaus ist der Jitter-Index für einen bestimmten Arbeitsknoten ein weiteres Beispiel für eine benutzerdefinierte Ressourcenkennzeichnung, und ein Wert des Jitter-Indexes kann ein Indikator für das Ausmaß an Rechenzyklen sein, die aufgrund von Blockierungen verloren gehen, wenn der Prozessor seine Betriebsfrequenz ändert. Für den gegebenen Arbeitsknoten ist ein höherer Wert des Computational Jitter Index ein Indikator für eine größere Variabilität der Leistung aufgrund von Frequenzschwankungen und damit für ein geringeres Maß an deterministischer oder vorhersehbarer Leistung. In einigen Beispielen kann die Verarbeitungsressource 112 den Computational Jitter Index auf der Grundlage einer oder mehrerer der dritten Gruppe von Ressourcenbezeichnungen bestimmen. Um den Jitter-Index für den gegebenen Arbeitsknoten zu bestimmen, kann die Verarbeitungsressource 112 den dritten Satz von Ressourcen-Labels und ihre jeweiligen Werte aus dem Ressourcen-Label-Repository 118 abrufen und den Jitter-Index auf der Grundlage bestimmter voreingestellter Beziehungen zwischen einem oder mehreren Ressourcen-Labels aus dem dritten Satz berechnen. Beispielsweise kann der rechnerische Jitter-Index (Cjl
k) für den gegebenen Arbeitsknoten k auf der Grundlage der Frequenzerhöhung (F
boost_k), einem Jitterwert-Flag (JF
k) und der Anzahl der aktiv konfigurierten Kern-C-Zustände (NC
k) unter Verwendung der folgenden Gleichung (5) bestimmt werden.
wobei das Jitterwert-Flag JF
k auf Null (0) gesetzt werden kann, wenn die Jitter-Steuerung aktiviert ist. Alternativ dazu kann das Jitterwert-Flag JF
k auf eins (1) gesetzt werden, wenn die Jitter-Steuerung deaktiviert ist.
-
Darüber hinaus ist der Speicherbandbreitenindex für einen bestimmten Arbeitsknoten ein weiteres Beispiel für eine benutzerdefinierte Ressourcenbezeichnung, und ein Wert des Speicherbandbreitenindex kann ein Hinweis darauf sein, wie schnell Speichertransaktionen von dem bestimmten Arbeitsknoten verarbeitet werden können. Ein höherer Wert des Speicherbandbreitenindexes für einen bestimmten Arbeitsknoten zeigt an, dass dieser in der Lage ist, größere Datenmengen zwischen dem Prozessor und den Speichergeräten zu verschieben, wodurch eine bessere Leistung erzielt wird. In einigen Beispielen kann die Verarbeitungsressource 112 den Speicherbandbreitenindex auf der Grundlage einer oder mehrerer der zweiten Gruppe von Ressourcenbezeichnungen bestimmen. Um den Speicherbandbreitenindex zu bestimmen, kann die Verarbeitungsressource 112 für den gegebenen Arbeitsknoten kkann die Verarbeitungsressource 112 den zweiten Satz von Ressourcenlabels und ihre jeweiligen Werte aus dem Ressourcenlabel-Repository 118 abrufen und den Speicherbandbreitenindex (MBI
k) auf der Grundlage bestimmter voreingestellter Beziehungen zwischen einer oder mehreren Ressourcenbezeichnungen aus dem zweiten Satz von Ressourcenbezeichnungen berechnen. So kann die Verarbeitungsressource 112 beispielsweise den Speicherbandbreitenindex (MBI
k) für den Arbeitsknoten k unter Verwendung der folgenden Gleichung (6) bestimmen.
wobei, PBW
k die maximale (oder theoretische) Speicherbandbreite des Arbeitsknotens k und ABW
k für die verfügbare Speicherbandbreite des Arbeitsknotens k mit Konfigurationsbeschränkungen.
-
In einigen Beispielen wird die maximale Speicherbandbreite PBW
k für den Arbeitsknoten k kann auf der Grundlage der Spezifikation oder der Nenndatenrate (DR
spec_k) (z. B. maximale Datenrate), die von einem im Arbeitsknoten installierten Speichermodul (z. B. DIMM) unterstützt wird keiner Busbreite des Speichermoduls (BUS
width_k), die maximale Anzahl der pro Kanal unterstützten Speichermodule (MM
max_k) und die Anzahl der Speichersockel (N
sockets_k). Beispielsweise kann die Verarbeitungsressource 112 die maximale Speicherbandbreite PBW
k für den Arbeitsknoten k unter Verwendung der folgenden Gleichung (7) bestimmen.
-
Außerdem wird die verfügbare Speicherbandbreite ABW
k für den Arbeitsknoten k kann auf der Grundlage einer tatsächlichen Datenrate (DR
actual_k) des im Arbeitsknoten installierten Speichermoduls (z. B. DIMM) kder Busbreite des Speichermoduls (BUS
width_k), der tatsächlichen Anzahl der pro Kanal unterstützten Speichermodule (MM
actual_
k) und der Anzahl der Speichersockel (N
sockets_k). Die Verarbeitungsressource 112 kann zum Beispiel die verfügbare Speicherbandbreite bestimmen ABW
k für den Arbeitsknoten k unter Verwendung der folgenden Gleichung (8) bestimmen.
-
In einem Beispiel für den Arbeitsknoten k mit einer spezifizierten Datenrate (DRspec_k) 2933 MT/s beträgt, die tatsächliche Datenrate (DRspec_k) 2933 MT/s ist, die Busbreite des Speichermoduls (BUSwidth_k) 64 ist, die maximale Anzahl der pro Kanal unterstützten Speichermodule (MMmax_k) ist 2, und die Anzahl der Speichersockel (Nsockets_ k) 2 beträgt, kann die Spitzen-Speicherbandbreite PBWk als 282 Gbit/s und die verfügbare Speicherbandbreite ABWk kann als 282 Gbit/s bestimmt werden. Folglich kann für den Arbeitsknoten k der Speicherbandbreitenindex MBIk als 10 bestimmt werden. In einem anderen Beispiel kann für den Arbeitsknoten k mit einer spezifizierten Datenrate (DRspec_k) 2933 MT/s beträgt, die tatsächliche Datenrate (DRspec_k) 2667 MT/s beträgt, die Busbreite des Speichermoduls (BUSwidth_k) 64 ist, und die maximale Anzahl der pro Kanal unterstützten Speichermodule (MMmax_k) ist 2, die Anzahl der Speichersockel (Nsockets_k) 2 ist, kann die Spitzen-Speicherbandbreite PBWk als 282 Gbit/s und die verfügbare Speicherbandbreite ABWk kann auf 256 Gbit/s festgelegt werden. Folglich wird für den Arbeitsknoten kder Speicherbandbreitenindex MBIk als 9 bestimmt werden.
-
In einigen Beispielen ist der Sicherheitsindex für einen bestimmten Arbeitsknoten ein weiteres Beispiel für eine benutzerdefinierte Ressourcenkennzeichnung, und ein Wert des Sicherheitsindexes kann ein Indikator dafür sein, wie sicher der bestimmte Arbeitsknoten vor Sicherheitsbedrohungen ist. Ein höherer Wert des Sicherheitsindexes für einen bestimmten Arbeitsknoten zeigt an, dass der Arbeitsknoten besser in der Lage ist, sichere Transaktionen zu verarbeiten. In einigen Beispielen kann die Verarbeitungsressource 112 den Sicherheitsindex auf der Grundlage einer oder mehrerer der vierten Gruppe von Ressourcenbezeichnungen bestimmen. Um den Sicherheitsindex für den gegebenen Arbeitsknoten zu bestimmen, kann die Verarbeitungsressource 112 den vierten Satz von Ressourcenlabels und ihre jeweiligen Werte aus dem Ressourcenlabelspeicher 118 abrufen und den Sicherheitsindex auf der Grundlage bestimmter voreingestellter Beziehungen zwischen einem oder mehreren Ressourcenlabels aus dem vierten Satz berechnen. Beispielsweise können dem vierten Satz von Ressourcenkennzeichnungen wie der Anwendungssicherheitsfähigkeit, der Betriebssystemhärtungsfähigkeit, der sicheren Bootfähigkeit und der Silizium-Root-of-Trust-Fähigkeit jeweils vorbestimmte Gewichtungen zugewiesen werden. Die nachstehende Tabelle 1 zeigt ein Beispiel für die Gewichtung des vierten Satzes von Ressourcenkennzeichnungen. Tabelle-1: Beispiel für die Gewichtung der vierten Gruppe von Ressourcenlabels
Etiketten | Fähigkeit zur Anwendungssicherheit | Härtungsfähigkeit des Betriebssystems | Sichere Boot-Fähigkeit | Silizium-Wurzel des Vertrauens Fähigkeit |
Gewicht | 4 | 2 | 1 | 3 |
-
Zur Veranschaulichung sind in Tabelle 1 Beispielgewichte dargestellt. In einigen Beispielen können einem oder mehreren der vierten Gruppe von Ressourcen-Labels beliebige geeignete Gewichtungen zugewiesen werden. Im Beispiel von Tabelle-1 wird eine Gesamtgewichtung von 10 auf die vier Ressourcenbezeichnungen verteilt. Dementsprechend kann die Verarbeitungsressource 112 in einigen Beispielen den Sicherheitsindex für den gegebenen Arbeitsknoten auf der Grundlage der Gewichtungen bestimmen, die dem einen oder den mehreren Ressourcen-Labels des vierten Satzes zugewiesen sind. Insbesondere kann in einem Beispiel der Sicherheitsindex für den gegebenen Arbeitsknoten als Summe der Gewichtungen eines oder mehrerer Ressourcenlabels des vierten Satzes bestimmt werden, die auf den gegebenen Arbeitsknoten anwendbar sind. Wenn der gegebene Arbeitsknoten beispielsweise nicht über die Fähigkeit zum sicheren Hochfahren verfügt, aber die übrigen in Tabelle 1 dargestellten Fähigkeiten besitzt, hat der Arbeitsknoten einen Sicherheitsindex von neun (9). Ein anderes Beispiel: Wenn der gegebene Arbeitsknoten nicht über die Fähigkeit „Silicon Root of Trust“, aber über die übrigen in Tabelle 1 dargestellten Fähigkeiten verfügt, wird gesagt, dass der Arbeitsknoten den Sicherheitsindex sieben (7) hat.
-
In einigen Beispielen kann die Verarbeitungsressource 112, sobald die Werte der benutzerdefinierten Ressourcenetiketten bestimmt sind, die bestimmten Werte der benutzerdefinierten Ressourcenetiketten in dem maschinenlesbaren Medium als ein benutzerdefiniertes Ressourcenetiketten-Repository 120 speichern. In dem benutzerdefinierten Ressourcenkennzeichnungsspeicher 120 kann die Verarbeitungsressource 112 beispielsweise benutzerdefinierte Ressourcenkennzeichnungen und ihre jeweiligen Werte für jeden anderen Arbeitsknoten 102-106 speichern. Tabelle 2 zeigt ein Beispiel für Daten, die im benutzerdefinierten Ressourcenkennzeichnungsspeicher 1 gespeichert sind20. Tabelle-2: Beispielhafte Daten, die im Repository für benutzerdefinierte Ressourcenetiketten gesneichert sind 120
Arbeiter-Knoten | Turbo-Index | Speicherbandbreiten-Index | Rechnerischer Jitter-Index | Sicherheitsindex |
102 | 6 | 7 | 1 | 4 |
104 | 10 | 9 | 3 | 9 |
106 | 8 | 10 | 5 | 10 |
-
Es wird darauf hingewiesen, dass die in Tabelle 2 angegebenen Werte der benutzerdefinierten Ressourcenbezeichnungen nur der Veranschaulichung dienen. Beispielwerte für die benutzerdefinierten Ressourcenbezeichnungen können unter Verwendung der entsprechenden Ressourcenbezeichnungen und Beispielberechnungen, die in der obigen Beschreibung dargestellt sind, ermittelt werden.
-
Darüber hinaus kann der Managementknoten 108 während seines Betriebs eine Anforderung zur Bereitstellung einer Arbeitslast (im Folgenden als Anforderung zur Bereitstellung einer Arbeitslast bezeichnet) in dem Cluster (dem vernetzten System von Knoten) empfangen. Der Managementknoten 108 kann in Übereinstimmung mit Aspekten der vorliegenden Offenbarung die Bereitstellung der Arbeitslast auf einem Arbeitsknoten der Arbeitsknoten 102-106 erleichtern, der den Anforderungen der Arbeitslast am besten entspricht. In einigen Beispielen kann der Managementknoten 108 die richtige Art von Arbeitsknoten auf der Grundlage der Werte der benutzerdefinierten Ressourcenkennzeichnungen der Arbeitsknoten 102-106 und der in der empfangenen Workload-Einsatzanforderung enthaltenen Informationen identifizieren.
-
In einigen Beispielen kann der Managementknoten 108 die Arbeitslast-Bereitstellungsanforderung in Form einer Arbeitslast-Konfigurationsdatei (z. B. einer Pod-Manifestdatei, wie z. B. einer YAML-Datei, wenn die Arbeitslast ein Pod ist) empfangen. Nach dem Empfang der Workload-Einsatzanforderung kann die Verarbeitungsressource 112 die Workload-Konfigurationsdatei, z. B. eine Workload-Konfigurationsdatei 122, in dem maschinenlesbaren Medium 114 speichern. Die Arbeitslastkonfigurationsdatei 122 kann durch einen oder mehrere Parameter definiert werden, einschließlich einer Arbeitslastbeschreibung. Insbesondere kann die Arbeitslastbeschreibung bestimmte Anforderungen an die Arbeitslast festlegen. In einigen Beispielen kann die Workload-Beschreibung Informationen über eine oder mehrere geschäftliche Service Level Agreements (SLAs), Standard-Anwendungs-Workload-Namen, Komponenten-Affinitäts-Attribute, generische Beschreibungen oder architektonische Attribute enthalten, die dem Workload entsprechen.
-
Beispiele für geschäftliche SLAs sind unter anderem Reaktionszeit, Verfügbarkeit, Durchsatz, kostenoptimiert, energieoptimiert, Skalierbarkeit oder flexible Kapazität. Weitere Beispiele für die Namen der Standardanwendungs-Workloads sind unter anderem Java, MSSQL, Oracle, MongoDB oder Cassandra. Weitere Beispiele für allgemeine Beschreibungen sind unter anderem eine oder mehrere NoSQL-Datenbanken (DB), RDBMS, In-Memory-DB oder Zeitreihen-DB. Darüber hinaus können Beispiele der Komponentenaffinitätsattribute rechenintensiv, speicherintensiv, speicherintensiv oder netzwerkgebunden sein, sind aber nicht darauf beschränkt. Darüber hinaus können Beispiele für Architekturattribute feinkörnige Details umfassen, wie z. B. das Vorhandensein von Software-Parallelität (Multi-Thread), die Frage, ob die Arbeitslast hardwarebeschleunigungsfähig ist (GPUs oder FPGAs), die Verwendung von Vektorbefehlen oder Speicherzugriffsmustern (last- oder speicherlastig), sind jedoch nicht darauf beschränkt.
-
In den 2A, 2A und 2C sind Beispiele 200A, 200B und 200C der Arbeitslast-Konfigurationsdatei 122 abgebildet. Wie in 2A dargestellt, ist die Workload-Konfigurationsdatei 200A abgebildet, die einen ersten Workload definieren kann. In der Workload-Konfigurationsdatei 200A können die Workload-Beschreibungen den Anwendungstyp „Java“ und die Business-SLA-Metrik „Durchsatz“ enthalten. „Dementsprechend kann die erste Arbeitslast von der Verarbeitungsressource 112 als eine Java-Anwendung identifiziert werden, die einen hohen Durchsatz erfordert. In ähnlicher Weise ist in 2B die Arbeitslast-Konfigurationsdatei 200B dargestellt, die eine zweite Arbeitslast definieren kann. In der Workload-Konfigurationsdatei 200B kann die Workload-Beschreibung den Anwendungstyp „Kreditkartenmanagement“ und die SLA-Metrik „Sicherheit“ enthalten. Dementsprechend kann die zweite Arbeitslast von der Verarbeitungsressource 112 als eine Kreditkartenmanagement-Anwendung identifiziert werden, die eine hohe Datensicherheit erfordert. Darüber hinaus ist in 2C die Arbeitslastkonfigurationsdatei 200C dargestellt, die eine dritte Arbeitslast definieren kann. In der Workload-Konfigurationsdatei 200C können die Workload-Beschreibungen einen Anwendungstyp „Geschäftsbuchhaltungsanwendung“ und eine Geschäfts-SLA-Metrik „Sicherheit“ enthalten. „Dementsprechend kann die dritte Arbeitslast von der Verarbeitungsressource 112 als eine Geschäftsbuchhaltungsanwendung identifiziert werden, die eine hohe Datensicherheit erfordert.
-
Zurück zu
1: In einigen Beispielen kann die Verarbeitungsressource 112 für eine empfangene Workload-Einsatzanforderung eine nach Prioritäten geordnete Liste der benutzerdefinierten Ressourcenetiketten auf der Grundlage der Workload-Beschreibung erstellen, die dem einzusetzenden Workload entspricht. Die priorisierte Liste der benutzerdefinierten Ressourcenkennzeichnungen kann eine geordnete Liste benutzerdefinierter Ressourcenkennzeichnungen in Übereinstimmung mit ihrer Relevanz für die Workload-Beschreibung darstellen. In einem Beispiel kann die Verarbeitungsressource 112 die benutzerdefinierten Ressourcenkennzeichnungen in absteigender Reihenfolge ihrer Relevanz für die Arbeitslast anordnen. Die Verarbeitungsressource 112 kann die priorisierte Liste der benutzerdefinierten Ressourcenkennzeichnungen für die Arbeitslast auf der Grundlage einer ersten Wissensbasis erstellen, die eine Zuordnung zwischen mehreren Arbeitslastbeschreibungen und priorisierten Listen der benutzerdefinierten Ressourcenkennzeichnungen enthält. In einigen Beispielen kann die Verarbeitungsressource 112 die erste Wissensbasis in dem maschinenlesbaren Medium 114 speichern. Die nachstehende Tabelle 3 zeigt ein Beispiel für eine erste Wissensbasis. Tabelle-3: Beispiel einer ersten Wissensbasis
Workload-Beschreibungen | Priorisierte Liste mit benutzerdefinierten Ressourcenbezeichnungen |
Erste Priorität (höchste Priorität) | Zweite Priorität | Dritte Priorität | Vierte Priorität (niedrigste) |
Java, Durchsatz | Turbo-Index | Speicherbandbreiten-Index | Sicherheitsindex | Rechnerischer Jitter-Index |
Verwaltung von Kreditkarten, Sicherheit | Turbo-Index | Sicherheitsindex | Speicherbandbreiten-Index | Rechnerischer Jitter-Index |
Geschäftsbuchhaltung, Sicherheit | Turbo-Index | Sicherheitsindex | Speicherbandbreiten-Index | Rechnerischer Jitter-Index |
Java, Sicherheit | Turbo-Index | Sicherheitsindex | Speicherbandbreiten-Index | Rechnerischer Jitter-Index |
Mathe-Anwendung, Genauigkeit | Turbo-Index | Rechnerischer Jitter-Index | Speicherbandbreiten-Index | Sicherheitsindex |
-
In einigen Beispielen kann die verarbeitende Ressource 112 beim Empfang der Workload-Einsatzanforderung ihre Workload-Konfigurationsdatei analysieren, um die in der Workload-Konfigurationsdatei enthaltenen Workload-Beschreibungen zu identifizieren. Das Parsen der Workload-Konfigurationsdatei kann die Analyse des Textes der Workload-Konfigurationsdatei umfassen, um vordefinierte Attribute zu finden, die die Workload-Beschreibung darstellen. Sobald die Workload-Beschreibungen identifiziert sind, kann die Verarbeitungsressource 112 die priorisierte Liste der benutzerdefinierten Ressourcenkennzeichnungen für den bereitzustellenden Workload unter Bezugnahme auf die erste Wissensbasis erstellen. Wenn beispielsweise eine Workload-Bereitstellungsanforderung zur Bereitstellung eines Workloads wie des ersten Workloads, der durch die Workload-Konfigurationsdatei 200A (siehe 2A) definiert ist, von dem Managementknoten 108 empfangen wird, kann die Verarbeitungsressource 112 die priorisierte Liste der benutzerdefinierten Ressourcenkennzeichnungen als „Turbo-Index, Speicherbandbreiten-Index, Sicherheits-Index und Berechnungsjitter-Index“ generieren, wobei der erste Eintrag in der priorisierten Liste eine benutzerdefinierte Ressourcenkennzeichnung mit der höchsten Relevanz darstellt und der letzte Eintrag in der priorisierten Liste eine benutzerdefinierte Ressourcenkennzeichnung mit der niedrigsten Relevanz für die erste Arbeitslast darstellt.
-
Ähnlich kann die Verarbeitungsressource 112 die priorisierte Liste der benutzerdefinierten Ressourcenkennzeichnungen als „Turbo-Index, Sicherheits-Index, Speicherbandbreiten-Index und Berechnungsjitter-Index“ generieren, wenn der Managementknoten 108 eine Workload-Einsatzanforderung für den Einsatz des zweiten Workloads empfängt, der durch die Workload-Konfigurationsdatei 200B (siehe 2B) definiert ist. In ähnlicher Weise kann die Verarbeitungsressource 112 die priorisierte Liste der benutzerdefinierten Ressourcenkennzeichnungen als „Turboindex, Sicherheitsindex, Speicherbandbreitenindex und Berechnungsjitterindex“ generieren, wenn der Managementknoten 108 eine Workload-Einsatzanforderung zum Einsatz des dritten Workloads empfängt, der durch die Workload-Konfigurationsdatei 200C (siehe 2C) definiert ist.
-
Sobald die priorisierte Liste der benutzerdefinierten Ressourcenkennzeichnungen für die Arbeitslast erstellt ist, kann die Verarbeitungsressource 112 einen Arbeitsknoten der Arbeitsknoten 102-106 auf der Grundlage der Werte der benutzerdefinierten Ressourcenkennzeichnungen der Arbeitsknoten 102-106 und der priorisierten Liste der benutzerdefinierten Ressourcenkennzeichnungen identifizieren, die entsprechend der Arbeitslast erstellt wurde. Insbesondere kann die Verarbeitungsressource 112 in einigen Beispielen einen Arbeitsknoten auswählen, der den höchsten Wert eines benutzerdefinierten Ressourcenkennzeichens an dem Eintrag mit der höchsten Relevanz (z. B. dem ersten Eintrag) in der priorisierten Liste unter den Arbeitsknoten 102-106 aufweist. In einigen Beispielen kann die Verarbeitungsressource 112, wenn sie feststellt, dass ein Gleichstand bei den Werten des ersten Eintrags in der priorisierten Liste der benutzerdefinierten Ressourcenkennzeichnungen besteht, damit beginnen, eine ähnliche Prüfung wie für den ersten Eintrag für die restlichen Einträge in der priorisierten Liste der benutzerdefinierten Ressourcenkennzeichnungen in der absteigenden Reihenfolge der Relevanz durchzuführen. Beispielsweise kann die Verarbeitungsressource 112 für eine Arbeitslast wie die erste Arbeitslast, die den Turboindex als ersten Eintrag in der priorisierten Liste der benutzerdefinierten Ressourcenbezeichnungen hat, einen Arbeitsknoten mit dem höchsten Wert des Turboindex unter den Arbeitsknoten 102-106 auswählen. Wie in Tabelle 2 dargestellt, ist der Wert (z. B. 10) des Turboindex für den Arbeitsknoten 104 der höchste unter den Arbeitsknoten 102-106. Dementsprechend kann die Verarbeitungsressource 112 für die Arbeitslast, wie die erste Arbeitslast, den Arbeitsknoten 104 als Host-Arbeitsknoten auswählen. Es ist anzumerken, dass in einigen Beispielen die Verarbeitungsressource 112 auch die priorisierte Liste der benutzerdefinierten Ressourcenkennzeichnungen generieren kann, indem sie die benutzerdefinierten Ressourcenkennzeichnungen in einer aufsteigenden Reihenfolge der Relevanz für die Arbeitslast anordnet, wobei in diesem Fall die Operationen zur Identifizierung eines geeigneten Host-Arbeitsknotens entsprechend angepasst werden können, ohne den Umfang der vorliegenden Offenbarung einzuschränken.
-
In einem weiteren Beispiel kann die Verarbeitungsressource 112 für die Arbeitslast, z. B. die zweite Arbeitslast, deren Sicherheitsindex den ersten Eintrag in der priorisierten Liste der benutzerdefinierten Ressourcenkennzeichnungen aufweist, einen Arbeitsknoten mit dem höchsten Wert des Sicherheitsindex unter den Arbeitsknoten 102-106 auswählen. Wie in Tabelle 2 dargestellt, ist der Wert (z. B. 10) des Sicherheitsindex für den Arbeitsknoten 106 der höchste unter den Arbeitsknoten 102-106. Dementsprechend kann die Verarbeitungsressource 112 für die Arbeitslast, z. B. die dritte Arbeitslast, den Arbeitsknoten 106 als Host-Arbeitsknoten auswählen. In ähnlicher Weise kann die Verarbeitungsressource 112 für die Arbeitslast, wie z. B. die durch die Arbeitslast-Konfigurationsdatei 200C definierte Arbeitslast, den Arbeitsknoten 104 als Host-Arbeitsknoten auswählen.
-
Sobald der Host-Arbeitsknoten für die angeforderte Arbeitslast identifiziert ist, kann der Managementknoten 108 die Arbeitslast auf dem als Host-Arbeitsknoten identifizierten Arbeitsknoten bereitstellen. In einigen Beispielen kann die Verarbeitungsressource 112 die erste Arbeitslast und die dritte Arbeitslast auf dem Arbeitsknoten 104 und die zweite Arbeitslast auf dem Arbeitsknoten 106 bereitstellen, wenn die Arbeitslasten wie die erste Arbeitslast, die zweite Arbeitslast und die dritte Arbeitslast zur Bereitstellung angefordert werden.
-
Darüber hinaus kann die Verarbeitungsressource 112 in einigen Beispielen das Ressourcenetiketten-Repository 118 auf der Grundlage der eingehenden Ressourcenetikettendaten 103, 105 und 105 kontinuierlich aktualisieren und die Werte der benutzerdefinierten Ressourcenetiketten aktualisieren. In bestimmten Beispielen kann die Verarbeitungsressource 112 auch die Arbeitslasten auf der Grundlage der aktualisierten Werte der benutzerdefinierten Ressourcenlabels und der priorisierten Liste der benutzerdefinierten Ressourcenlabels neu verteilen, falls erforderlich. Wenn beispielsweise der Speicherbandbreitenindex des Arbeitsknotens 106 im Laufe der Zeit von 10 auf 8 sinkt und der Speicherbandbreitenindex des Arbeitsknotens 106 nicht sinkt (z. B. gleich bleibt oder steigt), kann die Verarbeitungsressource 112 die zweite Arbeitslast vom dritten Arbeitsknoten 106 auf den zweiten Arbeitsknoten 104 umverteilen.
-
Der hier vorgestellte Managementknoten 108 erleichtert die verbesserte Planung und Bereitstellung von Arbeitslasten durch die Verwendung sinnvoll generierter benutzerdefinierter Ressourcenkennzeichnungen, deren Werte auf der Grundlage mehrerer feinkörniger Ressourcenkennzeichnungen, die von den Arbeitsknoten veröffentlicht werden, automatisch berechnet und/oder aktualisiert werden können. Durch den Aufbau von Planungs- oder Bereitstellungsfunktionen auf Workload-Orchestrierungssystemen (z. B. Kubernetes), die auf veröffentlichten Leistungs- und Sicherheitsfähigkeiten oder Leistungs- und Sicherheitsbeschränkungen basieren, können Benutzer Workloads wie Geschäftsanwendungen unter Berücksichtigung der Hardware- und Softwarefähigkeiten und/oder Schwachstellen der Arbeitsknoten wie den Arbeitsknoten 102-106 ausführen. Insbesondere aufgrund der verbesserten Bereitstellung der Arbeitslasten, wie sie durch verschiedene hier vorgestellte Beispielaspekte bewirkt wird, können Arbeitslasten auf einem gut ausgestatteten Arbeitsknoten mit ausreichenden Ressourcen zur Erfüllung der Anforderungen der Arbeitslasten ausgeführt werden. Die Bereitstellung der Arbeitslasten auf der Grundlage der Werte der benutzerdefinierten Ressourcenlabels und der Arbeitslastbeschreibungen kann eine verbesserte Leistung und Sicherheit für Arbeitslasten auf vernetzten Systemen (z. B. Kubernetes-Clustern) in den Räumlichkeiten des Kunden oder bei As-a-Service-Angeboten ermöglichen. Da die Werte der benutzerdefinierten Ressourcen und die Workload-Beschreibungen während des Betriebs automatisch und dynamisch bestimmt werden, können manuelle Eingriffe reduziert oder eliminiert werden.
-
In 3 wird nun ein Flussdiagramm dargestellt, das ein Verfahren zur 300Bereitstellung einer Arbeitslast gemäß einem Beispiel zeigt. Zur Veranschaulichung 300 wird das Verfahren in Verbindung mit dem vernetzten System 100 von 1 beschrieben. Das Verfahren kann300 die Verfahrensblöcke 302,3 04,306 und (308 im Folgenden gemeinsam als Blöcke 302-308 bezeichnet) umfassen, die von einem prozessorbasierten System wie beispielsweise dem Managementknoten 108 ausgeführt werden können. Insbesondere können die Vorgänge in jedem der Verfahrensblöcke 302-308 von der Verarbeitungsressource 112 durch Ausführen der auf dem maschinenlesbaren Medium 114 gespeicherten Anweisungen 116 ausgeführt werden (siehe 1). Darüber hinaus ist zu beachten, dass in einigen Beispielen die Reihenfolge der Ausführung der Blöcke 302-308 anders sein kann als in 4 dargestellt. So können die Blöcke 302-308 beispielsweise in Reihe, parallel oder in einer Reihen-Parallel-Kombination ausgeführt werden.
-
In Block 302, kann die Verarbeitungsressource 112 Werte von Ressourcenlabels erhalten, die sich beispielsweise auf Plattformmerkmale der mehreren Arbeitsknoten 102-106 beziehen. Ferner kann die Verarbeitungsressource 112 in Block 304 die Werte eines oder mehrerer benutzerdefinierter Ressourcenlabels für jeden der mehreren Arbeitsknoten 102-106 bestimmen. Insbesondere kann ein Wert jedes benutzerdefinierten Ressourcenlabels des einen oder der mehreren benutzerdefinierten Ressourcenlabels auf der Grundlage von Werten eines jeweiligen Satzes von Ressourcenlabels bestimmt werden. Zusätzliche Details zur Bestimmung des Wertes der benutzerdefinierten Ressourcenlabels wurden in Verbindung mit 1 beschrieben. Darüber hinaus kann die Verarbeitungsressource 112 in Block 306 eine Workload-Einsatzanforderung empfangen, die eine Workload-Beschreibung für einen einzusetzenden Workload enthält. Nach dem Empfang kann die Verarbeitungsressource 112 eine Arbeitslastkonfigurationsdatei (z. B. die Arbeitslastkonfigurationsdatei 122) mit der Arbeitslastbeschreibung, die der Arbeitslast entspricht, auf dem maschinenlesbaren Medium 114 speichern. Darüber hinaus kann die Verarbeitungsressource 112 in einigen Beispielen in Block 308 die Arbeitslast auf einem Arbeitsknoten der Vielzahl von Arbeitsknoten 102-106 auf der Grundlage der Arbeitslastbeschreibung und der Werte der benutzerdefinierten Ressourcenkennzeichnungen in ähnlicher Weise wie in Verbindung mit 1 beschrieben bereitstellen.
-
4 zeigt ein Flussdiagramm, in dem ein Verfahren 400 zur Bereitstellung einer Arbeitslast gemäß einem anderen Beispiel dargestellt ist. Zur Veranschaulichung wird das Verfahren 400 in Verbindung mit dem vernetzten System 100 von 1 beschrieben. Das Verfahren 400 kann die Verfahrensblöcke 402,4 04,4 06, 408, 410, 412, 414, 416, 418, 420 und 422 (im Folgenden gemeinsam als Blöcke 402-422 bezeichnet) umfassen, die von einem prozessorbasierten System, z. B. dem Managementknoten 108, ausgeführt werden können. Insbesondere können die Vorgänge in den Verfahrensblöcken4 02-422 von der Verarbeitungsressource 112 durch Ausführen der auf dem maschinenlesbaren Medium 114 gespeicherten Anweisungen 116 ausgeführt werden. Der Kürze halber werden bestimmte Details verschiedener Aspekte, die in den Blöcken 402-422 dargestellt sind, nicht wiederholt, da solche Details bereits in einer oder mehreren der 1-3 beschrieben wurden. Darüber hinaus ist zu beachten, dass in einigen Beispielen die Reihenfolge der Ausführung der Blöcke 406-422 von der in 4 dargestellten Reihenfolge abweichen kann. So können die Blöcke 402-422 beispielsweise in Reihe, parallel oder in einer Reihen-Parallel-Kombination ausgeführt werden.
-
In Block 402, kann die Verarbeitungsressource 112 Werte von Ressourcenlabels erhalten, die sich beispielsweise auf Plattformmerkmale der mehreren Arbeitsknoten 102-106 beziehen. Ferner kann die Verarbeitungsressource 112 in Block 404 die Werte eines oder mehrerer benutzerdefinierter Ressourcenlabels für jeden der mehreren Arbeitsknoten 102-106 bestimmen. In einigen Beispielen kann die Bestimmung der Werte einer oder mehrerer benutzerdefinierter Ressourcenkennzeichnungen in Block 404 die Bestimmung einer oder mehrerer benutzerdefinierter Ressourcenkennzeichnungen wie des Turboindex, des Speicher- und Bandbreitenindex, des Berechnungsjitterindex oder des Sicherheitsindex umfassen. Beispielsweise kann die Verarbeitungsressource 112 in Block 406 einen Wert des Turboindexes auf der Grundlage eines oder mehrerer Ressourcenlabels aus dem ersten Satz von Ressourcenlabels bestimmen. Ferner kann die Verarbeitungsressource 112 in einigen Beispielen in Block 408 einen Wert des Speicher- und Bandbreitenindex auf der Grundlage eines oder mehrerer Ressourcenlabels des zweiten Satzes bestimmen. Darüber hinaus kann die Verarbeitungsressource 112 in bestimmten Beispielen in Block 410 einen Wert des Berechnungsjitterindexes auf der Grundlage eines oder mehrerer Ressourcenlabels des dritten Satzes bestimmen. Darüber hinaus kann die Verarbeitungsressource 112 in einigen Beispielen in Block 412 einen Wert des Sicherheitsindexes auf der Grundlage eines oder mehrerer Ressourcenlabels des vierten Satzes bestimmen. Es ist zu beachten, dass die Ausführung der Operation in Block 404 die Ausführung weniger oder aller Blöcke 406-412 beinhalten kann. Ferner können die Vorgänge in den Blöcken 406 in Reihe, parallel oder in einer Kombination aus Reihe und parallel ausgeführt werden.
-
Ferner kann die Verarbeitungsressource 112 in Block 414 eine Workload-Einsatzanforderung empfangen, die eine Workload-Beschreibung eines einzusetzenden Workloads enthält. Wie bereits erwähnt, kann die Arbeitslast über eine Arbeitslastkonfigurationsdatei (z. B. die Arbeitslastkonfigurationsdatei 122) beschrieben werden. In Block 416 kann die Verarbeitungsressource 112 die Workload-Beschreibung aus der Workload-Konfigurationsdatei 122 durch Parsen der Workload-Konfigurationsdatei 12 identifizieren2. Darüber hinaus kann die Verarbeitungsressource 112 in einigen Beispielen in Block 418 eine priorisierte Liste benutzerdefinierter Ressourcenetiketten für die Arbeitslast auf der Grundlage der Arbeitslastbeschreibung erstellen. Darüber hinaus kann die Verarbeitungsressource 112 in Block 420 den Arbeitsknoten auf der Grundlage der priorisierten Liste der benutzerdefinierten Ressourcenkennzeichnungen und der Werte der benutzerdefinierten Ressourcenkennzeichnungen der Vielzahl von Arbeitsknoten 102-106 identifizieren. Außerdem kann die Verarbeitungsressource 112 in Block 422 die Arbeitslast auf dem identifizierten Arbeitsknoten bereitstellen.
-
5 zeigt ein Blockdiagramm, das eine Verarbeitungsressource und502 ein maschinenlesbares Medium darstellt500, das mit Beispielanweisungen kodiert504 ist, um eine verbesserte Bereitstellung von Arbeitslasten gemäß einem Beispiel zu erleichtern. Das maschinenlesbare Medium kann504 nicht-transitory sein und wird alternativ als nicht-transitory maschinenlesbares Medium bezeichnet504. In einigen Beispielen kann504 der Zugriff auf das maschinenlesbare Medium durch die Verarbeitungsressource erfolgen502. In einigen Beispielen kann die Verarbeitungsressource ein Beispiel für die Verarbeitungsressource 112 des Managementknotens 108502darstellen. Ferner kann504 das maschinenlesbare Medium ein Beispiel für das maschinenlesbare Medium 114 des Managementknotens 108 darstellen.
-
Das maschinenlesbare Medium kann504 ein beliebiges elektronisches, magnetisches, optisches oder anderes physikalisches Speichergerät sein, das Daten und/oder ausführbare Anweisungen speichern kann. Daher kann das maschinenlesbare Medium beispielsweise ein RAM, ein EEPROM, ein Speicherlaufwerk, ein Flash-Speicher, eine CD-ROM oder ähnliches 504sein. Wie hier im Einzelnen beschrieben, kann504 das maschinenlesbare Medium mit ausführbaren Befehlen 506,508 ,510 und (512im Folgenden gemeinsam als Befehle506 -512 bezeichnet) zur Durchführung des in 3 beschriebenen300 Verfahrens kodiert sein. Obwohl nicht dargestellt, kann504 das maschinenlesbare Medium in einigen Beispielen mit bestimmten zusätzlichen ausführbaren Befehlen kodiert sein, um das Verfahren 400 von 4 und/oder andere Operationen, die von dem Managementknoten 108 durchgeführt werden, durchzuführen, ohne den Umfang der vorliegenden Offenbarung einzuschränken.
-
Bei der Verarbeitungsressource kann502 es sich um ein physisches Gerät handeln, z. B. eine oder mehrere CPUs, einen oder mehrere halbleiterbasierte Mikroprozessoren, eine oder mehrere GPUs, ASICs, FPGAs, andere Hardwaregeräte, die in der Lage sind, die im maschinenlesbaren Medium 504512gespeicherten Anweisungen506 abzurufen und auszuführen, oder Kombinationen davon. In einigen Beispielen kann502 die Verarbeitungsressource die in dem maschinenlesbaren Medium 512gespeicherten Anweisungen506 abrufen, dekodieren und ausführen, um504 Arbeitslasten auf einem oder mehreren der Arbeitsknoten 102-106 zu verteilen. In bestimmten Beispielen kann die Verarbeitungsressource alternativ oder zusätzlich zum Abrufen und Ausführen der Anweisungen506 mindestens einen IC, eine andere Steuerlogik, andere elektronische Schaltungen oder Kombinationen davon 502umfassen, die eine Reihe elektronischer Komponenten zur Ausführung der Funktionen enthalten, die vom Managementknoten 108 von 1 ausgeführt werden sollen.
-
Die Anweisungen können, wenn sie von der Verarbeitungsressource 506ausgeführt werden, die Verarbeitungsressource 502veranlassen, Werte von Ressourcenetiketten zu 502erhalten, die sich auf Plattformeigenschaften der Vielzahl von Arbeitsknoten 102106 beziehen. Ferner können die Anweisungen,508 wenn sie von der Verarbeitungsressource ausgeführt werden, die Verarbeitungsressource 502veranlassen, Werte eines oder mehrerer benutzerdefinierter Ressourcenlabels für jeden der mehreren Arbeitsknoten 102-106 zu 502bestimmen. In einigen Beispielen wird ein Wert jedes benutzerdefinierten Ressourcenlabels des einen oder der mehreren benutzerdefinierten Ressourcenlabels auf der Grundlage von Werten eines jeweiligen Satzes von Ressourcenlabels der Ressourcenlabels bestimmt. Darüber hinaus können502 die Anweisungen, wenn sie von der Verarbeitungsressource 510ausgeführt werden, die Verarbeitungsressource veranlassen, eine Workload-Einsatzanforderung zu 502empfangen, die eine Workload-Beschreibung eines Workloads enthält. Darüber hinaus können die Anweisungen,512 wenn sie von der Verarbeitungsressource ausgeführt werden, die Verarbeitungsressource 502veranlassen, die Arbeitslast auf der Grundlage der Arbeitslastbeschreibung und der Werte des einen oder der mehreren benutzerdefinierten Ressourcenkennzeichen auf einem Arbeitsknoten der Vielzahl von Arbeitsknoten 102-106 502bereitzustellen.
-
Obwohl bestimmte Implementierungen oben gezeigt und beschrieben wurden, können verschiedene Änderungen in Form und Details vorgenommen werden. So können beispielsweise einige Merkmale und/oder Funktionen, die in Bezug auf eine Implementierung und/oder einen Prozess beschrieben wurden, auch auf andere Implementierungen bezogen werden. Mit anderen Worten: Prozesse, Merkmale, Komponenten und/oder Eigenschaften, die in Bezug auf eine Implementierung beschrieben wurden, können auch in anderen Implementierungen nützlich sein. Darüber hinaus ist zu beachten, dass die hier beschriebenen Systeme und Verfahren verschiedene Kombinationen und/oder Unterkombinationen der Komponenten und/oder Merkmale der verschiedenen beschriebenen Implementierungen umfassen können.
-
In der vorstehenden Beschreibung sind zahlreiche Details aufgeführt, um das Verständnis des hierin offengelegten Gegenstands zu erleichtern. Die Umsetzung kann jedoch auch ohne einige oder alle dieser Details erfolgen. Andere Implementierungen können Modifikationen, Kombinationen und Variationen der oben beschriebenen Details beinhalten. Es ist beabsichtigt, dass die folgenden Ansprüche solche Modifikationen und Variationen abdecken.