ZFSのホットスペア機能とディスク交換

本投稿では、ZFSのホットスペア機能の使い方とディスクの交換方法を紹介します。

 

 

はじめに

 

作業環境
OS: CentOS 7.1
Kernel: kernel-3.10.0-229.7.2.el7.x86_64
ZFS: zfs-0.6.4.1-1.el7.centos.x86_64

 

手順

1.ホットスペア機能

2.ディスク交換方法

 

 

1.ホットスペア機能

 

ホットスペア機能とは

ホットスペアとは、HDDの故障に備えて、あらかじめ予備のHDDを通電状態で待機させておくこと。

 

RAIDを組む

まず、RAID1が組まれたストレージプールを作成する。

# zpool create -f zfs mirror /dev/sdb /dev/sdc

RAID1を組み終えたら、確認しましょう。

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

        NAME        STATE     READ WRITE CKSUM
        zfs         ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            sdb     ONLINE       0     0     0
            sdc     ONLINE       0     0     0

errors: No known data errors

プール名がzfsとついたデバイスが作成できていることが確認できました。

 

 

ホットスペアを追加

ホットスペアに利用するディスクを追加します。

# zpool add -f zfs spare /dev/sdd

 

ホットスペアが追加されているか確認しましょう。

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

        NAME        STATE     READ WRITE CKSUM
        zfs         ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            sdb     ONLINE       0     0     0
            sdc     ONLINE       0     0     0
        spares
          sdd       AVAIL

errors: No known data errors

スペアが登録されていることを確認できました。

 

 

2.ディスク交換方法

 

ディスクをはずす(デグレード)

ディスクを交換するため、意図的にディスク(sdc)をオフラインにします。

# zpool offline zfs sdc

オフラインになっていることを確認します。

# zpool status
  pool: zfs
 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
        zfs         DEGRADED     0     0     0
          mirror-0  DEGRADED     0     0     0
            sdb     ONLINE       0     0     0
            sdc     OFFLINE      0     0     0
        spares
          sdd       AVAIL

errors: No known data errors

ステータスが「DEGRADED」になり、sdcがオフラインになっていることを確認できました。

 

 

ディスクを交換

ステータスがオフラインのディスク(sdc)とホットスペアのディスク(sdd)を交換します。

# zpool replace zfs sdc sdd

sdcとsddのリプレイスが終わっているか確認しましょう。

# zpool status
  pool: zfs
 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: resilvered 58K in 0h0m with 0 errors on Fri May 29 07:39:40 2015
config:

        NAME         STATE     READ WRITE CKSUM
        zfs          DEGRADED     0     0     0
          mirror-0   DEGRADED     0     0     0
            sdb      ONLINE       0     0     0
            spare-1  OFFLINE      0     0     0
              sdc    OFFLINE      0     0     0
              sdd    ONLINE       0     0     0
        spares
          sdd        INUSE     currently in use

errors: No known data errors

リプレイスの前は、sparesにだけ表示されていたsddがオンラインになりました。

 

ステータスがオフラインのディスク(sdc)を切り離します。切り離しが完了すると正常なRAID1状態になります。

# zpool detach zfs sdc

では、ディスク交換が完了しているか確認しましょう。

# zpool status
  pool: zfs
 state: ONLINE
  scan: resilvered 58K in 0h0m with 0 errors on Fri May 29 07:39:40 2015
config:

        NAME        STATE     READ WRITE CKSUM
        zfs         ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            sdb     ONLINE       0     0     0
            sdd     ONLINE       0     0     0

errors: No known data errors

無事、ディスク交換は完了しています。以上で、ZFSのディスク交換は完了です。