专业的编程技术博客社区

网站首页 > 博客文章 正文

单台服务器搭建不了虚拟化/云平台集群?要开启KVM嵌套虚拟化了!

baijin 2024-09-05 11:27:56 博客文章 9 ℃ 0 评论

一、嵌套虚拟化

嵌套虚拟化即让虚拟机支持虚拟化,也就是在虚拟机上再跑虚拟机,一般用于测试环境,当我们只有一台服务器,像模拟一个虚拟化集群、云平台的时候经常会使用到嵌套虚拟化。


二、开启嵌套虚拟化?

本文以基于intel处理器为例,如果是AMD处理器,则讲本文的kvm_intel替换为kvm_amd即可。

1.首先检查 KVM host(主机)上的kvm_intel/kvm_amd模块是否打开了嵌套虚拟机功能(默认是开启的)

# ①先查看kvm_intel/kvm_amd模块是否已经加载
# intel的处理器执行命令如下
root@localhost~# modinfo kvm_intel | grep nested
# 输出以下内容则表示已经加载
parm: nested:bool
# ②基于Intel的处理器运行以下命令查看是否开启嵌套虚拟化功能
root@localhost~#cat /sys/module/kvm_intel/parameters/nested
N # 输出N为未开启,Y则代表已开启

2.如果上面的显示结果不是Y的话需要开启nested



注意:确保虚拟机已关机,否则我们会得到像"modprobe: FATAL:Module kvm_intel is in use”这样的错误信息。


# 卸载kvm
root@localhost.~# modprobe -r kvm_intel
root@localhost.~# modprobe kvm_intel nested=1
root@localhost:~# cat /sys/module/kvm_intel/parameters/nested
Y

3.然后创建虚拟机即可

4.如需永久生效,可以通过以下方式设置


1、ubuntu系统
通过修改内核参数的方式:
vi /etc/default/grub
在kernel 那一行的末端加上 “kvm-intel.nested=1”(设置GRUB_CMDLINE_LINUX=“kvm-intel.nested=1”)
grub-mkconfig -o /boot/grub/grub.cfg
reboot
2、centos系统
卸载kvm内核模块之后
echo ‘options kvm_intel nested=1’ >/etc/modprobe.d/kvm-nested.conf
modprode kvm_intel
cat /sys/module/kvm_intel/parameters/nested


三、注意事项

如加载模块失败,一般是没有在BIOS中启用vt-x导致

pedprobe: ERROR: gould not insert 'kvm_intel': Operation not supported

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表