VMware vSphere Hypervisor 7.0 を KVM 上で動作させる ( ESXi on KVM )
自宅の仮想化基盤にはKVMを使用しているが、しばしばESXiを使用して検証が必要な場面が発生する
このような時、KVM上でESXiを動作させることが出来る
KVM側でNestを有効にさせることでESXi上でVMを稼働させることが可能になるため、ベアメタル上のESXiと変わらない環境を構築することが可能である

今回の検証環境:
Fujitsu PRIMERGY TX200 S7
・Xeon E5 2450L x2
・RAM 96GBopenSUSE Leap 15.1
・libvirt Version 5.1.0VMware 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 を明示的に指定する必要がある

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機能が付与される

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

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

参考文献
・VMware Docs - ESXi のハードウェア要件
docs.vmware.com
