Solaris 資料一覧

ZFSストレージプールスペア設定

2008/8/21更新

対応バージョン: 10 x86

既存のストレージプールにホットスペアを設定する手順を示す。

ここでは各100MBの3ファイルで構成されているraidz2のストレージプールにスペアを追加する。

# zpool status rz2
  pool: rz2
 state: ONLINE
 scrub: none requested
config:

        NAME              STATE     READ WRITE CKSUM
        rz2               ONLINE       0     0     0
          raidz2          ONLINE       0     0     0
            /zfs/raidz-1  ONLINE       0     0     0
            /zfs/raidz-2  ONLINE       0     0     0
            /zfs/raidz-3  ONLINE       0     0     0

# mkfile 100m /zfs/spare-1

# zpool add rz2 spare /zfs/spare-1

# zpool status rz2
  pool: rz2
 state: ONLINE
 scrub: none requested
config:

        NAME              STATE     READ WRITE CKSUM
        rz2               ONLINE       0     0     0
          raidz2          ONLINE       0     0     0
            /zfs/raidz-1  ONLINE       0     0     0
            /zfs/raidz-2  ONLINE       0     0     0
            /zfs/raidz-3  ONLINE       0     0     0
        spares
          /zfs/spare-1    AVAIL   

スペアを削除する場合は以下のようにする。

# zpool remove rz2 /zfs/spare-1

スペアの手動切り替え

通常、現用デバイスに障害が発生すると自動的にスペアに切り替わるが、手動でこれを行うこともできる。

例えば/zfs/raidz-3をスペアに置き換える場合は以下のようにする。

# zpool replace rz2 /zfs/raidz-3 /zfs/spare-1 

# zpool status rz2
  pool: rz2
 state: ONLINE
 scrub: resilver completed after 0h0m with 0 errors on Sun Nov 30 05:51:05 2008
config:

        NAME                STATE     READ WRITE CKSUM
        rz2                 ONLINE       0     0     0
          raidz2            ONLINE       0     0     0
            /zfs/raidz-1    ONLINE       0     0     0
            /zfs/raidz-2    ONLINE       0     0     0
            spare           ONLINE       0     0     0
              /zfs/raidz-3  ONLINE       0     0     0
              /zfs/spare-1  ONLINE       0     0     0
        spares
          /zfs/spare-1      INUSE     currently in use

ここで/zfs/raidz-3を切り離す。

# zpool detach rz2 /zfs/raidz-3

# zpool status rz2
  pool: rz2
 state: ONLINE
 scrub: resilver completed after 0h0m with 0 errors on Sun Nov 30 06:03:06 2008
config:

        NAME              STATE     READ WRITE CKSUM
        rz2               ONLINE       0     0     0
          raidz2          ONLINE       0     0     0
            /zfs/raidz-1  ONLINE       0     0     0
            /zfs/raidz-2  ONLINE       0     0     0
            /zfs/spare-1  ONLINE       0     0     0

この状態で/zfs/raidz-3がメンテナンス可能である。

メンテナンスが終わったら/zfs/raidz-3をスペアの替わりにプールに戻す。

# zpool replace rz2 /zfs/spare-1 /zfs/raidz-3

# zpool status rz2
  pool: rz2
 state: ONLINE
 scrub: resilver completed after 0h0m with 0 errors on Sun Nov 30 06:09:32 2008
config:

        NAME                STATE     READ WRITE CKSUM
        rz2                 ONLINE       0     0     0
          raidz2            ONLINE       0     0     0
            /zfs/raidz-1    ONLINE       0     0     0
            /zfs/raidz-2    ONLINE       0     0     0
            replacing       ONLINE       0     0     0
              /zfs/spare-1  ONLINE       0     0     0
              /zfs/raidz-3  ONLINE       0     0     0

上記のようにスペアからの置き換えが始まるのでしばらく待つと以下のようになる。

# zpool status rz2
  pool: rz2
 state: ONLINE
 scrub: resilver completed after 0h0m with 0 errors on Sun Nov 30 06:09:32 2008
config:

        NAME              STATE     READ WRITE CKSUM
        rz2               ONLINE       0     0     0
          raidz2          ONLINE       0     0     0
            /zfs/raidz-1  ONLINE       0     0     0
            /zfs/raidz-2  ONLINE       0     0     0
            /zfs/raidz-3  ONLINE       0     0     0

この状態になったらスペアを再度設定する。

# zpool add rz2 spare /zfs/spare-1

# zpool status rz2
  pool: rz2
 state: ONLINE
 scrub: resilver completed after 0h0m with 0 errors on Sun Nov 30 06:09:32 2008
config:

        NAME              STATE     READ WRITE CKSUM
        rz2               ONLINE       0     0     0
          raidz2          ONLINE       0     0     0
            /zfs/raidz-1  ONLINE       0     0     0
            /zfs/raidz-2  ONLINE       0     0     0
            /zfs/raidz-3  ONLINE       0     0     0
        spares
          /zfs/spare-1    AVAIL