1.引言
本文在Debian12系统上使用KVM分别以图形界面和命令行的方式实现了虚拟镜像的管理。KVM是一种内嵌于Linux内核的开源虚拟化技术, 它可以将Linux系统转变为虚拟机监控程序,使主机计算机能够运行多个隔离的虚拟环境。
相比其它商业版的虚拟机,KVM在成本、性能、安全性、跨平台方面具备独特的优势。KVM是Linux系统的一部分,Linux有的,KVM也全具备,KVM利用安全增强型Linux(SELinux)和安全虚拟化(sVirt)组合来加强虚拟机的安全性和隔离性。KVM能够使用Linux支持的任何存储,包括某些本地磁盘和网络附加存储(NAS),还可以利用多路径I/O来增强存储并提供冗余能力。KVM继承了Linux的性能,针对客户机和请求数量的增长进行扩展,满足负载的需求。KVM可以让要求最苛刻的应用工作负载实现虚拟化,而这也是许多企业虚拟化设置的基础,如数据中心和私有云等。
2.KVM组件安装
在任何现代Linux系统上都可以安装KVM组件实现虚拟化, 这里以稳定性著称的Debian系统作为实验目标。
如果想和本文中的实验环境保持一致,可以去这里下载最新的Debian系统:www.debian.org/
登录到Debian系统中,输入以下命令先看一下CPU是否支持虚拟化:
# egrep 'vmx|svm' /proc/cpuinfo
命令返回的结果信息如下:
如果出现图中的"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,则表示网络状态未激活动,如图所示:
接着输入以下命令来将网络激活:
# virsh net-start --network default
再次查看状态,如果状态变为active,则说明网络激活成功,如图所示:
完成网络激活之后,下面就可以正式开始安装虚拟镜像了。
3.利用图形界面安装镜像
要在图形界面下安装虚拟系统镜像,需要在软件列表中找到"虚拟系统管理器"打开进行操作,如图所示:
点击图标后,将打开虚拟系统管理器的主界面,相比VMware等商业软件, 开源KVM的界面非常简单,如图所示:
点击左上方的电脑图标开始创建虚拟镜像,如图所示:
在这里通常大多数情况都是使用ISO映像安装,直接默认第一个就行,下面的架构通常都选择:x86_64,点击右下角的"Forward"按钮进入下一步,如图所示:
在这里我上传的是Windows11的ISO镜像, 通过浏览按钮选择ISO镜像位置, 勾选上自动对介质进行检测,点击"Forward"按钮进入下一步,如图所示:
这里主要设置内存大小和CPU数量, 注意这里的内存大小单位是MB, 如果按照GB单位进行设置,会因为内存不足导致虚拟系统启动失败。配置完成后点击"Forward"按钮进入下一步,如图所示:
在这里主要为虚拟镜像分配硬盘空间,根据实际设置大小即可,这里硬盘的默认大小单位为GB,点击"Forward"按钮进入下一步,如图所示:
在这里可以看到之前步骤设置的所有选项,确认没问题后,点击"完成"按钮回到主界面,接着需要配置引导选项,默认将CDROM放到引导顺序最前面,如图所示:
点击右下角的"apply"使设置生效, 前面界面上的启动虚拟机按钮,将看到熟悉的Windows安装界面,如图所示:
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: 不自动打开控制台
命令执行成功后如图所示:
这时,再回到虚拟系统管理器,可以看到刚才通过命令创建的镜像已经在运行中,如图所示:
5.总结
最后,总结一下KVM相比较其它商业化虚拟机的一些独特优势:
- 成本更低 - KVM 是开源免费的,使用时只需要投入运行平台的硬件成本。而其它商业化虚拟机需要支付授权费用。
- 更高的性能 - KVM 是内核级虚拟化,性能开销极低。相比较商业化托管虚拟化,KVM性能更优。
- 更优的安全性 - KVM 利用 Linux 的安全机制,提供更可靠的隔离。其它商业化虚拟机暴露了更多的攻击面。
- 更灵活的环境 - KVM可以运行在各种标准服务器硬件上,更灵活。其它商业化虚拟机对服务器硬件有一定限制。
- 更广泛的平台支持 - KVM 支持各种操作系统作为虚拟机平台。其它商业化虚拟机对不同操作系统的虚拟化支持不完全一致。
- 更强大的群集功能 - KVM 可与 OpenStack 集成,获得强大的虚拟化集群管理功能。
- 开源社区支持 - KVM 拥有活跃的开源社区提供支持和新功能。