工作中,有时用户想在虚拟机里面运行kvm或者kata等虚拟化功能的应用,所以需要让vm支持vt,所以需要支持嵌套虚拟化功能。
一、宿主机开启嵌套
嵌套式虚拟nested是一个可通过内核参数来启用的功能。它能够使一台虚拟机具有物理机CPU特性,支持vmx或者svm(AMD)硬件虚拟化。关于nested的具体介绍,可以看这里 。该特性需要内核升级到Linux 3.X版本 ,所以在centos6下是需要先升级内核的,而在centos7下已默认支持该特性,不过默认是不开启的,需要通过修改参数支持。
- 启用Nested
# echo 'options kvm_intel nested=1' >/etc/modprobe.d/kvm-nested.conf
-
重新加载kvm模块(如果有vm运行需要重启宿主机)
# modprobe -r kvm_intel # modprobe kvm_intel or #reboot
二、openstack nova侧变更
cpu模式需要是passthrough模式,透传cpu feature给vm
vim /etc/nova/nova.conf
[libvirt]
cpu_mode=host-passthrough
三、新建虚拟机