2009年9月10日木曜日

NVIDIA RAID1 の障害対策と準備

注意
2009-09-10現在、障害に実際には遭遇していないため、
SATAケーブルをわざと引っこ抜いた後、
RAID1アレイを回復するテストをした実績を元に作成しています。

したがって、妄想トラブルに対する妄想トラブル対策で、誤りを含む可能性が高いです。


前提
1.SATA1+SATA2でRAID1を構成しており、各HDDをDISK1 DISK2と呼ぶ
2.当該RAIDにOS(Vista64bit)が入っている
3.HDDがハード的に完全に破壊され、どうやってもBIOS認識から不可能な障害を「完全破損」
HDDがハード的に一部破壊され、クラスタエラー等の問題が発生した障害を「一部破損」
HDDのハード的には問題ないが、degradedになってしまった場合を「RAID障害発生」
と呼ぶことにする。

参考:
http://www.dell-faq.com/detail.asp?baID=1&FAQID=101581
[XPS600 RAID アレイ構築/削除方法
よくあるトラブルと対処方法(劣化したRAID レベル1 構成の再構築)]

準備
1.degradedの原因と過程次第ではSATA2側のMBRが、
Windowsのブートローダにより破壊されてしまう恐れがあるため、
KNOPPIX等で MBRのバックアップを取っておく。
C:\opt\backup\for_hgst320gb_nvraid1_recover\mbr_sda_eq_sdb.dd
にバックアップを保存しておいた。

障害原因:DISK1 と DISK2 が 完全破損
1.あきらめるしかない。日々のバックアップを探しましょう

障害原因:DISK1 or DISK2 のみ完全破損
1.障害が発生したDISKがどちらかはっきりしているのが、
不幸中の幸いという状態。新しいDISKを購入し、交換する。
あとは再起動すれば、勝手にミラーリングが始まる。

障害原因:"DISK1 or DISK2 のみで 一部破損" or "RAID障害発生"
1.この場合、起動時のRAIDリスト表示で
degraded のアレイが二つという扱いになり
DISK1が c:\ 、DISK2が d:\ となって起動する場合がある。
その時、DISK2のMBR(のみ)が破壊されてしまい、DISK2は単体で起動できなくなる。
CHKDSK NVRAIDのログ(あるのかな・・) badblocks 等でなんとか
どちらに障害があるのか調べる。

 幸い、片側がエラー、片側がdegradedの時は、エラー側を調べるなり
諦めるなりすれば良い。

2-RAID障害だった場合.
いつのまにかdegradedになっていたとしても、
その後のファイル更新はc:\であるDISK1に反映されているはずであることから、
DISK2のアレイを削除し、ミラーリングアレイの再構築をすれば済む。

2-障害がDISK2 の場合.
いつのまにかdegradedになっていたとしても、
その後のファイル更新もc:\であるDISK1に反映されていることから、
DISK2を新しいDISKに交換すれば済む。
ミラーリングもおそらく勝手に始まる。

2-障害がDISK1 の場合.
いつのまにかdegradedになっていたとすると、
その後のファイル更新はc:\であるDISK1にのみ反映されていることから
ヤッカイである。

(以下は妄想度が高い。ただし、
「d:\で認識された時、DISK2のMBRが破壊されるが、バックアップで回復すると
DISK2でVistaが起動可能である」というのはテストした。)
1.まず、DISK1をPCから外す
2.DISK2をSATA1に繋ぎかえ、KNOPPIXにより破損したMBRを回復させる
3.DISK1をSATA2に繋ぎ、BIOSでSATA2のRAIDをdisableにした後、
DISK2をc:\として起動する。
そして、DISK1にだけ入っている日付の新しいデータをDISK2にコピーをとる。
4.DISK1をPCから外して保管、新しく購入したDISKに交換する。
5.自動か手動かで、Windows起動後にミラーリング処理をする

その他.
各Diskの後ろから1024byte目から512byte分に、nvidia_raidのデータが書き込まれる。
したがって、ここをZeroで埋めるとnvidia_raid的にはnewdisk扱いになる。
また、BIOSで個々のディスク情報を一切保存していないようで、
例えば、マザーボードが故障したときに、同型番の別マザーボードを持ってきて、
各SATA端子のRAID Enable/Disableさえ一致させれば、RAID部分は復旧となるようだ。
MediaShield utilityは安易にいじらない方がよい。むしろ、一切。




0 件のコメント:

コメントを投稿