1
0

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ストレージプールがSUSPENDEDになった場合の対応手順

Posted at

NetBSD Advent Calendar 2025 15日目の記事です。今日はZFSまわりの障害対応メモを紹介しようと思います。

概要

長らくZFSに触れる機会がなかったのですが、将来的な自宅サーバの置き換えを見据え、試験的にZFSを運用しつつ運用ノウハウを集めています。今回はZFSストレージプールがSUSPENDEDになる障害に見舞われた際の対応手順を備忘録的に残しておこうと思います。

障害発生時の状況

  • ZFSストレージプールからZFSファイルシステムを作成して運用していた。
    • USBメモリを2本使用し、ミラーリング構成でZFSストレージプールを構築。
  • いつの間にやら zfs list でZFSファイルシステムが参照できなくなっていた。
  • zppl status で確認すると、stateが SUSPENDED になっていた。
$ zfs list
no datasets available
$
$ zpool status -v
  pool: upool
 state: SUSPENDED
status: One or more devices are faulted in response to IO failures.
action: Make sure the affected devices are connected, then run 'zpool clear'.
   see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-HC
  scan: scrub repaired 0B in 00:00:53 with 0 errors on Mon Apr 17 16:07:22 2023
config:

        NAME                                         STATE     READ WRITE CKSUM
        upool                                        ONLINE       0     0     0
          mirror-0                                   ONLINE       4   256     0
            gpt/hub00-DISK-0022CFF6BD8EC5C01322B17E  ONLINE       3   261     0
            gpt/hub01-DISK-0022CFF6BD70C5B1E321258E  ONLINE       4   261     0

errors: List of errors unavailable: pool I/O is currently suspended

原因

  • PCにUSBハブを接続し、そこにUSBメモリを2本差してストレージとするもUSBハブの品質が悪く、接続断した状態になっていた。
  • そのためストレージが参照できず、I/O errorによりZFSストレージプールがSUSPENDEDとなっていた。

対応手順

  • USBメモリ内のデータはそのままなので、ZFSストレージをインポートすることで対応した。
  • まずはインポートできるストレージプールを確認する。
$ # この段階では、ZFSストレージプールが利用不可になっている状態。
$ zpool list
no pools available
$
$ # インポート可能なZFSストレージプールを確認。
$ sudo zpool import
   pool: upool
     id: 16979329446999820469
  state: ONLINE
 action: The pool can be imported using its name or numeric identifier.
 config:

        upool                                        ONLINE
          mirror-0                                   ONLINE
            gpt/hub00-DISK-0022CFF6BD8EC5C01322B17E  ONLINE
            gpt/hub01-DISK-0022CFF6BD70C5B1E321258E  ONLINE
$ # ZFSストレージプールをインポート。
$ # もしストレージプール名が重複している場合は、 `zppol import upool upool2` のように、
$ # ストレージプール名を変更してインポートすることも可能。
$ sudo zpool import upool
$
$ # ZFSストレージプールがONLINEになった。
$ zpool list -v
NAME                                          SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
upool                                          14G   466M  13.5G        -         -     0%     3%  1.00x    ONLINE  -
  mirror-0                                     14G   466M  13.5G        -         -     0%  3.24%      -    ONLINE
    gpt/hub00-DISK-0022CFF6BD8EC5C01322B17E  14.4G      -      -        -         -      -      -      -    ONLINE
    gpt/hub01-DISK-0022CFF6BD70C5B1E321258E  14.4G      -      -        -         -      -      -      -    ONLINE
$
  • 無事に障害から復帰できた。
$ # ZFSファイルシステムも参照できており、障害から復帰できた。
$ zfs list
NAME             USED  AVAIL     REFER  MOUNTPOINT
upool            466M  13.1G       24K  /upool
upool/sample01   465M  13.1G      465M  /upool/sampl01
upool/sample02   101K  13.1G      101K  /upool/sampl02

まとめ

ZFSストレージプールがSUSPENDEDになってしまった場合の対応手順を紹介しました。今回のケースではZFSの運用ノウハウを蓄積するという側面もあり、結果的に知見が得られて良かったのですが、障害の発生要因である「USBハブの品質が悪い」は実運用上リスクになる要素であるため、品質の良いUSBハブを使いましょう(それはそう…)。

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?