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を交換すると起動できなくなるバグがあるらしい。

情報としてはこの辺り。

とりあえず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を試すのが筋というものだ。

という訳で、 KB976042KB2507616 のWORKAROUNDを試す。

とりあえず、書かれている状況に比べればレジストリを普通にGUIで触れる分楽だろうと踏んで、書かれている通り(とはいえVirtualBox上から)レジストリの修正、再起動、再度修正、再起動...。

と、試してみたが、どちらも状況は変化しなかった。

「もう諦めたほうが良いだろう。←イマココ」状態になった。

簡単に検索したところ、少々前の情報だが、こんなこと言ってる人も。

こうなると、新たな問題として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