切ないことにまたディスクにREAD/WRITE ERRORが起きてDEGRADEDになった。家のファイルサーバのRAIDZがDEGRADEDになると不安で夜も眠れない(そんなことはない)ので対応。
とりあえず前回と同様にケーブルつけ外しをしたが同じディスクからエラーが発生して速攻でDEGRADEDに戻ってしまったので、諦めて交換することに。
FAULTEDが出てたディスクが一番エアフローが良くなかったディスクで一番高温に晒されてたからしゃあないかなあと(エアフローはちょっと前に改善したので温度はかなり下がったので再発はしない気がするがまあわからん)。
$ sudo zpool status pool: tank state: DEGRADED status: One or more devices are faulted in response to persistent errors. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Replace the faulted device, or use 'zpool clear' to mark the device repaired. scan: resilvered 25.8G in 00:07:48 with 0 errors on Sat Dec 10 13:22:06 2022 config: NAME STATE READ WRITE CKSUM tank DEGRADED 0 0 0 raidz1-0 DEGRADED 0 0 0 ata-ST8000VN0022-2EL112_ZA196HJA ONLINE 0 0 0 ata-ST8000VN0022-2EL112_ZA17B2GK ONLINE 0 0 0 ata-ST8000VN004-2M2101_WKD06BMA ONLINE 0 0 0 ata-ST8000VN0022-2EL112_ZA196HT7 ONLINE 0 0 0 ata-ST8000VN0022-2EL112_ZA1960WD ONLINE 0 0 0 ata-ST8000VN0022-2EL112_ZA1960VF FAULTED 20 4 0 too many errors cache nvme-INTEL_SSDPEKKW256G8_BTHH81951F1W256B ONLINE 0 0 0 errors: No known data errors
ディスクを物理的に交換した直後には以下のようになる。
$ sudo 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: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-4J scan: resilvered 25.8G in 00:07:48 with 0 errors on Sat Dec 10 13:22:06 2022 config: NAME STATE READ WRITE CKSUM tank DEGRADED 0 0 0 raidz1-0 DEGRADED 0 0 0 ata-ST8000VN0022-2EL112_ZA196HJA ONLINE 0 0 0 ata-ST8000VN0022-2EL112_ZA17B2GK ONLINE 0 0 0 ata-ST8000VN004-2M2101_WKD06BMA ONLINE 0 0 0 ata-ST8000VN0022-2EL112_ZA196HT7 ONLINE 0 0 0 ata-ST8000VN0022-2EL112_ZA1960WD ONLINE 0 0 0 6595942405659626133 UNAVAIL 0 0 0 was /dev/disk/by-id/ata-ST8000VN0022-2EL112_ZA1960VF cache nvme-INTEL_SSDPEKKW256G8_BTHH81951F1W256B ONLINE 0 0 0 errors: No known data errors
/dev//disk/by-id以下のディレクトリから認識させているので、ディスク交換すると絶対にパスが変わってしまうので、replaceは以下のコマンドで対応する。
$ sudo zpool replace tank 6595942405659626133 ata-ST8000VN004-2M2101_WKD04ZFV
replace後の結果はこれ。
$ sudo 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 Dec 11 08:45:41 2022 819G scanned at 1.46G/s, 1.84G issued at 3.36M/s, 36.9T total 0B resilvered, 0.00% done, no estimated completion time config: NAME STATE READ WRITE CKSUM tank DEGRADED 0 0 0 raidz1-0 DEGRADED 0 0 0 ata-ST8000VN0022-2EL112_ZA196HJA ONLINE 0 0 0 ata-ST8000VN0022-2EL112_ZA17B2GK ONLINE 0 0 0 ata-ST8000VN004-2M2101_WKD06BMA ONLINE 0 0 0 ata-ST8000VN0022-2EL112_ZA196HT7 ONLINE 0 0 0 ata-ST8000VN0022-2EL112_ZA1960WD ONLINE 0 0 0 replacing-5 DEGRADED 0 0 0 6595942405659626133 UNAVAIL 0 0 0 was /dev/disk/by-id/ata-ST8000VN0022-2EL112_ZA1960VF ata-ST8000VN004-2M2101_WKD04ZFV ONLINE 0 0 0 cache nvme-INTEL_SSDPEKKW256G8_BTHH81951F1W256B ONLINE 0 0 0 errors: No known data errors
最初、異様にresilverが遅くて、嫌な予感がしたけど(ディスクエラーを検知して並列してるっぽいresilverのどれかが止まってるとかでなんか止まる。最初にケーブルだけ直して、zpool clear tankで誤魔化したときはそうだった)、少し待ったら復活した。
ちなみに、全然関係ないのだけど、lm-sensorsをインストールして、ちゃんとMBをsensors-detectで認識させておくと、適切なファイル(例えば、nct6775の場合は、/sys/class/hwmon/hwmon(¥d+)/pwm(¥d+)_auto_point(¥d+)_pwm(¥d+)_(pwm|temp) )の内容をちょこちょこいじるとBIOS画面通さなくてもMBのPWMファンの回転数の設定を変えられるので便利(サーバ用だと画面つながってないのでBIOS画面出すのが手間だから)。
この設定をいじって異様に低い回転数になってたHDD側のファンを少し早く回すようにしたので10℃くらい温度を下げることに成功。単に回転数をちょこっと上げるだけなら、fancontrol要らない。