さて、なんとかSoftwareRAIDを構築することはできました。
しかしRAIDを構築することができても、実際に障害が発生したときに対応ができないといけません。
今回は仮想障害発生時の対応を調査したいと思います。
現在の構成は、
なのでad5に物理的障害を発生させます。

こんな感じで思いっきり外にでているので、電源を引っこ抜きます。
はい。逝きました。
で、まずはStatusを正常にします。
COMPLETEされていれば正常な状態です。
この状態でディスクの交換を行います。
今回はテストで落としただけなので、そのままad5側のHDDに電源を入れます。
そのままでは何もステータスは変わらないので、まずはHDDの認識をさせます。
ヽ(´A`)ノアルェ?
無効なチャンネルだって。
う~ん、たしかにchannel2って書いてるのになぁって、軽く調べると
FreeBSDでは、ata2って記述しなければならないらしい。
ヽ(´A`)ノゲフゲフ
ヽ(´A`)ノワーイ ウマクイッタヨー
これでHotswap的な動きは問題ないことがわかりました。
その他、リビルド中に再起動や一個で起動中に再起動などしても問題ありませんでした。
ヽ(´A`)ノ.。oO(ふぅ。これでひと段落だな)
明日は最後の仕上げの状態監視について調査します。
しかしRAIDを構築することができても、実際に障害が発生したときに対応ができないといけません。
今回は仮想障害発生時の対応を調査したいと思います。
現在の構成は、
# atacontrol list
ATA channel 0:
Master: no device present
Slave: no device present
ATA channel 1:
Master: no device present
Slave: no device present
ATA channel 2:
Master: ad4SATA revision 2.x
Slave: ad5SATA revision 2.x
# gmirror status
Name Status Components
mirror/gm0 COMPLETE ad4
ad5
なのでad5に物理的障害を発生させます。

こんな感じで思いっきり外にでているので、電源を引っこ抜きます。
# gmirror status
Name Status Components
mirror/gm0 DEGRADED ad4
はい。逝きました。
で、まずはStatusを正常にします。
# gmirror forget gm0
# gmirror status
Name Status Components
mirror/gm0 COMPLETE ad4
COMPLETEされていれば正常な状態です。
この状態でディスクの交換を行います。
今回はテストで落としただけなので、そのままad5側のHDDに電源を入れます。
そのままでは何もステータスは変わらないので、まずはHDDの認識をさせます。
# atacontrol list
ATA channel 0:
Master: no device present
Slave: no device present
ATA channel 1:
Master: no device present
Slave: no device present
ATA channel 2:
Master: ad4SATA revision 2.x
Slave: no device present
# atacontrol detach 2
atacontrol: Invalid channel 2
ヽ(´A`)ノアルェ?
無効なチャンネルだって。
う~ん、たしかにchannel2って書いてるのになぁって、軽く調べると
FreeBSDでは、ata2って記述しなければならないらしい。
ヽ(´A`)ノゲフゲフ
# atacontrol detach ata2
# atacontrol list
ATA channel 0:
Master: no device present
Slave: no device present
ATA channel 1:
Master: no device present
Slave: no device present
ATA channel 2:
Master: no device present
Slave: no device present
# atacontrol attach ata2
Master: ad4SATA revision 2.x
Slave: ad5SATA revision 2.x
# gmirror status
Name Status Components
mirror/gm0 N/A N/A
mirror/gm0 COMPLETE ad4
# gmirror insert gm0 ad5
# gmirror status
Name Status Components
mirror/gm0 DEGRADED ad4
ad5 (0%)
ヽ(´A`)ノワーイ ウマクイッタヨー
これでHotswap的な動きは問題ないことがわかりました。
その他、リビルド中に再起動や一個で起動中に再起動などしても問題ありませんでした。
ヽ(´A`)ノ.。oO(ふぅ。これでひと段落だな)
明日は最後の仕上げの状態監視について調査します。
再起動してもマウント失敗するので、ヽ(´A`)ノ.。oO(あるぇ?)な感じでしたが、原因がわかりました。
としなければいけないところを、
としてました。
ヽ(´A`)ノアウアウアー
なんたる凡ミス。
ad4をgm0に書き直しただけで満足してました。
修正して再起動すると普通に起動しました。
やっとミラーリングができます。
やったよ。リビルドが始まったぁ。
30-40分ぐらい待つとメッセージログに、
と出てくるのでこれで構築完了。
ヽ(´A`)ノ「できましたぁ」
(`・ω・´)「もうOKだな。すぐ使おう」
ヽ(´A`)ノ「ぁぅ。構築ができただけで、まだ動作テストができてません」
(`・ω・´)「ふむ。じゃ、よろしく」
ヽ(´A`)ノ「はい。がんばりますデス……」
作ったら終わりじゃなく、次はHotswap的な動作が可能かどうかを調べる予定です。
# edit /mnt/etc/fstab
Device
/dev/mirror/gm0s1b
/dev/mirror/gm0s1a
/dev/mirror/gm0s1e
/dev/mirror/gm0s1d
としなければいけないところを、
Device
/dev/gm0s1b
/dev/gm0s1a
/dev/gm0s1e
/dev/gm0s1d
としてました。
ヽ(´A`)ノアウアウアー
なんたる凡ミス。
ad4をgm0に書き直しただけで満足してました。
修正して再起動すると普通に起動しました。
やっとミラーリングができます。
# atacontrol list
ATA channel 0:
Master: no device present
Slave: no device present
ATA channel 1:
Master: no device present
Slave: no device present
ATA channel 2:
Master: ad4SATA revision 2.x
Slave: ad5SATA revision 2.x
# gmirror insert gm0 ad5
# gmirror status
Name Status Components
mirror/gm0 DEGRADED ad4
ad5 (0%)
やったよ。リビルドが始まったぁ。
30-40分ぐらい待つとメッセージログに、
GEOM_MIRROR: Device gm0: rebuilding provider ad5 finished.
と出てくるのでこれで構築完了。
# gmirror status
Name Status Components
mirror/gm0 COMPLETE ad4
ad5
ヽ(´A`)ノ「できましたぁ」
(`・ω・´)「もうOKだな。すぐ使おう」
ヽ(´A`)ノ「ぁぅ。構築ができただけで、まだ動作テストができてません」
(`・ω・´)「ふむ。じゃ、よろしく」
ヽ(´A`)ノ「はい。がんばりますデス……」
作ったら終わりじゃなく、次はHotswap的な動作が可能かどうかを調べる予定です。











