In diesem Beitrag zeige dich Dir, wie Du eine Festplatte der virtuellen Maschine sichern kannst, damit Du sie entweder als vollständiges Backup hast, oder eben auf einen anderen Server kopieren und dort weiter benutzen kannst. Letzteres war mein Vorhaben aus aktuellem Server-Neukauf 😉 Da das ZFS-Dateisystem keinen direkten Kopiervorgang erlaubt, behelfen wir uns einer kleinen Hilfe. Ich benutze in dieser Anleitung die Version Scale und nicht Core. Die Schritte sollten aber ähnlich sein.
Herausfinden, wo die Festplatte der VM liegt
Hierzu öffnest Du deine TrueNAS Instanz, wählst Virtualisierung, klappst die Maschine auf und klickst auf Geräte.
Dort wählst Du bei Disk die 3 Punkte aus und wählst erneut Bearbeiten aus.
Danach erscheint der Pool, auf welchem die virtuelle Festplatte liegt.
Nachdem Du nun den Speicherpfad der Festplatte herausgefunden hast, musst Du die virtuelle Maschine ausschalten. Dazu wählst Du im Fenster vorher Ausschalten.
Speicherpunkt der virtuellen Festplatte aktivieren
Damit die Festplatte nun gesichert werden kann, habe ich bei mir alle vorherigen Sicherungspunkte gelöscht und einen einzigen neu angelegt. Dies geschieht über Datasets, Pool-Name, Festplatte.
Auf der rechten Seite wählst Du Snapshots verwalten aus. Dann erscheint eine Liste, mit den ggf. automatisch angelegten Snapshots.
Diese bitte alle löschen, da sonst das Backup später einen veralteten Stand hat, da immer der älteste Snapshot genommen wird.
Nun gehen wir abermals auf Datasets, Pool-Name, Festplatte. Hier wählst Du Snapshot erstellen aus. Die Einstellungen im nachfolgenden Fenster lässt Du wie sie sind und klickst zusätzlich Rekursiv an. Damit werden alle Daten der Festplatte gesichert. Die Absicherung dauert nur einen kurzen Moment. Dies kann abermals mit einem Klick auf Snapshots verwalten kontrolliert werden.
Festplatten-Abbild in ein ZIP-Archiv kopieren
Damit die virtuelle Festplatte portabel wird, muss Sie in ein ZIP-Archiv kopiert werden. Der Speicherplatz des ZIP-Archivs kann frei gewählt werden und sollte ausreichen Kapazität für die virtuelle Festplatte bereithalten.
Nachdem Du dich nun auf deinem TrueNAS per SSH oder lokal angemeldet hast, gibst Du folgenden Befehl ein. Der linke Teil ist die Quelle, also die virtuelle Festplatte im Dateisystem und der rechte Teil das Ziel, also das ZIP-Archiv und der Pfad, wo es gespeichert werden soll. Der Pfad /mnt/Data/snapshot_app.gz sollte also von Dir anzupassen sein. Der Parameter -R besagt, das rekursiv gesichert wird – also alles unterhalb der Festplatte selbst.
zfs send -R -v Virtual_Machines/app-server@manual-2022-12-20_14-57 | gzip > /mnt/Data/snapshot_app.gz
Hierbei ist zu beachten, das nach der Festplatte ein @ Symbol kommt, welches auf das soeben angelegte Snapshot-Abbild zeigt. Der Parameter -v gibt die Rückmeldungen des Einlese- und Packvorgangs aus. Wie Du sehen kannst, dauert dies eine kleine Weile, bis das Abbild eingelesen und gepackt wurde.
Sobald der Vorgang abgeschlossen wurde, ist die virtuelle Festplatte “portabel” und kann nun per FTP heruntergeladen, auf eine andere Festplatte kopiert oder verschoben werden. Bei mir dauerte der Vorgang zum Sichern von 27.1GB in etwa 14 Minuten. Die Datei, die die “27 GB” dann enthält, ist um die 11GB groß, je nachdem, wie viele Daten auf der virtuellen Festplatte vorhanden sind.
Festplatten-Abbild entpacken
Sobald Du nun das Festplatten Archiv auf einen neuen Server kopiert hast oder die Datei nach einem Ausfall zurück kopieren möchtest, muss dieses erst einmal entpackt werden,
Dies geschieht mit:
gunzip snapshot_app.gz
Das Entpacken des Archivs geht in der Regel relativ schnell. Bitte beachte, dass das Archiv beim Entpacken gelöscht wird. Solltest Du dies nicht wünschen, so ist der Parameter (-k -> Keep (behalten)) für Dich sinnvoll und der Befehl lautet:
Mit dem Parameter -v gibt GUNZIP ggf. auch Fehlermeldungen aus, warum die Datei nicht entpackt werden kann.
gunzip -k -v snapshot_app.gz
Festplatte in das ZFS Datei System wiederherstellen
Um die Festplatte nun aus der entpackten Datei in das ZFS Dateisystem zu bekommen, gibst Du folgenden Befehl ein:
zfs receive -F -v Virtual_Machines/neue_festplatte < snapshot_app
Auch gilt wieder der Parameter -v für die Ausgabe und -F für ein volles Empfangen der Daten. Das Zurücksichern in das ZFS-Dateisystem geht relativ schnell von Statten. Danach kann die Quelldatei gelöscht werden und die zurück gesicherte Festplatte einer virtuellen Maschine zugewiesen werden.