Inhalt von zvol in andere zvol kopieren

Dunuin

Distinguished Member
Jun 30, 2020
14,205
4,152
243
Germany
Moin,

Ist jetzt kein spezifisches Proxmox Problem, eher ZFS im allgemeinen, aber ich dachte ich frage mal trotzdem hier.
Ich habe da ein zvols welche ohne native ZFS Verschlüsselung auf einer verschlüsselten Festplatte liegen und volblocksizes von 16K oder 64K haben. KVM nutzt teils 512B und teils 4K für virtio SCSI.
Jetzt wollte ich die die zvols aber gerne mit nativer ZFS Verschlüsselung haben sowie eine volblocksize von 32K. Beides ist ja nur bei der Erstellung des zvols setzbar und man kann diese ZFS parameter nicht über "zfs send | zfs recv" ändern. Also dachte ich mir ich erstelle mir einfach neue zvols die gleich groß sind und native ZFS Verschlüsselung und 32K volblocksize nutzen und kopiere den Inhalt auf Blockebene von den alten zvols rüber in die neuen zvols.
Das habe ich dann auch mit dd bs=1M if=/dev/zvol/altesZvol of=/dev/zvol/neuesZvol gemacht laut DD wurde gleich viele Blöcke gelesen wie auch geschrieben, aber nachher funktionierte nur noch eines der 3 zvols. In dem einen zvol war ein BPS der dann auch problemlos vom neuen Zvol bootete. Die anderen beiden Zvols hatten ein OPNsense und ein Debian drauf und der Bootloader bootete auch, aber danach ging es nicht mehr weiter. Das initramfs von Debian meckerte dann, dass da eine Root-Partition mit angegebener UUID nicht mehr existiere...

Da ist dann ja wohl beim Kopieren irgendwas schief gelaufen, wenn da die vorhandene Root-Partition nicht mehr gefunden werden kann oder sich die UUID der PArtition irgendwie geändert haben sollte.

Weiß jemand was da das Problem sein könnte oder wie man das besser macht?
Vertragen die Zvols vielleicht nicht das Kopieren von dd mit einer Blocksize von 1M? Falls ja, mit was für einer Blocksize müsste denn da dd kopieren, wenn ich von volblocksize 64K bzw 16K bei 512B bzw 4K virtio auf ein anderes zvol mit 16K volblocksize kopieren will?

Wäre nett wenn da jemand einen Tipp hat. Einfach Backup+Restore, was ich bisher immer benutzt habe, geht leider in diesem Fall nicht.
 
Ich habe zwar keine Ahnung von ZFS Verschlüsselung, aber dd kopiert ja jeden Block identisch. Da würde ich denken, dass kann nicht gehen.
Etwas anderes, allgemein soll man keine Verschlüsselung auf einem Backend (hier Disk) machen wo schon verschlüsselt wird.
 
Ich habe zwar keine Ahnung von ZFS Verschlüsselung, aber dd kopiert ja jeden Block identisch. Da würde ich denken, dass kann nicht gehen.
Ja, da war ich mir mit der Blocksize eben auch nicht wirklich sicher was ich nehmen soll. Ich hatte gehofft wenn dd Daten in 1MB Blöcken liest, dass dann ZFS das mit den Blockgrößen beim lesen und schreiben regelt. Also z.B. dd will 1MB von einem 64k volblocksize zvol lesen. ZFS ließt den 1MB dann als 16x 64K Blöcke vom alten zvol und svhreibt diese dann als 33x 32K Blöcke auf das neue Zvol.
Etwas anderes, allgemein soll man keine Verschlüsselung auf einem Backend (hier Disk) machen wo schon verschlüsselt wird.
Ist in dem Fall auch nicht. Die alten Zvols nutzen keine native ZFS Verschlüsselung weil die kompletten SSDs unterhalb von ZFS bereits verschlüsselt sind.
Die neuen SSDs sind aber unverschlüsselt und die Verschlüsselung von einzelnen Datasets (und darin enthaltenen Zvols) soll dann ZFS nativ selbst übernehmen.
 
Hallo,
ich glaube nicht dass das mit dd geht, weil dd keine Ahnung hat wie die Daten innerhalb von ZFS organisiert sind und daher auch nicht die Metadaten wie volblocksize ändern kann. Vermutlich das Einfachste: in Proxmox VE bei der ZFS-Storage die gewünschte Block-Size konfigurieren und die Disk auf eine andere Storage verschieben und zurück. (Oder mit pvesm export/import um direkt auf der selben Storage zu verschieben).
 

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!