Auf Proxmox virtualisiertes TrueNAS - Ersetzen einer defekten Festplatte

Veröffentlicht am 15. September 2024 • 7 Min. Lesezeit • 1.479 Wörter

Dieser Artikel beschreibt wie eine vom Proxmox-Host an ein virtualisiertes TrueNAS durchgereichte defekte Festplatte ausgetauscht werden kann.

Auf Proxmox virtualisiertes TrueNAS - Ersetzen einer defekten Festplatte
Foto von William Warby  auf Unsplash 

Serie TrueNAS

Dies ist ein Beitrag im Rahmen der Serie TrueNAS - das NAS im Homelab .

Vor einiger Zeit hat mich das Dashboard meines Backup-NAS auf ein Problem im storage-pool hingewiesen. Anstatt des regulären Pool-Status “ONLINE” wurde nun der Pool-Status “DEGRADED” gemeldet, zusammen mit einem freundlichen Hinweis-Zeichen.


Bei genauerem Hinsehen zeigte die Statusseite des Pools zwar keine Lese- oder Schreibfehler an, wohl aber Fehler bei der Berechnung der Prüfsummen. Das System ist so eingestellt, dass der gesamte Pool alle vier Wochen ein Scrub, also eine Überprüfung aller Pools vornimmt. Ich nehme an, dass bei einem dieser Tests die Fehler festgestellt wurden. (wenngleich ich einige Tage bevor ich den Screenshot gemacht habe 48 Fehler angezeigt bekam - Ursache unklar)



Wenn es nun schon so weit ist, dass das von TrueNAS verwendete ZFS Filesystem ein Problem feststellt, ist es Zeit sich ein paar Gedanken zu machen.

Ausgangslage

  • HPE MicroServer GEN 10 Plus, 40GB ECC RAM-Speicher
    • kein hot-swap, die Festplatten können nicht während des Betriebes ausgetauscht werden
  • Proxmox (8.2.4) als Host Betriebssystem
  • Darauf virtualisiertes TrueNAS Core (TrueNAS-13.0-U6.1)
  • 3x 4TB SATA-Festplatten werden an die TrueNAS VM durchgereicht
  • Der daraus erzeugte TrueNAS Storage-Pool (RAIDZ1) befindet sich im DEGRADED Modus
    • Eine der Festplatten zeigt vermehrt Checksummen-Fehler

Noch bevor ich den Beschluss gänzlich zu Ende gedacht hatte, die defekte Festplatte auszutauschent, fiel mir ein, dass ich TrueNAS auf Proxmox virtualisiert hatte. Wer denkt schon an den Tausch einer Festplatte, wenn man sich einen Home-Server zusammenschraubt? Mal schauen ob man die Platte getauscht bekommt ohne alle Laufwerkszuordnungen in den Mixer zu schmeißen.

Was ist der Plan?

Um eine Festplatte eines ZFS-RAID-Verbundes, wie es bei TrueNAS verwendet wird, auszutauschen, benötigt man zumindest eine Ersatzplatte mit gleicher oder größeren Kapazität. Das hier betrachtete System stellt im Heimnetzwerk das Backup-NAS dar (ein NAS mit RAID ist kein Backup) und füllt sich kontinuierlich mit allerlei Daten. Aus diesem Grund nutze ich die Gelegenheit, um die Gesamt-Kapazität perspektivisch zu erhöhen. Aus diesem Grund habe ich ein 8TB Festplatte als Ersatz ausgewählt.

Die Gesamtkapazität eines ZFS RAIDZ-Verbundes wird durch die Einzelplatte mit der kleinsten Kapazität bestimmt:

Platten Kapazitäten RAID-Verbund Ungefähre nutzbare Kapazität
3x 4TB RAIDZ1 ~7TB
2x 4TB + 1x 8TB RAIDZ1 ~7TB
3x 8TB RAIDZ1 ~15TB

Das bedeutet, dass alle drei Platten getauscht werden müssen, bevor sich eine höhere nutzbare Kapazität ergibt. Deswegen perspektivisch. Aber zumindest sagt die TrueNAS Dokumentation, dass die Pool-Kapazität automatisch erweitert wird, sobald dies möglich ist. (Ich werde berichten…)

Worauf man achten sollte

Ersetzt man aus Versehen eine noch funktionierende Platte, bleibt der RAID-Verbund zwar auf dem Papier weiterhin benutzbar. Während des intensiven, viele Stunden dauernden Resilvering-Prozesses (Wiederherstellung) könnte die bereits angeschlagene Festplatte jedoch komplett den Geist aufgeben.

Die neue Platte ist noch nicht komplett integriert, eine weitere Platte ist nun ausgefallen, bleibt nur noch eine übrig, die jedoch nicht alle Daten des Verbundes hält. In diesem Moment ist der Verbund und damit seine Daten verloren.

Wer also aus Kostengründen Raid-Verbünde mit der Minimalzahl an Platten betreibt, bzw. nur eine Parity-Platte im Verbund hat (RAIDZ1), muss einfach genauer hinschauen. Vielleicht sollte man dann auch zeitnah reagieren, um den Gesundheitszustand des Verbundes nicht zu riskieren.

Der Austausch-Prozess

1. Defekte Festplatte aus dem Pool nehmen

Die TrueNAS Dokumentation empfiehlt nachdrücklich, dass die defekte Platte zunächst aus dem Pool werden soll. Negative Effekte könnten ein deutlich langsamerer Wiederaufbau des Pools sein.

In TrueNAS: Storage -> Pools -> Zahnrad -> Status um den Pool-Status anzuzeigen.

Die drei Punkte neben der zu ersetzenden Platte drücken und dann OFFLINE klicken, bestätigen und OFFLINE klicken.

Die Platte wird jetzt aus dem Verbund genommen.

2. Warten bis der Pool-Status für die aus dem Pool entfernte Festplatte “offline” anzeigt

Manchmal dauert es einen Moment aber dann sollte der Status der Platte auf “OFFLINE” wechseln.



3. TrueNAS VM ausschalten

TrueNAS über die Web-GUI ausschalten.

4. Seriennummer der defekten Festplatte ermitteln

Zunächst werfen wir einen Blick auf den Pool Status (siehe 2.) und sehen, dass die offline geschaltete Platte den Namen da2 hat. Die System-Platte hat den Namen da0, somit handelt es sich bei unserer defekten Platte um die 3. Platte in der Liste.

Proxmox führt eine Liste der Festplatten einer jeden virtuellen Maschine. Dazu wählt man in diesem Fall die VM des TrueNAS Backup-NAS aus, dann Hardware und betrachtet die Liste der Festplatten, die Proxmox für diese VM verwendet. scsi:0 ist die virtualisierte Systemplatte und scsi:1 - scsi:3 sind die durchgereichten Festplatten des RAID-Verbundes.


Alternativ kann man in der Proxmox Shell auch die Konfiguration einer VM aufrufen
qm config <vmid>



Die Seriennummer der Platte findet sich als Teil des Disknamens, hier ZDH8R8B4.

5. Die defekte Platte in den Einstellungen der TrueNAS VM entfernen

Um das System gleich in einem geordneten Zustand auszuschalten, entfernt man die Platte scsi:2 über die Harware-Einstellungen der VM. Festplatte auswählen und Detach auswählen.



6. Rechner (Proxmox-Server) herunterfahren

Nachdem eventuell noch laufende VMs oder LXCs angehalten wurden, kann nun der Proxmox-Rechner ausgeschaltet werden.

7. Defekte Platte physisch aus dem System entfernen (anhand der zuvor ermittelten Seriennummer überprüfen)

Über die zuvor notierte Seriennummer identifiziert man nun die defekte Platte und entfernt sie aus dem System.

8. Seriennummer der neue Platte notieren und in das System einstecken

Sofern sich die Kapazität der neuen Platte nicht von den anderen unterscheidet, ist es eine gute Idee, die Seriennummer der neuen Platte zu notieren, um sie später im laufenden System zu erkennen. In meinem Fall WSD9DT7R.

9. Rechner (Proxmox-Server) einschalten

Jetzt den Proxmox-Rechner wieder einschalten.

10. Prüfen, ob die neue Platte erkannt wird (anhand der zuvor notierten Seriennummer)

Zunächst muss die neue Platte von Proxmox erkannt werden, dazu kann man sich in der Proxmox Shell die Liste der Systemplatten anschauen:

ls -l /dev/disk/by-id


Wie erwartet findet sich die neue Platte an Hand der Seriennummer oder des Typnamens (ST8... anstatt ST4...) im dritten Festplatteneinschub (sdc). Das ist natürlich nur in meinem Setup so.

11. Die neue Platte an die TrueNAS VM durchreichen

Nun muss die neue Platte wieder an die TrueNAS VM durchgereicht werden. Dies kann z.B. in der Proxmox Shell geschehen. Dazu benötigt man die ID der virtuellen Maschine (vmid), den Namen/Nummer die die Platte in der VM einnehmen soll (hdname) sowie den kompletten Namen der Proxmox Systemplatte, wie er im letzten Schritt ausgegeben wurde (disk name by ID).

qm set <vmid> -<hdname> <disk name by ID>

In meinem Fall wäre das

qm set 204 -scsi2 /dev/disk/by-id/ata-ST8000VN004-2M2101_WSD9DT7R

scsi:2, weil das der Name der (virtuellen) Platte war, die zuvor aus der VM entfernt wurde.

12. TrueNAS VM starten

Mit dem Starten der TrueNAS VM ist man schon auf der Zielgeraden.

13. Die neue Platte in den Storage-Pool einbinden

Die restlichen Schritte werden über die TrueNAS GUI im Webbrowser durchgeführt

  • TrueNAS im Browser aufrufen

  • Pool-Status aufrufen Storage -> Pools -> Zahnrad -> Status

    Da dem storage-pool eine Platte fehlt, wird diese als “OFFLINE” mit einer internen ID angezeigt.


  • Nun wählt man das Drei-Punkte-Menu neben der als “OFFLINE” angezeigten Festplatte aus und wählt “Replace”

  • Im aufkommenden Dialg wird die Platte ausgewählt, die für die vakante Position im Pool eingesetzt werden soll. Die Liste enthält als Auswahl nur Festplatten, die TrueNAS erkannt aber noch keinem Pool zugeordnet hat. Wer möchte kann mit einem Haken bei Force ein Löschen der Platte erzwingen.




    … und kurz danach

  • Der Wiederherstellungsprozess (Resilvering) startet automatisch.

    Dieser Vorgang kann je nach Größe des Pools sehr lange dauern. In meinem Fall wurden zwischenzeitlich Schätzungen von über 4 Tagen ausgegeben. Dies scheint zu Beginn normal zu sein, während hauptsächlich Meta Daten des Pools verarbeitet werden. Nach ein paar Stunden verkürzte sich die Vorhersage und am Ende war in 1 Tag und 10 Stunden alles durch.

  • Nach Abschluß des Prozesses geht der Pool in den Status ‘ONLINE’ über.


Fazit

Referenzen