2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ZFS で初めて HDD 障害に出くわし、その対処したメモ

Posted at

ZFS それって美味しいの🤔

兼ねてから HDD が不穏は動きをしていたが、気が付いたら小人さんの手による detached されていたので、google 先生に聞きながら再構築をした記録である。

対象

FreeBSD のデーモン使いで、MBR も GPT も GEOM でエイヤッって出来る人🤫

ざっくり状況説明を

当該 HDD は何時の世代のか判らんぐらいご老体の
SEAGATE ST3250310NS
コイツが /dev/ada1 /dev/pass1 で OS 上からは認識されていたのだが、如何せん寄せ集めででっち上げたテスト環境じゃけ、費用は最小限に留めたい思いで、廃 PC からの寄せ集めって事。
価格.com じゃとこの HDD 初回登録日が 2008 年 7 且 7 日と凡そ 24 年前の七夕なんと💦
hostname は NEC 製の N8100-2488Y
ZFS のプール名は ZFS
構成は HDD 4 台で raidz1
HDD は取替前は以下の通り

どれもこれも産廃レヴェル✌
ada0: <Maxtor 6B250S0 BANC1BM0> ATA-7 SATA 1.x device
ada1: <ST3250310NS SN06> ATA-7 SATA 1.x device
ada2: <Hitachi HDP725025GLA380 GM2OA52A> ATA8-ACS SATA 2.x device
ada3: <Hitachi HDT725025VLA380 V5DOA52A> ATA-7 SATA 2.x device

では幕開け

余談はこのぐらいにして、構築して程なく次のメッセージが syslog に現れてきだした。

smatrd の出力
Jul  2 00:29:13 N8100-2488Y smartd[1352]: Device: /dev/ada1, 9 Currently unreadable (pending) sectors
Jul  2 00:29:13 N8100-2488Y smartd[1352]: Device: /dev/ada1, 9 Offline uncorrectable sectors

コイツの出力とほぼ同時期から HDD 躯体からも異音がし始める。→この時点で交換しろよって突っ込みは右から左に受け流す✌

程なく 3 日後には「イイ」感じのメッセージが出始めた💦

kernel の悲鳴
Jul  5 07:52:13 N8100-2488Y kernel: (ada1:ahcich1:0:0:0): READ_FPDMA_QUEUED. ACB: 60 01 db 03 10 40 00 00 00 00 00 00
Jul  5 07:52:13 N8100-2488Y kernel: (ada1:ahcich1:0:0:0): CAM status: Auto-Sense Retrieval Failed
Jul  5 07:52:13 N8100-2488Y kernel: (ada1:ahcich1:0:0:0): Error 5, Unretryable error
Jul  5 07:52:13 N8100-2488Y kernel: (ada1:ahcich1:0:0:0): WRITE_FPDMA_QUEUED. ACB: 61 06 e0 56 88 40 06 00 00 00 00 00
Jul  5 07:52:13 N8100-2488Y kernel: (ada1:ahcich1:0:0:0): CAM status: Auto-Sense Retrieval Failed
Jul  5 07:52:13 N8100-2488Y kernel: (ada1:ahcich1:0:0:0): Error 5, Unretryable error

♪ガッツだぜ!!/ウルフルズの歌詞で替え歌を思いつく状況w
「読めない書けない、出来そうもない」ガッツだぜぇ~

ZFS も饒舌に語りだす始末✌

devd が ZFS の苦情を受け止めてくれていた😿
Jul  5 07:52:13 N8100-2488Y devd[782]: Processing event '!system=ZFS subsystem=ZFS type=ereport.fs.zfs.io  class=ereport.fs.zfs.io ena=7775126908043264001 pool=ZFS pool_guid=6277837498995304236 pool_state=0 pool_context=0 pool_failmode=wait vdev_guid=5217777784400537384 vdev_type=disk vdev_path=/dev/ada1p4 vdev_ashift=9 vdev_complete_ts=1274052334028321 vdev_delta_ts=256078 vdev_read_errors=0 vdev_write_errors=0 vdev_cksum_errors=0 vdev_delays=0 parent_guid=656513824515157060 parent_type=raidz vdev_spare_guids= zio_err=5 zio_flags=721089 zio_stage=33554432 zio_pipeline=34603008 zio_delay=255405 zio_timestamp=1274052333772243 zio_delta=256078 zio_priority=0 zio_offset=270336 zio_size=8192 time=00000017201335330000000087057673 eid=2'

この時点でも、まだ HDD を交換しようとせず、なにやら小人さんがデタッチ操作した模様。

ワシがした記憶が無い
Jul  5 08:21:28 N8100-2488Y kernel: ada1 at ahcich1 bus 0 scbus1 target 0 lun 0
Jul  5 08:21:28 N8100-2488Y kernel: ada1: <ST3250310NS SN06> s/n 9SF02GMB detached
Jul  5 08:21:28 N8100-2488Y kernel: (ada1:ahcich1:0:0:0): Periph destroyed

本格的なプロの仕上がり(大嘘)

detach と切り離されているので仕方なく、数日後に母艦を強制停止(電源ブチィ~)を断腸の思いで決行(大袈裟)

当該 HDD を抜き出す→御代わりと差替える。
復電→どきどき、わくわく

smartd は新しい HDD を認識した!(♪ドラクエのファンファーレ)
Jul  8 22:41:35 N8100-2488Y smartd[1625]: Device: /dev/ada1, opened
Jul  8 22:41:35 N8100-2488Y smartd[1625]: Device: /dev/ada1, WDC WD2500AAKX-75U6AA0, S/N:WD-WCC2F00*****, WWN:5-0014ee-**1d**d*7, FW:19.01H19, 250 GB
Jul  8 22:41:35 N8100-2488Y smartd[1625]: Device: /dev/ada1, found in smartd database 7.3/5528: Western Digital Blue
Jul  8 22:41:35 N8100-2488Y smartd[1625]: Device: /dev/ada1, no Attribute 231, ignoring -R 231
Jul  8 22:41:35 N8100-2488Y smartd[1625]: Device: /dev/ada1, is SMART capable. Adding to "monitor" list.

おー👏
差替えた HDD は、この時点ではチャンと OS 上で認識してくれていたので、ZFS のリビルドを施工する。
<ぼそ>-R 231 が無効って言われてるのは後回しでおねしゃすm(__)mぼそ>

作業は全て wheel グループに所属してるアカウントで root 権限で操作の事

zpool コマンドで状況確認
# zpool status -v
  pool: ZFS
 state: DEGRADED
status: One or more devices has experienced an error resulting in data
        corruption.  Applications may be affected.
action: Restore the file in question if possible.  Otherwise restore the
        entire pool from backup.
   see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-8A
  scan: resilvered 2.65M in 00:00:04 with 0 errors on Thu Jan  1 00:00:21 1970
config:

        NAME        STATE     READ WRITE CKSUM
        ZFS         DEGRADED     0     0     0
          raidz1-0  DEGRADED     0     0     0
            ada0p4  ONLINE       0     0     0
            ada1p4  UNAVAIL      0     0     0  cannot open
            ada2p4  ONLINE       0     0     0
            ada3p4  ONLINE       0     0     0

既に差替えた側の HDD は zero で GPT エリアとか綺麗サッパリと消されていたので、他の生きている HDD から GPT テーブルを見ながら構築してみる。

gpart コマンドで他のテーブル見てみる
# gpart show ada3
=>       40  488397088  ada3  GPT  (233G)
         40     532480     1  efi  (260M)
     532520       1024     2  freebsd-boot  (512K)
     533544    4194304     3  freebsd-swap  (2.0G)
    4727848  483669280     4  freebsd-zfs  (231G)

何故 ada0 じゃないかってのは、野暮な事は聴くんじゃないよw

gpart コマンドで区画作るよ
# gpart create -s gpt ada1
ada1 created
# gpart add -i 1 -t efi -b 40 -s 260M ada1
ada1p1 added
# gpart add -i 2 -t freebsd-boot -s 512k ada1
ada1p2 added
# gpart add -i 3 -t freebsd-swap -s 2g ada1
ada1p3 added
# gpart add -i 4 -t freebsd-zfs ada1
ada1p4 added

完成したか一応確認を💦

gpart コマンドで確認✌
# gpart show ada1
=>       40  488397088  ada1  GPT  (233G)
         40     532480     1  efi  (260M)
     532520       1024     2  freebsd-boot  (512K)
     533544    4194304     3  freebsd-swap  (2.0G)
    4727848  483669280     4  freebsd-zfs  (231G)

テーブルが整ったのでリプレイス開始!

zpool コマンドで再生命令を発令!
# zpool replace ZFS ada1p4

ここは ZFS のプール名 パーティション ってな具合で記述する事。
リプレイスが頑張っとるか偵察してみるw

zpool コマンドで頑張りを監視w
# zpool status -v ZFS
  pool: ZFS
 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 Mon Jul  8 23:42:42 2024
        47.8G / 65.4G scanned at 388M/s, 11.1G / 65.0G issued at 90.1M/s
        2.69G resilvered, 17.04% done, 00:10:13 to go
config:

        NAME              STATE     READ WRITE CKSUM
        ZFS               DEGRADED     0     0     0
          raidz1-0        DEGRADED     0     0     0
            ada0p4        ONLINE       0     0     0
            replacing-1   DEGRADED     0     0     0
              ada1p4/old  UNAVAIL      0     0     0  cannot open
              ada1p4      ONLINE       0     0     0  (resilvering)
            ada2p4        ONLINE       0     0     0
            ada3p4        ONLINE       0     0     0

二回目の偵察

zpool コマンドで頑張りを監視その2 scan 項目に現在の進捗状況がパーセント表示されちょる
# zpool status -v ZFS
  pool: ZFS
 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 Mon Jul  8 23:42:42 2024
        47.8G / 65.4G scanned at 312M/s, 13.4G / 65.0G issued at 87.6M/s
        3.26G resilvered, 20.64% done, 00:10:03 to go
config:

        NAME              STATE     READ WRITE CKSUM
        ZFS               DEGRADED     0     0     0
          raidz1-0        DEGRADED     0     0     0
            ada0p4        ONLINE       0     0     0
            replacing-1   DEGRADED     0     0     0
              ada1p4/old  UNAVAIL      0     0     0  cannot open
              ada1p4      ONLINE       0     0     0  (resilvering)
            ada2p4        ONLINE       0     0     0
            ada3p4        ONLINE       0     0     0

三回目の偵察(間隔遅っ)

zpool コマンドで頑張りを確認w
# zpool status -v ZFS
  pool: ZFS
 state: ONLINE
  scan: resilvered 16.1G in 00:13:12 with 0 errors on Mon Jul  8 23:55:54 2024
config:

        NAME        STATE     READ WRITE CKSUM
        ZFS         ONLINE       0     0     0
          raidz1-0  ONLINE       0     0     0
            ada0p4  ONLINE       0     0     0
            ada1p4  ONLINE       0     0     0
            ada2p4  ONLINE       0     0     0
            ada3p4  ONLINE       0     0     0

errors: No known data errors

ざっくり完了🎊🎉👏

ada1 を置き換えた例となったが、不具合発生時は冷静に対応しんちゃいよ。
さもなきゃ、治るもんも治らんくなりよるけん✌

swap パーティションの処理

boot 時、HDD 差替え直後に swap のパーティションが無いって文句言われていたのだが、この作業完了後に母体を通常再起動(計画外w)を行ったら、出なくなったけんそういうもんなんじゃろな💦
ってか、/etc/fstab に記述有ったよのぉ🤪

dmesg
Jul  8 22:41:31 N8100-2488Y kernel: swapon: /dev/ada1p3: No such file or directory

ミッションコンプリート(か)

これで ZFS で HDD がめげた時の対処法を、忘備録的に書いてみたが、いくつか課題は残ってる(と思う)。

心残り

efi のブートイメージは区画を作ったダケで一切、手を入れてれないトコ。
多分、mount_msdosfs で他の HDD をマウントして cp -a 位でだいじょうばない?

おまけ🥰

HDD の偏り癖w
ada0: <Maxtor 6B250S0 BANC1BM0> ATA-7 SATA 1.x device
ada1: <WDC WD2500AAKX-75U6AA0 19.01H19> ATA8-ACS SATA 3.x device
ada2: <Hitachi HDP725025GLA380 GM2OA52A> ATA8-ACS SATA 2.x device
ada3: <Hitachi HDT725025VLA380 V5DOA52A> ATA-7 SATA 2.x device

お粗末様でしたm(__)m

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?