PVE开启嵌套虚拟化

所谓嵌套虚拟化,就是说你可以在PVE的虚拟机中再开启虚拟机,也就是平时俗话说的套娃。

检测pve虚拟系统是否支持虚拟化

PVE虚拟出来的vm系统的cpu,默认不支持vmx,即不支持嵌套虚拟化,在虚拟机中使用命令来验证:

 egrep --color 'vmx|svm' /proc/cpuinfo
没有输出即不支持,否则会高亮显示vmx或者svm。

开启嵌套虚拟化步骤:

1.开启pve主机的nested,关闭所有虚拟机

检查pve系统是否开启nested,运行命令:

 cat /sys/module/kvm_intel/parameters/nested
Y
输出N,表示未开启,输出Y,表示已开启

检查结果未开启,必须关闭所有的虚拟机系统,否则不能开启内核支持。

modprobe -r kvm_intel
modprobe kvm_intel nested=1
 # 再次检查nested,输出Y,即为开启成功。
cat /sys/module/kvm_intel/parameters/nested 

如果报错Module kvm_intel is in use,请检查你的虚拟机是否全部关闭。

2.设置系统启动后自动开启nested

echo "options kvm_intel nested=1" >> /etc/modprobe.d/modprobe.conf

这样系统重启会自动加载netsted,支持嵌套虚拟了。

3.设置虚拟系统vm的cpu类型为host

qm set <vmid> --cpu cputype=host

也可以在图形界面设置:选择vm,“硬件”–“处理器”–“类型”–“host"

点赞
  1. Jet说道:
    Google Chrome Mac OS X 11.2.3
    我是一个群晖D218+, CPU 不支持虚拟化,跟据你的教程搞到支持了,可是重启后就改回去了,仍然不支持。包括echo 那步都执行了。感谢。
    1. 博主说道:
      Google Chrome Windows 10
      你用DS218+安装PVE啊?
  2. VAY冬冬说道:
    Google Chrome Android 10
    请教博主,我是使用你博客中的群晖3617引导,但改完cpu类型为host后,就不能正常找到群晖了。
    1. 博主说道:
      Google Chrome Windows 10
      只改这个的话,不影响系统的呀,你这个应该不是改host的问题。那你可以改回默认的kvm,看看能不能进
      1. VAY冬冬说道:
        Google Chrome Android 10
        默认kvm64可以启动,然后进入群晖。但不能改成host,改成这个启动后,群晖就进不去了。

发表评论