FreeNAS 9.1.1 + zpool tool

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

Leave a Reply

Your email address will not be published. Required fields are marked *