手搓KVM虚拟化!Ubuntu 26.04 + KVM 7.0.0,告别VMware的低成本玩法

对于我个人而言,在条件允许的情况下,我还是比较喜欢使用VMware的虚拟化产品(Hyper-V别开!VMware 25H2安装避坑指南,附Hermes新动向)。在虚拟化的江湖里,VMware也一直是无数人心中的白月光。但时移世易,开源的KVM凭借其随风潜入夜、润物细无声的灵活性(不会吧!KVM竟然不支持磁盘的精简置备!?),成了技术人的新宠。当然,介于当前的形式,国产化也是一个很好的替代方向(软考党必看:H3C CAS最新版安装避坑全记录,你的内存条准备好了吗?)。

对于低成本用户而言,如果动手能力强的话,使用KVM完全可以手搓一个虚拟化环境(通过命令行配置调整KVM的虚拟网络)。

关于KVM,我们之前基于CentOS做过介绍(最小化安装的CentOS7部署KVM虚拟机),CentOS停服之后,我们也介绍了Ubuntu上的配置方法(如何在Ubuntu 23.10部署KVM并创建虚拟机?)。

恰逢Ubuntu 26.04 LTS顶着7.0.0内核的光环新鲜出炉(仅占752MB内存!Ubuntu 26.04 Server版上手:这才是服务器该有的样子!),咱们今天就来一次老树发新芽,看看在这片新土壤上,手搓一个KVM虚拟化环境是否依然丝滑。

首先,我们先安装核心虚拟化组件。

sql 复制代码
apt-get updateapt-get install -y qemu-system-x86 libvirt-daemon-system libvirt-clients bridge-utils virtinst cpu-checker qemu-utilsapt list qemu-system-x86 libvirt-daemon-system libvirt-clients bridge-utils virtinst cpu-checker qemu-utilskvm-ok

可以看到,KVM已经正确安装。

虚拟化核心组件libvirt服务器默认处于未运行状态,需要我们手动启动服务。

bash 复制代码
systemctl start libvirtdsystemctl enable libvirtdsystemctl status libvirtd

当然,默认情况下,KVM网络也是没有的,我们需要配置一个初始化网络。

sql 复制代码
virsh net-start defaultvirsh net-autostart default

之前的案例中,我们使用了virt-manager这个图形化管理工具。今天,我们来点高级的,用纯命令行来创建一台虚拟机。

参考CAS的配置(H3C CAS实战:CVM纳管CVK的相爱相杀,这波操作太秀了!),我们在KVM的默认目录/var/lib/libvirt/下创建两个目录,分别用于存放ISO镜像和VM虚拟机磁盘文件。

bash 复制代码
mkdir /var/lib/libvirt/images/isomkdir /var/lib/libvirt/images/vm

之前使用virt-manager创建虚拟机,我们也遇到过磁盘精简置备的问题(不是KVM不支持精简置备的磁盘,而是VMM)。这次,我们直接使用qemu-img命令创建一个qcow2格式的系统盘(qemu-img命令手册),它默认就是精简置备模式,实际占用空间随使用量动态增长。

swift 复制代码
qemu-img create -f qcow2 /var/lib/libvirt/images/vm/vsr1000.qcow2 4Gqemu-img info /var/lib/libvirt/images/vm/vsr1000.qcow2

可以看到,新创建的系统盘,默认只有196 KB,非常节省磁盘空间。

接下来,我们执行以下命令,创建一台VSR虚拟机。

apache 复制代码
virt-install \  --name VSR1000 \  --ram 2048 \  --vcpus 2 \  --disk path=/var/lib/libvirt/images/vm/vsr1000.qcow2,format=qcow2 \  --os-variant generic \  --network default \  --graphics vnc,listen=0.0.0.0 \  --cdrom /var/lib/libvirt/images/iso/VSR1000_H3C-CMW710-R1362P12-X64.iso \  --noautoconsole

其中,--name用于指定虚拟机名称,--ram和--vcpus用于指定给虚拟机分配的内存(MB)和CPU数量,--disk用于指定系统盘文件,--cdrom用于指定要挂载的ISO镜像文件,--os-variant generic指使用通用系统优化设置,--network用于指定虚拟机连接的网络,--noautoconsole命令指示创建完成后不自动跳转到控制台,保持后台运行。因为VSR安装时需要用VNC连接,所以我们通过配置--graphics vnc,listen=0.0.0.0选项,用于开启VNC并允许远程连接。

nginx 复制代码
virsh listvirsh vncdisplay VSR1000

这里提醒一点,连接VNC时,我们需要查看其对应的VNC编号,系统默认编号开始于5900,我们将获取到编号最后的数字替换成对应的数字即可,然后通过UltraVNC Viewer进行连接。

然后,正常完成VSR的部署(网络之路17:认识网络功能虚拟化NFV)。

等待部署完成,我们就可以使用命令直接连接到VSR的命令行了。

javascript 复制代码
virsh console VSR1000

诶?这个报错是不是很熟悉?(如何在EVE-NG中导入VSR1000设备?怎么解决登录问题?

我们进入到VNC再看一眼。

果然,对于VSR而言,默认的console就是VNC连接,而KVM连接的串口Serial则对应VSR的AUX用户线。所以,我们需要调整认证方式为免认证,并且配置用户为管理员用户。

现在再通过命令连接虚拟机,就没有问题了。

再检查一下磁盘使用情况。

非常棒,4 GB的磁盘仅占用374 MB的空间,还得是精简置备。

当然,如果我们想关闭虚拟机,可以执行以下命令:

apache 复制代码
virsh destroy VSR1000virsh list --all

好家伙,这个VSR竟然占用了1 GB的运行内存,如果仅运行libvirt服务,系统内存也只用了849 MB,简直太棒了。

在Ubuntu 26.04 + Kernel 7.0.0的组合下,KVM的部署依然稳如泰山。尤其是内存管理上,跑一个VSR1000后的系统余温尚存,剩余可用内存相当可观,这对于咱们实验环境的层层套娃无疑是重大利好。

告别了图形界面的鼠标流,拥抱纯命令行的指尖艺术,这不仅是技术的回归,更是对底层逻辑的敬畏。

***推荐阅读***

我们的WireGuard管理系统支持手机电脑了!全平台终端配置,支持扫码连接,一键搞定

保姆级教程:一条命令部署OpenVPN管理系统V4版,支持Win/Mac/安卓/iOS全平台接入

成本省下99.7%!用40元的腾讯云服务器自建IPsecVPN,成功对接企业级飞塔防火墙

别再乱选VPN了!实测数据告诉你:为什么L2TP是个"坑"

SRv6部署第一坑:为什么配置了Locator却Ping不通?

嫌一键部署不过瘾?带你手搓Hermes智能体,主打一个通透

Hyper-V别开!VMware 25H2安装避坑指南,附Hermes新动向

H3C CAS实战:CVM纳管CVK的相爱相杀,这波操作太秀了!

VPP转发性能从10G暴增至24G?揭秘OpenEuler虚拟机的极限压榨术

NVUE不支持OSPFv3?别慌!教你一招搞定SRv6地基

手机也能跑DeepSeek-R1/Qwen3了:零成本搭建AI推理平台

2048卡昇腾910C集群算力集群交付工程手册

2048卡H100算力中心100G无阻塞存储网建设方案

相关推荐
wj30558537813 小时前
课程 9:模型测试记录与 Prompt 策略
linux·人工智能·python·comfyui
abigriver13 小时前
打造 Linux 离线大模型级语音输入法:Whisper.cpp + 3090 显卡加速与 Rime 中英混输终极调优指南
linux·运维·whisper
wangqiaowq13 小时前
windows下nginx的安装
linux·服务器·前端
YYRAN_ZZU14 小时前
Petalinux新建自动脚本启动
linux
charlie11451419114 小时前
嵌入式Linux驱动开发pinctrl篇(1)——从寄存器到子系统:驱动演进之路
linux·运维·驱动开发
Agent手记14 小时前
异常考勤智能预警与处理与流程优化方案 | 基于企业级Agent的超自动化实战教程
运维·人工智能·ai·自动化
于小猿Sup14 小时前
VMware在Ubuntu22.04驱动Livox Mid360s
linux·c++·嵌入式硬件·自动驾驶
cen__y15 小时前
Linux12(Git01)
linux·运维·服务器·c语言·开发语言·git
不仙52016 小时前
VMware Workstation 26.0.0 在 Ubuntu 24.04 (内核 6.17.0) 上的安装与内核模块编译问题
linux·ubuntu·elasticsearch
1892280486117 小时前
NY352固态MT29F32T08GWLBHD6-24QJ:B
大数据·服务器·人工智能·科技·缓存