HalNiの雑記

備忘録を兼ねて。サーバマシンとかネットワークとか

VMware vSphere Hypervisor 7.0 を KVM 上で動作させる ( ESXi on KVM )

自宅の仮想化基盤にはKVMを使用しているが、しばしばESXiを使用して検証が必要な場面が発生する
このような時、KVM上でESXiを動作させることが出来る

KVM側でNestを有効にさせることでESXi上でVMを稼働させることが可能になるため、ベアメタル上のESXiと変わらない環境を構築することが可能である

f:id:v_7zrgu0:20200423141919j:plain
KVM上でESXiが動作する

今回の検証環境:

Fujitsu PRIMERGY TX200 S7
Xeon E5 2450L x2
・RAM 96GB

openSUSE Leap 15.1
libvirt Version 5.1.0

VMware vSphere Hypervisor 7.0.0

KVMホストの設定

ESXi上でVMをアタッチ出来るよう、KVMホストでNestを有効化させる

/etc/modprobe.d/kvm.conf を作成、kvm.conf内に
options kvm_intel nested=1
と記述しNested KVMを有効化しておく

/sys/module/kvm_intel/parameters/nested
をcatすることでNestが有効になっているか確認出来る

haruka@suse_host01:~> cat /sys/module/kvm_intel/parameters/nested
Y

でOK

これでVM上でVMを立てる(Nest状態)が可能になり、ESXi上でもVMを稼働させることができる

仮想マシン(ESXi)の作成、インストール

Virsh なり Virt-manager仮想マシンを作成

注意点としてvSphere Hypervisor 7.0 では e1000 が認識しない
unsupportedから完全に切り捨てられた模様
よってvNICに e1000e を明示的に指定する必要がある

f:id:v_7zrgu0:20200423141113j:plain
6.7u3では認識したe1000が7.0では認識すらしない

ESXiで要求される最小要件は

CPU 4コア 以上
RAM 4096 MB 以上
HDD 1GB 以上(ESXi本体のみ。データストア込みの場合は5.2 GB以上が必要)

であるため上記に加えてアタッチする仮想マシン+α分のリソースを仮想マシンに割り当てる

仮想マシンを作成後、virshを用いてマシンモデルを編集してCPUの拡張機能であるvmx仮想マシンで有効にさせる

sudo virsh edit VMwareESXi7.0

<feature policy='require' name='vmx'/>

<cpu></cpu>中に追加することで仮想マシンであるVMwareESXi7.0にvmx機能が付与される

f:id:v_7zrgu0:20190807153050p:plain
こんな感じ

編集後仮想マシンを立ち上げESXiのインストールを行う
インストールが終了し、ESXiが正常に立ち上がると設定は完了である
ESXiのIPアドレスにブラウザからアクセスすることでHTML5なWebコンソールにアクセスできる

f:id:v_7zrgu0:20200423141953j:plain
KVM上で動作しているためManufacturerがQEMUと表示される

あとは通常のESXiのように仮想マシンを作成すればよい

f:id:v_7zrgu0:20200423154447j:plain
KVM上のESXiでVMが稼働している

f:id:v_7zrgu0:20200423153013j:plain
KVMで共通化させたCPU名がESXiのVMにも反映されている

参考文献

VMware Docs - ESXi のハードウェア要件
docs.vmware.com