Freigeben über


Partitionen

Der Hypervisor unterstützt die Isolation in Bezug auf eine Partition. Eine Partition ist eine logische Einheit der Isolation, die vom Hypervisor unterstützt wird und in der die Betriebssysteme ausgeführt werden.

Partitionsberechtigungsflags

Jede Partition verfügt über einen Satz von Berechtigungen, die vom Hypervisor zugewiesen werden. Berechtigungen steuern den Zugriff auf synthetische MSRs oder Hypercalls.

Eine Partition kann ihre Berechtigungen über das CPUID-Blatt (0x40000003) "Hypervisor Feature Identification" abfragen. Eine Beschreibung aller Berechtigungen finden Sie unter HV_PARTITION_PRIVILEGE_MASK .

Partitionsabsturz: Unerklärung

Der Hypervisor stellt Gastpartitionen mit einer Absturzabbildfunktion bereit. Diese Schnittstelle ermöglicht es dem Betriebssystem, das in einer Gastpartition ausgeführt wird, im Rahmen des Absturzabbildverfahrens forensische Informationen zu schwerwiegenden Betriebssystembedingungen für den Hypervisor bereitzustellen. Zu den Optionen gehören das Beibehalten des Inhalts des Gastabsturzparameters MSRs und das Angeben einer Absturzmeldung. Der Hypervisor stellt diese Informationen dann der Stammpartition für die Protokollierung zur Verfügung. Dieser Mechanismus ermöglicht es dem Virtualisierungshostadministrator, Informationen zum Absturzereignis des Gastbetriebssystem zu sammeln, ohne den persistenten Speicher, der an die Gastpartition angefügt ist, auf Absturzabbild- oder Kernspeicherabbildinformationen überprüfen zu müssen, die möglicherweise vom abstürzenden Gastbetriebssystem dort gespeichert werden.

Die Verfügbarkeit dieses Mechanismus wird über CPUID.0x400003.EDX:10, das GuestCrashMsrsAvailable-Flag angegeben. Weitere Informationen finden Sie unter Featureermittlung.

Schnittstelle für Gastabstürze

Die Schnittstelle zum Absturz von Gastabstürzen wird über sechs synthetische MSRs bereitgestellt, wie unten definiert.

#define HV_X64_MSR_CRASH_P0 0x40000100
#define HV_X64_MSR_CRASH_P1 0x40000101
#define HV_X64_MSR_CRASH_P2 0x40000102
#define HV_X64_MSR_CRASH_P3 0x40000103
#define HV_X64_MSR_CRASH_P4 0x40000104
#define HV_X64_MSR_CRASH_CTL 0x40000105

Gastabsturzsteuerung MSR

Die MSR-HV_X64_MSR_CRASH_CTL der Gastabsturzsteuerung kann von Gastpartitionen verwendet werden, um die Gastabsturzfunktionen des Hypervisors zu bestimmen und die angegebene Aktion aufzurufen. Die HV_CRASH_CTL_REG_CONTENTS Datenstruktur definiert den Inhalt der MSR.

Bestimmen von Gastabsturzfunktionen

Um die Gastabsturzfunktionen zu bestimmen, lesen Gastpartitionen möglicherweise die HV_X64_MSR_CRASH_CTL Registrieren. Die vom Hypervisor unterstützten Aktionen und Funktionen werden gemeldet.

Aufrufen von Gastabsturzfunktionen

Um eine unterstützte Hypervisor-Gastabsturzaktion aufzurufen, schreibt eine Gastpartition in das HV_X64_MSR_CRASH_CTL Register und gibt die gewünschte Aktion an. Es werden zwei Varianten unterstützt: CrashNotify allein und CrashMessage in Kombination mit CrashNotify. Für jedes Auftreten eines Gastabsturzes sollte höchstens ein einzelner Schreibvorgang in MSR durchgeführt werden, HV_X64_MSR_CRASH_CTL unter Angabe einer der beiden Variationen.

Gastabsturzaktion Beschreibung
CrashMessage Diese Aktion wird in Kombination mit CrashNotify verwendet, um eine Absturzmeldung für den Hypervisor anzugeben. Wenn diese Option ausgewählt ist, werden die Werte von P3 und P4 als Speicherort und Größe der Nachricht behandelt. HV_X64_MSR_CRASH_P3 ist die physische Gastadresse der Nachricht, und HV_X64_MSR_CRASH_P4 ist die Länge der Nachricht in Bytes (maximal 4.096 Bytes).
CrashNotify Diese Aktion weist den Hypervisor darauf hin, dass die Gastpartition das Schreiben der gewünschten Daten in den Gastabsturzparameter MSRs abgeschlossen hat (d. h. P0 durch P4), und der Hypervisor sollte mit der Protokollierung des Inhalts dieser MSRs fortfahren.