33 升级群集和更新软件包 #
本章介绍两种不同方案:将群集升级到 SUSE Linux Enterprise High Availability 另一个版本(主要版本或服务包),以及更新群集节点上的单个软件包。请参见第 33.2 节 “将群集升级到产品的最新版本”与第 33.3 节 “更新群集节点上的软件包”。
如果您要升级群集,请在开始升级之前查看第 33.2.1 节 “SLE HA 和 SLE HA Geo 支持的升级路径”和第 33.2.2 节 “升级前的必要准备”。
33.1 术语 #
下面介绍本章中使用的最重要术语的定义:
- 主要版本, 正式发布 (GA) 版本
主要版本是一个新的产品版本,增加了新功能和工具并停用了先前弃用的组件。其含有不向后兼容的更改。
- 群集脱机升级
如果新产品版本包含不可向后兼容的重大更改,则需要通过群集脱机升级来升级群集。需要先使所有节点下线并将群集作为一个整体进行升级,然后才能使所有节点重新上线。
- 群集滚动升级
执行群集滚动升级时,每次会升级一个群集节点,此时,群集的其他节点仍在运行中。需将第一个节点下线,进行升级,然后再使其重新上线以加入群集。然后,需要逐个对其余节点重复上述过程,直到所有群集节点都升级为主要版本。
- 服务包 (SP)
将几个补丁合并到便于安装或部署的一个组织体中。服务包都有编号,通常包含程序的安全性修复、更新、升级或增强功能。
- 更新
安装某个软件包的更新次要版本,其中通常包含安全修复和其他重要修复。
- 升级
33.2 将群集升级到产品的最新版本 #
支持哪种升级路径以及如何执行升级,取决于当前的产品版本以及您要迁移到的目标版本。
33.2.1 SLE HA 和 SLE HA Geo 支持的升级路径 #
SUSE Linux Enterprise High Availability 支持的升级路径与底层基础系统支持的升级路径相同。要了解完整信息,请参见 SUSE Linux Enterprise Server《Upgrade Guide》中的 Supported Upgrade Paths to SUSE Linux Enterprise Server 15 SP7。
此外,由于 High Availability 群集堆栈提供了两种升级群集的方法,以下规则也适用:
不支持在 SUSE Linux Enterprise High Availability 12/SUSE Linux Enterprise High Availability 15 上运行混合群集。
完成升级到产品版本 15 的过程后,不支持再还原到产品版本 12。
最简单的升级路径是按顺序安装所有服务包。对于 SUSE Linux Enterprise 15 产品系列(GA 和后续服务包),还支持在升级时跳过服务包(最多跳过两个)。例如,支持从 SLE HA 15 SP3 升级到 15 SP6(前提是支持 SLE HA 15 SP3)。
33.2.2 升级前的必要准备 #
- 备份
确保系统备份为最新的且可恢复。
- 测试
请先在群集设置的临时实例上测试升级过程,然后再在生产环境中执行该过程。这样,您便可以估算出维护期所需的时间段。这还有助于检测和解决任何意外问题。
33.2.3 群集脱机升级 #
本节介绍如何从 SLE HA 12 升级到 SLE HA 15。请查看图 33.1 “支持的升级路径概览”,确认支持升级的服务包。如果您的群集仍旧基于早期的服务包,请先将其升级到 SLES 和 SLE HA 的某个版本,这个版本必须可以用作升级到 SLE HA 15 的源。如果要从 SLE HA 12 SP5 升级,请参见将群集升级到产品的最新版本。
如果您决定从头开始安装(而不是升级)群集节点,请参见第 3.2 节 “软件要求”了解 SUSE Linux Enterprise High Availability 15 SP7 所需的模块列表。有关模块、扩展及相关产品的详细信息,请参见 SUSE Linux Enterprise Server 15 的发行说明。可访问 https://www.suse.com/releasenotes/ 来获取这些文档。
在开始脱机升级到 SUSE Linux Enterprise High Availability 15 之前,请按注意:升级 CIB 语法版本中所述手动升级当前群集中的 CIB 语法。
登录到每个群集节点,并使用以下命令停止群集堆栈:
#
crm cluster stop
将每个群集节点都升级到 SUSE Linux Enterprise Server 和 SUSE Linux Enterprise High Availability 的所需目标版本 - 请参见第 33.2.1 节 “SLE HA 和 SLE HA Geo 支持的升级路径”。
完成升级过程后,请登录每个节点,并引导装有升级版 SUSE Linux Enterprise Server 和 SUSE Linux Enterprise High Availability 的每个节点。
如果您使用群集 LVM,则需要从 clvmd 迁移到 lvmlockd。请参见
lvmlockd
手册页的 Changing a clvm/clustered VG to a shared VG 部分。如果您还使用
cmirrord
,我们强烈建议迁移到群集 MD。请参见第 28.4 节 “从镜像 LV 联机迁移到群集 MD”。登录某个群集节点,并启动所有节点上的群集堆栈:
#
crm cluster start --all
注意:--all
选项仅在 15 SP4 版本中可用SUSE Linux Enterprise High Availability 15 SP4 中添加了
--all
选项。在早期版本中,您必须逐一在每个节点上运行crm cluster start
命令。使用
crm status
或 Hawk2 检查群集状态。
有时,新功能只能在最新的 CIB 语法版本中使用。升级到新产品版本时,默认不会升级 CIB 语法版本。
使用以下命令检查版本:
cibadmin -Q | grep validate-with
使用以下命令升级到最新的 CIB 语法版本:
#
cibadmin --upgrade --force
33.2.4 群集滚动升级 #
本节介绍如何升级到新 SLE HA 15 服务包。请查看图 33.1 “支持的升级路径概览”,确认支持升级的服务包。
根据情况使用以下其中一个过程:
在开始升级某个节点之前,请停止该节点上的群集堆栈。
如果节点上的群集资源管理器在软件更新期间处于活动状态,可能会导致活动的节点被屏蔽等结果。
只有在将所有群集节点都升级到最新产品版本之后,才可使用该版本提供的新功能。在群集滚动升级期间,只有较短的一段时间支持混合版本群集升级。请在一周内完成群集滚动升级。
当所有上线节点运行的都是升级的版本后,其他使用旧版本的节点不升级就无法(重新)加入群集。
以
root
用户身份登录要升级的节点,并停止群集堆栈:#
crm cluster stop
按 SLES 15 SP7 的《Upgrade Guide》所述升级到 SUSE Linux Enterprise Server 和 SUSE Linux Enterprise High Availability 扩展的所需目标版本。
如果需要升级 Geo 群集,请参见第 10 章 “Upgrading to the latest product version”。
在升级后的节点上启动群集堆栈,使该节点重新加入群集:
#
crm cluster start
使下一个节点处于脱机状态,并对此节点重复上述过程。
使用
crm status
或 Hawk2 检查群集状态。如果检测到您的群集节点使用的是不同的 CRM 版本,Hawk2
屏幕还会显示一条警告。
只有在将所有群集节点都升级到最新产品版本之后,才可使用该版本提供的新功能。对于采用混合版本的群集,其在滚动升级期间受支持的时间非常短暂。请在一周内完成滚动升级。
如果检测到您的群集节点使用的是不同的 CRM 版本,Hawk2
屏幕还会显示一条警告。除了就地升级之外,许多客户更喜欢进行全新安装,即使是要升级到下一个服务包时也是如此。下面的过程说明将双节点群集(包含节点 alice 和 bob)升级到下一个服务包 (SP) 的情况:
备份群集配置。下面的列表中显示了至少应备份的文件:
/etc/corosync/corosync.conf /etc/corosync/authkey /etc/sysconfig/sbd /etc/modules-load.d/watchdog.conf /etc/hosts /etc/chrony.conf
根据您的资源,您可能还需要备份以下文件:
/etc/services /etc/passwd /etc/shadow /etc/groups /etc/drbd/* /etc/lvm/lvm.conf /etc/mdadm.conf /etc/mdadm.SID.conf
先从节点 alice 开始。
将节点置于待机模式。这样便能将资源移出节点:
#
crm --wait node standby alice reboot
如果使用
--wait
选项,该命令仅会在群集完成转换并变为空闲状态时返回。reboot
选项可使节点一旦重新上线就已脱离待机模式。尽管reboot
选项的名称是重引导,但只要节点下线后又上线,该选项就会起作用。停止节点 alice 上的群集服务:
#
crm cluster stop
此时,alice 不再有任何资源处于运行状态。升级节点 alice,完成后将其重引导。假定群集服务不会在系统引导时启动。
将步骤 1 中的备份文件复制到原始位置。
将节点 alice 重新加入群集:
#
crm cluster start
检查资源是否正常。
对节点 bob 重复步骤 2。
33.3 更新群集节点上的软件包 #
开始更新节点的软件包之前,请停止该节点上的群集堆栈或将该节点置于维护模式,具体取决于群集堆栈是否受影响。有关详细信息,请参见步骤 1。
如果节点上的群集资源管理器在软件更新期间处于活动状态,可能会导致活动的节点被屏蔽等结果。
在节点上安装任何软件包更新之前,请先确认以下问题:
该更新是否会影响属于 SUSE Linux Enterprise High Availability 的任何软件包?如果
yes
,请先在节点上停止群集堆栈,然后再开始软件更新:#
crm cluster stop
软件包更新操作是否需要重引导计算机?如果
yes
:请先在节点上停止群集堆栈,然后再开始软件更新:#
crm cluster stop
如果不属于上述任何一种情况,则不需要停止群集堆栈。在这种情况下,请先将节点置于维护模式,然后再开始软件更新:
#
crm node maintenance NODE_NAME
有关维护模式的更多细节,请参见第 32.2 节 “用于维护任务的不同选项”。
使用 YaST 或 Zypper 来安装软件包更新。
在成功安装更新后:
启动相应节点上的群集堆栈(如果在执行步骤 1 时已将它停止):
#
crm cluster start
或者去除维护标志,使节点恢复正常模式:
#
crm node ready NODE_NAME
使用
crm status
或 Hawk2 检查群集状态。
33.4 更多信息 #
有关您要升级到的产品的任何更改和新功能的详细信息,请参见其发行说明,网址为 https://www.suse.com/releasenotes/。