Red Hat Training

A Red Hat training course is available for RHEL 8

8.3. 使用命令行界面克隆虚拟机

要使用特定属性集(如为测试目的)快速创建新虚拟机,您可以克隆现有的虚拟机。要使用 CLI 完成此操作,请遵循以下步骤。

先决条件

  • 源虚拟机被关闭。
  • 确保有足够的磁盘空间来存储克隆的磁盘镜像。
  • 可选: 在创建多个虚拟机克隆时,从源虚拟机中删除唯一数据和设置,以确保克隆的虚拟机正常工作。具体说明请参阅 创建虚拟机模板

流程

  1. 使用 virt-clone 工具以及适合您环境和用例的选项。

    使用案例示例

    • 以下命令克隆一个名为 doppelganger 的本地虚拟机 ,并创建 doppelganger-clone 虚拟机。它还在与原始虚拟机磁盘镜像相同的位置,使用相同的数据创建 doppelganger-clone.qcow2 磁盘镜像:

      # virt-clone --original doppelganger --auto-clone
      Allocating 'doppelganger-clone.qcow2'                            | 50.0 GB  00:05:37
      
      Clone 'doppelganger-clone' created successfully.
    • 以下命令克隆一个名为 geminus1 的虚拟机,并创建一个名为 geminus2 的本地虚拟机,它只使用 geminus1的多个磁盘中的两个。

      # virt-clone --original geminus1 --name geminus2 --file /var/lib/libvirt/images/disk1.qcow2 --file /var/lib/libvirt/images/disk2.qcow2
      Allocating 'disk1-clone.qcow2'                                      | 78.0 GB  00:05:37
      Allocating 'disk2-clone.qcow2'                                      | 80.0 GB  00:05:37
      
      Clone 'geminus2' created successfully.
    • 要将虚拟机克隆到其他主机,请迁移虚拟机而无需在本地主机上取消它。例如,以下命令将之前创建的 geminus2 虚拟机克隆到 10.0.0.1 远程系统,包括本地磁盘。请注意,使用这些命令还需要 100.0.1 的 root 权限。

      # virsh migrate --offline --persistent geminus2 qemu+ssh://root@10.0.0.1/system
      root@10.0.0.1's password:
      
      # scp /var/lib/libvirt/images/disk1-clone.qcow2 root@10.0.0.1/user@remote_host.com://var/lib/libvirt/images/
      
      # scp /var/lib/libvirt/images/disk2-clone.qcow2 root@10.0.0.1/user@remote_host.com://var/lib/libvirt/images/

验证

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

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

    # virsh list --all
    Id   Name                  State
    ---------------------------------------
    -    doppelganger          shut off
    -    doppelganger-clone    shut off
  2. 启动克隆并观察它是否引导。

    # virsh start doppelganger-clone
    Domain 'doppelganger-clone' started

其它资源