Anzeigen von Disk Images im ZFS Dateisystem

Thomas Stofer

Well-Known Member
Oct 29, 2017
113
4
58
56
Hallo,
ich bin noch relativ umbeschlagen und neu hier, aber ich habe da eine Frage die mich doch sehr umtreibt... ;-)
Ich wurde gerne zur Datensicherung snapshots Beispielsweise mittels
zfs snapshot rpool/data
von meinen virtuellen Maschinen, bzw. deren Disk-Images erstellen. Das hat soweit auch geklappt, aber die Disk-Image-Dateien tauchen dort nicht auf. Nun wollte ich mir die originalen Disk-Images in der Console anschauen. Die sind dort aber im Verzeichnis /rpool/data auch nicht zu sehen. Auch in einem anderen zfs Pool den ich angelegt habe, verhält es sich so.
Ich denke, das ist normal, aber ich finde nichts dazu.

Wenn ich ein zfs Pool als Storagelaufwerk im PVE als Verzeichnis hinzufüge, tauchen die Dateien auf. Aber das macht ja keinen Sinn, oder?

Ich wäre dankbar, wenn mir jemand dazu etwas imput geben kann, oder zumindest sagen kann wo ich finde was ich suche!

Schönen Sonntag noch an alle!
Thomas Stofer
 
Hallo Thomas,

ein Forum-Mitglied (Fireon) hat eine gute Doku geschrieben zu ZFS unter Proxmox: https:\\deepdoc.at/dokuwiki/doku.php?id=server_und_serverdienste:linux_zfs

Auf der Console benötigst du zum Auflisten der Snapshots: zfs list -t snapshot
Wenn du die Größe der Veränderung in den Snapshots sehen möchtest: zfs get written

Wenn ich ein zfs Pool als Storagelaufwerk im PVE als Verzeichnis hinzufüge, tauchen die Dateien auf. Aber das macht ja keinen Sinn, oder?
Was meinst du damit konkret?

VG Lars
 
Hallo Lars,

ich schau mir den Link gleich an.
Ich meine damit:
001.PNG

Wenn ich das ZFS Dateisystem wie oben im Bild einbinde dann ergibt

root@ts-cs01:/speicher-ts-cs-01/images/255# ls
vm-255-disk-1.qcow2
diese Ausgabe.
Wenn ich eine VM anlege und die Disk in das zfs Storage das als solches direkt eingebunden ist (im Bild das über dem markierten) dann kann ich in der Konsole die
vm-xxx-disk-x.qdowx nicht sehen. Sie taucht auch in einem Snapshot den ich mit der -r Option vom Dateisystem /speicher-ts-cs-01 erstelle, nicht auf.
Das mit dem Anzeigen der Snapshots weiß ich schon. Aber wenn ich die für Backup Zwecke (z.B auf dem zweiten Node) verwenden will, dann reicht es ja nicht wenn ich den snapshot sehe. Ich wurde gerne auf die Dateien im Snapshot zugreifen. Aber die kann ich nicht mounten, die *.qdowx datei könnte ich z.B Mounten um eine Datei wieder herzustellen.

LG
Thomas
 
Hallo Thomas,

du bekommst dort mit "zfs list" eine Übersicht, welche Volumes sich im Dataset rpool/data befinden, z.B. /rpool/data/vm-255-disk-1
Die Datei "vm-xxx-disk-x.qdowx" wirst du nicht finden, da es sich um ein Block-Device handelt und nicht um eine Datei.
Das Block-Device wird direkt an die VM durchgereicht. ZFS weiß auf dem Block-Device nur, wo sich Datenblöcke befinden und kann anhand der Snapshots herausfinden, wo sich Datenblöcke verändert haben.

Auf die Daten im Snaphost kannst du mit: "zfs clone tank/test/productA@today tank/test/productAbeta" zugreifen.
Das Block-Device wird dann mit dem Dateisystem dahinter in die VM durchgereicht und kann gebootet werden (Achtung: Es werden die gleichen IP-Adressen verwendet, wenn die Netzwerkverbindung nicht deaktiviert wird.)

VG Lars
 
Hi Lars,

Danke!!! Jetzt kommt langsam Licht ins Dunkel!!!
Aber wie meinst Du das mit
Das Block-Device wird dann mit dem Dateisystem dahinter in die VM durchgereicht
Wenn ich jetzt einen sapshot an den zweiten Node mit dem send Befehl übertragen habe, dann mit dem clone Befehl im ZFS Dateisystem eingehängt habe, ist da ja keine Maschine. Dann müsste ich eine erstellen und der dann die Platte aus dem snapshot zuweisen können, oder? Aber erscheint die in der Gui, oder muss ich das über die Konfigdatei machen? (Beim schnellen Testen ist sie in der Gui nicht erschinen...

Thomas
 
Hallo Thomas,

Wenn ich jetzt einen sapshot an den zweiten Node mit dem send Befehl übertragen habe, dann mit dem clone Befehl im ZFS Dateisystem eingehängt habe, ist da ja keine Maschine. Dann müsste ich eine erstellen und der dann die Platte aus dem snapshot zuweisen können, oder? Aber erscheint die in der Gui, oder muss ich das über die Konfigdatei machen? (Beim schnellen Testen ist sie in der Gui nicht erschinen...

Du kannst zum Beispiel eine VM mit der ID: 500 erstellen, dann würde ich die erstellte Disk in der VM löschen und über zfs clone die Disk vm-500-disk-1 erstellen.
Nach einer Aktualisierung wird die Platte als unused in der VM stehen. (ungetestet)
Alternativ nach dem Schema, wie es in den Konfig-Dateien ist, die Platte manuell hinzufügen/eintragen.

Das was ich mit "Das Block-Device wird dann mit dem Dateisystem dahinter in die VM durchgereicht". Es ist vergleichbar mit einem Foto, auf dem bestimmte Datenblöcke markiert sind. Dort kann jedes beliebige Dateisystem liegen, z.B. Ext4, NTFS, ... .

Schau dir bitte die PVE-Replizierung an, die kann automatisch Snapshots replizieren zu einem anderen PVE-Host. Meine Erfahrung reicht dafür nicht aus, da ich es bisher nicht ausprobiert habe.

Bitte für Produktiv-Systeme immer eine Subscription einsetzen.

VG Lars
 
Hi Lars,
so muss ich das auch noch testen. Ich habe jetzt aber auch herausgefunden, dass man den Clone auch mounten kann. Mittels fdisk -l taucht eine Festplatte auf:
Code:
Disk /dev/zd48: 32 GiB, 34359738368 bytes, 67108864 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 8192 bytes
I/O size (minimum/optimal): 8192 bytes / 8192 bytes
Disklabel type: gpt
Disk identifier: DD976620-3F5A-4EFB-89A8-EEE6B1A7E62D

Device       Start      End  Sectors  Size Type
/dev/zd48p1     34   262177   262144  128M Microsoft reserved
/dev/zd48p2 264192 67106815 66842624 31.9G Microsoft basic data

Diese kann dann mit
Code:
root@ts-cs02:/# mount -t ntfs /dev/zd48p2 /mnt/test/
root@ts-cs02:/# cd /mnt/test
root@ts-cs02:/mnt/test# ls
2017  System Volume Information
root@ts-cs02:/mnt/test# cd 2017
root@ts-cs02:/mnt/test/2017# ls
Angebote  Briefe  Lieferscheine  Rechnungen

Damit kann man einzelne Dateien herauskopieren.
Mit PVE-Replizierung hab ich auch schon ein wenig herumgetestet. Bin aber noch nicht ganz durch. Dabei wird ein zfs dateisystem angelegt und gemountet. Da kann man dan direkt drauf zugreifen. Hab das aber noch nicht mit Windows Platten getestet und noch nicht die Funktion mit dem behalten von Snapshots. Könnte auch eine gute Lösung sein.
Jetzt muss ich das ganze noch ein wenig testen und Notieren, sonst vergesse ich das wieder ... ;-)
Das System ist ein bissle im Produktiv Einsatz. Eine Community Subscription habe ich schon erworben, sogar eine CPU zu viel...

Dir besten Dank für Deine Hilfe, das war echt Gold wert!!!! Kann man das hier als "gelöst" markieren?

LG
Thomas
 
Hi Lars,
der vollständigkeit halber und weil es vielleicht noch jemand hier interesiert:
Du kannst zum Beispiel eine VM mit der ID: 500 erstellen, dann würde ich die erstellte Disk in der VM löschen und über zfs clone die Disk vm-500-disk-1 erstellen.
Hab ich getestet und funktioniert auch so!
Gute Nacht
Thomas
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!