ネスト仮想化
ProxmoxのVMとしてProxmoxやその他ハイパバイザー、KVMを動かす場合、
VMの上で仮想化する必要がある。
自分の場合はココ最近でESXiからProxmoxに移行する際にeve-ngも移行した。
移行後に動作確認をしているとeve-ngのqemuマシンが動かなかった。
デフォルトではVM上での仮想化は無効化されているため、有効化する必要あり。
要件
細かいことはドキュメントに書いてある。
VMはハードウェア支援の仮想化拡張機能にアクセス出来るようにする必要があり、
そのためにはProxmoxで有効化する必要がある。
・kernel >= 3.10
・AMDCPUもしくはIntelCPUを利用
ネスト仮想化を有効化する
まずはホストであるProxmox VEにてネストが有効化されているか確認する。
#cat /sys/module/kvm_intel/parameters/nested
N
“N”と表示される場合は有効化されていない。
有効化するためには、”/etc/modprobe.d/kvm-intel.conf”を新たに作成し、
オプションを書き込む。”options kvm-intel nested=Y”
#echo "options kvm-intel nested=Y" > /etc/modprobe.d/kvm-intel.conf
AMDの場合はkvm-amd.confに書き込む
#echo "options kvm-intel nested=1" > /etc/modprobe.d/kvm-amd.conf
続いてKernel moduleを再起動もしくは再読み込みする。
#modprobe -r kvm_intel
#modprobe kvm_intel
自分の環境ではrオプション側はエラーが出た。
#modprobe -r kvm_intel
modprobe: FATAL: Module kvm_intel is in use.
ここで再起動を行う。
再起動後もう一度ネストが有効化されているか確認する。
#cat /sys/module/kvm_intel/parameters/nested
Y
VMを作成時にCPUの設定は「KVM」から「host」に変更する