KVM (Kernel-based Virtual Machine),是 Linux 系统针对 Intel 64 和 AMD 64 硬件的完整虚拟化解决方案,自2.6.20 起包含在稳定版内核中,可以较快速的处理各种工作负载。
1] KVM 的特色功能
使用 KVM 部署虚拟化平台时,可以获得许多有用的特色功能:
- 超负荷运行:这意味着可以分配比实际可用资源更多的 CPU 或内存
- 弹性配置:允许分配弹性存储并优化每个客户虚拟机的可用空间
- 磁盘 I/O 限制:提供对从虚拟机发送到主机的磁盘 I/O 请求设置限制的功能
- 自动 NUMA 负载均衡:提高在NUMA硬件系统上运行的应用程序的性能
- 虚拟CPU热添加功能:提供在运行中的虚拟机上根据需要增加处理能力的功能,而无需停机
本文是介绍使用 KVM 的第一部分,全部内容如下:
第二部分:在 KVM 下使用网络安装(HTTP、FTP 和 NFS)部署虚拟机
下面开始第一部分的内容。
2] 系统需求
在使用 KVM 之前,要确保系统具有硬件虚拟化功能,对于基于 Intel 平台的主机,使用如下命令验证 CPU 虚拟化扩展是否可用:
# grep -e 'vmx' /proc/cpuinfo //For Intel CPU OR # grep -e 'svm' /proc/cpuinfo //For AMD CPU # lsmod | grep kvm
图.1 查看主机 CPU 信息
可以看到,主机是 Intel 平台主机,支持 KVM 虚拟化。如果查看不到内容,需要在主机 BIOS 设置中将 CPU 虚拟化指令集启用,如果为虚拟机安装,则需要在虚拟化软件中将 CPU 选项的虚拟化功能启用。
为了保证虚拟化软件工作正常,建议使用如下命令将系统更新至最新并关闭 SELinux:
# yum update -y # setenforce 0
3] 安装部署 KVM 软件
首先,我们将安装 qemu-kvm 和 qemu-img 软件包。这些软件包提供了用户级的 KVM 功能和磁盘映像管理:
# yum install qemu-kvm qemu-img -y
KVM 软件包安装成功之后,主机就具有了安装虚拟机的最低要求。方便管理起见,可以安装如下软件包,以提升使用便利性:
- virt-manager:提供了一个 GUI 工具来管理虚拟机
- libvirt-client:提供了一个命令行工具来管理虚拟环境,该工具称为virsh
- virt-install:提供命令”virt-install”以从命令行创建虚拟机
- libvirt:提供服务器和主机端库,用于与虚拟机管理程序和主机系统进行交互
现在,安装这些软件包:
# yum install virt-manager libvirt libvirt-python libvirt-client -y
对于 RHEL/CentOS 7 用户,同样可以采用软件包组的方式安装,例如:Virtualization Client、Virtualization Platform 和 Virtualization Tools,使用如下命令也可以达到安装虚拟化软件包的功能:
# yum groupinstall virtualization-client virtualization-platform virtualization-tools -y
安装成功后,虚拟化守护进程”libvirtd”就可以启动并查看状态了:
# systemctl enable --now libvirtd # systemctl status libvirtd
图.2 查看虚拟化守护进程状态
4] 创建 KVM 虚拟机
之前已经提到过,我们可以使用一些工具来管理虚拟化平台和创建虚拟机。现在,就演示如何使用”virt-manager”工具来管理和创建虚拟机。
可以在终端窗口输入”virt-manager”命令,或者在 GNOME 桌面环境中依次进入 Applications -> System Tools -> Virtual Machine Manager,都会打开虚拟机管理器应用:
图.3 启动 KVM 虚拟机管理器
默认情况下,虚拟机管理器会自动连接到本机的 KVM 服务器,如果需要连接到其他 KVM 服务器,也可以点选管理器的 File -> Add New Connection 菜单,选中 Connect to remote host 后,就可以输入用户及主机信息,点击 Connect 按钮就可以连接远程 KVM 服务器了。
图.4 虚拟机管理器连接远程服务器
如果不使用远程主机,就可以继续操作本地 KVM 服务器。
现在我们创建一个本地虚拟机,用于演示如何使用虚拟机管理器。
选择 File -> New Virtual Machine,就会出现虚拟机创建向导:
图.5 创建虚拟机向导
向导首先会要求选择虚拟机操作系统的安装方式,本部分先来演示使用 ISO 文件或 CDROM 方式安装操作系统,这种方式最为接近 Windows 平台的虚拟化软件安装操作系统的方式,选择好安装方式后,点击”Forward”继续:
图.6 定位本地媒体文件
为了演示起见,已经上传一个 iso 文件至主机,如果 ISO image 文件列表显示为空的话,需要点击”Browse”进行浏览:
图.8 添加本地 ISO 镜像文件
在新窗口点击”Browse Local”按钮,然后找到上传的 ISO 文件,再点击”Open”按钮就可以将 ISO 文件添加成功。镜像文件添加成功后,点击 “Forward”继续:
图.9 设置虚拟机内存及 CPU
设置好虚拟机内存大小及 CPU 数量后,点击”Forward”继续:
图.9 设置虚拟机存储
此时,需要给虚拟机设置存储,也就是虚拟机需要使用的磁盘。理论上虚拟机和 KVM 主机可以共用一个文件系统,这显然不方便管理和维护。于是我们点击”Manage”按钮给虚拟机创建磁盘:
图.10 选择存储卷窗口
点击”Volume”后面的加号按钮,就会弹出一个亲的窗口,用于设置添加存储卷:
图.11 添加存储卷
根据图.11 的设置,添加一个”.img”文件,用于作为虚拟机的存储磁盘。如果需要马上分配容量的话,自行设置即可。全部完成后,点击”Finish”完成添加。此时,在存储卷选择窗口就会看到这个新添加的存储卷,为虚拟机选择到该存储卷后,点击”Forward”继续:
图.12 虚拟机汇总信息
最后,向导会显示新建虚拟机的汇总信息,并且可以设置网络设置,简单起见,选择默认的 NAT 方式,全部无误后喽击”Finish”完成创建。
最后,启动虚拟机,如果系统启动正常,则完成了 KVM 虚拟机的安装和部署:
图.13 启动 KVM 虚拟机
现在,我们已经初步演示了什么是 KVM,以及使用 GUI 工具管理虚拟平台,部署虚拟机以及其他的事情。
一切都还没有结束,现在学习的知识将为下一部分做好准备。