raid-zのHDD交換

f:id:nao550:20180513160503j:plain
自宅サーバから変な音がしていたので調べると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もなれてきたし、一度整理するかな。