Migration von Synology VMs

Ich habe aktuell mehrere virtuelle Maschinen auf einer Synology am laufen. Das funktioniert soweit auch gut und macht keine Probleme. In mir kam jedoch die Frage auf, wie ich die VMs migrieren kann, wenn ich mich von der Synology trenne. Dazu noch die Frage was man nehmen soll; KVM, ESXi oder VirtualBox?

Die einfache Methode

Wenn ihr auf ein nicht KVM System migrieren wollt, dann könnt ihr eine abgeschaltete VM einfach als OVA Vorlage exportieren. Diese lässt sich in VMWAREs ESXi oder VirtualBox importieren. Eventuell müsst ihr nach dem ersten Einschalten den Boot-Pfad ändern, seht dazu weiter unten nach.

Ansonsten gehe ich auf das Thema hier nicht weiter ein, da ich mich für einen anderen Weg entschieden habe. Was ihr für eine System zur Virtualisierung verwendet ist euch überlassen. Alles drei Varianten funktionieren gut und haben ihr Vor- und Nachteile. Ich bin eigentlich eher der ESXi Nutzer, freunde mich aber gerade immer mehr mit KVM an.

Die direkte Methode mit KVM

Hinter dem Virtual Machine Manager von Synology verbirgt sich nichts anderes als KVM. Somit lässt sich auch einfach das Festplatten-File umkopieren. Dieses liegt im RAW-Format vor und kann einfach in einer anderen KVM Instanz verwendet werden.

Das größte Problem ist nun herauszufinden, welche Datei zu welcher VM gehört. Dazu verbindet ihr euch per SSH mit eurer Synology.

sudo -i     //Root Rechte erhalten; gleiches Passwort wie für den Admin User
virsh list     //Auflistung aller laufenden VMs
virsh dumpxml Name-wie-in-virsh-list     //Export der VM Konfiguration     

Anhand des Exports könnt ihr nun den Namen der VM auslesen und die Bezeichnung des Festplatte. Dierekt am Anfang, unter title, seht ihr den Namen, wie er auch im Virtual Machine Manager angezeigt wird. Somit habt ihr schon mal den Namen der VM herausgefunden.

<domain type='kvm' id='5' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0
'>
  <name>a587e354-7b4e-45ca-8f97-098f23a38fd5</name>
  <uuid>a587e354-7b4e-45ca-8f97-098f23a38fd5</uuid>
  <title>DSM instance: Pi-Hole</title>

Am Ende steht die ID der VDISK. Synology geht hier einen merkwürdigen weg und legt die Files auf einem iSCSI-Target ab.

  <qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='vhost-scsi-pci,max_sectors=16384,wwpn=naa.692d9128-4d7e-49ff-bf68-d657a57b6fa8,boot_tpgt=1,bootindex=1,addr=0xa,id=vdisk_692d9128-4d7e-49ff-bf68-d657a57b6fa8,set_driverok=off'/>
  </qemu:commandline>

Im Verzeichnis /volume1/@iSCSI/LUN/VDISK_BLUN sind einzelne Ordner mit obiger ID vorhanden, in denen die virtuelle Disk im RAW Format abgelegt ist. Dieses kann nun einfach aus der Synology kopiert werden. Um es euch einfacher zu machen, solltet ihr das File mittels cp vdisk* /volume1/EuerGemeinsamerOrdner an einen Ort verschieben, auf den ihr so einfachen Zugriff habt.

Um alles durchzuspielen habe ich mir eine KVM-Server aufgesetzt, welchen ich mit Kimchi administriere. Auf diesem habe ich eine neue VM erzeugt und die entsprechende VDISK der VM zugewiesen.

Boot-Pfad anpassen (KVM/ESXi/VirtualBox)

Fast wären wir fertig, Jetzt können wir die VM das erste Mal starten. Dieses klappte bei mir leider nicht. Der Grund war schnell gefunden. In den VMs der Synology wurde die Festplatte als /dev/sda verwaltet. Wenn ich aber eine VM in KVM erzeuge dann wird die Festplatte als /dev/vda erzeugt. Dieses lässt sich zwar ändern, zeigt aber keine Auswirkung.

Glücklicherweise lässt sich das Problem jedoch sehr leicht beheben. Startet die VM und verbindet euch mittels VNC mit der Konsole. Sobald ihr den Grub Bootscreen seht, drückt ihr e.

GRUB Bootmenü

Anschließend könnt ihr die Einträge bearbeiten. Aus root=/dev/sda1, macht ihr einfach root=/dev/vda1 und setzt en Bootvorgang mit F10 fort.

Um die Änderungen permanent zu machen, muss das File noch dauerhaft angepasst werden.

cd /boot/grub
chmod +w grub.cfg
vi grub.cfg

Auf einem Debian Stretch müsst ihr einfach nur drei Zeilen anpassen und ihr seid fertig. Damit habt ihr dann die Einstellungen dauerhaft gemacht und das System sollte laufen wie bisher.

linux   /boot/vmlinuz-4.9.0-8-amd64 root=/dev/vda1 ro  quiet
linux   /boot/vmlinuz-4.9.0-8-amd64 root=/dev/vda1 ro  quiet
linux   /boot/vmlinuz-4.9.0-8-amd64 root=/dev/vda1 ro single

Anschließend solltet ihr das Schreibrecht mit chmod -w grub.cfg entfernen. Probleme mit dem Netzwerk-Interface hatte ich bei Debian Stretch VMs bisher nicht, obwohl sich die MAC geändert hat, es lief sofort.

Zusammenfassung

Wir wissen nun das der Synology Virtual Machine Manager auf KVM setzt und die virtuellen Disks der VMs per iSCSI eingebunden werden. Somit steht einer Migration nichts im Wege. Eventuelle Boot-Probleme solltet ihr nun auch beheben können. Ich hoffe ihr könnt mit den Infos etwas anfangen. Eventuell sieht es bei euerer Konfiguration anders aus, sollte euch aber ein paar nützliche Hinweise liefern.

2 Gedanken zu „Migration von Synology VMs“

  1. Hallo,

    in dem Ordner ist neben der vdisk……0_0000 Datei auch noch eine viel größere ROD Datei. Können Sie mir sagen, was das ist und wofür diese gut ist, muss diese ebenfalls gesichert werden?

    Danke für einen Hinweis, auch für die tolle Anleitung, und viele Grüße!
    Marvin

    Antworten
    • Hallo,

      leider kann ich nicht sagen wozu diese Datei wirklich dient. Bei mir ist sie jedoch bei allen 6 VMs vorhanden und auch gleich groß, daher würde ich sie ignorieren. Bei mir ging es jedenfalls ohne. Ich vermute diese Datei ist der gemeinsame Speicherpool, aber es ist nur eine Vermutung.

      Grüße,
      Björn

      Antworten

Schreibe einen Kommentar