ZFS-Pool - Disks durch größere tauschen?

Nero24

Administrator
Teammitglied
Mitglied seit
01.07.2000
Beiträge
24.066
Renomée
10.446
  • BOINC Pentathlon 2019
  • BOINC Pentathlon 2020
  • BOINC Pentathlon 2018
  • BOINC Pentathlon 2021
Hallo liebe ZFS-Gurus ;D

der OpenSolaris-Server aus unserem Artikel ist jetzt seit 2009 24/7 in Betrieb. Zwischendurch 2011 wurde der ZFS-Pool bereits mal um einen Mirror erweitert weil der Platz knapp wurde, aber ansonsten schnurrte das Kätzchen die ganze Zeit über problemlos :D

Jetzt allerdings fängt eine der in der Urversion verbauten Platten an zu schwächeln:

attachment.php


Nun könnte ich natürlich einfach die Platte 1:1 tauschen und fertig. Nachdem die anderen drei aus dem raidz1 aber genauso alt sind und zudem noch vom gleichen Typ, besteht ja durchaus die Wahrscheinlichkeit, dass die anderen jetzt nacheinander auch alle daherkommen. Daher der Plan, die 4 Platten aus dem raidz1 nacheinander zu ersetzen und zwar gleich durch größere wenn man schon mal dabei ist.

Das erste Problem ist jetzt, dass inzwischen alle SATA-Ports im System belegt sind. Das heißt, einfach eine zusätzliche Platte reinstecken und zpool replace dpool c7d1 c11d1 funktioniert nicht. Ich müsste also die defekte vorher ausbauen und dann die neue reinstecken. Die Frage aber: bindet Solaris die dann selber ins raidz1 ein - schließlich hängt die dann ja am selben Controller und Port wie die defekte zuvor - oder wie gehe ich am besten vor?

Und dann ist da noch die Sache mit der Größe. Wenn ich das richtig verstanden habe, könnte ich im Prinzip eine Platte nach der anderen aus dem raidz1 durch eine größere ersetzen. Wenn alle ersetzt sind müsste sich der Pool mit zpool set autoexpand=on dpool auf die maximal mögliche Kapazität der Platten ausdehen lassen, korrekt? Oder habe ich irgendwo einen Denkfehler?

Der Plan B, den ich mir ausgemalt habe, wäre, temporär einen zusätzlichen 4-Port Addon-SATA-Controller reinzustecken, damit die 4 neuen Platten einen neuen Namen haben, und dann eben nacheinander mit zpool replace die alten Platten zu ersetzen und die anschließend ausbauen. Hier allerdings ist die Frage: wenn die alten Platten ausgebaut sind, würde ich die neuen gerne vom Add-On-Controller abstecken und wieder an den schnelleren Onboard-SATA-Ports anstecken. Aber geht das überhaupt, nachdem Solaris die Platten offenbar nach Controller- und Device-Nummer identifiziert?

Und Plan C: wie bei Plan B die vier neuen größeren Platten an einen Addon-Controller, diese dann per zpool add dpool raidz1 c11d0 c11d1 c12d0 c12d0 als eigenständiges vdev dem Pool hinzufügen und dann anfangen mit zpool detach dpool c7d1 aufwärts eine alte Platte nach der anderen rauszuwerfen. Das müsste ZFS doch verlassen, die Daten auf die Platten des restlichen Pools zu schaufeln, oder?

Ich bitte um ein paar Kommentare wer das schon mal gemacht hat, da ich ungern 8 TB Daten über den Jordan jagen möchte nur weil ich irgendeinen Schritt in der falschen Reihenfolge gemacht habe :-[ ;)
 
Also grundsätzlich solltest Du die Disk austauschen können. Wenn ich das nach dem Überfliegen der Anleitung richtig verstehe, sollte man die Disk vorher offline nehmen, dann austauschen, und dann die neue einbinden. Automatisch geht das wohl nicht.
 
Nur weil einmal ein Lesefehler auftrat musst Du nicht gleich die ganzen Festplatten erneuern, es sei denn aus Platzgründen.
Hier ist wohl der 10 hoch 14 bit Lesefehler aufgetreten.
Sollten laut smart keine steigenden Blockreplacements sei sehe ich keinen Anlass zum Austausch.

Wie dem auch sei, wenn Du die disk rausnehmen willst, dann musst Du sie ausschalten, damit sie als fehlerhaft bzw. fehlend erkannt wird.
Die Anleitung wie von meinem Vorgänger beschrieben ist sicher ok, da ja von Oracle selbst ;)

lg
__tom
 
So harmlos scheints leider nicht zu sein, denn mittlerweile hat sie Solaris von selbst als FAULTED aus dem Verbund geworfen :o Ich kann nur hoffen, dass die Ersatzplatten bald kommen. *suspect*
 
Dann sollte sie wirklich raus!

Jetzt kannst Du theoretisch alle Platten durch größere ersetzen.
Um danach den pool zu erweitern - theoretisch *buck*

lg
__tom
 
Also, austauschen hat schon mal funktioniert. Einfach die defekte raus, die neue rein, dann zpool replace dpool c7d1 und das war's. Jetzt "resilvered" er, was ungefähr einen Tag dauern wird.

attachment.php


Wenn das geklappt hat, werde ich das mit den restlichen drei alten Platten auch machen und am Ende gucken wir mal, was er zu dem Befehl zpool set autoexpand=on dpool sagt. Ich geb Bescheid, wenn ich was weiß :)
 
Wenn jetzt nicht die 10^14 Bit error Rate zuschlägt sollte alles gut gehen :P
Viel Glück!

lg
__tom
 
Nur der Vollständigkeit halber nach Abschluss der Aktion noch die Info: nachdem die letzte HDD aus dem vdev durch ein größeres Exemplar ersetzt worden war, vergrößerte ZFS den Pool automatisch auf die maximal mögliche Größe :)
 
Zurück
Oben Unten