(ヽ´ω`) < 助けてほしいマン

わからないことを助けてほしいマンが書くブログ

(ヽ´ω`) < Windows 2003_x64 on ESX 3.5 on ESXi 5.1

(ヽ´ω`) < なんでこんなことに…

ESXバージョンアップのテスト環境構築のために、ESX on ESXの環境を作ることになった。珍しいながらも無いわけではないシチュエーション。

面倒なことに、そこにWindows 2003 Serverの64bit版を入れる時にエラーが出た。

というか、Windowsに限らず64bit版のOSを入れようとするとエラーが発生。

(ヽ´ω`) < 環境について

  • ベースになるESXiはバージョン5.1
  • 仮想でインストールするESXはi無しの3.5
  • 物理サーバのCPUは Intel(R) Xeon(R) CPU E5645@2.40GHz

(ヽ´ω`) < 作業作業

  1. ESXi5.1(BaseESXi)は普通にインストール
  2. ESXi5.1(BaseESXi)のコンソール画面[Troubleshooting Options]からESXi ShellとSSHを有効にする
    vSphere 5.0 の覚え書き - (3) TeraTerm で ESXi に SSH ログイン - 仮想化でプリセールスしてるSEの一日
  3. SSHのChallenge&Responseで接続して/etc/vmware/configに以下の行を追加
    vhv.enable = TRUE
    にほんごVMware: ネステッドESXi 5.1 は、vhv.enable = TRUE | VMware Communities
    ESXi5.0では vhv.allow = TRUE になるので注意
    Running Nested VMs | VMware Communities
  4. ESX 3.5を接続するネットワークの設定を無差別(Promiscuous mode)にしておく
    ESX on ESX 構築時の注意点(メモ) - えこ日記
  5. ESX 3.5(VirtualESX)をインストール
  6. ESX 3.5(VirtualESX)上に仮想マシン(Win2003x64)を作成
  7. 作成した仮想マシン(Win2003x64)を右クリックして[設定の編集] [詳細]下の[全般]、[構成パラメータ]をクリックして、次の行を追加
    vmx.allowNested = TRUE
    この設定をしないと、仮想マシンの電源をいれることができない
    Running Nested VMs | VMware Communities
  8. Win2003x64をインストール

(ヽ´ω`) < これなにやってんの?

要点として
ESX on ESX環境で64bitOSをインストールする場合、ベースとなるESX側で、vhv.enable = TRUEを設定する必要がある。

なんのためにこんな設定が必要かというと

Most hypervisors require hardware-assisted virtualization (HV). VMware products require hardware-assisted virtualization for 64-bit guests on Intel hardware.

とあるように、ESX上で64bitOSを動作させるためにはHV機能が必要となる。
が、ESX上に配置するゲストOSは、デフォルトではHV機能が無効となっている。
(Workstation 8, Player 4, Fusion 4, ESX5までは、そもそも仮想環境でのHV機能の提供自体が無かった模様)
そのため、上記作業でHV機能を有効にすることでESX on ESXで64bitOSの動作を可能にしている。

7の作業は、ESXonESX上のVMは、デフォルトで電源が入れられないようになっている。 そのため、ネストしたハイパーバイザー上でのVMの起動を明示的に許可している。

(ヽ´ω`) < ちなみに

WebクライアントバージョンvSphere5.1では、標準のUIから上記設定を有効にすることができるとの記述がある。

To enable virtualized HV, use the web client and navigate to the processor settings screen. Check the box next to "Expose hardware-assisted virtualization to the guest operating system."