从独立管理器迁移到自托管引擎

Red Hat Virtualization 4.4

如何将 Red Hat Virtualization Manager 从单机服务器迁移到自我管理的虚拟机

Red Hat Virtualization Documentation Team

Red Hat Customer Content Services

摘要

本文档论述了如何将 Red Hat Virtualization 环境从物理服务器(或独立环境中运行的虚拟机)中安装的管理器迁移到其管理在同一主机上运行的虚拟机上的管理器。

前言

您可以通过备份单机管理器并在新的自托管环境中恢复它,将独立的 Red Hat Virtualization Manager 转换为自托管引擎。

这两种环境类型之间的区别如下:

独立管理器架构

Red Hat Virtualization Manager 在物理服务器或单独虚拟化环境中托管的虚拟机上运行。单机管理器更易于部署和管理,但需要额外的物理服务器。管理器只有在外部使用产品(如红帽的高可用性附加组件)进行管理时才高度可用。

独立管理器环境的最小设置包括:

  • 一个 Red Hat Virtualization Manager 机器。管理器通常部署在物理服务器上。但是,它也可以部署到虚拟机上,只要该虚拟机托管在单独的环境中。Manager 必须在 Red Hat Enterprise Linux 8 上运行。
  • 至少两个用于虚拟机高可用性的主机。您可以使用 Red Hat Enterprise Linux 主机或 Red Hat Virtualization Manager 主机 (RHVH)。VDSM(主机代理)需要在所有主机上运行,以便与 Red Hat Virtualization Manager 进行通信。
  • 一个存储服务,可根据所使用的存储类型,运行在本地或远程服务器上。存储服务必须能被所有主机访问。

图 1. 独立管理器 Red Hat Virtualization 架构

独立架构

自托管引擎架构

Red Hat Virtualization Manager 在它管理的同一环境中的自托管引擎节点(专用主机)上作为虚拟机运行。自托管引擎环境所需要的物理服务器会少一个,但需要更多的管理开销来部署和管理。管理器本身具有高可用性,无需外部 HA 管理。

自托管引擎环境的最小设置包括:

  • 一个在自托管引擎节点上托管的 Red Hat Virtualization Manager 虚拟机。RHV-M 设备用于自动安装 Red Hat Enterprise Linux 8 虚拟机和该虚拟机上的 Manager。
  • 至少两个自托管引擎节点以实现虚拟机高可用性。您可以使用 Red Hat Enterprise Linux 主机或 Red Hat Virtualization Manager 主机 (RHVH)。VDSM(主机代理)需要在所有主机上运行,以便与 Red Hat Virtualization Manager 进行通信。HA 服务在所有自托管引擎节点上运行,以管理管理器虚拟机的高可用性。
  • 一个存储服务,可根据所使用的存储类型,运行在本地或远程服务器上。存储服务必须能被所有主机访问。

图 2. 自托管引擎 Red Hat Virtualization 架构

自托管引擎架构

第 1 章 迁移概述

当您在自托管引擎部署期间指定备份文件时,管理器备份将在带有专用自托管引擎存储域的新虚拟机中恢复。强烈建议在新的主机上部署;如果在备份环境中存在用于部署的主机,它将从恢复的数据库中删除,以避免新环境中的冲突。如果部署到新主机上,则必须为主机分配唯一名称。重新利用备份中包含的现有主机的名称可能会导致新环境中的冲突。

管理器虚拟机至少需要两个自托管引擎节点。您可以添加新节点,或转换现有主机。

迁移涉及以下关键步骤:

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

先决条件

  • FQDN 为您的管理器和部署主机做好准备。正向和反向查找记录必须在 DNS 中设置。新管理器必须与原始管理器具有相同的 FQDN。
  • 管理网络(默认为ovirtmgmt )必须配置为 VM 网络,以便它可以管理 Manager 虚拟机。

第 2 章 安装自托管引擎部署主机

自托管引擎可从 Red Hat Virtualization HostRed Hat Enterprise Linux 主机部署。

重要

如果您计划使用绑定接口来实现高可用性或 VLAN 来分隔不同类型的流量(例如,用于存储或管理连接),您应该在主机上配置它们,然后再开始自托管引擎部署。请参阅规划和前提条件指南中的网络建议

2.1. 安装 Red Hat Virtualization 主机

Red Hat Virtualization Host (RHVH) 是一个基于 Red Hat Enterprise Linux 的最小操作系统,旨在提供一种简单的方法来设置物理机以充当 Red Hat Virtualization 的 hypervisor。最小操作系统仅包含计算机充当虚拟机监控程序所需的软件包,并提供 Cockpit Web 界面来监控主机和执行管理任务。如需最低浏览器要求,请参阅 运行 Cockpit

RHVH 支持 NIST 800-53 分区要求以提高安全性。RHVH 默认使用 NIST 800-53 分区布局。

主机必须满足最低主机要求

警告

安装或重新安装主机的操作系统时,红帽强烈建议您先分离附加到主机的任何现有非 OS 存储,以避免意外初始化这些磁盘,从而避免意外初始化这些磁盘,并可能会丢失数据。

流程

  1. 请访问红帽客户门户上的 Red Hat Virtualization 入门并登录。
  2. 单击 Download Latest 以访问产品下载页面。
  3. 从列表中选择适当的 Hypervisor Image for RHV,然后单击 Download Now
  4. 启动您要安装 RHVH 的机器,从准备的安装介质启动。
  5. 在引导菜单中选择 Install RHVH 4.4 并按 Enter

    注意

    您还可以按 Tab 键编辑内核参数。内核参数必须以空格分开,您可以通过按 Enter 键使用指定的内核参数引导系统。按 Esc 键清除对内核参数的任何更改并返回到引导菜单。

  6. 选择语言,点 Continue
  7. 从键盘布局屏幕中选择键盘布局,然后点 Done
  8. Installation Destination 屏幕中选择要在其上安装 RHV 的设备。(可选)启用加密。点 Done

    重要

    使用 Automatically configure partitioning 选项。

  9. Time & Date 屏幕中选择一个时区,然后点 Done
  10. Network & Host Name 屏幕选择一个网络,然后点击 Configure…​ 来配置连接详情。

    注意

    要在系统每次启动时使用连接,请选择 Connect automatically with priority 复选框。如需更多信息,请参阅 Red Hat Enterprise Linux 8 安装指南中的配置网络和主机名选项

    Host Name 字段中输入主机名,然后单击 Done

  11. 可选: 配置安全策略和 Kdump。有关安装概述屏幕中每个部分的更多信息 ,请参阅为 Red Hat Enterprise Linux 8 执行标准 RHEL 安装中的 使用 GUI 自定义 RHEL 安装
  12. Begin Installation
  13. 设置 root 密码,并选择性地在 RHVH 安装时创建额外的用户。

    警告

    不要在 RHVH 上创建不受信任的用户,因为这可能导致利用本地安全漏洞。

  14. 单击 Reboot 以完成安装。

    注意

    当 RHVH 重新启动时,nodectl check 会在主机上执行健康检查,并在您在命令行中登录时显示结果。消息 node status: OKnode status: DEGRADED 代表了健康状态。运行 nodectl check 以了解更多信息。

    注意

    如有必要,您可以防止内核模块自动载入

2.1.1. 启用 Red Hat Virtualization 主机存储库

注册系统以接收更新。Red Hat Virtualization Host 只需要一个软件仓库。本节提供有关将 RHVH 注册到内容交付网络Red Hat Satellite 6 的说明。

将 RHVH 注册到内容交付网络

  1. 启用 Red Hat Virtualization Host 8 存储库,以便以后更新 Red Hat Virtualization 主机:

    # subscription-manager repos --enable=rhvh-4-for-rhel-8-x86_64-rpms

将 RHVH 注册到 Red Hat Satellite 6

  1. 登录位于 https://HostFQDNorIP:9090 的 Cockpit Web 界面。
  2. Terminal
  3. 使用 Red Hat Satellite 6 注册 RHVH:

      # rpm -Uvh http://satellite.example.com/pub/katello-ca-consumer-latest.noarch.rpm
      # subscription-manager register --org="org_id"
      # subscription-manager list --available
      # subscription-manager attach --pool=pool_id
      # subscription-manager repos \
        --disable='*' \
        --enable=rhvh-4-for-rhel-8-x86_64-rpms
注意

您还可以使用 virt-who 在 Red Hat Satellite 中配置虚拟机订阅。请参阅使用 virt-who 管理基于主机的订阅

2.2. 安装 Red Hat Enterprise Linux 主机

Red Hat Enterprise Linux 主机基于在物理服务器中的 Red Hat Enterprise Linux 8 的标准基本安装,并附加 Red Hat Enterprise Linux ServerRed Hat Virtualization 订阅。

有关详细的安装说明,请参阅执行标准 RHEL 安装

主机必须满足最低主机要求

警告

安装或重新安装主机的操作系统时,红帽强烈建议您先分离附加到主机的任何现有非 OS 存储,以避免意外初始化这些磁盘,从而避免意外初始化这些磁盘,并可能会丢失数据。

重要

虚拟化必须在主机的 BIOS 设置中启用。有关更改主机的 BIOS 设置的详情,请参考主机的硬件文档。

重要

不要在 Red Hat Enterprise Linux 主机上安装第三方 watchdog 系统。它们可能会干扰 VDSM 提供的 watchdog 守护进程。

2.2.1. 启用 Red Hat Enterprise Linux 主机存储库

要使用 Red Hat Enterprise Linux 机器作为主机,需要为主机注册 Content Delivery Network,附加 Red Hat Enterprise Linux ServerRed Hat Virtualization 订阅,并启用主机仓库。

流程

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

    # subscription-manager register
  2. 查找 Red Hat Enterprise Linux ServerRed Hat Virtualization 订阅池,并记录池 ID:

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

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

    查看当前附加的订阅:

    # subscription-manager list --consumed

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

    # dnf repolist
  4. 配置存储库:

    # subscription-manager repos \
        --disable='*' \
        --enable=rhel-8-for-x86_64-baseos-eus-rpms \
        --enable=rhel-8-for-x86_64-appstream-eus-rpms \
        --enable=rhv-4-mgmt-agent-for-rhel-8-x86_64-rpms \
        --enable=fast-datapath-for-rhel-8-x86_64-rpms \
        --enable=advanced-virt-for-rhel-8-x86_64-rpms \
        --enable=openstack-16.2-cinderlib-for-rhel-8-x86_64-rpms \
        --enable=rhceph-4-tools-for-rhel-8-x86_64-rpms
  5. 将 RHEL 版本设置为 8.6:

    # subscription-manager release --set=8.6
  6. 重置 virt 模块:

    # dnf module reset virt
    注意

    如果在 Advanced Virtualization 流中已启用此模块,则不需要这一步骤,但它不会造成负面影响。

    您可以输入以下内容来查看流的值:

    # dnf module list virt
  7. 使用以下命令在高级虚拟化流中启用 virt 模块:
  • RHV 4.4.2:

    # dnf module enable virt:8.2
  • RHV 4.4.3 到 4.4.5:

    # dnf module enable virt:8.3
  • 对于 RHV 4.4.6 到 4.4.10 :

    # dnf module enable virt:av
  • 对于 RHV 4.4 及更新的版本:

    # dnf module enable virt:rhel
    注意

    从 RHEL 8.6 开始,高级虚拟化软件包将使用标准的 virt:rhel 模块。对于 RHEL 8.4 和 8.5,只使用一个高级虚拟化流,即 rhel:av

    1. 确保当前安装的所有软件包都为最新版本:

      # dnf upgrade --nobest
    2. 重启机器。

      注意

      如有必要,您可以防止内核模块自动载入

尽管现有存储域将从单机管理器中迁移,但您必须为专用于管理器虚拟机的自托管引擎存储域准备额外存储。

第 3 章 为 Red Hat Virtualization 准备存储

您需要准备要用于新环境中的存储域的存储。Red Hat Virtualization 环境必须至少有一个数据存储域,但建议添加更多存储域。

警告

安装或重新安装主机的操作系统时,红帽强烈建议您先分离附加到主机的任何现有非 OS 存储,以避免意外初始化这些磁盘,从而避免意外初始化这些磁盘,并可能会丢失数据。

数据域保管数据中心中所有虚拟机和模板的虚拟硬盘和 OVF 文件,并且在激活的情况下无法在数据中心间共享(但可以在数据中心之间迁移)。多个存储类型的数据域可以添加到同一数据中心,只要它们都是共享的,而不是本地域。

您可以使用以下存储类型之一:

先决条件

  • 自托管引擎必须具有额外的数据域,其至少 74 GiB 专用于 Manager 虚拟机。自托管引擎安装程序会创建此域。安装之前,为此域准备存储。

    警告

    不支持在部署自托管引擎后扩展或更改自托管引擎存储域。任何此类更改都可能会阻止自托管引擎引导。

  • 使用 FCP 或 iSCSI 块存储域时,单个目标 LUN 是自托管引擎唯一支持的设置。
  • 如果使用 iSCSI 存储,自托管引擎存储域必须使用专用 iSCSI 目标。任何额外的存储域都必须使用不同的 iSCSI 目标。
  • 强烈建议您在与自托管引擎存储域相同的数据中心中创建额外的数据存储域。如果您在只有一个活动数据存储域的数据中心内部署自托管引擎,并且该存储域已损坏,则无法添加新存储域或删除损坏的存储域。您必须重新部署自托管引擎。

3.1. 准备 NFS 存储

在您的文件存储或远程服务器上设置 NFS 共享,以充当 Red Hat Enterprise Virtualization 主机系统上的存储域。在远程存储上导出共享并在 Red Hat Virtualization Manager 中配置共享后,将在 Red Hat Virtualization 主机上自动导入共享。

有关设置、配置、挂载和导出 NFS 的详情,请参考为 Red Hat Enterprise Linux 8 管理文件系统

Red Hat Virtualization 需要特定的系统用户帐户和系统用户组,以便管理器可以将数据存储在导出的目录表示的存储域中。以下流程为一个目录设置权限。您必须为 Red Hat Virtualization 中用作存储域的所有目录重复 chownchmod 步骤。

先决条件

  1. 安装 NFS utils 软件包。

    # dnf install nfs-utils -y
  2. 检查启用的版本:

    # cat /proc/fs/nfsd/versions
  3. 启用以下服务:

    # systemctl enable nfs-server
    # systemctl enable rpcbind

流程

  1. 创建组 kvm

    # groupadd kvm -g 36
  2. 在组 kvm 中创建用户 vdsm

    # useradd vdsm -u 36 -g kvm
  3. 创建 storage 目录并修改访问权限。

    # mkdir /storage
    # chmod 0755 /storage
    # chown 36:36 /storage/
  4. storage 目录添加到具有相关权限的 /etc/exports 中。

    # vi /etc/exports
    # cat /etc/exports
     /storage *(rw)
  5. 重启以下服务:

    # systemctl restart rpcbind
    # systemctl restart nfs-server
  6. 查看哪个导出可用于特定 IP 地址:

    # exportfs
     /nfs_server/srv
                   10.46.11.3/24
     /nfs_server       <world>
注意

如果在启动服务后 /etc/exports 中进行了更改,则可以使用 exportfs -ra 命令重新加载更改。执行上述所有阶段后,导出目录应已就绪,并可在其他主机上进行测试,以检查其是否可用。

3.2. 准备 iSCSI 存储

Red Hat Virtualization 支持 iSCSI 存储,这是从由 LUN 组成的卷组创建的存储域。卷组和 LUN 一次不能附加到多个存储域。

有关设置和配置 iSCSI 存储的详情,请参考为 Red Hat Enterprise Linux 8 管理存储设备 中的 配置 iSCSI 目标

重要

如果您使用的是块存储,并且打算在裸设备上部署虚拟机或直接 LUN 并用逻辑卷管理器 (LVM) 管理它们,您必须创建一个过滤器来隐藏 guest 逻辑卷。这将防止在主机引导时激活 guest 逻辑卷,这种情况可能会导致逻辑卷过时并导致数据崩溃。使用 vdsm-tool config-lvm-filter 命令创建 LVM 的过滤器。请参阅创建 LVM 过滤器

重要

Red Hat Virtualization 目前不支持块大小为 4K 的块存储。您必须以旧模式(512b 块)配置块存储。

重要

如果您的主机从 SAN 存储引导并丢失与存储的连接,则存储文件系统将变为只读并在恢复连接后保持此状态。

要防止这种情况,请在 SAN 的根文件系统中为引导 LUN 添加下拉多路径配置文件以确保它在连接时已在队列中:

# cat /etc/multipath/conf.d/host.conf
multipaths {
    multipath {
        wwid boot_LUN_wwid
        no_path_retry queue
    }

3.3. 准备 FCP 存储

Red Hat Virtualization 通过从由预先存在的 LUN 的卷组创建存储域来支持 SAN 存储。卷组和 LUN 不可同时附加到多个存储域。

Red Hat Virtualization 系统管理员需要对存储区域网络 (SAN) 概念有较好的了解。SAN 通常使用光纤通道协议 (FCP) 作为主机和共享外部存储之间的通信。因此,SAN 有时可能会被称为 FCP 存储。

有关在 Red Hat Enterprise Linux 上设置和配置 FCP 或多路径的详情,请参考存储管理指南DM 多路径指南

重要

如果您使用的是块存储,并且打算在裸设备上部署虚拟机或直接 LUN 并用逻辑卷管理器 (LVM) 管理它们,您必须创建一个过滤器来隐藏 guest 逻辑卷。这将防止在主机引导时激活 guest 逻辑卷,这种情况可能会导致逻辑卷过时并导致数据崩溃。使用 vdsm-tool config-lvm-filter 命令创建 LVM 的过滤器。请参阅创建 LVM 过滤器

重要

Red Hat Virtualization 目前不支持块大小为 4K 的块存储。您必须以旧模式(512b 块)配置块存储。

重要

如果您的主机从 SAN 存储引导并丢失与存储的连接,则存储文件系统将变为只读并在恢复连接后保持此状态。

要防止这种情况,请在 SAN 的根文件系统中为引导 LUN 添加下拉多路径配置文件以确保它在连接时已在队列中:

# cat /etc/multipath/conf.d/host.conf
multipaths {
    multipath {
        wwid boot_LUN_wwid
        no_path_retry queue
    }
  }

3.4. 准备 Red Hat Gluster Storage

有关设置和配置 Red Hat Gluster Storage 的信息,请参阅 Red Hat Gluster Storage 安装指南

有关 Red Hat Virtualization 支持的 Red Hat Gluster Storage 版本,请参阅 Red Hat Gluster Storage 版本兼容性和支持

3.5. 为 SAN 供应商自定义多路径配置

如果您的 RHV 环境配置为使用 SAN 的多路径连接,您可以自定义多路径配置设置以满足您的存储供应商指定的要求。这些自定义可覆盖 /etc/multipath.conf 中指定的默认设置和设置。

要覆盖多路径设置,请不要自定义 /etc/multipath.conf。因为 VDSM 拥有 /etc/multipath.conf,因此安装或升级 VDSM 或 Red Hat Virtualization 可能会覆盖此文件,包括其包含的任何自定义。这种覆盖可能会导致严重存储失败。

取而代之,您可以在 /etc/multipath/conf.d 目录中创建一个文件,其中包含您要自定义或覆盖的设置。

VDSM 按字母顺序执行 /etc/multipath/conf.d 中的文件。因此,为了控制执行顺序,您可以从使文件名进入最后一个的数字开始。例如: /etc/multipath/conf.d/90-myfile.conf

要避免造成严重的存储失败,请遵循以下准则:

  • 不要修改 /etc/multipath.conf。如果文件包含用户修改,且文件被覆盖,则可能会导致意外的存储问题。
警告

不遵循上述准则可能会导致灾难性存储错误。

先决条件

  • VDSM 配置为使用 multipath 模块。要验证这一点,请输入:

    # vdsm-tool is-configured --module multipath

流程

  1. /etc/multipath/conf.d 目录中创建新的配置文件。
  2. 将您要从 /etc/multipath.conf 中覆盖的单独设置复制到 /etc/multipath/conf.d/<my_device>.conf 中的新配置文件。删除任何注释标记、编辑设置值并保存您的更改。
  3. 输入以下内容应用新的配置设置:

    # systemctl reload multipathd
    注意

    不要重启 multipathd 服务。这样做会在 VDSM 日志中生成错误。

验证步骤

  1. 测试新配置是否在各种故障场景中在非生产集群中按预期执行。例如,禁用所有存储连接。
  2. 一次启用一个连接,并验证这样做是否使存储域可访问。

第 4 章 更新 Red Hat Virtualization Manager

先决条件

  • 数据中心兼容性级别必须设置为最新版本,以确保与更新的存储版本兼容。

流程

  1. 在 Manager 机器中检查更新的软件包是否可用:

    # engine-upgrade-check
  2. 更新设置软件包:

    # yum update ovirt\*setup\* rh\*vm-setup-plugins
  3. 使用 engine-setup 脚本更新 Red Hat Virtualization Manager。engine-setup 脚本会提示您显示一些配置问题,然后停止 ovirt-engine 服务,下载并安装更新的软件包,备份和更新数据库,执行安装后配置,以及启动 ovirt-engine 服务。

    # engine-setup

    当脚本成功完成时,会显示以下信息:

    Execution of setup completed successfully
    注意

    Red Hat Virtualization Manager 安装过程中也会使用 engine-setup 脚本,并存储提供的配置值。在更新过程中,在预览配置时会显示存储的值,如果安装后使用 engine-config 更新配置,则可能不会更新。例如,如果在安装后使用 engine-configSANWipeAfterDelete 更新为 trueengine-setup 会在配置预览中输出 "Default SAN wipe after delete: False"。但是 engine-setup 不会覆盖更新的值。

    重要

    更新过程可能需要一些时间。在进程完成之前,请勿停止该进程。

  4. 更新基本操作系统以及在 Manager 中安装的任何可选软件包:

    # yum update --nobest
    重要

    如果您在更新过程中遇到必要的 Ansible 软件包冲突,请参阅在 RHV 管理器上无法执行 yum update(ansible 冲突 )

    重要

    如果更新了任何内核包,请重新引导计算机以完成更新。

第 5 章 备份原始管理器

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

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

流程

  1. 登录到原始 Manager 并停止 ovirt-engine 服务:

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

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

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

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

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

    # subscription-manager unregister

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

第 6 章 在新的自托管引擎中恢复备份

在新主机上运行 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. 登录新主机。
  3. 如果在 Red Hat Virtualization Host 上部署,则 ovirt-hosted-engine-setup 已安装,因此可以跳过这一步。如果要在 Red Hat Enterprise Linux 上部署,请安装 ovirt-hosted-engine-setup 软件包:

    # dnf install ovirt-hosted-engine-setup
  4. 使用 tmux 窗口管理器运行脚本,以避免在出现网络或终端中断时丢失会话。

    安装并运行 tmux

    # dnf -y install tmux
    # tmux
  5. 运行 hosted-engine 脚本,指定到备份文件的路径:

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

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

  6. 选择 Yes 以开始部署。
  7. 配置网络。脚本会检测可能的 NIC,以用作环境的管理网桥。
  8. 如果要使用自定义设备进行虚拟机安装,请输入 OVA 存档的路径。否则,将此字段留空,以使用 RHV-M Appliance。
  9. 输入 Manager 的 root 密码。
  10. 输入可让您以 root 用户身份登录 Manager 的 SSH 公钥,并指定是否为 root 用户启用 SSH 访问。
  11. 输入虚拟机的 CPU 和内存配置。

    注意

    虚拟机必须具有与要从中迁移 Manager 的物理机相同的 RAM。如果必须迁移到比迁移 Manager 的物理机少的虚拟机,请参阅在 Red Hat Virtualization Hosted Engine 中配置 RAM 量

  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 设备,这可能需要一些时间。

    注意

    如果主机无法正常工作,因为缺少所需的网络或类似问题,部署会暂停并显示以下消息:

    [ INFO  ] You can now connect to https://<host name>:6900/ovirt-engine/ and check the status of this host and eventually remediate it, please continue only when the host is listed as 'up'
    [ INFO  ] TASK [ovirt.ovirt.hosted_engine_setup : include_tasks]
    [ INFO  ] ok: [localhost]
    [ INFO  ] TASK [ovirt.ovirt.hosted_engine_setup : Create temporary lock file]
    [ INFO  ] changed: [localhost]
    [ INFO  ] TASK [ovirt.ovirt.hosted_engine_setup : Pause execution until /tmp/ansible.<random>_he_setup_lock is removed, delete it once ready to proceed]

    暂停进程允许您:

    • 使用提供的 URL 连接到管理门户。
    • 评估该情况,了解主机无法正常运行的原因,并进行修改。例如,如果此部署从备份中恢复,且主机集群包含的备份包含主机集群所需的网络,则配置网络,将相关主机 NIC 附加到这些网络。
    • 一旦一切正常,主机状态为 Up,删除上述消息中显示的锁定文件。部署将继续。
  17. 选择要使用的存储类型:

    • 对于 NFS,请输入版本、完整地址和到存储的路径以及所有挂载选项。
    • 对于 iSCSI,请输入门户详情并从自动检测的列表中选择目标和 LUN。您只能在部署期间选择一个 iSCSI 目标,但支持多路径连接同一门户组的所有门户。

      注意

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

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

      重要

      仅支持副本 1 和副本 3 Gluster 存储。确保您按如下方式配置卷:

      gluster volume set VOLUME_NAME group virt
      gluster volume set VOLUME_NAME performance.strict-o-direct on
      gluster volume set VOLUME_NAME network.remote-dio off
      gluster volume set VOLUME_NAME storage.owner-uid 36
      gluster volume set VOLUME_NAME storage.owner-gid 36
      gluster volume set VOLUME_NAME network.ping-timeout 30
    • 对于光纤通道,从自动检测的列表中选择 LUN。必须配置并连接主机总线适配器,而且 LUN 不得包含任何现有数据。要重复使用现有 LUN,请参阅管理指南中的重新使用 LUN
  18. 输入 Manager 磁盘大小。

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

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

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

第 7 章 启用 Red Hat Virtualization Manager 存储库

您需要使用 Red Hat Subscription Manager 登录并注册 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

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

    # dnf repolist
  4. 配置存储库:

    # subscription-manager repos \
        --disable='*' \
        --enable=rhel-8-for-x86_64-baseos-eus-rpms \
        --enable=rhel-8-for-x86_64-appstream-eus-rpms \
        --enable=rhv-4.4-manager-for-rhel-8-x86_64-rpms \
        --enable=fast-datapath-for-rhel-8-x86_64-rpms \
        --enable=jb-eap-7.4-for-rhel-8-x86_64-rpms \
        --enable=openstack-16.2-cinderlib-for-rhel-8-x86_64-rpms \
        --enable=rhceph-4-tools-for-rhel-8-x86_64-rpms
  5. 将 RHEL 版本设置为 8.6:

    # subscription-manager release --set=8.6
  6. 启用 pki-deps 模块。

    # dnf module -y enable pki-deps
  7. 启用 postgresql 模块的版本 12。

    # dnf module -y enable postgresql:12
  8. 启用 nodejs 模块的版本 14:

    # dnf module -y enable nodejs:14
  9. 同步安装的软件包,将它们更新至最新可用版本。

    # dnf distro-sync --nobest

其它资源

有关模块和模块流的详情,请参考安装、管理和删除用户空间组件中的以下部分

Red Hat Virtualization Manager 已迁移到自托管引擎设置中。管理器现在在新的自托管引擎节点上的虚拟机上运行。

主机将在新环境中运行,但无法托管 Manager 虚拟机。您可以将这些主机的某些或全部转换为自托管引擎节点。

第 8 章 将现有主机重新安装为自托管引擎节点

您可以将自托管引擎环境中的现有标准主机转换为能够托管 Manager 虚拟机的自托管引擎节点。

警告

安装或重新安装主机的操作系统时,红帽强烈建议您先分离附加到主机的任何现有非 OS 存储,以避免意外初始化这些磁盘,从而避免意外初始化这些磁盘,并可能会丢失数据。

流程

  1. 单击 ComputeHosts,再选择 主机。
  2. ManagementMaintenanceOK
  3. InstallationReinstall
  4. 单击 Hosted Engine 选项卡,再从下拉菜单中选择 DEPLOY
  5. 点击 确定

主机通过自托管引擎配置重新安装,并使用管理门户中的 crown 图标标记。

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

# hosted-engine --vm-status

如果新环境在没有问题的情况下运行,您可以弃用原始的 Manager 计算机。

附录 A. 防止内核模块自动载入

您可以防止自动加载内核模块,无论是直接加载模块,还是在引导过程中作为依赖项载入。

流程

  1. 模块名称必须添加到 modprobe 实用程序的配置文件中。此文件必须位于配置目录 /etc/modprobe.d 中。

    有关此配置目录的更多信息,请参阅 man page modprobe.d

  2. 确保该模块没有配置为在以下任意位置载入:

    • /etc/modprobe.conf
    • /etc/modprobe.d/*
    • /etc/rc.modules
    • /etc/sysconfig/modules/*
    # modprobe --showconfig <_configuration_file_name_>
  3. 如果模块出现在输出中,请确保它被忽略且没有加载:

    # modprobe --ignore-install <_module_name_>
  4. 如果载入了正在运行的系统,从正在运行的系统中卸载该模块:

    # modprobe -r <_module_name_>
  5. 通过将 blacklist 行添加到系统专用的配置文件(如 /etc/modprobe.d/local-dontload.conf )来防止直接加载模块:

    # echo "blacklist <_module_name_> >> /etc/modprobe.d/local-dontload.conf
    注意

    如果模块是另一个模块的必需依赖项或可选依赖项,则此步骤不会阻止模块加载。

  6. 防止根据需要载入可选模块:

    # echo "install <_module_name_>/bin/false" >> /etc/modprobe.d/local-dontload.conf
    重要

    如果其他硬件需要排除的模块,则排除该模块可能会导致意外的副作用。

  7. 生成 initramfs 的备份副本:

    # cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.$(date +%m-%d-%H%M%S).bak
  8. 如果内核模块是 initramfs 的一部分,重建初始 ramdisk 镜像,省略该模块:

    # dracut --omit-drivers <_module_name_> -f
  9. 获取当前的内核命令行参数:

    # grub2-editenv - list | grep kernelopts
  10. <_module_name_>.blacklist=1 rd.driver.blacklist=<_module_name_> 附加到生成的输出中:

    # grub2-editenv - set kernelopts="<> <_module_name_>.blacklist=1 rd.driver.blacklist=<_module_name_>"

    例如:

    # grub2-editenv - set kernelopts="root=/dev/mapper/rhel_example-root ro crashkernel=auto resume=/dev/mapper/rhel_example-swap rd.lvm.lv=rhel_example/root rd.lvm.lv=rhel_example/swap <_module_name_>.blacklist=1 rd.driver.blacklist=<_module_name_>"
  11. 生成 kdump initramfs 的备份副本:

    # cp /boot/initramfs-$(uname -r)kdump.img /boot/initramfs-$(uname -r)kdump.img.$(date +%m-%d-%H%M%S).bak
  12. rd.driver.blacklist=<_module_name_> 附加到 /etc/sysconfig/kdump 文件中的 KDUMP_COMMANDLINE_APPEND 设置中,以从 kdump initramfs 中忽略它:

    # sed -i '/^KDUMP_COMMANDLINE_APPEND=/s/"$/ rd.driver.blacklist=module_name"/' /etc/sysconfig/kdump
  13. 重启 kdump 服务以获取对 kdump initrd 的更改:

      # kdumpctl restart
  14. 重建 kdump 初始 ramdisk 镜像:

      # mkdumprd -f /boot/initramfs-$(uname -r)kdump.img
  15. 重启系统:

A.1. 临时删除模块

您可以临时删除模块。

流程

  1. 运行 modprobe 以删除任何当前加载的模块:

    # modprobe -r <module name>
  2. 如果模块无法卸载,则进程或其他模块可能仍在使用该模块。如果是,终止进程并运行在其他时间上写入的 modpole 命令以卸载该模块。