ZFSプールの故障ドライブ交換手順

概要

本記事では,Proxmox VE で運用している ZFS プールの物理ドライブの故障の際の
交換からリシーヴ完了までの手順を解説します.
※実際に作業を行う際は,必ずバックアップを取得してから実施してください.


目次


1. 故障ドライブの確認

まずはS.M.A.R.Tの状態をチェックします.

1
2
3
4
5
6
7
8
9
10
11
12
$ smartctl -a /dev/sdd
(中略)
SMART overall-health self-assessment test result: PASSED
(中略)
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
(中略)
5 Reallocated_Sector_Ct 0x0033 195 195 140 Pre-fail Always - 164
(中略)
196 Reallocated_Event_Count 0x0032 051 051 000 Old_age Always - 149
197 Current_Pending_Sector 0x0032 200 200 000 Old_age Always - 3

SMART overall-health self-assessment test result: PASSED との表記が見られますが
Reallocated_Sector_Ctが164,Current_Pending_Sectorが3,Reallocated_Event_Countが 149など,物理的故障の予兆が出ています.


次に ZFS の状態を確認します.

1
2
3
4
5
6
7
8
$ zpool status

pool: Data
state: ONLINE
status: One or more devices has experienced an unrecoverable error.
...
NAME STATE READ WRITE CKSUM
ata-WDC_WD2000FYYZ-01UL1B2_WD-************ ONLINE 0 0 98

CKSUMが98で,実際に被疑ドライブのデータが失われてチェックサムエラーが発生した痕跡が記録されています.
この時点でS.M.A.R.Tに物理故障の予兆が出ており,実際にzfsの方でデータ破損も検出しているため要交換と判断しました.

2. ドライブ交換

それでは,実際に故障ドライブの交換を行っていきます

まずはじめに,zfsの方で故障ドライブをオフラインに移行します.

1
$ zpool offline Data ata-WDC_WD2000FYYZ-01UL1B2_WD-************

正常にドライブがプールから切り離されたことを確認します.

1
2
3
4
5
$ zpool status
NAME STATE READ WRITE CKSUM
Data DEGRADED 0 0 0
raidz1-0 DEGRADED 0 0 0
ata-WDC_WD2000FYYZ-01UL1B2_WD--*********** OFFLINE 0 0 98

故障ドライブがOFFLINEとなり,プール状態がDEGRADEDへ移行しました


続いて故障ドライブを抜去し,新しいドライブをサーバに挿入します.

誤挿抜 = 即障害のため,ディスクのシリアル番号等をしっかり確認しましょう
念のため電源を切ってから挿抜するとより安心です


交換が終わったら,交換後の/dev/sddをプールに再参加させます.
注意:旧デバイス名は ZFS が内部で認識している ata‑WD… を指定します.

1
zpool replace Data ata-WDC_WD2000FYYZ-01UL1B2_WD-************ /dev/sdd

このとき/dev/disk/by-id/からドライブを指定していなかったので命名規則が崩れました.悔しい.

基本的にはここまでのステップで復旧作業は完了です.

3. 復旧の進捗確認

復旧作業が完了したので,正常に復旧処理が開始されているかどうかを確認してみます.

1
2
3
4
5
6
7
$ zpool status
pool: Data
state: DEGRADED
status: One or more devices is currently being resilvered.
...
scan: resilver in progress since Wed Dec 3 15:00:15 2025
458G / 2.92T scanned at 4.49G/s, 0B resilvered

上記のように,スキャンが進行中であることを確認できます.
完了まで数時間かかる場合がありますので,ログを定期的に確認してください.


100% に達したら再度状態を確認します.

1
zpool status
1
2
3
4
  pool: Data
state: DEGRADED
...
sdd ONLINE 0 0 0

Data プールは DEGRADED のままですが,リシーヴが完了しているのでデータ保護レベルは維持されています.

4. エラーのクリア(必要に応じて)

プールの状態が DEGRADED のままで,エラーステータスが残ってしまっているため,以下でクリアします.

1
zpool clear Data

errors: No known data errors が表示されれば,正常です.


まとめ

今回,サーバのディスクが故障してしまったため物理ディスクの入れ替えを実施してみました.

ZFSは新しいファイルシステムのため,情報が少なく苦労しましたが,
以下のような流れでスムーズに交換が行えました.

  1. SMARTZFS ステータス で故障を検知
  2. zpool offline でデバイスをオフライン化
  3. zpool replace <プール> <旧デバイス> /dev/<新デバイス> で交換
  4. リシーヴ進捗を確認し,完了まで待機
  5. 必要に応じて zpool clear でエラーをクリア

新しいファイルシステムだけあって抽象化度合いが高く,復旧の難易度は低めに感じました.
今回,数分のダウンタイムで交換することができましたが,ホットスワップベイを使用していれば無停止でも交換が可能だと思います.

以上,参考になれば幸いです.

Author

fuchse-ohren

Posted on

2026-02-05

Updated on

2026-03-11

Licensed under

コメント