Veeam vCenter Migration Utility
Veeam bietet ein vCenter Migration Utility. Es ist nicht offiziell durch den Veeam Support freigegeben, aber äußerst hilfreich wenn man ein komplexes Backup neu verbinden muss. (Für den Download wird ein Veeam Kundenkonto benötigt. Das bekommt aber jeder, der sich registriert).
Entpackt die ZIP Datei auf dem Veeam Server, der die Datenbank hält. Ich empfehle einen kurzen Pfad wie z.B. “C:\tmp\Migration-Tool”.
Vorrausetzungen und Vorbereitungen
- Alle Aufträge müssen deaktiviert und beendet sein
- Achtet darauf, daß Ihr die neueste Veeam Version habt und dass diese mit Eurem neuen vCenter kompatibel ist.
- Macht einen Snapshot oder ein Image Eures Veeam-Servers. Ich bevorzuge dafür einen kalten Snapshot (VM ausgeschaltet), da dies robuster und konsistenter ist.
- Macht ein Backup der Veeam Konfiguration und sichert die Veeam Datenbank (an einen anderen Ort).
Migrations-Ablauf
[Optional] Aktualisiert die BIOS_UUID bestehender VMs in der VeeamBackup Datenbank
Dieser Schritt ist optional und kann ausgeführt werden, solange das alte vCenter noch produktiv ist. Er dient nur der Reinigung und Pflege. Man muss dafür den vCenter Namen verwenden wie er in der Veeam Konsole referenziert ist. Im hier beschriebenen Fall war war der “echte” Name des vCenters eine IP Adresse, aber in der Veeam Konsole war es mit dem FQDN als “vcenter.mydomain.org” hinterlegt.
Veeam.Backup.VmMigrator.exe prepareformigration <name_of_old_vCenter>
Unten ist die Ausgabe auf der Konsole dargestellt.
------- Veeam VM Migrator Tool Started ------- Input arguments: prepareformigration vcenter.mydomain.org Preparing for migration started Getting VMs from vcenter.mydomain.org Got 211 VMs from vcenter.mydomain.org Preparing for migration finished
Migration zum neuen vCenter
Jetzt ist es an der Zeit, alle Hosts und VMs zum neuen vCenter zu übertragen. Dieser Schritt war in der Dokumentation des Tools leider nicht eindeutig.
Nach der Übertragung wird das alte vCenter heruntergefahren.
Das alte vCenter in der Datenbank umbenennen
Wenn das neue vCenter den selben DNS Namen wie zuvor verwenden soll, muss Veeam das alte vCenter in der Datenbank umbenennen. Wer einen neuen Namen vergeben will, kann diesen Schritt überspringen.
Veeam.Backup.VmMigrator.exe renameoldhost <name_of_old_vCenter>
Die Ausgabe ist nicht dargestellt, denn ich hatte einen neuen Namen für das vCenter gewählt. Wenn man das Kommando ausführt erhält das alte vCenter eine _old Endung an seinem Namen in der Veeam Konsole.
Neues vCenter in Veeam einbinden
Jetzt muss das neue vCenter in der Veeam Konsole bekannt gemacht werden. Wurde das alte vCenter umbenannt (vgl. oben), so kann der bisherige Name wieder verwendet werden. Verwendet man einen neuen Namen, so muss man sich hierum nicht weiter kümmern.
Wenn man jetzt (aus Neugierde) in bestehende Backup Aufträge schaut, so kann man sehen dass es keine Größeninformation neben den VMs gibt (N/A). Das liegt daran, daß Veeam immer noch die alte MoRef ID referenziert, die VMs inzwischen aber neue MoRef IDs haben.
Vorbereitung der Mapping List
Jetzt können wir die Kreuztabelle (Mapping List) vorbereiten.
Veeam.Backup.VmMigrator.exe preparemigrationtask <name_of_old_vCenter> <name_of_new_vCenter>
Wenn zuvor der Befehl zur Umbenennung des vCenters in der Datenbank ausgeführt wurde, so muss nun das Suffix _old an den Namen des alten vCenters angefügt werden. Zum Beispiel so:
Veeam.Backup.VmMigrator.exe preparemigrationtask vcenter.mydomain.org_old vcenter.mydomain.org
Wer einen neuen Namen für vCenter vergeben hat, gibt einfach alten und neuen Namen an.
Ausgabe der Konsole:
------- Veeam VM Migrator Tool Started ------- Input arguments: preparemigrationtask vcenter.mydomain.org vc.mydomain.org Building DbObjects to VMs mapping started Getting VMs from vc.mydomain.org Got 202 VMs from vc.mydomain.org Building DbObjects to VMs mapping finished Writing migration task into file started Writing migration task into file finished: created task file - vcenter.mydomain.org_to_vc.mydomain.org_migration_task Migration task contains some mappings to the same VM. Please select one mapping for each VM and delete comment symbols in it
Man wird jetzt eine Textdatei im Ordner “Migration-Utility” mit einem Namen ähnlich vcenter.mydomain.org_to_vc.mydomain.org_migration_task finden. Öffnet dieses Textdatei mit einem Texteditor wie z.B. Notepad++. Verwendet nicht Word.
Mapping prüfen und editieren
Die Datei mit der Endung ‘_migration_task’ beinhaltet mehrere Abschnitte.
//host names
Dieser Abschnitt enthält die vCenter Namen (alt und neu).
//solid
Dieser Abschnitt listet die VMs des alten vCenter gemäß Information aus der Datenbank und aktuell im neuen vCenter registrierten VMs mit dem selben Namen und der selben BIOS_UUID.
Das Tool versucht, alte und neue Namen in Übereinstimmung zu bringen. Alle Paarungen mit hoher Wahrscheinlichkeit befinden sich im Abschnitt //solid.
//probable
In diesem Abschnitt befinden sich VM Paare die wahrscheinlich sind, aber überprüft werden sollten. Dazu gehören:
- VMs mit der selben BIOS_UUID aber unterschiedlichen Namen
- VMs mit gleichem Namen, aber unterschiedlicher BIOS_UUID
- VMs mit mehr als einer Instanz des selben Namens und der selben BIOS_UUID in der Datenbank
//old duplicates
Bei mehrfachen Datensätzen mit gleichem Namen und gleicher BIOS_UUID wird eine Paarung nur für den neuesten Restorepoint gemacht. Der Rest gilt als altes Duplikat und wird auskommentiert.
//already migrated
In diesem Abschnitt finden sich Paare, deren Name und BIOS_UUID in der Datenbank bereits im neuen vCenter zu finden sind.
//not found
Dieser Abschnitt enthält alle VMs, die in keinen der anderen Abschnitte passen, aber zuvor im alten vCenter existierten.
In der Regel wird man die meisten Paare im Abschnitt //solid finden. Die Tabelle ist in der Art wie unten dargestellt formatiert.
old_VM_ID old_VM-name BIOS_UUID –> new_VM_ID new_VM_name
Beispiel:
vm-478 DNS1.mydomain.org fcab600b-c678-44c0-b46a-3b608ba3b42b -> vm-205 DNS1.mydomain.org
Die VM mit der alten ID 478 wird künftig auf die VM mit der neuen ID 205 gemappt.
Man sollte sich alle Paarungen genau ansehen. Um ein Paar aus der Liste auszuschließen, kann man entweder die ganze Zeile löschen, oder nach dem –> zwei Forward Slashes einfügen (–> //).
Beispiel: Hier ist eine Paarung im Abschnitt //probable. Solange vor dem VM Namen ein // steht, wird diese ignoriert.
vm-138076 NTServ163.mydomain.org_restored 38e77753-f395-4e47-a7f4-5e34fe154879 -> // vm-124 NTServ163.mydomain.org
Nachdem die Datei kontrolliert und editiert ist, speichert man diese ab.
Migration Task ausführen
Jetzt kann der eigentliche Migrations Task ausgeführt werden. Das zuvor erzeugte und editierte Textfile dient als Basis für die Neuzuordnung der VMs. Solange die Textdatei im selben Ordner liegt, wie das Tool VMMigrator.exe ist eine Pfadangabe nicht notwendig.
Veeam.Backup.VmMigrator.exe executemigrationtask <migration_task_spec_file_name>
Ausgabe
------- Veeam VM Migrator Tool Started ------- Input arguments: executemigrationtask vcenter.mydomain.org_to_vc.mydomain.org_migration_task Parsing migration task file vcenter.mydomain.org_to_vc.mydomain.org_migration_task started Parsing source and destination hosts names Found hosts names: source - vcenter.mydomain.org; destination - vc.mydomain.org Getting VMs from vc.mydomain.org Got 202 VMs from vc.mydomain.org Parsing VMs mapping Parsing migration task file vcenter.mydomain.org_to_vc.mydomain.org_migration_task finished Execution of migration task started Execution of migration task finished
Objekte den Backup Aufträgen neu zufügen
Wer jetzt voreilig einen Backup-Auftrag startet wird scheitern, denn wir sind noch nicht fertig. Die Einstellungen jedes Auftrages müssen geöffnet, die alten (VM) Objekte entfernt, und die entsprechenden neuen VM Objekte wieder hinzugefügt werden. Man kann dies überprüfen indem man den “Recalculate” Button klickt. Die Größe der VM wird nun angezeigt. Spezielle Einstellungen zum Guest Processing bleiben aber erhalten.
Zusammenfassung
Manchmal sind Dinge verzahnt wie ein Getriebe. Man kann nicht nur ein Teil austauschen, ohne Auswirkungen auf ein anderes zu haben. Aus diesem Grund musste der Kunde praktisch seine gesamte Umgebung “auf links” drehen.
- Cross Migration Upgrade des vCenter 6.0 -> 6.7
- Virtuelle Standad Switches auf Distributed vSwitches umstellen
- vShield durch NSX ersetzen
- Upgrade der Sicherheitslösung für Guest Introspection
Aber alles was er ursprünglich wollte war nur der Wechsel der vCenter IP Adresse. 🙂