10月4日(金)の夜に特大の雷により瞬停、その影響でサーバーが再起動してしまったが、その後に gmirro の RAID-1 が勝手にリビルドしていた。
ここまではよかったのだが、不幸にもアクティブな HDD は不良セクタが発生してしまったディスクで、無事な HDD がリビルド対象になってしまっていた。
それに気がついたのがしばらくしてからだったので慌てて止めたが、途中でリビルドを止めたのでどこがどうなっているかわからないのが現状という状態。
予備の HDD は以前瞬停を食らったときに買ってきていた 1TB の HDD が有ったのでそれを使ったのだが、どうもその時に使った HDD で RAID-1 が組めない。
普通なら
# sudo gmirror clear ada2
とかすればメタデータを消去できるのだが今回はダメ。
更にはこの状態で
# gmirror label -v mirror0 ada1
としても「mirror0 は既に使われてるで」とエラーが出て他の名前でしか組めない。
おかしいと思って
# gmirror dump ada1
としてみると、どうも過去に gmirror で組んだ RAID-1 のメタデータが残ったままになっている。
そこで、loader.conf で自動的にロードされている geom_mirror を一旦止めてシングルユーザーモードで起動。
するとなぜかメタデータが消えたので
# gmirror load -v
でモジュールをロードして
# gmirror label -v mirror0 ada1
したら無事に RAID-1 を組む準備が出来た。
あとは
# gmirror insert -v mirror0 ada2
でディスクを追加したら勝手にリビルドが始まるのでそのまま放置。
この後は停電時の再起動で勝手にリビルドするのが困るので、
# gmirror configure -F -v mirror0
で勝手にリビルドするのを止める。
止まったかどうかについては
gmirror dump ada1
Metadata on ada1:
magic: GEOM::MIRROR
version: 4
name: mirror0
mid: 239193923
did: 779873358
all: 2
genid: 0
syncid: 1
priority: 0
slice: 4096
balance: load
mediasize: 500107861504
sectorsize: 512
syncoffset: 0
mflags: NOFAILSYNC
dflags: NONE
hcprovider:
provsize: 1000204886016
MD5 hash: 6ebcb89bc3fd056f5feda8878f2707ac
で確認出来る。
ちなみに新しいディスクを insert すると勝手にリビルドが始まるが、自身で rebuild を明示的に指示してリビルドを行う、つまり勝手にリビルドを行わせない場合は "-n" オプションを付ける。
# gmirror configure -n -v mirror0
# gmirror dump ada1
(省略)
syncoffset: 0
mflags: NOAUTOSYNC
dflags: NONE
└ G兄
└ G兄
└ G兄
└ G兄
└ G兄
└ G兄
└ G兄
└ G兄
└ 山銀
└ G兄