Gestern habe ich einige „Macken“ bei Hyper-V kennenlernen dürfen. Aber erst einmal die Bedingungen:
Bein einrichten unseres Hyper-V Clusters gab es ein Problem: Alle Server die per Glasfaser mit unserer Storage verbunden waren sahen trotz richtigem Zoning den Clusterspeicher der Hyper-V Hosts. Das hat gerade bei unserem Fileserver (Windows Server 2008 x64) richtige Probleme verursacht, da der immer wieder versucht hatte diesen Speicher einzubinden. Da er aber keine Berechtigungen hatte, konnte er das nicht und produzierte am laufenden Band Fehlermeldungen. Nach einiger Recherche hatte unser IT-Distributor herausgefunden das man dem Hyper-V Speicher keine LUN-ID angeben darf. Diese Eigenheit unserer Storage ist…. unüblich. Wie dem auch sei, wir mussten also unsere Hyper-V Storage leer räumen. Allerdings durften die VMs nicht offline genommen werden oder ihre Einstellungen verlieren, da ein paar Dienste ihre Lizenzierung auf der MAC Adresse der virtuellen Netzwerkkarte aufbauen. Also mussten wir den Speicher der VMs im laufenden Betrieb verschieben.
Zum Glück für uns lässt Hyper-V 2012 das zu. Beide Hyper-V Hosts haben eine 2TB Festplatte eingebaut, um Backups und sonstige Dienste zu erledigen. Ein Zwischenspeicher wenn man so will. Will man laufende VMs auf einen anderen Festplattenspeicher migrieren, braucht man in einem Cluster einen Speicher der von allen Hosts im Cluster gesehen und angesprochen werden kann. Dazu eignet sich bei einer lokalen Serverplatte eine einfache Netzwerkfreigabe. Danach kann man die VMs migrieren – Wenn man ein paar Dinge beachtet. Zu Beginn haben wir die Komplette VM auf einmal verschoben – mit fatalen Folgen. Der Migrationsprozess ist abgebrochen und gab uns als Fehlermeldung „Migration wegen eines Fehlers Abgebrochen.“ Das Resultat war eine zerstörte VM. Zum Glück ist die VHD(X) Datei unbeschädigt geblieben und die Test-VM konnte neu eingerichtet werden. Nach mehreren Versuchen haben wir einen sauberen und halbwegs sicheren Weg herausgefunden:
Man wählt im Clustermanager eine VM Auf Server 1 aus und klickt auf „Verschieben“ –> „Speicher des virtuellen Computers“ klickt man auf „Freigabe hinzufügen“ und gibt die Freigabe auf Server 1 an. AM besten verschiebt man die VMs die auf Server 1 laufen auch auf den Speicher von Server 1. Danach verschiebt man zuerst und NUR(!) die vhd(x)-Datei. Wenn die Migration abgeschlossen ist klickt man sich nochmal in das „Speicher verschieben“ Fenster durch und verschiebt den Rest. Wichtig sind vor allem die Punkte „aktuelle Konfiguration“ und „Momentaufnahmen“ (Snapshots).
Durch diese Vorgehensweise konnten wir alle VMs sicher auf die jeweiligen lokalen Speicher verschieben und unsere Storage leer räumen.
Wichtig ist bei dieser Vorgehensweise vor allem das der Speicher auf dem die VMs liegen von allen Servern im Cluster gleichermaßen gesehen werden kann. Sonst funktioniert die Migration nicht.
Ich hoffe ich konnte euch dadurch viele Stunden voller Arbeit und viele defekte VMs ersparen.
Achja auch das Zurück-Migrieren ist so ohne größere Probleme abgelaufen.
[Nachtrag]
Ich habe eben von unserem IT-Distributor erfahren, dass das wohl kein Hyper-V only Problem ist. Auch bei VMware gibt es wohl ein ähnlich gelagertes Problem. Also immer schön alles Stück für Stück umziehen 😉