前期准备

因本示例是在虚拟机的基础上进行虚拟化,涉及到宿主机的一些配置,请根据自己的实际情况酌情参考。

本示例前期准备主要做的是启动硬件虚拟化扩展、关闭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

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐