从独立管理器迁移到自托管引擎
如何将 Red Hat Virtualization Manager 从单机服务器迁移到自我管理的虚拟机
摘要
前言
您可以通过备份单机管理器并在新的自托管环境中恢复它,将独立的 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 Host 或 Red 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 存储,以避免意外初始化这些磁盘,从而避免意外初始化这些磁盘,并可能会丢失数据。
流程
- 请访问红帽客户门户上的 Red Hat Virtualization 入门并登录。
- 单击 Download Latest 以访问产品下载页面。
- 从列表中选择适当的 Hypervisor Image for RHV,然后单击 Download Now。
- 启动您要安装 RHVH 的机器,从准备的安装介质启动。
在引导菜单中选择 Install RHVH 4.4 并按
Enter
。注意您还可以按
Tab
键编辑内核参数。内核参数必须以空格分开,您可以通过按Enter
键使用指定的内核参数引导系统。按Esc
键清除对内核参数的任何更改并返回到引导菜单。- 选择语言,点 Continue。
- 从键盘布局屏幕中选择键盘布局,然后点 Done。
从 Installation Destination 屏幕中选择要在其上安装 RHV 的设备。(可选)启用加密。点 Done。
重要使用 Automatically configure partitioning 选项。
- 从 Time & Date 屏幕中选择一个时区,然后点 Done。
从 Network & Host Name 屏幕选择一个网络,然后点击 Configure… 来配置连接详情。
注意要在系统每次启动时使用连接,请选择 Connect automatically with priority 复选框。如需更多信息,请参阅 Red Hat Enterprise Linux 8 安装指南中的配置网络和主机名选项。
在 Host Name 字段中输入主机名,然后单击 Done。
- 可选: 配置安全策略和 Kdump。有关安装概述屏幕中每个部分的更多信息 ,请参阅为 Red Hat Enterprise Linux 8 执行标准 RHEL 安装中的 使用 GUI 自定义 RHEL 安装。
- 点 Begin Installation。
设置 root 密码,并选择性地在 RHVH 安装时创建额外的用户。
警告不要在 RHVH 上创建不受信任的用户,因为这可能导致利用本地安全漏洞。
单击 Reboot 以完成安装。
注意当 RHVH 重新启动时,
nodectl check
会在主机上执行健康检查,并在您在命令行中登录时显示结果。消息node status: OK
或node status: DEGRADED
代表了健康状态。运行nodectl check
以了解更多信息。注意如有必要,您可以防止内核模块自动载入。
2.1.1. 启用 Red Hat Virtualization 主机存储库
注册系统以接收更新。Red Hat Virtualization Host 只需要一个软件仓库。本节提供有关将 RHVH 注册到内容交付网络或 Red Hat Satellite 6 的说明。
将 RHVH 注册到内容交付网络
启用
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
-
登录位于
https://HostFQDNorIP:9090
的 Cockpit Web 界面。 - 点 Terminal。
使用 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 Server
和 Red 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 Server
和 Red Hat Virtualization
订阅,并启用主机仓库。
流程
使用 Content Delivery Network 注册您的系统,在提示时输入您的客户门户网站用户名和密码:
# subscription-manager register
查找
Red Hat Enterprise Linux Server
和Red Hat Virtualization
订阅池,并记录池 ID:# subscription-manager list --available
使用池 ID 将订阅附加到系统:
# subscription-manager attach --pool=poolid
注意查看当前附加的订阅:
# subscription-manager list --consumed
列出所有启用的软件仓库:
# dnf repolist
配置存储库:
# 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
将 RHEL 版本设置为 8.6:
# subscription-manager release --set=8.6
重置
virt
模块:# dnf module reset virt
注意如果在 Advanced Virtualization 流中已启用此模块,则不需要这一步骤,但它不会造成负面影响。
您可以输入以下内容来查看流的值:
# dnf module list virt
-
使用以下命令在高级虚拟化流中启用
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
。确保当前安装的所有软件包都为最新版本:
# dnf upgrade --nobest
重启机器。
注意如有必要,您可以防止内核模块自动载入。
尽管现有存储域将从单机管理器中迁移,但您必须为专用于管理器虚拟机的自托管引擎存储域准备额外存储。
第 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 中用作存储域的所有目录重复 chown
和 chmod
步骤。
先决条件
安装 NFS
utils
软件包。# dnf install nfs-utils -y
检查启用的版本:
# cat /proc/fs/nfsd/versions
启用以下服务:
# systemctl enable nfs-server # systemctl enable rpcbind
流程
创建组
kvm
:# groupadd kvm -g 36
在组
kvm
中创建用户vdsm
:# useradd vdsm -u 36 -g kvm
创建
storage
目录并修改访问权限。# mkdir /storage # chmod 0755 /storage # chown 36:36 /storage/
将
storage
目录添加到具有相关权限的/etc/exports
中。# vi /etc/exports # cat /etc/exports /storage *(rw)
重启以下服务:
# systemctl restart rpcbind # systemctl restart nfs-server
查看哪个导出可用于特定 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
流程
-
在
/etc/multipath/conf.d
目录中创建新的配置文件。 -
将您要从
/etc/multipath.conf
中覆盖的单独设置复制到/etc/multipath/conf.d/<my_device>.conf
中的新配置文件。删除任何注释标记、编辑设置值并保存您的更改。 输入以下内容应用新的配置设置:
# systemctl reload multipathd
注意不要重启 multipathd 服务。这样做会在 VDSM 日志中生成错误。
验证步骤
- 测试新配置是否在各种故障场景中在非生产集群中按预期执行。例如,禁用所有存储连接。
- 一次启用一个连接,并验证这样做是否使存储域可访问。
3.6. 推荐的 Multipath.conf 设置
不要覆盖以下设置:
- user_friendly_names no
设备名称在所有管理程序之间必须一致.例如:
/dev/mapper/{WWID}
。此设置的默认值no
可防止在不同虚拟机监控程序上分配任意和不一致的设备名称,如/dev/mapper/mpath{N}
,这会导致系统行为不可预测。警告不要将此设置更改为
user_friendly_names yes
。用户友好的名称可能会导致系统行为或故障无法预测,且不受支持。find_multipaths no
此设置控制 RHVH 是否仅在有多个路径可用时尝试通过多路径访问设备。当前值
no
允许 RHV 通过多路径访问设备,即使只有一个路径可用。警告不要覆盖此设置。
除非存储系统厂商需要,否则请避免覆盖以下设置:
no_path_retry 4
-
此设置控制无路径可用时尝试重试的轮询数量。在 RHV 版本 4.2 之前,
no_path_retry
的值为fail
,因为在没有路径可用时, QEMU 和 I/O 队列可能会遇到问题。fail
值使其快速失败并暂停虚拟机。RHV 版本 4.2 将此值更改为4
,因此当多路径检测到最后一个路径失败时,它会检查所有路径四次。假设默认的 5 秒轮询间隔,这个检查路径的过程需要 20 秒。如果没有启动路径,multipathd 会告知内核停止排队并出现故障,直到路径恢复。恢复路径后,下次所有路径都失败时重置 20 秒延迟。如需了解更多详细信息,请参阅更改此设置的提交。 polling_interval 5
- 此设置决定了轮询尝试检测路径是打开还是失败之间的秒数。除非供应商提供了增加这个值的明确原因,请保留 VDSM 生成的默认值,以便系统更快地响应路径失败。
在备份 Manager 前,请确定将其更新至最新的次版本。备份文件中的管理器版本必须与新管理器的版本匹配。
第 4 章 更新 Red Hat Virtualization Manager
先决条件
- 数据中心兼容性级别必须设置为最新版本,以确保与更新的存储版本兼容。
流程
在 Manager 机器中检查更新的软件包是否可用:
# engine-upgrade-check
更新设置软件包:
# yum update ovirt\*setup\* rh\*vm-setup-plugins
使用
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-config
将SANWipeAfterDelete
更新为true
,engine-setup
会在配置预览中输出 "Default SAN wipe after delete: False"。但是engine-setup
不会覆盖更新的值。重要更新过程可能需要一些时间。在进程完成之前,请勿停止该进程。
更新基本操作系统以及在 Manager 中安装的任何可选软件包:
# yum update --nobest
重要如果您在更新过程中遇到必要的 Ansible 软件包冲突,请参阅在 RHV 管理器上无法执行 yum update(ansible 冲突 )。
重要如果更新了任何内核包,请重新引导计算机以完成更新。
第 5 章 备份原始管理器
使用 engine-backup
命令备份原始管理器,并将备份文件复制到单独的位置,以便可在进程的任意时间点上访问该文件。
有关 engine-backup --mode=backup
选项的更多信息,请参阅 管理指南中的备份和恢复 Red Hat Virtualization Manager。
流程
登录到原始 Manager 并停止
ovirt-engine
服务:# systemctl stop ovirt-engine # systemctl disable ovirt-engine
注意虽然禁止运行原始管理器,但建议不要对环境进行更改,因为它在创建备份后不会对环境进行任何更改。此外,它还会阻止原始管理器和新管理器同时管理现有资源。
运行
engine-backup
命令,指定要创建的备份文件的名称,以及要存储备份日志的日志文件名称:# engine-backup --mode=backup --file=file_name --log=log_file_name
将文件复制到外部服务器。在以下示例中,
storage.example.com
是网络存储服务器的完全限定域名,它将存储备份直到需要,/backup/
是任何指定的文件夹或路径。# scp -p file_name log_file_name storage.example.com:/backup/
如果您不要求 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 目标)上更新。
流程
将备份文件复制到新主机。在以下示例中,
host.example.com
是主机的 FQDN,/backup/
是任何指定的文件夹或路径。# scp -p file_name host.example.com:/backup/
- 登录新主机。
如果在 Red Hat Virtualization Host 上部署,则
ovirt-hosted-engine-setup
已安装,因此可以跳过这一步。如果要在 Red Hat Enterprise Linux 上部署,请安装ovirt-hosted-engine-setup
软件包:# dnf install ovirt-hosted-engine-setup
使用
tmux
窗口管理器运行脚本,以避免在出现网络或终端中断时丢失会话。安装并运行
tmux
:# dnf -y install tmux # tmux
运行
hosted-engine
脚本,指定到备份文件的路径:# hosted-engine --deploy --restore-from-file=backup/file_name
要随时转义脚本,请使用 CTRL+D 中止部署。
- 选择 Yes 以开始部署。
- 配置网络。脚本会检测可能的 NIC,以用作环境的管理网桥。
- 如果要使用自定义设备进行虚拟机安装,请输入 OVA 存档的路径。否则,将此字段留空,以使用 RHV-M Appliance。
- 输入 Manager 的 root 密码。
- 输入可让您以 root 用户身份登录 Manager 的 SSH 公钥,并指定是否为 root 用户启用 SSH 访问。
输入虚拟机的 CPU 和内存配置。
注意虚拟机必须具有与要从中迁移 Manager 的物理机相同的 RAM。如果必须迁移到比迁移 Manager 的物理机少的虚拟机,请参阅在 Red Hat Virtualization Hosted Engine 中配置 RAM 量。
- 输入 Manager 虚拟机的 MAC 地址,或接受随机生成的地址。如果要通过 DHCP 为 Manager 虚拟机提供 IP 地址,请确保此 MAC 地址具有有效的 DHCP 保留。部署脚本将不会为您配置 DHCP 服务器。
输入虚拟机的网络详情。如果指定了 Static,请输入 Manager 的 IP 地址。
重要静态 IP 地址必须属于与主机相同的子网。例如,如果主机在 10.1.1.0/24 中,则管理器虚拟机的 IP 必须位于同一子网范围 (10.1.1.1-254/24) 中。
-
指定是否将 Manager 虚拟机和基础主机的条目添加到虚拟机的
/etc/hosts
文件中。您必须确保主机名可以被解析。 - 提供 SMTP 服务器的名称和 TCP 端口号、用于发送电子邮件通知的电子邮件地址,以及用于接收这些通知的电子邮件地址列表:
输入
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,删除上述消息中显示的锁定文件。部署将继续。
选择要使用的存储类型:
- 对于 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。
输入 Manager 磁盘大小。
该脚本会继续,直到部署完成。
-
部署过程会更改管理器的 SSH 密钥。要允许客户端机器在没有 SSH 错误的情况下访问新管理器,请在访问原始管理器的任何客户端机器上从
.ssh/known_hosts
文件中删除原始 Manager 条目。
部署完成后,登录新的 Manager 虚拟机并启用所需的存储库。
第 7 章 启用 Red Hat Virtualization Manager 存储库
您需要使用 Red Hat Subscription Manager 登录并注册 Manager 机器,附加 Red Hat Virtualization Manager
订阅并启用 Manager 存储库。
流程
使用 Content Delivery Network 注册您的系统,在提示时输入您的客户门户网站用户名和密码:
# subscription-manager register
注意如果您使用 IPv6 网络,请使用 IPv6 转换机制来访问 Content Delivery Network 和 subscription Manager。
查找
Red Hat Virtualization Manager
订阅池并记录池 ID:# subscription-manager list --available
使用池 ID 将订阅附加到系统:
# subscription-manager attach --pool=pool_id
注意查看当前附加的订阅:
# subscription-manager list --consumed
列出所有启用的软件仓库:
# dnf repolist
配置存储库:
# 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
将 RHEL 版本设置为 8.6:
# subscription-manager release --set=8.6
启用
pki-deps
模块。# dnf module -y enable pki-deps
启用
postgresql
模块的版本 12。# dnf module -y enable postgresql:12
启用
nodejs
模块的版本 14:# dnf module -y enable nodejs:14
同步安装的软件包,将它们更新至最新可用版本。
# dnf distro-sync --nobest
其它资源
有关模块和模块流的详情,请参考安装、管理和删除用户空间组件中的以下部分。
Red Hat Virtualization Manager 已迁移到自托管引擎设置中。管理器现在在新的自托管引擎节点上的虚拟机上运行。
主机将在新环境中运行,但无法托管 Manager 虚拟机。您可以将这些主机的某些或全部转换为自托管引擎节点。
第 8 章 将现有主机重新安装为自托管引擎节点
您可以将自托管引擎环境中的现有标准主机转换为能够托管 Manager 虚拟机的自托管引擎节点。
安装或重新安装主机的操作系统时,红帽强烈建议您先分离附加到主机的任何现有非 OS 存储,以避免意外初始化这些磁盘,从而避免意外初始化这些磁盘,并可能会丢失数据。
流程
- 单击 Compute → Hosts,再选择 主机。
- 点 Management → Maintenance 和 OK。
- 点 Installation → Reinstall。
- 单击 Hosted Engine 选项卡,再从下拉菜单中选择 DEPLOY。
- 点击 确定。
主机通过自托管引擎配置重新安装,并使用管理门户中的 crown 图标标记。
将主机重新安装为自托管引擎节点后,您可以在其中一个节点上运行以下命令来检查新环境的状态:
# hosted-engine --vm-status
如果新环境在没有问题的情况下运行,您可以弃用原始的 Manager 计算机。
附录 A. 防止内核模块自动载入
您可以防止自动加载内核模块,无论是直接加载模块,还是在引导过程中作为依赖项载入。
流程
模块名称必须添加到
modprobe
实用程序的配置文件中。此文件必须位于配置目录/etc/modprobe.d
中。有关此配置目录的更多信息,请参阅 man page
modprobe.d
。确保该模块没有配置为在以下任意位置载入:
-
/etc/modprobe.conf
-
/etc/modprobe.d/*
-
/etc/rc.modules
-
/etc/sysconfig/modules/*
# modprobe --showconfig <_configuration_file_name_>
-
如果模块出现在输出中,请确保它被忽略且没有加载:
# modprobe --ignore-install <_module_name_>
如果载入了正在运行的系统,从正在运行的系统中卸载该模块:
# modprobe -r <_module_name_>
通过将
blacklist
行添加到系统专用的配置文件(如/etc/modprobe.d/local-dontload.conf
)来防止直接加载模块:# echo "blacklist <_module_name_> >> /etc/modprobe.d/local-dontload.conf
注意如果模块是另一个模块的必需依赖项或可选依赖项,则此步骤不会阻止模块加载。
防止根据需要载入可选模块:
# echo "install <_module_name_>/bin/false" >> /etc/modprobe.d/local-dontload.conf
重要如果其他硬件需要排除的模块,则排除该模块可能会导致意外的副作用。
生成
initramfs
的备份副本:# cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.$(date +%m-%d-%H%M%S).bak
如果内核模块是
initramfs
的一部分,重建初始ramdisk
镜像,省略该模块:# dracut --omit-drivers <_module_name_> -f
获取当前的内核命令行参数:
# grub2-editenv - list | grep kernelopts
将
<_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_>"
生成
kdump initramfs
的备份副本:# cp /boot/initramfs-$(uname -r)kdump.img /boot/initramfs-$(uname -r)kdump.img.$(date +%m-%d-%H%M%S).bak
将
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
重启
kdump
服务以获取对kdump initrd
的更改:# kdumpctl restart
重建
kdump
初始ramdisk
镜像:# mkdumprd -f /boot/initramfs-$(uname -r)kdump.img
- 重启系统:
A.1. 临时删除模块
您可以临时删除模块。
流程
运行
modprobe
以删除任何当前加载的模块:# modprobe -r <module name>
-
如果模块无法卸载,则进程或其他模块可能仍在使用该模块。如果是,终止进程并运行在其他时间上写入的
modpole
命令以卸载该模块。
附录 B. 法律通知
Copyright © 2022 Red Hat, Inc.
Licensed under the (Creative Commons Attribution–ShareAlike 4.0 International License).从(oVirt Project)的文档衍生而来。如果您发布本文档或对其进行改编,您必须提供原始版本的 URL。
修改后的版本必须删除所有红帽商标。
Red Hat、Red Hat Enterprise Linux、Red Hat 商标、Shadowman 商标、JBoss、OpenShift、Fedora、Infinity 商标以及 RHCE 都是在美国及其他国家的注册商标。
Linux® 是 Linus Torvalds 在美国和其他国家/地区的注册商标。
Java® 是 Oracle 和/或其附属公司的注册商标。
XFS® 是 Silicon Graphics International Corp. 或其子公司在美国和/或其他国家的商标。
MySQL® 是 MySQL AB 在美国、欧盟和其他国家/地区的注册商标。
Node.js® 是 Joyent 的官方商标。Red Hat Software Collections 与官方 Joyent Node.js 开源或商业项目没有正式关联或被正式认可。
The OpenStack® Word Mark 和 OpenStack 标识是 OpenStack Foundation 在美国及其他国家的注册商标/服务标记或商标/服务标记,可根据 OpenStack Foundation 授权使用。我们不附属于 OpenStack Foundation 或 OpenStack 社区。
所有其他商标均由其各自所有者所有。