8 管理群集资源 #
配置群集中的资源后,可使用群集管理工具启动、停止、清理、去除或迁移资源。本章介绍如何使用 Hawk2 或 crmsh 执行资源管理任务。
8.1 显示群集资源 #
8.1.1 使用 crmsh 显示群集资源 #
当管理群集时,crm configure show
命令会列出诸如群集配置、全局选项、原始资源及其他的当前 CIB 对象:
#
crm configure show
node 178326192: alice node 178326448: bob primitive admin_addr IPaddr2 \ params ip=192.168.2.1 \ op monitor interval=10 timeout=20 primitive stonith-sbd stonith:external/sbd \ params pcmk_delay_max=30 property cib-bootstrap-options: \ have-watchdog=true \ dc-version=1.1.15-17.1-e174ec8 \ cluster-infrastructure=corosync \ cluster-name=hacluster \ stonith-enabled=true \ placement-strategy=balanced \ standby-mode=true rsc_defaults rsc-options: \ resource-stickiness=1 \ migration-threshold=3 op_defaults op-options: \ timeout=600 \ record-pending=true
如果您有许多资源,show
的输出会十分冗长。为限制输出,请使用资源名称。例如,如果只想列出原始资源 admin_addr
的属性,请将资源名称追加到 show
后:
#
crm configure show admin_addr
primitive admin_addr IPaddr2 \ params ip=192.168.2.1 \ op monitor interval=10 timeout=20
但在某些情况下,您可能希望更精确地限制特定资源的输出。那么,您可以使用过滤器。过滤器可将输出限定到特定组件。例如,要想仅列出节点,可使用 type:node
:
#
crm configure show type:node
node 178326192: alice node 178326448: bob
如果您还想列出原始资源,请使用 or
运算符:
#
crm configure show type:node or type:primitive
node 178326192: alice node 178326448: bob primitive admin_addr IPaddr2 \ params ip=192.168.2.1 \ op monitor interval=10 timeout=20 primitive stonith-sbd stonith:external/sbd \ params pcmk_delay_max=30
此外,要搜索以特定字符串开头的对象,请使用以下表示法:
#
crm configure show type:primitive and 'admin*'
primitive admin_addr IPaddr2 \ params ip=192.168.2.1 \ op monitor interval=10 timeout=20
要列出所有可用类型,请输入 crm configure show type:
,然后按 →| 键。Bash 补全功能会列出所有类型。
8.2 编辑资源和组 #
可以使用 Hawk2 或 crmsh 来编辑资源或组。
8.2.1 使用 Hawk2 编辑资源和组 #
创建资源后,您随时都可以编辑其配置,根据需要调整参数、操作或元属性。
登录 Hawk2:
https://HAWKSERVER:7630/
在 Hawk2 的
屏幕中,转到 列表。在
列中,单击要修改的资源或组旁边的向下箭头图标,然后选择 。资源配置屏幕即会打开。
图 8.1︰ Hawk2 - 编辑原始资源 #在配置屏幕顶部,可以选择要执行的操作。
如果要编辑原始资源,可以执行以下操作:
复制资源
重命名资源(更改其 ID)
删除资源
如果要编辑组,可以执行以下操作:
创建要添加到此组的新原始资源
重命名组(更改其 ID)
拖动组成员以改变其排列顺序
要添加新参数、操作或元属性,请从空下拉框中选择一项。
要编辑
类别中的任何值,请单击相应项的 图标,为该操作输入不同的值,然后单击 。完成后,单击资源配置屏幕中的
按钮,以确认对参数、操作或元属性所做的更改。如果操作成功,屏幕顶部会显示一条消息。
8.2.2 使用 crmsh 编辑组 #
要更改组成员的顺序,请使用 modgroup
子命令中的 configure
命令。例如,使用下面的命令可将原始资源 Email
移到 Public-IP
前面:
crm(live)configure#
modgroup g-mailsvc add Email before Public-IP
要从组中去除某个资源(例如 Email
),请使用以下命令:
crm(live)configure#
modgroup g-mailsvc remove Email
8.3 启动群集资源 #
启动群集资源之前,应确保资源设置正确。例如,如果使用 Apache 服务器作为群集资源,请先设置 Apache 服务器。完成 Apache 配置,然后再启动群集中的相应资源。
当您正通过 High Availability Extension 管理资源时,就不能再启动或停止该资源(例如,不能在群集之外手动启动或停止,或者在引导或重引导时启动或停止)。High Availability Extension 软件负责所有服务的启动或停止操作。
但如果要检查服务是否配置正确,可手动启动该服务,不过请确保在 High Availability Extension 接管前再次停止该服务。
要对群集当前管理的资源进行干预,请先将资源设置为 maintenance mode
。有关详细信息,请参见过程 27.5 “使用 Hawk2 将资源置于维护模式”。
可以使用 Hawk2 或 crmsh 来启动群集资源。
8.3.1 使用 Hawk2 启动群集资源 #
使用 Hawk2 创建资源时,可通过 target-role
元属性设置其初始状态。如果将其值设置为 stopped
,则该资源在创建后不会自动启动。
登录 Hawk2:
https://HAWKSERVER:7630/
从左侧导航栏中,选择
› 。 列表还会显示 。选择要启动的资源。在其
列中,单击 图标。要继续,请对显示的消息进行确认。
资源启动后,Hawk2 会将资源的
变为绿色,并显示当前运行该资源的节点。8.3.2 使用 crmsh 启动群集资源 #
要启动新群集资源,需要提供相应的标识符。
以
root
用户身份登录,然后启动crm
交互式外壳:#
crm
切换到资源级别:
crm(live)#
resource
使用
start
启动资源,然后按 →| 键显示所有已知资源:crm(live)resource#
start ID
8.4 停止群集资源 #
8.4.1 使用 crmsh 停止群集资源 #
要停止一个或多个现有群集资源,需要提供相应的标识符。
以
root
用户身份登录,然后启动crm
交互式外壳:#
crm
切换到资源级别:
crm(live)#
resource
使用
stop
停止资源,然后按 →| 键显示所有已知资源:crm(live)resource#
stop ID
您一次可以停止多个资源:
crm(live)resource#
stop ID1 ID2
...
8.5 清理群集资源 #
资源失败时会自动重启动,但每次失败都会增加资源的失败计数。
如果已为资源设置 migration-threshold
,当失败次数达到迁移阈值时,节点将不再运行该资源。
可以自动重置资源的失败计数(通过设置资源的 failure-timeout
选项),也可使用 Hawk2 或 crmsh 手动重置。
8.5.1 使用 Hawk2 清理群集资源 #
登录 Hawk2:
https://HAWKSERVER:7630/
从左侧导航栏中,选择
。 列表还会显示 。转到要清理的资源。在
列中,单击向下箭头按钮并选择 。要继续,请对显示的消息进行确认。如此即会执行
crm resource cleanup
命令并在所有节点上清理该资源。
8.5.2 使用 crmsh 清理群集资源 #
打开外壳并以
root
用户身份登录。获取所有资源的列表。
#
crm resource list
... Resource Group: dlm-clvm:1 dlm:1 (ocf:pacemaker:controld) Started clvm:1 (ocf:heartbeat:lvmlockd) Started例如,要清理资源
dlm
,请执行以下操作:#
crm resource cleanup dlm
8.6 去除群集资源 #
要从群集中去除资源,请按照下面的 Hawk2 或 crmsh 过程操作,以免出现配置错误。
8.6.1 使用 Hawk2 去除群集资源 #
登录 Hawk2:
https://HAWKSERVER:7630/
按过程 8.5 “清理资源”中所述清理所有节点上的资源。
停止资源:
从左侧导航栏中,选择
› 。 列表还会显示 。在
列中,单击资源旁边的 按钮。要继续,请对显示的消息进行确认。
资源停止后,
列将会反映此变化。
删除资源:
从左侧导航栏中,选择
› 。在
列表中,转到相应资源。在 列中,单击资源旁边的 图标。要继续,请对显示的消息进行确认。
8.6.2 使用 crmsh 去除群集资源 #
以
root
用户身份登录,然后启动crm
交互式外壳:#
crm configure
运行以下命令来获取您的资源列表:
crm(live)#
resource status
例如,输出可能如下所示(其中“myIP”是资源的相应标识符):
myIP (ocf:IPaddr:heartbeat) ...
删除具有相关标识符的资源(也暗指
commit
):crm(live)#
configure delete YOUR_ID
提交更改:
crm(live)#
configure commit
8.7 迁移群集资源 #
当软件或硬件发生故障时,群集会自动对资源进行故障转移(迁移),具体情况视您可以定义的特定参数(例如迁移阈值或资源粘性)而定。您也可以手动将资源迁移到群集中的其他节点,或将其从当前节点移出,让群集决定将资源放置在哪里。
可以使用 Hawk2 或 crmsh 来迁移群集资源。
8.7.1 使用 Hawk2 迁移群集资源 #
登录 Hawk2:
https://HAWKSERVER:7630/
从左侧导航栏中,选择
› 。 列表还会显示 。在
列表中,选择相应资源。在
列中,单击向下箭头按钮并选择 。随后打开的窗口中会提供以下选项:
-INFINITY
的位置约束。或者,您也可以将资源移到另一节点上。此选项将为目标节点创建分数为
INFINITY
的位置约束。
确认您的选择。
要使资源重新移回,请按如下操作:
登录 Hawk2:
https://HAWKSERVER:7630/
从左侧导航栏中,选择
› 。 列表还会显示 。在
列表中,转到相应资源。在
列中,单击向下箭头按钮并选择 。要继续,请对显示的消息进行确认。Hawk2 会使用
crm_resource
--clear
命令。资源可以移回到其原始位置,也可以留在当前位置(取决于资源粘性)。
有关详细信息,请参见 http://www.clusterlabs.org/pacemaker/doc/ 上的 Pacemaker Explained。请参见 Resource Migration 部分。
8.7.2 使用 crmsh 迁移群集资源 #
可以使用 move
命令来完成此任务。例如,要将 ipaddress1
资源迁移到名为 bob
的群集节点,请使用以下命令:
#
crm resource
crm(live)resource#
move ipaddress1 bob
8.8 使用标记对资源分组 #
使用标记可以一次性引用多个资源,而无需在这些资源之间创建任何共置或顺序关系。此功能十分适用于对概念上相关的资源进行分组。例如,如果有多个资源与某个数据库相关,您可以创建一个名为 databases
的标记,并将与该数据库相关的所有资源都添加到此标记。这样,只需使用一条命令就能停止或启动所有这些资源。
标记也可以用于约束。例如,loc-db-prefer
位置约束将应用到标记了 databases
的一组资源:
location loc-db-prefer databases 100: alice
可以使用 Hawk2 或 crmsh 来创建标记。
8.8.1 使用 Hawk2 通过标记对资源分组 #
登录 Hawk2:
https://HAWKSERVER:7630/
从左侧导航栏中,选择
› › 。输入唯一的
。从
列表中,选择要使用标记引用的资源。单击
以完成配置。如果操作成功,屏幕顶部会显示一条消息。
8.8.2 使用 crmsh 通过标记对资源分组 #
例如,如果有多个资源与某个数据库相关,您可以创建一个名为 databases
的标记,并将与该数据库相关的所有资源都添加到此标记:
#
crm configure tag databases: db1 db2 db3
这样,只需使用一条命令就能启动所有这些资源:
#
crm resource start databases
同样,也可以一次性停止所有这些资源:
#
crm resource stop databases