LSILogic RAIDのディスク交換をMegaCliを使って行う場合の手順メモ


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'

Windows Hyper-V仮想マシン上のWindowsライセンス


Hyper-V環境上にWindows Server仮想マシンを導入するとき、「仮想マシンの自動ライセンス認証」という手法により、物理Windows Serverに適用されているプロダクトキーを使用したライセンス認証を行わせることができる。

Windows Server 2012R2ベースのドキュメント「Automatic Virtual Machine Activation

とりあえず現状認識しているライセンスの確認は「slmgr /dlv」を実行することで確認出来る。

ライセンスの適用は「slmgr /ipk ライセンスキー」で適用できる。

MCTの憂鬱「仮想マシン自動ライセンス認証に関して」を見ると、ホストWindows ServerのアプリケーションログにイベントID 12310 として「仮想マシンの自動ライセンス認証要求」のログが出るらしい。

手元に評価版環境しかなかったので実機検証はできず

Java7のアップデートでiLO,iDRAC,IMM,iRMCが動かなくなる



2014/01/14公開のJava 7 Update 51で、ブラウザ経由のJava AppletおよびJava Web Start Javaプログラムの動作にあたり、「公的機関の署名付JAR」と「Permissionsアトリビュート」が必須と変更されました。
これが欠けているものは、標準設定では起動できなくなりました。

えぇ、「警告が表示され、確認を要求される」というレベルではなく、「起動できない」という強制策です。

対処するには、以下のどちらかを行う必要があります。
・Java Applet/Javaプログラム側に署名付きJAR+アトリビュート設定を施すアップデートを行う
・Java7の設定画面で例外サイトリストに該当するURLを登録する

この変更自体は、2013/09/09に「2014年1月リリース予定のJava7 Update51で変更するよ」と予告されていた(New security requirements for RIAs in 7u51 (January 2014))んですが、各社共に対応が全然間に合ってないようです。

今のところ、富士通iRMC、hp iLO、DELL iDRACで現象が発生しているようです。
おそらくIBM IMMでも現象が発生しているのではないかと思います。
(Citrix XenServerのコンソール画面とかも駄目です)

・富士通の公式告知:[重要]2014年1月14日公開のJava 7 Update 51の適用時のご注意について(お知らせ)
 対応版は今後リリース予定。とりあえず例外サイトリストに登録してくれ

・hpのフォーラム書き込み:iLO Java Remote Console: Upcoming JRE 1.7u51
 iLO2 v2.23, iLO3 v1.65, iLO4 v1.32 で使えねーよ
 例外サイトリストに登録したよ

・DELLのフォーラム書き込み:Unable to Launch iDRAC After Updating Java to 7u51
 例外サイトリストに登録したよ


・hpの公式告知:Advisory: (Revision) HP Java Integrated Remote Console (JIRC) or Java based Virtual Media Applet – Will Not Be Launched on ProLiant or Integrity Servers Using Java 7 Update 51
 以下のiLOバージョンにアップデートすることで回避することができる。
  ・iLO 2 Firmware Version 2.23 (or later)
  ・iLO 3 Firmware Version 1.65 (or later)
  ・iLO 4 Firmware Version 1.32 (or later).

・IBMの公式告知:
IMM, IMM2, or RSA Remote Control may require java security edit to start – IBM System x

(日本語版:IMM、IMM2、RSAに搭載されているRemote Control機能の起動に、Javaセキュリティーの編集が必要になる場合があります)
 例外サイトリストに登録しろ、としか書いてない。

・DELLはどうやらiDRAC7 1.51.51で対応みたい?
フォーラム:iDRAC7 virtual console (Java) connection failed – PowerEdge R620

しまったぁ!?



IBM x3550M3のIMMをコマンドで操作することについていろいろ確認中。

マニュアルを見ないで「help」を見てやってるから、失敗した・・・

system>help
? -- Display command list
clearcfg -- Resets the IMM to its default settings
clearlog -- Clear IMM event log
clock -- Display/set date, time, GMT offset, and dst setting
console -- Exit CLI, attach to serial console
dhcpinfo -- View DHCP server assigned settings
exit -- Exit CLI (log off)
fans -- Displays the fan speed for all system fans
help -- Display command list
history -- Display history of last 8 commands
identify -- Control system locator LED
ifconfig -- Ethernet configuration
ldap -- LDAP configuration
ntp -- Displays and configures the Network Time Protocol
passwordcfg -- Password configuration
portcfg -- Serial port configuration
power -- Control server power
readlog -- Displays the IMM event log, five entries at a time
reset -- Reset server
resetsp -- Reset IMM
slp -- View/edit SLP parameters
srcfg -- Serial redirection configuration
ssl -- SSL configuration
syshealth -- System Health
temps -- Display system temperatures
timeouts -- Server timeouts configuration
update -- Update firmware
usbeth -- Inband (Ethernet over USB) interface
users -- User profile configuration
volts -- Displays all the voltages and voltage thresholds
vpd -- Display VPD
system>

まぁ、いろいろ実行していって、最後にIMMを再起動させようかと思って実行しちゃったのが「reset」
えぇ、IMMだけ再起動するのは「resetsp」の方なんですよ。

そんなわけで、システムの強制再起動が実施されてしまいました。

こつーん