過去記事:CentOS/zfs

zfsはオラクル様で作られたファイルシステム. 現在はOpenZFSが音頭を取ってる. Linux向けには ZFS on Linux としてリリースされている.
本家様 https://openzfs.org/wiki/Main_Page
ドキュメント https://openzfs.github.io/openzfs-docs/
ZFS on Linux: https://zfsonlinux.org/

ここではCentOS8にOpenZFSを入れてみる.

導入

専用のリポジトリを追加してdnf installで導入ができる.
CentOSのバージョン毎に特定のリポジトリが用意されているが、それはコンパイルなしにzfsカーネルモジュールを導入する為みたい.
一応、DKMSでカーネルがupdateされたらそれに追随してzfsカーネルモジュールを再コンパイルしてくれるパッケージもある.
まずはリポジトリを導入します.
OSバージョン毎のリポジトリはhttps://openzfs.github.io/openzfs-docs/Getting%20Started/RHEL%20and%20CentOS.html参照

dnf install http://download.zfsonlinux.org/epel/zfs-release.<dist>.noarch.rpm
 
(CentOS8.2なら)
dnf install http://download.zfsonlinux.org/epel/zfs-release.el8_2.noarch.rpm

その上で

  • 特定のCentOSバージョンでコンパイルなしに使うなら
    導入したリポジトリ(/etc/yum.repos.d/zfs.repo)に対して下記の修正を加える
    --- /etc/yum.repos.d/zfs.repo.orig      2020-06-18 05:01:52.000000000 +0900
    +++ /etc/yum.repos.d/zfs.repo   2020-07-23 08:58:10.026360355 +0900
    @@ -1,7 +1,7 @@
     [zfs]
     name=ZFS on Linux for EL8 - dkms
     baseurl=http://download.zfsonlinux.org/epel/8.2/$basearch/
    -enabled=1
    +enabled=0
     metadata_expire=7d
     gpgcheck=1
     gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-zfsonlinux
    @@ -9,7 +9,7 @@
     [zfs-kmod]
     name=ZFS on Linux for EL8 - kmod
     baseurl=http://download.zfsonlinux.org/epel/8.2/kmod/$basearch/
    -enabled=0
    +enabled=1
     metadata_expire=7d
     gpgcheck=1
     gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-zfsonlinux
  • DKMSとして使うなら
    開発環境を別途インストールします. /etc/yum.repos.d/zfs.repoは基本DKMS向けで用意されている
    dnf groupinstall "Development Tools"
    dnf install epel-release
    dnf install dkms
    dnf install "kernel-devel-uname-r == $(uname -r)"

のどちらかを選ぶ. ここでは前者を選んでます.
なので「dnf update」の際には要注意でOSはupdateされたが、そのOSに対応するzfsが存在せずzfs領域が使えない事態が発生し得ます.
*半面、開発環境が不要です

その上でzfsパッケージをインストールします

dnf install zfs

構築

CentOS8には4つのHDD(8GB)を設けた. 構築、検証はすべてESXiで行ってます
初めにzfsカーネルモジュールを読み込みます. zfsストレージプールがないのでzfsカーネルモジュールが読み込まれていないので

/sbin/modprobe zfs

次にzfsストレージプールを作成します. windows10らと同じようにまずはストレージプールを作ってそこからマウント領域を切り出して使う感じです.
ストレージプールの作成段階でそのプールの性質というか筋が決まります.
ストライプにするかパリティーを持たせるかとかです. RAIDで言うなら RAID10, RAID1, RAID5, RAID6..とか

ここでは4つのドライブがあるのでRAIDZ構成で作ってみる
ドライブの指定方法は、ドキュメントによれば10個以内なら /dev/disk/by-id/ を使い、10個以上なら /dev/disk/by-path/ の使用を推奨している.

また44 slotsとか90slotsのJBODとかなら別途 /etc/zfs/vdev_id.conf ファイルを作成して簡便に済ますことも可能みたい.

*この選択が非常に重要... もしHDDが飛んだ際、交換対象がどこであるかと示しやすいように. /dev/sdXだと最悪かな. JBOD装置だとこの辺は楽かな

[root@centos8-zfs ~]# ls -l /dev/disk/by-path/
total 0
lrwxrwxrwx. 1 root root  9 Jul 23 18:13 pci-0000:00:07.1-ata-2 -> ../../sr0
lrwxrwxrwx. 1 root root  9 Jul 23 18:13 pci-0000:03:00.0-scsi-0:0:0:0 -> ../../sda
lrwxrwxrwx. 1 root root 10 Jul 23 18:13 pci-0000:03:00.0-scsi-0:0:0:0-part1 -> ../../sda1
lrwxrwxrwx. 1 root root 10 Jul 23 18:13 pci-0000:03:00.0-scsi-0:0:0:0-part2 -> ../../sda2
lrwxrwxrwx. 1 root root 10 Jul 23 18:13 pci-0000:03:00.0-scsi-0:0:0:0-part3 -> ../../sda3
lrwxrwxrwx. 1 root root  9 Jul 23 18:13 pci-0000:13:00.0-scsi-0:0:0:0 -> ../../sdb
lrwxrwxrwx. 1 root root  9 Jul 23 18:13 pci-0000:13:00.0-scsi-0:0:1:0 -> ../../sdc
lrwxrwxrwx. 1 root root  9 Jul 23 18:13 pci-0000:13:00.0-scsi-0:0:2:0 -> ../../sdd
lrwxrwxrwx. 1 root root  9 Jul 23 18:13 pci-0000:13:00.0-scsi-0:0:3:0 -> ../../sde
 
(raid-zでストレージプールを作成)
[root@centos8-zfs ~]# zpool create tank raidz \
           pci-0000:13:00.0-scsi-0:0:0:0 \
           pci-0000:13:00.0-scsi-0:0:1:0 \
           pci-0000:13:00.0-scsi-0:0:2:0 \
           pci-0000:13:00.0-scsi-0:0:3:0
 
(確認)
[root@centos8-zfs ~]# 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
            pci-0000:13:00.0-scsi-0:0:0:0  ONLINE       0     0     0
            pci-0000:13:00.0-scsi-0:0:1:0  ONLINE       0     0     0
            pci-0000:13:00.0-scsi-0:0:2:0  ONLINE       0     0     0
            pci-0000:13:00.0-scsi-0:0:3:0  ONLINE       0     0     0
 
errors: No known data errors
 
[root@centos8-zfs ~]#

*ESXiでby-idで構築するなら、「構成パラメータ」で「disk.EnableUUID = TRUE」を入れる必要がある

mount

「zpool create」で用意したストレージプール名称がmountポイントとなる.
この作ったストレージプールから必要量を切り出して、特定のmountpointに配置するのが一般的みたい

[root@centos8-zfs ~]# df -lTh -F zfs
Filesystem     Type  Size  Used Avail Use% Mounted on
tank           zfs    23G  128K   23G   1% /tank
[root@centos8-zfs ~]#

この場所を変更するには「zfs set mountpoint」で行います。事前に現在のmountpointは「zfs get mountpoint」で得られる

[root@centos8-zfs ~]# zfs get mountpoint
NAME  PROPERTY    VALUE       SOURCE
tank  mountpoint  /tank       default
 
[root@centos8-zfs ~]# zfs set mountpoint=/data tank
 
[root@centos8-zfs ~]# zfs get mountpoint
NAME  PROPERTY    VALUE       SOURCE
tank  mountpoint  /data       local
 
[root@centos8-zfs ~]# df -lTh -F zfs
Filesystem     Type  Size  Used Avail Use% Mounted on
tank           zfs    23G  128K   23G   1% /data
[root@centos8-zfs ~]#

データを流し込んでみた

[root@centos8-zfs ~]# df -lTh -F zfs
Filesystem     Type  Size  Used Avail Use% Mounted on
tank           zfs    23G   13G   11G  55% /data
 
[root@centos8-zfs ~]# ls -lh /data
total 13G
-rw-r--r--. 1 root root 7.7G Jul 22 23:42 CentOS-8.2.2004-x86_64-dvd1.iso
-rw-r--r--. 1 root root 4.8G Aug  9  2017 en_visual_studio_community_2013_with_update_5_x86_dvd_6816332.iso
 
[root@centos8-zfs ~]#

ストレージプールにディスクを追加

一旦マシンを止めて、新に 16GBのHDDを追加して再起動します.
新規のHDDは/dev/sdbとして認識され、by-pathでは「pci-0000:04:00.0-scsi-0:0:0:0」と認識されている.

[root@centos8-zfs ~]# cat /proc/partitions
major minor  #blocks  name
 
   8       16   16777216 sdb
   8        0    8388608 sda
 :
[root@centos8-zfs ~]# ls -l /dev/disk/by-path/ |grep sdb
lrwxrwxrwx. 1 root root  9 Jul 25 05:38 pci-0000:04:00.0-scsi-0:0:0:0 -> ../../sdb

まあ、失敗するのだが、HDD4本で作ったRAID-ZなストレージプールにHDDを1個追加はできない.

[root@centos8-zfs ~]# zpool add tank raidz pci-0000:04:00.0-scsi-0:0:0:0
invalid vdev specification: raidz requires at least 2 devices
 
(二個なら)
[root@centos8-zfs ~]# zpool add tank raidz pci-0000:04:00.0-scsi-0:0:0:0 pci-0000:04:00.0-scsi-0:0:1:0
invalid vdev specification
use '-f' to override the following errors:
mismatched replication level: pool uses 4-way raidz and new vdev uses 2-way raidz
 
(三個なら)
[root@centos8-zfs ~]# zpool add tank raidz pci-0000:04:00.0-scsi-0:0:0:0 pci-0000:04:00.0-scsi-0:0:1:0 pci-0000:04:00.0-scsi-0:0:2:0
invalid vdev specification
use '-f' to override the following errors:
mismatched replication level: pool uses 4-way raidz and new vdev uses 3-way raidz
 
[root@centos8-zfs ~]#

このようなエラーが生じされる。っで4個だと

[root@centos8-zfs ~]# zpool add tank raidz \
     pci-0000:04:00.0-scsi-0:0:0:0 \
     pci-0000:04:00.0-scsi-0:0:1:0 \
     pci-0000:04:00.0-scsi-0:0:2:0 \
     pci-0000:04:00.0-scsi-0:0:3:0
 
[root@centos8-zfs ~]#

とエラーなく完了して

[root@centos8-zfs ~]# zpool status
  pool: tank
 state: ONLINE
  scan: none requested
config:
 
        NAME                               STATE     READ WRITE CKSUM
        tank                               ONLINE       0     0     0
          raidz1-0                         ONLINE       0     0     0
            pci-0000:13:00.0-scsi-0:0:0:0  ONLINE       0     0     0
            pci-0000:13:00.0-scsi-0:0:1:0  ONLINE       0     0     0
            pci-0000:13:00.0-scsi-0:0:2:0  ONLINE       0     0     0
            pci-0000:13:00.0-scsi-0:0:3:0  ONLINE       0     0     0
          raidz1-1                         ONLINE       0     0     0
            pci-0000:04:00.0-scsi-0:0:0:0  ONLINE       0     0     0
            pci-0000:04:00.0-scsi-0:0:1:0  ONLINE       0     0     0
            pci-0000:04:00.0-scsi-0:0:2:0  ONLINE       0     0     0
            pci-0000:04:00.0-scsi-0:0:3:0  ONLINE       0     0     0
 
errors: No known data errors
[root@centos8-zfs ~]#

と新たな「raidz1-1」として構成され、ストレージプール「tank」に組み込まれる

ストレージプールの構成要素を外してみる...できない

ここで

[root@centos8-zfs ~]# zpool list -v
NAME                                SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
tank                                 95G  16.6G  78.4G        -         -     0%    17%  1.00x    ONLINE  -
  raidz1                           31.5G  16.6G  14.9G        -         -     0%  52.8%      -  ONLINE
    pci-0000:13:00.0-scsi-0:0:0:0      -      -      -        -         -      -      -      -  ONLINE
    pci-0000:13:00.0-scsi-0:0:1:0      -      -      -        -         -      -      -      -  ONLINE
    pci-0000:13:00.0-scsi-0:0:2:0      -      -      -        -         -      -      -      -  ONLINE
    pci-0000:13:00.0-scsi-0:0:3:0      -      -      -        -         -      -      -      -  ONLINE
  raidz1                           63.5G    49K  63.5G        -         -     0%  0.00%      -  ONLINE
    pci-0000:04:00.0-scsi-0:0:0:0      -      -      -        -         -      -      -      -  ONLINE
    pci-0000:04:00.0-scsi-0:0:1:0      -      -      -        -         -      -      -      -  ONLINE
    pci-0000:04:00.0-scsi-0:0:2:0      -      -      -        -         -      -      -      -  ONLINE
    pci-0000:04:00.0-scsi-0:0:3:0      -      -      -        -         -      -      -      -  ONLINE
[root@centos8-zfs ~]#

で、新しく作った場所(raidz1-1)を外せるかなって思ったのだが、

[root@centos8-zfs ~]# zpool remove tank raidz1-1
cannot remove raidz1-1: invalid config; all top-level vdevs must have the same sector size and not be raidz.
 
[root@centos8-zfs ~]#

とまだできないご様子。目下「zpool removal」ができるのはストライプとミラー構成だけのご様子.

RAID-Zを構成する1つのHDDがこけた.

[root@centos8-zfs ~]# zpool status
  pool: tank
 state: ONLINE
  scan: none requested
config:
 
        NAME                               STATE     READ WRITE CKSUM
        tank                               ONLINE       0     0     0
          raidz1-0                         ONLINE       0     0     0
            pci-0000:13:00.0-scsi-0:0:0:0  ONLINE       0     0     0
            pci-0000:13:00.0-scsi-0:0:1:0  ONLINE       0     0     0
            pci-0000:13:00.0-scsi-0:0:2:0  ONLINE       0     0     0
            pci-0000:13:00.0-scsi-0:0:3:0  ONLINE       0     0     0
 
errors: No known data errors
[root@centos8-zfs ~]#

この状態で1個のHDDをわざと故障させてみる. っと言ってもesxiなので、この仮想マシンをshutdownしてRAID-Zを構成しているHDDを削除します
2020y07m26d_054126567.png
ちょうどscsi1:2に該当する「pci-0000:13:00.0-scsi-0:0:2:0」に該当する部分を削除しました。
scsi1:2は、仮想マシンのscsiボードの2chの3番目を使っている意味であるが、、、この辺はscsiの知識が必要

それで再起動を掛けます

ファイルは存在しているものの、

[root@centos8-zfs ~]# ls -lh /data/
total 11G
-rw-r--r--. 1 root root 7.7G Jul 22 23:42 CentOS-8.2.2004-x86_64-dvd1.iso
-rw-r--r--. 1 root root 4.8G Aug  9  2017 en_visual_studio_community_2013_with_update_5_x86_dvd_6816332.iso
 
[root@centos8-zfs ~]#

「zpool status」からはエラー表示となる

[root@centos8-zfs ~]# zpool status
  pool: tank
 state: DEGRADED
status: One or more devices could not be used because the label is missing or
        invalid.  Sufficient replicas exist for the pool to continue
        functioning in a degraded state.
action: Replace the device using 'zpool replace'.
   see: http://zfsonlinux.org/msg/ZFS-8000-4J
  scan: none requested
config:
 
        NAME                               STATE     READ WRITE CKSUM
        tank                               DEGRADED     0     0     0
          raidz1-0                         DEGRADED     0     0     0
            pci-0000:13:00.0-scsi-0:0:0:0  ONLINE       0     0     0
            pci-0000:13:00.0-scsi-0:0:1:0  ONLINE       0     0     0
            4296232046464137477            UNAVAIL      0     0     0  was /dev/disk/by-path/pci-0000:13:00.0-scsi-0:0:2:0-part1
            pci-0000:13:00.0-scsi-0:0:3:0  ONLINE       0     0     0
 
errors: No known data errors
[root@centos8-zfs ~]#

既にesxiでvmdkファイルを削除したので、再度HDDをesxiにて用意します。その際、同じくscsi1:2に用意します。別でも構わないが。
仮想マシンは起動中です 起動しながらHDDをリムーバブルslotに入れた状態でしょうか
2020y07m26d_055144543.png
その直後、dmesを確認すると、HDDが装着されたことが分かります。

[  802.174968] vmw_pvscsi: msg type: 0x0 - MSG RING: 1/0 (5)
[  802.174969] vmw_pvscsi: msg: device added at scsi0:2:0
[  802.175676] scsi 3:0:2:0: Direct-Access     VMware   Virtual disk     1.0  PQ: 0 ANSI: 2
[  802.176072] sd 3:0:2:0: Attached scsi generic sg5 type 0
[  802.176277] sd 3:0:2:0: [sde] 16777216 512-byte logical blocks: (8.59 GB/8.00 GiB)
[  802.176316] sd 3:0:2:0: [sde] Write Protect is off
[  802.176317] sd 3:0:2:0: [sde] Mode Sense: 61 00 00 00
[  802.176355] sd 3:0:2:0: [sde] Cache data unavailable
[  802.176356] sd 3:0:2:0: [sde] Assuming drive cache: write through
[  802.177481] sd 3:0:2:0: [sde] Attached SCSI disk
 :

この「sde」は

[root@centos8-zfs ~]# ls -l /dev/disk/by-path/ | grep sde
lrwxrwxrwx. 1 root root  9 Jul 26 05:55 pci-0000:13:00.0-scsi-0:0:2:0 -> ../../sde
 
[root@centos8-zfs ~]#

と認識されました。

留意

元の場所に差し込んだから、自動的にre-buildされてRAID-Zが元に戻る....訳ではありません

自分で操作しないと正常には戻りません. この辺、HW-RAIDカードが楽かなぁーって思う箇所かな

っで作業は「zpool replace」コマンドを使います。

[root@centos8-zfs ~]# zpool replace tank pci-0000:13:00.0-scsi-0:0:2:0
 
(確認)
[root@centos8-zfs ~]# zpool status
  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 Jul 26 06:04:44 2020
        13.6G scanned at 2.71G/s, 161M issued at 32.3M/s, 13.6G total
        36.2M resilvered, 1.16% done, 0 days 00:07:05 to go
config:
 
        NAME                                 STATE     READ WRITE CKSUM
        tank                                 DEGRADED     0     0     0
          raidz1-0                           DEGRADED     0     0     0
            pci-0000:13:00.0-scsi-0:0:0:0    ONLINE       0     0     0
            pci-0000:13:00.0-scsi-0:0:1:0    ONLINE       0     0     0
            replacing-2                      DEGRADED     0     0     0
              4296232046464137477            UNAVAIL      0     0     0  was /dev/disk/by-path/pci-0000:13:00.0-scsi-0:0:2:0-part1/old
              pci-0000:13:00.0-scsi-0:0:2:0  ONLINE       0     0     0  (resilvering)
            pci-0000:13:00.0-scsi-0:0:3:0    ONLINE       0     0     0
 
errors: No known data errors
[root@centos8-zfs ~]#

っでre-buildが完了すると元に戻る

[root@centos8-zfs ~]# zpool status
  pool: tank
 state: ONLINE
  scan: resilvered 3.39G in 0 days 00:04:52 with 0 errors on Sun Jul 26 06:09:36 2020
config:
 
        NAME                               STATE     READ WRITE CKSUM
        tank                               ONLINE       0     0     0
          raidz1-0                         ONLINE       0     0     0
            pci-0000:13:00.0-scsi-0:0:0:0  ONLINE       0     0     0
            pci-0000:13:00.0-scsi-0:0:1:0  ONLINE       0     0     0
            pci-0000:13:00.0-scsi-0:0:2:0  ONLINE       0     0     0
            pci-0000:13:00.0-scsi-0:0:3:0  ONLINE       0     0     0
 
errors: No known data errors
[root@centos8-zfs ~]#

*autoreplaceを有効(zpool set autoreplace=on <pool名>)にすれば同じスロットに交換用HDDを入れると自動的にreplaceしてくれるようなのだが、仮想マシン環境では確認できなかった.

Hotspare-HDDを設置

仮想マシンにHDDを追加した.

[root@centos8-zfs ~]# cat /proc/partitions | grep sde
   8       64    8388608 sde
[root@centos8-zfs ~]# ls -l /dev/disk/by-path/|grep sde
lrwxrwxrwx. 1 root root  9 Jul 26 06:33 pci-0000:13:00.0-scsi-0:0:4:0 -> ../../sde
[root@centos8-zfs ~]#

この「pci-0000:13:00.0-scsi-0:0:4:0」をtankのhot spareとして追加してみる

[root@centos8-zfs ~]# zpool add tank spare pci-0000:13:00.0-scsi-0:0:4:0
[root@centos8-zfs ~]# zpool status
  pool: tank
 state: ONLINE
  scan: resilvered 3.39G in 0 days 00:05:24 with 0 errors on Sun Jul 26 06:43:33 2020
config:
 
        NAME                               STATE     READ WRITE CKSUM
        tank                               ONLINE       0     0     0
          raidz1-0                         ONLINE       0     0     0
            pci-0000:13:00.0-scsi-0:0:0:0  ONLINE       0     0     0
            pci-0000:13:00.0-scsi-0:0:1:0  ONLINE       0     0     0
            pci-0000:13:00.0-scsi-0:0:2:0  ONLINE       0     0     0
            pci-0000:13:00.0-scsi-0:0:3:0  ONLINE       0     0     0
        spares
          pci-0000:13:00.0-scsi-0:0:4:0    AVAIL
 
errors: No known data errors
 
[root@centos8-zfs ~]#

「autoreplace」を有効にして、仮想マシンを一旦shutdownして、RAID-Zを構成するHDDを一つ削除してみる

[root@centos8-zfs ~]# zpool get autoreplace tank
NAME  PROPERTY     VALUE    SOURCE
tank  autoreplace  off      default
 
[root@centos8-zfs ~]# zpool set autoreplace=on tank
 
[root@centos8-zfs ~]# zpool get autoreplace tank
NAME  PROPERTY     VALUE    SOURCE
tank  autoreplace  on       local
 
[root@centos8-zfs ~]#

っで再起動を行ったのだが、、、spareからの流用はなかった. 仮想マシンでは無理なのかな?
仕方ないので手動でreplaceを行った
「zpool replace <pool名> <元の場所> <交換するHDD>」

[root@centos8-zfs ~]# zpool replace tank   pci-0000:13:00.0-scsi-0:0:1:0    pci-0000:13:00.0-scsi-0:0:4:0
[root@centos8-zfs ~]# zpool status
  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 Jul 26 07:10:38 2020
        13.6G scanned at 2.71G/s, 82.7M issued at 16.5M/s, 13.6G total
        17.9M resilvered, 0.60% done, 0 days 00:13:54 to go
config:
 
        NAME                                 STATE     READ WRITE CKSUM
        tank                                 DEGRADED     0     0     0
          raidz1-0                           DEGRADED     0     0     0
            pci-0000:13:00.0-scsi-0:0:0:0    ONLINE       0     0     0
            spare-1                          DEGRADED     0     0     0
              7173616995987023127            UNAVAIL      0     0     0  was /dev/disk/by-path/pci-0000:13:00.0-scsi-0:0:1:0-part1
              pci-0000:13:00.0-scsi-0:0:4:0  ONLINE       0     0     0  (resilvering)
            pci-0000:13:00.0-scsi-0:0:2:0    ONLINE       0     0     0
            pci-0000:13:00.0-scsi-0:0:3:0    ONLINE       0     0     0
        spares
          pci-0000:13:00.0-scsi-0:0:4:0      INUSE     currently in use
 
errors: No known data errors
[root@centos8-zfs ~]#

re-buidが完了すると下記のようになる.

[root@centos8-zfs ~]# zpool status
  pool: tank
 state: DEGRADED
status: One or more devices could not be used because the label is missing or
        invalid.  Sufficient replicas exist for the pool to continue
        functioning in a degraded state.
action: Replace the device using 'zpool replace'.
   see: http://zfsonlinux.org/msg/ZFS-8000-4J
  scan: resilvered 3.39G in 0 days 00:05:57 with 0 errors on Sun Jul 26 07:16:35 2020
config:
 
        NAME                                 STATE     READ WRITE CKSUM
        tank                                 DEGRADED     0     0     0
          raidz1-0                           DEGRADED     0     0     0
            pci-0000:13:00.0-scsi-0:0:0:0    ONLINE       0     0     0
            spare-1                          DEGRADED     0     0     0
              7173616995987023127            UNAVAIL      0     0     0  was /dev/disk/by-path/pci-0000:13:00.0-scsi-0:0:1:0-part1
              pci-0000:13:00.0-scsi-0:0:4:0  ONLINE       0     0     0
            pci-0000:13:00.0-scsi-0:0:2:0    ONLINE       0     0     0
            pci-0000:13:00.0-scsi-0:0:3:0    ONLINE       0     0     0
        spares
          pci-0000:13:00.0-scsi-0:0:4:0      INUSE     currently in use
 
errors: No known data errors
[root@centos8-zfs ~]#

Hot spareが代替となったとしても「DEGRADED」の認識みたい. 一応「spare-1」にて問題は解消されているのだが、、
っで、故障とさせたslotにHDDを入れてみる
そして

[root@centos8-zfs ~]# zpool replace tank pci-0000:13:00.0-scsi-0:0:1:0
[root@centos8-zfs ~]# zpool status
  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 Jul 26 07:31:25 2020
        13.6G scanned at 1.94G/s, 136M issued at 19.4M/s, 13.6G total
        29.8M resilvered, 0.98% done, 0 days 00:11:48 to go
config:
 
        NAME                                   STATE     READ WRITE CKSUM
        tank                                   DEGRADED     0     0     0
          raidz1-0                             DEGRADED     0     0     0
            pci-0000:13:00.0-scsi-0:0:0:0      ONLINE       0     0     0
            spare-1                            DEGRADED     0     0     0
              replacing-0                      DEGRADED     0     0     0
                7173616995987023127            UNAVAIL      0     0     0  was /dev/disk/by-path/pci-0000:13:00.0-scsi-0:0:1:0-part1/old
                pci-0000:13:00.0-scsi-0:0:1:0  ONLINE       0     0     0  (resilvering)
              pci-0000:13:00.0-scsi-0:0:4:0    ONLINE       0     0     0
            pci-0000:13:00.0-scsi-0:0:2:0      ONLINE       0     0     0
            pci-0000:13:00.0-scsi-0:0:3:0      ONLINE       0     0     0
        spares
          pci-0000:13:00.0-scsi-0:0:4:0        INUSE     currently in use
 
errors: No known data errors
[root@centos8-zfs ~]#

暫くすと、

[root@centos8-zfs ~]# zpool status
  pool: tank
 state: ONLINE
  scan: resilvered 3.39G in 0 days 00:08:22 with 0 errors on Sun Jul 26 07:59:10 2020
config:
 
        NAME                               STATE     READ WRITE CKSUM
        tank                               ONLINE       0     0     0
          raidz1-0                         ONLINE       0     0     0
            pci-0000:13:00.0-scsi-0:0:0:0  ONLINE       0     0     0
            pci-0000:13:00.0-scsi-0:0:1:0  ONLINE       0     0     0
            pci-0000:13:00.0-scsi-0:0:2:0  ONLINE       0     0     0
            pci-0000:13:00.0-scsi-0:0:3:0  ONLINE       0     0     0
        spares
          pci-0000:13:00.0-scsi-0:0:4:0    AVAIL
 
errors: No known data errors
[root@centos8-zfs ~]#

と元に戻る


トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2020-07-26 (日) 08:04:23 (19d)