iSCSI BootしていたWindows Server 2008 R2を救えなかった時の話

iSCSI BootしていたWindows Server 2008 R2がNIC交換で起動できなくなったのを復旧できなかった時の記録

はじめに

先日、ストレージサーバのNICを交換した。
/var/log/messageskernel: 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度アクセスするとトークンを消費して次からアクセス拒否される、とかそういうレベル。難儀だ。

復旧のトライ その1

さて、hotfixを当てるにしても、起動できないことには話が進まない。
まずESXi4.1を使ってLUに直接アタッチする方式を試す。

とはいえ、LUに何の手心も加えていないので、仮想デバイス周りを調整してみてもBSoDを頂戴する。さっさと見限って別の環境へ。
別端末のWindows 7を使ってVirtualBoxを使って起動を試みることに。

ホストOSでiSCSI接続を行い、コンピュータの管理から見えるようになった所で、

1
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が消灯
  • 以後プログレスバーが動いてるだけで、いずれタイムアウトして再起動する

復旧のトライ その2

しかしまだ諦めるには早い。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しか流れていない)

1
2
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
Hugo で構築されています。
テーマ StackJimmy によって設計されています。