11.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-1-example-VM-2-clone>.qcow2 root@192.0.2.1/<user@remote_host.com>://var/lib/libvirt/images/

验证

  1. 验证虚拟机是否已成功克隆,且正在正常工作:

    1. 确认克隆已添加到主机上的虚拟机列表中:

      # virsh list --all
      Id   Name                  State
      ---------------------------------------
      -    example-VM-1          shut off
      -    example-VM-1-clone    shut off
    2. 启动克隆并观察它是否启动:

      # virsh start example-VM-1-clone
      Domain 'example-VM-1-clone' started

其它资源