PVE/PBS zfs/btrfs rescue mode - Rollback

floh8

Renowned Member
Jul 27, 2021
1,091
122
73
Ich wollte mal ausprobieren, ob man PVE/PBS mit BTRFS oder ZFS sinnvoll einsetzen kann. Ich schrieb ja eine Desaster Recovery-Anleitung für HW-Raid Systeminstallationen, aber im alltäglichen Doing bringt dir natürlich so eine Rollbackfunktionalität eines SW-Raids wie zfs oder btrfs mehr, denn es ist easy zu handeln und schnell gemacht, wenn ich zum Beispiel ein Systemupdate durchführen möchte. Man findet ja leider sehr viele Probleme beim Systemupdate von Proxmox in diesem Forumsportal. Da wäre es schön, wenn man sich entspannt zurücklehnen kann, und einfach sagt - och nö, dann rolle ich eben zurück und warte mal ab, bis die Kinderkrankheiten ausgemerzt sind.
Mein Test in meiner kleinen KVM-Umgebung war eine Katastrophe. Ich muss vorweg erwähnen, dass ich weder von zfs noch grub viel Erfahrung habe. Allerdings bin ich von Proxmox sehr enttäuscht an dieser Stelle. Meine Motivation wuchs, als ich hier ein Thread fand, der zeigte, dass man sogar via grub-menu einen snapshot starten kann. Die Realität sah dann anders aus.

Ich arbeitete mit: PVE 7.0-1.

Zuerst testete ich BTRFS und installierte ein Raid1 damit. Ich machte ein Snapshot und bootete neu, um mal zu sehen, ob ich da jetzt etwas im Bootmenu sehe. Leider nein. Nun probierte ich den Rescue Modus meiner PVE-ISO. Der brachte einen Fehler. Da dachte ich mir: Naja, BTRFS ist ja noch als experimental von Proxmox gekennzeichnet. Da ist wohl noch was zu tun, da fehlt noch Einiges. Ist halt nicht für die Produktion geeignet. Nicht so schlimm. Wir haben ja ZFS-Boot-Support, der ja schon eine Weile integriert ist. Da sieht das sicherlich viel besser aus. Ne, wahr?
Also, kurzerhand System mit ZFS-Boot im Raid 1 und Standardkonfig installiert. Snapshot gemacht und Reboot. Wieder nix im Grub-Menu, also zu Rescue Mode. Der brachte aber Fehler - Hinweis das Compression-Typ nicht unterstützt. Ich dachte mir, naja. Die Kompression hat zwar viel gebracht, ca. 50% Speicherplatzersparnis, aber wenn der Rescue Mode nicht funzt, dann bringt mir das nix. Zuerst habe ich Compression auf dem Pool deaktiviert und mit einem neuen Snapshot gearbeitet, aber der Fehler blieb. So habe ich fix neuinstalliert ohne Kompression. Dann kam aber folgender Fehler (siehe Bild).

pve_zfs_recoverymode.png

Da war ich dann wenig amused und finde da hat Proxmox Mist gebaut. Ähnliche Fehler habe ich im Forum nicht gefunden. Ich probierte mal den Debug-Modus, aber der hat kein zfs Support. Ich fand den Hinweis hier, eine LiveCD mit zfs- oder backports-Support zu nutzen. Da habe ich mich mit 'ner Debian Live CD rumgeschlagen und mir gesagt, wenn du immer erst zfs installieren musst, um ein Rollback zu machen, bringt das für den Alltag auch nix. Im Internet suchte ich dann nach LiveCD mit zfs integriert. Da staunt man nicht schlecht, dass es fast nix gibt. Da müssen sich Leute ISOs zusammenbasteln mit gentoo z.B. Ubuntu war dann der beste Hinweis. Da ich noch 'ne Xubuntu da hatte, habe ich diese probiert. Die schrie mich aber gleich mal an, dass die zfs Variante einen anderen Parameter enthält und man damit nur readonly mount kann. Probiert, da meckerte sie, dass sie in "/" nicht mounten kann, weil das ja nicht leer ist. Logisch dachte ich mir. ZFS-Mountpoint auf "/mnt" umgestellt, aber irgendwie klappte das Mounten nicht. Ich überlegte, ob eine Standard Ubuntu ein anderes ZFS integriert hat, wo keine Fehler kommen. Einen Versuch wäre es ja wert. Desktop Live CD heruntergeladen. Schau an, die meckerte erstmal nix von wegen Parameter. Dann Mountpoint wieder geändert und Snapshot zurückgespielt. Reboot gemacht und die nächste Hürde. Er kann ZFS -Pool nicht mounten. Ich landete im Recovery Modus von der busy-box, ABER zfs-Support ist hier zum Glück gleich da. Ich hatte nämlich vergessen, den Mountpoint wieder zurückzustellen. Ich wusste leider nicht mehr, was drin stand, und probierte einfach "/". Es klappte. System startete sauber.
Liebe Proxmox-Entwickler. Wenn das mit zfs und Co und LiveCD so eine "Seuche" ist, warum setzt ihr das nicht ordentlich um. Sowas macht aus meinen Augen ein System für Enterprise-Nutzung aus. Dafür bekommt ihr Geld.
Als Feature-Request würde ich vorschlagen, die Idee mit dem BootMenu-Eintrag umzusetzen, falls das für zfs und btrfs geht. Wie geschrieben, fand ich bereits einen Thread hier dazu. Ich glaube der bezog sich auf BTRFS.
Das wäre für den Alltag die Lösung schlecht hin.

Backup des Systems:

Wie ich bereits in anderen Beiträge schon mal erwähnte, kann man bei SW-Raids mit zfs oder btrfs leider kein Image-Backup mit PBS oder rear machen, wen das System online ist. D.h dann, ich benötige zunächst mal eine File-basierte Sicherung des Systems über PBS. Bei meinem Test interessierte mich außerdem, welches Disk-Layout Proxmox auf den Platten erstellt. Wenn mir jetzt 'ne Platte flöten geht, dann reicht es ja nicht, wenn ich nur zfs gespiegelte Partitionen wiederherstelle. Proxmox legt noch 2 weitere Partitionen für Boot und EFI an. Diese sind ja auch wieder herzustellen. Im Forum hier findet man dazu Hinweise, das mit dd zumachen. Ich denke, das sollte im Live-Betrieb zu eine ext. Freigabe kein Problem darstellen. Man könnte dafür auch rear nehmen, aber ist eigentlich nicht notwendig, da der Datenzuwachs ja gering ist. Darauf wollte ich nur kurz noch hinweisen.
Weitere Hinweise und Lösungen unter: https://forum.proxmox.com/threads/p...d-desaster-recovery-mit-pbs.93485/post-414576 und https://forum.proxmox.com/threads/desaster-recovery-für-den-pbs-bei-worst-case-szenarios.93680/

Fazit:

PBS und PVE sind mit zfs als Systemvol. nutzbar
Als Rollback Liveumgebung ist Ubuntu zu empfehlen. [oder Prox-Iso Debug Mode - siehe unten]
Weitere Backup-Hinweise unter: https://forum.proxmox.com/threads/p...d-desaster-recovery-mit-pbs.93485/post-414576
und
https://forum.proxmox.com/threads/desaster-recovery-für-den-pbs-bei-worst-case-szenarios.93680/

Ergänzung:
- die grub-Erweiterung heisst grub-btrfs. Ich bin mir sicher, ihr arbeitet schon dran.
- PVE mit BTRFS konfiguriert noch kein SWAP; wer es braucht, schaue hier: swap für btrfs: https://wiki.archlinux.org/title/Btrfs#Swap_file
 
Last edited:
Ein langes Post, werden wohl nicht viele lesen, wenn doch stellt man fest das einige Erkenntnisse und Schlussfolgerungen nicht richtig sind.

Besser wäre:
Bitte einzelne Fragen/Themen, dann kann man auch einfach antworten und helfen.

Und noch ein inhaltlicher Kommentar: Natürlich unterstützt der Debug mode unseres ISOs ZFS.
 
hi tom.
direkte frage war es ja nicht, falls was falsch ist, dann gerne melden.
du meinst also, es gibt zfs tools im debug mode? Wo bitte?

pve-debug-zfs.png
 

Attachments

  • pve_zfs_recoverymode.png
    pve_zfs_recoverymode.png
    19.5 KB · Views: 5
ah, danke. das hatte ich ignoriert.
sehr gut. also das geht auch, dann kann man sich die ubuntu cd sparen. sehr gut.

ich habe gleich nochmal eine Neuinstallation mit Komprimierung gemacht und man kann den Pool dann einbinden mit force + poolname.
Ich habe bei dieser Installation mal den "hdsize" angepasst, weil hier im Forum mal so eine Frage stand und siehe da, die zfs Partition wird kleiner gemacht. Da kann man sogar PVE mit nur 10 GB installieren. Geiler Sch.... ;)

Hinweis für die zfs Anfänger:

Mich hat ja der Debugmodus darauf hingewiesen, dass der Pool woanders lief. Man muss unter zfs, wenn man Rollback machen will, sicherheitshalber den Pool exportieren. Das geht natürlich nicht, wenn mein Root-System auf zfs läuft. Diesen Fehler muss man an der Stelle akzeptieren. Wenn man allerdings den Rollback durchgeführt hat, dann sollte man den Pool wieder exportieren, sonst startet PVE nicht, man kommt in die busy box, wie ich es oben kritisierte und muss erst von Hand importieren.

Fazit: So finde ich es gut gelöst von Proxmox. Man muss es nur wissen. Hinweis ins Wiki bzw. Doku is immer toll :cool: Wenn nun noch grub-btrfs integriert wird, dann wirds nochmal charmanter und man spart etwas RAM ;)
 
Last edited:
Ergänzung zu BTRFS: generell würde mich mal interessieren wie sich die proxmox-Entwickler vorstellen, wie man zukünftig ein Rollback
durchführen soll. Ich habe jetzt recherchiert und mir die Möglichkeiten angeschaut. Das ist ja umständlich und unüberschaubar, finde ich.
Also der Partitionaufbau von pve für zfs oder btrfs ist der Gleiche. Man kann über den DebugModus BTRFS mounten und damit arbeiten. Bei BTRFS konfiguriert Proxmox allerdings das sogenannte verschachtelten Layout. Man bindet die Wurzel ein, indem man im grub die UUID der Partition anspricht und dann auch in der fstab mountet. Es wird somit das voreingestellte Default Subvolume geladen.

Wenn ich jetzt ein snapshot mache, dann von der Wurzel. Es gibt wohl 3 verschiedene Wege den Snapshot zu restoren.
Ich konnte nur das default volume ändern, um den snapshot zu laden, aber dieses Vorgehen finde ich schlecht, denn die Wurzel bleibt für mich nicht mehr zugänglich. Aus meiner Sicht wäre es besser, wenn das flache Layout genutzt wird. D.h. root-fs liegt in einem subvolume und wird über z.B. den Volumenamen in der fstab gemountet und auch über grub angesprochen (wie Fedora es macht).
Dann könnte man einfach das Verzeichnis des snapshots mit dem des root-volumes umbenennen wie in einem der Wege gezeigt.
Bei btrfs sind snapshots = subvolumes.
Die Volumeid von der Root-Wurzel ist übrigens 5. Also so wie es jetzt gedacht ist, würde ich zfs dem btrfs locker vorziehen.
Habe ich was übersehen?
 
Last edited:
Was ich mir wünschen würde wäre eine ISO von der ich booten kann und die es mir dann erlaubt ein Image einer HDD auf ein PBS zu sichern oder vom PBS ein Image auf die HDD zu schreiben. Das würde ich mir dann auf einen USB Stick kopieren, den immer im Server stecken lassen und wenn ich mal PVE upgraden will, dann würde ich kurz den Server neustarten und manuell in den Stick booten. Wenn dann was nicht passt könnte ich einfach die Boot-Laufwerke auf Blockebene vom PBS wiederherstellen.
Und weil das Backup ja auf Blockebene läuft wäre man auch nicht nur auf PVE beschränkt. Damit könnte ich auch meine Windows Workstation, meinen TrueNAS Server und Co sichern.
Und natürlich könnte man sowas dann auch gleich zusätzlich noch ins PVE Bootmenü einbauen. Dann bräucht man für PVE nicht einmal extra einen USB-Stick.

So etwas würde ich echt praktisch finden. Halt wie ein Clonezilla aber mit PBS als Storage wo ich dann auch Versionierung und Dedupliziung habe.
 
Last edited:
Was ich mir wünschen würde wäre eine ISO von der ich booten kann und die es mir dann erlaubt ein Image einer HDD auf ein PBS zu sichern oder vom PBS ein Image auf die HDD zu schreiben. Das würde ich mir dann auf einen USB Stick kopieren, den immer im Server stecken lassen und wenn ich mal PVE upgraden will, dann würde ich kurz den Server neustarten und manuell in den Stick booten. Wenn dann was nicht passt könnte ich einfach die Boot-Laufwerke auf Blockebene vom PBS wiederherstellen.
Und weil das Backup ja auf Blockebene läuft wäre man auch nicht nur auf PVE beschränkt. Damit könnte ich auch meine Windows Workstation, meinen TrueNAS Server und Co sichern.
Und natürlich könnte man sowas dann auch gleich zusätzlich noch ins PVE Bootmenü einbauen. Dann bräucht man für PVE nicht einmal extra einen USB-Stick.

So etwas würde ich echt praktisch finden. Halt wie ein Clonezilla aber mit PBS als Storage wo ich dann auch Versionierung und Dedupliziung habe.
hi dunuin.
du setzt wohl die hw-raid lösung ein. hast du denn meinen post bereits gelesen? dort bastle ich mit einer debian buster CD genau das, was du dir wünscht. Die Sicherung kannst du sogar im laufenden Betrieb tätigen. Du müßtest dir also nur eine live cd, mit dem proxmox-backup-client bereits installiert, bauen und schon bist du fein.
für win-clients sollte dies offline auch funktionieren. kannst du ja mal in einer testumgebung ausprobieren.
hier wieder gleich der Wunsch ans Proxmox team. Baut den Client doch in die Debug-Umgebung der PBS-ISO gleich mal mit ein!
 
Last edited:
hi dunuin.
du setzt wohl die hw-raid lösung ein. hast du denn meinen post bereits gelesen? dort bastle ich mit einer debian buster CD genau das, was du dir wünscht. Die Sicherung kannst du sogar im laufenden Betrieb tätigen. Du müßtest dir also nur eine live cd, mit dem proxmox-backup-client bereits installiert, bauen und schon bist du fein.
für win-clients sollte dies offline auch funktionieren. kannst du ja mal in einer testumgebung ausprobieren.
hier wieder gleich der Wunsch ans Proxmox team. Baut den Client doch in die Debug-Umgebung der PBS-ISO gleich mal mit ein!
Ne, meine Boot-Laufwerke nutzen gerade eine Mischung aus mdadm SW raid1, LUKS und LVM:
Code:
root@Hypervisor:~# lsblk
NAME                              MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda                                 8:0    0  93.2G  0 disk
├─sda1                              8:1    0     1M  0 part
├─sda2                              8:2    0   286M  0 part
├─sda3                              8:3    0   488M  0 part
│ └─md0                             9:0    0   487M  0 raid1 /boot
└─sda4                              8:4    0  92.4G  0 part
  └─md1                             9:1    0  92.3G  0 raid1
    └─md1_crypt                   253:0    0  92.3G  0 crypt
      ├─vgpmx-lvroot              253:1    0    21G  0 lvm   /
      └─vgpmx-lvswap              253:2    0    61G  0 lvm   [SWAP]
sdb                                 8:16   0  93.2G  0 disk
├─sdb1                              8:17   0     1M  0 part
├─sdb2                              8:18   0   286M  0 part  /boot/efi
├─sdb3                              8:19   0   488M  0 part
│ └─md0                             9:0    0   487M  0 raid1 /boot
└─sdb4                              8:20   0  92.4G  0 part
  └─md1                             9:1    0  92.3G  0 raid1
    └─md1_crypt                   253:0    0  92.3G  0 crypt
      ├─vgpmx-lvroot              253:1    0    21G  0 lvm   /
      └─vgpmx-lvswap              253:2    0    61G  0 lvm   [SWAP]
Deinen Post habe ich schon verfolgt.
 
für eine sw-raid-lösung mit mdadm gehts natürlich auch. nur online-sicherung geht natürlich nicht, aber das war ja wegen deiner config ja auch nicht dein ziel. gib mal rückmeldung, ob das bei dir klappt!
 
Ergänzung zu BTRFS: Wer doch mit BTRFS gehen möchte, hat hier die Möglichkeit auch ohne Raid1 zu arbeiten. Das geht wie folgt:

  1. Installiere PVE im BTRFS Raid1 aber nur mit einer Platte
  2. Nach der Installation kannst du die BTRFS Installation im laufenden Betrieb zu einem Single Typ konvertieren:
    # btrfs balance start -f -sconvert=single -mconvert=single -dconvert=single /
Hinweis zu oben:
Snapshot erstellen bevor ich den PVE-Host update, wäre mit:
# btrfs subvolume snapshot / /var/lib/pve/snapshots/snap1

Wenn du dann die Änderungen rückgängig haben möchtest, bootest du in den Snapshot mit:
# btrfs subvolume set-default [snap-ID] /
In der fstab brauchst du nichts anpassen. Snap-ID findest über
# btrfs subvolume list /
heraus.

Wichtige INFO: Wenn du die Snapshots bootest verschwindet das subvolume local-btrfs, da subvolumes und snapshots bei Snapshotvorgängen nicht mit einbezogen werden. Du müßtest also im 1. Snapshot das Verzeichnis /var/lib/pve/local-btrfs manuell anlegen und das local-btrfs Subvolumen z.B. über die fstab reinmounten.
 
Last edited:

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!