Heut morgen gab es für mich ein böses Erwachen:
Im Posteingang lag eine eMail von meinem NAS. Das ist grundsätzlich nichts ungewöhnliches. Jeden Tag bekomme ich in der Nacht eine eMail mit einer Zusammenfassung des Systemtests. Folgender Inhalt machte mich stutzig:
Checking status of zfs pools: NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT Pool_4TB_R1 19.9T 8.48T 11.5T 42% 1.00x DEGRADED /mnt pool: Pool_4TB_R1 state: DEGRADED status: One or more devices has been removed by the administrator. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Online the device using 'zpool online' or replace the device with 'zpool replace'. scan: scrub repaired 0 in 27h48m with 0 errors on Mon Nov 11 12:50:05 2013
Das sieht auf den ersten Blick mal ziemlich eindrucksvoll aus, vor allem wenn man nicht weiß was DEGRADED in diesem Zusammenhang bedeutet. Nochmal sicherheitshalber nachgesehen und Leo.org spuckt dazu folgendes aus:
abreichern, degenerieren, nachlassen, schwach, entarten, zerfallen, ...
Hm,…. Okay also doch nicht in der Übersetzung geirrt. Aber was ist nun zu tun? Ich habe (wie in meinen DIY NAS Artikeln erwähnt) ein Raid Z1 eingerichtet, das bedeutet von 5 der 2TB Platten darf eine ausfallen ohne einen Datenverlust befürchten zu müssen (bzw, eine der 3 4TB Platten darf ausfallen). Bei genauerem hinsehen, stellte sich heraus das eine der älteren Platten (2TB) einen Fehler hatte. Das Betriebssystem hatte deshalb sicherheitshalber den Betrieb nur in einem eingeschränken Zustand fortgesetzt. Was auch immer das heißen mag, jedenfalls sind ein paar der Backups, die über Nacht so laufen, fehlgeschlagen. Scheinbar erlaubt also das System zwar weiter das Lesen von den Platten aber keine Schreibzugriffe darauf.
Nun gut. In einem Hinweis des Webinterfaces stand ich solle doch bitte überprüfen ob die Festplatte gewechselt werden muss, oder ob der Betrieb wiederhergestellt werden kann.
Ich habe mich via SSH auf das NAS verbunden und einmal den S.M.A.R.T. Status aller Platten ausgelesen, mit dem Resultat dass keine der Platten einen Defekt zu haben schien. Einen “Long” SMART Test wollte ich aber nicht starten (da das System dies ohnehin alle paar Tage macht) und dieser über 4 Stunden dauert.
Wie es sich für ein ordentliches NAS-System gehört, liefert FreeNAS natürlich auch einige nützliche Tools für die Wartung des Systems mit. Eines dieser Tools/Programme ist zpool.
Mit “zpool” lässt sich das ZFS Filesystem überprüfen und warten. Mit “zpool status” kann man verschiedene Informationen des ZFS auslesen:
[root@freenas] ~# zpool status pool: Pool_4TB_R1 state: ONLINE status: One or more devices has experienced an unrecoverable error. An attempt was made to correct the error. Applications are unaffected. action: Determine if the device needs to be replaced, and clear the errors using 'zpool clear' or replace the device with 'zpool replace'. see: http://illumos.org/msg/ZFS-8000-9P config: NAME STATE READ WRITE CKSUM Pool_4TB_R1 ONLINE 0 0 0 raidz1-0 ONLINE 0 0 0 gptid/5a2ac00d-2b9f-11e3-8ea0-94de80b9d1b7 ONLINE 0 0 0 gptid/5ae7b2a4-2b9f-11e3-8ea0-94de80b9d1b7 ONLINE 0 0 0 gptid/5bb0f358-2b9f-11e3-8ea0-94de80b9d1b7 ONLINE 0 0 0 raidz1-1 ONLINE 0 0 0 gptid/4d6ee391-33ee-11e3-93d2-94de80b9d1b7 ONLINE 0 0 0 gptid/4e3d7d13-33ee-11e3-93d2-94de80b9d1b7 ONLINE 0 0 0 gptid/4ec102b6-33ee-11e3-93d2-94de80b9d1b7 ONLINE 0 0 3 gptid/4f4fc255-33ee-11e3-93d2-94de80b9d1b7 ONLINE 0 0 0 gptid/4faf720d-33ee-11e3-93d2-94de80b9d1b7 ONLINE 0 0 0 errors: No known data errors
Im Raid “raidz1-1” schien eine der Platten bei den Checksummen Probleme zu machen. Ich dachte dass es womöglich durch einen unglücklichen Zufall bei einem Kopiervorgang zu diesen Fehlern gekommen ist. ZFS sollte nun den Fehler beheben und wieder im normalen Betrieb weiterlaufen:
zpool clear scan: resilvered 16K in 0h0m with 0 errors on Thu Dec 5 10:40:08 2013
zpool hatte also die Fehler ausgebessert und ein weiteres Aufrufen von “zpool status” versicherte mir, dass es keine Fehler mehr bei den Checksummen gab.
Auch im Webinterface änderte sich das gelb blinkende Ampel-Symbol von WARNING auf HEALTHY. Also alles wieder gut.
… dachte ich.
Gegen Abend loggte ich mich wieder auf das Webinterface ein und bemerkte erneut eine gelb blinkende Ampel, wieder mit demselben Fehler wie am Vormittag.
Okay, die Platte war also doch defekt. Also ging ich schnell los eine neue Platte kaufen und zum Glück gab es beim örtlichen Computerhändler auch eine 2TB Platte von Seagate, zu einem vernünftigen Preis. (Ehrlich gesagt, eine mit 4TB wäre mir lieber gewesen, aber in der Not… 😉 )
Nachdem ich herausgefunden hatte welche Platte (im Gehäuse, da ist nämlich nichts durchnummeriert (Genius!)) der Übeltäter war und die Alte aus, sowies die Neue eingebaut hatte, stand ich vor der nächsten Hürde: Ich hatte noch nie eine defekte Platte bei ZFS gewechselt. Wie sich aber dann herausstellte, war das alles ganz einfach:
“zpool status” zeigte mir an welche Platte die ausgewechselte war und welche die neueingebaute. Danach musste ich nur noch “zpool replace” richtig anwenden. Hier der Befehl der mir zum Erfolg verhalf:
zpool replace Pool_R1 /dev/gptid/4ec102b6-33ee-11e3-93d2-94de80b9d1b7 /dev/ada5
Sofort fingen die Platten im NAS an zu surren, also checkte ich gleich einmal den Status:
[root@freenas] ~# zpool status pool: Pool_4TB_R1 state: DEGRADED status: One or more devices is currently being resilvered. The pool will continue to function, possibly in a degraded state. action: Wait for the resilver to complete. scan: resilver in progress since Thu Dec 5 18:48:49 2013 968G scanned out of 8.47T at 3.60G/s, 0h35m to go 56.0G resilvered, 56.99% done config: NAME STATE READ WRITE CKSUM Pool_4TB_R1 DEGRADED 0 0 0 raidz1-0 ONLINE 0 0 0 gptid/5a2ac00d-2b9f-11e3-8ea0-94de80b9d1b7 ONLINE 0 0 0 gptid/5ae7b2a4-2b9f-11e3-8ea0-94de80b9d1b7 ONLINE 0 0 0 gptid/5bb0f358-2b9f-11e3-8ea0-94de80b9d1b7 ONLINE 0 0 0 raidz1-1 DEGRADED 0 0 0 gptid/4d6ee391-33ee-11e3-93d2-94de80b9d1b7 ONLINE 0 0 0 gptid/4e3d7d13-33ee-11e3-93d2-94de80b9d1b7 ONLINE 0 0 0 replacing-2 REMOVED 0 0 0 6338634708455928350 REMOVED 0 0 0 was /dev/gptid/4ec102b6-33ee-11e3 -93d2-94de80b9d1b7 ada5 ONLINE 0 0 0 (resilvering) gptid/4f4fc255-33ee-11e3-93d2-94de80b9d1b7 ONLINE 0 0 0 gptid/4faf720d-33ee-11e3-93d2-94de80b9d1b7 ONLINE 0 0 0 errors: No known data errors
Im Webinterface wurde mir noch immer die gelbe Ampel in blinkender Form angezeigt, aber diesmal mit einer anderen Meldung:
WARNING: The volume Pool_4TB_R1 (ZFS) status is UNKNOWN: One or more devices is currently being resilvered. The pool will continue to function, possibly in a degraded state.Wait for the resilver to complete.
Das bedeutete, dass die neue Festplatte nun im System eingebunden wurde und durch das “resilvern” die Platte wieder eingebunden wird. Beim resilvern wird mithilfe der anderen noch intakten Festplatten die defekte wiederhergestellt. (und damit alle Daten auf ihr)
Das klang doch gleich viel besser 😉 Mal sehen wie lange es dauert bis die neue Platte eingebunden ist, aber auf jeden Fall kann ich heute nacht wieder ruhig schlafen. Die alte Platte kommt in den Schrott.
Ich hoffe ich konnte für den einen oder anderen ein paar nützliche Infos mit diesem Artikel liefern, auf jeden Fall war es heute interessant das einmal machen zu können/müssen.
Bis zum nächsten Post,
Philipp