在CentOS上安装KVM/QEMU+实现嵌套虚拟化
本文讲述了如何在centos上安装KVM/QEMU,包含对宿主机的配置,如启动硬件虚拟化扩展、关闭Hype-v、更改虚拟机设置等。在正式部署时,步骤依次是安装KVM/QEMU、启动libvirtd服务、检查运行状态、安装virt-install和virt-manager等。最后还讲述了如何配置KVM嵌套虚拟化实现,包括配置kvm-nested.conf和编辑虚拟机的XML配置文件等。
前期准备
因本示例是在虚拟机的基础上进行虚拟化,涉及到宿主机的一些配置,请根据自己的实际情况酌情参考。
本示例前期准备主要做的是启动硬件虚拟化扩展、关闭Hype-v、更改虚拟机设置。
1.查询宿主机的处理器型号
从“我的电脑”或“此电脑”右键点击属性,进入系统信息页面。
本示例使用的是华硕天选,经查询,使用的是AMD处理器。
2.从宿主机的BIOS启用硬件虚拟化扩展
本示例的宿主机在开机时按住F2,即可进入BIOS页面。
不同型号的宿主机进入BIOS需要按不同的热键,且BIOS界面有所不同,这一步骤可自行查询对应型号宿主机如何启用硬件虚拟化扩展。
本示例中,进入BIOS后按F7,进入Advance Mode。
然后在Advanced中,将SVM Mode更改为Enabled。
更改完成后按F10,保存并退出,然后重启宿主机即可。
3.关闭宿主机的Hype-v的系统服务
(1)控制面板
打开控制面板——程序——启用或关闭Windows功能,找到Hyper-V或含有Hyper-V的功能,将其取消勾选后单击确定。
不同操作系统的界面不同,如果找不到Hyper-V相关的功能,请直接看下一步。
(2)服务
通过win+R打开运行,输入services.msc,打开服务,找到HV主机服务,将其启动类型设置为禁用。
(3)命令行
以管理员身份运行命令行,输入命令
bcdedit /set hypervisorlaunchtype off
4.验证hyper-v和虚拟化
(1)hyper-v
以管理员身份运行命令行,输入命令
bcdedit /enum
输出结果的最后一行是hypervisorlaunchtype Off ,则关闭hyper-v成功。
(2)虚拟化
从宿主机的任务管理器——性能,查虚拟化是否启用,显示“已启用”则成功。
5.更改VM Ware虚拟机设置
本示例使用VM ware虚拟机,需在虚拟机设置——硬件——处理器中勾选虚拟化引擎的“虚拟化Intel VT-x/EPT 或 AMD-V/RVI(V)”。
如果虚拟化引擎的选项呈灰色且无法选中,需在VM Ware快捷方式处右键,以管理员身份运行,此时拥有足够权限,可以勾选虚拟化引擎。
6.验证是否启用了AMD-V扩展
在VM Ware虚拟机开启后,在虚拟机终端输入命令
grep --color --perl 'vmx|svm' /proc/cpuinfo
输出结果显示启用svm标志,因此确定启用了硬件虚拟化。
如果是Intel处理器,则输出结果显示启用vmx标志。
正式部署
1.在虚拟机中安装KVM/QEMU
如果在创建虚拟机时选择的是虚拟化主机,则无需额外安装KVM/QEMU。
本示例在创建虚拟机时选择的带GUI的服务器,需另外使用yum来安装虚拟化主机。命令如下:
sudo yum groupinstall "Virtualization Host"
2.启动libvirtd服务
(1)检查libvirtd服务状态
sudo systemctl status libvirtd
(2)启用libvirtd服务
如果未启用libvirtd服务,需先启用libvirtd服务
sudo systemctl enable libvirtd
(3)启动libvirtd服务
如果未运行,需启动libvirtd服务
sudo systemctl start libvirtd
3.检查KVM/QEMU是否正常运行
sudo virsh version
由图可得,KVM/QEMU正常运行
4.允许非root用户使用KVM/QEMU命令
如果需要允许登录的非root用运行virsh命令或KVM/QEMU命令,或者在不使用sudo的情况下使用这些命令,需要将登录用户添加到libvirt组。
sudo usermod -aG libvirt $(whoami)
5.安装virt-install
virt-install基于libvirt,是用于安装KVM/QEMU虚拟机的命令行工具,就像redis-cli是redis的命令行工具。
使用virt-install安装的虚拟机可以通过virsh和virt-manager进行管理。
使用yum来安装virt-install
sudo yum install virt-install
安装成功后可验证
virt-install --version
6.安装virt-manager
virt-manager,全称Virtual Machine Manager,是管理KVM/QEMU虚拟机的图形实用程序。
在具有GUI的CentOS8中运行KVM/QEMU虚拟机中,Virtual Machine Manager是必备工具。
(1)使用yum安装virt-manager
sudo yum install virt-manager
(2)打开虚拟系统管理器
本示例使用的是CentOS8,在CentOS8的应用程序中找到虚拟系统管理器并打开。
CentOS7中的虚拟系统管理器位置如下。
(3)检查连接状态
virt-manager启动后会使用libvirt自动连接到在CentOS 8计算机上运行的KVM / QEMU。
嵌套虚拟化
如果是在虚拟机中创建虚拟机,需要配置KVM嵌套虚拟化实现。
1.硬件条件
通过lscpu查询处理器型号,可以看到是Intel型处理器。
2.测试是否支持嵌套虚拟化
cat /sys/module/kvm_intel/parameters/nested
输出Y则已经支持,N则未配置嵌套虚拟化。
3.配置kvm-nested.conf
测试是否支持嵌套虚拟化的结果如果为N,创建/etc/modprobe.d/kvm-nested.conf配置文件,内容如下:
options kvm-intel nested=1
options kvm-intel enable_shadow_vmcs=1
options kvm-intel enable_apicv=1
options kvm-intel ept=1
配置后执行以下命令
modprobe -r kvm_intel #先卸掉内核中的kvm_intel模块,注意要在所有虚拟机都关闭的情况下执行
modprobe -a kvm_intel #重新加载该模块
4.编辑虚拟机的XML配置文件
导出虚拟机的XML配置,然后编辑XML配置文件,将cpu mode后的值改为host-passthrough,修改完成后重新定义虚拟机。
virsh dumpxml <虚拟机名称> > vm_config.xml
vim vm_config.xml
virsh define vm_config.xml
更多推荐
所有评论(0)