SUNのハードディスクのミラー化 (2)

<−戻る

 

 ミラーが完了したので,実際に障害が起きたときの復旧の仕方を書きます.私が経験した過去の障害は,データ領域とブート領域のディスクの故障でした.ブートディスクの障害から復旧できれば,データ領域,/userやswap領域などの障害からは復旧の手順は途中を省くだけなので考慮できると思います.

 テスト系のマシンがあれば,テスト系で十分テストをして,障害からの復旧手順を確かなものにすることをお勧めします.日ごろから練習をしておけば,実際に障害が起きても,あわてずにすみます.また,障害はある程度は予想できますが,マシン個別の設定や障害の程度によって復旧手順は変わってくることも考えられます.

1.ディスクの障害と思われる現象が発生したら"metastat"コマンドで確かに障害であることを確認します.通常は"State: Okey"のところが,別の文字列になっています.ブートディスクの障害の場合には,シャットダウン後にブートしないという現象になるかもしれません.私の場合にはブート後に"drive not ready"で止まってしまう状態になりました.このときには,もう一台のディスクでブートを試みます.OKプロンプトから

boot <デバイス名>

デバイス名はたとえば "/pci@4,4000/scsi@4,1/disk@2,0" このような文字列です.デバイスのエイリアス名が登録されていれば,"boot disk1"のようなコマンドでブート可能です.このデバイスのエイリアスを確認するためには,"devalias"コマンドです.このために,通常動作しているときに,ミラーの予備側のブートデバイス名はどこかに記録しておくと良いと思います.立ち上がったら,"metastat"でディスクの障害を確認します.

2.立ち上げれば,ミラーリングしているので,マシンは一応動作します.障害の個所も限定できたので,復旧の目安は立つと思います.メンテナンスの時期や期間,ユーザへのリリース方針などを関係者に知らせたり相談したりします.1.の処理に時間がかかるようであれば,先に障害の確認中であることを連絡しておくことも考えれられます.ホットスワップのディスクが定義されて,きちんと動作していれば,2重化はされていると思いますので,あわてる必要もないかもしれません.心配ならば,この時点でバックアップを取ることも考えられます.

3.メンテナンスできるようになったら,一度サーバを落として,障害のディスクを交換します.できれば,同じ型番のディスクが良いと思いますが,前より大きな容量のものであれば大丈夫でしょう.必要なら"boot -r"で新しいディスクを認識させます.

4.OSが立ち上がったら,"format"コマンドによって,新しいディスクを元のディスクと同じ様にパーティションを切ります.パーティションが出来上がったら,"metareplace"コマンドで障害を復旧させます.

metareplace -e <連結デバイス名> <破損ディスクのデバイス名>

これは,たとえば"metareplace -e d20 /dev/dek/c0t0sd0s0"の様に行います.ホットスワップが無く,ディスクが予備に自動で切り替わっていなければ,ミラーを作り直す方法でも復旧できますが,ホットスワップしていた場合この方法が良いと思います.

5.あとは,自動で回復が行われます."metastat"で回復状況を確認して復旧となります.ブートディスクが障害だった場合には,最後にもう一度リブートして正しくブートできるかどうか,確認した方が良いでしょう.さらに,必要ならこのサーバで稼動しているサービスなど正しく動作するか確認します.確認ができたら,最後に関係者に復旧の連絡をします.

 

<−戻る

Last Update:03/05/13 , Wasabi