iSCSI BootしていたWindows Server 2008 R2を救えなかった時の話
Posted on 2012/01/26(Thu) 00:28 in technical
先日、ストレージサーバのNICを交換した。
契機は、messagesに"kernel: em0: discard frame w/o packet header"が多発していたからだが、それはこの際無視。
そのNICの交換に合わせて、iSCSI Bootしている端末のSingle Port NIC(9400PT)もDual Port NIC(9402PT)に入れ替えた。
そしたらiSCSI BootしていたWindows Server 2008 R2が起動できなくなった。
その復旧を試みたけど諦めたという話。
主にVirtualBoxの話になるよ。
調べてみると、iSCSI Boot用のNICを交換すると起動できなくなるバグがあるらしい。
情報としてはこの辺り。
- http://support.microsoft.com/kb/976042
- http://support.microsoft.com/kb/2507616
- http://support.microsoft.com/kb/2344941
とりあえずhotfixを当ててみようと思う。
しかし、hotfixは普通にダウンロードできなくて、何故かCAPCHAを通してリクエストを出し、メールにURLが書かれて送られてくる。
1度アクセスするとトークンを消費して次からアクセス拒否される、とかそういうレベル。難儀だ。
さて、まずESXi4.1を使ってLUに直接アタッチする方式を試す。
とはいえ、LUに何の手心も加えていないので、仮想デバイス周りを調整してみてもBSoDを頂戴する。さっさと見限って別の環境へ。
7を使ってVirtualBoxを使って起動を試みることに。
ホストOSでiSCSI接続を行い、コンピュータの管理から見えるようになった所で、
C:\Program Files\Oracle\VirtualBox>VBoxManage.exe internalcommands createrawvmdk -filename C:\misaka-nw-01.vmdk -rawdisk \\.\PhysicalDrive1
のようにして、RAWデバイスに対するマッピングvmdkファイルを作成する。
これを仮想HDDとして、SATAコントローラ(AHCI)に接続することで、LUに変更を加えること無く起動を確認することができた。
IDEだとBSoD頂戴する、
上記コマンドのオプションとして、 "-partitions 1,2"や"-relative"といったものがあるが、前者はパーティション別のアクセス制限を行う用途で、後者はLinux/FreeBSDで書き込みを許可するオプションだった。
起動して状況を確認できるようになったのはいいが、ディスクに書き込めないのでhotfixを当てられない。
どうも、調べてみるとVista以降はVirtualBoxでRAWデバイスをアタッチした場合に書き込みが行えないらしい。
マニュアルに書いてあった: http://www.virtualbox.org/manual/ch09.html#rawdisk
仕方が無いので、転がっていたXPから試すと、書き込みも正常に行えるようになった。
ひとまずhotfixを当てて動作を確認してみるが、シャットダウンしてiSCSI Bootし直すと、やはり立ち上がらない。
動きとしてはこんな感じ。(最初からずっとこういう動きをする。変化なし)
- iSCSI LUの認識を正常に完了(DHCP経由)
- 前回Windowsが正常にシャットダウンされませんでした以下略
- Windowsを通常起動 → HDD「ガリガリガリガリー」
- プログレスバー「はいよー」HDD「...」
- NICのLEDが消灯
- 以後プログレスバーが動いてるだけで、いずれタイムアウトして再起動する
しかしまだ諦めるには早い。KBに書いてあるWORKAROUNDを試すのが筋というものだ。
という訳で、 KB976042 と KB2507616 のWORKAROUNDを試す。
とりあえず、書かれている状況に比べればレジストリを普通にGUIで触れる分楽だろうと踏んで、書かれている通り(とはいえVirtualBox上から)レジストリの修正、再起動、再度修正、再起動...。
と、試してみたが、どちらも状況は変化しなかった。
「もう諦めたほうが良いだろう。←イマココ」状態になった。
簡単に検索したところ、少々前の情報だが、こんなこと言ってる人も。
- http:/technet.microsoft.com/en-us/library/ee619722(WS.10).aspx
- http://www.experts-exchange.com/OS/Microsoft_Operating_Systems/Windows/Q_27544003.html
こうなると、新たな問題としてM/B故障、NIC故障時の正しい対応はどうすればいいのか分からなくなる。
とりあえず、現環境でも生き残っているiSCSI BootなWindowsにはhotfixを当ててみるつもりだが、今後も同様の問題が起こるようであれば、WindowsにおけるiSCSI Bootの使用は考えなおす必要があるかもしれない。
KVM用途のLinuxやXenServerではこういったことは起こらないのだろうか。(ESXiはどうせHardware IDでコンフィグリセットするまで使えなくなるから、個人的にはどうでもいい)
あと、ネット上の諸先輩方は、NICの交換に伴うWindows Server 2008 R2の挙動について、どこまで警戒しているのだろうか...。
悩ましーです。
余談。
VirtualBoxから直接iSCSI Bootすることも出来る。
ちなみに、この接続方式でもプログレスバーが動き続けて諦める動作をする(キャプチャを取ったが定期的なNOPしか流れていない)
C:\Program Files\Oracle\VirtualBox> VBoxManage storageattach misaka-nw-01 --storagectl "SCSI コントローラ" --port 0 --device 0 --type hdd --medium iscsi --server 192.168.122.31 --target iqn.2010-01.net.ainoniwa.istgt:misaka-nw-01 --lun 0 iSCSI disk created. UUID: 0c6487fa-6d49-4049-aa81-b871b9ab3de9