在Linux系统中利用KVM高性能创建虚拟镜像

2023年 9月 28日 106.0k 0

1.引言

本文在Debian12系统上使用KVM分别以图形界面和命令行的方式实现了虚拟镜像的管理。KVM是一种内嵌于Linux内核的开源虚拟化技术, 它可以将Linux系统转变为虚拟机监控程序,使主机计算机能够运行多个隔离的虚拟环境。

相比其它商业版的虚拟机,KVM在成本、性能、安全性、跨平台方面具备独特的优势。KVM是Linux系统的一部分,Linux有的,KVM也全具备,KVM利用安全增强型Linux(SELinux)和安全虚拟化(sVirt)组合来加强虚拟机的安全性和隔离性。KVM能够使用Linux支持的任何存储,包括某些本地磁盘和网络附加存储(NAS),还可以利用多路径I/O来增强存储并提供冗余能力。KVM继承了Linux的性能,针对客户机和请求数量的增长进行扩展,满足负载的需求。KVM可以让要求最苛刻的应用工作负载实现虚拟化,而这也是许多企业虚拟化设置的基础,如数据中心和私有云等。

1.jpg

2.KVM组件安装

在任何现代Linux系统上都可以安装KVM组件实现虚拟化, 这里以稳定性著称的Debian系统作为实验目标。

如果想和本文中的实验环境保持一致,可以去这里下载最新的Debian系统:www.debian.org/

登录到Debian系统中,输入以下命令先看一下CPU是否支持虚拟化:

# egrep 'vmx|svm' /proc/cpuinfo

命令返回的结果信息如下:

2.png
如果出现图中的"vmx"字样,则说明支持虚拟化。

KVM需要安装的包比较多,核心组件大概有以下这些:

# apt install qemu-system-x86 libvirt-clients libvirt-daemon-system bridge-utils virtinst libvirt-daemon libguestfs-tools libosinfo-bin  qemu-system virt-manager

这些组件包在不同的Linux系统上安装名称可能会不一样,如果使用的是Debian 12, 可以直接复制上面的命令进行安装,安装过程可能要多等一会儿,依赖包还是有不少的。

KVM组件安装完毕后,首先需要配置网络,先输入以下命令查看当前网络状态:

# virsh net-list --all

如果出现状态为:inactive,则表示网络状态未激活动,如图所示:

2-1.png
接着输入以下命令来将网络激活:

# virsh net-start --network default

再次查看状态,如果状态变为active,则说明网络激活成功,如图所示:

2-2.png

完成网络激活之后,下面就可以正式开始安装虚拟镜像了。

3.利用图形界面安装镜像

要在图形界面下安装虚拟系统镜像,需要在软件列表中找到"虚拟系统管理器"打开进行操作,如图所示:

3.png
点击图标后,将打开虚拟系统管理器的主界面,相比VMware等商业软件, 开源KVM的界面非常简单,如图所示:

4.png

点击左上方的电脑图标开始创建虚拟镜像,如图所示:

5.png

在这里通常大多数情况都是使用ISO映像安装,直接默认第一个就行,下面的架构通常都选择:x86_64,点击右下角的"Forward"按钮进入下一步,如图所示:

6.png

在这里我上传的是Windows11的ISO镜像, 通过浏览按钮选择ISO镜像位置, 勾选上自动对介质进行检测,点击"Forward"按钮进入下一步,如图所示:

7.png

这里主要设置内存大小和CPU数量, 注意这里的内存大小单位是MB, 如果按照GB单位进行设置,会因为内存不足导致虚拟系统启动失败。配置完成后点击"Forward"按钮进入下一步,如图所示:

8.png

在这里主要为虚拟镜像分配硬盘空间,根据实际设置大小即可,这里硬盘的默认大小单位为GB,点击"Forward"按钮进入下一步,如图所示:

9.png

在这里可以看到之前步骤设置的所有选项,确认没问题后,点击"完成"按钮回到主界面,接着需要配置引导选项,默认将CDROM放到引导顺序最前面,如图所示:

10.png

点击右下角的"apply"使设置生效, 前面界面上的启动虚拟机按钮,将看到熟悉的Windows安装界面,如图所示:

11.png

4.命令行安装镜像

完整的安装镜像命令如下:

# virt-install --name windows11_command --vcpus=4 --ram=4096 --disk path=/var/lib/libvirt/images/windows11_command.qcow2,size=5 --cdrom=/home/Win11_22H2_Chinese_Simplified_x64v2.iso --network bridge=virbr0 --graphics vnc --os-variant win11 --noautoconsole

命令说明:

--name: 指定虚拟机名称
--vcpus: 设置 vCPU 数量
--ram: 设置内存大小
--disk: 设置虚拟磁盘大小和保存路径
--cdrom: 指定 ISO 镜像路径
--network: 使用 NAT 模式的默认网络
--graphics vnc: 设置使用 VNC 访问
--os-variant: 指定操作系统类型
--noautoconsole: 不自动打开控制台

命令执行成功后如图所示:

12.png

这时,再回到虚拟系统管理器,可以看到刚才通过命令创建的镜像已经在运行中,如图所示:

13.png

5.总结

最后,总结一下KVM相比较其它商业化虚拟机的一些独特优势:

  • 成本更低 - KVM 是开源免费的,使用时只需要投入运行平台的硬件成本。而其它商业化虚拟机需要支付授权费用。
  • 更高的性能 - KVM 是内核级虚拟化,性能开销极低。相比较商业化托管虚拟化,KVM性能更优。
  • 更优的安全性 - KVM 利用 Linux 的安全机制,提供更可靠的隔离。其它商业化虚拟机暴露了更多的攻击面。
  • 更灵活的环境 - KVM可以运行在各种标准服务器硬件上,更灵活。其它商业化虚拟机对服务器硬件有一定限制。
  • 更广泛的平台支持 - KVM 支持各种操作系统作为虚拟机平台。其它商业化虚拟机对不同操作系统的虚拟化支持不完全一致。
  • 更强大的群集功能 - KVM 可与 OpenStack 集成,获得强大的虚拟化集群管理功能。
  • 开源社区支持 - KVM 拥有活跃的开源社区提供支持和新功能。

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论