第 16 章 备份和迁移

16.1. 备份和恢复 Red Hat Virtualization Manager

16.1.1. 备份 Red Hat Virtualization Manager - 概述

使用 engine-backup 工具对 Red Hat Virtualization Manager 进行定期备份。工具会将引擎数据库和配置文件备份到一个文件中,并可在不中断 ovirt-engine 服务的情况下运行。

16.1.2. engine-backup 命令的语法

engine-backup 命令以两种基本模式之一工作:

# engine-backup --mode=backup
# engine-backup --mode=restore

这两个模式由一组参数进一步扩展,允许您指定引擎数据库的备份和不同凭据的范围。对参数及其功能的完整列表运行 engine-backup --help

基本选项

--mode
指定命令是执行备份操作还是恢复操作。有两个可用选项 - backuprestore。这是必需参数。
--file
指定要在备份模式中执行备份的文件的路径和名称,以及从恢复模式中读取备份数据的路径和名称。在 backup 模式和 restore 模式中,这是必需参数。
--log
指定要写入备份或恢复操作日志的文件的路径和名称。在 backup 模式和 restore 模式中都需要这个参数。
--scope

指定 backup 或 restore 操作的范围。有四个选项: 所有 都是,备份或恢复所有数据库和配置数据; 这些文件 仅备份或恢复系统上的文件; db 则可备份或恢复管理器数据库,以及 dwhdb,后者仅备份或恢复数据仓库数据库。默认范围 都是

--scope 参数可以在同一 engine-backup 命令中多次指定。

Manager 数据库选项

仅当在 restore 模式中使用 engine-backup 命令时,以下选项才可用。以下 选项语法适用于恢复管理器数据库。同一选项可用于恢复数据仓库数据库。如需数据仓库选项语法,请参阅 engine-backup --help

--provision-db
创建供要恢复到的 Manager 数据库备份的 PostgreSQL 数据库。在远程主机上恢复备份或全新安装没有配置 PostgreSQL 数据库时,这是必需参数。
--change-db-credentials
允许您指定备用凭证,以便使用备份本身中存储的凭据来恢复 Manager 数据库。如需此参数所需的额外参数,请参阅 engine-backup --help
--restore-permissions--no-restore-permissions

恢复(或不恢复)数据库用户的权限。恢复备份时需要这些参数之一。

注意

如果备份包含对额外数据库用户授予访问权限,则使用 --restore-permissions--provision-db (或 --provision-dwh-db)选项恢复备份,则使用随机密码创建额外的用户。如果额外用户需要访问恢复的系统,则必须手动更改这些密码。请参阅 https://access.redhat.com/articles/2686731

16.1.3. 使用 engine-backup 命令创建备份

在 Manager 处于活动状态时,可以使用 engine-backup 命令备份 Red Hat Virtualization Manager。在 --scope 中附加以下选项之一以指定要执行的备份:

  • All : Manager 中所有数据库和配置文件的完整备份
  • 文件 :仅备份系统中的文件
  • db :仅备份 Manager 数据库
  • dwhdb :仅 Data Warehouse 数据库的备份
重要

要将数据库恢复到全新安装的 Red Hat Virtualization Manager,仅数据库备份是不够的,管理器也需要访问配置文件。指定默认范围以外的任何备份都必须由 文件 范围或文件系统备份配套。

engine-backup 命令的使用情况示例

  1. 登录到运行 Red Hat Virtualization Manager 的机器。
  2. 创建备份:

    例 16.1. 创建完整备份

    # engine-backup --scope=all --mode=backup --file=file_name --log=log_file_name

    例 16.2. 创建 Manager 数据库备份

    # engine-backup --scope=files --scope=db --mode=backup --file=file_name --log=log_file_name

    db 选项替换为 dwhdb 以备份数据仓库数据库。

    使用提供的路径和文件名创建包含备份的 tar 文件。

现在,可以使用包含备份的 tar 文件来恢复环境。

16.1.4. 使用 engine-backup 命令恢复备份

使用 engine-backup 命令恢复备份涉及更多步骤,而不是根据恢复的目的地来创建备份。例如,engine-backup 命令可用于将备份恢复到 Red Hat Virtualization 的全新安装、现有 Red Hat Virtualization 安装之上,以及使用本地或远程数据库。

重要

备份只能恢复到与备份环境同一主版本的环境。例如,Red Hat Virtualization 版本 4.2 环境的备份只能恢复到另一个 Red Hat Virtualization 版本 4.2 环境。要查看备份文件中所含的 Red Hat Virtualization 版本,请解压缩备份文件并在解压缩文件的根目录中的 version 文件中读取值。

16.1.5. 将备份恢复到刷新安装

engine-backup 命令可用于将备份恢复到 Red Hat Virtualization Manager 的全新安装。以下流程必须在安装基础操作系统以及安装了 Red Hat Virtualization Manager 所需的软件包的机器上执行,但尚未运行 engine-setup 命令。此流程假定可以从要恢复备份的机器中访问备份文件或文件。

将备份恢复到刷新安装

  1. 登录到 Manager 机器。如果您要将引擎数据库恢复到远程主机,您将需要登录 并对该主机执行相关的操作。同样,如果也将数据仓库恢复到远程主机,您将需要登录到该主机上的相关操作。
  2. 恢复完整备份或仅数据库备份。

    • 恢复完整备份:

      # engine-backup --mode=restore --file=file_name --log=log_file_name --provision-db --restore-permissions

      如果 Data Warehouse 也作为完整备份的一部分恢复,请置备额外的数据库:

      engine-backup --mode=restore --file=file_name --log=log_file_name --provision-db --provision-dwh-db --restore-permissions
    • 通过恢复配置文件和数据库备份来恢复仅数据库备份:

      # engine-backup --mode=restore --scope=files --scope=db --file=file_name --log=log_file_name --provision-db --restore-permissions

      上例恢复 Manager 数据库的备份。

      # engine-backup --mode=restore --scope=files --scope=dwhdb --file=file_name --log=log_file_name --provision-dwh-db --restore-permissions

      上面的示例恢复数据仓库数据库的备份。

      如果成功,则会显示以下输出:

      You should now run engine-setup.
      Done.
  3. 运行以下命令并按照提示配置恢复的 Manager:

    # engine-setup

Red Hat Virtualization Manager 已恢复到备份中保留的版本。要更改新 Red Hat Virtualization 系统的完全限定域名,请参阅 第 22.1.1 节 “oVirt Engine Rename 工具”

16.1.6. 恢复备份以覆盖现有安装

engine-backup 命令可以将备份恢复到已安装并设置了 Red Hat Virtualization Manager 的机器。当您进行环境备份后,在该环境中执行更改,然后希望通过从备份中恢复环境来撤销更改,这将非常有用。

因为备份进行了备份,如添加或删除主机后对环境所做的更改将不会出现在恢复的环境中。您必须恢复这些更改。

流程

  1. 登录到 Manager 机器。
  2. 删除配置文件并清理与 Manager 关联的数据库:

    # engine-cleanup

    engine-cleanup 命令只清理 Manager 数据库;它不会丢弃数据库或删除拥有该数据库的用户。

  3. 恢复完整备份或仅数据库备份。您不需要创建新数据库或指定数据库凭据,因为用户和数据库已经存在。

    • 恢复完整备份:

      # engine-backup --mode=restore --file=file_name --log=log_file_name --restore-permissions
    • 通过恢复配置文件和数据库备份来恢复仅数据库备份:

      # engine-backup --mode=restore --scope=files --scope=db --scope=dwhdb --file=file_name --log=log_file_name --restore-permissions
      注意

      要只恢复 Manager 数据库(例如,如果 Data Warehouse 数据库位于另一台机器上),您可以省略 --scope=dwhdb 参数。

      如果成功,则会显示以下输出:

      You should now run engine-setup.
      Done.
  4. 重新配置管理器:

    # engine-setup

16.1.7. 使用不同凭证恢复备份

engine-backup 命令可以将备份恢复到已安装并设置了 Red Hat Virtualization Manager 的机器,但备份中数据库的凭证与要恢复备份的机器中的数据库不同。当您进行安装备份并希望从备份恢复到不同系统时,这非常有用。

重要

当恢复备份以覆盖现有安装时,您必须运行 engine-cleanup 命令来清理现有安装,然后才能使用 engine-backup 命令。engine-cleanup 命令只清理 engine 数据库,不会丢弃数据库或删除拥有该数据库的用户。因此,您不需要创建新数据库或指定数据库凭证。但是,如果引擎数据库所有者的凭据未知,则必须在恢复备份前更改它们。

使用不同凭证恢复备份

  1. 登录到 Red Hat Virtualization Manager 机器。
  2. 运行以下命令并按照提示删除管理器的配置文件并清理管理器的数据库:

    # engine-cleanup
  3. 如果该用户的凭据未知,则更改 引擎数据库 所有者的密码:

    1. 输入 postgresql 命令行:

      # su - postgres -c 'scl enable rh-postgresql10 -- psql'
    2. 更改拥有 引擎数据库 的用户的密码:

      postgres=# alter role user_name encrypted password 'new_password';

      如果需要,为拥有 ovirt_engine_history 数据库的用户重复此操作。

  4. 使用 --change-db-credentials 参数恢复完整备份或仅数据库备份,以传递新数据库的凭据。数据库的 database_location 于管理器本地,是 localhost

    注意

    以下示例在不指定密码的情况下为每个数据库使用 --*password 选项,该选项会提示输入每个数据库的密码。另外,您还可以为每个数据库使用 --*passfile=password_file 选项,安全地将密码传递给 engine-backup 工具,而无需交互式提示。

    • 恢复完整备份:

      # engine-backup --mode=restore --file=file_name --log=log_file_name --change-db-credentials --db-host=database_location --db-name=database_name --db-user=engine --db-password --no-restore-permissions

      如果 Data Warehouse 也作为完整备份的一部分恢复,包括修订额外数据库的凭证:

      engine-backup --mode=restore --file=file_name --log=log_file_name --change-db-credentials --db-host=database_location --db-name=database_name --db-user=engine --db-password --change-dwh-db-credentials --dwh-db-host=database_location --dwh-db-name=database_name --dwh-db-user=ovirt_engine_history --dwh-db-password --no-restore-permissions
    • 通过恢复配置文件和数据库备份来恢复仅数据库备份:

      # engine-backup --mode=restore --scope=files --scope=db --file=file_name --log=log_file_name --change-db-credentials --db-host=database_location --db-name=database_name --db-user=engine --db-password --no-restore-permissions

      上例恢复 Manager 数据库的备份。

      # engine-backup --mode=restore --scope=files --scope=dwhdb --file=file_name --log=log_file_name --change-dwh-db-credentials --dwh-db-host=database_location --dwh-db-name=database_name --dwh-db-user=ovirt_engine_history --dwh-db-password --no-restore-permissions

      上面的示例恢复数据仓库数据库的备份。

      如果成功,则会显示以下输出:

      You should now run engine-setup.
      Done.
  5. 运行以下命令并按照提示重新配置防火墙并确保正确配置了 ovirt-engine 服务:

    # engine-setup

16.1.8. 备份和恢复自托管引擎

您可以备份自托管引擎,并在新的自托管环境中恢复它。对于诸如将环境迁移到具有不同存储类型的新自托管引擎存储域等任务使用这个步骤。

当您在部署期间指定备份文件时,备份会在新的 Manager 虚拟机上恢复,并带有新的自托管引擎存储域。旧的 Manager 被移除,旧的自托管引擎存储域被重命名,您可以在确认新环境正常工作后手动删除。强烈建议在新的主机上部署;如果在备份环境中存在用于部署的主机,它将从恢复的数据库中删除,以避免新环境中的冲突。

备份和恢复操作涉及以下密钥操作:

这个过程假设您可以访问,并可更改原始 Manager。

前提条件

  • 为 Manager 和主机准备的完全限定域名。正向和反向查找记录必须在 DNS 中设置。新管理器必须与原始 Manager 具有相同的完全限定域名。
  • 原始管理器必须更新至最新的次版本。备份文件中的管理器版本必须与新管理器的版本匹配。请参阅 升级指南》 中的更新 Red Hat Virtualization Manager
  • 环境中必须至少有一个常规主机。此主机(以及任何其他常规主机)将保持活动状态,以托管 SPM 角色和任何正在运行的虚拟机。如果常规主机尚不是 SPM,请在创建备份之前移动 SPM 角色,方法是选择常规主机并单击 ManagementSelect as SPM

    如果没有可用的常规主机,可以通过两种方式来添加:

16.1.8.1. 备份原始管理器

使用 engine-backup 命令备份原始管理器,并将备份文件复制到单独的位置,以便可在进程的任意时间点上访问该文件。

有关 engine-backup --mode=backup 选项的更多信息,请参阅 管理指南中的备份和恢复 Red Hat Virtualization Manager

流程

  1. 登录到一个自托管引擎节点,并将环境移到全局维护模式:

    # hosted-engine --set-maintenance --mode=global
  2. 登录到原始 Manager 并停止 ovirt-engine 服务:

    # systemctl stop ovirt-engine
    # systemctl disable ovirt-engine
    注意

    虽然禁止运行原始管理器,但建议不要对环境进行更改,因为它在创建备份后不会对环境进行任何更改。此外,它还会阻止原始管理器和新管理器同时管理现有资源。

  3. 运行 engine-backup 命令,指定要创建的备份文件的名称,以及要存储备份日志的日志文件名称:

    # engine-backup --mode=backup --file=file_name --log=log_file_name
  4. 将文件复制到外部服务器。在以下示例中,storage.example.com 是网络存储服务器的完全限定域名,它将存储备份直到需要,/backup/ 是任何指定的文件夹或路径。

    # scp -p file_name log_file_name storage.example.com:/backup/
  5. 如果您不要求 Manager 机器用于其他目的,请从 Red Hat Subscription Manager 中取消注册它:

    # subscription-manager unregister
  6. 登录到其中一个自托管引擎节点并关闭原始 Manager 虚拟机:

    # hosted-engine --vm-shutdown

备份管理器后,部署新的自托管引擎并在新虚拟机上恢复备份。

16.1.8.2. 在新的自托管引擎中恢复备份

在新主机上运行 hosted-engine 脚本,并使用 --restore-from-file=path/to/file_name 选项在部署期间恢复 Manager 备份。

重要

如果您使用 iSCSI 存储,且您的 iSCSI 目标根据启动器的 ACL 过滤连接,则部署可能会失败,并显示 STORAGE_DOMAIN_UNREACHABLE 错误。要防止这种情况,您必须在开始自托管引擎部署前更新 iSCSI 配置:

  • 如果要在现有主机上重新部署,您必须更新 /etc/iscsi/initiatorname.iscsi 中的主机的 iSCSI 启动器设置。initiator IQN 必须与之前在 iSCSI 目标中映射的相同,或者更新至一个新的 IQN(如果适用)。
  • 如果要在全新的主机上部署,您必须更新 iSCSI 目标配置以接受来自该主机的连接。

请注意,IQN 可以在主机端(iSCSI 启动器)或存储侧(iSCSI 目标)上更新。

流程

  1. 将备份文件复制到新主机。在以下示例中,host.example.com 是主机的 FQDN,/backup/ 是任何指定的文件夹或路径。

    # scp -p file_name host.example.com:/backup/
  2. 登录新主机。如果您要在 Red Hat Virtualization Host 上部署,则默认提供自托管引擎部署工具。如果要在 Red Hat Enterprise Linux 上部署,必须安装该软件包:

    # yum install ovirt-hosted-engine-setup
  3. 红帽建议使用 screen 工具程序运行该脚本,以避免在网络或终端中断时丢失会话。安装并运行 screen

    # yum install screen
    # screen

    如果发生会话超时或连接中断,请运行 screen -d -r 来恢复部署会话。

  4. 运行 hosted-engine 脚本,指定到备份文件的路径:

    # hosted-engine --deploy --restore-from-file=backup/file_name

    要随时转义脚本,请使用 CTRL+D 中止部署。

  5. 选择 Yes 以开始部署。
  6. 配置网络。脚本会检测可能的 NIC,以用作环境的管理网桥。
  7. 如果要使用自定义设备进行虚拟机安装,请输入 OVA 存档的路径。否则,将此字段留空,以使用 RHV-M Appliance。
  8. 指定 Manager 虚拟机的 FQDN。
  9. 输入 Manager 的 root 密码。
  10. 输入可让您以 root 用户身份登录 Manager 的 SSH 公钥,并指定是否为 root 用户启用 SSH 访问。
  11. 输入虚拟机的 CPU 和内存配置。
  12. 输入 Manager 虚拟机的 MAC 地址,或接受随机生成的地址。如果要通过 DHCP 为 Manager 虚拟机提供 IP 地址,请确保此 MAC 地址具有有效的 DHCP 保留。部署脚本将不会为您配置 DHCP 服务器。
  13. 输入虚拟机的网络详情。如果指定了 Static,请输入 Manager 的 IP 地址。

    重要

    静态 IP 地址必须属于与主机相同的子网。例如,如果主机在 10.1.1.0/24 中,则管理器虚拟机的 IP 必须位于同一子网范围 (10.1.1.1-254/24) 中。

  14. 指定是否将 Manager 虚拟机和基础主机的条目添加到虚拟机的 /etc/hosts 文件中。您必须确保主机名可以被解析。
  15. 提供 SMTP 服务器的名称和 TCP 端口号、用于发送电子邮件通知的电子邮件地址,以及用于接收这些通知的电子邮件地址列表:
  16. 输入 admin@internal 用户的密码来访问管理门户。

    该脚本将创建虚拟机。如果需要安装 RHV-M 设备,这可能需要一些时间。

  17. 选择要使用的存储类型:

    • 对于 NFS,请输入版本、完整地址和到存储的路径以及所有挂载选项。

      警告

      不要为新存储域使用旧的自托管引擎存储域挂载点,因为您面临丢失虚拟机数据的风险。

    • 对于 iSCSI,请输入门户详情并从自动检测的列表中选择目标和 LUN。您只能在部署期间选择一个 iSCSI 目标,但支持多路径连接同一门户组的所有门户。

      注意

      要指定多个 iSCSI 目标,您必须先启用多路径,然后才能部署自托管引擎。详情请查看 Red Hat Enterprise Linux DM 多路径。另外,还有一个多路径帮助程序工具,它生成脚本来安装和配置使用不同选项的多路径。

    • 对于 Gluster 存储,请输入到存储的完整地址和路径,以及任何挂载选项。

      警告

      不要为新存储域使用旧的自托管引擎存储域挂载点,因为您面临丢失虚拟机数据的风险。

      重要

      仅支持副本 3 Gluster 存储。确定您有以下配置:

      • 在所有三个 Gluster 服务器上的 /etc/glusterfs/glusterd.vol 文件中,将 rpc-auth-allow-insecure 设置为 on

        option rpc-auth-allow-insecure on
      • 配置卷,如下所示:

        gluster volume set _volume_ cluster.quorum-type auto
        gluster volume set _volume_ network.ping-timeout 10
        gluster volume set _volume_ auth.allow \*
        gluster volume set _volume_ group virt
        gluster volume set _volume_ storage.owner-uid 36
        gluster volume set _volume_ storage.owner-gid 36
        gluster volume set _volume_ server.allow-insecure on
    • 对于光纤通道,从自动检测的列表中选择 LUN。必须配置并连接主机总线适配器,而且 LUN 不得包含任何现有数据。要重复使用现有的 LUN,请参阅 管理指南中的重新使用 LUN
  18. 输入 Manager 磁盘大小。

    该脚本会继续,直到部署完成。

  19. 部署过程会更改管理器的 SSH 密钥。要允许客户端机器在没有 SSH 错误的情况下访问新管理器,请在访问原始管理器的任何客户端机器上从 .ssh/known_hosts 文件中删除原始 Manager 条目。

部署完成后,登录新的 Manager 虚拟机并启用所需的存储库。

16.1.8.3. 启用 Red Hat Virtualization Manager 存储库

在 Red Hat Subscription Manager 中注册系统,附加 Red Hat Virtualization Manager 订阅并启用 Manager 软件仓库。

流程

  1. 使用 Content Delivery Network 注册您的系统,在提示时输入您的客户门户网站用户名和密码:

    # subscription-manager register
    注意

    如果您使用 IPv6 网络,请使用 IPv6 转换机制来访问 Content Delivery Network 和 subscription Manager。

  2. 查找 Red Hat Virtualization Manager 订阅池并记录池 ID:

    # subscription-manager list --available
  3. 使用池 ID 将订阅附加到系统:

    # subscription-manager attach --pool=pool_id
    注意

    查看当前附加的订阅:

    # subscription-manager list --consumed

    列出所有启用的软件仓库:

    # yum repolist
  4. 配置存储库:

    # subscription-manager repos \
        --disable='*' \
        --enable=rhel-7-server-rpms \
        --enable=rhel-7-server-supplementary-rpms \
        --enable=rhel-7-server-rhv-4.3-manager-rpms \
        --enable=rhel-7-server-rhv-4-manager-tools-rpms \
        --enable=rhel-7-server-ansible-2.9-rpms \
        --enable=jb-eap-7.2-for-rhel-7-server-rpms

现在,管理器及其资源在新的自托管环境中运行。自托管引擎节点必须在 Manager 中重新安装,以更新其自托管引擎配置。标准主机不会受到影响。为每个自托管引擎节点执行以下步骤。

16.1.8.4. 重新安装主机

从管理门户重新安装 Red Hat Virtualization 主机(RHVH)和 Red Hat Enterprise Linux 主机。该流程包括停止和重启主机。

先决条件

  • 如果在集群级别启用了迁移,则虚拟机会自动迁移到集群中的其他主机。因此,建议在主机使用相对较低的时执行主机重新安装。
  • 确保集群有足够的内存,以便其主机执行维护。如果集群缺少足够内存,虚拟机迁移操作将挂起,然后失败。您可以在将主机移到维护之前,通过关闭一些或所有虚拟机来减少此操作的内存用量。
  • 在执行重新安装前,请确保集群包含多个主机。不要尝试同时重新安装所有主机,因为一个主机必须保持可用才能执行存储池管理器(SPM)任务。

流程

  1. 单击 ComputeHosts,再选择 主机。
  2. 单击 ManagementMaintenance
  3. 单击 Installation 以打开 Install Host 窗口。
  4. 单击 Hosted Engine 选项卡,再从下拉菜单中选择 DEPLOY
  5. 单击确定以 重新安装主机。

成功重新安装后,主机会显示 Up 状态。任何从主机迁移的虚拟机现在都可以迁移到该主机。

重要

在 Red Hat Virtualization Manager 成功注册到 Red Hat Virtualization Manager 后,它可能会错误地出现在管理门户中,状态为 Install Failed。单击 ManagementActivate,主机将更改为 Up 状态并可供使用。

在重新安装自托管引擎节点后,您可以通过在其中一个节点上运行以下命令来检查新环境的状态:

# hosted-engine --vm-status

在恢复过程中,旧的自托管引擎存储域被重命名为,在恢复错误时不会从新环境中删除。确认环境正常运行后,您可以删除旧的自托管引擎存储域。

16.1.8.5. 删除存储域

在您的数据中心中有一个要从虚拟环境中删除的存储域。

流程

  1. StorageDomains
  2. 将存储域移到维护模式并分离它:

    1. 点存储域的名称打开详情视图。
    2. Data Center 选项卡。
    3. 单击 Maintenance,然后单击 OK
    4. 单击 Detach然后单击确定
  3. 单击 Remove
  4. (可选)选择 格式化域,即存储内容将丢失! 复选框可清除域的内容。
  5. 点击 OK

存储域已从环境中永久移除。

16.1.9. 从现有的备份中恢复自托管引擎

如果由于无法修复的问题而出现自托管引擎不可用,您可以在新的自托管环境中使用在问题开始前的备份将其恢复(如果可用)。

当您在部署期间指定备份文件时,备份会在新的 Manager 虚拟机上恢复,并带有新的自托管引擎存储域。旧的 Manager 被移除,旧的自托管引擎存储域被重命名,您可以在确认新环境正常工作后手动删除。强烈建议在新的主机上部署;如果在备份环境中存在用于部署的主机,它将从恢复的数据库中删除,以避免新环境中的冲突。

恢复自托管引擎涉及以下关键操作:

此流程假设您无法访问原始管理器,并且新主机可以访问备份文件。

前提条件

  • 为 Manager 和主机准备的完全限定域名。正向和反向查找记录必须在 DNS 中设置。新管理器必须与原始 Manager 具有相同的完全限定域名。

16.1.9.1. 在新的自托管引擎中恢复备份

在新主机上运行 hosted-engine 脚本,并使用 --restore-from-file=path/to/file_name 选项在部署期间恢复 Manager 备份。

重要

如果您使用 iSCSI 存储,且您的 iSCSI 目标根据启动器的 ACL 过滤连接,则部署可能会失败,并显示 STORAGE_DOMAIN_UNREACHABLE 错误。要防止这种情况,您必须在开始自托管引擎部署前更新 iSCSI 配置:

  • 如果要在现有主机上重新部署,您必须更新 /etc/iscsi/initiatorname.iscsi 中的主机的 iSCSI 启动器设置。initiator IQN 必须与之前在 iSCSI 目标中映射的相同,或者更新至一个新的 IQN(如果适用)。
  • 如果要在全新的主机上部署,您必须更新 iSCSI 目标配置以接受来自该主机的连接。

请注意,IQN 可以在主机端(iSCSI 启动器)或存储侧(iSCSI 目标)上更新。

流程

  1. 将备份文件复制到新主机。在以下示例中,host.example.com 是主机的 FQDN,/backup/ 是任何指定的文件夹或路径。

    # scp -p file_name host.example.com:/backup/
  2. 登录新主机。如果您要在 Red Hat Virtualization Host 上部署,则默认提供自托管引擎部署工具。如果要在 Red Hat Enterprise Linux 上部署,必须安装该软件包:

    # yum install ovirt-hosted-engine-setup
  3. 红帽建议使用 screen 工具程序运行该脚本,以避免在网络或终端中断时丢失会话。安装并运行 screen

    # yum install screen
    # screen

    如果发生会话超时或连接中断,请运行 screen -d -r 来恢复部署会话。

  4. 运行 hosted-engine 脚本,指定到备份文件的路径:

    # hosted-engine --deploy --restore-from-file=backup/file_name

    要随时转义脚本,请使用 CTRL+D 中止部署。

  5. 选择 Yes 以开始部署。
  6. 配置网络。脚本会检测可能的 NIC,以用作环境的管理网桥。
  7. 如果要使用自定义设备进行虚拟机安装,请输入 OVA 存档的路径。否则,将此字段留空,以使用 RHV-M Appliance。
  8. 指定 Manager 虚拟机的 FQDN。
  9. 输入 Manager 的 root 密码。
  10. 输入可让您以 root 用户身份登录 Manager 的 SSH 公钥,并指定是否为 root 用户启用 SSH 访问。
  11. 输入虚拟机的 CPU 和内存配置。
  12. 输入 Manager 虚拟机的 MAC 地址,或接受随机生成的地址。如果要通过 DHCP 为 Manager 虚拟机提供 IP 地址,请确保此 MAC 地址具有有效的 DHCP 保留。部署脚本将不会为您配置 DHCP 服务器。
  13. 输入虚拟机的网络详情。如果指定了 Static,请输入 Manager 的 IP 地址。

    重要

    静态 IP 地址必须属于与主机相同的子网。例如,如果主机在 10.1.1.0/24 中,则管理器虚拟机的 IP 必须位于同一子网范围 (10.1.1.1-254/24) 中。

  14. 指定是否将 Manager 虚拟机和基础主机的条目添加到虚拟机的 /etc/hosts 文件中。您必须确保主机名可以被解析。
  15. 提供 SMTP 服务器的名称和 TCP 端口号、用于发送电子邮件通知的电子邮件地址,以及用于接收这些通知的电子邮件地址列表:
  16. 输入 admin@internal 用户的密码来访问管理门户。

    该脚本将创建虚拟机。如果需要安装 RHV-M 设备,这可能需要一些时间。

  17. 选择要使用的存储类型:

    • 对于 NFS,请输入版本、完整地址和到存储的路径以及所有挂载选项。

      警告

      不要为新存储域使用旧的自托管引擎存储域挂载点,因为您面临丢失虚拟机数据的风险。

    • 对于 iSCSI,请输入门户详情并从自动检测的列表中选择目标和 LUN。您只能在部署期间选择一个 iSCSI 目标,但支持多路径连接同一门户组的所有门户。

      注意

      要指定多个 iSCSI 目标,您必须先启用多路径,然后才能部署自托管引擎。详情请查看 Red Hat Enterprise Linux DM 多路径。另外,还有一个多路径帮助程序工具,它生成脚本来安装和配置使用不同选项的多路径。

    • 对于 Gluster 存储,请输入到存储的完整地址和路径,以及任何挂载选项。

      警告

      不要为新存储域使用旧的自托管引擎存储域挂载点,因为您面临丢失虚拟机数据的风险。

      重要

      仅支持副本 3 Gluster 存储。确定您有以下配置:

      • 在所有三个 Gluster 服务器上的 /etc/glusterfs/glusterd.vol 文件中,将 rpc-auth-allow-insecure 设置为 on

        option rpc-auth-allow-insecure on
      • 配置卷,如下所示:

        gluster volume set _volume_ cluster.quorum-type auto
        gluster volume set _volume_ network.ping-timeout 10
        gluster volume set _volume_ auth.allow \*
        gluster volume set _volume_ group virt
        gluster volume set _volume_ storage.owner-uid 36
        gluster volume set _volume_ storage.owner-gid 36
        gluster volume set _volume_ server.allow-insecure on
    • 对于光纤通道,从自动检测的列表中选择 LUN。必须配置并连接主机总线适配器,而且 LUN 不得包含任何现有数据。要重复使用现有的 LUN,请参阅 管理指南中的重新使用 LUN
  18. 输入 Manager 磁盘大小。

    该脚本会继续,直到部署完成。

  19. 部署过程会更改管理器的 SSH 密钥。要允许客户端机器在没有 SSH 错误的情况下访问新管理器,请在访问原始管理器的任何客户端机器上从 .ssh/known_hosts 文件中删除原始 Manager 条目。

部署完成后,登录新的 Manager 虚拟机并启用所需的存储库。

16.1.9.2. 启用 Red Hat Virtualization Manager 存储库

在 Red Hat Subscription Manager 中注册系统,附加 Red Hat Virtualization Manager 订阅并启用 Manager 软件仓库。

流程

  1. 使用 Content Delivery Network 注册您的系统,在提示时输入您的客户门户网站用户名和密码:

    # subscription-manager register
    注意

    如果您使用 IPv6 网络,请使用 IPv6 转换机制来访问 Content Delivery Network 和 subscription Manager。

  2. 查找 Red Hat Virtualization Manager 订阅池并记录池 ID:

    # subscription-manager list --available
  3. 使用池 ID 将订阅附加到系统:

    # subscription-manager attach --pool=pool_id
    注意

    查看当前附加的订阅:

    # subscription-manager list --consumed

    列出所有启用的软件仓库:

    # yum repolist
  4. 配置存储库:

    # subscription-manager repos \
        --disable='*' \
        --enable=rhel-7-server-rpms \
        --enable=rhel-7-server-supplementary-rpms \
        --enable=rhel-7-server-rhv-4.3-manager-rpms \
        --enable=rhel-7-server-rhv-4-manager-tools-rpms \
        --enable=rhel-7-server-ansible-2.9-rpms \
        --enable=jb-eap-7.2-for-rhel-7-server-rpms

现在,管理器及其资源在新的自托管环境中运行。自托管引擎节点必须在 Manager 中重新安装,以更新其自托管引擎配置。标准主机不会受到影响。为每个自托管引擎节点执行以下步骤。

16.1.9.3. 重新安装主机

从管理门户重新安装 Red Hat Virtualization 主机(RHVH)和 Red Hat Enterprise Linux 主机。该流程包括停止和重启主机。

先决条件

  • 如果在集群级别启用了迁移,则虚拟机会自动迁移到集群中的其他主机。因此,建议在主机使用相对较低的时执行主机重新安装。
  • 确保集群有足够的内存,以便其主机执行维护。如果集群缺少足够内存,虚拟机迁移操作将挂起,然后失败。您可以在将主机移到维护之前,通过关闭一些或所有虚拟机来减少此操作的内存用量。
  • 在执行重新安装前,请确保集群包含多个主机。不要尝试同时重新安装所有主机,因为一个主机必须保持可用才能执行存储池管理器(SPM)任务。

流程

  1. 单击 ComputeHosts,再选择 主机。
  2. 单击 ManagementMaintenance
  3. 单击 Installation 以打开 Install Host 窗口。
  4. 单击 Hosted Engine 选项卡,再从下拉菜单中选择 DEPLOY
  5. 单击确定以 重新安装主机。

成功重新安装后,主机会显示 Up 状态。任何从主机迁移的虚拟机现在都可以迁移到该主机。

重要

在 Red Hat Virtualization Manager 成功注册到 Red Hat Virtualization Manager 后,它可能会错误地出现在管理门户中,状态为 Install Failed。单击 ManagementActivate,主机将更改为 Up 状态并可供使用。

在重新安装自托管引擎节点后,您可以通过在其中一个节点上运行以下命令来检查新环境的状态:

# hosted-engine --vm-status

在恢复过程中,旧的自托管引擎存储域被重命名为,在恢复错误时不会从新环境中删除。确认环境正常运行后,您可以删除旧的自托管引擎存储域。

16.1.9.4. 删除存储域

在您的数据中心中有一个要从虚拟环境中删除的存储域。

流程

  1. StorageDomains
  2. 将存储域移到维护模式并分离它:

    1. 点存储域的名称打开详情视图。
    2. Data Center 选项卡。
    3. 单击 Maintenance,然后单击 OK
    4. 单击 Detach然后单击确定
  3. 单击 Remove
  4. (可选)选择 格式化域,即存储内容将丢失! 复选框可清除域的内容。
  5. 点击 OK

存储域已从环境中永久移除。

16.1.10. 从现有的备份覆盖自托管引擎

如果自托管引擎可以访问,但遇到数据库崩溃等问题,或者难以回滚的配置错误,您可以使用在问题开始前的备份恢复到之前的状态。

恢复自托管引擎之前的状态涉及以下步骤:

有关 engine-backup --mode=restore 选项的详情请参考 第 16.1 节 “备份和恢复 Red Hat Virtualization Manager”

16.1.10.1. 启用全局维护模式

您必须将自托管引擎环境置于全局维护模式,然后才能在 Manager 虚拟机上执行任何设置或升级任务。

流程

  1. 登录到自托管引擎节点并启用全局维护模式:

    # hosted-engine --set-maintenance --mode=global
  2. 在继续之前,确认环境处于维护模式:

    # hosted-engine --vm-status

    您应当会看到指出集群处于维护模式的消息。

16.1.10.2. 恢复备份以覆盖现有安装

engine-backup 命令可以将备份恢复到已安装并设置了 Red Hat Virtualization Manager 的机器。当您进行环境备份后,在该环境中执行更改,然后希望通过从备份中恢复环境来撤销更改,这将非常有用。

因为备份进行了备份,如添加或删除主机后对环境所做的更改将不会出现在恢复的环境中。您必须恢复这些更改。

流程

  1. 登录到 Manager 机器。
  2. 删除配置文件并清理与 Manager 关联的数据库:

    # engine-cleanup

    engine-cleanup 命令只清理 Manager 数据库;它不会丢弃数据库或删除拥有该数据库的用户。

  3. 恢复完整备份或仅数据库备份。您不需要创建新数据库或指定数据库凭据,因为用户和数据库已经存在。

    • 恢复完整备份:

      # engine-backup --mode=restore --file=file_name --log=log_file_name --restore-permissions
    • 通过恢复配置文件和数据库备份来恢复仅数据库备份:

      # engine-backup --mode=restore --scope=files --scope=db --scope=dwhdb --file=file_name --log=log_file_name --restore-permissions
      注意

      要只恢复 Manager 数据库(例如,如果 Data Warehouse 数据库位于另一台机器上),您可以省略 --scope=dwhdb 参数。

      如果成功,则会显示以下输出:

      You should now run engine-setup.
      Done.
  4. 重新配置管理器:

    # engine-setup

16.1.10.3. 禁用全局维护模式

流程

  1. 登录 Manager 虚拟机,并将它关闭。
  2. 登录到自托管引擎节点之一并禁用全局维护模式:

    # hosted-engine --set-maintenance --mode=none

    当您退出全局维护模式时,ovirt-ha-agent 会启动 Manager 虚拟机,然后 Manager 会自动启动。管理器最多可能需要十分钟才能启动。

  3. 确认环境正在运行:

    # hosted-engine --vm-status

    列出的信息包括引擎状态引擎状态的值应该是:

    {"health": "good", "vm": "up", "detail": "Up"}
    注意

    当虚拟机仍在引导且管理器尚未启动时,引擎状态为:

    {"reason": "bad vm status", "health": "bad", "vm": "up", "detail": "Powering up"}

    如果发生这种情况,请等待几分钟后重试。

当环境再次运行时,您可以启动任何停止的虚拟机,并检查环境中的资源是否如预期执行。