raid-zのHDD交換
自宅サーバから変な音がしていたので調べるとzfsのドライブが壊れていたのでHDDを買ってきて交換作業。
root@mercury:~ # zpool list NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT tank 7.25T 3.36T 3.89T - - 46% 1.00x DEGRADED - root@mercury:/var/log # zpool status pool: tank state: DEGRADED ---略--- 16269517396372478662 UNAVAIL 1 6 0 was /dev/gptid/b1417f56-3666-11e0-9d07-001485f1161b ←これが壊れている ---略---
gpart list コマンドで壊れているドライブを確認
root@mercury:gpart list ---略--- Geom name: ada3 ---略--- rawuuid: b1417f56-3666-11e0-9d07-001485f1161b ---略--- Consumers: 1. Name: ada3 Mediasize: 2000398934016 (1.8T) ---略---
壊れているのは ada3、次に ada3 のシリアル番号をチェック
root@mercury:/var/log # cat /var/run/dmesg.boot ---略--- ada3 at ahcich3 bus 0 scbus3 target 0 lun 0 ada3: <WDC WD20EARS-00S8B1 80.00A80> ATA8-ACS SATA 2.x device ada3: Serial Number WD-WCAVY3005042 ---略---
ということで、「WD20EARS-00S8B1」のHDDが壊れていることが確定
zfsから壊れているドライブを Offline にして
root@mercury:/var/log # zpool offline tank 16269517396372478662 root@mercury:/var/log # zpool status ---略--- 16269517396372478662 OFFLINE 1 6 0 was /dev/gptid/b1417f56-3666-11e0-9d07-001485f1161b ---略---
shutdown して、HDDの交換して再起動
root@mercury:/var/log # cat /var/run/dmesg.boot ---略--- ada3: Serial Number WD-WCC4M4FU46C3 ---略---
交換するときにHDDのシールに記載されているシリアル番号は確認しておいて、交換したHDDがどのデバイスとして認識されているか確認する。
追加されたドライブが ada3 になっている。 gpartでGPTパーティションを作成
root@mercury:~ # gpart create -s GPT ada3 ada3 created root@mercury:~ # gpart show ada3 => 34 3907029101 ada3 GPT (1.8T) 34 3907029101 - free - (1.8T)
zpool replace コマンドで壊れたドライブを新しいドライブに入れ替えるように指示
root@mercury:~ # zpool replace tank 16269517396372478662 ada3 root@mercury:~ # zpool status -v pool: tank 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 Sun May 13 16:30:18 2018 12.3G scanned out of 3.36T at 89.0M/s, 10h57m to go 3.06G resilvered, 0.36% done config: NAME STATE READ WRITE CKSUM tank DEGRADED 0 0 0 raidz1-0 DEGRADED 0 0 0 diskid/DISK-WD-WCAVY3131675p1 ONLINE 0 0 0 block size: 512B configured, 4096B native gptid/af791db4-3666-11e0-9d07-001485f1161b ONLINE 0 0 0 block size: 512B configured, 4096B native gptid/b05ed30a-3666-11e0-9d07-001485f1161b ONLINE 0 0 0 block size: 512B configured, 4096B native replacing-3 OFFLINE 0 0 0 ←リプレース作業中に表示される 16269517396372478662 OFFLINE 0 0 0 was /dev/gptid/b1417f56-3666-11e0-9d07-001485f1161b ada3 ONLINE 0 0 0 block size: 512B configured, 4096B native (resilvering) errors: No known data errors
zraidのパリティ計算などが終了したら、リプレース作業中に表示されていた replacing-3 の項目は消える。status 確認して消えていればリプレース作業は終了
root@mercury:/var/mail # zpool status pool: tank state: ONLINE status: One or more devices are configured to use a non-native block size. Expect reduced performance. action: Replace affected devices with devices that support the configured block size, or migrate data to a properly configured pool. scan: resilvered 860G in 9h33m with 0 errors on Mon May 14 02:04:16 2018 config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 raidz1-0 ONLINE 0 0 0 diskid/DISK-WD-WCAVY3131675p1 ONLINE 0 0 0 block size: 512B configured, 4096B native gptid/af791db4-3666-11e0-9d07-001485f1161b ONLINE 0 0 0 block size: 512B configured, 4096B native gptid/b05ed30a-3666-11e0-9d07-001485f1161b ONLINE 0 0 0 block size: 512B configured, 4096B native ada3 ONLINE 0 0 0 errors: No known data errors
このraidz、8年前の「サーバの更新で zfs にしてみるとか - 日々雑文」で作ったやつで、一度トラブルでデータをロストしかけてる。その時の名残がこのへんな状態になっているドライブIDだったりする。
gpartもなれてきたし、一度整理するかな。