Compare-VM: Kompatibilität von VM mit Hyper-V prüfen


    Tags: , ,

    Migration einer virtuellen MaschineBevor man eine virtu­elle Maschine auf einen anderen Host migriert, sollte man dessen Eig­nung als neues Zuhause für die VM über­prüfen. Diese Auf­gabe über­nimmt das PowerShell-Cmdlet Compare-VM, das die Kompa­tibi­lität unter ver­schiedenen Aspekten untersucht.

    Innerhalb eines Clusters bilden die Hard- und Software meistens eine homogene Umgebung, so dass eine Live Migration dort kaum an großen Unterschieden zwischen den Knoten scheitern dürfte. Anders sieht es bei einer Shared Nothing Live Migration aus, die Windows Server seit der Version 2012 unterstützt. Hier wäre es denkbar, dass sich Quell- und Ziel-Host zum Beispiel in der Version von Hyper-V oder der Prozessorarchitektur unterscheiden.

    Zahlreiche Kompatibilitätshürden

    Läuft etwa auf dem Zielrechner eine ältere Ausführung von Hyper-V, dann kommt diese wahrscheinlich nicht mit der der virtuellen Hardware der VM zurecht. Microsoft hat nämlich in der Vergangenheit mit dem Update des Hypervisors auch automatisch die VMs aktualisiert. Unter Windows Server 2016 sieht der Hersteller davon ab, weil Server 2012 (R2) das neue binäre Format der Konfigurationsdateien nicht lesen kann.

    Eine weitere Hürde sind virtuelle Maschinen der Generation 2, die erst mit Server 2012 R2 eingeführt wurden und auf einer älteren Version von Hyper-V nicht laufen. Eine Lösung für dieses Problem bietet Microsoft mit den Bordmitteln nicht an, und das Cmdlet Convert-VMGeneration auf MSDN sieht nur eine Umwandlung von Generation 1 auf 2 vor.

    Die meisten dieser Hindernisse kann man mit Compare-VM vorab entdecken und in vielen Fällen auch beseitigen. Das trifft etwa auch auf abweichende Konfigurationen von Virtual Switches zu, so dass VMs am Ziel-Host nicht die von ihnen benötigten Netzwerke vorfinden.

    Befehle zur Prüfung einer Live Migration

    In der einfachsten Form ruft man das Cmdlet nur mit dem Namen der (lokalen) VM und des Ziel-Hosts auf:

    Compare-VM -Name <Name der VM> -DestinationHost <Ziel-Host>

    Möchte man herausfinden, ob sich eine VM von einem entfernten Server auf die lokale Maschine umziehen lässt, dann könnte der Befehl so aussehen:

    Compare-VM -ComputerName <Quell-Host> -Name <Name der VM> -DestinationHost <lokaler-Host>

    Das Cmdlet orientiert sich bei seinen Optionen weitgehend an Move-VM, mit dem man virtuelle Maschinen migriert. So bietet es etwa zusätzlich die Möglichkeit, Pfade zu Verzeichnissen anzugeben, an denen VHDs oder VMs abgelegt werden sollen (VirtualMachinePath, VhdDestinationPath, DestinationStoragePath).

    Macht man von dieser Möglichkeit Gebrauch, dann kann man zusätzlich die Kompatibilität mit dem Zielspeicher prüfen lassen, indem man Compare-VM den Schalter -IncludeStorage mitgibt.

    Import und Kopieren statt Migration

    Schließlich lässt sich Compare-VM auch einsetzen, um andere Operationen für den Umzug von VMs vorzubereiten. Dazu zählen das Kopieren und das Importieren.

    Compare-VM prüft VMs auch vor dem Import auf einem Hyper-V-Server.

    In diesem Fall ruft man das Cmdlet mit einem anderen Parameter-Set auf, im Fall des Imports handelt es sich dabei um eine Kombination aus Register und Path:

    Compare-VM -Register -Path <\\Server\Pfad\ID-der-VM.xml>

    Will man eine VM kopieren, dann ersetzt man im obigen Befehl Register durch Copy.

    Täglich Know-how für IT-Pros mit unserem Newsletter

    Wir ver­wenden Ihre Mail-Adresse nur für den Ver­sand der News­letter.
    Es erfolgt keine per­sonen­be­zogene Auswertung.

    Bild von Wolfgang Sommergut
    Wolfgang Sommergut hat lang­jährige Erfahrung als Fach­autor, Berater und Kon­ferenz­sprecher zu ver­schie­denen Themen der IT. Da­ne­ben war er als System­ad­mi­ni­stra­tor und Con­sultant tätig.
    // Kontakt: E-Mail, XING, LinkedIn //

    Verwandte Beiträge

    Weitere Links