かいていちゅう
過去記事:CentOS/zfs
zfsはオラクル様で作られたファイルシステム. 本当はSun Microsystems かな 現在はOpenZFSが音頭を取ってる. Linux向けには ZFS on Linux としてリリースされている.
本家様 https://openzfs.org/wiki/Main_Page
ドキュメント https://openzfs.github.io/openzfs-docs/
ZFS on Linux: https://zfsonlinux.org/
ここではRockyLinux8にOpenZFSを入れてみる.
専用のリポジトリを追加します.
導入にはdkms版とkABI版がある. ここでは dkms 版を使います. kABI版はよく分からん
まずはdkms環境を準備します
[root@rockylinux8zfs ~]# dnf install kernel-devel-$(uname -r) kernel-headers-$(uname -r)
[root@rockylinux8zfs ~]# dnf groupinstall "Development Tools"
[root@rockylinux8zfs ~]# dnf install epel-release
[root@rockylinux8zfs ~]# dnf install dkms
次にOpenZFSのリポジトリを導入します.
OSバージョン毎のリポジトリはhttps://openzfs.github.io/openzfs-docs/Getting%20Started/RHEL-based%20distro/index.htmlを参照して下記のように入れる.
[root@rockylinux8zfs ~]# dnf install https://zfsonlinux.org/epel/zfs-release-2-3$(rpm --eval "%{dist}").noarch.rpm
そしてzfsカーネルモジュールを導入します
[root@rockylinux8zfs ~]# dnf install zfs
関連パッケージのインストール後に dkms経由で zfs カーネルモジュールが作成されます
[root@rockylinux8zfs ~]# ls -l /lib/modules/$(uname -r)/extra
total 1364
-rw-r--r--. 1 root root 100316 Jul 21 13:44 icp.ko.xz
-rw-r--r--. 1 root root 40044 Jul 21 13:44 spl.ko.xz
-rw-r--r--. 1 root root 4904 Jul 21 13:44 zavl.ko.xz
-rw-r--r--. 1 root root 29464 Jul 21 13:44 zcommon.ko.xz
-rw-r--r--. 1 root root 921160 Jul 21 13:44 zfs.ko.xz
-rw-r--r--. 1 root root 68996 Jul 21 13:44 zlua.ko.xz
-rw-r--r--. 1 root root 23716 Jul 21 13:44 znvpair.ko.xz
-rw-r--r--. 1 root root 32500 Jul 21 13:44 zunicode.ko.xz
-rw-r--r--. 1 root root 161824 Jul 21 13:44 zzstd.ko.xz
[root@rockylinux8zfs ~]# dkms status
zfs/2.1.12, 4.18.0-477.10.1.el8_8.x86_64, x86_64: installed
[root@rockylinux8zfs ~]#
作ったカーネルモジュールを組み込んでみます
[root@rockylinux8zfs ~]# modprobe zfs
[root@rockylinux8zfs ~]# lsmod |grep zfs
zfs 3887104 0
zunicode 335872 1 zfs
zzstd 512000 1 zfs
zlua 176128 1 zfs
zavl 16384 1 zfs
icp 319488 1 zfs
zcommon 102400 2 zfs,icp
znvpair 90112 2 zfs,zcommon
spl 114688 6 zfs,icp,zzstd,znvpair,zcommon,zavl
[root@rockylinux8zfs ~]#
もし「modprobe zfs」で
「modprobe: ERROR: could not insert 'zfs': Required key not available」
と表示されるなら、、これはセキュアブート関連で、セキュアブートを無効いすれば大丈夫みたい.
これでzfsのカーネルモジュールの組み込みが完了しました
次に複数のHDDを使った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@rockylinux8zfs ~]# ls -l /dev/disk/by-path/
total 0
lrwxrwxrwx. 1 root root 9 Jul 21 14:06 pci-0000:02:02.0-ata-1 -> ../../sr0
lrwxrwxrwx. 1 root root 9 Jul 21 14:06 pci-0000:03:00.0-scsi-0:0:0:0 -> ../../sda
lrwxrwxrwx. 1 root root 10 Jul 21 14:06 pci-0000:03:00.0-scsi-0:0:0:0-part1 -> ../../sda1
lrwxrwxrwx. 1 root root 10 Jul 21 14:06 pci-0000:03:00.0-scsi-0:0:0:0-part2 -> ../../sda2
lrwxrwxrwx. 1 root root 10 Jul 21 14:06 pci-0000:03:00.0-scsi-0:0:0:0-part3 -> ../../sda3
lrwxrwxrwx. 1 root root 10 Jul 21 14:06 pci-0000:03:00.0-scsi-0:0:0:0-part4 -> ../../sda4
lrwxrwxrwx. 1 root root 9 Jul 21 14:06 pci-0000:03:00.0-scsi-0:0:1:0 -> ../../sdb
lrwxrwxrwx. 1 root root 9 Jul 21 14:06 pci-0000:03:00.0-scsi-0:0:2:0 -> ../../sdc
lrwxrwxrwx. 1 root root 9 Jul 21 14:06 pci-0000:03:00.0-scsi-0:0:3:0 -> ../../sdd
lrwxrwxrwx. 1 root root 9 Jul 21 14:06 pci-0000:03:00.0-scsi-0:0:4:0 -> ../../sde
[root@rockylinux8zfs ~]#
(raid-zでストレージプールを作成)
[root@rockylinux8zfs ~]# zpool create tank raidz \
pci-0000:03:00.0-scsi-0:0:1:0 \
pci-0000:03:00.0-scsi-0:0:2:0 \
pci-0000:03:00.0-scsi-0:0:3:0 \
pci-0000:03:00.0-scsi-0:0:4:0
(確認)
[root@rockylinux8zfs ~]# zpool status tank
pool: tank
state: ONLINE
config:
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
pci-0000:03:00.0-scsi-0:0:1:0 ONLINE 0 0 0
pci-0000:03:00.0-scsi-0:0:2:0 ONLINE 0 0 0
pci-0000:03:00.0-scsi-0:0:3:0 ONLINE 0 0 0
pci-0000:03:00.0-scsi-0:0:4:0 ONLINE 0 0 0
errors: No known data errors
[root@rockylinux8zfs ~]#
*ESXiでby-idで構築するなら、「構成パラメータ」で「disk.EnableUUID = TRUE」を入れる必要がある
「zpool create」で用意したストレージプール名称がmountポイントとなる.
この作ったストレージプールから必要量を切り出して、特定のmountpointに配置するのが一般的みたい
[root@rockylinux8zfs ~]# df -lTh -F zfs
Filesystem Type Size Used Avail Use% Mounted on
tank zfs 93G 128K 93G 1% /tank
[root@rockylinux8zfs ~]#
この場所を変更するには「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」ができるのはストライプとミラー構成だけのご様子.
[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を削除します
ちょうど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に入れた状態でしょうか
その直後、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してくれるようなのだが、仮想マシン環境では確認できなかった.
仮想マシンに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 ~]#
と元に戻る