16 执行维护任务 #
要在群集节点上执行维护任务,可能需要停止该节点上运行的资源、移动这些资源,或者关闭或重引导该节点。此外,可能还需要暂时接管群集中资源的控制权,甚至需要在资源仍在运行时停止群集服务。
本章介绍如何在不产生负面影响的情况下手动关闭群集节点。此外,本章将会概述群集堆栈提供的用于执行维护任务的不同选项。
16.1 关闭群集节点所造成的影响 #
关闭或重引导某个群集节点(或停止节点上的 Pacemaker 服务)时,将触发以下过程:
该节点上运行的资源将会停止,或被移出该节点。
如果停止资源的操作失败或超时,STONITH 机制将屏蔽该节点并将其关闭。
如果您的目的是先按顺序将服务移出节点,然后再关闭或重引导该节点,请执行以下操作:
在要重引导或关闭的节点上,以
root
或同等的身份登录。将节点置于
standby
模式:root #
crm -w node standby如此即可将服务迁移出节点,而不会受限于 Pacemaker 的关闭超时。
使用以下命令检查群集状态:
root #
crm status此命令显示相关节点处于
standby
模式:[...] Node bob: standby [...]
停止该节点上的 Pacemaker 服务:
root #
crm cluster stop重引导该节点。
要再次检查节点是否已加入群集,请执行以下操作:
以
root
或同等身份登录到该节点。检查 Pacemaker 服务是否已启动:
root #
crm cluster status如果未启动,请将其启动:
root #
crm cluster start使用以下命令检查群集状态:
root #
crm status此命令应该会显示节点已重新联机。
16.2 用于维护任务的不同选项 #
Pacemaker 提供了各种选项用于执行系统维护:
- 将群集置于维护模式
使用全局群集属性
maintenance-mode
可以一次性将所有资源置于维护状态。群集将停止监视这些资源,因此不知道它们的状态。- 将节点置于维护模式
此选项可以一次性将特定节点上运行的所有资源置于维护状态。群集将停止监视这些资源,因此不知道它们的状态。
- 将节点置于待机模式
处于待机模式的节点不再能够运行资源。该节点上运行的所有资源将被移出或停止(如果没有其他节点可用于运行资源)。另外,该节点上的所有监视操作将会停止(设置了
role="Stopped"
的操作除外)。如果您需要停止群集中的某个节点,同时继续提供另一个节点上运行的服务,则可以使用此选项。
- 将资源置于维护模式
为某个资源启用此模式后,将不会针对该资源触发监视操作。
如果您需要手动调整此资源所管理的服务,并且不希望群集在此期间对该资源运行任何监视操作,则可以使用此选项。
- 将资源置于不受管理模式
使用
is-managed
元属性可以暂时“释放”某个资源,使其不受群集堆栈的管理。这意味着,您可以手动调整此资源管理的服务(例如,调整任何组件)。不过,群集将继续监视该资源,并继续报告任何错误。如果您希望群集同时停止监视该资源,请改为使用按资源维护模式(请参见将资源置于维护模式)。
16.3 准备和完成维护工作 #
如果您需要执行测试或维护工作,请执行下面的一般步骤。
如果不执行,有可能会产生不利的负面影响,例如,资源不按顺序启动、CIB 在群集节点之间不同步,甚至丢失数据。
在开始之前,请选择第 16.2 节中所述的适合您情况的选项。
请使用 Hawk2 或 crmsh 应用此选项。
执行维护任务或测试。
完成后,请将资源、节点或群集恢复“正常”工作状态。
16.4 将群集置于维护模式 #
要在 crm 外壳中将群集置于维护模式,请使用以下命令:
root #
crm
configure property maintenance-mode=true
要在完成维护工作后将群集恢复正常模式,请使用以下命令:
root #
crm
configure property maintenance-mode=false
按第 7.2 节 “登录”中所述,启动 Web 浏览器并登录到群集。
在左侧导航栏中,选择
。在
组中,从空下拉框中选择 属性,然后单击加号图标添加该属性。要设置
maintenance-mode
,请选中maintenance-mode
旁边的复选框,并确认您所做的更改。完成整个群集的维护任务之后,取消选中
maintenance-mode
属性旁边的复选框。此后,High Availability Extension 将再次接管群集管理工作。
16.5 将节点置于维护模式 #
要在 crm 外壳中将节点置于维护模式,请使用以下命令:
root #
crm
node maintenance NODENAME
要在完成维护工作后将节点恢复正常模式,请使用以下命令:
root #
crm
node ready NODENAME
按第 7.2 节 “登录”中所述,启动 Web 浏览器并登录到群集。
在左侧导航栏中,选择
。在其中某个节点视图中,单击节点旁边的扳手图标,然后选择
。完成维护任务后,单击节点旁边的扳手图标,然后选择
。
16.6 将节点置于待机模式 #
要在 crm 外壳中将节点置于待机模式,请使用以下命令:
root #
crm node standby NODENAME
要在完成维护工作后将节点恢复联机状态,请使用以下命令:
root #
crm node online NODENAME
按第 7.2 节 “登录”中所述,启动 Web 浏览器并登录到群集。
在左侧导航栏中,选择
。在其中某个节点的视图中,单击节点旁边的扳手图标,然后选择
。完成节点的维护任务。
要停用待机模式,请单击节点旁边的扳手图标,然后选择
。
16.7 将资源置于维护模式 #
要在 crm 外壳中将资源置于维护模式,请使用以下命令:
root #
crm
resource maintenance RESOURCE_ID true
要在完成维护工作后将资源恢复正常模式,请使用以下命令:
root #
crm
resource maintenance RESOURCE_ID false
按第 7.2 节 “登录”中所述,启动 Web 浏览器并登录到群集。
在左侧导航栏中,选择
。选择要置于维护模式或不受管理模式的资源,单击该资源旁边的扳手图标,然后选择
。打开
类别。从空下拉列表中,选择
属性,然后单击加号图标添加该属性。选中
maintenance
旁边的复选框,以将 maintenance 属性设置为yes
。确认更改。
完成该资源的维护任务之后,取消选中该资源的
maintenance
属性旁边的复选框。此后,资源将再次由 High Availability Extension 软件管理。
16.8 将资源置于不受管理模式 #
要在 crm 外壳中将资源置于不受管理模式,请使用以下命令:
root #
crm
resource unmanage RESOURCE_ID
要在完成维护工作后再次将资源置于受管模式,请使用以下命令:
root #
crm
resource manage RESOURCE_ID
按第 7.2 节 “登录”中所述,启动 Web 浏览器并登录到群集。
在左侧导航栏中选择
,然后转到 列表。在
列中,单击要修改的资源旁边的向下箭头图标,然后选择 。资源配置屏幕即会打开。
在
下面,从空下拉框中选择 项。将其值设置为
No
,然后单击 。完成维护任务后,将
设置为Yes
(默认值)并应用更改。此后,资源将再次由 High Availability Extension 软件管理。
16.9 在维护模式下重引导群集节点 #
如果群集或某个节点处于维护模式,您可以根据需要停止或重启动群集资源 — High Availability Extension 不会尝试重启动它们。如果您停止节点上的 Pacemaker 服务,所有守护程序和进程(最初作为 Pacemaker 管理的群集资源启动)将继续运行。
如果您在群集或某个节点处于维护模式的情况下尝试启动该节点上的 Pacemaker 服务,Pacemaker 将针对每个资源启动一次性的监视操作(“探测”),以确定哪些资源当前正在该节点上运行。但是,它只会确定资源的状态,而不执行其他操作。
如果您要在群集或某个节点处于维护模式
时关闭该节点,请执行以下操作:
在要重引导或关闭的节点上,以
root
或同等的身份登录。如果您使用 DLM 资源(或依赖于 DLM 的其他资源),请确保在停止 Pacemaker 服务之前显式停止这些资源:
crm(live)resource#
stop RESOURCE_ID这是因为,停止 Pacemaker 也会停止 DLM 对其成员资格和讯息交换服务有依赖的 Corosync 服务。如果 Corosync 停止,DLM 资源将假设一种节点分裂情况并触发屏蔽操作。
停止该节点上的 Pacemaker 服务:
root #
crm cluster stop关闭或重引导节点。