5 升级群集和更新软件包 #
本章介绍两种不同方案:将群集升级为 SUSE Linux Enterprise High Availability Extension 的另一个版本(主要版本或服务包),以及更新群集节点上的单个软件包。请参见第 5.2 节 “将群集升级到产品的最新版本”与第 5.3 节 “更新群集节点上的软件包”。
如果您要升级群集,请在开始升级之前查看第 5.2.1 节 “SLE HA 和 SLE HA Geo 支持的升级路径”和第 5.2.2 节 “升级前的必要准备”。
5.1 术语 #
下面介绍本章中使用的最重要术语的定义:
- 主要版本, 正式发布 (GA) 版本
主要版本是一个新的产品版本,增加了新功能和工具并停用了先前弃用的组件。其含有不向后兼容的更改。
- 群集脱机升级
如果新产品版本包含不可向后兼容的重大更改,则需要通过群集脱机升级来升级群集。需要先使所有节点脱机并将群集作为一个整体进行升级,然后才能使所有节点重新联机。
- 群集滚动升级
执行群集滚动升级时,每次会升级一个群集节点,此时,群集的其他节点仍在运行中。需将第一个节点脱机,进行升级,然后再使其重新联机以加入群集。然后,需要逐个对其余节点重复上述过程,直到所有群集节点都升级为主要版本。
- 服务包 (SP)
将几个补丁合并到便于安装或部署的一个组织体中。服务包是有编号的并通常包含安全性修复、更新、升级或程序增强。
- 更新
安装某个软件包的较新次要版本,其中通常包含安全修复和其他重要修复。
- 升级
5.2 将群集升级到产品的最新版本 #
支持哪种升级路径以及如何执行升级,取决于当前的产品版本以及您要迁移到的目标版本。
High Availability Extension 支持的升级路径与底层基础系统支持的升级路径相同。有关完整概述,请参见《SUSE Linux Enterprise Server 升级指南》中的 SUSE Linux Enterprise Server 15 SP4 支持的升级路径 一节。
此外,由于高可用性群集堆栈提供了两种升级群集的方法,以下规则也适用:
第 5.2.1 节 列出了 SLE HA (Geo) 支持的从一个版本升级到下一个版本的升级路径和方法。相关细节列中显示您应参考的特定升级文档(还包括基础系统和 Geo Clustering for SUSE Linux Enterprise High Availability Extension)。此文档可从以下位置获得:
不支持在 SUSE Linux Enterprise High Availability Extension 12/SUSE Linux Enterprise High Availability Extension 15 上运行混合群集。
完成到产品版本 15 的升级过程后,不支持再还原到产品版本 12。
5.2.1 SLE HA 和 SLE HA Geo 支持的升级路径 #
升级前版本和目标版本 |
升级路径 |
相关细节 |
---|---|---|
SLE HA 11 SP3 到 SLE HA (Geo) 12 |
群集脱机升级 |
|
从 SLE HA (Geo) 11 SP4 升级到 SLE HA (Geo) 12 SP1 |
群集脱机升级 |
|
从 SLE HA (Geo) 12 升级到 SLE HA (Geo) 12 SP1 |
群集滚动升级 |
|
从 SLE HA (Geo) 12 SP1 升级到 SLE HA (Geo) 12 SP2 |
群集滚动升级 |
|
从 SLE HA (Geo) 12 SP2 升级到 SLE HA (Geo) 12 SP3 |
群集滚动升级 |
|
从 SLE HA (Geo) 12 SP3 升级到 SLE HA (Geo) 12 SP4 |
群集滚动升级 |
|
从 SLE HA (Geo) 12 SP3 升级到 SLE HA 15 |
群集脱机升级 |
|
从 SLE HA (Geo) 12 SP4 升级到 SLE HA (Geo) 12 SP5 |
群集滚动升级 |
|
从 HA (Geo) 12 SP4 升级到 SLE HA 15 SP1 |
群集脱机升级 |
|
从 HA (Geo) 12 SP5 升级到 SLE HA 15 SP2 |
群集脱机升级 |
|
从 SLE HA 15 升级到 SLE HA 15 SP1 |
群集滚动升级 |
|
从 SLE HA 15 SP1 升级到 SLE HA 15 SP2 |
群集滚动升级 |
|
从 SLE HA 15 SP2 升级到 SLE HA 15 SP3 |
群集滚动升级 |
|
从 SLE HA 15 SP3 升级到 SLE HA 15 SP4 |
群集滚动升级 |
|
最简单的升级路径是按顺序安装所有服务包。对于 SUSE Linux Enterprise 15 产品系列(GA 和后续服务包),还支持在升级时跳过某个服务包。例如,支持从 SLE 15 GA 升级到 15 SP2,或从 SLE 15 SP1 升级到 15 SP3。
5.2.2 升级前的必要准备 #
- 备份
确保系统备份为最新的且可恢复。
- 测试
请先在群集设置的临时实例上测试升级过程,然后再在生产环境中执行该过程。这样,您便可以估算出维护期所需的时间段。这还有助于检测和解决可能会出现的任何意外问题。
5.2.3 群集脱机升级 #
本节内容适用于以下场合:
从 SLE HA 11 SP3 升级到 SLE HA 12 — 有关细节,请参见过程 5.1 “从产品版本 11 升级到 12:群集脱机升级”。
从 SLE HA 11 SP4 升级到 SLE HA 12 SP1 - 有关细节,请参见过程 5.1 “从产品版本 11 升级到 12:群集脱机升级”。
从 SLE HA 12 SP3 升级到 SLE HA 15 - 有关细节,请参见过程 5.2 “从产品版本 12 升级到 15:群集脱机升级”。
从 SLE HA 12 SP4 升级到 SLE HA 15 SP1 - 有关细节,请参见过程 5.2 “从产品版本 12 升级到 15:群集脱机升级”。
从 SLE HA 12 SP5 升级到 SLE HA 15 SP2 - 有关细节,请参见过程 5.2 “从产品版本 12 升级到 15:群集脱机升级”。
如果您的群集仍旧基于早期的产品版本而不是上面所列的版本,请先将它升级到 SLES 和 SLE HA 的某个版本,而该版本可用作升级到所需目标版本的源。
High Availability Extension 12 群集堆栈的各个组件包含了重大更改(例如 /etc/corosync/corosync.conf
、OCFS2 的磁盘格式)。因此,不支持从任何 SUSE Linux Enterprise High Availability Extension 11 版本进行群集滚动升级
。必须将所有群集节点脱机,并根据下面所述将群集作为一个整体升级。
登录到每个群集节点,并使用以下命令停止群集堆栈:
root #
rcopenais
stop将每个群集节点都升级到 SUSE Linux Enterprise Server 和 SUSE Linux Enterprise High Availability Extension 的所需目标版本 — 请参见第 5.2.1 节 “SLE HA 和 SLE HA Geo 支持的升级路径”。
完成升级过程后,请重引导装有 SUSE Linux Enterprise Server 和 SUSE Linux Enterprise High Availability Extension 升级版的每个节点。
如果在群集设置中使用了 OCFS2,请执行以下命令以更新设备上的结构:
root #
o2cluster
--update PATH_TO_DEVICE它会为磁盘添加额外参数。SUSE Linux Enterprise High Availability Extension 12 和 12 SPx 随附的已更新 OCFS2 版本需要这些参数。
要更新 Corosync 2 的
/etc/corosync/corosync.conf
,请执行以下操作:登录到某个节点,然后启动 YaST 群集模块。
切换到过程 4.1 “定义第一个通讯通道(多路广播)”或过程 4.2 “定义第一个通讯通道(单路广播)”。
类别并输入以下新参数的值: 和 。有关细节,请分别参见如果 YaST 检测到对 Corosync 2 无效或缺失的任何其他选项,它会提示您进行更改。
确认在 YaST 中所做更改。YaST 会将配置写入
/etc/corosync/corosync.conf
。如果为群集配置了 Csync2,请使用以下命令将更新的 Corosync 配置推送到其他群集节点:
root #
csync2
-xv
有关 Csync2 的细节,请参见第 4.5 节 “将配置传输到所有节点”。
或者,也可以通过将
/etc/corosync/corosync.conf
手动复制到所有群集节点,来同步更新的 Corosync 配置。
登录到每个节点,并使用以下命令启动群集堆栈:
root #
crm
cluster start使用
crm status
或 Hawk2 检查群集状态。将以下服务配置为在引导时启动:
root #
systemctl enable pacemakerroot #
systemctl enable hawkroot #
systemctl enable sbd
有时,新功能只能在最新的 CIB 语法版本中使用。升级到新的产品版本时,默认不会升级 CIB 语法版本。
使用以下命令检查版本:
cibadmin -Q | grep validate-with
使用以下命令升级到最新的 CIB 语法版本:
root #
cibadmin
--upgrade --force
如果您决定从头开始安装群集节点(而不是升级它们),请参见第 2.2 节 “软件需求”以获取 SUSE Linux Enterprise High Availability Extension 15 SP4 所需的模块列表。有关模块、扩展及相关产品的详细信息,请参见 SUSE Linux Enterprise Server 15 的发行说明。可从 https://www.suse.com/releasenotes/ 访问这些文档。
在开始脱机升级到 SUSE Linux Enterprise High Availability Extension 15 之前,请如注意:升级 CIB 语法版本中所述手动升级当前群集中的 CIB 语法。
登录到每个群集节点,并使用以下命令停止群集堆栈:
root #
crm
cluster stop将每个群集节点都升级到 SUSE Linux Enterprise Server 和 SUSE Linux Enterprise High Availability Extension 的所需目标版本 — 请参见第 5.2.1 节 “SLE HA 和 SLE HA Geo 支持的升级路径”。
完成升级过程后,请登录每个节点,并引导装有 SUSE Linux Enterprise Server 和 SUSE Linux Enterprise High Availability Extension 升级版的每个节点。
如果您使用群集 LVM,则需要从 clvmd 迁移到 lvmlockd。请参见
lvmlockd
的手册页中的 changing clvm VG to lockd VG(将 clvm VG 更改为 lockd VG)部分,另请参见第 22.4 节 “从镜像 LV 联机迁移到群集 MD”。登录某个群集节点,并启动所有节点上的群集堆栈:
root #
crm
cluster start --all注意:--all
选项仅在 15 SP4 版本中可用SUSE Linux Enterprise High Availability Extension 15 SP4 中添加了
--all
选项。在早期版本中,您必须逐一在每个节点上运行crm cluster start
命令。使用
crm status
或 Hawk2 检查群集状态。
5.2.4 群集滚动升级 #
本节内容适用于以下场合:
从 SLE HA 12 升级到 SLE HA 12 SP1
从 SLE HA 12 SP1 升级到 SLE HA 12 SP2
从 SLE HA 12 SP2 升级到 SLE HA 12 SP3
从 SLE HA 12 SP3 升级到 SLE HA 12 SP4
从 SLE HA 12 SP4 升级到 SLE HA 12 SP5
从 SLE HA 15 升级到 SLE HA 15 SP1
从 SLE HA 15 SP1 升级到 SLE HA 15 SP2
从 SLE HA 15 SP2 升级到 SLE HA 15 SP3
从 SLE HA 15 SP3 升级到 SLE HA 15 SP4
根据情况使用以下其中一个过程:
在开始升级某个节点之前,请停止该节点上的群集堆栈。
如果节点上的群集资源管理器在软件更新期间处于活动状态,可能会导致活动的节点被屏蔽等结果。
只有在将所有群集节点都升级到最新产品版本之后,最新产品版本提供的新功能才可用。在群集滚动升级期间,只有较短的一段时间支持混合版本群集升级。请在一周内完成群集滚动升级。
当所有联机节点运行的都是升级的版本后,其他使用旧版本的节点不升级就无法(重新)加入群集。
以
root
用户身份登录要升级的节点,并停止群集堆栈:root #
crm
cluster stop升级到 SUSE Linux Enterprise Server 和 SUSE Linux Enterprise High Availability Extension 的所需目标版本。要了解各个升级过程的细节,请参见第 5.2.1 节 “SLE HA 和 SLE HA Geo 支持的升级路径”。
在升级后的节点上启动群集堆栈,使该节点重新加入群集:
root #
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/ntp.conf
根据您的资源,您可能还需要备份以下文件:
/etc/services /etc/passwd /etc/shadow /etc/groups /etc/drbd/* /etc/lvm/lvm.conf /etc/mdadm.conf /etc/mdadm.SID.conf
先从节点 alice 开始。
将节点置于待机模式。这样便能将资源移出节点:
root #
crm
--wait node standby alice reboot使用
--wait
选项,该命令仅会在群集完成转换并变为空闲状态时返回。reboot
选项可使节点一旦重新联机就已脱离待机模式。尽管reboot
选项的名称是重引导,但只要节点脱机后又联机,该选项就会起作用。停止节点 alice 上的群集服务:
root #
crm
cluster stop此时,alice 不再有任何资源处于运行状态。升级节点 alice,完成后将其重引导。假定群集服务不会在系统引导时启动。
将步骤 1 中的备份文件复制到原始位置。
将节点 alice 重新加入群集:
root #
crm
cluster start检查资源是否正常。
对节点 bob 重复步骤 2。
5.3 更新群集节点上的软件包 #
启动某节点的软件包更新之前,请停止该节点上的群集堆栈,或将该节点置于维护模式,具体取决于群集堆栈是否受影响。有关详细信息,请参见 步骤 1。
如果节点上的群集资源管理器在软件更新期间处于活动状态,可能会导致活动的节点被屏蔽等结果。
在节点上安装任何软件包更新之前,请先确认以下问题:
该更新是否会影响属于 SUSE Linux Enterprise High Availability Extension 的任何软件包?如果
是
,请先在节点上停止群集堆栈,然后再开始软件更新:root #
crm
cluster stop软件包更新操作是否需要重引导计算机?如果
是
,请先在节点上停止群集堆栈,然后再开始软件更新:root #
crm
cluster stop如果不属于上述任何一种情况,则不需要停止群集堆栈。在这种情况下,请先将节点置于维护模式,然后再开始软件更新:
root #
crm
node maintenance NODE_NAME有关维护模式的更多细节,请参见第 17.2 节 “用于维护任务的不同选项”。
使用 YaST 或 Zypper 来安装软件包更新。
在成功安装更新后:
启动相应节点上的群集堆栈(如果在执行步骤 1 时已将它停止):
root #
crm
cluster start或者去除维护标志,使节点恢复正常模式:
root #
crm
node ready NODE_NAME
使用
crm status
或 Hawk2 检查群集状态。
5.4 更多信息 #
有关您要升级到的产品的任何更改和新功能的详细信息,请参见其发行说明,所在网址为 https://www.suse.com/releasenotes/。