KVM——虚拟机的复制与克隆

目录

一. 复制虚拟机 

二. 虚拟机克隆 

1. 使用 virt-clone

2.  使用 virt-manager(图形界面)

3. 使用 qemu-img (磁盘镜像克隆)


一. 复制虚拟机 

配置文件路径:/etc/libvirt/qemu/*.xml

磁盘镜像文件路径: /var/lib/libvirt/images/*.img

复制镜像文件 

[root@kvm-server ~]# cd /var/lib/libvirt/images/
[root@kvm-server images]# cp vm10.img vm20.img

 复制配置文件

[root@kvm-server images]# cd /etc/libvirt/qemu/
[root@kvm-server qemu]# cp vm10.xml vm20.xml

生成一个UUID,复制这个ID

[root@kvm-server qemu]# uuidgen
55fc4773-8335-4e13-a394-9328b1a980ce

修改配置文件

[root@kvm-server qemu]# vim vm20.xml

保存编辑并退出

定义虚拟机

[root@kvm-server qemu]# virsh define ./vm20.xml

 查看所有虚拟机列表

[root@kvm-server qemu]# virsh list --all
 Id   名称   状态
-------------------
 3    vm10   运行
 -    vm20   关闭

启动

[root@kvm-server qemu]# virsh start vm20

进入虚拟机

[root@kvm-server qemu]# virsh console vm20
连接到域 'vm20'
转义字符是 ^] (Ctrl + ])

[root@localhost ~]# 

快捷键 ctrl + ] 退出

二. 虚拟机克隆 

在 KVM (Kernel-based Virtual Machine) 中,克隆虚拟机可以通过几种不同的方式来完成 

1. 使用 virt-clone

virt-clone 是一个用于克隆虚拟机的工具,它是 libvirt 的一部分。使用它可以很方便地克隆虚拟机。以下是一个基本的命令示例:

virt-clone --original <原始虚拟机名称> --name <新虚拟机名称> --auto-clone
  • --original:指定要克隆的原始虚拟机名称。
  • --name:指定新虚拟机的名称。
  • --auto-clone:自动克隆虚拟机的磁盘。

示例:

virt-clone 要求源虚拟机必须是关闭状态才能进行克隆操作。 

[root@kvm-server qemu]# virsh list
 Id   名称   状态
-------------------
 3    vm10   运行
 7    vm20   运行

[root@kvm-server qemu]# virsh shutdown vm20
域 'vm20' 正在关闭

 克隆

[root@kvm-server qemu]# virt-clone -o vm20 -n vm30 -f /var/lib/libvirt/images/vm30.img 
正在分配 'vm30.img'                                                                        8% [======-                                                                     ] 234 MB/s | 454 MB  00:00:19 正在分配 'vm30.img'                                                                       14% [==========-                                                                 ] 241 MB/s | 723 MB  00:00:18 正在分配 'vm30.img'                                                                       18% [==============                                                              ] 237 MB/s | 944 MB  00:00:17 正在分配 'vm30.img'                                                                       22% [=================                                                           ] 234 MB/s | 1.1 GB  00:00:16 正在分配 'vm30.img'                                                                       26% [====================                                                        ] 223 MB/s | 1.3 GB  00:00:16 正在分配 'vm30.img'                                                                       29% [======================                                                      ] 210 MB/s | 1.5 GB  00:00:17 正在分配 'vm30.img'                                                                       32% [========================                                                    ] 195 MB/s | 1.6 GB  00:00:17 正在分配 'vm30.img'                                                                       100% [===========================================================================] 873 MB/s | 5.0 GB  00:00:00 正在分配 'vm30.img'                                                                                                                                                                   | 5.0 GB  00:00:07     

成功克隆 'vm30'。

 测试启动

[root@kvm-server qemu]# virsh list --all
 Id   名称   状态
-------------------
 3    vm10   运行
 -    vm20   关闭
 -    vm30   关闭

[root@kvm-server qemu]# virsh start vm30
域 'vm30' 已启动

常用参数和选项

--original <原始虚拟机名称> (-o)

指定要克隆的原始虚拟机名称。
--name <新虚拟机名称> (-n)

指定新虚拟机的名称。
--file <新磁盘镜像路径> (-f)

指定新虚拟机的磁盘镜像文件路径。
--auto-clone

自动克隆虚拟机的所有磁盘。这是默认行为,通常不需要单独指定。
--mac <MAC地址>

指定新虚拟机的 MAC 地址。如果不指定,virt-clone 会自动生成一个新的 MAC 地址。
--disk <路径>

允许指定其他磁盘镜像路径。格式类似于 --disk path=/path/to/disk.img。可以用于指定多个磁盘。
--network <网络配置>

指定网络配置。可以使用 --network network=<网络名> 或 --network bridge=<桥接名称> 来指定网络。
--no-virtio

禁用 virtio 设备类型,使用传统的设备类型(如 IDE)。
--no-checks

禁用所有检查,这在克隆复杂的虚拟机时可能有用,但一般不推荐使用。
--metadata <路径>

指定用于生成新虚拟机元数据的 XML 文件路径。
--no-uuid

禁用自动生成新的 UUID。适用于需要保留原始 UUID 的情况。
--bridge <桥接设备>

指定新虚拟机连接到的桥接网络设备。

2.  使用 virt-manager(图形界面)

 

3. 使用 qemu-img (磁盘镜像克隆)

如果只需要克隆虚拟机的磁盘镜像文件,可以使用 qemu-img 工具。

qemu-img 是 QEMU(一个开源虚拟化平台)中的一个工具,用于创建、转换和修改虚拟机磁盘镜像文件。它支持多种磁盘镜像格式,如 QCOW2、RAW、VMDK、VHD 等。 

克隆镜像文件的作用 :

  • 备份: 克隆镜像文件可以作为虚拟机的备份。当你需要在系统升级、迁移或其他操作前备份虚拟机时,可以克隆当前镜像,以便在需要时恢复到当前状态。

  • 测试与开发: 在开发或测试环境中,克隆镜像文件可以帮助创建多个相同配置的虚拟机实例。这对于测试不同配置或软件版本的兼容性非常有用。

  • 迁移: 克隆镜像文件可以用于迁移虚拟机到不同的物理服务器或存储位置。例如,你可以将虚拟机从一个存储系统迁移到另一个存储系统,同时保持虚拟机的状态不变。

  • 创建模板: 克隆镜像文件可以作为虚拟机的模板,用于快速创建多个相同配置的虚拟机实例。这在需要大量相似虚拟机的场景中非常有用,如大规模部署或实验室环境。

qemu-img convert -f <源格式> -O <目标格式> <源镜像文件> <目标镜像文件>
  • <源格式>:源镜像文件的格式,如 qcow2raw 等。如果你不知道格式,可以用 qemu-img info <源镜像文件> 来查看。
  • <目标格式>:目标镜像文件的格式。
  • <源镜像文件>:你要克隆的源镜像文件。
  • <目标镜像文件>:克隆后的目标镜像文件。
[root@kvm-server images]# virsh list
 Id   名称   状态
-------------------
 3    vm10   运行

[root@kvm-server images]# virsh shutdown vm10
域 'vm10' 正在关闭


# 进入镜像文件目录
[root@kvm-server qemu]# cd /var/lib/libvirt/images/

# 克隆镜像文件
[root@kvm-server images]# qemu-img convert -f qcow2 -O qcow2 vm10.img vm10-clone.img

[root@kvm-server images]# ll
总用量 3486824
-rw-r--r-- 1 root root 1780285440  8月  6 20:14 vm10-clone.img
-rw------- 1 root root 5369757696  8月  6 20:13 vm10.img
  • 24
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZZDICT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值