NAS 用マシンを自作してみる (9) —RAID-Z の修復—

ZFS RAID-Z で家庭用の NAS を構築するため、しばらく手探りであれこれ設定してきましたが、ようやく安定して運用できるようになってきました。おかげで随分勉強にもなりました。今回は万が一のためにディスクが故障した場合の対処法を予習しておきます。

現在の状態:

# zpool status tank
  pool: tank
 state: ONLINE
  scan: none requested
config:

    NAME           STATE     READ WRITE CKSUM
    tank           ONLINE       0     0     0
      raidz1-0     ONLINE       0     0     0
        gpt/disk1  ONLINE       0     0     0
        gpt/disk2  ONLINE       0     0     0
        gpt/disk3  ONLINE       0     0     0
        gpt/disk4  ONLINE       0     0     0
        gpt/disk5  ONLINE       0     0     0
        gpt/disk6  ONLINE       0     0     0

errors: No known data errors

このうち一つ (gpt/disk1) をオフラインにしてみます。

# zpool offline tank gpt/disk1

すると、次のように state が “DEGRADED” (劣化) に変化します。

# zpool status
  pool: tank
 state: DEGRADED
status: One or more devices has been taken offline 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
    tank                    DEGRADED     0     0     0
      raidz1-0              DEGRADED     0     0     0
        185077048340227906  OFFLINE      0     0     0  was /dev/gpt/disk1
        gpt/disk2           ONLINE       0     0     0
        gpt/disk3           ONLINE       0     0     0
        gpt/disk4           ONLINE       0     0     0
        gpt/disk5           ONLINE       0     0     0
        gpt/disk6           ONLINE       0     0     0

errors: No known data errors

この状態でもストレージプール自体は使用できますが、あと一つディクスが破損するとデータの回復ができません。

新しいディスクを用意して replace コマンドで交換するようです。

# zpool replace tank gpt/disk1 gpt/newdisk

今回はテストなので、このまま元に戻しておきます。

# zpool online tank gpt/disk1

もう一度ステータスを (今度はオプション -x をつけて) 確認してみます。

# zpool status -x
all pools are healthy

コメントを残す