适用于 SUSE Linux Enterprise High Availability Extension 12 SP5

16 执行维护任务

摘要

要在群集节点上执行维护任务,可能需要停止该节点上运行的资源、移动这些资源,或者关闭或重引导该节点。此外,可能还需要暂时接管群集中资源的控制权,甚至需要在资源仍在运行时停止群集服务。

本章介绍如何在不产生负面影响的情况下手动关闭群集节点。此外,本章将会概述群集堆栈提供的用于执行维护任务的不同选项。

16.1 关闭群集节点所造成的影响

关闭或重引导某个群集节点(或停止节点上的 Pacemaker 服务)时,将触发以下过程:

  • 该节点上运行的资源将会停止,或被移出该节点。

  • 如果停止资源的操作失败或超时,STONITH 机制将屏蔽该节点并将其关闭。

过程 16.1︰ 手动重引导群集节点

如果您的目的是先按顺序将服务移出节点,然后再关闭或重引导该节点,请执行以下操作:

  1. 在要重引导或关闭的节点上,以 root 或同等的身份登录。

  2. 将节点置于 standby 模式:

    root # crm node standby

    如此即可将服务迁移出节点,而不会受限于 Pacemaker 的关闭超时。

  3. 使用以下命令检查群集状态:

    root # crm status

    此命令显示相关节点处于 standby 模式:

    [...]
    Node bob: standby
    [...]
  4. 停止该节点上的 Pacemaker 服务:

    root # systemctl stop pacemaker.service
  5. 重引导该节点。

要再次检查节点是否已加入群集,请执行以下操作:

  1. root 或同等身份登录到该节点。

  2. 检查 Pacemaker 服务是否已启动:

    root # systemctl status pacemaker.service
  3. 如果未启动,请将其启动:

    root # systemctl start pacemaker.service
  4. 使用以下命令检查群集状态:

    root # crm status

    此命令应该会显示节点已重新联机。

16.2 用于维护任务的不同选项

Pacemaker 提供了各种选项用于执行系统维护:

将群集置于维护模式

使用全局群集属性 maintenance-mode 可以一次性将所有资源置于维护状态。群集将停止监视这些资源,因此不知道它们的状态。

将节点置于维护模式

此选项可以一次性将特定节点上运行的所有资源置于维护状态。群集将停止监视这些资源,因此不知道它们的状态。

将节点置于待机模式

处于待机模式的节点不再能够运行资源。该节点上运行的所有资源将被移出或停止(如果没有其他节点可用于运行资源)。另外,该节点上的所有监视操作将会停止(设置了 role="Stopped" 的操作除外)。

如果您需要停止群集中的某个节点,同时继续提供另一个节点上运行的服务,则可以使用此选项。

将资源置于维护模式

为某个资源启用此模式后,将不会针对该资源触发监视操作。

如果您需要手动调整此资源所管理的服务,并且不希望群集在此期间对该资源运行任何监视操作,则可以使用此选项。

将资源置于不受管理模式

使用 is-managed 元属性可以暂时释放某个资源,使其不受群集堆栈的管理。这意味着,您可以手动调整此资源管理的服务(例如,调整任何组件)。不过,群集将继续监视该资源,并继续报告任何错误。

如果您希望群集同时停止监视该资源,请改为使用按资源维护模式(请参见将资源置于维护模式)。

16.3 准备和完成维护工作

警告
警告:数据丢失风险

如果您需要执行测试或维护工作,请执行下面的一般步骤。

如果不执行,有可能会产生不利的负面影响,例如,资源不按顺序启动、CIB 在群集节点之间不同步,甚至丢失数据。

  1. 在开始之前,请选择第 16.2 节中所述的适合您情况的选项。

  2. 请使用 Hawk2 或 crmsh 应用此选项。

  3. 执行维护任务或测试。

  4. 完成后,请将资源、节点或群集恢复正常工作状态。

16.4 将群集置于维护模式

要在 crm 外壳中将群集置于维护模式,请使用以下命令:

root # crm configure property maintenance-mode=true

要在完成维护工作后将群集恢复正常模式,请使用以下命令:

root # crm configure property maintenance-mode=false
过程 16.2︰ 使用 Hawk2 将群集置于维护模式
  1. 第 7.2 节 “登录”中所述,启动 Web 浏览器并登录到群集。

  2. 在左侧导航栏中,选择群集配置

  3. CRM 配置组中,从空下拉框中选择 maintenance-mode 属性,然后单击加号图标添加该属性。

  4. 要设置 maintenance-mode,请选中 maintenance-mode 旁边的复选框,并确认您所做的更改。

  5. 完成整个群集的维护任务之后,取消选中 maintenance-mode 属性旁边的复选框。

    此后,High Availability Extension 将再次接管群集管理工作。

16.5 将节点置于维护模式

要在 crm 外壳中将节点置于维护模式,请使用以下命令:

root # crm node maintenance NODENAME

要在完成维护工作后将节点恢复正常模式,请使用以下命令:

root # crm node ready NODENAME
过程 16.3︰ 使用 Hawk2 将节点置于维护模式
  1. 第 7.2 节 “登录”中所述,启动 Web 浏览器并登录到群集。

  2. 在左侧导航栏中,选择群集状态

  3. 在其中某个节点视图中,单击节点旁边的扳手图标,然后选择维护

  4. 完成维护任务后,单击节点旁边的扳手图标,然后选择就绪

16.6 将节点置于待机模式

要在 crm 外壳中将节点置于待机模式,请使用以下命令:

root # crm node standby NODENAME

要在完成维护工作后将节点恢复联机状态,请使用以下命令:

root # crm node online NODENAME
过程 16.4︰ 使用 Hawk2 将节点置于待机模式
  1. 第 7.2 节 “登录”中所述,启动 Web 浏览器并登录到群集。

  2. 在左侧导航栏中,选择群集状态

  3. 在其中某个节点的视图中,单击节点旁边的扳手图标,然后选择待机

  4. 完成节点的维护任务。

  5. 要停用待机模式,请单击节点旁边的扳手图标,然后选择就绪

16.7 将资源置于维护模式

要在 crm 外壳中将资源置于维护模式,请使用以下命令:

root # crm resource maintenance RESOURCE_ID true

要在完成维护工作后将资源恢复正常模式,请使用以下命令:

root # crm resource maintenance RESOURCE_ID false
过程 16.5︰ 使用 Hawk2 将资源置于维护模式
  1. 第 7.2 节 “登录”中所述,启动 Web 浏览器并登录到群集。

  2. 在左侧导航栏中,选择资源

  3. 选择要置于维护模式或不受管理模式的资源,单击该资源旁边的扳手图标,然后选择编辑资源

  4. 打开元属性类别。

  5. 从空下拉框中,选择 maintenance 属性,然后单击加号图标添加该属性。

  6. 选中 maintenance 旁边的复选框,以将 maintenance 属性设置为 yes

  7. 确认更改。

  8. 完成该资源的维护任务之后,取消选中该资源的 maintenance 属性旁边的复选框。

    此后,资源将再次由 High Availability Extension 软件管理。

16.8 将资源置于不受管理模式

要在 crm 外壳中将资源置于不受管理模式,请使用以下命令:

root # crm resource unmanage RESOURCE_ID

要在完成维护工作后再次将资源置于受管模式,请使用以下命令:

root # crm resource manage RESOURCE_ID
过程 16.6︰ 使用 Hawk2 将资源置于不受管理模式
  1. 第 7.2 节 “登录”中所述,启动 Web 浏览器并登录到群集。

  2. 在左侧导航栏中选择状态,然后转到资源列表。

  3. 操作列中,单击要修改的资源旁边的向下箭头图标,然后选择编辑

    资源配置屏幕即会打开。

  4. 元属性下面,从空下拉框中选择 is-managed 项。

  5. 将其值设置为 No,然后单击应用

  6. 完成维护任务后,将 is-managed 设置为 Yes(默认值)并应用更改。

    此后,资源将再次由 High Availability Extension 软件管理。

16.9 在维护模式下重引导群集节点

注意
注意:含义

如果群集或某个节点处于维护模式,您可以根据需要停止或重启动群集资源 — High Availability Extension 不会尝试重启动它们。如果您停止节点上的 Pacemaker 服务,所有守护程序和进程(最初作为 Pacemaker 管理的群集资源启动)将继续运行。

如果您在群集或某个节点处于维护模式的情况下尝试启动该节点上的 Pacemaker 服务,Pacemaker 将针对每个资源启动一次性的监视操作(探测),以确定哪些资源当前正在该节点上运行。但是,它只会确定资源的状态,而不执行其他操作。

如果您要在群集或某个节点处于维护模式时关闭该节点,请执行以下操作:

  1. 在要重引导或关闭的节点上,以 root 或同等的身份登录。

  2. 检查是否存在 ocf:pacemaker:controld 类型的资源,或者任何依赖这种资源的资源。ocf:pacemaker:controld 类型的资源是 DLM 资源。

    1. 如果存在,请明确停止 DLM 资源以及依赖于它们的所有资源。

      crm(live)resource# stop RESOURCE_ID

      这是因为,停止 Pacemaker 也会停止 DLM 对其成员资格和讯息交换服务有依赖的 Corosync 服务。如果 Corosync 停止,DLM 资源将假设一种节点分裂情况并触发屏蔽操作。

    2. 如果不存在,请继续执行步骤 3

  3. 停止该节点上的 Pacemaker 服务:

    root # systemctl stop pacemaker.service
  4. 关闭或重引导节点。

打印此页