In meinem neuen Video geht es darum, einen defekten ZFS-Pool zu reparieren, auf dem sich gleichzeitig auch das Systemlaufwerk befindet. Ein einfaches „zpool replace“ würde hier nicht ausreichen. Auf einem Proxmox-Systemlaufwerk befinden sich zusätzlich die EFI-Partition und die Boot-Partition, die ebenfalls berücksichtigt werden müssen.
Deshalb ist bei einem Ausfall der System-SSD ein strukturiertes Vorgehen notwendig, damit das System anschließend wieder korrekt booten kann und der ZFS-Mirror sauber aufgebaut wird.
Hier finden Sie die wichtigsten Befehle aus dem Video, jeweils mit einer kurzen Erklärung ihrer Funktion.
Liste wichtiger Befehle in Proxmox zum reparieren von ZFS Laufwerken
Achten Sie immer darauf, dass Sie ihre Laufwerksnummerierungen (sda, sdb, sdc … nvme0n1, nvme1n1) ihre eigenen Disk by ID Bezeichnungen usw verwenden! Ändern Sie die Befehle entsprechend ab!
1. Der Befehl erzeugt auf dem Ziel die selben Partitionen wie auf der Quelle. Inkl Größe und Position, aber ohne Daten zu kopieren:
sgdisk -R=/dev/Ziellaufwerk /dev/Quelllaufwerk
sgdisk -R=/dev/nvme0n1 /dev/sde
2. Der Befehl erzeugt eine neue eindeutige GPT-Datenträger-ID auf dem Ziellaufwerk. Dies muss so, damit Quelle und Ziel nicht dieselbe GPT-ID verwenden:
sgdisk -G /dev/nvme0n1
3. Der Befehl formatiert die EFI-Boot-Partition für Proxmox. Dabei werden die für den Bootvorgang benötigten Dateisystemstrukturen angelegt:
proxmox-boot-tool format /dev/nvme0n1p2
4. Der Befehl initialisiert die EFI-Boot-Partition für Proxmox. Die benötigten Bootdateien werden auf die Partition kopiert:
proxmox-boot-tool init /dev/nvme0n1p2
5. Der Befehl zeigt den Status aller von Proxmox verwalteten Boot-Partitionen an. Damit kann geprüft werden, ob die Boot-Partition korrekt eingebunden wurde:
proxmox-boot-tool status
Wenn ein Bootlaufwerk ausfällt, bleibt dessen EFI-Partition häufig weiterhin in der Proxmox-Boot-Konfiguration eingetragen. Der Befehl proxmox-boot-tool status kann dann beispielsweise eine Ausgabe wie diese anzeigen:
5D16-FDFD is configured with: uefi (versions: 6.14.11-9-pve, 7.0.6-2-pve)
9105-3C47 is configured with: uefi (versions: 6.14.11-9-pve, 7.0.6-2-pve)
WARN: /dev/disk/by-uuid/E805-FDD7 does not exist – clean ‚/etc/kernel/proxmox-boot-uuids‘! – skipping
Die Warnung weist darauf hin, dass Proxmox noch eine EFI-Partition kennt, die nicht mehr vorhanden ist. Dies passiert häufig nach einem SSD-Ausfall oder wenn ein Laufwerk entfernt wurde. Nach dem Austausch des Laufwerks sollte daher geprüft werden, ob veraltete Einträge aus der Boot-Konfiguration entfernt werden müssen.
Verwenden Sie den folgenden Befehl, um die Konfigurationsdatei des Proxmox Boot Tools zu öffnen:
nano /etc/kernel/proxmox-boot-uuids
Entfernen Sie anschließend die UUID, welche in der Warnmeldung hinter WARN: angezeigt wird. In meinem Beispiel wäre dies die nicht mehr vorhandene UUID:
E805-FDD7
Speichern Sie die Datei und verlassen Sie den Editor. Führen Sie danach erneut den folgenden Befehl aus, um die Konfiguration zu prüfen:
proxmox-boot-tool status
Die Warnung sollte nun verschwunden sein.
6. Bevor Sie den replace-Befehl verwenden, müssen Sie natürlich wissen, was genau „replaced“ also ausgetauscht werden soll. Verwenden Sie den Befehl:
zpool status
Sie sehen dann eine Ausgabe wie in diesem Beispiel hier:

Die ID, also die lange Nummer vor dem Eintrag UNAVAIL, ist die Nummer die in den Replacebefehl unter Punkt 7 eingetragen wird.
7. Der Befehl ersetzt ein ausgefallenes oder entferntes Laufwerk in einem ZFS-Pool und überträgt die Daten automatisch auf das neue Laufwerk sde:
zpool replace rpool 16890695155904395210 /dev/sde3
Eine Pool-Disk kann und sollte! aber auch anhand von disk/by-id replaced, attached oder detached werden. Warum sollte möglichst die Disk-ID verwendet werden? Beim abziehen oder anstecken von Laufwerken können sich die internen Nummerierungen (sda, sdb … nvme0n1, nvme1n1 und so weiter ändern!) die Disk ID bleibt immer gleich! Beispiel für attach, also zufügen:
zpool attach rpool /dev/disk/by-id/ata-Micron_1100_MTFDDAV256TBN_18131BE8B13F-part3 /dev/disk/by-id/ata-Micron_1100_MTFDDAV256TBN_18131BE8B139-part3
Es ist wichtig, dass die Ziel und Quell-Partition mit angegeben wird, auf welcher der Pool liegt, und wohin er soll.
Der Befehl um alle Disk IDs anzuzeigen:
ls -lah /dev/disk/by-id/
8. Der Befehl erweitert ein bestehendes Einzel-Laufwerk zu einem ZFS-Mirror. Die Daten der vorhandenen Partition werden auf die neue Partition gespiegelt:
zpool attach rpool /dev/disk/by-id/ata-Micron_1100_MTFDDAV256TBN_18131BE8B13F-part3 /dev/sde3
9. Um ein Laufwerk aus einem zfs Pool zu entfernen wird der detach Befehl verwendet. Z.b.:
zpool detach rpool /dev/sde3
Achtung! Zu den Befehlen
Bei allen hier gezeigten Befehlen müssen Sie darauf achten, dass die verwendeten Laufwerksbezeichnungen zu Ihrem eigenen Server passen. Die in diesem Artikel gezeigten Beispiele stammen aus meinem Testsystem und können nicht unverändert auf andere Systeme übernommen werden.
In meinem Fall lautet das Ziellaufwerk beispielsweise „/dev/nvme0n1“. Die dazugehörige Partitionen heißen „/dev/nvme0n1p1“, „/dev/nvme0n1p2“ und „/dev/nvme0n1p3“. Auf Ihrem System können die Laufwerksnamen jedoch völlig anders aussehen, beispielsweise „/dev/sda“, „/dev/sdb“, „/dev/nvme1n1“ oder andere Bezeichnungen.
Prüfen Sie deshalb vor jedem Befehl sorgfältig, welche Laufwerke und Partitionen tatsächlich zu Ihrem Server gehören. Besonders bei Befehlen, die Partitionstabellen kopieren oder ZFS-Laufwerke ersetzen, kann eine falsche Laufwerksangabe zu Datenverlust führen.
Die Standardbefehle zum Ermitteln von Laufwerken, Partitionen, ZFS-Pools und dem Zustand eines Proxmox-Systems sind unter anderem folgende Befehle.
Zeigt alle erkannten Laufwerke, Partitionen und deren Zuordnung an:
lsblk
Listet die Partitionstabellen aller erkannten Datenträger auf:
fdisk -l
Zeigt die UUIDs und Dateisysteme der vorhandenen Partitionen an:
blkid
Zeigt den Zustand aller ZFS-Pools an und informiert über Fehler, ausgefallene Laufwerke und laufende Resilver-Vorgänge:
zpool status
Listet alle vorhandenen ZFS-Pools mit Größe und Belegung auf:
zpool list
Zeigt ZFS-Datasets und deren Speicherverbrauch an:
zfs list
Status der von Proxmox verwalteten Boot-Partitionen anzeigen:
proxmox-boot-tool status
Zeigt die eindeutigen Laufwerks-IDs an, die bei ZFS bevorzugt verwendet werden sollten:
ls -lah /dev/disk/by-id/
Was ist ZFS?
ZFS ist ein modernes Dateisystem und Volume-Manager, der ursprünglich von Sun Microsystems entwickelt wurde. Im Gegensatz zu klassischen Dateisystemen verwaltet ZFS nicht nur die Dateien selbst, sondern auch die darunterliegenden Datenträger. Dadurch erhält ZFS zahlreiche Funktionen, die bei herkömmlichen Dateisystemen oft nur durch zusätzliche Software möglich sind.
In Proxmox wird ZFS häufig verwendet, um virtuelle Maschinen, Container und wichtige Daten sicher zu speichern. Besonders beliebt ist ZFS in Homelabs und professionellen Serverumgebungen.
ZFS steht für „Zettabyte File System“. Der Name stammt daher, dass das Dateisystem für extrem große Datenmengen entwickelt wurde. Ein Zettabyte entspricht etwa einer Milliarde Terabyte. ZFS wurde von Anfang an so konzipiert, dass es auch mit sehr großen Speichersystemen zuverlässig arbeiten kann.
Wozu braucht man ZFS?
Der größte Vorteil von ZFS liegt in seiner Fähigkeit, Datenfehler zu erkennen und in vielen Fällen automatisch zu korrigieren. Festplatten und SSDs können mit der Zeit fehlerhafte Daten liefern. Herkömmliche Dateisysteme bemerken solche Fehler oft nicht. ZFS prüft dagegen kontinuierlich die Integrität der gespeicherten Daten.
Zusätzlich bietet ZFS Funktionen wie Snapshots, Komprimierung, Mirrors, RAID-Z und eine sehr flexible Speicherverwaltung. Dadurch eignet sich ZFS besonders für Server, NAS-Systeme, Backup-Server und Virtualisierungsplattformen wie Proxmox.
Vorteile von ZFS
- ZFS erkennt beschädigte Daten automatisch.
- ZFS kann Datenfehler in einem Mirror oder RAID-Z häufig selbst reparieren.
- Snapshots ermöglichen schnelle Sicherungspunkte ohne großen Speicherverbrauch.
- Die integrierte Komprimierung spart oft Speicherplatz.
- Pools können aus mehreren Laufwerken flexibel aufgebaut werden.
- Die Verwaltung großer Speichersysteme wird deutlich vereinfacht.
- ZFS gilt als sehr stabil und zuverlässig.
Nachteile von ZFS
- ZFS benötigt mehr Arbeitsspeicher als einfach Dateisysteme.
- Einige Funktionen sind für Einsteiger zunächst ungewohnt.
- Der Austausch von Systemlaufwerken erfordert zusätzliche Schritte, da Boot- und EFI-Partitionen berücksichtigt werden müssen.
- Nicht jede ZFS-Konfiguration ist für kleine Heimserver sinnvoll.
- Bei falscher Konfiguration kann die Verwaltung komplexer werden als bei klassischen Dateisystemen.
Nachteile von ZFS – tiefergehend
Bei allen Vorteilen eines ZFS-Pools, insbesondere eines rpools auf Systemlaufwerken, sollten auch die Nachteile betrachtet werden. ZFS benötigt mehr Arbeitsspeicher als klassische Dateisysteme und erzeugt durch Prüfsummen, Metadatenverwaltung und Spiegelungsmechanismen zusätzlichen Rechenaufwand. Auf moderner Server hardware fällt das meist kaum ins Gewicht. Bei günstiger Hardware, wenig Arbeitsspeicher oder einfachen Consumer-SSDs kann dies jedoch zu Leistungseinbußen führen. Hinzu kommt, dass viele preiswerte Verbraucher-SSDs weder für hohe Dauerlasten noch für die zusätzlichen Schreibvorgänge optimiert sind, die in bestimmten ZFS-Szenarien auftreten können. Wer ZFS einsetzt, sollte deshalb nicht nur die Vorteile der hohen Datenintegrität und Verfügbarkeit betrachten, sondern auch prüfen, ob die vorhandene Hardware für den geplanten Einsatzzweck geeignet ist.
In der Praxis bedeutet das beispielsweise, dass ein kleiner Homelab-Server mit 8 GB Arbeitsspeicher und zwei günstigen SATA-SSDs unter Umständen träger reagiert als derselbe Server mit einem klassischen LVM-Setup. Auch Vorgänge wie das Erstellen von Snapshots, das Wiederherstellen von Daten oder das Resilvering nach einem Laufwerksausfall können auf schwächerer Hardware deutlich länger dauern. Während ein moderner Server mit ausreichend RAM und Enterprise-SSDs solche Aufgaben oft unbemerkt im Hintergrund erledigt, kann ein günstiges Heimserver-System dabei zeitweise spürbar ausgelastet sein.
Ein weiteres Beispiel sind preiswerte SSDs mit QLC-Speicher oder kleinem Schreibcache. Solange nur wenige Daten geschrieben werden, wirken diese Laufwerke oft sehr schnell. Müssen jedoch größere Datenmengen verarbeitet werden, etwa bei Backups, virtuellen Maschinen oder dem Wiederaufbau eines Mirrors nach einem Defekt, kann die Schreibgeschwindigkeit deutlich einbrechen. Das bedeutet nicht, dass ZFS auf solcher Hardware nicht funktioniert. Es bedeutet lediglich, dass die Erwartungen an Leistung und Reaktionsgeschwindigkeit realistisch bleiben sollten. Wer einen kleinen Heimserver für einige wenige virtuelle Maschinen betreibt, wird die Vorteile von ZFS oft dennoch zu schätzen wissen. Wer hingegen maximale Leistung aus günstiger Hardware herausholen möchte, sollte die zusätzlichen Anforderungen von ZFS bei seiner Planung berücksichtigen.
Es ist also nicht immer alles Gold was gläntzt!
Ergo!
ZFS bietet zahlreiche Funktionen, die bei klassischen Dateisystemen fehlen. Besonders die hohe Datensicherheit, die automatische Fehlererkennung und die Snapshot-Funktion machen ZFS für viele Proxmox-Server attraktiv. Wer jedoch nur einen kleinen Heimserver ohne besondere Anforderungen betreibt, sollte prüfen, ob die zusätzlichen Funktionen den höheren Verwaltungsaufwand tatsächlich rechtfertigen.
YouTube Video: Proxmox ZFS reparieren Defekte SSD austauschen ohne Neuinstallation
Das folgend Video ergänzt diesen Artikel und behandelt die hier beschriebenen ZFS-Probleme ausführlich in der Praxis. In rund 40 Minuten zeige ich an einem echten Proxmox-Server, wie eine ausgefallene SSD erkannt, ersetzt und ein beschädigter ZFS-Mirror wiederhergestellt wird. Dabei gehe ich Schritt für Schritt aufden Austausch des Laufwerks, die Reparatur des ZFS-Pools, das Proxmox Boot Tool sowie typische Folgeprobleme nach einem Laufwerksausfall ein. Wenn Sie nicht nur die Theorie lesen, sonder den kompletten Reparaturvorgang in der Praxis nachvollziehen möchten, finden Sie im eingebetteten Video die passende ausführliche Anleitung.
Also – wir sehen uns auf YouTube!
EN YouTube Video: Proxmox ZFS Repair – Replace a Failed SSD Without Reinstalling the System
The following video complements this article and covers the ZFS issues described here in great detail through a real-world example. In approximately 40 minutes, I demonstrate on an actual Proxmox server how a failed SSD is detected, replaced, and how a degraded ZFS mirror is restored. Step by step, I walk through the drive replacement process, ZFS pool repair, the Proxmox Boot Tool, and the typical follow-up issues that can occur after a disk failure.
If you would like to do more than just read about the theory and instead follow the complete repair process in a practical environment, you will find a detailed step-by-step guide in the embedded video.
Ralf-Peter Kleinert / ComputerRalle
Ich verwende moderne KI-Systeme als unterstützendes Werkzeug, um meine Texte zu strukturieren, sprachlich zu überarbeiten und in eine verständliche Form zu bringen. Dabei nutze ich Künstliche Intelligenz unter anderem zur Korrektur von Rechtschreibung und Grammatik, zur besseren Gliederung von Inhalten sowie zur Optimierung von Formulierungen.
Auch verwende ich inzwischen KI-Systeme zum Erzeugen von Bildern für meine Webseiten oder Video-Thumbnails. In beiden Fällen ist dies für mich eine enorme Zeitersparnis, sodass ich mich stärker auf die eigentlichen Inhalte konzentrieren kann.
