NAS4FreeでHDD故障・交換の記録
今回の環境
NAS4Free 11.0.0.4.4249
WD40EZRX 10台 RAIDZ2構成
2014年の春頃に組んだNASでしたが
3年経って1台目の故障を検知したので交換対応になりました
RAIDZ2構成なので故障は2台まで安心ですが即交換します
なぜならRAIDはリビルド中が全HDDで読み込み処理が発生して
追加でHDD故障を検知しやすい危険なタイミングだからです
RAIDZ2は2台同時に故障することに対応するためではなく
1台故障してそのリビルド中に追加で1台故障しても大丈夫な状態を作るための設定
今回は交換用の予備HDDとしてセールで確保しておいた
同じ4TB HDDのWD40EZRZ-RT2を使って交換作業を実施します
故障したHDDを確認
当然ながら現状のRAIDZ2状態確認と交換するHDDを確認しなければならないので
NAS4Free管理画面で確認
状態がDEGRADEDになってるのが確認できます
ここは正常な状態だとONLINEです
pool: ******** 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: none requested config: NAME STATE READ WRITE CKSUM ******** DEGRADED 0 0 0 raidz2-0 DEGRADED 0 0 0 ada0.nop ONLINE 0 0 0 ada1.nop ONLINE 0 0 0 ada2.nop ONLINE 0 0 0 ada3.nop ONLINE 0 0 0 7757709661830618737 REMOVED 0 0 0 was /dev/ada4.nop ada5.nop ONLINE 0 0 0 ada6.nop ONLINE 0 0 0 ada7.nop ONLINE 0 0 0 ada8.nop ONLINE 0 0 0 ada9.nop ONLINE 0 0 0 errors: No known data errors
ここでもstateがDEGRADEDです
HDDはada4が故障した模様
既に故障検知したのでREMOVEDになってRAIDZ2構成から取り外されてます
ada4のステータスが失敗になってます
上に出てるエラー文言
Configuration information about devices is different from physical devices. Please remove those devices and re-add them or run import disks with clear configuration option enabled.
これはNAS4Freeに保存されているHDD情報と現在接続されている情報が違うので
HDDインポート作業した方がいいよってやつですが
今回は故障検知によってada4がREMOVED処理されている状態なので
情報に差異があるのが正常であり問題ありません
ada4だけI/O統計と温度が取得できずステータスが失敗になってます
温度が全体的に高いのはHDD交換前に最重要データだけ
バックアップ処理してた影響でDEGRADEDになると温度が上がったりはしません
ここで重要なのは故障したHDDの型番とシリアル番号をメモっておきましょう
交換する際に正常なHDDを取り外すミスを防ぎます
この辺の作業ミスはデータ消失に直結するので慎重に
(1台故障しか対応できないRAIDZの人は特に)
実際にHDDを交換する
先ほど確認した故障HDDと正常なHDDを交換します
今回の場合は普通のデスクトップPCで組んでいるので
一度電源を落としてケースを開けて交換を実施しましたが
ホットスワップ対応ケースを使用している場合は電源を落とす必要はありません
電源は普通に管理画面からシャットダウンすればいいです
今回はWD40EZRX-00SPEB0→WD40EZRZ-00GXCB0
WD40EZRZ-00GXCB0はIntelliParkが有効になっているので
事前に無効にしておきましょう
WDの場合はHDD表面のラベルだけでなく
コネクタの反対側(側面)にもシリアル番号が書いたシールがあるので
抜いて表面ラベル見て確認しなくてもいいので簡単です
HDD交換後はいつも通り起動します
交換したHDDを確認
NAS4Free管理画面にて交換したHDDの認識状態を確認します
ada4のデバイスモデルがまだ更新されていないのは正常です
ここで確認するのはステータスが変更になっているかどうかです
ここでディスクが交換後のWD40EZRZになっているのが確認できます
概要は前のままなので変えるなら手動で変えてください
今回はS.M.A.R.T.をオンにしただけで保存ボタンを押す
ada4のデバイスモデルが更新されステータスも修正になってます
なぜかサイズがWD40EZRXの時は3815448MB認識なのに
今回のWD40EZRZだと4.00TBで認識されています
前のHDDより多くなる分には問題ありませんが足りない場合は容量不足でエラーになるかも
ステータスがすべてオンラインになり準備完了
リビルド開始
ディスク→ZFS→ツールからreplace処理を開始させます
Step1は「Replace a device」を選択してNextボタンをクリック
Force Operationはチェックなしでいいです
プールが複数ある人は間違えないようにしてNextボタンをクリック
今回もForce Operationはチェックなし
Pool Devicesで故障したHDDのスロット(今回はada4)
Select Data Deviceもデバイスを選択(こっちも同じada4)
最後にNextボタンをクリック
最後のOutput→SuccessがCommand execution was successfulになっていればOK
pool: ******** 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 Mon May 29 09:33:49 2017 35.9G scanned out of 16.5T at 497M/s, 9h37m to go 3.42G resilvered, 0.21% done config: NAME STATE READ WRITE CKSUM ******** DEGRADED 0 0 0 raidz2-0 DEGRADED 0 0 0 ada0.nop ONLINE 0 0 0 ada1.nop ONLINE 0 0 0 ada2.nop ONLINE 0 0 0 ada3.nop ONLINE 0 0 0 replacing-4 UNAVAIL 0 0 0 7757709661830618737 UNAVAIL 0 0 0 was /dev/ada4.nop ada4 ONLINE 0 0 0 (resilvering) ada5.nop ONLINE 0 0 0 ada6.nop ONLINE 0 0 0 ada7.nop ONLINE 0 0 0 ada8.nop ONLINE 0 0 0 ada9.nop ONLINE 0 0 0 errors: No known data errors
stateはreplaceが終わるまでDEGRADEDのままですが
scanのところで進行状況が確認できます
この場合使用容量が16.5TBあってこのままいくと9時間37分後に終わる予定
下の3.42Gのところが交換したHDDへ転送しているデータ量
使用容量によって処理時間は変化するので同じ4TBx10台のRAIDZ2リビルドでも
使っているデータ量が少なければ早く終わるでしょう
リビルド結果
今回はリビルド時間を計測するためファイル転送をせず
リビルド処理に専念させました
最初は残り9時間37分とか出てましたが
結果的には9:33:49→22:12:15なので12時間38分26秒でした
終わる直前ぐらいの状態
pool: ******** 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 Mon May 29 09:33:49 2017 16.4T scanned out of 16.5T at 380M/s, 0h0m to go 1.56T resilvered, 99.89% done config: NAME STATE READ WRITE CKSUM ******** DEGRADED 0 0 0 raidz2-0 DEGRADED 0 0 0 ada0.nop ONLINE 0 0 0 ada1.nop ONLINE 0 0 0 ada2.nop ONLINE 0 0 0 ada3.nop ONLINE 0 0 0 replacing-4 UNAVAIL 0 0 0 7757709661830618737 UNAVAIL 0 0 0 was /dev/ada4.nop ada4 ONLINE 0 0 0 (resilvering) ada5.nop ONLINE 0 0 0 ada6.nop ONLINE 0 0 0 ada7.nop ONLINE 0 0 0 ada8.nop ONLINE 0 0 0 ada9.nop ONLINE 0 0 0 errors: No known data errors
最初は490M/sぐらいでしたが徐々に速度が低下し最終的には380M/s
32GBのメモリも半分程度しか使われず
CPUも35%ぐらいで推移してました(Celeron G1820)
リビルド終了後
pool: ******** state: ONLINE status: Some supported features are not enabled on the pool. The pool can still be used, but some features are unavailable. action: Enable all features using 'zpool upgrade'. Once this is done, the pool may no longer be accessible by software that does not support the features. See zpool-features(7) for details. scan: resilvered 1.57T in 12h38m with 0 errors on Mon May 29 22:12:15 2017 config: NAME STATE READ WRITE CKSUM ******** ONLINE 0 0 0 raidz2-0 ONLINE 0 0 0 ada0.nop ONLINE 0 0 0 ada1.nop ONLINE 0 0 0 ada2.nop ONLINE 0 0 0 ada3.nop ONLINE 0 0 0 ada4 ONLINE 0 0 0 ada5.nop ONLINE 0 0 0 ada6.nop ONLINE 0 0 0 ada7.nop ONLINE 0 0 0 ada8.nop ONLINE 0 0 0 ada9.nop ONLINE 0 0 0 errors: No known data errors
stateがONLINEに戻り正常な状態に戻りました
S.M.A.R.T.と温度も取得できているか確認したら
NAS4Freeを再起動して再度確認
異常がない場合は最後に設定をバックアップして完了!
nopについて
お気づきの方もいるでしょうが
既存のHDDは全て「4KBラッパーをONにする」設定でnop経由になってますが
今回の交換デバイスにはnopは付いてません(というか付けませんでした)
これは数年前の構築当時は必要という情報を見つけたので付けて構築したのですが
2017年現在は標準で4KBに対応しておりnopは不要です
今のプールが4KB対応かどうかはzdbコマンドでわかります
nas4free: ~# zdb | grep ashift ashift: 12
12ならOK
9みたいな12以外で4KセクターのHDDを使ってる場合はnopが必要かも
ちなみにこの段階でnopをつけてなくても「4KBラッパーをONにする」が有効なら
起動時に勝手に作成されるみたいなので
ついてもついてなくても今のところ性能差はないです
この辺の挙動はあまり検証してないので各自起動ログにて確認ください
最後に
ZFSのHDD交換も3回目でだいぶ慣れてきたので
スムーズに交換完了できました
HDDがRMA期間に壊れてくれなかったのは残念でしたが
予備のHDDを確保しておくと何かと安心です
予備といってもそんなすぐ壊れたりしないので複数台は必要なく
現状はNASとして動かしている4TBHDDが24台に対して予備は1台でも十分です
今回の作業中にずっとactionでzpoolをアップグレードしろと言われていたので
次はzpool upgradeを実施しようかなと思います
コメント