04
2024
06
23:14:25

KVM部署初体验

前面部署EVE-NG的时候1分钟时间快速学习一下使用ISO镜像部署EVE-NG,因为自己创建镜像没想到啊,竟然万物皆可EVE-NG!,搜索了很多方法,这中间就发现了EVE-NG的底层竟然是KVM(Kernel-based Virtual Machine)的虚拟化。

那我们能不能自己安装一台KVM虚拟化服务器呢?

当然可以,我们首先要安装一台CentOS 7.9-2009的虚拟机

正常来讲,KVM虚拟化是需要对虚拟机开启硬件虚拟化、IOMMU和性能计数器这些的,我们第一次部署先不开启,看看有什么异常。



主机配置如下:



在安装操作系统时,我们不再使用最小化安装了,而是选择“带GUI的服务器”,环境中勾选“虚拟化客户端”“虚拟化Hypervisor”“虚拟化工具”



其他保持正常,直至完成安装CentOS操作系统最小化安装部署

然后我们看一下CPU是否支持虚拟化,一般Intel平台为VMX(virtual machine extension),AMD平台为SVM(Secure Virtual Machine extension)。我是Intel的服务器,所以使用如下命令:

cat /proc/cpuinfo | grep vmx



可以看到是没有回显的。然后我们把虚拟机关机,打开硬件虚拟化、IOMMU和性能计数器,再重新开机。



再次查看CPU是否支持虚拟化,发现回显中已经带有vmx了。



当然,如果是AMD的虚拟化平台,就要使用命令cat /proc/cpuinfo | grep svm了。

看一下虚拟化组件libvirt的服务器状态。

systemctl status libvirtd



可以看到,服务运行正常,并且已经是开机自启状态。

使用lsmod命令查看Linux内核中kvm模块的加载情况。

lsmod | grep kvm



查看主机网卡信息。



可以看到,除了主机的正常网卡ens192,还多了一个virbr0的虚拟网卡,这个网卡就类似Vmware的虚拟交换机,供KVM创建的虚拟机上网用的。

然后我们在“应用程序”中找到“虚拟系统管理器VMM”



“编辑”→“连接详情”中,点击“虚拟网络”,就能看到virbr0所对应的虚拟网络了。



同样,点击“存储”,我们可以看到当前的存储路径为/var/lib/libvirt/images/,可用空间为66.71 GB,已用空间为4.25 GB。



和主机根目录的磁盘使用情况一致。



但是概述页面的CPU使用率和内存使用率却和系统监视器里面的数据存在不小差异,单拿内存来说,大小都是31.3 GB,但是VMM中却显示为0 MB已使用。



最后看一下“编辑”→“首选项”下面的“新建虚拟机”页面,系统默认的存储格式为qcow2,是不是很熟悉?是不是和EVE-NG中的一样?



前面我们安装了KVM主机KVM部署初体验,接下来肯定是要简单操作一下,体验体验如何使用。

上次我们是在主机的桌面环境中打开的“虚拟系统管理器VMM”,如果要再虚拟机里创建虚拟,可能需要通过远程桌面来操作,可以参考如何给最小化安装的主机装个远程桌面?

当然,我们还可以在通过SSH登录到主机之后,使用virt-manager命令远程打开“虚拟系统管理器VMM”



我们今天就从这个页面中,在CentOS系统中再嵌套安装一台CentOS系统。

直接点击左上角图标“创建新虚拟机”,第一步选择默认的“本地介质安装”



接下来点击“浏览”选择要使用的ISO镜像文件。



可以看到,我们现在整个存储空间都是空空的,所以先创建一个“存储池”



记下下图中这个存储路径/var/lib/libvirt/images/ISOPool,当然也可以自定义路径,之后点击“完成”



然后我们使用MobaXterm向这个路径中上传一个安装镜像,上传完成后,点击存储卷中的刷新按钮,就能看到上传的镜像文件了。(显示的镜像大小可能不准确,请以命令行中显示的为准)



然后我们选中镜像文件,并点击“选择卷”,返回到之前的界面继续安装。



配置虚拟机的CPU和内存。



分配了一个30 GB的硬盘,但是没有看到有精简置备的选项



最后设置虚拟机名称,并选择网络。这里我勾选了“在安装前自定义配置”,看看还有什么可以更改的配置。



“引导选项”这里,可以看到“引导设备顺序”并没有配置,我们先试试能不能正常引导。



点击左上角“开始安装”之后,直接进入到了安装页面。



中间竟然也出现了鼠标无法从监视器移出的问题,和VMWare一样,按Ctrl+Alt就可以了。

后面的安装过程就基本上没有差别了,不过安装过程中我们可以看看这个控制台页面。



第一个图标是“显示图形控制台”,也就是显示当前这个页面;第二个图标是“显示虚拟硬件详情”,也就是前面修改硬件设置的那个页面;后面的几个图标都是对虚拟的操作,分别是启动、挂起、关机,下拉菜单中还有重启、关机、强制重启、强制关机和保存等设置;最后一个图标是“管理虚拟机快照”,可以执行创建快照、恢复快照、删除快照等操作。

在VMM中,通过设置“查看”的内容,可以直观查看CPU使用率、内存使用率、磁盘I/O和网络I/O等信息。



创建完成后,我们看一下虚拟机的磁盘使用情况。



可以看到,直接一次性分配了30 GB的磁盘空间,使得磁盘使用率直接达到了55 %。那我们还能不能创建新的虚拟机了?再试一下。

在创建新的虚拟机时,仍然显示有66.7 GB的磁盘空间可用,但是从命令行看到的是只有33 GB可用,我们直接分配一个40 GB的硬盘。



NICE,报错了!继续创建时就提示需要的40 GB空间大于实际可用的33 GB空间了。




不是KVM不支持精简置备的磁盘,而是VMM


接上文不会吧!KVM竟然不支持磁盘的精简置备!?,我们已经掌握了通过“虚拟系统管理器VMM”创建虚拟机的基本方法,但是遗留了一个问题,那就是通过页面创建没有“精简置备”磁盘的选项,导致磁盘空间占用非常高,无法创建足够数量的虚拟机。

简单回顾一下,这是我们虚拟机的虚拟磁盘,存储大小为30 GB,存储格式为qcow2,其他为默认选项,没有“精简置备”的选项。



从命令行查看文件,大小同样为30 GB。



我想在网上搜一下解决方案,没想到竟然直接搜到了我提出的问题,这也太尴尬了!



没办法,再翻翻其他的。

结合广大同学的建议,基本上都指向了一个改进方向,那就是命令行操作。但是Libvirt不能直接使用精简置备的卷来作为存储池,即创建逻辑卷时,没有精简置备的选项。

如果要将精简卷与libvirt一起使用,有两种可能的操作:

1、手动创建所需的精简卷,再将其挂载到虚拟机上;

2、创建一个大型精简卷,使用XFS对其进行格式化,挂载它并使用libvirt创建一个基于目录的存储池(将VM磁盘映像创建为XFS文件系统上的纯文件)。

主要操作命令是qemu-img,命令的介绍和用法请参考qemu-img命令手册

使用qemu-img命令手册查看磁盘镜像文件信息。



可以看到,文件格式为qcow2,磁盘大小为30 GB,但是实际已使用空间为31 GB,估计是计算方法不一样导致的。

“compat”值为1.1,表示需要匹配QEMU版本为1.1或更新版本,才能支持镜像格式扩展。“lazy_refcounts”值为true,表示引用计数更新将被推迟,目的是避免元数据I/O并提高性能。

但是并没有精简置备相关的说明。

qemu-img命令手册中提到,“qcow”和“qcow2”格式支持压缩-c,我们测试一下。

qemu-img convert -c -O qcow2 centos7.0.qcow2 thin.qcow2



压缩之后的文件大小仅有800多兆,查看一下文件信息。



看一看到,“lazy_refcounts”的值发生了变化,变成了false,同时,磁盘使用大小变成了797 MB,锐减至只有之前的2.6 %。难道和这个属性相关?

我们把之前的硬盘移除,然后挂载这个新的硬盘看看能不能用。



可以看到,磁盘信息和之前没有差别。启动虚拟机试一下。



OK,可以使用。

也就是说,我们前面提到的第一种方法,手动创建所需的精简卷,再将其挂载到虚拟机上,这种方式是可行的。

然后看一下磁盘的大小变化。



上面是虚拟机开机的情况,下面是虚拟机关机的情况,可以看到,qemu-img命令读到的实际磁盘大小差别不大。但是在开机状态下,使用du命令读到的估计文件空间使用情况稍大,大概多300M左右,可能和虚拟内存相关。

当然,我们也可以在创建虚拟机之前手工创建磁盘文件,命令如下:

qemu-img create -f qcow2 test.qcow2 30G



lazy refcounts的值同样为false,我们试着创建一个值为true的镜像。

qemu-img create -f qcow2 -o compat=1.1 -o lazy_refcounts=on test2.qcow2 30G



OK,确认了,不是lazy refcounts属性的问题。

综合来看,确实是VMM或者说是Libvirt的问题,它不能直接创建精简置备的卷来作为存储池,而是需要先手动创建所需的精简卷,再将其挂载到虚拟机上。

总结,其实精简磁盘,性能应该是没有厚置备的好。



推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

本文链接:https://hqyman.cn/post/6492.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: