-
GEBIET DER ERFINDUNG
-
Diese Offenbarung betrifft die Richtliniendurchsetzung in einer Rechenumgebung.
-
STAND DER TECHNIK
-
In einer herkömmlichen Anordnung werden die Ressourcen eines verteilten Rechensystems von mehreren Benutzern gemeinsam benutzt. Die Ressourcen werden unter Verwendung von Virtualisierung und/oder anderen Techniken (z. B. auf physikalischer Basis) gemäß Nutzungsrichtlinien gemeinsam benutzt, die von Benutzerdienstvereinbarungen abgeleitet werden. In dieser herkömmlichen Anordnung werden solche Nutzungsrichtlinien entweder zentralisiert durch einen zentralisierten Kontrollmechanismus, der entfernt von einem einzelnen entsprechenden Rechenknoten im System angeordnet ist, oder auf lokalisierte Art und Weise durch entsprechende lokalisierte Kontrollmechanismen an jedem entsprechenden Rechenknoten eingestellt aber die Durchsetzung kann bei den lokalen Rechenknoten stattfinden. In dieser herkömmlichen Anordnung werden Softwareprozesse, wie beispielsweise Verfahren für virtual Switching (vSwitch) mit virtuellen Maschinen in diesen Mechanismen eingesetzt, um die Interaktion der virtuellen Maschinen mit verschiedenen Infrastrukturkomponenten im System zu steuern.
-
Unglücklicherweise kann die Verwendung solcher herkömmlicher Mechanismen und/oder Softwareprozesse (z. B. vSwitch) übermäßigen, inkonsistenten und/oder erheblich schwankenden Overhead der Zentraleinheit (Central Processing Unit – CPU) in den Rechenknoten im System zur Folge haben. Dies kann nachteilige Auswirkungen auf die Leistung der CPU und/oder des Rechenknotens haben (z. B. erhöhte Latenz und Latenzabweichung, auch als Jitter bekannt). Zusätzlich kann es bei Zunahmen bei der Netzwerkbandbreite, Netzwerkübertragungsgeschwindigkeit, den bereitgestellten Diensten und/oder der Anzahl der Rechenknoten und/oder Richtlinien im System schwierig sein, die Verwendung solcher herkömmlicher Mechanismen und/oder Softwareverfahren zu skalieren, ohne dass dies unerwünscht hohe Anstiege des Virtualisierungsverarbeitungsoverheads, der Gefahr von Netzwerkübertragungsverlusten und/oder Verarbeitungslatenzen zur Folge hat.
-
Die vorhergehende herkömmliche Anordnung birgt zusätzliche Nachteile und/oder Rückschritte. Zum Beispiel kann das vorhergehende herkömmliche System nicht in der Lage sein, Echtzeit- oder Nahezu-Echtzeit Feingranularität für vorzunehmende Dienstgüteeinstellungen und/oder eine statistisch genaue Sichtbarkeit von Arbeitsbelastungen und/oder Ressourcennutzungen bereitzustellen, wenn sich die Arbeitsbelastungen und/oder Nutzungen in und/oder unter den Rechenknoten ändern. Dies trifft insbesondere in Fällen zu, in denen die Einstellungen an und/oder die Sichtbarkeit solcher Arbeitsbelastungen und/oder Nutzungen auf einer Grundlage pro Benutzer/Arbeitsbelastung in Übereinstimmung mit Benutzerdienstvereinbarungen zu erfolgen hat. Zusätzlich beinhaltet die vorhergehende herkömmliche Anordnung keine Erwägung der Integration oder der engen Kopplung von Sicherheitsverfahren in der Infrastruktur des Systems mit Sicherheitsverfahren in den Rechen- und/oder Speicherknoten des Systems. Diese zusätzlichen Nachteile und/oder Rückschritte können die Funktionalität und/oder Effizienz dieser herkömmlichen Anordnung begrenzen und/oder ihre Komplexität und/oder die Kosten für ihren Betrieb und/oder ihre Ausführung erhöhen.
-
Ein weiterer Rückschritt dieser herkömmlichen Anordnung ist, dass ein beträchtlicher Betrag an Programmierung auf niedriger Ebene (z. B. von vielen ungleichartigen Schnittstellen an jedem der einzelnen Knoten des Systems) erforderlich sein kann, um die individuellen Verhaltensweisen der Knoten zu programmieren, um zu versuchen, sie in Einklang mit den Richtlinien und/oder Benutzervereinbarungen zu bringen und/oder damit verträglich zu machen. Dieses Problem kann durch die verschiedenen Typen von Infrastrukturen verschärft werden, die beteiligt sein können (z. B. Rechen-, Netzwerk-, Speicher-, Energie-, Sicherheitsressourcen usw.), unabhängig eingestellt (z. B. über separate Scheduler/Verwaltungsmechanismen) und/oder in ihrem Betrieb und/oder ihrer Nutzung in den Plattformen und/oder in anderen gemeinsam verwendeten Infrastrukturkomponenten in Konflikt stehen oder suboptimal sein können. Wie man ohne Weiteres verstehen wird, kann das Koordinieren der Programmierung dieser Schnittstellen, um dafür zu sorgen, dass sie mit den Richtlinien und/oder Dienstvereinbarungen verträglich sind, eine gewisse Herausforderung darstellen, insbesondere, wenn die Benutzer, Knoten, Anwendungen, virtuellen Maschinen, Arbeitsbelastungen, Ressourcen, Richtlinien und/oder Dienste des Systems sich häufig ändern (z. B. wenn sie zum System hinzugefügt oder davon entfernt werden).
-
Eine vorgeschlagene Lösung, die die Verarbeitung von Netzwerkpaketen in Hardware beinhaltet, wird in Peripheral Component Interconnect (PCI) Special Interest Group (SIG) Single Root Input/Output Virtualization (SR-IOV) and Sharing Specification Revision 1.1 offenbart, die am 20. Januar 2010 veröffentlicht wurde (nachfolgend „SR-IOV-Spezifikation”). Unglücklicherweise beseitigt diese vorgeschlagene Lösung effektiv die Fähigkeit von vSwitch-Verfahren, in der Lage zu sein, direkt auf durch Hardware verarbeitete Pakete einzuwirken. Dies beseitigt die Fähigkeit, lokale Steuerung, Dienste und/oder Richtlinien hinzuzufügen, die mit dem Virtual Machine Manager und/oder vSwitch zu koordinieren sind. Dies verringert die Verarbeitungsflexibilität und/oder die Dienste in dieser herkömmlichen Anordnung und/oder kann die Verwendung von SR-IOV-Hardware beinhalten, um alle solchen Dienste bereitzustellen (was unrealistisch sein kann).
-
KURZBESCHREIBUNG DER VERSCHIEDENEN ANSICHTEN DER ZEICHNUNGEN
-
Merkmale und Vorteile von Ausführungsformen sind aus der folgenden detaillierten Beschreibung unter Bezugnahme auf die Zeichnungen ersichtlich, wo gleiche Bezugszeichen gleiche Teile bildlich darstellen; es zeigen:
-
1 eine Veranschaulichung einer Systemausführungsform.
-
2 eine Veranschaulichung von Merkmalen in einer Ausführungsform.
-
3 eine Veranschaulichung von Merkmalen in einer Ausführungsform.
-
Obgleich die folgende detaillierte Beschreibung unter Bezugnahme auf veranschaulichende Ausführungsformen fortgesetzt wird, sind für den Fachmann viele Alternativen, Abwandlungen und Varianten davon ersichtlich. Folglich wird beabsichtigt, dass der beanspruchte Erfindungsgegenstand breit aufzufassen ist.
-
DETAILLIERTE BESCHREIBUNG
-
1 veranschaulicht eine Systemausführungsform 100. Das System 100 kann eine Cloud-Rechenumgebung (Cloud Computing Environment – CCE) 102 umfassen, die viele isolierte Rechenumgebungen (Isolated Computing Environment – ICE) 150A...150N und/oder Richtlinien-Engine-Schaltungen 118 umfassen kann. Die Cloud-Rechenumgebung kann kommunikativ an ein oder mehrere Netzwerke 51 gekoppelt sein.
-
Die Richtlinien-Engine-Schaltungen 118 können eine oder mehrere (und in dieser Ausführungsform mehrere) Anwendungsprogrammierschnittstellen (Application Programming Interface – API) 154, eine/n oder mehrere (und in dieser Ausführungsform mehrere) geschützte Recheninstanzen und/oder Speicherräume 202 und/oder einen oder mehrere (und in dieser Ausführungsform mehrere) Schalter 204 umfassen. Zum Beispiel können ein oder mehrere geschützte Speicherräume 202 mehrere geschützte Recheninstanzen und/oder Speicherräume 202A...202N umfassen. Auch kann/können ein oder mehrere Schalter 204 mehrere Schalter 204A...204N umfassen. In dieser Ausführungsform kann ein/e geschützte Recheninstanz und/oder geschützter Speicherraum einen Prozessor, Speicher und/oder einen oder mehrere Abschnitte davon umfassen, die, zumindest teilweise, nicht unerlaubtem/unerlaubter Zugriff, Verwendung, Eindringen und/oder Untersuchung durch eine oder mehrere Instanzen (z. B. einen Virtual Machine Monitor und/oder andere Prozesse) ausgesetzt sind. Obgleich die folgende Beschreibung unter Bezugnahme auf die Recheninstanzen und/oder Speicherräume 202 fortgesetzt wird, die geschützte Speicherräume sind, versteht sich, das einer oder mehrere davon eine Recheninstanz sein oder umfassen kann, ohne von dieser Ausführungsform abzuweichen.
-
Zusätzlich oder alternativ kann ein geschützter Speicherraum für zusätzliche Netzwerk- und/oder Speicherverarbeitung und/oder andere und/oder zusätzliche Datenverarbeitung auf Steuerungsebene verwendet werden, ohne von dieser Ausführungsform abzuweichen. Zum Beispiel kann ein solcher geschützter Speicherraum (und/oder ein getrennter geschützter Speicherraum) zur vorübergehenden Speicherung eines Netzwerkpakets zum Zweck der Verarbeitung, zumindest teilweise (z. B. einer oder mehrere Köpfe, andere Daten und/oder für Schichten, die zur vollständigen Verarbeitung erforderlich sind) durch Software verwendet werden, um zumindest teilweise einen Dienst und/oder ein Protokoll auszuführen, den/das Hardware gegenwärtig nicht auf diese Art und Weise verarbeiten kann.
-
Die Richtlinien-Engine-Schaltungen 118 können zumindest teilweise eine oder mehrere Plattform-Ressourcen-Verwaltungs-Richtlinie/n 120 in der Cloud-Rechenumgebung 102 durchsetzen. Eine oder mehrere Richtlinien können zumindest teilweise auf (z. B. entsprechenden) Dienstvereinbarungen 104A...104N mit Benutzern 106A...106N der Cloud-Rechenumgebung 102 gründen. Die eine oder mehreren Richtlinien 120 können zur Einrichtung der entsprechenden isolierten Rechenumgebungen 150A...150N in der Cloud-Rechenumgebung 102 bestehen und/oder dies zur Folge haben. Zum Beispiel kann das, zumindest partielle, Durchsetzen dieser einen oder mehreren Richtlinien 120 durch Schaltungen 118 zumindest teilweise zur Folge haben, dass entsprechende isolierte Rechenumgebungen 150A...150N (1) in der Cloud-Rechenumgebung 102 instanziiert werden, (2) physikalisch und/oder virtuell voneinander isoliert werden und/oder (3) verhindert wird, dass sie einander in Abweichung von einer oder mehreren Richtlinien 120 stören. Zusätzlich oder alternativ können diese und/oder andere Merkmale dieser Ausführungsform (1) das Berichten des Ressourcenverbrauchs pro Benutzer und pro Plattform ermöglichen und/oder erleichtern (2) eine bessere Vermittlung der Arbeitsbelastungen zumindest teilweise auf der Grundlage der gemessenen/erwarteten Ressourcennutzung unterstützen und/oder (3) die Abstimmung von verfügbaren Ressourcen mit bekannten/gemessenen/erwarteten Ressourcen ermöglichen, die durch eine neue Arbeitsbelastung verwendet werden können, die auf der Plattform unterzubringen ist. Diese und/oder andere Merkmale können das Verringern und/oder Minimieren von Ressourcenkonflikten unter gemeinsam untergebrachten Arbeitsbelastungen zur Folge haben, die Plattformeffizienz und/oder Nützlichkeit erhöhen und/oder die Fähigkeit zur Erfüllung der Dienstvereinbarungen mit den Benutzern verbessern. In dieser Ausführungsform können die entsprechenden isolierten Rechenumgebungen 150A...150A durch entsprechende der Benutzer 106A...106N verwendet werden, für die Verwendung durch sie bestimmt sein und/oder ihnen zugehörig sein. Obgleich die Beschreibung dieser Ausführungsform unter Bezugnahme auf die isolierten Rechenumgebungen 150A...150N fortgesetzt wird, die virtuelle und/oder virtualisierte Instanzen sind oder umfassen, kann/können eine oder mehrere solche Umgebungen 150A...150N andere Typen von Instanzen sein oder umfassen, die nicht virtualisierte Instanzen virtuell isolieren können, wie zum Beispiel mehrere Anwendungsprozesse, die in einer physikalischen Maschine ausgeführt werden und/oder andere und/oder zusätzliche (z. B. physikalische) Infrastruktur (z. B. Netzwerk- und/oder Speichersysteme) gemeinsam verwenden, ohne von dieser Ausführungsform abzuweichen. In dieser Ausführungsform können solche Rechenumgebungen zum Beispiel und ohne Einschränkung Rechen-, Netzwerk-, Speicher-, Sicherheits-, Energie-, Audio/Video/Medien- und/oder andere zusätzliche Verarbeitung und/oder Dienste zumindest teilweise ausführen und/oder erleichtern.
-
Die einen oder mehreren Richtlinien 120 können mehrere Plattform-Ressourcen-Verwaltungsrichtlinien 120A...120N umfassen, die zumindest teilweise über die Interaktion von einem oder mehreren Verwaltungsprozessen 152 mit einer oder mehrerer Anwendungsprogrammschnittstellen 154 eingerichtet werden können. In dieser Ausführungsform können ein oder mehrere Verfahren 152 zumindest teilweise in einem oder mehreren Virtual Machine Managern 151 sein oder enthalten sein. Alternativ oder zusätzlich kann/können indes ein oder mehrere Verfahren 152 zumindest teilweise nicht in einem oder mehreren Virtual Machine Managern 151 enthalten sein und/oder können zentralisiert sein (z. B. in einem oder mehreren zentralisierten Verwaltungsprozessen/Mechanismen 121 in der Cloud-Rechenumgebung 102), ohne von dieser Ausführungsform abzuweichen. Zum Beispiel können die Mechanismen 121 ein einziger, unitärer solcher Mechanismus in der Cloud-Rechenumgebung 102 sein.
-
In dieser Ausführungsform kann eine Richtlinie zumindest teilweise (1) ein/e/n oder mehrere Regeln, Anweisungen, Befehle, Prozesse, Verfahren, Erlaubnisse und/oder Verbote und/oder (2) ein oder mehrere Ziele und/oder Ergebnisse sein und/oder umfassen, die zumindest teilweise als ein Ergebnis des Ausführens von einer/einem oder mehreren Regeln, Anweisungen, Befehlen, Prozessen, Verfahren, Erlaubnissen und/oder Verboten erreicht werden und/oder deren Erreichen dadurch beabsichtigt wird. Auch in dieser Ausführungsform kann das Durchsetzen einer Richtlinie zumindest teilweise die Implementierung und/oder Ausführung von (1) einer/einem oder mehreren Regeln, Anweisungen, Befehlen, Prozessen, Verfahren, Erlaubnissen und/oder Verboten und/oder (2) das zumindest partielle Erreichen von einem oder mehreren Zielen und/oder Ergebnissen umfassen.
-
In dieser Ausführungsform kann eine Plattform eine oder mehrere physikalische, logische und/oder virtuelle Recheninstanzen, wie zum Beispiel einen oder mehrere Hosts, umfassen. Auch in dieser Ausführungsform können die Begriffe Host-Rechner, Host, Server, Client, Netzwerk-Knoten und Knoten untereinander austauschbar verwendet werden und damit können zum Beispiel ohne Beschränkung ein/e oder mehrere Endstationen, mobile Internet-Geräte, Smart-Phones, Medienvorrichtungen, Eingabe/Ausgabe (E/A) Vorrichtungen, Tablet-Rechner, Apparate, Zwischenstationen, Netzwerk-Schnittstellen, Clients, Server und/oder Abschnitte davon gemeint sein. In dieser Ausführungsform kann ein Netzwerk irgendein/e/n Mechanismus, Instrument, Modalität und/oder Abschnitt davon umfassen, die es zwei oder mehr Instanzen zumindest teilweise erlaubt, erleichtert und/oder ermöglicht, kommunikativ aneinander gekoppelt zu sein.
-
In dieser Ausführungsform kann eine erste Instanz an eine zweite Instanz „kommunikativ gekoppelt” sein, wenn die erste Instanz in der Lage ist, einen oder mehrere Befehle und/oder Daten an die zweite Instanz zu senden und/oder von ihr zu empfangen. In dieser Ausführungsform können die Begriffe Daten und Informationen untereinander austauschbar verwendet werden und können einen oder mehrere Befehle (zum Beispiel einen oder mehrere Programmbefehle) umfassen und/oder ein oder mehrere solcher Befehle kann/können Daten und/oder Informationen sein oder umfassen. Auch in dieser Ausführungsform kann ein Befehl Daten und/oder einen oder mehrere Befehle umfassen. In dieser Ausführungsform kann ein Paket ein oder mehrere Symbole und/oder Werte sein oder umfassen. In dieser Ausführungsform kann eine Kommunikationsverbindung irgendeinen Mechanismus umfassen, der zumindest teilweise in der Lage ist und/oder zulässt, dass mindestens zwei Instanzen kommunikativ gekoppelt sind oder werden.
-
In dieser Ausführungsform können „Schaltungen” zum Beispiel einzeln oder in irgendeiner Kombination analoge Schaltungen, digitale Schaltungen, festverdrahtete Schaltungen, programmierbare Schaltungen, Co-Prozessorschaltungen, Zustandsmaschinenschaltungen und/oder Speicher umfassen, die Programmbefehle umfassen können, die durch programmierbare Schaltungen ausgeführt werden können. Auch in dieser Ausführungsform können Richtlinien-Engine-Schaltungen zumindest teilweise Schaltungen sein und/oder umfassen, die zumindest teilweise in der Lage sind, die Einrichtung und/oder Durchsetzung von einer oder mehrerer Richtlinien einzurichten und/oder durchzusetzen und/oder zu erleichtern. In dieser Ausführungsform können ein Prozessor, Host-Prozessor, eine Zentraleinheit, ein Prozessorkern, Kern und eine Steuereinrichtung jeweils entsprechende Schaltungen umfassen, die in der Lage sind, zumindest teilweise eine oder mehrere arithmetische und/oder logische Operationen durchzuführen und/oder zumindest teilweise eine/n oder mehrere Befehle, wie zum Beispiel einen oder mehrere (z. B. physikalische) Zentraleinheits-Prozessorkerne, Mikrocontroller, Mikroprozessoren, Netzwerkschnittstellen-Steuereinrichtungen, Speichersteuereinrichtungen und/oder Abschnitte davon auszuführen. In dieser Ausführungsform kann eine Netzwerkschnittstellen-Steuereinrichtung Schaltungen zum kommunikativen Koppeln an ein Netzwerk, wie zum Beispiel ein Netzwerkgerät, sein oder umfassen. Ein solches Netzwerkgerät kann in andere Schaltungen in einem Host integriert oder davon getrennt sein. In dieser Ausführungsform kann ein Chipsatz Schaltungen sein oder zumindest teilweise umfassen, die zumindest teilweise das kommunikative Koppeln von einem oder mehreren Speichern und einem oder mehreren Prozessoren, wie zum Beispiel einen oder mehrere Speicher-Hubs, ermöglicht. In dieser Ausführungsform kann jeder von dem Speicher, Cache und Cache-Speicher einen oder mehrere der folgenden Typen von Speichern umfassen: Halbleiter-Firmware-Speicher, programmierbarer Speicher, nichtflüchtiger Speicher, Nur-Lese-Speicher, elektrisch programmierbarer Speicher, Speicher mit wahlfreiem Zugriff, Flash-Speicher, magnetischer Plattenspeicher, optischer Plattenspeicher und/oder andere später entwickelte computerlesbare und/oder beschreibbare Speicher.
-
In dieser Ausführungsform kann ein Abschnitt oder eine Teilmenge einer Instanz die gesamte oder weniger als die gesamte Instanz umfassen. In dieser Ausführungsform kann eine Menge ein oder mehrere Elemente umfassen. Auch in dieser Ausführungsform kann ein Prozess, Thread, Daemon, Programm, Treiber, Betriebssystem, eine Anwendung, ein Kernel und/oder Virtual Machine Monitor jeweils (1) zumindest teilweise die Ausführung von einer/einem oder mehreren Operationen und/oder Programmbefehlen umfassen und/oder (2) zur Folge haben.
-
In dieser Ausführungsform kann eine Rechenumgebung aus Schaltungen bestehen oder diese umfassen, die zumindest teilweise in der Lage sind, allein und/oder in Verbindung mit einer oder mehreren anderen Rechenumgebungen und/oder Instanzen verwendet zu werden, um zumindest teilweise eine oder mehrere Operationen durchzuführen, die an einer oder mehreren arithmetischen, Booleschen, logischen, Speicherungs-, Vernetzungs-, Eingabe/Ausgabe-(E/A) und oder/anderen mit dem Rechner verbundenen Operationen beteiligt sind, diese erleichtern, ausführen, damit verbunden sind und/oder darin enthalten sind. In dieser Ausführungsform kann der Speicher flüchtigen und/oder nicht flüchtigen Speicher umfassen. In dieser Ausführungsform kann eine Cloud-Rechenumgebung eine Rechenumgebung sein oder umfassen, die in der Lage ist, einen oder mehrere mit dem Rechner verbundene Dienste gemäß einer oder mehreren Dienstvereinbarungen bereitzustellen. In dieser Ausführungsform kann eine Dienstvereinbarung eine Vereinbarung und/oder ein/en Vertrag zwischen mindestens einer Instanz, die den mindestens einen Dienst empfangen soll, und mindestens einer anderen Instanz sein oder umfassen, die den mindestens einen Dienst bereitstellen soll. In dieser Ausführungsform kann ein Dienst eine/n oder mehrere Funktionen, Operationen, Instrumente, Parameter, Erlaubnisse, Garantien, Verbote, Beschränkungen, Einschränkungen und/oder Merkmale umfassen, die zumindest teilweise eine oder mehrere Rechenumgebungen beinhalten, verwenden, dadurch erleichtert und/oder ausgeführt werden. Beispiele für solche Dienste können ohne Beschränkung Rechen-, Netzwerk-, Speicherungs-, E/A-, Webhosting-, Multimedia-, Video-, Audio-, Dienstgüte-, Sicherheits-, Energieverwendungs-, Netzwerkkommunikationswegauswahl-, Netzwerküberbelastungsvermeidungs- und/oder andere Dienste umfassen. In dieser Ausführungsform kann ein Dienstvereinbarungsdienst zumindest teilweise die Interaktion zwischen einem oder mehreren Benutzern und einer oder mehreren Dienstanbieterinstanzen beinhalten und/oder daraus entstehen (dies ist aber nicht erforderlich). Eine solche Interaktion kann, zumindest teilweise, zum Beispiel die Bereitstellung von einer oder mehreren Benutzeranwendungen, virtuellen Maschinen, ausführbaren Bildern, angeforderten Benutzerrichtlinien und/oder Dienstvereinbarungen (z. B. Dienstlizenzvereinbarungen) für eine oder mehrere Dienstanbieterinstanzen von einem Benutzer von einer oder mehreren Benutzeranwendungen umfassen. Diese können zumindest teilweise durch die eine oder die mehreren Dienstanbieterinstanzen mit einer oder mehreren anderen Richtlinien, Bedingungen und/oder Dienstvoraussetzungen kombiniert werden, die eine größere Granularität und/oder mehr Einzelheiten (z. B. Verrechnungs- und/oder Infrastruktureinschränkungen) bereitstellen können und die resultierende Kombination kann zumindest teilweise als eine oder mehrere Richtlinien, z. B. in den Plattformen und/oder der Cloud-Rechenumgebung, durchgesetzt werden.
-
In dieser Ausführungsform kann ein Benutzer einer oder mehrere menschliche Bediener, ein/e oder mehrere Gruppen und/oder Zusammenschlüsse von menschlichen Bedienern und/oder ein oder mehrere Prozesse (z. B. Anwendungsprozesse) sein, umfassen und/oder beinhalten, die einem oder mehreren menschlichen Bedienern, einer oder mehreren Gruppen und/oder Verbindungen von menschlichen Bedienern zugehörig sind und/oder in der Lage sind, direkt oder indirekt durch sie verwendet zu werden.
-
In dieser Ausführungsform können die Interaktion einer ersten Instanz mit einer zweiten Instanz und die Interaktion zwischen den ersten und zweiten Instanzen untereinander austauschbar verwendet werden. Auch in dieser Ausführungsform kann eine solche Interaktion zumindest teilweise (1) das Bereitstellen, das Einleiten des Bereitstellens und/oder die Anforderung des Bereitstellens von einem oder mehreren Signalen, Befehlen und/oder Daten für die zweite Instanz durch die erste Instanz und/oder (2) eine oder mehrere Handlungen und/oder Änderungen des Zustands der zweiten Instanz zumindest teilweise als Reaktion darauf umfassen, erleichtern und/oder beinhalten.
-
Zum Beispiel können die Dienstvereinbarungen 104A...104N in dieser Ausführungsform entsprechende Verträge zwischen entsprechenden der Benutzer 106A...106N (auf der einen Seite) und einer oder mehreren Instanzen (auf der anderen Seite) umfassen, die die Cloud-Rechenumgebung 102 zumindest teilweise pflegen, betreiben und/oder besitzen kann. Diese Verträge können die entsprechenden Mengen von Diensten und/oder Parametern der entsprechenden Mengen von Diensten angeben, die den Benutzern 106A...106N in der Cloud-Rechenumgebung bereitzustellen sind. Die Richtlinien 120A...120N können zumindest teilweise auf diesen Dienstvereinbarungen 104A...104N und/oder Verträgen gründen, derart, dass die zumindest partielle Durchsetzung dieser Richtlinien 120A...120N zumindest teilweise die Bereitstellung dieser entsprechenden Dienste für die Benutzer 106A...106N gemäß den entsprechenden Dienstvereinbarungen 104A...104N der Benutzer und/oder ihren Parametern zur Folge hat.
-
Zum Beispiel kann die zumindest partielle Durchsetzung der Richtlinien 120A...120N durch Schaltungen 118 die Instanziierung von isolierten Rechenumgebungen 150A...150N in der Cloud-Rechenumgebung 102 zur Folge haben. So wie sie instanziiert werden, können diese isolierten Rechenumgebungen 150A...150N virtuell voneinander isoliert werden und/oder können entsprechende Mengen von Diensten für die entsprechenden der Benutzer 106A...106N bereitstellen, die den Umgebungen 150A...150N (z. B. gemäß ihren entsprechenden Dienstvereinbarungen) zugehörig sein können. In dieser Ausführungsform kann die virtuelle Isolation zwischen einer ersten Rechenumgebung und einer zweiten Rechenumgebung zur Folge haben, dass die entsprechenden Benutzer dieser Umgebungen, die die entsprechenden Mengen von Ressourcen verwenden, die diesen entsprechenden Rechenumgebungen zugehörig und/oder darin enthalten sein können, auf Arten verwenden, die (1) (z. B. vollständig) mit den entsprechenden Dienstvereinbarungen der entsprechenden Benutzer übereinstimmen und/oder (z. B. vollständig) nicht davon abweichen können, und/oder (2) die entsprechenden Verwendungen von Ressourcen, die in den Umgebungen zumindest teilweise gemeinsam verwendet werden können, nicht (z. B. auf für den Benutzer bedeutende und/oder durch den Benutzer wahrnehmbare Weise) stören können.
-
Zum Beispiel kann die Umgebung 150A den Speicher 250A und/oder eine oder mehrere Ressourcen 302A umfassen und/oder ihm/ihnen zugehörig sein. Die Umgebung 150B kann den Speicher 250B und/oder eine oder mehrere Ressourcen 302A zumindest teilweise umfassen und/oder ihnen zugehörig sein. Die Umgebung 150N kann den Speicher 250N und/oder eine oder mehrere Ressourcen 302N zumindest teilweise umfassen und/oder ihm/ihnen zugehörig sein. Die Durchsetzung der entsprechenden Richtlinien 120A...120N (und z. B. insbesondere zumindest der Richtlinien 120A, 120B, 120N) durch die Schaltungen 118 kann zumindest teilweise zur Folge haben, dass die Umgebungen 150A, 150B, 150N virtuell voneinander (und den anderen isolierten Rechenumgebungen, die in den Umgebungen 150A...150N enthalten sind) isoliert werden. Zum Beispiel können die Umgebungen 150A, 150B, 150N derart virtuell voneinander isoliert sein, dass den entsprechenden Benutzern 106A, 106B, 106N dieser Umgebungen 150A, 150B, 150N nur erlaubt wird, ihre entsprechenden Mengen von Ressourcen (z. B. die Ressourcen 302A und 302N und/oder die Speicher 250A, 250B, 250N) auf Arten zu verwenden, die (1) (z. B. vollständig) mit den entsprechenden Dienstvereinbarungen 104A, 104B, 104N der entsprechenden Benutzer 106A, 106B, 106N übereinstimmen und/oder (z. B. vollständig) nicht davon abweichen können und/oder (2) keine für den Benutzer bedeutende und/oder durch den Benutzer wahrnehmbare Störung in Bezug auf die gemeinsam verwendeten Ressourcen (z. B. die gemeinsam verwendeten Ressourcen 302A) zur Folge haben können.
-
In dieser Ausführungsform können eine oder mehrere Anwendungsprogrammschnittstellen 154 mehrere Anwendungsprogrammschnittstellen 153A...153N umfassen. In dieser Ausführungsform kann eine Anwendungsprogrammschnittstelle eine oder mehrere physikalische, logische und/oder virtuelle Schnittstellen sein oder umfassen, über die (1) eine erste Instanz Daten und/oder ein oder mehrere Signale, Befehle, Anweisungen für eine zweite Instanz bereitstellt, die zumindest teilweise die Steuerung, Überwachung und/oder Interaktion mit der zweiten Instanz zulassen und/oder erleichtern kann und/oder (2) die zweite Instanz kann andere Daten und/oder ein oder mehrere andere Signale bereitstellen, die eine solche Steuerung, Überwachung und/oder Integration zumindest teilweise (die z. B. zumindest teilweise eine oder mehrere verfügbare Ressourcen, die Ressourcenverwendung, Verletzungen der Dienstvereinbarung usw. betreffen, umfassen und/oder damit verbunden sind) ermöglichen und/oder erleichtern können. In dieser Ausführungsform können eine oder mehrere Anwendungsprogrammschnittstellen 154 und/oder eine oder mehrere der Schnittstellen 153A...153N (vollständig oder teilweise) eingebettete Hardware und/oder Firmware in mehreren Hardware-Komponenten von Hosts umfassen, die zumindest teilweise die Cloud-Rechenumgebung 102 umfassen und/oder darin enthalten sein können. Selbstverständlich sind viele Alternativen möglich, ohne von dieser Ausführungsform abzuweichen.
-
In dieser Ausführungsform können vorteilhafterweise eine oder mehrere Anwendungsprogrammschnittstellen 154 und/oder Schnittstellen 153A...153N die Koordination (auf eine Weise, die in herkömmlichen Techniken nicht ins Auge gefasst wird) von zumindest teilweise der Programmierung der Richtlinien 120 und/oder 120A...120N für unterschiedliche Gesichtspunkte der Dienste und/oder Infrastruktur, die in der Umgebung 102 enthalten und/oder ausgeführt sind, ermöglichen. Vorteilhafterweise kann damit eine schädliche und/oder suboptimale Leistung vermieden werden, die sich ergeben kann, wann und/oder wenn zum Beispiel eine Cloud-Rechenumgebung separate Steuerungsebenen umfasst, die verwendet werden können, um diese unterschiedlichen Gesichtspunkte der Dienste und/oder Infrastruktur separat zu programmieren, die in der Cloud-Rechenumgebung enthalten ist und/oder ausgeführt wird. Wenn zum Beispiel unterschiedliche entsprechende Steuerungsebenen verwendet werden, um Rechenressourcen und Energieressourcen zu programmieren, dann kann es schwierig und/oder anspruchsvoll sein, eine miteinander im Konflikt stehende Programmierung solcher Ressourcen zu vermeiden (z. B. können die Rechenressourcen programmiert werden, um gleichzeitig mit dem Abschalten solcher Ressourcen verwendet zu werden).
-
Ferner können in dieser Ausführungsform vorteilhafterweise eine oder mehrere Anwendungsprogrammschnittstellen 154 und/oder Schnittstellen 153A...153N eine Programmierungsabstraktion einer Art ermöglichen, die in herkömmlichen Techniken nicht ins Auge gefasst wird. Zum Beispiel können eine oder mehrere Schnittstellen 154 und/oder eine oder mehrere Schnittstellen 153A...153N die Details einer Ausführung auf niedriger Ebene abstrahieren und immer noch die Feinabstimmung der Richtlinien 120 und/oder 120A...120N auf niedriger Ebene zulassen, um die Programmierung und/oder Ausführung der Richtlinien 120 und/oder 120A...120N sehr zu erleichtern und zu vereinfachen, während es der Cloud-Umgebung 102 ermöglicht wird, eine viel höhere (und/oder im Wesentlichen optimale) Leistung zu erreichen. Zum Beispiel können eine oder mehrere Anwendungsprogrammschnittstellen 154 und/oder Schnittstellen 153A...153N das Programmieren von CPU-Kern-Energiezuständen Dienstvereinbarung für Dienstvereinbarung ermöglichen, während das Erfordernis der Verfolgung der Details der tatsächlichen Ausführung der Hardware und/oder von Änderungen von einer Generation zur anderen durch die Steuerungsebene der Cloud-Umgebung vermieden wird. In dieser Ausführungsform können die Schaltungen 118 und/oder die CCE 102 mit den Identitäten der Benutzer der entsprechenden Komponenten der CCE 102 und/oder der anderen Infrastruktur, die ihnen zugehörig ist, und/oder von zugehörigen Richtlinien programmiert werden. Vorteilhafterweise kann dies das Verwenden einer gegebenen Anwendungsprogrammschnittstelle über mehrere verschiedene Hardware-Generationen hinweg ermöglichen, ohne dass die Steuerungsebene der Cloud-Umgebung (die die API verwendet) mit den sich ändernden Details auf niedrigerer Ebene einbezogen wird, während die Aufnahme und Verwendung neuer und neu entstehender Hardware-Merkmale auf niedrigerer Ebene ermöglicht wird, wodurch die Verwendung, Effizienz und/oder Dienstvereinbarungswirksamkeit in der Umgebung 102 verbessert wird.
-
Zum Beispiel kann, wie in 2 gezeigt, die Cloud-Rechenumgebung 102 einen oder mehrere (und in dieser Ausführungsform mehrere) Hosts 10A...10N umfassen. In Abhängigkeit von den bestimmten jeweiligen Konfigurationen von und/oder den Operationen, die durch die Hosts 10A...10N (und/oder die entsprechenden Komponenten der Hosts 10A...10N) durchgeführt werden, können die Hosts 10A...10N derart konfiguriert sein und/oder arbeiten, dass sie die entsprechende/n bestimmte Funktionalität, Dienste und/oder Operationen bereitstellen, die den Benutzern 106A...106N gemäß und/oder in Übereinstimmung mit ihren entsprechenden Dienstvereinbarungen 104A...104N bereitzustellen sind. So können in Abhängigkeit von den bestimmten entsprechenden Konfigurationen von und/oder den Operationen, die durch die Hosts 10A...10N (und/oder durch die entsprechenden Komponenten der Hosts 10A...10N) durchgeführt werden, die Hosts 10A...10N derart konfiguriert sein und/oder arbeiten, dass die Richtlinien 120A...120N und/oder 120 zumindest teilweise durchgesetzt werden, und/oder um zumindest teilweise entsprechende isolierte Rechenumgebungen 150A...150N einzurichten, derart, dass die Umgebungen 150A...150N virtuell voneinander isoliert werden können und verhindert werden kann, dass sie einander in Abweichung von den Richtlinien 120A...120N und/oder 120 stören.
-
Zum Beispiel kann jeder der Hosts 10A...10N entsprechende Hardware-Komponenten umfassen. Diese entsprechenden Hardware-Komponenten in jedem entsprechenden Host können einen oder mehrere entsprechende Host-Prozessoren (HP), einen oder mehrere entsprechende Chipsätze (CS), einen oder mehrere entsprechende Speicher und/oder eine oder mehrere entsprechende Netzwerkschnittstellensteuerungen (Network Interface Controller – NIC) umfassen. Ein/e entsprechende/r der Anwendungsprogrammschnittstellen 153A...153N, der geschützten Speicherräume/n 202A...202N und/oder Schalter/n 204A...204N kann zumindest teilweise in einem/einer oder mehreren der entsprechenden Host-Prozessoren, Chipsätze, Speicher-Steuereinrichtungen, Verwaltungsressourcen, anderen gemeinsam verwendeten oder gemeinsam verwendbaren Hardware-Ressourcen und/oder Netzwerkschnittstellensteuerungen in jedem entsprechenden Host enthalten, repliziert und/oder verteilt sein. Zum Beispiel kann der Host 10A einen oder mehrere entsprechende Host-Prozessoren 12A, einen oder mehrere entsprechende Chipsätze 15A, einen oder mehrere entsprechende Speicher 21A und/oder eine oder mehrere entsprechende Netzwerkschnittstellensteuerungen 50A umfassen. Der Host 10N kann einen oder mehrere entsprechende Host-Prozessoren 12B, einen oder mehrere entsprechende Chipsätze 15B, einen oder mehrere entsprechende Speicher 21B und/oder eine oder mehrere entsprechende Netzwerkschnittstellensteuerungen 50B umfassen. Der Host 10N kann einen oder mehrere entsprechende Host-Prozessoren 12N, einen oder mehrere entsprechende Chipsätze 15N, einen oder mehrere entsprechende Speicher 21N und/oder eine oder mehrere entsprechende Netzwerkschnittstellensteuerungen 50N umfassen.
-
Wie vorhergehend angegeben, kann ein/e entsprechende/r der Anwendungsprogrammschnittstellen 153A...153N, der geschützten Speicherräume 202A...202N und/oder Schalter 204A...204N zumindest teilweise in einem oder mehreren der entsprechenden Host-Prozessoren, Chipsätze und/oder Netzwerkschnittstellensteuerungen in jedem entsprechenden Host enthalten, repliziert und/oder verteilt sein. Daher können zum Beispiel im Host 10A ein oder mehrere Host-Prozessoren 12A, ein oder mehrere Chipsätze 15A und/oder eine oder mehrere Netzwerkschnittstellensteuerungen 50A (als Ganzes oder teilweise) eine oder mehrere entsprechende Anwendungsprogrammschnittstellen (gemeinsam oder einzeln durch den Block 153A bezeichnet), einen oder mehrere entsprechende geschützte Speicherräume (die gemeinsam oder einzeln durch den Block 202A bezeichnet werden) und/oder einen oder mehrere Schalter (die gemeinsam oder einzeln durch den Block 204A bezeichnet werden) umfassen. In dieser Ausführungsform können die/der eine oder mehreren Anwendungsprogramschnittstellen 153A, ein oder mehrere geschützte Speicherräume 202A und/oder ein oder mehrere Schalter 204A als Ganzes (oder zumindest teilweise) als Hardware und/oder Firmware gebildet sein. Selbstverständlich können, ohne von dieser Ausführungsform abzuweichen, einige oder alle diese Komponenten zumindest teilweise eine oder mehrere entsprechende Software-Komponenten umfassen.
-
In dieser Ausführungsform können ein oder mehrere Planungsmechanismen 121 zumindest teilweise in und/oder unter einem oder mehreren verschiedenen Hosts (z. B. Servern) und/oder Diensten in der CCE 102 und/oder anderswo verteilt werden. In dieser Anordnung kann/können der eine oder die mehreren Planungsmechanismen 121 (z. B. physikalisch, logisch und/oder virtuell) Komponenten, Diensten, Ressourcen usw. benachbart untergebracht sein, die der Planung durch den einen oder die mehreren Planungsmechanismen 121 unterliegen. Alternativ können, ohne von dieser Ausführungsform abzuweichen, ein oder mehrere Planungsmechanismen 121 in einem vereinten Planungsmechanismus enthalten sein. In beiden Anordnungen können der eine oder die mehreren Scheduler 121 von diesen Komponenten, Diensten, Ressourcen usw. Informationen empfangen, die ihre gegenwärtigen entsprechenden Stati, Betriebseigenschaften, Arbeitsbelastungen, Benutzer usw. betreffen und/oder angeben, und können solche Informationen beim Treffen von Planungsentscheidungen verwenden. Eine solche enge Zusammenarbeit und/oder Koordination von Richtlinien für verschiedene Gesichtspunkte der Infrastruktur auf den Plattformen in der CCE 102 können eine bessere Planungskoordination (z. B. beim Zuweisen/Unterbringen/Planen der Verwendung der Infrastrukturressourcen) ermöglichen und/oder erleichtern. Zusätzlich kann die vorhergehende Verwendung der Nachbarschaft die Gefahr verringern und/oder minimieren, dass Ressourcen, die in großer zeitlicher Nähe verwendet werden, relativ weit voneinander weg untergebracht sind und/oder entsprechenden Begrenzungen der Kommunikationsbandbreite unterliegen.
-
Auch kann/können im Host 10B ein oder mehrere Host-Prozessoren 12B, ein oder mehrere Chipsätze 15B und/oder eine oder mehrere Netzwerkschnittstellensteuerungen 50B (als Ganzes oder teilweise) eine oder mehrere entsprechende Anwendungsprogrammschnittstellen (die gemeinsam oder einzeln durch den Block 153B bezeichnet werden), einen oder mehrere entsprechende geschützte Speicherräume (die gemeinsam oder einzeln durch den Block 202B bezeichnet werden) und/oder einen oder mehrere Schalter (die gemeinsam oder einzeln durch den Block 204B bezeichnet werden) umfassen. In dieser Ausführungsform können die/der eine oder mehreren Anwendungsprogrammschnittstellen 153B, ein oder mehreren geschützten Speicherräume 202B und/oder ein oder mehreren Schalter 204B als Ganzes (oder zumindest teilweise) als Hardware und/oder Firmware gebildet sein. Selbstverständlich können einige oder alle dieser Komponenten zumindest teilweise eine oder mehrere entsprechende Software-Komponenten umfassen, ohne von dieser Ausführungsform abzuweichen.
-
Auch können zum Beispiel im Host 10N ein oder mehrere Host-Prozessoren 12N, ein oder mehrere Chipsätze 15N und/oder eine oder mehrere Netzwerkschnittstellensteuerungen 50N gemeinsam unter Verwendung von (als Ganzes oder teilweise) einer oder mehreren entsprechenden Anwendungsprogrammschnittstellen (die gemeinsam oder einzeln durch den Block 153N bezeichnet werden), einem oder mehreren entsprechenden geschützten Speicherräumen (die gemeinsam oder einzeln durch den Block 202N bezeichnet werden), und/oder einem oder mehreren Schaltern (die gemeinsam oder einzeln durch den Block 204N bezeichnet werden) zur Einhaltung der Dienstvereinbarung programmiert sein. In dieser Ausführungsform können die/der eine oder mehreren Anwendungsprogrammschnittstellen 153N, ein oder mehreren geschützten Speicherräume 202N und/oder ein oder mehreren Schalter 204N als Ganzes (oder zumindest teilweise) als Hardware und/oder Firmware gebildet sein. Selbstverständlich können einige oder alle dieser Komponenten zumindest teilweise eine oder mehrere entsprechende Software-Komponenten umfassen, ohne von dieser Ausführungsform abzuweichen.
-
In dieser Ausführungsform können die Anwendungsprogrammschnittstellen 153A...153N und/oder 154 es einem oder mehreren Verwaltungsprozessen 152 und/oder VMM-Prozessen 151 (und/oder einem oder mehreren nicht gezeigten vSwitch-Prozessen, wenn sie im System 100 vorhanden sind) ermöglichen, in der Lage zu sein, (1) das Vorhandensein und die Fähigkeiten relevanter Schaltungen (z. B. in der CCE 102) zu identifizieren und/oder die Verwendung derselben zu koordinieren, und/oder (2) einen oder mehrere erlaubte Befehle und/oder Daten für die Schaltungen 118 über die Schnittstellen 153A...153N und/oder 154 bereitzustellen. Dies kann zumindest teilweise zur Folge haben, dass die Schaltungen 118 die entsprechenden Konfigurationen und/oder Operationen von und/oder Daten, die in einem oder mehreren der geschützten Speicherräume 202A...202N und/oder 202, den Schaltern 204A...204N und/oder 204, den Host-Prozessoren 12A...12N, den Chipsätzen 15A...15N und/oder den Hosts 10A...10N gespeichert sind, auf eine Weise steuern, überwachen und/oder abwandeln, die die Richtlinien 120A...120N zumindest teilweise voll und ganz ausführt (und/oder nicht auf irgendeine Weise davon abweicht oder ihnen widerspricht). Auf ähnliche Weise kann das Bereitstellen von einem oder mehreren solchen erlaubten Befehlen und/oder Daten über eine oder mehrere Schnittstellen 154 und/oder 153A...153N zumindest teilweise zur Folge haben, dass die Schaltungen 118 eine oder mehrere der Richtlinien 120A...120N (und/oder eine oder mehrere entsprechende Konfigurationen und/oder Operationen der vorhergehenden Komponenten der Umgebung 102) (auf eine zulässige Art) abwandelt, um einer oder mehreren zulässigen Änderungen an einer oder mehreren der Dienstvereinbarungen 104A...104N Wirkung zu verleihen und/oder sie auszuführen, wenn sie auftreten. Die Richtlinien 120A...120N können Richtlinien für jede der entsprechenden isolierten Rechenumgebungen 150A...150N definieren, die zumindest teilweise mit zum Beispiel maximal oder minimal erlaubten, vereinbarten und/oder annehmbaren Niveaus von Host/Host-Prozessor-Arbeitsbelastung, Aufteilen der Arbeitsbelastung, Dienstgüte, Sicherheit, Energienutzung, Speicher, Speicherverwaltungsmerkmalen, E/A-Dienst, E/A-Dienstverwaltungsmerkmalen, Netzwerküberlastungsvermeidung und/oder Koordinierung der Programmierung auf Steuerungsebene und/oder der vorhergehend beschriebenen Abstraktion (z. B. Dienstvereinbarung für Dienstvereinbarung) verbunden sein können, ausführen, beinhalten, daraus entstehen und/oder erleichtern. Alternativ oder zusätzlich können die Richtlinien 120A...120N und/oder 120 Richtlinien für jede der entsprechenden isolierten Rechenumgebungen 150A...150N definieren, die zumindest teilweise mit zum Beispiel einer solchen Koordinierung und/oder Abstraktion auf Steuerungsebene verbunden sind, diese ausführen, daraus entstehen und/oder sie erleichtern. Wenn zum Beispiel eine gegebene Arbeitsbelastung auf den einen oder mehreren der Hosts 10A 10N liegt, aber danach eine oder mehrere der Richtlinien 120 und/oder 120A...120N nicht durch diesen einen oder diese mehreren Hosts 10A...10N vollständig erfüllt oder eingehalten werden kann, können die Schaltungen 118 (z. B. durch Benachrichtigen der entsprechenden Steuerungsebenen von dem einen oder den mehreren Hosts 10A...10N auf eine integrierte und/oder koordinierte Weise) gemäß diesen Richtlinien 120 und/oder 120A...120N die Unterbringung der Arbeitsbelastung derart einstellen, dass solche Richtlinien 120 und/oder 120A...120N vollständiger erfüllt und/oder ausgeführt werden.
-
Auch können vorteilhafterweise in dieser Ausführungsform die Schaltungen 118 gemäß diesen Richtlinien 120 und/oder 120A...120N die Kommunikation und/oder Netzwerkwegauswahl (die z. B. zu verwenden ist, wenn über eines oder mehrere Netzwerke 51 kommuniziert wird) (im Falle eines Konflikts und/oder in anderen Situationen) koordinieren und/oder steuern. Wenn zum Beispiel mehrere solche Wege verfügbar sein können, können diese durch die Schaltungen 118 und/oder direkt durch einen oder mehrere solcher Hosts 10A...10N (z. B. durch Benachrichtigen einer zentralen Steuerungsebene über einen solchen Konflikt, zum Beispiel in einem oder mehreren gegebenen Hosts oder in der Netzwerkinfrastruktur) ausgewählt und/oder geändert werden. Dies kann die Art und Weise, auf die die gemeinsame Verwendung der Ressourcen durchgeführt und/oder ausgeführt werden kann, und/oder andere Parameter auswählen und/oder ändern.
-
Zum Beispiel kann es durch zweckmäßiges Konfigurieren und/oder Betreiben der Schalter 204A...204N und/oder 204 und/oder der geschützten Speicherräume 202A...202N gemäß den Richtlinien 120A...120N und/oder 120 möglich sein, einzelne durch Hardware durchgesetzte virtuelle Kommunikationsschaltungswege und/oder private Speicherräume bereitzustellen, die verwendet werden können, um die Verwendung und/oder die Bereitstellung von Diensten für und/oder unter den Hosts 10A...10N und/oder mehreren Prozessen 282A...282N der virtuellen Maschine (VM), Betriebssystemprozessen 32A...32N, Benutzern 106A...106N und/oder Benutzeranwendungsprozessen 280A...280N, die im Host-Systemspeicher 21A...21N resident sind, zuzuweisen und/oder zu isolieren, um die entsprechenden isolierten Rechenumgebungen 150A...150N auf die vorhergehend erörterte Weise bereitzustellen. Zusätzlich kann es dadurch auch möglich sein, den Zugriff zur Netzwerkverbindungsfähigkeit, den Diensten, Speicher und/oder E/A in der Cloud-Rechenumgebung 102 durch die Hosts 10A...10N und/oder mehrere Prozesse der virtuellen Maschine 282A...282N, Betriebssystemprozesse 32A...32N, Benutzer 106A...106N und/oder Benutzeranwendungsprozesse 280A...280N (auf Hardware-Ebene) auf eine sichere Weise mit verringertem (in einigen Fällen nahezu Null) Host-Prozessor-Software-Verarbeitungs-Overhead einzuschränken und/oder zuzulassen. Es kann auch möglich sein, einen sicheren Host mit einem anderen über eine gemeinsam verwendete Vernetzungsinfrastruktur zu koppeln, die Host-Sicherheitsdomäne zum Zweck des sicheren gemeinsamen Verwendens von Daten, des gemeinsamen Verwendens von Sicherheitsdiensten, des Steuerns des Orts von Daten oder des Orts der Verarbeitung und für eine potenzielle Beseitigung des Erfordernisses von unabhängiger Vernetzung oder Speichersicherheitseinsatz getrennt von der Host-Sicherheit zu erweitern, wodurch die Gesamtbetriebskosten verringert werden. Auch können vorteilhafterweise diese virtuellen Schaltungskommunikationswege und/oder privaten Speicherräume auf einer Hardware-Ebene (z. B. anstatt von und/oder über eine Software-Ebene im Falle eines virtuellen Schalters) eingerichtet und/oder durchgesetzt werden, wodurch die Sicherheit und die Verarbeitungsgeschwindigkeit in dieser Ausführungsform verbessert werden. Selbstverständlich können solche Kommunikationswege und/oder privaten Speicherräume nicht statisch zugewiesen und/oder bestimmt werden, aber stattdessen können sie dynamisch zugewiesen und/oder bestimmt werden, oder als weitere Alternative in irgendeiner Kombination von statischen und/oder dynamischen Zuweisungen zugewiesen und/oder bestimmt werden. Viele Abwandlungen sind möglich, ohne von dieser Ausführungsform abzuweichen.
-
Zum Beispiel können vorteilhafterweise in dieser Ausführungsform die Schnittstellen 153A...153N und/oder 154 gemeinsame Programmierungsschnittstellen bilden, die eine direkte Programmierung von jeder, einer oder mehreren und/oder allen der Umgebungen 150A...150N, Hosts 10A...10N, Ressourcen und/oder Speicher in der Cloud-Rechenumgebung 102 ermöglichen können. Eine solche Programmierung kann über irgendeine dieser Schnittstellen 153A...153N und/oder 154 ausgeführt werden. Vorteilhafterweise kann dies eine gemeinsame, zentralisierte und/oder vereinte Programmierschnittstelle bereitstellen, die durch einen oder mehrere erlaubte Prozesse (z. B. VMM-, Verwaltungs- und/oder nicht gezeigte vSwitch-Prozesse) verwendet werden können, um universelle, einheitliche und/oder vollständig koordinierte Richtlinien über das System 100 hinweg und für jede/n einzelne/n Knoten und/oder Ressource darin einzustellen. Dies kann eine konfliktfreie (oder im Wesentlichen konfliktfreie) gemeinsame Verwendung der physikalischen und/oder virtuellen Ressourcen im System 100 ermöglichen, die anderenfalls (z. B. durch ihre Beschaffenheit selbst) miteinander und/oder verschiedenen Arbeitsbelastungen in einem oder mehreren der Hosts in Konflikt stehen können.
-
Ferner kann vorteilhafterweise in dieser Ausführungsform, nachdem die Richtlinien über eine oder mehrere der Schnittstellen 153A...153N und/oder 154 programmiert wurden, die Ausführung und/oder das Durchsetzen der Richtlinien vollständig (oder im Wesentlichen) durch Hardware (z. B. Schaltungen 118) durchgeführt werden. Der Grad, mit dem solche Richtlinien durch Hardware durchgesetzt und/oder ausgeführt werden können, kann selbst durch die Richtlinien festgelegt und/oder angegeben werden. Dies kann die Durchsetzung und/oder Ausführung solcher Richtlinien von den VMM-, Verwaltungs- und/oder vSwitch-Prozessen zur Hardware verlagern, während es solchen Prozessen immer noch erlaubt wird, eine solche Durchsetzung und/oder Ausführung anzugeben, zu ändern, anzupassen und/oder letztendlich zu steuern. Vorteilhafterweise kann dies dieser Ausführungsform ermöglichen, (1) Flexibilität und/oder Dienste, die denjenigen ähnlich (oder besser als sie) sind, die Systeme aufweisen und/oder bieten, in denen die Richtliniendurchsetzung und/oder Ausführung durch Software (z. B. durch vSwitch-Prozesse) durchgeführt werden, und (2) Leistungen aufzuweisen und/oder zu bieten, die denjenigen ähnlich (oder besser als sie) sind, die Systeme aufweisen und/oder bieten, die die SR-IOV-Spezifikation einsetzen.
-
Insbesondere können die Flexibilität und die zentralisierte Programmierung/Steuerung, die in dieser Ausführungsform geboten werden, größer sein als diejenigen, die durch Systeme geboten werden, die vSwitch einsetzen, insbesondere, wenn eine Abwandlung an den Richtlinien wünschenswert ist, zum Beispiel, wenn die Benutzer, Knoten, Anwendungen, virtuellen Maschinen, Arbeitsbelastungen, Ressourcen, Richtlinien und/oder Dienste des Systems sich ändern (z. B. wenn sie zum System hinzugefügt oder davon entfernt werden). In dieser Situation können ein oder mehrere erlaubte Prozesse (z. B. VMM, Verwaltung und/oder nicht gezeigte vSwitch-Prozesse) eine oder mehrere der Richtlinien zumindest teilweise neu programmieren, um solche Änderungen über eine oder mehrere Schnittstellen 153A...153N und/oder 154 widerzuspiegeln. Alternativ oder zusätzlich und ohne von dieser Ausführungsform abzuweichen, können ein/e oder mehrere nicht gezeigte Prozesse und/oder Programmerweiterungen, die in einer/einem oder mehreren der Recheninstanzen und/oder Speicherräume 202A...202N resident sind und/oder ausgeführt werden, über eine oder mehrere Schnittstellen 153A...153N und/oder 154 eine oder mehrere der Richtlinien zumindest teilweise neu programmieren, um solche Änderungen widerzuspiegeln. Wenn solche Änderungen auftreten, während einer oder mehrere der Hosts, die an den resultierenden Änderungen der Arbeitsbelastung beteiligt sind, arbeiten (z. B. im Falle einer Migration während des Betriebs), können die Richtlinien zumindest teilweise angepasst werden, um neue kumulierte und/oder einzelne Anforderungen an die Arbeitsbelastung (und/oder andere) widerzuspiegeln und/oder zu beeinflussen, an welche der Hosts die Arbeitsbelastungen zu verteilen sind (z. B. um die Ressourcennutzung und/oder Übereinstimmung mit den Dienstvereinbarungen zu optimieren).
-
Zusätzlich können die Schnittstellen 153A...153N und/oder 154, die Speicherräume 202A...202N und/oder 202 und/oder die Schalter 204A...204N und/oder 204 vor einer unerlaubten Interaktion zwischen Betriebssystem und/oder virtueller Maschine/Prozess geschützt werden. Wenn zum Beispiel ein oder mehrere Betriebssystemprozesse 32A...32N, virtuelle Maschinenprozesse 282A...282N, Anwendungsprozesse 280A...280N, VMM-Prozesse 151 und/oder Verwaltungsprozesse 152 versuchen, (über eine oder mehrere Schnittstellen 154) eine oder mehrere unerlaubte Änderungen an einer oder mehreren der Richtlinien 120A...120N und/oder 120 und/oder an den entsprechenden Konfigurationen und/oder Operationen von einem oder mehreren der Schalter 204A...204N, 204, und/oder Speicherräume 202A...202N, 202 vorzunehmen, können eine oder mehrere Schnittstellen 154 und/oder Schaltungen 118 die eine oder die mehreren unerlaubten Änderungen zurückweisen. In dieser Ausführungsform kann eine unerlaubte Änderung eine Änderung umfassen, die (1) einer/einem der durch einen Administrator eingerichteten Erlaubnisse und/oder Parameter widerspricht, und/oder (2) nicht als mit solchen Erlaubnissen und/oder Parametern übereinstimmend überprüft wurde. Solche Erlaubnisse und/oder Parameter können zum Beispiel globale (z. B. Cloud-Rechenumgebungs-weite) Ressourcen und/oder Richtlinienkonfliktlösungs/Verwendungsregeln umfassen, die sicherstellen können, dass Richtlinien und/oder Richtlinienänderungen nicht miteinander in Konflikt stehen, gemäß den Fähigkeiten der Cloud-Rechenumgebung sein können usw. Zusätzlich oder alternativ können in dieser Ausführungsform solche Erlaubnisse und/oder Parameter eine Änderung an einer gegebenen Richtlinie (und/oder z. B. die Hinzufügung einer oder mehrerer Arbeitsbelastungen, Anwendungen, VM usw.) verhindern und/oder zurückweisen, wenn diese Änderung eine oder mehrere gegenwärtige Dienstvereinbarungsverpflichtungen nachteilig beeinträchtigen würde.
-
Zusätzlich oder alternativ kann in dieser Ausführungsform lediglich eine vertrauenswürdige Instanz (z. B. Schaltungen 118, ein Virtual Machine Manager und/oder einer oder mehrere zugehörige Steuerungsprozesse (z. B. ein oder mehrere Planungs/Verwaltungsmechanismen 121, die in 1 gezeigt sind)) in der Lage sein, eine oder mehrere Richtlinien 120 und/oder 120A...120N abzuwandeln. Dementsprechend kann in dieser Ausführungsform ein/e gegebene/r Benutzer und/oder virtuelle Maschine (als nicht vertrauenswürdig) deaktiviert werden und nicht mehr in der Lage sein, eine oder mehrere Richtlinien 120 und/oder 120A...120N abzuwandeln. Daher können, wenn eine solche Anordnung in dieser Ausführungsform vorhanden ist, die Richtlinien 120 und/oder 120A...120N in einem einzigen geschützten Speicherraum, zum Beispiel in einem einzigen von den Hosts 10A...10N, gespeichert werden. In dieser Ausführungsform können einer oder mehrere Mechanismen 121 zumindest teilweise einen oder mehrere Prozesse umfassen, die zumindest teilweise durch zum Beispiel Schaltungen 118 und/oder eine oder mehrere Komponenten (z. B. einen oder mehrere Host-Prozessoren und/oder andere Ressourcen) ausgeführt werden, die zumindest teilweise in der Cloud-Umgebung 102 und/oder einem oder mehreren der Hosts 10A...10B enthalten sind. Alternativ oder zusätzlich können einer oder mehrere Mechanismen 121 (als Ganzes oder teilweise) in oder durch Hardware (z. B. Schaltungen 118) enthalten sein.
-
Verschiedene vorteilhafte Verwendungsmodelle können durch diese Ausführungsform ins Auge gefasst werden. Zum Beispiel können durch ein zweckmäßiges Steuern der Schaltungen 118 und/oder einer oder mehrerer Komponenten davon über eine oder mehrere Schnittstellen 154 auf die vorhergehende Art, eine oder mehrere entsprechende Sendungen TT1...TTN von einem oder mehreren entsprechenden Paketen von einem oder mehreren Netzwerken 51 an eine oder mehrere entsprechende der Rechenumgebungen 150A...150N zumindest teilweise zugelassen werden (oder nicht zugelassen werden). Diese Erlaubnis kann Sendung für Sendung (und/oder alternativ oder zusätzlich CPU-Kern für CPU-Kern, Quelle für Quelle, Paket für Paket, Fluss für Fluss, isolierte Rechenumgebung für isolierte Rechenumgebung usw.) zumindest teilweise auf der Grundlage, ob (1) die einen oder mehreren entsprechenden der Umgebungen 150A...150N, die zum Empfangen der einen oder mehreren entsprechenden Sendungen TT1...TTN bestimmt sind (z. B. wie durch entsprechende Sendungen adressiert), für diese (z. B. für und/oder zum Empfangen der einen oder mehreren entsprechenden Sendungen TT1...TTN) durch eine oder mehrere Richtlinien 120A...120N und/oder 120 zugelassen sind, und/oder (2) der Untersuchung solcher Pakete, Flüsse und/oder Sendungen durch Schaltungen 118 und/oder eine oder mehrere Komponenten davon zum Vergleich mit den Parametern von den einen oder mehreren solchen Richtlinien, erteilt (oder je nach Fall verweigert) werden.
-
Zusätzlich oder alternativ kann/können durch zweckmäßiges Steuern der Schaltungen 118 und/oder einer oder mehrerer Komponenten davon über eine oder mehrere Schnittstellen 154 auf die vorhergehende Weise eine oder mehrere entsprechende Sendungen TF1...TFN von einem oder mehreren entsprechenden Paketen von einer oder mehreren entsprechenden der Rechenumgebungen 150A...150N an eines oder mehrere Netzwerke 51 zumindest teilweise zugelassen (oder nicht zugelassen) werden. Diese Erlaubnis kann Sendung für Sendung (und/oder alternativ oder zusätzlich CPU-Kern für CPU-Kern, Ziel für Ziel, Paket für Paket, Fluss für Fluss, isolierte Rechenumgebung für isolierte Rechenumgebung usw.) zumindest teilweise auf der Grundlage, ob (1) die eine oder die mehreren entsprechenden der Umgebungen 150A...150N, von denen die eine oder die mehreren entsprechenden Sendungen TF1...TFN gesendet werden, für dieselbe (z. B. für und/oder zur Ausgabe von einer oder mehreren entsprechenden Sendungen TF1...TFN) durch die eine oder die mehreren Richtlinien 120A...120N und/oder 120 zugelassen sein können, und/oder (2) der Untersuchung solcher Pakete, Flüsse und/oder Sendungen durch Schaltungen 118 und/oder eine oder mehrere Komponenten davon zum Vergleich mit den Parametern von der einen oder den mehreren solcher Richtlinien erteilt (oder je nach Fall verweigert) werden.
-
Zusätzlich oder alternativ und ohne von dieser Ausführungsform abzuweichen, kann die Gewährung oder Verweigerung der Erlaubnis für eine oder mehrere der Sendungen TT1...TTN und/oder TF1...TFN zumindest teilweise gemäß einer oder mehreren Richtlinien 120A...120N und/oder 120 verzögert, neu priorisiert und/oder neu geplant werden. Ferner können zusätzlich oder alternativ eine oder mehrere der Sendungen TT1...TTN und/oder TF1...TFN zumindest teilweise an einen oder mehrere geschützte Speicherräume zur weiteren Verarbeitung (z. B. für Dienste, die gegenwärtig nicht in der Hardware-Sende-Pipeline verfügbar sind, wie beispielsweise ein Sicherheits- und/oder ein Tunneling-Mechanismus) in Übereinstimmung mit einer oder mehreren Richtlinien 120A...120N und/oder 120 ausgegeben werden. Nach einer solchen Verarbeitung können eine oder mehrere der Sendungen TT1...TTN und/oder TF1...TFN an einen oder mehrere vSwitch-Prozesse geliefert werden und/oder an einen oder mehrere geschützte Speicherräume und von dort an die Schaltungen 118 zur Lieferung an eine oder mehrere VM oder Anwendungen gesendet werden.
-
Andere vorteilhafte Verwendungsmodelle sind auch möglich. Zum Beispiel können, wenn sie durch zweckmäßige Steuerungsschaltungen 118 und/oder eine oder mehrere Komponenten davon über eine oder mehrere Schnittstellen 154 auf die vorhergehende Weise durchgesetzt werden, eine oder mehrere Richtlinien 120A...120N und/oder 120 eine oder mehrere (und in dieser Ausführungsform mehrere) virtuelle Rechenzonen 260A...260N in der Cloud-Rechenumgebung 102 (siehe 3) einrichten und/oder definieren. Jede der entsprechenden Rechenzonen 260A...260N kann einen oder mehrere entsprechende Server 264A...264N umfassen, die eine oder mehrere entsprechende virtuelle Maschinen 262A...262N umfassen können. Diese/r eine oder mehreren entsprechenden Server 264A...264N und/oder virtuellen Maschinen 262A...262N können einen oder mehrere entsprechende Dienste (z. B. innerhalb der Cloud-Umgebung 102 und/oder über ein oder mehrere Netzwerke 51 für einen oder mehrere nicht gezeigte Dienstempfänger außerhalb der Umgebung 102) S1...SN bereitstellen. In diesem Verwendungsmodell von dieser Ausführungsform können dieser eine oder mehreren entsprechenden Dienste S1...SN zumindest teilweise gemäß und/oder auf der Grundlage von einer oder mehreren entsprechenden Richtlinien 270A...270N verwaltet, gesteuert, überwacht und/oder eingerichtet werden. Diese eine oder mehreren entsprechenden Richtlinien 270A...270N können in und/oder für jede der entsprechenden Zonen 260A...260N eingerichtet und/oder ihnen zugehörig sein und/oder können zusätzlich zu den Richtlinien 120 bestehen und/oder sich davon unterscheiden. Vorteilhafterweise kann dies das Ausführen virtueller Rechenzonen 260A...260N in der Umgebung 102 (z. B. unter Verwendung der Komponenten der Hosts 10A...10N) ermöglichen, die Dienste innerhalb und/oder außerhalb der Umgebung 102 zumindest teilweise auf der Grundlage von einer oder mehreren Richtlinien 270A...270N ausführen und/oder bereitstellen, die sich von anderen Richtlinien 120, die verwendet werden können, um die Umgebungen 150A...150N der Benutzer der Cloud-Umgebung zu definieren und/oder einzurichten, unterscheiden und/oder getrennt davon verwaltet werden können.
-
In dieser Ausführungsform kann eine virtuelle Maschine, obgleich 3 veranschaulicht, dass ein Server eine oder mehrere virtuelle Maschinen umfassen kann, alternativ, ohne von dieser Ausführungsform abzuweichen, zumindest teilweise auf mehreren Servern stehen. Viele Alternativen sind möglich, ohne von dieser Ausführungsform abzuweichen.
-
Daher kann eine Ausführungsform Richtlinien-Engine-Schaltungen umfassen, die zumindest teilweise eine oder mehrere Plattform-Ressourcenverwaltungsrichtlinien in einer Cloud-Rechenumgebung durchsetzen können. Die eine oder mehreren Richtlinien können zumindest teilweise auf Dienstvereinbarungen (z. B. mit Benutzern) der Cloud-Rechenumgebung gründen. Die eine oder mehreren Richtlinien können entsprechende isolierte Rechenumgebungen in der Cloud-Rechenumgebung einrichten, die durch entsprechende der Benutzer verwendet werden können. Die Durchsetzung der einen oder mehreren Richtlinien kann zur Folge haben, dass die entsprechenden isolierten Rechenumgebungen virtuell voneinander isoliert sind und verhindert wird, dass sie einander in Abweichung von der einen oder den mehreren Richtlinien stören. Die eine oder mehreren Richtlinien können zumindest teilweise über die Interaktion von mindestens einem Verwaltungsprozess mit einer oder mehreren Anwendungsprogrammschnittstellen der Schaltungen eingerichtet werden. Die Durchsetzung der einen oder mehreren Richtlinien kann auch zumindest teilweise (1) die zumindest partielle Zuweisung von einer oder mehreren Arbeitsbelastungen in der Cloud-Rechenumgebung, (2) die zumindest partielle Koordinierung der Ressourcenzuweisung in der Cloud-Rechenumgebung und/oder (3) die zumindest partielle Koordinierung der Ressourcenzuweisung durch einen oder mehrere Planungsmechanismen (z. B. einen oder mehrere Planungsmechanismen 121 oder einen einzigen Planungsmechanismus) in der Cloud-Rechenumgebung zur Folge haben. Die eine oder mehreren Arbeitsbelastungen können zumindest teilweise einer oder mehreren Richtlinien zugehörig sein und/oder die Zuordnung der einen oder mehreren Arbeitsbelastungen kann zumindest teilweise auf der einen oder den mehreren Richtlinien und/oder Rückkopplungsinformationen der Cloud-Rechenumgebung gründen.
-
In dieser Ausführungsform können die eine oder mehreren Richtlinien auf und/oder über einen oder mehrere physikalische Hosts, über die Interaktion mit einem oder mehreren Cloud-Umgebungs-Planungs-, Verwaltungs- und/oder Durchsetzungsmechanismen (z. B. Mechanismus 121) eingerichtet werden. Wenn sie durchgesetzt und/oder ausgeführt werden, können solche Richtlinien in der Lage sein, die Infrastruktur und/oder Dienste (z. B. Netzwerkgeräte, Speichergeräte usw.) einzurichten, bereitzustellen und/oder zu beeinträchtigen, und/oder zur Folge haben, dass (1) Rückkopplungsinformationen (z. B. Ressourcennutzung, Verfügbarkeit und/oder Ressourcen/Richtlinienkonflikt/Konkurrenzinformationen) von Infrastruktur, Ressourcen, Hosts und/oder Diensten und/oder (2) Arbeitsbelastungszuweisung und/oder Abwandlung zumindest teilweise auf der Grundlage von solchen Rückkopplungsinformationen und/oder Richtlinien 120 und/oder 120A...120N gesammelt werden.
-
Daher können in dieser Ausführungsform die Schaltungen 118 in der Lage sein, Hardware-Unterstützung für eine oder mehrere VMM-(und/oder zentral gesteuerte oder verteilte Cloud-Umgebungs-Planungs/Verwaltungs)-Prozesse (z. B. einen oder mehrere Planungs/Verwaltungsmechanismen 121) beim Steuern und/oder Durchsetzen der Ressourcenbereitstellung, Zuweisung und/oder Abwandlung, z. B. gemäß einer oder mehreren Richtlinien, bereitzustellen. Vorteilhafterweise kann in dieser Ausführungsform als ein Ergebnis von zumindest teilweise der Verwendung der Schaltungen 118 erheblich verringerte und/oder im Wesentlichen konstante Beträge von CPU (und/oder CPU-Kern) Verarbeitungs-Overhead beim Einrichten und/oder Erhalten der isolierten Rechenumgebungen und/oder beim Bereitstellen der Dienste der Cloud beteiligt sein. Tatsächlich kann zumindest in einigen Ausführungen dieser Ausführungsform der Betrag eines solchen CPU-Verarbeitungs-Overheads im Wesentlichen null sein. Vorteilhafterweise kann es dies dieser Ausführungsform erlauben, eine merklich verbesserte CPU-, Host- und/oder Server-Leistung aufzuweisen. Ferner kann dies vorteilhafterweise dieser Ausführungsform ermöglichen, viel einfacher und/oder effizienter zu skalieren, wenn die Netzwerkbandbreite, Netzwerkübertragungsgeschwindigkeit und/oder die Anzahl der Hosts, Benutzer und/oder Richtlinien zunimmt, ohne unter unerwünscht hohen Anstiegen beim Virtualisierungsverarbeitungs-Overhead, der Gefahr von Netzwerkübertragungsverlusten und/oder Verarbeitungslatenzen zu leiden.
-
Ferner kann in dieser Ausführungsform vorteilhafterweise als ein Ergebnis von zumindest teilweise der Verwendung der Schaltungen 118 ein bekannter Abschnitt aller Host-Ressourcen in der Cloud-Umgebung 102, die für Rechen- und E/A-Dienste verwendet werden, beim Einrichten und/oder Erhalten der isolierten Rechenumgebungen und/oder beim Bereitstellen der Dienste der Cloud verwendet werden. Vorteilhafterweise können in dieser Ausführungsform die Hosts 10A...10N konfiguriert sein, um durch mehrere Benutzer gemäß ihren entsprechenden Dienstvereinbarungen verwendet zu werden, z. B. indem die Richtlinien 120 und/oder 120A...120N in die Hosts 10A...10N aufgenommen werden, derart, dass die Durchsetzung der Ressourcennutzung gemäß den Richtlinien 120 und/oder 120A...120N „automatisch” auf der Plattform-Ebene (z. B. ohne Beteiligung der Software in Echtzeit) aber unter lokaler (z. B. Virtual Machine Manager) und/oder entfernter (z. B. Cloud-Umgebungs-Management) Software-Steuerung (z. B. zumindest teilweise durch einen oder mehrere Mechanismen 121 bereitgestellt) stattfinden kann.
-
Ferner kann diese Ausführungsform zumindest teilweise als ein Ergebnis der Verwendung der Schaltungen 118 zur Richtliniendurchsetzung und zum Erhalten der Isolation zwischen den Rechenumgebungen in dieser Ausführungsform, vorteilhafterweise in der Lage sein, Echtzeit- oder Nahezu-Echtzeit-Feingranularitäts-Dienstgüteanpassungen bereitzustellen, wenn sich die Arbeitsbelastungen in und/oder unter den Hosts ändern. Ferner ermöglichen die Schaltungen 118 vorteilhafterweise in dieser Ausführungsform die Integration und/oder die enge Kopplung von Sicherheitserwägungen (z. B. auf der Hardware-Ebene) in sowohl die Cloud-Umgebung als Ganzes als auch in die einzelnen Hosts und individuelle Komponenten davon. Vorteilhafterweise kann dies dieser Ausführungsform ermöglichen, eine verbesserte Funktionalität und/oder Effizienz zu erreichen und/oder ihre Komplexität und/oder Kosten für Betrieb und/oder Ausführung zu verringern.
-
Ferner können in dieser Ausführungsform vorteilhafterweise Hardware-Schalter 204A...204N und/oder 204 eine flexible direkte hardwarebasierte Kommunikation (gemäß den einen oder den mehreren Richtlinien) mit einer oder mehreren der Netzwerkschnittstellensteuerungen 50A...50N und/oder anderen Komponenten der Cloud-Rechenumgebung ermöglichen, anstatt über einen oder mehrere virtuelle Schalter (vSwitches) zu kommunizieren. Dies kann die Geschwindigkeit und Effizienz der Steuerung und/oder Kommunikation mit den Netzwerkschnittstellensteuerungen und/oder anderen Komponenten erheblich verbessern, während die Durchsetzung solcher Richtlinien beim Durchführen solcher Steuerungen und/oder Kommunikation auf einer Hardware-Ebene integriert wird.
-
Zusätzlich oder alternativ können in dieser Ausführungsform, wenn alle der Dienste und Schaltungen, die beim Ausführen einer gegebenen Richtlinie in Bezug auf ein Paket verfügbar sind, die Schaltungen 118 diese Richtlinie „automatisch” ausführen und können das Paket wie jeweils anwendbar an und von der Instanz leiten (z. B. Virtual Memory Manager und/oder ein/e oder mehrere virtuelle Maschinen und/oder Anwendungsprozesse, sei es, ob sie durch den Virtual Memory Manager oder auf eine andere Weise gesteuert werden), die bei dieser Verarbeitung beteiligt sind. Wenn umgekehrt eine/r oder mehrere der Dienste und/oder Schaltungen, die beim Ausführen der gegebenen Richtlinie beteiligt sind, nicht verfügbar sind, kann das Paket eine oder mehrere Iterationen von Folgendem durchlaufen: Software-Verarbeitung in einem oder mehreren geschützten Speicherräumen und danach kann das Paket den Schaltungen 118 zurück zur Lieferung an die zweckmäßige Instanz zur weiteren Verarbeitung bereitgestellt werden. Im Vorhergehenden können die Schaltungen 118 das Leiten/Weiterleiten der Pakete zwischen oder unter den Komponenten des Systems 100, die in der vorhergehenden Verarbeitung beteiligt sind, von einem vSwitch-Prozess verlagern, während sie sich (zumindest teilweise) unter der Steuerung des vSwitch-Prozesses befinden. Der eine oder die mehreren Hosts 10A...10N, die an der vorhergehenden Verarbeitung beteiligt sind, können ihre Fähigkeiten dem vSwitch, Virtual Machine Manager Prozessen und/oder einem oder mehreren Planungsmechanismen (und/oder der nicht gezeigten Steuereinrichtung) offenlegen und der vSwitch-Prozess kann die Richtlinien offenlegen und die eine oder mehreren entsprechenden virtuellen Maschinen zum Verarbeiten des Pakets auf der Grundlage pro Richtlinie identifizieren. Dies kann es dem einen oder den mehreren Hosts 10A...10N ermöglichen, die zweckmäßigen Richtlinien auf entsprechenden Paketen auszuführen und/oder andere Dienste auszuführen.
-
Zusätzlich oder alternativ und ohne von dieser Ausführungsform abzuweichen, können Hardware- und Software-Steuerung zumindest teilweise in einem hybriden Betriebsmodus in einer oder mehreren von denselben Plattformen (z. B. Hosts) gemeinsam vorhanden sein. In dieser Situation können die Hardware und Software-Steuerungsmechanismen über Änderungen in der/dem virtuellen Maschine, Anwendung, Dienst, Prozess usw. bei der Affinität mit, der Unterbringung in, der Zuweisung zu und/oder der Ausführung durch solche Plattformen, Plattform-CPU und/oder CPU-Kerne informiert werden. Während zum Beispiel virtuelle Maschinen dynamisch geplant werden, um auf einem gegebenen CPU-Kern ausgeführt zu werden, und danach entfernt werden, können einer oder mehrere vSwitch-Prozesse den Schaltungen 118 eine rechtzeitige Angabe darüber bereitstellen. Alternativ oder zusätzlich können ein oder mehrere vSwitch-Prozesse die Schaltungen 118 leiten, um eine Teilmenge von virtuellen Maschinen zu steuern, während eine andere Teilmenge von virtuellen Maschinen durch Software gesteuert werden kann. Ein oder mehrere vSwitch-Prozesse können die Schaltungen über die summierte gemeinsame Verwendung von Ressourcen, Benutzer, virtuelle Maschinen und/oder Anwendungen benachrichtigen, die durch Software zu steuern sind, während es den Schaltungen 118 ermöglicht wird, den Rest davon gemäß den Richtlinien 120 zu steuern.
-
Ferner kann in dieser Ausführungsform angesichts der relativen Einfachheit und Schnelligkeit, mit denen sich ändernde Umstände in dieser Ausführungsform (z. B. durch Schaltungen 118) festgestellt und/oder Richtlinien zumindest teilweise angepasst werden können, um diese zu berücksichtigen, diese Ausführungsform in der Lage sein, Echtzeit- oder Nahezu-Echtzeit-Feingranularität für Dienstgüteanpassungen, die vorzunehmen sind, und/oder statistisch genaue Sichtbarkeit von Arbeitsbelastungen und/oder Ressourcenverwendungen bereitzustellen, während sich die Arbeitsbelastungen und/oder Verwendungen in und/oder unter den Rechenknoten ändern. Dies kann insbesondere in Fällen zutreffen, in denen die Anpassungen an und/oder die Sichtbarkeit solcher Arbeitsbelastungen und/oder Nutzungen pro Benutzer/Arbeitsbelastung in Übereinstimmung mit den Benutzerdienstvereinbarungen zu bewerkstelligen ist. Ferner kann in dieser Ausführungsform vorteilhafterweise der Umfang der Programmierung, den das Vornehmen solcher Anpassungen mit sich bringt, erheblich verringert werden und/oder kann durch eine vereinte aber verteilte Steuerungsschnittstelle durchgeführt werden.
-
Andere Abwandlungen sind auch möglich. Zum Beispiel können in Abhängigkeit von der bestimmten Ausführung ein oder mehrere virtuelle Schalter gemeinsam mit den Schaltern 204A...204N und/oder 204 eingesetzt werden. Auch können die Anzahl, die Typen und/oder Konfigurationen der Hosts 10A...10N, der Cloud-Umgebung 102, der Umgebungen 150A...150N, der Rechenzonen 260N...260N und/oder Server 264A...264N (und/oder von Komponenten, die darin enthalten sind) variieren, ohne von dieser Ausführungsform abzuweichen. Zusätzlich oder alternativ können eine oder mehrere Netzwerkschnittstellensteuerungen in der Umgebung 102 in der Lage sein, Protokoll- und/oder andere Netzwerkverbindungsfähigkeitsverarbeitung zustandslos zu verlagern.
-
Zusätzlich oder alternativ kann in dieser Ausführungsform die Paketverarbeitung zumindest teilweise in Hardware beginnen aber zumindest teilweise in Software ergänzt und/oder abgeschlossen werden. In dieser Ausführungsform können zum Beispiel die Schaltung 118 und/oder einer oder mehrere Schalter 204A...204N in der Lage sein, ein oder mehrere Paketverarbeitungsmerkmale und/oder Funktionen zumindest teilweise auszuführen. Diese Merkmale und/oder Funktionen können eine oder mehrere physikalische und/oder virtuelle Funktionen umfassen und/oder darüber aufgerufen werden. Diese eine oder mehreren physikalischen und/oder virtuellen Funktionen können zum Beispiel entsprechende Dienstgüte-, Sicherheits-, Schalt-, Routing- und/oder Paketvalidierungsfunktionen umfassen, die entsprechenden Paketflüssen, virtuellen Maschinen und/oder Dienstvereinbarungen pro Richtlinie, Paketfluss, virtuelle Maschine und/oder Dienstvereinbarung zugehörig und/oder zugewiesen sind. Zum Beispiel können ein oder mehrere Schalter 204A...204N eine oder mehrere nicht gezeigte Warteschlangen, Nachschlagtabellen und/oder andere Datenstrukturen, die entsprechende empfangene Pakete und/oder Pakete, die mit einem oder mehreren zugehörigen entsprechenden Paketflüssen zu übermitteln sind, speichern und/oder verbinden können, erzeugende und/oder empfangende virtuelle Maschinen, Dienste und/oder Verarbeitung, der die Pakete zu unterziehen sind (oder unterzogen wurden), Dienstgüte und/oder andere Parameter usw., die (zumindest teilweise) in einer oder mehreren Richtlinien 120A...120N und/oder 120 angegeben werden können, zumindest teilweise im entsprechenden privaten Speicher 202A...202N halten. Einer oder mehrere Schalter 204A...204N können (z. B. basierend auf zumindest teilweise dem Kopf, der Einkapselung und/oder anderer Informationen, die in den entsprechenden Paketen und/oder einen oder mehreren Richtlinien 120A...120N und/oder 120 enthalten sind) die entsprechende Verarbeitung, die die Pakete zu durchlaufen haben, identifizieren und kann die Pakete verarbeiten und/oder leiten, um sicherzustellen, dass sie eine solche Verarbeitung durchlaufen. Zum Beispiel kann ein gegebenes Paket anfangs eine Hardware-Verarbeitung (gemäß den Richtlinien 120A...120N und/oder 120) in einem oder mehreren Schaltern 204A...204N und/oder Verlagerungs-Hardware (nicht gezeigt) durchlaufen, die in zum Beispiel einer oder mehreren Ressourcen 302A...302N (z. B. einer oder mehreren nicht gezeigten Netzwerkschnittstellensteuerungen) enthalten sein kann. Danach können ein oder mehrere Schalter 204A...204N das gegebene Paket an eine oder mehrere zusätzliche Instanzen leiten, um das gegebene Paket zu verarbeiten. Zum Beispiel können eine oder mehrere zusätzliche Instanzen einen oder mehrere Software-Prozesse (nicht gezeigt) in dem einen oder den mehreren geschützten Räumen 202A...202N und/oder im Virtual Machine Manager umfassen. Danach können der eine oder die mehreren Schalter 204A...204N das gegebene Paket direkt an seine virtuelle Zielmaschine oder andere Zielinstanz leiten, entweder innerhalb der Cloud-Umgebung 102 oder einem oder mehreren Netzwerke 51. Vorteijhafterweise kann dies eine verbesserte Paketverarbeitungseffizienz über Hardware-Verarbeitung bereitstellen, während die Verarbeitungsflexibilität und die Vielfalt über Software bewahrt werden. In dieser Ausführungsform kann eine VM über Daten informiert werden, die zum Beispiel über (1) einen oder mehrere Interrupts (2) einen oder mehrere Interrupts, die direkt der VM bereitzustellen sind (wahlweise unter Verwendung von Informationen, die der Schaltungen 118 bereitgestellt werden, wenn geplant ist, dass die VM ausgeführt wird und Kern-Affinität angibt) und/oder (3) ohne Bereitstellung eines Interrupts aber z. B. unter Verwendung solcher Informationen und unter Beteiligung der VM und/oder Schaltungen 118, die periodisch den Zustand der Verarbeitungswarteschlange überprüfen, zu empfangen oder zu übermitteln sind.
-
Viele andere Abwandlungen sind möglich. Zum Beispiel können die vorhergehenden Techniken dieser Ausführungsform zur Verwendung in einem einzelnen physikalischen Host bei Nichtvorhandensein von Virtualisierung (mindestens in Bezug auf die Merkmale dieser Ausführungsform) angewandt werden. In diesem einzelnen Host können eine oder mehrere nicht gezeigte Anwendungen für eine analoge Rolle wie diejenige dienen, für die die eine oder mehreren virtuellen Maschinen in einer virtualisierten Umgebung dienen.
-
Andere Abwandlungen sind auch möglich. Zum Beispiel können die Schaltungen 118 zumindest teilweise in der Lage sein, die Verwendung der entsprechenden Ressourcen (z. B. auf der Grundlage pro Benutzer) zu messen. Solche Messungen können verwendet werden, um das zumindest partielle Aktualisieren und/oder Abwandeln von einer oder mehreren entsprechenden Richtlinien und/oder Richtlinienanforderungen von entsprechenden Benutzern zu erleichtern. Zum Beispiel können einer oder mehrere Dienstanbieter und/oder Benutzer über solche Messungen und/oder andere Daten, die daraus erzeugt werden, benachrichtigt werden, um das Einrichten der abgewandelten Richtlinien, die für die tatsächlichen gemessenen Verwendungsmuster und/oder für eine effizientere Unterbringung der Arbeitsbelastung besser geeignet sind, zumindest teilweise zu erleichtern.
-
Zusätzlich oder alternativ können ein oder mehrere vSwitch-Prozesse zumindest teilweise in der Lage sein, einen oder mehrere Befehle an die Schaltungen 118 auszugeben, die zur Folge haben können, dass die Schaltungen 118 den Verkehr zumindest teilweise auf der Grundlage pro Fluss, Menge von Flüssen, VM und/oder Benutzer zumindest teilweise gemäß relevanter Richtlinien handhaben. Es kann auch zur Folge haben, dass die Schaltungen 118 in einem Betriebsmodus arbeiten, in dem Daten sich in einem oder mehreren geschützten Speicherräumen befinden, und/oder die einen oder mehreren Befehle können in solchen Räumen ausgeführt werden, um eine weitere Verarbeitung des Verkehrs zu erleichtern, und danach kann der Verkehr zur weiteren Verarbeitung an die Schaltungen gesendet werden. Es kann auch einen partiellen Hardware-Verlagerungsmodus aktivieren, in dem ein Teil der Verarbeitung des Verkehrs in Hardware (mit oder ohne Verwendung des geschützten Speichers) durchgeführt werden kann, und der Verkehr danach an den einen oder die mehreren vSwitch-Prozesse gesendet werden kann.
-
Daher werden in dieser Ausführungsform verschiedene Verwendungsmodelle ins Auge gefasst. Zum Beispiel kann die Verarbeitung von Verkehr anfangs zumindest teilweise durch Hardware bereitgestellt werden und von dort durch Schaltungen 118 zur weiteren Verarbeitung an die Software weitergeleitet werden, und kann von dort zur weiteren Verarbeitung an die Hardware zurückgesendet werden. Zusätzlich oder alternativ kann der Betrieb dieser Ausführungsform unter und/oder in enger Kopplung an die Richtlinien 120 durchgeführt werden. Auch zusätzlich oder alternativ können einer oder mehrere geschützte Speicherräume bereitgestellt werden, die zumindest teilweise nicht der Steuerung von einem oder mehreren VMM-Prozessen unterliegen. Ferner können die Schaltungen 118 zusätzlich oder alternativ in der Lage sein, zumindest teilweise zu erlauben, dass Verkehr und/oder andere Daten anfangs durch Software verarbeitet werden, die nicht Teil des einen oder der mehreren VMM-Prozesse ist, bevor die Verarbeitung durch den einen oder die mehreren VMM-Prozesse zugelassen wird.
-
Noch andere Abwandlungen sind möglich. Dementsprechend sollte diese Ausführungsform breit als alle solchen Alternativen, Abwandlungen und Varianten umfassend aufgefasst werden.