zfsのRAID-Z2でディスク交換

概要

RAID-Z2を構成しているディスクが壊れたので、交換しようとしたら思いのほかえらく苦労した話。
自分はこれで治りましたが、実行はあくまで自己責任でお願いします。

環境: Ubuntu(16.04) ZFS on Linux

本題

zfs statusしたら/dev/sdfがお亡くなりになっていた。
AmazonのPrimeNowでHDDを購入。こういう時にスペアを用意していなくても2時間で届くのは本当に便利。
ちなみに、3TB x 6で組んでいるのだけど、今後増やしていこうと6TBのHDDを購入した。
それでもって/dev/sdfのシリアル番号を/dev/disk/by-idで確認しつつ交換。本来は最初から/dev/disk/by-idで設定しておけば良かったのだけど組んだ時には知らなかったのでご容赦を。

満を持して、replaceしてみる

エラーが出た。
この記事を参考に、gptラベルを設定して再チャレンジ。

またエラーが出た。
githubに全く同じエラーメッセージのissueがあったので、書いてある通りにしてもだめだった。
https://github.com/zfsonlinux/zfs/issues/1028

再起動してみたりを繰り返していたのだけど、sdfのことを忘れてもらうためにダミーファイルを挟んでやったらうまくいった。

zpool offline tank /root/dummyを急いで実行しないと本当にresilverされてしまうので気を付けてください。
/root/dummyはスパースファイルなので実際に10TBもの容量を食うことはありませんが、それ以下の容量のパーティションにも設置はできます。当然offlineにしないと膨れて恐ろしいことになると思います。

ダミーのファイルを使ったりしていて結構綱渡りな方法だと思いますので繰り返しになりますが自己責任で実行してください。
RAID-Z2だったのでまだ心に余裕がありましたが、RAID-Z1ならパニックでしたね、これ…。

カテゴリー: サーバ関連 パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です