Redaktionssystem [www.ingenieur-menzel.de]
Disaster-Recovery

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. 

 

Umgebung
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. 

 

Ablauf der VM-Reintegration
  1. Das Betriebssystem wurde wiederhergestellt. Diese Wiederherstellung kann sowohl durch eine Neuinstallation als auch durch die Anwendung einer Imagesicherung erfolgt sein.
  2. Die Hyper-V-Rolle wird auf dem Server installiert. War diese Rolle nach der Wiederherstellung des Betriebssystems noch nicht vorhanden, so muss sie installiert werden (s. Hyper-V, Rolle installieren).
  3. Die Hyper-V-Einstellungen, Pfade der virtuellen Festplatten und virtuellen Computer, werden auf die Ablageorte wie vor der Zurücksetzung eingestellt (s. Einstellungsdialog, Abb. Hyper-V-Einstellungen ).
  4. Die Hyper-V-Dienste werden angehalten. Das Anhalten ist notwendig, damit das Zurücksetzen der Systemeinstellungen über das Dateisystem erfolgen kann (s. CMD, Hyper-V STOP).
  5. Die VM-Dateien (virtuelle Festplatten und Snapshots) werden wiederhergestellt. Die Wiederherstellung der VMs ist i.d.R. nicht notwendig, wenn der Ablageort der VM-Dateien gemäß Empfehlung (Änderung der Standardordner der VMs ) außerhalb des Betriebssystems lag.
  6. Die Systemeinstellungen im Verzeichnis [C:\ProgramData\Microsoft\Windows\Hyper-V\] werden wiederhergestellt. Der Inhalt der Datei [InitialStore.xml] darf bei den nachfolgenden Konfigurationen nicht verändert werden! Wenn die VMs (gem. Empfehlung) außerhalb des Betriebssystems liegen, müssen in den Unterverzeichnissen [Snapshots] und [Virtual Machines] sogenannte symbolische Verknüpfungen erstellt werden (s. Symbolische Verknüpfungen erstellen). Die Ziele dieser Verknüpfungen sind die Snapshot- und VM-Steuerdateien im VM-Ablageverzeichnis mit der Dateierweiterung [*.xml]. Sollten die VMs dagegen im Betriebssystem liegen, so sind deren Steuerdateien direkt in den Unterverzeichnissen [Snapshots] und [Virtual Machines] abzulegen. Für die Wiederherstellung der Steuerdateien bzw. deren symbolischer Verknüpfungen ist es hilfreich, wenn der o.g. Hinweis beachtet wurde und ein Bildschirmausdruck des Urzustandes vorliegt.
  7. Die Zugriffsrechte für die VMs, deren Snapshots und Steuerdateien müssen nach der Rekonfiguration hilfsweise für das übergeordnete Computerkonto [Virtuelle Computer] eingerichtet werden (s. Zugriffsrechte erteilen). Dieser Schritt ist notwendig, da die originalen dezidierten Maschinenkonten nicht wiederherstellbar sind.
  8. Abschließend kann der Hyper-V-Dienst wieder gestartet werden (s. CMD, Hyper-V START). Damit sind die VMs wieder lauffähig.
  9. Um die dezidierten Maschinenkonten wiederherzustellen, kann ein Export der VMs und deren Reimport auf einem initialen System mit Werkseinstellungen erfolgen.

 

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. 

 

Start und Stop der Hyper-V-Dienste

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
PAUSE

Code: 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
PAUSE

Code: CMD, Hyper-V START  

 

Symbolische Verknüpfungen erstellen

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"
PAUSE

Code: CMD, Symbolische Verknuepfung erstellen  

 

Hyper-V, Zugriffsrechte auf Einstellungen und Ablageordner erteilen

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:

  • [C:\ProgramData\Microsoft\Windows\Hyper-V\], Verzeichnis der Hyper-V-Systemeinstellungen (s. Abb. Verzeichnis der Systemeinstellungen)
  • Verzeichnis der virtuellen Festplatten und virtuellen Computer, wenn dieses auf einen Pfad außerhalb der Hyper-V-Systemeinstellungen geändert wurde

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) 
PAUSE

Code: 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. 

 

Fazit

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.

Autor

A. Menzel

Siehe ebenfalls
Informationen (extern)
Pfad:  Anleitungen > Hyper-V > Disaster-Recovery
TopicID: [_tut_hyperv_disaster]
© Dipl.-Ing. (FH) Alfred Menzel, 2012
Impressum, Haftungsausschluss und Nutzungsbedingungen