HomelabIT Praxis

ZFS Festplatte ersetzen unter Proxmox

Ein neuer Server für das Homelab musste her und bereits von Tag eins an haben die neuen SATA SSDs Probleme bereitet. Dies begann bereits der Installation von Proxmox und nach einigen Tagen im Betrieb zeigten sich kontinuierlich Lese- und Checksummenfehler. In diesem Artikel zeigen wir, wie Sie schnell und sicher unter Proxmox eine ZFS Festplatte ersetzen.


Das Fehlerbild der Festplatte

Proxmox wurde auf einem neuen HM90 aufgesetzt. Das Betriebssystem wurde auf der mitgelieferten M.2 2280 512GB PCIe 3.0 SSD installiert. Zusätzlich wurden zwei Crucial MX500 1TB 3D NAND SATA 2,5 Zoll SSD bestellt und eingebaut.

Bereits bei der Installation kam es zu kontinuierlichen Freezes sobald in irgendeiner Form die beiden SSDs angesprochen wurden. Nach mehrmaligen Versuchen lief die Installation durch. Der ZFS-Pool wurde über die Proxmox Oberfläche angelegt und ein Mirror mit den beiden Festplatten erstellt.

Über die nächsten Tage zeigten sich im operativen Einsatz zwar keine merklichen Probleme, doch die Lese- und Checksummenfehler der einen Festplatte nahmen kontinuierlich zu. Ein Scrubbing und ein zpool clear löschten zwar die Fehler in der Anzeige, diese traten aber kurze später wieder auf und eindeten in folgendem Status:

root@pve01:~# zpool status
NAME                                  STATE     READ WRITE CKSUM
        tank                                  DEGRADED     0     0     0
          mirror-0                            DEGRADED     0     0     0
            ata-CT1000MX500SSD1_2240E674CA8F  DEGRADED     2     0     0  too many errors
            ata-CT1000MX500SSD1_2240E674DF77  ONLINE       0     0     0

Eine kurze Recherche zeigte, dass man bei den Crucial SSDs entweder im Himmel oder in der Hölle landet – hier war offenbar letzteres der Fall


Defekte Festplatte im ZFS Pool identifzieren

Es wurden daher beide Datenplatten des ZFS-Pools namens tank ersetzt. Zwar war bisher nur eine der Festplatten fehlerhaft, aber nur eine der Platten einer vermutlich identischen Charge auszutauschen, war zu riskant – also wurden beide Festplatten ersetzt.

Die Ersetzung von Festplatten in einem ZFS-Verbund ist grundsätzlich sehr einfach, wenn man weiß, wie es geht.

Durch die Eingabe von

ls -alh /dev/disk/by-id/

kann man sich einen Status über alle Block Devices verschaffen, da wir später die Id der Festplatten kennen müssen. Das sieht dann zum Beispiel so aus (Hinweis, das ist NACH dem Ersetzen auf dem Server):

root@pve01:~# ls -alh /dev/disk/by-id/
total 0
drwxr-xr-x 2 root root 580 Feb  7 19:41 .
drwxr-xr-x 8 root root 160 Feb  7 19:41 ..
lrwxrwxrwx 1 root root   9 Feb  7 19:41 ata-Samsung_SSD_870_EVO_1TB_S6P5NL0T907058N -> ../../sda
lrwxrwxrwx 1 root root  10 Feb  7 19:41 ata-Samsung_SSD_870_EVO_1TB_S6P5NL0T907058N-part1 -> ../../sda1
lrwxrwxrwx 1 root root  10 Feb  7 19:41 ata-Samsung_SSD_870_EVO_1TB_S6P5NL0T907058N-part9 -> ../../sda9
lrwxrwxrwx 1 root root   9 Feb  7 19:41 ata-Samsung_SSD_870_EVO_1TB_S6P5NL0T910187F -> ../../sdb
lrwxrwxrwx 1 root root  10 Feb  7 19:41 ata-Samsung_SSD_870_EVO_1TB_S6P5NL0T910187F-part1 -> ../../sdb1
lrwxrwxrwx 1 root root  10 Feb  7 19:41 ata-Samsung_SSD_870_EVO_1TB_S6P5NL0T910187F-part9 -> ../../sdb9

Die Ids wären in diesem Fall ata-Samsung_SSD_870_EVO_1TB_S6P5NL0T907058N und ata-Samsung_SSD_870_EVO_1TB_S6P5NL0T910187F.

Jetzt geht es darum, erst einmal die defekte SSD im Server zu identifzieren und mit einer neuen SSD zu ersetzen. Ich habe mich in diesem Fall für Samsung 870 EVO SATA III 2.5 Zoll SSD entschieden.

Angebot
Samsung 870 EVO SATA III 2,5 Zoll SSD, 1 TB, 560 MB/s Lesen, 530 MB/s Schreiben, Interne SSD, Festplatte für schnelle Datenübertragung, MZ-77E1T0B/EU
  • Solid State Drive (SSD) für eine verbesserte PC-Leistung im täglichen Einsatz, gut geeignet als Alternative zur HDD (Festplatte)
  • Mehr Leistung, um schneller ans Ziel zu kommen: bis zu 3,6 Mal schneller als eine HDD (560 MB/s Lese-, 530 MB/s Schreibgeschwindigkeit)
  • Zuverlässigkeit, die überzeugt: Hohe Lebensdauer mit 150 Terabytes Written spezifizierter Gesamtschreibdatenmenge (250 GB-Variante)
  • Kompatibel und vielseitig dank umfangreicher Kompatibilitätstests mit gängigen Chipsätzen, Mainboards, NAS-Systemen und Video-Aufahmegeräten
  • Upgrade ganz leicht: Einfache Übertragung der Daten von Ihrer alten Festplatte auf die SSD dank kostenloser Samsung Data Migration Software – Magician

Defekte Festplatte im ZFS Pool ersetzen

Dazu den Server herunterfahren, eine Festplatte ausbauen und hoffen, dass es die richtige war. Der Proxmox Server bootet auch, da sich das Betriebssystem auf der separaten M.2 befindet. Nachdem der Server wieder hochgefahren ist, sieht das ungefähr wie folgt aus:

root@pve01:~# zpool status
  pool: tank
config:

        NAME                                               STATE     READ WRITE CKSUM
        tank                                               DEGRADED     0     0     0
          mirror-0                                         DEGRADED     0     0     0
            
              2526873008305822243                          UNAVAIL      0     0     0  was /dev/disk/by-id/ata-CT1000MX500SSD1_2240E674CA8F-part1
            ata-CT1000MX500SSD1_2240E674DF77               ONLINE       0     0     0

errors: No known data errors

Wenn die defekte Festplatte identifiziert und physisch ersetzt wurde, erfolgt die Aufnahme der neuen Platte und die Ersetzung der alten Platte im ZFS-Pool mit

zpool replace -f <pool> <old device> <new device>

In unserem Fall mit

zpool replace -f tank ata-CT1000MX500SSD1_2240E674CA8F ata-Samsung_SSD_870_EVO_1TB_S6P5NL0T907058N

Die neue Platte wird daraufhin resilvered. Resilvering bezeichnet den Vorgang des Übertragens von Daten von einem Datenspeichergerät auf ein anderes Gerät. Konkret bedeutet das, dass wir die Daten auf der guten alten Festplatte auf die neue gespiegelt haben und diese wieder fehlerfrei im Mirror zur Verfügung stehen.

root@pve01:~# zpool status
  pool: tank
 state: ONLINE
  scan: resilvered 230G in 00:11:04 with 0 errors on Tue Feb  7 18:47:30 2023
config:

        NAME                                             STATE     READ WRITE CKSUM
        tank                                             ONLINE       0     0     0
          mirror-0                                       ONLINE       0     0     0
            ata-Samsung_SSD_870_EVO_1TB_S6P5NL0T907058N  ONLINE       0     0     0
            ata-CT1000MX500SSD1_2240E674DF77             ONLINE       0     0     0

errors: No known data errors

Die Dauer des Vorgangs ist abhängig von der Größe der vorhandenen Daten. In diesem Fall hat der Übertragungsvorgang 11 Minuten gedauert.

Für die zweite alte Festplatte wird der Vorgang analog wiederholt. Wir übertragen dabei die Daten von der guten neuen Festplatte auf eine leere gute neue Festplatte. Im Ergebnis sieht das dann so aus:

root@pve01:~# zpool status
  pool: tank
 state: ONLINE
  scan: resilvered 230G in 00:08:35 with 0 errors on Tue Feb  7 19:04:30 2023
config:

        NAME                                             STATE     READ WRITE CKSUM
        tank                                             ONLINE       0     0     0
          mirror-0                                       ONLINE       0     0     0
            ata-Samsung_SSD_870_EVO_1TB_S6P5NL0T907058N  ONLINE       0     0     0
            ata-Samsung_SSD_870_EVO_1TB_S6P5NL0T910187F  ONLINE       0     0     0

errors: No known data errors

Fazit

Grundsätzlich sind defekte Festplatten mit Schreib-, Lese- und Checksummenfehlern immer problematisch und müssen ersetzt werden. Die anfänglich eingesetzten Crucial SSDs mögen Sonntagsgeräte gewesen sein, aber das ist keine Entschuldigung. Insbesondere bei einem halbwegs ernsthaften Serverbetrieb im Homelab sollte die Verlässlichkeit der eingesetzten Hardware an oberster Stelle stehen.

Die Ersetzung der defekten Festplatte und der am Ende erfolgte, komplette Austausch der Festplatten im ZFS-Pool verlief absolut problemlos. Beim Thema ZFS Festplatte ersetzen zeigen sich die Vorzüge eines Raids, obwohl es in diesem Fall nur ein Mirror war.

In einem Folgeartikel werden wir den kompletten Umzug eines Proxmox-Servers (bzw. der Container und VMs) auf neue Hardware zeigen. Mit einer guten Planung verlief die Migration wie am Schnürchen.

Letzte Aktualisierung am 4.10.2024 / Affiliate Links / Bilder von der Amazon Product Advertising API

4 Gedanken zu „ZFS Festplatte ersetzen unter Proxmox

  • BioK2

    Super Anleitung! Hat perfekt funktioniert. Danke.

    Antwort
  • Wenn es sich aber um Systemplatten handelt. Muss die Partionstsbelle und der Bootloader auch mit kopiert werden.
    Hier bitte aufpassen.

    Antwort
  • Ich habe meine Platten genau gleich konfiguriert. Was ist aber, wenn die Hauptplatte abschmiert? Sind dann auch die beiden anderen Platten unbrauchbar?

    Antwort
    • Hallo Karlheinz,

      ich vermute, Du meinst: „Hauptplatte“ = Platte mit dem Betriebssystem und „meine Platten“ = ZFS-Datenbereich?

      Wenn ja, dann haben die Hauptplatte und die Datenplatten erst einmal gar nichts miteinander zu tun. Der ZFS-Pool auf den Datenplatten ist selbstbeschreibend und Du kannst diesen, zum Beispiel nach einer frischen Proxmox-Installation per

      # zpool import tank

      ganz einfach hinzufügen.

      https://docs.oracle.com/cd/E19253-01/819-5461/gazuf/index.html

      Antwort

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert