9.3. 使用命令行界面克隆虚拟机
为了进行测试,要使用特定属性集创建新虚拟机,您可以使用 CLI 克隆现有虚拟机。
先决条件
- 源虚拟机被关闭。
- 确保有足够的磁盘空间来存储克隆的磁盘镜像。
- 可选: 在创建多个虚拟机克隆时,从源虚拟机中删除唯一数据和设置,以确保克隆的虚拟机正常工作。具体步骤请参阅创建虚拟机模板。
流程
使用
virt-clone
工具以及适合您环境和用例的选项。使用案例示例
以下命令克隆一个名为
example-VM-1
的本地虚拟机,并创建example-VM-1-clone
虚拟机。它还会在与原始虚拟机的磁盘镜像相同的位置创建并分配example-VM-1-clone.qcow2
磁盘镜像,并使用相同的数据:# virt-clone --original example-VM-1 --auto-clone Allocating 'example-VM-1-clone.qcow2' | 50.0 GB 00:05:37 Clone 'example-VM-1-clone' created successfully.
以下命令克隆一个名为
example-VM-2
的虚拟机,并创建一个名为example-VM-3
的本地虚拟机,它只使用example-VM-2
的多个磁盘中的两个:# virt-clone --original example-VM-2 --name example-VM-3 --file /var/lib/libvirt/images/disk-1-example-VM-2.qcow2 --file /var/lib/libvirt/images/disk-2-example-VM-2.qcow2 Allocating 'disk-1-example-VM-2-clone.qcow2' | 78.0 GB 00:05:37 Allocating 'disk-2-example-VM-2-clone.qcow2' | 80.0 GB 00:05:37 Clone 'example-VM-3' created successfully.
要将虚拟机克隆到其他主机,请迁移虚拟机而无需在本地主机上取消它。例如,以下命令将之前创建的
example-VM-3
虚拟机克隆到192.0.2.1
远程系统,包括其本地磁盘。请注意,您需要 root 权限才能为192.0.2.1
运行这些命令:# virsh migrate --offline --persistent example-VM-3 qemu+ssh://root@192.0.2.1/system root@192.0.2.1's password: # scp /var/lib/libvirt/images/<disk-1-example-VM-2-clone>.qcow2 root@192.0.2.1/<user@remote_host.com>://var/lib/libvirt/images/ # scp /var/lib/libvirt/images/<disk-2-example-VM-2-clone>.qcow2 root@192.0.2.1/<user@remote_host.com>://var/lib/libvirt/images/
验证
验证虚拟机是否已成功克隆,且正在正常工作:
确认克隆已添加到主机上的虚拟机列表中:
# virsh list --all Id Name State --------------------------------------- - example-VM-1 shut off - example-VM-1-clone shut off
启动克隆并观察它是否引导起来了:
# virsh start example-VM-1-clone Domain 'example-VM-1-clone' started
其它资源
-
您系统上的
virt-clone (1)
手册页 - 迁移虚拟机