documentation.suse.com / SUSE Linux Enterprise High Availability 文档 / 管理指南 / 维护和升级 / 升级群集和更新软件包
适用范围 SUSE Linux Enterprise High Availability 15 SP7

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 群集堆栈提供了两种升级群集的方法,以下规则也适用:

  • 群集滚动升级仅在同一主要版本内支持群集滚动升级(从一个服务包升级到下一个服务包,或从产品的 GA 版本升级到 SP1)。

  • 群集脱机升级要从一个主要版本升级到下一个主要版本(例如,从 SLE HA 12 升级到 SLE HA 15),或者从一个主要版本中的服务包升级到下一个主要版本(例如,从 SLE HA 12 SP5 升级到 SLE HA 15),需要执行群集脱机升级。

重要
重要:升级后不支持混合群集和还原
  • 支持在 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)。

此图显示了支持的 High Availability 群集升级路径。黑色箭头表示可以在不停止群集的情况下完成的升级。橙色箭头表示只能在停止群集的情况下完成的升级。蓝色箭头表示可以在停止群集的情况下从 LTSS 版本进行的升级。
图 33.1︰ 支持的升级路径概览

33.2.2 升级前的必要准备

备份

确保系统备份为最新的且可恢复。

测试

请先在群集设置的临时实例上测试升级过程,然后再在生产环境中执行该过程。这样,您便可以估算出维护期所需的时间段。这还有助于检测和解决任何意外问题。

33.2.3 群集脱机升级

本节介绍如何从 SLE HA 12 升级到 SLE HA 15。请查看图 33.1 “支持的升级路径概览”,确认支持升级的服务包。如果您的群集仍旧基于早期的服务包,请先将其升级到 SLES 和 SLE HA 的某个版本,这个版本必须可以用作升级到 SLE HA 15 的源。如果要从 SLE HA 12 SP5 升级,请参见将群集升级到产品的最新版本

过程 33.1︰ 从产品版本 12 升级到 15:群集脱机升级
重要
重要:从头开始安装

如果您决定从头开始安装(而不是升级)群集节点,请参见第 3.2 节 “软件要求”了解 SUSE Linux Enterprise High Availability 15 SP7 所需的模块列表。有关模块、扩展及相关产品的详细信息,请参见 SUSE Linux Enterprise Server 15 的发行说明。可访问 https://www.suse.com/releasenotes/ 来获取这些文档。

  1. 在开始脱机升级到 SUSE Linux Enterprise High Availability 15 之前,请按注意:升级 CIB 语法版本中所述手动升级当前群集中的 CIB 语法。

  2. 登录到每个群集节点,并使用以下命令停止群集堆栈:

    # crm cluster stop
  3. 将每个群集节点都升级到 SUSE Linux Enterprise Server 和 SUSE Linux Enterprise High Availability 的所需目标版本 - 请参见第 33.2.1 节 “SLE HA 和 SLE HA Geo 支持的升级路径”

  4. 完成升级过程后,请登录每个节点,并引导装有升级版 SUSE Linux Enterprise Server 和 SUSE Linux Enterprise High Availability 的每个节点。

  5. 如果您使用群集 LVM,则需要从 clvmd 迁移到 lvmlockd。请参见 lvmlockd 手册页的 Changing a clvm/clustered VG to a shared VG 部分。

    如果您还使用 cmirrord,我们强烈建议迁移到群集 MD。请参见第 28.4 节 “从镜像 LV 联机迁移到群集 MD”

  6. 登录某个群集节点,并启动所有节点上的群集堆栈:

    # crm cluster start --all
    注意
    注意:--all 选项仅在 15 SP4 版本中可用

    SUSE Linux Enterprise High Availability 15 SP4 中添加了 --all 选项。在早期版本中,您必须逐一在每个节点上运行 crm cluster start 命令。

  7. 使用 crm status 或 Hawk2 检查群集状态。

注意
注意:升级 CIB 语法版本

有时,新功能只能在最新的 CIB 语法版本中使用。升级到新产品版本时,默认不会升级 CIB 语法版本。

  1. 使用以下命令检查版本:

    cibadmin -Q | grep validate-with
  2. 使用以下命令升级到最新的 CIB 语法版本:

    # cibadmin --upgrade --force

33.2.4 群集滚动升级

本节介绍如何升级到新 SLE HA 15 服务包。请查看图 33.1 “支持的升级路径概览”,确认支持升级的服务包。

根据情况使用以下其中一个过程:

警告
警告:活动的群集堆栈

在开始升级某个节点之前,请停止该节点上的群集堆栈。

如果节点上的群集资源管理器在软件更新期间处于活动状态,可能会导致活动的节点被屏蔽等结果。

重要
重要:群集滚动升级的时间限制

只有在将所有群集节点都升级到最新产品版本之后,才可使用该版本提供的新功能。在群集滚动升级期间,只有较短的一段时间支持混合版本群集升级。请在一周内完成群集滚动升级。

当所有上线节点运行的都是升级的版本后,其他使用旧版本的节点不升级就无法(重新)加入群集。

过程 33.2︰ 执行群集滚动升级
  1. root 用户身份登录要升级的节点,并停止群集堆栈:

    # crm cluster stop
  2. SLES 15 SP7 的《Upgrade Guide》所述升级到 SUSE Linux Enterprise Server 和 SUSE Linux Enterprise High Availability 扩展的所需目标版本。

    如果需要升级 Geo 群集,请参见第 10 章 “Upgrading to the latest product version

  3. 在升级后的节点上启动群集堆栈,使该节点重新加入群集:

    # crm cluster start
  4. 使下一个节点处于脱机状态,并对此节点重复上述过程。

  5. 使用 crm status 或 Hawk2 检查群集状态。

    如果检测到您的群集节点使用的是不同的 CRM 版本,Hawk2 状态屏幕还会显示一条警告。

重要
重要:滚动升级的时间限制

只有在将所有群集节点都升级到最新产品版本之后,才可使用该版本提供的新功能。对于采用混合版本的群集,其在滚动升级期间受支持的时间非常短暂。请在一周内完成滚动升级。

如果检测到您的群集节点使用的是不同的 CRM 版本,Hawk2 状态屏幕还会显示一条警告。

除了就地升级之外,许多客户更喜欢进行全新安装,即使是要升级到下一个服务包时也是如此。下面的过程说明将双节点群集(包含节点 alice 和 bob)升级到下一个服务包 (SP) 的情况:

过程 33.3︰ 执行新服务包的群集范围全新安装
  1. 备份群集配置。下面的列表中显示了至少应备份的文件:

    /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
  2. 先从节点 alice 开始。

    1. 将节点置于待机模式。这样便能将资源移出节点:

      # crm --wait node standby alice reboot

      如果使用 --wait 选项,该命令仅会在群集完成转换并变为空闲状态时返回。reboot 选项可使节点一旦重新上线就已脱离待机模式。尽管 reboot 选项的名称是重引导,但只要节点下线后又上线,该选项就会起作用。

    2. 停止节点 alice 上的群集服务:

      # crm cluster stop
    3. 此时,alice 不再有任何资源处于运行状态。升级节点 alice,完成后将其重引导。假定群集服务不会在系统引导时启动。

    4. 步骤 1 中的备份文件复制到原始位置。

    5. 将节点 alice 重新加入群集:

      # crm cluster start
    6. 检查资源是否正常。

  3. 对节点 bob 重复步骤 2

33.3 更新群集节点上的软件包

警告
警告:活动的群集堆栈

开始更新节点的软件包之前,请停止该节点上的群集堆栈或将该节点置于维护模式,具体取决于群集堆栈是否受影响。有关详细信息,请参见步骤 1

如果节点上的群集资源管理器在软件更新期间处于活动状态,可能会导致活动的节点被屏蔽等结果。

  1. 在节点上安装任何软件包更新之前,请先确认以下问题:

    • 该更新是否会影响属于 SUSE Linux Enterprise High Availability 的任何软件包?如果 yes,请先在节点上停止群集堆栈,然后再开始软件更新:

      # crm cluster stop
    • 软件包更新操作是否需要重引导计算机?如果 yes:请先在节点上停止群集堆栈,然后再开始软件更新:

      # crm cluster stop
    • 如果不属于上述任何一种情况,则不需要停止群集堆栈。在这种情况下,请先将节点置于维护模式,然后再开始软件更新:

      # crm node maintenance NODE_NAME

      有关维护模式的更多细节,请参见第 32.2 节 “用于维护任务的不同选项”

  2. 使用 YaST 或 Zypper 来安装软件包更新。

  3. 在成功安装更新后:

    • 启动相应节点上的群集堆栈(如果在执行步骤 1 时已将它停止):

      # crm cluster start
    • 或者去除维护标志,使节点恢复正常模式:

      # crm node ready NODE_NAME
  4. 使用 crm status 或 Hawk2 检查群集状态。

33.4 更多信息

有关您要升级到的产品的任何更改和新功能的详细信息,请参见其发行说明,网址为 https://www.suse.com/releasenotes/

Documentation survey