Red Hat Training

A Red Hat training course is available for Red Hat Virtualization

6.12. 导出及导入虚拟机和模板

注意

导出存储域已过时。存储数据域可以从一个数据中心中分离并导入同一个环境或另外一个环境中的其它数据中心中。虚拟机、浮动虚拟磁盘镜像和模板可以从导入的存储域中上传到附加到的数据中心中。如需了解更多与导入存储域相关的信息,请参阅Red Hat Virtualization 管理指南中的导入存在的存储域部分。
以 OVF (Open Virtual Machine Format,开放虚拟化格式)保存的虚拟机和模板可以被导出,并导入到同一个或不同 Red Hat Virtualization 环境中的数据中心中。
在导出或导入虚拟机和模板时,一个活跃的导出域必须被附加到包括了要被导出或导入的虚拟机或模板所在的数据中心中。导出域起到了一个临时存储的功能,它为每个虚拟机和模板都准备了两个目录。一个目录包括了虚拟机或模板的 OVF 文件;另一个目录包括了虚拟机或模板的磁盘镜像文件。
导入和导出虚拟机和模板有三个阶段:
  1. 把虚拟机或模板导出到一个导出域中。
  2. 把导出域从一个数据中心中取消,并移到另一个数据中心上。您可以把导出域附加到同一个 Red Hat Virtualization 环境中的数据中心上,也可以把它附加到由另外一个 Red Hat Virtualization Manager 所管理的 Red Hat Virtualization 环境的数据中心。

    注意

    一个导出域只能同时被一个数据中心中使用。这意味着它不能被同时附加到源数据中心和目标数据中心上。
  3. 把虚拟机或模板导入到导出域所在的数据中心。
在导入和导出虚拟机或模板时,包括虚拟机或模板基本信息(如名称和描述、资源分配、高可用性设置)的属性会被保留,而特定的用户角色和权限在导出过程中不会被保留。因此,如果访问虚拟机或模板需要特定的用户角色和权限,则需要在虚拟机或模板被导入后重新设置。
您也可以使用 V2V 功能从其他虚拟化供应商处(例如 Xen 或 VMware)导入虚拟机,或导入 Windows 虚拟机。V2V 对虚拟机实施转化,以便其能够被 Red Hat Virtualization 托管。如需了解更多与安装和使用 V2V 相关的信息,请参阅使用 virt-v2v 将其他虚拟机管理器提供的虚拟机转化为 KVM

重要

导出或导入虚拟机之前,必须先将其关闭。

6.12.1. 导出及导入虚拟机和模板

以下提供了一组图来介绍从一个数据中心导出一个虚拟机或模板,并把它导入到另一个数据中心的过程。

过程 6.21. 导出并导入虚拟机和模板

  1. 为源数据中心添加一个导出域。
    添加导出域

    图 6.6. 添加导出域

  2. 把虚拟机或模板导出到导出域。
    导出虚拟资源

    图 6.7. 导出虚拟资源

  3. 从源数据中心上断开导出域。
    断开导出域

    图 6.8. 断开导出域

  4. 把导出域添加到目标数据中心上。
    添加导出域

    图 6.9. 添加导出域

  5. 把虚拟机或模板导入到目标数据中心。
    导入虚拟资源

    图 6.10. 导入虚拟资源

6.12.2. 把一个虚拟机导出到导出域

为了把虚拟机导入到另一个数据中心,这个虚拟机需要先被导出到导出域中。在您把虚拟机导出到导出域前,请确认导出域已经被添加到待导出虚拟机所在的数据中心中。

警告

导出之前,必须先关闭虚拟机。

过程 6.22. 把一个虚拟机导出到导出域

  1. 虚拟机标签页并选择一个虚拟机。
  2. 导出
  3. 另外,还可以选择下面的选择框:
    • 强制覆盖:覆盖已经存在于这个导出域中的虚拟机镜像。
    • Collapse 快照:为每个磁盘创建一个单独的导出卷。使用这个选项将会删除所有的快照恢复点;在导出域中包括虚拟机所基于的模板;并删除虚拟机和模板的依赖关系。对于依赖于一个模板的虚拟机,可以选择这个选项,并把模板和虚拟机一起导出;或确保模板已经存在于目标数据中心中。

      注意

      当您通过模板创建虚拟机时,新建虚拟机资源分配存储分配中包括两个分配选项。
      • 如果选克隆选项,虚拟机将不会依赖模板,模板也不必须包括在目标数据中心中。
      • 如果选 Thin 选项,虚拟机需要依赖模板,模板必须存在于目标数据中心中,或和虚拟机一起被导出。或者,您也可以选择 Collapse 快照复选框,这会把模板磁盘和虚拟机磁盘合并为一个单一的磁盘。
      选择一个虚拟机,在它的详情框的常规标签页中可以查看选择了哪个选项。
  4. 确定
导出虚拟机的过程开始。在导出的过程中,虚拟机会在虚拟机结果列表中被显示,它的状态为 Image Locked。这个过程所需要的时间会取决于您的虚拟机硬盘镜像的大小,以及您所使用的存储硬件的情况(它有可能会需要长达一个小时的时间)。您可以使用事件页来查看它的进程。当这个过程完成后,虚拟机被导出到导出域中,并在导出域的详情框中的虚拟机导入标签页中显示。

6.12.3. 把虚拟机导入到目标数据中心

您已经把虚拟机导出到导出域。在这个虚拟机可以被导入到新的数据中心前,导出域必须被添加到目标数据中心上。

过程 6.23. 把虚拟机导入到目标数据中心

  1. 存储标签页,在结果列表中选择导出域。导出域的状态必须是活跃
  2. 在详情框中点虚拟机导入标签页列出所有要导入的虚拟机。
  3. 选一个或多个需要导入的虚拟机,点导入
    导入虚拟机

    图 6.11. 导入虚拟机

  4. 选择默认存储域集群
  5. 选择 Collapse 快照来删除快照的恢复点,并包括虚拟机所基于的模板。
  6. 选择要被导入的虚拟机后点磁盘子标签页。您可以通过选择这个标签页中的分配协议存储域下拉列表指定这个虚拟机要使用的磁盘类型是 thinly provisioned 或是 preallocated,以及磁盘所在的存储域。另外,一个特殊的图标被用来标识哪一个被导入的磁盘将被作为虚拟机的引导磁盘。
  7. 确定导入虚拟机。
    如果虚拟机己经在虚拟环境中存在了,导入虚拟机冲突窗口会出现。
    导入虚拟机冲突窗口

    图 6.12. 导入虚拟机冲突窗口

  8. 选择以下选项之一:
    • 不导入
    • 作为克隆导入并在新名字项中为这个虚拟机输入一个不同的值。
  9. 或者选择全部应用来导入所有重复的虚拟机,然后在克隆虚拟机后缀项中输入一个后缀(这些导入的虚拟机都会在名称中加这个相同的后缀)。
  10. 确定

重要

在进行一个导入操作时,您只能导入具有相同架构的虚拟机。如果在您选择导入的虚拟机中有和其它虚拟机架构不同的虚拟机,系统将会显示一个警告信息来要求您修改您的选择。

6.12.4. 从 VMware 供应商中导入一个虚拟机

将 VMware vCenter 供应商提供的虚拟机导入到您的 Red Hat Virtualization 环境中。在每次导入期间,您可以通过在导入虚拟机窗口中输入其详情,导入 VMware 供应商提供的虚拟机,或者将 VMware 供应商添加为外部供应商,然后在导入期间选择已预先配置的供应商。如需添加外部供应商,请参阅添加 VMware 实例作为一个虚拟机供应商
导入之前,Red Hat Virtualization 使用 V2V 将 VMware 虚拟机转化为正确的格式。必须在至少一台主机(在本流程中被称为代理主机)上安装 virt-v2v 软件包。默认在 Red Hat Virtualization Hosts(RHVH)上提供 virt-v2v 软件包,但必须安装在 Red Hat Enterprise Linux 主机上。Red Hat Enterprise Linux 主机必须为 Red Hat Enterprise Linux 7.2 或更新版本。

警告

导入虚拟机之前,必须先将它关闭。在导入过程中,从 VMware 启动虚拟机将导致数据被破坏。

注意

如果导入失败,请参考代理主机上的 /var/log/vdsm/import//var/log/vdsm/vdsm.log 日志文件了解详情。

过程 6.24. 从 VMware 导入虚拟机

  1. 虚拟机标签页中,点导入打开导入虚拟机窗口。
    导入虚拟机窗口

    图 6.13. 导入虚拟机窗口

  2. 列表中选择 VMware
  3. 如果已把 VMware 供应商配置为一个外部供应商,从外部供应商列表中选择它。确认供应商的身份凭证是正确的。如果在配置外部供应商时没有设置目标数据中心或代理主机选项, 现在需要设置它们。
  4. 如果还没有配置 VMware 供应商,或需要从一个新的 VMware 供应商中导入虚拟机,则需要提供以下信息:
    1. 数据中心列表中选择虚拟机将在哪个数据中心中有效。
    2. vCenter 项中输入 VMware vCenter 实例的 IP 地址或完全限定域名。
    3. ESXi 项中输入一个主机的 IP 地址或完全限定域名。虚拟机将从这个主机中导入。
    4. 数据中心字段中输入指定的 ESXi 主机所在的数据中心和集群的名称。
    5. 如果您交换了 ESXi 主机和 Manager 之间的 SSL 证书,则保留验证服务器的 SSL 证书的勾选状态,以便验证 ESXi 主机的证书。如果未交换,则取消勾选该选项。
    6. 为 VMware vCenter 实例输入用户名密码。这个用户必须可以访问 VMware 数据中心,以及虚拟机所在的 ESXi 主机。
    7. 在数据中心中选择一个安装了 virt-v2v 的主机作为虚拟机导入操作的代理主机。这个主机需要可以连接到 VMware vCenter 外部供应商的网络。
  5. Load 在 VMware 供应商中产生一个虚拟机列表。
  6. 源中的虚拟机列表选择一个或多个虚拟机,然后使用箭头将它们移动到导入的虚拟机列表。点击下一步

    重要

    一个导入操作只能包括架构相同的虚拟机。如果待导入的虚拟机采用了不同架构,则会显示警告,提示您将其更改为采用同一架构的虚拟机。

    注意

    如果虚拟机的网络设备使用了 e1000 或 rtl8139 驱动器类型,那么在其被导入到 Red Hat Virtualization 之后,也会使用相同的驱动器类型。
    必要时,可在导入之后手动将驱动器类型更改为 VirtIO。要在导入虚拟机之后更改驱动器类型,请参阅第 5.2.2 节 “编辑一个网络接口”。如果网络设备使用 e1000 或 rtl8139 以外的其他驱动器类型,则在导入期间,驱动器类型自动更改为 VirtIO。附加 VirtIO-Drivers 选项使得 VirtIO 驱动器能够自动存储到导入的虚拟机文件中,以便在驱动器更改为 VirtIO 时,操作系统能够正常检测到此设备。
    导入虚拟机窗口

    图 6.14. 导入虚拟机窗口

  7. 选择虚拟机所要属于的集群
  8. 为虚拟机选择一个 CPU 配置集
  9. 选择 Collapse 快照来删除快照的恢复点,并包括虚拟机所基于的模板。
  10. 克隆选项改变虚拟机的名称和 MAC 地址、克隆所有磁盘并删除所有快照。如果在虚拟机的名称旁有一个警告图标,或在 VM in System 栏中有一个标记图标,则需要克隆虚拟机并修改它的名称。
  11. 选择要被导入的虚拟机后点磁盘子标签页。您可以通过选择这个标签页中的分配协议存储域下拉列表指定这个虚拟机要使用的磁盘类型是 thinly provisioned 或是 preallocated,以及磁盘所在的存储域。另外,一个特殊的图标被用来标识哪一个被导入的磁盘将被作为虚拟机的引导磁盘。

    注意

    目标存储域需要是一个基于文件的域。因为当前存在的限制,指定一个基于块的域会导致 V2V 操作失败。
  12. 如果选择了克隆选项,需要在常规子标签页中修改虚拟机的名称。
  13. 确定导入虚拟机。

6.12.5. 从 Xen 主机导入虚拟机

从 Red Hat Enterprise Linux 5 的 Xen 将虚拟机导入到您的 Red Hat Virtualization 环境中。导入之前,Red Hat Virtualization 使用 V2V 将 Xen 虚拟机转化为正确的格式。必须在至少一台主机(在本流程中称为代理主机)上安装 virt-v2v 软件包。Red Hat Virtualization Host(RHVH)主机会默认提供 virt-v2v 软件包,而如果使用 Red Hat Enterprise Linux 主机,就需要在主机上安装 virt-v2v 软件包。Red Hat Enterprise Linux 主机必须为 Red Hat Enterprise Linux 7.2 或更新版本。

警告

导入虚拟机之前,必须先将其关闭。在导入过程中,如果使用 Xen 启动虚拟机,将导致数据被损坏。

注意

如果导入失败,请参考代理主机上的 /var/log/vdsm/import//var/log/vdsm/vdsm.log 日志文件了解详情。

过程 6.25. 从 Xen 导入虚拟机

  1. 在代理主机和 Xen 主机之间启用公钥认证
    1. 登录到代理主机,为vdsm用户生成 SSH 公钥。
      # sudo -u vdsm ssh-keygen
    2. vdsm 用户的公钥复制到 Xen 主机中。
      # sudo -u vdsm ssh-copy-id root@xenhost.example.com
    3. 登录到 Xen 主机中,将其添加到代理主机的 known_hosts 文件中。
      # sudo -u vdsm ssh root@xenhost.example.com
  2. 登录到管理门户。在虚拟机选项卡中,点击导入,打开导入虚拟机窗口。
    “导入虚拟机”窗口

    图 6.15. “导入虚拟机”窗口

  3. 选择包含代理主机的数据中心
  4. Source下拉列表中选择XEN (经过 RHEL)
  5. 输入 Xen 主机的 URI。已预先填入所需的格式,您必须使用 Xen 主机的主机名称替代<hostname>
  6. 代理主机下拉列表中选择代理主机。
  7. 点击加载,生成 Xen 主机上的虚拟机列表。
  8. 源中的虚拟机列表中选择一个或多个虚拟机,然后使用箭头将它们移动到导入的虚拟机列表中。

    注意

    受当前限制条件制约,带有块设备的 Xen 虚拟机不会出现在源中的虚拟机列表中,也不能导入到 Red Hat Virtualization 中。
  9. 点击下一步

    重要

    实施导入操作时,其中只能包含共享同一架构的虚拟机。如果待导入的虚拟机采用了不同架构,则会显示警告,提示您将其更改为采用同一架构的虚拟机。
    “导入虚拟机”窗口

    图 6.16. “导入虚拟机”窗口

  10. 选择虚拟机将要驻留的集群
  11. 为虚拟机选择 CPU 配置集
  12. 选择 Collapse 快照复选框,移除快照恢复点,并在基于模板的虚拟机中加入模板。
  13. 选择克隆复选框,更改虚拟机名称和 MAC 地址,克隆所有磁盘,移除所有快照。如果虚拟机出现时,其名称旁边存在警告标志,或者系统里的虚拟机栏存在记号,您必须克隆该虚拟机并更改其名称。
  14. 点击待导入的每一个虚拟机,然后点击磁盘子选项卡。使用分配策略存储域列表选择虚拟机使用的磁盘是采用精简配置还是预先配置,并选择将要存储磁盘的存储域。此外,系统还会显示图标,指明由待导入的哪个磁盘作为该虚拟机的引导磁盘。

    注意

    目标存储域必须是一个基于字段的域。因为当前存在的限制,指定一个基于块的域会导致 V2V 操作失败。
  15. 如果您选定了克隆复选框,请在常规子选项卡中更改虚拟机的名称。
  16. 点击确定导入虚拟机。

6.12.6. 从 KVM 主机导入虚拟机

从 KVM 将虚拟机导入到您的 Red Hat Virtualization 环境中。导入之前,Red Hat Virtualization 会将 KVM 虚拟机转化为正确的格式。您必须在 KVM 主机与目标数据中心的至少一台主机之间(这台主机在之后的流程中被称为代理主机)启用公钥认证。

警告

导入虚拟机之前,必须先将它关闭。在导入过程中,从 KVM 启动虚拟机将导致数据被破坏。

注意

如果导入失败,请查看代理主机上的 /var/log/vdsm/import//var/log/vdsm/vdsm.log 日志文件,了解更多详情。

过程 6.26. 从 KVM 导入虚拟机

  1. 在代理主机和 KVM 主机之间启用公钥认证:
    1. 登录到代理主机,为 vdsm 用户生成 SSH 密钥。
      # sudo -u vdsm ssh-keygen
    2. vdsm 用户的公钥复制到 KVM 主机。
      # sudo -u vdsm ssh-copy-id root@kvmhost.example.com
    3. 登录到 KVM 主机,将其添加到代理主机的 known_hosts 文件中。
      # sudo -u vdsm ssh root@kvmhost.example.com
  2. 登录到管理门户。在虚拟机选项卡中,点击 导入,打开导入虚拟机窗口。
    “导入虚拟机”窗口

    图 6.17. “导入虚拟机”窗口

  3. 选择包含代理主机的数据中心
  4. 下拉列表选择 KVM (通过 Libvirt)
  5. 按照以下格式,输入 KVM 主机的 URI
    qemu+ssh://root@kvmhost.example.com/system
  6. 需要验证复选框保持选定状态。
  7. 用户名字段输入root
  8. 输入 KVM 主机 root 用户的密码
  9. 从下拉列表选择代理主机
  10. 点击加载,生成 KVM 主机上的虚拟机列表。
  11. 源中的虚拟机列表中选择一个或多个虚拟机,然后使用箭头将它们移动到 导入的虚拟机 列表中。
  12. 点击下一步

    重要

    实施导入操作时,其中只能包含共享同一架构的虚拟机。如果待导入的虚拟机采用了不同架构,则会显示警告,提示您将其更改为采用同一架构的虚拟机。
    “导入虚拟机”窗口

    图 6.18. “导入虚拟机”窗口

  13. 选择虚拟机将要驻留的集群
  14. 为虚拟机选择 CPU 配置集
  15. 选择 Collapse 快照复选框,移除快照恢复点,并在基于模板的虚拟机中加入模板。
  16. 选择克隆复选框,更改虚拟机名称和 MAC 地址,克隆所有磁盘,移除所有快照。如果虚拟机出现时,其名称旁边存在警告标志,或者系统里的虚拟机栏存在记号,您必须克隆该虚拟机并更改其名称。
  17. 点击待导入的每一个虚拟机,然后点击磁盘子选项卡。使用分配策略存储域列表选择虚拟机使用的磁盘是采用精简配置还是预先配置,并选择将要存储磁盘的存储域。此外,系统还会显示图标,指明由待导入的哪个磁盘作为该虚拟机的引导磁盘。

    注意

    目标存储域必须为基于字段的域。受当前限制条件制约,指定基于块的域会导致操作失败。
  18. 如果您选择克隆复选框,请在 常规子选项卡中更改虚拟机的名称。
  19. 点击确定,导入虚拟机。