[TUTORIAL] ZFS Austauschen einer Disk

Wir sind nun zumn zweiten Mal in den Genuss einer fehlerhaften Disk in unserem BackUp Server gekommen und nachdem ich viel gelesen habe, jedoch nicht wirklich schlau aus den Tutorials geworden bin, möchte ich hier eine Anleitung posten, die hoffentlich hilft das ganze ein wenig einfacher zu machen.

Falls es sich um den Proxmox Backup Server handelt, unbedingt unter dem Menu Datastore den/die Pool anklicken und im Menu oberhalb Options auswählen und den Pool im Maintenance Mode auf Offline setzten.

Bildschirmfoto 2023-11-01 um 11.25.44.png

Feststellen welche Disk kaput ist. Das kann manchmal echt schwierig sein, da z.B. unser 2HE Supermicro Server 12 x 3.5" die Disk nicht einwandfrei anzeigt. Also muss man sich rantasten und ein Disk nach der anderen ziehen. ACHTUNG, das geht nur, wenn man einen ZFS Pool hat der es erlaubt mehr als eine Disk zu verlieren. Wir haben uns damals für raidz2-0 entschieden. Also kein Problem. Danach kann man in der Pool Übersicht nachschauen, ob man die richtige Disk gezogen hat. Falls nicht, Disk wieder einstecken und warten, bis wieder synchronisiert ist.

Bildschirmfoto 2023-11-01 um 11.30.57.png

Irgendwann erwischt man dann schon die Richtige Disk ;-).

Jetzt ist es wichtig, dass man sich aufschreibt, wie die Fehlerhaft Disk heist, weil wir später mit dem command zpool replace arbeiten werden. Bei mir hat die Disk eine lange Nummer bekommen.

Bildschirmfoto 2023-11-01 um 08.39.24.png
Interessanterweise steht am Schluss auch noch "was /dev/sdf1". Aber sdf1 war aktiv und sauber am Laufen.

Jetzt ist es Zeit die Disk zu tauschen. Also Defekte raus, neue rein. Dann geht man zu Storage / Disk und schaut, welche Disk unused ist. In meinem Fall war das /dev/sde.

Jetzt gibt man in der Shell den Befehl zpool replace -f mit dem Poolnamen hier also BigPool und den Namen der Fehlerhaften Disk gefolgt mit einem Abstand und der Pfad zu neuen Disk, die wir neu in den Pool aufnehmen wollen.

root@pbs:~# zpool replace -f BigPool 1582754481069436505 /dev/sde

Fertig.

Das sieht dann anschliessend so aus, wenn man unter Storage / Disk im Tap ZFS den entsprechenden Pool auswählt.

Bild 31.10.23 um 09.44.jpg

Man sieht schön, dass die neue Disk unter dem Verzeichnis replacing-1 erschienen ist und hinten angezeigt wird, dass das Resilvering am Laufen ist. Ganz oben kann man das Fenster in der Übersicht grösser machen und sieht dann, wie lange das Resilvering noch geht. Wird jedoch erst nach ein paar Minuten angezeigt.
Ich hoffe das hilft denjenigen, die nicht so fit sind wie ich.
 
Last edited:
Warum nicht gleich alles über die Konsole erledigt wird, erschließt sich mir nicht.

So sollte man die Kiste herunterfahren, von allen Platten Bilder machen und sie anschießend sichtbar und eindeutig bezeichnen.
I.A. mit der Seriennummer.
Dann kann man mit diversen Kommandos: $ lsblk, $ ls -la /dev/disk-by/.. und $ zpool status <pool>
die Festplatte als: NVMe, HDD oder SSD identifizieren.
Kein Ding.

Warum Du unbedingt
Code:
zpool replace [-f] [-o property=value] pool device [new_device]
verwendet ist auch unklar!
Der Parameter "-f" wird doch i.A. nicht benötigt und kann zu Problemen führen:
# https://openzfs.github.io/openzfs-docs/man/master/8/zpool-replace.8.html

Aber liebe Leser, es gibt auch andere Konstellationen, z.B. ein ZFS MIRROR, da arbeite ich mit
$ zpool attach und $ zpool detach
Und je nachdem, ob das ZFS Device noch bootbar ist, muss man _vorher_ noch mehr machen.
 
  • Like
Reactions: mgabriel
Danke, war das letzte Tutorial, dass ich hier gemacht habe. Habe die rumfickerei satt von Klugscheissern. Habe das Tutorial gemacht, weil ich nirgends was gefunden haben. Also werde ich wieder zum stummen Leser und überlasse Klugscheissern wie Dir das Feld - bravo gut gemacht.
 
Das Verhalten ist wie bei einem kleinen Kind. Statt die Fragen zu beantworten und auf eine Verbesserung ein zu gehen, wird mit Kraftausdruck um sich geworfen.
Ob einem eine Meinung gefällt oder nicht, sollte nicht von der Tugend des offenen Gesprächs, abweichen.

Es gilt nach dem Grundgesetz für die Bundesrepublik Deutschland, Art 5.
Ein sehr hohes Gut ind Deutschland.
 
Danke, war das letzte Tutorial, dass ich hier gemacht habe. Habe die rumfickerei satt von Klugscheissern. Habe das Tutorial gemacht, weil ich nirgends was gefunden haben. Also werde ich wieder zum stummen Leser und überlasse Klugscheissern wie Dir das Feld - bravo gut gemacht.
Ich finde deine Intention mit der Anleitung gut, eventuell war die Kritik nicht optimal formuliert, aber wenn es um technische Verbesserungen geht, wie z.B. ohne den Schalter -f ausführen, dann kann man das ja in die Anleitung aufnehmen. So wird dann wirklich vielen Leuten geholfen.
 
  • Like
Reactions: mgabriel and news
Warum nicht gleich alles über die Konsole erledigt wird, erschließt sich mir nicht.
Weil viele Leute nicht so tief in der Materie stecken und etwas Angst vor der CLI haben, wo man nicht wirklich sieht, was passiert.
 
  • Like
Reactions: mgabriel and news
Hallo Winet.maier,

du solltest im Proxmox Gui die Seriennummer sehen, über
ls -l /dev/disk/by-id/* lrwxrwxrwx 1 root root 9 29. Jun 13:12 /dev/disk/by-id/ata-INTEL_SSDSC2KB960G8_PHYF107200TX960CGN -> ../../sdb lrwxrwxrwx 1 root root 10 29. Jun 13:12 /dev/disk/by-id/ata-INTEL_SSDSC2KB960G8_PHYF107200TX960CGN-part1 -> ../../sdb1 lrwxrwxrwx 1 root root 10 29. Jun 13:12 /dev/disk/by-id/ata-INTEL_SSDSC2KB960G8_PHYF107200TX960CGN-part2 -> ../../sdb2 lrwxrwxrwx 1 root root 10 29. Jun 13:12 /dev/disk/by-id/ata-INTEL_SSDSC2KB960G8_PHYF107200TX960CGN-part3 -> ../../sdb3 lrwxrwxrwx 1 root root 10 29. Jun 13:12 /dev/disk/by-id/ata-INTEL_SSDSC2KB960G8_PHYF107200TX960CGN-part4 -> ../../sdb4 lrwxrwxrwx 1 root root 10 29. Jun 13:12 /dev/disk/by-id/ata-INTEL_SSDSC2KB960G8_PHYF107200TX960CGN-part5 -> ../../sdb5 lrwxrwxrwx 1 root root 9 29. Jun 13:12 /dev/disk/by-id/ata-INTEL_SSDSC2KB960G8_PHYF107200Z0960CGN -> ../../sda lrwxrwxrwx 1 root root 10 29. Jun 13:12 /dev/disk/by-id/ata-INTEL_SSDSC2KB960G8_PHYF107200Z0960CGN-part1 -> ../../sda1 lrwxrwxrwx 1 root root 10 29. Jun 13:12 /dev/disk/by-id/ata-INTEL_SSDSC2KB960G8_PHYF107200Z0960CGN-part2 -> ../../sda2 lrwxrwxrwx 1 root root 10 29. Jun 13:12 /dev/disk/by-id/ata-INTEL_SSDSC2KB960G8_PHYF107200Z0960CGN-part3 -> ../../sda3 lrwxrwxrwx 1 root root 10 29. Jun 13:12 /dev/disk/by-id/ata-INTEL_SSDSC2KB960G8_PHYF107200Z0960CGN-part4 -> ../../sda4 lrwxrwxrwx 1 root root 10 29. Jun 13:12 /dev/ lrwxrwxrwx 1 root root 10 29. Jun 13:12 /dev/disk/by-id/ata-INTEL_SSDSC2KB960G8_PHYF107200TX960CGN-part1 -> ../../sdb1 lrwxrwxrwx 1 root root 10 29. Jun 13:12 /dev/disk/by-id/ata-INTEL_SSDSC2KB960G8_PHYF107200TX960CGN-part2 -> ../../sdb2 lrwxrwxrwx 1 root root 10 29. Jun 13:12 /dev/disk/by-id/ata-INTEL_SSDSC2KB960G8_PHYF107200TX960CGN-part3 -> ../../sdb3 lrwxrwxrwx 1 root root 10 29. Jun 13:12 /dev/disk/by-id/ata-INTEL_SSDSC2KB960G8_PHYF107200TX960CGN-part4 -> ../../sdb4 lrwxrwxrwx 1 root root 10 29. Jun 13:12 /dev/disk/by-id/ata-INTEL_SSDSC2KB960G8_PHYF107200TX960CGN-part5 -> ../../sdb5 lrwxrwxrwx 1 root root 9 29. Jun 13:12 /dev/disk/by-id/ata-INTEL_SSDSC2KB960G8_PHYF107200Z0960CGN -> ../../sda lrwxrwxrwx 1 root root 10 29. Jun 13:12 /dev/disk/by-id/ata-INTEL_SSDSC2KB960G8_PHYF107200Z0960CGN-part1 -> ../../sda1 lrwxrwxrwx 1 root root 10 29. Jun 13:12 /dev/disk/by-id/ata-INTEL_SSDSC2KB960G8_PHYF107200Z0960CGN-part2 -> ../../sda2 lrwxrwxrwx 1 root root 10 29. Jun 13:12 /dev/disk/by-id/ata-INTEL_SSDSC2KB960G8_PHYF107200Z0960CGN-part3 -> ../../sda3 lrwxrwxrwx 1 root root 10 29. Jun 13:12 /dev/disk/by-id/ata-INTEL_SSDSC2KB960G8_PHYF107200Z0960CGN-part4 -> ../../sda4 lrwxrwxrwx 1 root root 10 29. Jun 13:12 /dev/disk/by-id/ata-INTEL_SSDSC2KB960G8_PHYF107200Z0960CGN-part5 -> ../../sda5 -> ../../sda5
siehst du dann auch die Zuordnungund kannst die Serialnamen auch im zpool benutzen:

zpool replace -f BigPool 1582754481069436505 /dev/disk/by-id/ata-INTEL_SSDSC2KB960G8_PHYF107200TX960CGN-part1
 

Attachments

  • Bildschirmfoto vom 2023-11-02 14-30-47.png
    Bildschirmfoto vom 2023-11-02 14-30-47.png
    229.6 KB · Views: 25
Danke für die Antwort. Ist mir schon klar, aber leider hatten wir nicht aufgeschrieben welche Disk in welchem Slot steckt und so mussten wir im Betrieb das raus finden. Beim nächsten Bau werden wir das berücksichtigen.
Ich kenne dein Dilemma. Wenn man große ZFS Pools mit vielen Platten, möglicherweise auch gleicher Hersteller/gleiches Modell nutzt, ist das extrem mühsam.
Meine Abhilfe war dieses gloreiche Teil: https://cdn.aws.toolstation.com/images/141020-UK/800/22753-7.jpg

Wenn ich einen Pool in Betrieb nehme, dann mache ich von der ersten Platte immer ein Foto, da Linux manches Mal lieber die Seriennummer, aber manchmal auch eine andere eindeutige Nummer verwendet.
Je nachdem welche Nummer dann genutzt wird, drucke ich mir von den einzelnen Platten diese auf so ein selbstklebendes Etikett aus und befestige das im Laufwerkskäfig.

So weiß ich im Schadensfall schnell, welche Disk die defekte ist.
 
Hi,

man kann übrigens auch folgendes machen :

"Unter linux mit ledctl ist es möglich HDD/SSD/NVMe LED aktivieren.

Nach der Installation von dem ledmon Paket mit dem Befehl apt install ledmon -y ist ledctl verfügbar. Man kann sowohl die ID als auch die Disk direkt benutzen.

Beispiel:
ledctl locate=/dev/disk/by-id/[drive-id]
oder
ledctl locate=/dev/sda

Mit dem Befehl ledctl locate_off=/dev/sda lässt sich die LED wieder abschalten."

Funkktioniert zumindest bei unseren Supermicro Servern mit Wechselrahmen.

vG
John
 

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!