パスワードを忘れた? アカウント作成
910969 journal
仮想化

Ab.の日記: Hyper-V on ESXi 成功 GPU 使用失敗 2

日記 by Ab.
まず仮想化ゲストに GPU passthrough を設定してみました。
  1. vSphere Client の「構成」→「詳細設定」から GPU 及び付属の HDMI Audio device を DirectPath I/O デバイスに設定
  2. Windows Server 2008 R2 SP1 仮想マシン作成
  3. 仮想マシンに PCI デバイスとして先ほどの GPU と HDMI Audio を追加
    (Radeon 6850 ですがGPUだけを追加してドライバを入れると起動時にBSoDします)

この状態で仮想マシンのRAMを4Gにして起動すると途中で勝手に power off 状態になってしまいました。
イベントログを確認してみるとこんなメッセージが出ていたので、仮想マシンの構成パラメータに追加

esxi2 からのエラー メッセージ:PCI パススルー 1:0.0:ゲストは、32 デバイス ページ (ベース アドレスは 0x 730400) を、メイン メモリが占有する範囲に マップしようと しました。これは、PCI ホールの範囲外です。pciHole.start =「2853」を構成ファイルに追加し、仮想マシンをパワーオン してください。

で、電源を入れてみてもやはり起動しません。
ACPI がどうとかで BSoD してしまします。
色々検索したところ、仮想マシンのRAMを2Gにしろとのアドバイスを発見して設定変更してみたところ無事起動。
pciHole.start の値が6000を超えている環境では6GのRAMでも起動するようなのですが、 pciHole.start を適当に変えると2Gでも起動しないのでマップされるアドレスが環境によって固定なのかもしれません。
(値が2853 なので 2.8G位までは大丈夫なのかもしれませんが)
2Gでは RemoteFX な RemoteApp のVDIサーバーとしては使えないなとは思いつつも Windows Server に Hyper-V を追加してみます。
が、ここでハードウェアがサポートしていないとのメッセージ。
ハードウェアに VT-x, VT-d, NX bit のサポートがあるので問題なく nested VM 出来るかと思ったのですが securable.exeで確認してみたところ Hardware Virtualization が No と出ています。
事前に検索して hypervisor.cpuid.v0 = "FALSE" は設定していたのですが、どうも上手く行っていないようです。
それでもきっとどこかで有効化する方法があるはずと検索したところ http://www.veeam.com/blog/nesting-hyper-v-with-vmware-workstation-8-and-esxi-5.html がヒット。
記事の後半に ESXi5 での設定方法が書かれていました。
まず ESXi に ssh で入って

echo 'vhv.allow = "TRUE" ' >> /etc/vmware/config

これは ESXi を bug fix 等で update すると設定が消し飛びそうですね。
多分消えたらまた追加で良いでしょう。
忘れていると悲惨なことになりそうですが。
次に仮想マシンの構成パラメータに以下の二つを追加

monitor.virtual_exec = "hardware"
hypervisor.cpuid.v0 = "FALSE"

そして仮想マシンの「CPU/MMU仮想化」の設定を明示的に VT-x/AMD-V + EPT/RVI に設定(必要だろうと思って設定済みでしたが)
さらに CPUIDマスクの Level1 ecx を ---- ---- ---- ---- ---- ---- --H- ----に設定せよ、と。
EAX=1 での CPUID の ECX の5bit目というと VMX フラグかな。
調べてみると OS default 設定ではXRRH XHH0 HH0H H00R 00HH 00H0 0000 00HHという事で思いっきりマスクされています。
つまり仮想マシンからは VMX 機能の無いCPUに見えてしまっていたのですね。
という事でこれらの設定を行った後起動すると Windows Server に Hyper-V 機能を追加できました。
この状態で Hyper-V ゲストに Windows7 の仮想マシンを作って OS をインストールしてみます。
仮想ディスクを ESXi ゲストの Windows Server 上の vhd にしてしまったためインストールが非常に遅いです。
が、これはいざとなったら iSCSI initiator 経由で iSCSI ボリュームを物理ディスクとして仮想マシンにくっつければある程度はなんとかなるでしょう。
そしてとりあえず nested VM の Windows7 も起動を確認。

次に Windows Server から GPU を使えるようにしてみます。
とは言っても passthrough デバイスは追加済みで device manager を見ても VGA compatible なんたらかんたらと認識されているので Radeon のドライバを普通にインストールするだけです。
そして仮想マシン再起動…あれ?起動途中で黙っちゃったぞ?
vSphere Client も反応なし。
ESXi のマシンにモニタを繋いで見てみるとカーネル内で死んで止まっていました。
さてこれは設定やらなんやらでどうにかなるのかな。
とりあえず RemoteFX server on ESXi の道は険しいようです。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

目玉の数さえ十分あれば、どんなバグも深刻ではない -- Eric Raymond

読み込み中...