Migration virtueller Maschinen von ESXi zu Proxmox

In den letzten zwei Beiträgen haben wir uns ja bereits mit der Installation eines Proxmox-Servers beschäftigt und eine erste VM installiert. Nun wird es darum gehen eine Migration unsere VMs von unserem Altsystem, einem ESXi, auf den neuen Proxmox-Server durchzuführen. Hierbei gehe ich erst mal nur auf Linux Systeme ein. Bei Windows ist der Aufwand etwas größer und wird im nächsten Artikel besprochen.

Alle Artikel dieser Serie:

OVF Tool installieren

Es gibt zwei Möglichkeiten an die Daten vom ESXi zu kommen. Wir können die VM exportieren im ESXi und danach importieren. Wir können aber auch die VM direkt auf den Proxmox Server kopieren lassen, mittels dem OVF-Tool. Das Tool könnt ihr direkt bei VMware laden, benötigt aber einen Account. Anschließend ladet ihr es per SFTP auf eueren Proxmox-Server, z.B. nach /tmp/ Startet nun die Shell und mach die Datei mit +x ausführbar. Anschließend startet ihr den Installer mit ./VMware-ovftool-4.4.0-15722219-lin.x86_64.bundle Während der Installation müsst ihr noch die Lizenzbestimmungen akzeptieren und das Tool wird installiert.

root@pve:~# cd /tmp
root@pve:/tmp# chmod +x VMware-ovftool-4.4.0-15722219-lin.x86_64.bundle 
root@pve:/tmp# ./VMware-ovftool-4.4.0-15722219-lin.x86_64.bundle 
Extracting VMware Installer...done.
You must accept the VMware OVF Tool component for Linux End User
License Agreement to continue.  Press Enter to proceed.
VMWARE END USER LICENSE AGREEMENT

...

Do you agree? [yes/no]: yes

Installing VMware Installer 2.1.0
Copying files...
Configuring...
Installing VMware OVF Tool component for Linux 4.4.0
Copying files...
Configuring...
Installation was successful.

Migration starten – VM kopieren

Die VM auf dem ESXi muss vorher abgeschaltet werden und eventuell verbundene ISO-Images müssen getrennt werden. Ihr startet nun das Tool mit der Syntax ovftool vi://user@esxi-ip/VM-Name Zielordner. Der Quellordner wird dorthin kopiert, wo das Tool gestartet wird (z.B. /tmpd/Wireguard), bzw. was ihr als Ziel festlegt. Es werden alle benötigten Dateien kopiert.

root@pve:/tmp# ovftool vi://root@10.10.66.99/Wireguard .
Accept SSL fingerprint (3A:A0:A2:ED:37:0A:21:91:00:63:A9:86:2C:70:DA:20:CE:6C:EF:70) for host 10.10.66.99 as source type.
Fingerprint will be added to the known host file
Write 'yes' or 'no'
yes
Enter login information for source vi://10.10.66.99/
Username: root
Password: ************
Opening VI source: vi://root@10.10.66.99:443/Wireguard
Opening OVF target: .
Writing OVF package: ./Wireguard/Wireguard.ovf
Transfer Completed                    
Completed successfully

VM importieren

Nun muss die VM importiert werden. Die Syntax dafür ist qm importovf Neue-ID /Quelle/quelle.ovf Zielverzeichnis. Die ID kann frei vergeben werden, solange sie nicht benutzt wird. Anschließend wird eine neue VM mit den gleichen Einstellungen erzeugt und die Festplatte in local-lvm importiert. Anschließend können die per ovftool kopierten Dateien gelöscht werden. (z.B. rm -rf Wiregaurd).

root@pve:/tmp/Wireguard# qm importovf 101 /tmp/Wireguard/Wireguard.ovf local-lvm
  Logical volume "vm-101-disk-0" created.
transferred 0.0 B of 10.0 GiB (0.00%)
transferred 102.4 MiB of 10.0 GiB (1.00%)
...
transferred 10.0 GiB of 10.0 GiB (100.00%)
root@pve:/tmp/Wireguard# 

Import über die GUI

Mittlerweile könnt ihr auch einen Import über die GUI erstellen. Dieses macht den Import etwas einfacher und ihr könnt vor dem Import bereits Einstellungen für die Netzwerkkarte und den SCSI-Controller anpassen. Damit der Import funktioniert, müssen wir zuerst einen neuen Storage vom Typ Directory erzeugen und dem Content Typ Import. Geht dazu unter Datacenter -> Storage -> Add und vergebt eine ID, verweist auf ein Directory (z.B. /tmp) und setzt Content auf Import. Wechselt nun zur Shell und erzeugt einen Ordner mit dem Namen import in diesem Storagedirectory.

root@pve:~# mkdir /tmp/import
ShellSession

Die entsprechenden ovf-, mf- und vmdk-Files werden alle in dem zusätzlichen Import Ordner abgelegt. Wenn ihr nun auf euer Import-Storage geht, seht ihr die entsprechenden VMs. Doppelklickt auf das entsprechende ovf-File und ihr gelangt zum Import Dialog. Hier könnt ihr bereits notwendige Einstellungen anpassen, wie SCSI Controller und Netzwerkkarte. Über Import wird die VM importiert.

Migration abschließen

Das Netzwerkinterface wird nicht automatisch erzeugt und muss von euch händisch angelegt werden. Dieses muss auch später in der VM selber auch konfiguriert werden. Solltet ihr einen Import über die GUI gemacht haben, ist die Netzwerkkarte bereits erzeugt und den SCSI Controller solltet ihr auch angepasst haben. Ihr solltet nochmals die Einstellungen der Hard Disk überprüfen und das Interface in der VM selbst aktualisieren.

Den SCSI Controller solltet ihr noch auf VirtIO SCSI Single umstellen, so empfiehlt es jedenfalls Proxmox. Zusätzlich solltet ihr noch Discard (für TRIM), IO thread und die SSD Emulation auf der Hard Disk aktivieren.

Nun könnt ihr eure VM wieder starten. Das Interface ist im Debain System jetzt auch vorhanden und mittels „ip a“ kann ich den Namen des Interfaces auslesen. Somit kann ich nun die Einstellungen in der /etc/network/interfaces anpassen und meine VM hat wieder Netzwerkzugriff. Je nach System sind die Einstellungen natürlich anders.

EFI

Solltet ihr ein System mit UEFI importieren, wird die GUI euch darauf hinweisen. Hier müsst ihr zusätzlich noch Anpassungen im BIOS dem VM vornehmen. Beim Import wird automatisch als BIOS OVMF ausgewählt, welches den EFI Boot unterstützt. Startet nun eure VM über die Konsole und drückt ESC um ins Bios zu gelangen. Wählt dort den Eintrag Boot Maintenance Manager und dort den Unterpunkt Boot Options.

Nun geht auf den Eintrag Add Boot Option und wählt euer Volume aus. Nun wählt ihr die EFI Datei aus. Je nach System lautet diese anders. Für Debain ist es EFI/debian/grubx64.efi und für Fedora: EFI/fedora/shimx64-fedora.efi.

Vergebt noch eine Bezeichnung und bestätigt die Änderungen. Nun können wir über Change Boot Order unseren zuvor angelegten Eintrag auswählen und über + ganz nach oben stellen. Speichert die Einstellungen und startet die VM neu. Damit sollte dann eure VM auch mit EFI wieder booten.

Guest Agent

Die zuvor installierten open-vm-toosl können nun deinstalliert werden, dafür aber der qemu-guest-agent installiert werden. In den Einstellungen der VM müsst ihr den Guest Agent ebenfalls aktiv setzen. Anschließend fahrt ihr die VM herunter und startet sie wieder neu. Danach sollte der Agent auch erkannt werden. Hier könnt ihr auch noch den OS type auf Linux anpassen und evtl. den Autostart (Start at Boot) aktivieren.

apt remove open-vm-tools
apt update
apt install qemu-guest-agent

Mögliche Fehlerquellen

Fehlermeldung: Error: Fault cause: vim.fault.FileNotFound beim kopieren mittel OVF Tool.

-> Es ist noch ein ISO Image mit der VM verbunden, einfach das CD-ROM auf Hostgerät umstellen

Ich hoffe die Anleitung hat euch geholfen und ihr konntet eure VMs erfolgreich auf Proxmox migrieren.

Schreibe einen Kommentar