|
Redaktionssystem [www.ingenieur-menzel.de]
|
Anleitung zur Wiederherstellung der VM-Konfiguration in einer wiederhergestellten Hyper-V-Umgebung.
Um VMs von einem Hyper-V-System zu sichern, sollte die Exportfunktion angewendet werden. Diese Vorgehensweise setzt jedoch voraus, dass das Hyper-V-System ordnungsgemäß funktioniert. Was ist jedoch zu tun, wenn kein aktueller Export der VMs vorliegt und das Hyper-V-System nicht mehr funktioniert? Diese Anleitung beschreibt, wie eine vorhandenen VM-Konfiguration auf einem zurückgesetzten oder neuinstallierten Hyper-V-System wieder funktionsfähig gemacht werden kann.
|
Betriebssystem: Windows Server 2008 R2 Enterprise Version: x64. Version 6.1 (Build 7600) Sprache: deutsch Anwendung: Hyper-V |
|
Achtung Nach der Rücksetzung muss die Struktur der Einstellungsdateien im Verzeichnis [C:\ProgramData\Microsoft\Windows\Hyper-V\] restauriert werden. Zur Dokumentation des augenblicklichen Zustandes sind deshalb Bildschirmausdrucke oder eine vollständige Kopie dieses Verzeichnisses auf einem Sicherungslaufwerk anzulegen. |
|
Hinweis Nach dieser Wiederherstellung laufen die VMs nicht mehr im Berechtigungskontext ihrer originalen Maschinenkonten, sondern im Kontext des übergeordneten Kontos [Virtuelle Computer]. Für den störungsfreien Betrieb der VMs ist diese Konfiguration ohne Belang. Eine Wiederherstellung der Maschinenkonten kann bei Bedarf durch den Export und Reimport der VMs erfolgen. |
Das Anhalten und Starten der Hyper-V-Dienste kann über den Knoten [Dienste] in der [Computerverwaltung] oder über die nachfolgenden BAT-Dateien erfolgen. Die Ausführung der BAT-Dateien erfordert erhöhte Benutzerrechte der Benutzerkontensteuerung (UAC) [als Administrator ausführen].
REM ========================================================
REM *** STOP der Hyper-V-Dienste ***
REM ========================================================
ECHO OFF
REM "Hyper-V-Abbildverwaltungsdienst"
NET STOP vhdsvc
REM "Hyper-V-Netzwerkverwaltungsdienst"
NET STOP nvspwmi
REM "Hyper-V-Verwaltung für virtuelle Computer"
NET STOP vmms
PAUSECode: CMD, Hyper-V STOP
REM ========================================================
REM *** START der Hyper-V-Dienste ***
REM ========================================================
ECHO OFF
REM "Hyper-V-Verwaltung für virtuelle Computer"
NET START vmms
REM "Hyper-V-Netzwerkverwaltungsdienst"
NET START nvspwmi
REM "Hyper-V-Abbildverwaltungsdienst"
NET START vhdsvc
PAUSECode: CMD, Hyper-V START
Liegen die VMs außerhalb des Betriebssystems, so müssen mit der Anwendung [MKLINK.EXE] sogenannte "Symbolische Verknüpfungen" [2] zu den Einstellungsdateien erzeugt werden. Gemäß dem nachfolgenden Beispiel muss für jede einzelne Einstellungsdatei in den Verzeichnissen [Snapshots] und [Virtual Machines] eine symbolische Verknüpfung erstellt werden.
REM ========================================================
REM *** Symbolische Verknuepfung erstellen ***
REM *** BEISPIEL ***
REM ========================================================
ECHO OFF
REM *** Verwendung: MKLINK.EXE {ZIEL} {QUELLE}
MKLINK.EXE "C:\programdata\Microsoft\Windows\Hyper-V\ ¬
Virtual Machines\7A68C643-C8A1-4783-A83D-C1278DB82CB1.xml" ¬
"D:\HyperVDAT\7A68C643-C8A1-4783-A83D-C1278DB82CB1.xml"
PAUSECode: CMD, Symbolische Verknuepfung erstellen
Ohne die Gewährung von besonderen Zugriffsrechten werden nach der VM-Reintegration keine VMs im Hyper-V-Manager dargestellt. Werden die Zugriffsrechte unzureichend eingestellt, tritt nach einem VM-Start ein Gewitter an Messageboxen und Protokolleinträgen mit 0x80070005-Fehlermeldungen auf.
|
Fehlermeldungen (Auszug) |
|
Die Konfiguration eines virtuellen Computers kann nicht geladen werden: Allgemeiner "Zugriff verweigert"-Fehler (0x80070005) (ID des virtuellen Computers 7A68C643-C8A1-4783-A83D-C1278DB82CB1) |
|
Microsoft Emulated IDE Controller (Instanz-ID {83F8638B-8DCA-4152-9EDA-2CA8B33039B4}): Fehler "Allgemeiner "Zugriff verweigert"-Fehler" (0x80070005) beim Einschalten (ID des virtuellen Computers: 7A68C643-C8A1-4783-A83D-C1278DB82CB1). |
Tabelle: Fehlermeldung, Hyper-V fehlen Zugriffsrechte
Hintergrund der Hyper-V-Zugriffsrechte
Der Zugriff auf die Einstellungsdatei [InitialStore.xml] erfolgt durch die Hyper-V-Dienste unter dem lokalisierten Systemkonto [Virtuelle Computer]. Für den Zugriff auf die VM-Dateien (Snapshots und virtuelle Datenträger) werden darüber hinaus dezidierte Maschinenkonten verwendet. Jedes Maschinenkonto entspricht der Bezeichnung des entsprechenden virtuellen Computers in Form einer GUID. Beide Aspekte werden in den nachfolgenden Abbildungen verdeutlicht. Die folgende Abbildung zeigt die originalen Berechtigungen im Dialog [Sicherheit] für den Ordner [Hyper-V].
Abb.: 01_hyperv_rechte_org.png; Berechtigungen des Ordners "Hyper-V"
Die nachfolgende Abbildung zeigt die originalen Berechtigungen im Dialog [Sicherheit] der VM mit der ID [7A68C643-C8A1-4783-A83D-C1278DB82CB1].
Abb.: 02_vm_datei_rechte.png; Berechtigungen einer VM-Datei
|
Problem Das Systemkonto [Virtuelle Computer] wird durch die Hyper-V-Installation angelegt und erhält die Lese- und Schreibberechtigungen für die Konfigurationsordner und die Einstellungsdatei [InitialStore.xml]. Beim Anlegen einer VM wird durch die Hyper-V-Rolle ein zugehöriges Maschinenkonto angelegt. Dieses Konto erhält Lese- und Schreibberechtigungen für die zugehörige VM. Sowohl das Systemkonto [Virtuelle Computer] als auch die dezidierten Maschinenkonten sind als benannte Sicherheitsprinzipale für nachträgliche Zuweisung von Berechtigungen für Ordner und Dateien über die grafische Benutzeroberfläche nicht zugänglich. Dieses Problem wird nach einer Rücksetzung verschärft. Die Maschinenkonten der VMs sind dann nicht auf dem Server vorhanden und können auch nicht von Hand angelegt werden. |
Rekonfiguration der Hyper-V-Zugriffsrechte
Da die Maschinenkonten nicht angelegt werden können, muss das übergeordnete Systemkonto [Virtuelle Computer] für die Rechtezuweisung verwendet werden. Dessen Schreib- und Leserechte müssen für folgende Verzeichnisse, deren Unterverzeichnisse und Dateien gewährt werden:
Nachfolgend wird die Zuweisung der Lese- und Schreibrechte für das Verzeichnis [C:\ProgramData\Microsoft\Windows\Hyper-V\] demonstriert. Diese Rechtezuweisung ist ggf. für das abweichende Verzeichnis der virtuellen Festplatten und der virtuellen Computer zu wiederholen.
Navigieren Sie im Explorer in das Stammverzeichnis für die Rechtezuweisung (in diesem Fall [C:\ProgramData\Microsoft\Windows\Hyper-V\]). Markieren Sie den Ordner, aktivieren Sie im Kontextmenü über die rechte Maustaste den Eintrag [Eigenschaften]. Im Eigenschaftendialog auf dem Register [Sicherheit] sollte im Listenfeld [Gruppen- oder Benutzernamen] das Systemkonto [Virtuelle Computer] aufgelistet sein (s. Abb. Berechtigungen des Ordners "Hyper-V"). Sollte das Systemkonto wider Erwarten nicht gelistet sein, so muss es hinzugefügt werden. Wegen der o.g. Problemstellung ist eine Zuweisung über die Schaltfläche [Hinzufügen ...] nicht möglich.
Über einen kleinen Umweg, mit dem Kommandozeilentool [icacls.exe], kann das Konto [Virtuelle Computer] wieder in das Listenfeld [Gruppen- oder Benutzernamen] aufgenommen werden. Dazu wird mit [icacls.exe] eine initiale Berechtigung [Ordnerinhalt anzeigen] zugewiesen. Die Bezeichnung des Systemkontos [Virtuelle Computer] erfolgt beim Aufruf über deren SID.
REM ========================================================
REM *** Recht [Ordnerinhalt anzeigen] zuweisen ***
REM *** für Konto [Virtuelle Computer] ***
REM ========================================================
ECHO OFF
REM !! hier Verzeichnisangabe anpassen !!
icacls "C:\programdata\Microsoft\Windows\Hyper-V" /grant *S-1-5-83-0:(CI)(F)
PAUSECode: CMD, icacls.exe Recht [Ordnerinhalt anzeigen] zuweisen
Durch diesen Tipp von Andrei Talmaciu [1] wird das Konto [Virtuelle Computer] wieder im Listenfeld [Gruppen- oder Benutzernamen] aufgeführt. Die Berechtigung [Ordnerinhalt anzeigen] ist jedoch noch nicht ausreichend.
Abb.: 03_hyperv_rechte_neu.png; Berechtigung "Virtuelle Computer" initialisiert
Klicken Sie auf die Schaltfäche [Bearbeiten] um die Berechtigungen des Kontos zu erweitern. Durch die Aktivierung des Kontrollkästchens [Vollzugriff] im Listenfeld [Berechtigungen für Virtuelle Computer] werden alle abhängigen Berechtigungen gewährt.
Abb.: 04_hyperv_rechte_voll.png; Berechtigung "Virtuelle Computer" Vollzugriff
Schließen Sie die geöffneten Dialoge über die Schaltflächen [OK].
Damit wurde der Zugriff des Kontos [Virtuelle Computer] auf das Stammverzeichnis wiederhergestellt.
Nachfolgend wird beschrieben, wie die Berechtigungen des Systemkontos [Virtuelle Computer] auf alle Unterordner und Dateien vererbt werden. Diese Rechtevererbung ist bei einer Rekonfiguration immer notwendig.
Öffnen Sie den Dialog [Eigenschaften] im Stammverzeichnis, wie in Abb. Berechtigungen des Ordners "Hyper-V" dargestellt. Markieren Sie das Konto [Virtuelle Computer] und klicken Sie auf die Schaltfläche [Erweitert]. Der Dialog [Erweiterte Sicherheitseinstellungen] erscheint.
Abb.: 05_hyperv_erw_sicherheit.png; "Erweiterte Sicherheitseinstellungen" des Ordners "Hyper-V"
Markieren Sie den Berechtigungseintrag [Virtuelle Computer] mit der Berechtigung [Vollzugriff] und klicken Sie auf die Schaltfläche [Berechtigungen ändern]. Eine weiterer Dialog [Erweiterte Sicherheitseinstellungen] erscheint.
Abb.: 06_hyperv_rechtevererbung.png; Dialog "Rechtevererbung" des Ordners "Hyper-V"
Behalten Sie die Markierung des Berechtigungseintrags [Virtuelle Computer] bei und aktivieren Sie das Kontrollkästchen [Alle Berechtigungen für untergeordnete Objekte durch vererbbare Berechtigungen von diesem Objekt ersetzen]. Klicken Sie auf die Schaltfläche [Übernehmen]. Eine Warnung [Windows-Sicherheit] erscheint.
Abb.: 07_warnung_vererbung.png; Warnung vor Rechtevererbung
Quittieren Sie die Meldung über die Schaltfläche [Ja]. Schließen Sie abschließend die geöffneten Dialoge über die Schaltflächen [OK].
Damit wurde der Zugriff des Kontos [Virtuelle Computer] auf alle Unterordner und Dateien im Stammverzeichnis eingerichtet.
Die dargestellte Reintegration wurde im Zuge eines Vorproduktionstests entwickelt. Es wurde nachgewiesen, dass eine Reintegration grundsätzlich möglich ist. Der Schwierigkeitsgrad dieses Vorganges ist jedoch erheblich. Zudem können Zustände vorliegen, die eine erfolgreiche Reintegration unmöglich machen. Dazu zählen fehlerhafte VM- und Konfigurationsdateien. Eine Reintegration einer liegengebliebenen VM-Umgebung sollte deshalb auf Situationen beschränkt werden, in denen keine ordnungsgemäße Datensicherung (VM-Export) zum Zeitpunkt des Systemausfalls vorliegt.
A. Menzel
|
TopicID: [_tut_hyperv_disaster]
© Dipl.-Ing. (FH) Alfred Menzel, 2012 Impressum, Haftungsausschluss und Nutzungsbedingungen |