返回星港

链式克隆虚拟机,实现一秒开十台,每台虚拟机占用只有256K!

OBSERVER又菜又爱玩的小朱 LAUNCH RESYNC JUMPS3 次跃迁
星域 NAS
链式克隆虚拟机,实现一秒开十台,每台虚拟机占用只有256K! · 封面
https://www.bilibili.com/video/BV17dRvBPERJ?share_source=copy_web

概述

本教程记录在飞牛NAS(FnOS)上实现 KVM 虚拟机链式克隆的完整过程。链式克隆基于 qcow2 的 backing file 技术,克隆虚拟机仅存储与模板的差异数据,极大节省磁盘空间。

优势

  • 创建速度极快 — 秒级完成

  • 磁盘空间极省 — 克隆初始仅占约 256KB ~ 数百KB

  • 批量部署方便 — 一个模板可派生出多个克隆

操作步骤

第一步:创建源虚拟机

  1. 在飞牛 Web 管理界面中,正常创建一台虚拟机并安装好操作系统。如果是Windows务必要执行通用化 运行菜单输入 sysprep

  2. 完成所有系统配置和软件安装

  3. 关闭虚拟机(模板必须从关机状态的虚拟机制作)

本教程以飞牛创建的 Ubuntu 24.04 虚拟机 za66xazz 为例。

第二步:确认源虚拟机信息

列出所有虚拟机

virsh list --all
​

飞牛虚拟机名称不是真实命令中的名称,请根据具体配置信息确认

sudo virsh dominfo za66xazz
FF923ACE-6BA7-46F1-A30A-4C36E0727571.png

查看磁盘信息:

sudo virsh domblklist za66xazz
9B34A4AB-93E6-4677-9B39-92DD1B7FA1DF.png

查看磁盘镜像详情:

sudo qemu-img info /vol1/vm/pool/c2656788-aa6b-4b5f-9e96-a220aac9ae65-m2iq.qcow2
77481D3A-D96C-4309-A015-6A47C08A1729.png

第三步:复制源磁盘为模板基础镜像

创建一个专门的模板文件夹

1C9E72EE-3DC9-49DB-97AF-1F07302BC3FA.png

将源虚拟机的磁盘移动或复制到模板目录:

sudo cp /vol1/vm/pool/c2656788-aa6b-4b5f-9e96-a220aac9ae65-m2iq.qcow2 \
    /vol1/1000/templates/ubuntu24.04-base.qcow2
​

💡 提示:这里使用 cp 而非移动,源虚拟机保持不变,便于确认无误后再决定是否删除。

第四步:将模板镜像设为只读

这一步非常重要! 所有克隆都依赖此模板镜像,一旦被修改会影响所有克隆虚拟机:

sudo chmod 444 /vol1/1000/templates/ubuntu24.04-base.qcow2
​

验证:

ls -lh /vol1/1000/templates/ubuntu24.04-base.qcow2
​

输出:

-r--r--r--+ 1 root root 4.5G Mar 14 20:37 /vol1/1000/templates/ubuntu24.04-base.qcow2
​

第五步:创建链式克隆磁盘

使用 qemu-img create 基于模板创建链式克隆磁盘:

sudo qemu-img create -f qcow2 -F qcow2 \
    -b /vol1/1000/templates/ubuntu24.04-base.qcow2 \
    /vol1/1000/templates/disk/ubuntu24-clone-01.qcow2
​

输出:

Formatting '/vol1/1000/templates/ubuntu24-clone-01.qcow2', fmt=qcow2
cluster_size=65536 extended_l2=off compression_type=zlib size=21474836480
backing_file=/vol1/1000/templates/ubuntu24.04-base.qcow2 backing_fmt=qcow2
lazy_refcounts=off refcount_bits=16
​

参数说明:

参数

说明

-f qcow2

克隆磁盘格式为 qcow2

-F qcow2

backing file(模板)的格式为 qcow2

-b <路径>

指定 backing file(模板基础镜像)

最后的路径

克隆磁盘的输出路径

验证链式克隆磁盘:

sudo qemu-img info /vol1/1000/templates/ubuntu24-clone-01.qcow2
9EB5DE80-C267-49E1-8655-70C8D8F0BA38.png

输出:

✅ 关键对比:模板镜像 4.5 GB,克隆磁盘仅 256 KB!

第六步:在飞牛中新建虚拟机并选择导入qcow2

4A5637E8-11D3-4342-8F08-894DA2EC9A56.png

选择一个存储空间

E376ED1D-F536-416E-BFA2-6D5DC1502882.png

直接开机即可

A1EF9319-5C62-489A-88BF-37B873F36274.png

注意事项

⚠️ 模板镜像不可修改 — 模板镜像已设为只读(444),所有克隆都依赖此镜像,修改或删除会导致所有克隆虚拟机无法启动。

⚠️ 克隆的虚拟机与模板共用相同的系统配置(hostname、MAC 地址、SSH 密钥等),多台克隆可能产生冲突。建议首次启动后手动修改 hostname 和重新生成 SSH 密钥。