VMware ESXi 上でKVMを動作させる時に注意すること

KVM on VMware ESXi の環境で注意するちょっとしたメモ。

【環境】
VMware ESXi 5.1u2

CPUの仮想化支援機構

KVMには、CPUの仮想化支援機構(Intel-VTやAMD-V)が必要。

ESXiがインストールされているハードウェアが仮想化支援機構に対応しており、BIOSで有効化されている必要がある。

その上で、仮想マシンに対して仮想化支援機構を提供するよう、設定を変更する(デフォルトでは無効)。

vSphere Web Clientで、仮想マシンを選択し、「設定の編集」→「仮想ハードウェア」→「CPU」→「ハードウェア仮想化」→「ハードウェアアシストによる仮想化をゲストOSに公開」にチェックを入れる。

この設定変更は、仮想マシンが停止している状態でのみ変更可能。

なお、仮想ハードウェアのバージョンが8以下の場合、この項目はグレーアウトされ変更できない。

仮想ハードウェアのバージョンを9以上なら変更可能。


KVMホストとなるLinuxゲストOSでは、以下のコマンドを実行して該当行が存在すれば、仮想化支援機構に対応している。

Intel の場合
# grep vmx /proc/cpuinfo

AMDの場合
# grep svm /proc/cpuinfo

仮想化支援機構に対応していない場合、KVMをインストールしてもKVMが有効化されない。

vSwitch のモード

KVMが動作する仮想マシンが接続するESXiホストの仮想スイッチ(vSwitch)において、無差別モード (プロミスキャスモード) を有効にする必要がある。

vSphere Web Clientで、仮想スイッチを選択し、設定の編集→プロパティ→セキュリティ->無差別モード:承諾 に設定する。

無差別モードしない場合、ゲストOSからブリッジを経由してホストOS以外と通信できない。

ゲスト→ホストはpingが通り、ゲスト→ホスト以外(ゲスト→ゲートウェイなど)にはpingが通らないような現象に遭遇する。

仮想化支援機構の方はKVMインストール時に気が付くものの、こちらはブリッジの設定が悪い事も疑ってしまい、なかなか気が付かずハマるかも。