IBM x3650サーバに入っているLSILogic RAIDカードにて、構成しているディスクが故障したので、ディスクを調達して交換したい。という話があったので、交換手順を確認した。
ついでに一般公開
参考文献
・やっ太郎ブログ:「Megacli64でディスク交換太郎」
・チラシの裏的なBlog:「【備忘録】MegaRAIDでのエラーHDD交換手順」
・IBM Docs:「2073-720 で障害予知機能 (PFA) イベントを報告する、障害が発生したドライブの取り替え」
・Qiita:「HW保守で使いそうなTips 〜ディスク周り〜」
(1) コマンドがある場所に移動
標準では /opt/MegaRAID/MegaCli/ にインストールされていて、PATHは通っていないことが多いので、ディレクトリ移動しておくと以降のコマンドが実行しやすい。
# cd /opt/MegaRAID/MegaCli/
#
(2) コマンド名確認
/opt/MegaRAID/MegaCli/に MegaCliもしくはMegaCli64があるかを確認
移行の手順はMegaCliだったものとして記載している
# ls -F
(3) RAID構成の状態を確認
Stateの状態を確認
# ./MegaCli -LDInfo -Lall -aALL
(4) 物理ディスクの状態を確認
# ./MegaCli -PDList -aALL
# ./MegaCli -PD List -aALL | egrep 'Slot|Firmware state|Inquiry|Enclo'
# ./MegaCli -PD List -aALL | egrep 'Slot|state|Data|Raw'
「Firmware state」がディスクの状態でFailedとなっているものが壊れている。
そのディスクについての「Enclosure Device ID」と「Slot Number」の値をこの後の手順で使うので記録しておく。
また「Inquiry Data」にあるディスク型番とシリアルが抜いたディスクとあっているかを確認出来るので、それも記録しておく。
(5) 壊れているディスクの場所を確認
壊れているディスクのLEDを点灯させて交換するディスクと、コマンドで指定する「 physdrv 」の指定が一致していることを、スロットのランプを点灯させて確認する。
下記コマンドを実行すると該当ディスクスロットのランプが点灯
# ./MegaCli -Pdlocate start physdrv[Enclosure Device ID:Slot Number] -a0
下記コマンドを実行すると該当ディスクスロットのランプが消灯
# ./MegaCli -Pdlocate stop physdrv[Enclosure Device ID:Slot Number] -a0
たとえば、Enclosure Device IDが252, Slot Numberが2の場合下記の様に実行する。
# ./MegaCli -Pdlocate start physdrv[252:2] -a0
# ./MegaCli -Pdlocate stop physdrv[252:2] -a0
(6) 壊れているディスクをオフラインにする
壊れているディスクをオフラインにする。
# ./MegaCli -PDOffline -PhysDrv [Enclosure Device ID:Slot Number] -a0
Enclosure Device IDが252, Slot Numberが2の場合下記の様になる
# ./MegaCli -PDOffline -PhysDrv [252:2] -a0
なお、壊れ方によっては、すでにオフライン扱いになっていて、このコマンドでエラーとなる場合がある。
(7) 欠落マークがついたRAIDがあるか確認する
6でエラーとなっている場合は、下記コマンドを実行した際に 「Array」と「Row」 といった情報が出力される。このArrayとRowの値はあとで使用します。
# ./MegaCli -PDGetMissing -aALL
6がエラーとなっていない場合は、Array/Rowの出力はないと思われます。
また、MegaCliコマンドのバージョンによっては、このオプションが存在せず、エラーとなる場合があるようです。その際はこの手順を飛ばします。
(8) 壊れているディスクに欠落マークを付ける
まだ壊れていることがきちんと認識されていない場合、壊れていることを確定させます。
# ./MegaCli -PDMarkMissing -PhysDrv [Enclosure Device ID:Slot Number] -a0
Enclosure Device IDが252, Slot Numberが2の場合下記の様になる
# ./MegaCli -PDMarkMissing -PhysDrv [252:2] -a0
MegaCliコマンドのバージョンによっては、PDMarkMissingオプションがないようです
その場合はこの手順を飛ばします。
また、6ですでに欠落マークがついたRAIDが認識されている場合もこの手順は不要であるはずです。
(9) 欠落マークがついたRAIDが認識されたことを確認する
欠落マークがついたRAIDが表示されることを確認します。
# ./MegaCli -PDGetMissing -aALL
この出力中の「Array」と「Row」の番号はあとで使用します。
PDMarkMissingオプションが実行できなかった場合、これも実行できない
と思います。その場合は飛ばします。
(10) 壊れているディスクを抜くことをRAIDコントローラに通知します
下記を実行して、指定したディスクを取り外すことをRAIDコントローラに通告します。
# ./MegaCli -PDPrpRmv -PhysDrv [Enclosure Device ID:Slot Number] -a0
下記の様に実行する
# ./MegaCli -PDPrpRmv -PhysDrv [252:2] -a0
なお、たぶん(6)の段階で欠落マークがついているような場合は、このコマンドを実行するまでもなくディスクが完全に壊れている、と認識されて、すでに抜けるような状態になっているようです。
(11) 壊れているディスクを物理的に抜く
(12) 1分ぐらい待つ
ここで待つのは気休めです。
RAIDコントローラの情報更新間隔がよくわからないので入れてますが、たぶん、すぐに実行しても問題ないような気がします・・・
(13) RAID構成/ディスク認識の状態を確認
ディスクの認識を抜いたことにより、RAID構成の状態が変わっているかを確認します。
# ./MegaCli -LDInfo -Lall -aALL
Stateの状態を確認します。(変わるのかどうかは把握していません)
次に、物理ディスクの状態変化を確認します。
# ./MegaCli -PDList -aALL
# ./MegaCli -PD List -aALL | egrep 'Slot|Firmware state|Inquiry|Enclo'
# ./MegaCli -PD List -aALL | egrep 'Slot|state|Data|Raw'
先ほど抜いたディスクに関する表示が消えているはずです。
(14) 新しいディスクを入れる
(15) RAID構成/ディスク認識の状態を確認
RAID状態が変わっているかを確認します。
# ./MegaCli -LDInfo -Lall -aALL
Stateの状態を確認します。
また、RAID構成が新しく認識されていたりしないか確認します。(中古ディスクに情報が残っている場合に発生する可能性がある)
交換したディスクが認識されているかを下記のコマンドで確認します。
# ./MegaCli -PDList -aALL
# ./MegaCli -PD List -aALL | egrep 'Slot|Firmware state|Inquiry|Enclo'
# ./MegaCli -PD List -aALL | egrep 'Slot|state|Data|Raw'
(16) 再構築が開始されているかを確認する
RAIDコントローラの設定および交換したディスクの状態によっては、ディスクを交換した時点で、自動的に再構築が開始されます。
下記コマンドで状況を確認します。
# ./MegaCli -pdrbld -showprog -physdrv [Enclosure Device ID:Slot Number] -a0
実行例は下記のようになります。
# ./MegaCli -pdrbld -showprog -physdrv [252:2] -a0
再構築が始まっている場合は progressの数値が徐々に増加していくはずです。
(17) RAIDにディスク交換されたことを認識させる
交換したディスクがスペアディスクなどとして認識されなかった場合は、手動で設定します。
# ./MegaCli -PdReplaceMissing -PhysDrv [Enclosure Device ID:Slot Number] -Array0 -row0 -a0
手順7か手順9で確認したArrayとRowの番号を使ってコマンドを実行します。実行例は下記のようになります。
# ./MegaCli -PdReplaceMissing -PhysDrv [252:2] -Array0 -row0 -a0
PDMarkMissingオプションが実行できなかった場合、これも実行できない
と思います。その場合は飛ばします。
(18) 再構築開始
手動で再構築開始を実行する場合は下記コマンドを実行します。
# ./MegaCli -PDRbld -Start -PhysDrv [Enclosure Device ID:Slot Number] -a0
下記の様に実行します。
# ./MegaCli -PDRbld -Start -PhysDrv [252:2] -a0
(19) 再構築状況を確認
再構築の状況を確認します。
# ./MegaCli -pdrbld -showprog -physdrv [Enclosure Device ID:Slot Number] -a0
下記の様に実行します。
# ./MegaCli -pdrbld -showprog -physdrv [252:2] -a0
(20) RAID構成/ディスク認識の状態を確認
RAID状態が変わっているかを確認します。
# ./MegaCli -LDInfo -Lall -aALL
Stateの状態を確認します。おそらくrebuildなどのステータスになっているかと思います。
また、交換したディスクが認識されているかを下記のコマンドで確認します。
# ./MegaCli -PDList -aALL
# ./MegaCli -PD List -aALL | egrep 'Slot|Firmware state|Inquiry|Enclo'
# ./MegaCli -PD List -aALL | egrep 'Slot|state|Data|Raw'