pve开启嵌套虚拟化,pve下kvm类型CPU的群晖VMM虚拟机创建
0.前言
pve下安装了群晖,尝试在群晖内利用VMM再创建虚拟机(套娃)。直接在VMM里面创建虚拟机会无法开启,也无法删除,只能直接卸载VMM套件。
要在pve下的虚拟机内再开虚拟机,需要开启pve的嵌套虚拟化,并设置cpu类型。下面以群晖为例,演示设置过程。
1.pve嵌套虚拟化开启
检查pve系统是否开启nested,在pve shell运行命令:
cat /sys/module/kvm_intel/parameters/nested
输出N,表示未开启,输出Y,表示已开启。
未开启,则必须先关闭所有的虚拟机,强制关闭命令:
qm stop 100 #100为虚拟机ID
然后执行以下命令开启嵌套虚拟化:
modprobe -r kvm_intel
modprobe kvm_intel nested=1
cat /sys/module/kvm_intel/parameters/nested
再次检查,输出Y,即为开启成功。
为保证pve重启后,嵌套虚拟化仍然开启,添加开机自启:
echo "options kvm_intel nested=1" >> /etc/modprobe.d/modprobe.conf
2.设置虚拟机CPU类型
在网络上查询到的资料是直接将cpu类型设置为 host ,再开机即可,在其他虚拟机下是可行的(例如ikuai/win7),但是将群晖虚拟机的cpu类型设置为host,将导致群晖无法正常使用。
所以需要给默认的kvm类型 添加虚拟化选项,使得群晖能够正常使用,并且开启虚拟化。
在pve shell 输入如下指令,通过vi修改对应的.conf文件。vi的使用可以百度。
vi /etc/pve/nodes/pve/qemu-server/100.conf #100为对应的虚拟机ID
在打开的文件,第一行添加配置如下:
args: -cpu 'kvm64,enforce,+kvm_pv_eoi,+vmx,+kvm_pv_unhalt,+lahf_lm,+sep'
其中主要是 +vmx 在起作用,开启了kvm类型cpu的虚拟化。保存后开启群晖虚拟机,就可以在vmm里面启动虚拟机了。
3.测试虚拟机系统是否已开启虚拟化
启动pve群晖虚拟机,用ssh连接群晖,运行下面的命令:
egrep --color 'vmx|svm' /proc/cpuinfo
输出vmx或者svm的,则该系统已开启虚拟化。
参考如下:
[1]: https://blog.csdn.net/qq_24841037/article/details/98684837 一般虚拟机的设置
[2]: https://blog.csdn.net/qq_22182829/article/details/119568108 kvm类型cpu的设置,文中提供的配置文件修改路径有误,应该是/etc/pve/nodes/pve/qemu-server/100.conf,且提供的修改指令引号有误,应该是打错了。按照这篇文章修改会导致群晖不开机。
|