我们之前对OpenStack醉过一次简单介绍(什么是OpenStack?),OpenStack本身是一个云管理平台,它本身并不提供虚拟化功能,而是依赖于底层的Hypervisor(如KVM、Qemu、Xen等)来提供虚拟化能力。像我们直接使用的虚拟化平台CAS(网络之路16:认识虚拟化环境H3C CAS)、EVE-NG(网络之路14:认识网络设备模拟器EVE-NG)、PVE(PVE8.0-2安装使用快速指导)等等,都是基于KVM虚拟化的。
像我知道的,H3C是OpenStack基金会的会员,CAS就是结合了OpenStack和KVM来使用的,以提供虚拟化服务。在OpenStack中,虚拟机的创建和管理是通过Nova组件来实现的,而Nova与底层Hypervisor的结合使用,可以提供高效、灵活和可靠的虚拟化服务。
KVM是OpenStack中最常用的Hypervisor之一,它是一种全虚拟化解决方案,可以提供高性能、高效率和安全的虚拟化环境。而在这之前,我们也在CentOS系统上部署过KVM(KVM部署初体验),并测试过一些虚拟机相关的操作(通过命令行配置调整KVM的虚拟网络)。
在上篇文章中,我们也提到目前Ubuntu的使用率大幅攀升,测试一下在Ubuntu系统部署KVM势在必行。
首先,我们回顾一下CPU对虚拟化的支持情况,一般Intel平台为VMX(virtual machine extension),AMD平台为SVM(Secure Virtual Machine extension)。我是Intel的服务器,所以使用如下命令:
cat /proc/cpuinfo | grep vmx
可以看到回显中带有vmx,如果没有的话,请检查硬件虚拟化、IOMMU和性能计数器是否开启,请调整之后再次测试。
然后安装KVM和其他虚拟化管理软件包,命令如下:
apt-get install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils
安装完成之后,我们可以使用以下命令检查KVM是否已正确安装:
kvm-ok
如果回显如上图所示,则表示KVM已正确安装。
或者,使用以下命令测试安装是否成功:
virsh list --all
当然,我们也可以使用和CentOS相同的命令,看一下虚拟化组件libvirt服务器的状态。
systemctl status libvirtd
可以看到,服务运行正常,并且已经是开机自启状态。
使用lsmod命令查看Linux内核中kvm模块的加载情况。
lsmod | grep kvm
查看主机网卡信息。
可以看到,除了主机的正常网卡ens160,还多了一个virbr0的虚拟网卡,这个网卡就类似VMware的虚拟交换机网卡,供KVM创建的虚拟机上网用的。
当然,我们简单介绍过使用命令行创建虚拟机的方法(最小化安装的CentOS7部署KVM虚拟机)。如果我们需要安装GUI工具来管理虚拟机,也可以选择安装virt管理器。
apt-get install -y virt-manager
安装完成之后,我们可以直接在命令行运行“virt-manager”命令来打开virt-manager管理界面。
然后,你会发现和之前CentOS的“虚拟系统管理器VMM”就是一个东西。
在“Edit”→“Connection Details”中,点击“Virtual Networks”,就能看到virbr0所对应的虚拟网络了。
同样,点击“Storage”,我们可以看到当前的存储路径为/var/lib/libvirt/images/,可用空间为285.34 GB,已用空间为8.89 GB。
与在命令行看到的根目录使用情况基本一致。
老规矩,我们最后安装一台VSR测试一下。点击左上角的“创建新虚拟机”工具栏按钮来创建新的虚拟机。
第一步,选择使用本地安装镜像。
第二步,选择要使用的ISO镜像文件,如果不能自动识别系统版本类型,需要手工进行指定。
第三步,配置虚拟机的CPU和内存规格。
第四步,指定虚拟机的磁盘文件。
第五步,指定虚拟机的名称和网络配置,点击“FINISH”完成虚拟机的创建。
创建完成之后,虚拟机自动开机,又进入到了熟悉的VSR安装页面(都从VXLAN到SR了,你还不会装VSR?来,我教你!),快速完成VSR的安装。
然后等待进入系统,系统默认开启了DHCP来获取IP地址,我们可以看到它成功获取到了192.168.122.160的IP地址,是通过KVM的virbr0来分配的。如果大家对VSR的这个ZTP零配置开局感兴趣的话,可以参考相关文章(神奇的H3C设备自动配置功能,不用按Ctrl-D/C了、利用自动配置功能实现设备的批量零配置上线、ZTP自动化方式部署网络设备)。
OK,Ubuntu系统的KVM虚拟机创建测试通过。