跳到内容跳到页面导航:上一页 [access key p]/下一页 [access key n]
documentation.suse.com / SUSE Linux Enterprise High Availability 文档 / 管理指南 / 配置和管理 / 管理群集资源
适用范围 SUSE Linux Enterprise High Availability 15 SP6

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 编辑资源和组

创建资源后,您随时都可以编辑其配置,根据需要调整参数、操作或元属性。

过程 8.1︰ 修改资源或组
  1. 登录 Hawk2:

    https://HAWKSERVER:7630/
  2. 在 Hawk2 的状态屏幕中,转到资源列表。

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

    资源配置屏幕即会打开。

    Hawk2 - 编辑原始资源
    图 8.1︰ Hawk2 - 编辑原始资源
  4. 在配置屏幕顶部,可以选择要执行的操作。

    如果要编辑原始资源,可以执行以下操作:

    • 复制资源

    • 重命名资源(更改其 ID)

    • 删除资源

    如果要编辑组,可以执行以下操作:

    • 创建要添加到此组的新原始资源

    • 重命名组(更改其 ID)

    • 拖放组成员以改变其排列顺序

  5. 要添加新参数、操作或元属性,请从空下拉框中选择一项。

  6. 要编辑操作类别中的任何值,请单击相应项的编辑图标,为该操作输入不同的值,然后单击应用

  7. 完成后,单击资源配置屏幕中的应用按钮,以确认对参数、操作或元属性所做的更改。

    如果操作成功,屏幕顶部会显示一条消息。

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 软件管理资源时,就不能以其他方式启动或停止该资源(例如,不能在群集外手动启动或停止,或者在系统引导或重引导时启动或停止)。该 High Availability 软件会负责所有服务的启动或停止操作。

但如果要检查服务是否配置正确,可手动启动该服务,不过请确保在 High Availability 软件接管前再次停止该服务。

要对群集当前管理的资源进行干预,请先将资源设置为 maintenance mode。有关详细信息,请参见 过程 28.5 “使用 Hawk2 将资源置于维护模式”

可以使用 Hawk2 或 crmsh 来启动群集资源。

8.3.1 使用 Hawk2 启动群集资源

使用 Hawk2 创建资源时,可通过 target-role 元属性设置其初始状态。如果将其值设置为 stopped,则该资源在创建后不会自动启动。

过程 8.2︰ 启动新资源
  1. 登录 Hawk2:

    https://HAWKSERVER:7630/
  2. 从左侧导航栏中,选择监控 › 状态资源列表还会显示状态

  3. 选择要启动的资源。在相应的操作列中,单击启动图标。要继续,请对显示的消息进行确认。

资源启动后,Hawk2 会将资源的状态变为绿色,并显示当前运行该资源的节点。

8.3.2 使用 crmsh 启动群集资源

要启动新群集资源,需要提供相应的标识符。

过程 8.3︰ 使用 crmsh 启动群集资源
  1. root 用户身份登录,然后启动 crm 交互式外壳:

    # crm
  2. 切换到资源级别:

    crm(live)# resource
  3. 使用 start 启动资源,然后按 →| 键显示所有已知资源:

    crm(live)resource# start ID

8.4 停止群集资源

8.4.1 使用 crmsh 停止群集资源

要停止一个或多个现有群集资源,需要提供相应的标识符。

过程 8.4︰ 使用 crmsh 停止群集资源
  1. root 用户身份登录,然后启动 crm 交互式外壳:

    # crm
  2. 切换到资源级别:

    crm(live)# resource
  3. 使用 stop 停止资源,然后按 →| 键显示所有已知资源:

    crm(live)resource# stop ID

    您一次可以停止多个资源:

    crm(live)resource# stop ID1 ID2 ...

8.5 清理群集资源

资源失败时会自动重启动,但每次失败都会使资源的失败计数增加。

如果为资源设置了 migration-threshold,当失败次数达到该迁移阈值时,节点便无法再运行该资源。

默认情况下,失败计数不会自动重置。您可以通过为资源设置 failure-timeout 选项将失败计数配置为自动重置,也可以使用 Hawk2 或 crmsh 手动重置失败计数。

8.5.1 使用 Hawk2 清理群集资源

过程 8.5︰ 清理资源
  1. 登录 Hawk2:

    https://HAWKSERVER:7630/
  2. 从左侧导航栏中,选择状态资源列表还会显示状态

  3. 转到要清理的资源。在操作列中,单击向下箭头按钮并选择清理。要继续,请对显示的消息进行确认。

    如此即会执行 crm resource cleanup 命令并在所有节点上清理该资源。

8.5.2 使用 crmsh 清理群集资源

过程 8.6︰ 使用 crmsh 清理资源
  1. 打开外壳并以 root 用户身份登录。

  2. 获取所有资源的列表。

    # crm resource status
    Full List of Resources
       * admin-ip      (ocf:heartbeat:IPaddr2):    Started
       * stonith-sbd   (stonith:external/sbd):     Started
       * Resource Group: dlm-clvm:
         * dlm:        (ocf:pacemaker:controld)    Started
         * clvm:       (ocf:heartbeat:lvmlockd)    Started
  3. 显示资源的失败计数:

    # crm resource failcount RESOURCE show NODE

    例如,要显示节点 alicedlm 资源的失败计数,请使用以下命令:

    # crm resource failcount dlm show alice
    scope=status name=fail-count-dlm value=2
  4. 清理资源:

    # crm resource cleanup RESOURCE

    此命令会清理所有节点上的资源。如果该资源是组的一部分,crmsh 还会清理组中的其他资源。

8.6 去除群集资源

要从群集中去除资源,请按照下面的 Hawk2 或 crmsh 过程操作,以免出现配置错误。

8.6.1 使用 Hawk2 去除群集资源

过程 8.7︰ 去除群集资源
  1. 登录 Hawk2:

    https://HAWKSERVER:7630/
  2. 过程 8.5 “清理资源”中所述清理所有节点上的资源。

  3. 停止资源:

    1. 从左侧导航栏中,选择监控 › 状态资源列表还会显示状态

    2. 操作列中,单击资源旁边的停止按钮。

    3. 要继续,请对显示的消息进行确认。

      资源停止后,状态列会反映此变化。

  4. 删除资源:

    1. 从左侧导航栏中,选择配置 › 编辑配置

    2. 资源列表中,转到相应资源。在操作列中,单击资源旁边的删除图标。

    3. 要继续,请对显示的消息进行确认。

8.6.2 使用 crmsh 去除群集资源

过程 8.8︰ 使用 crmsh 去除群集资源
  1. root 用户身份登录,然后启动 crm 交互式外壳:

    # crm
  2. 获取资源列表:

    crm(live)# resource status
    Full List of Resources:
      * admin-ip     (ocf:heartbeat:IPaddr2):     Started
      * stonith-sbd  (stonith:external/sbd):      Started
      * nfsserver    (ocf:heartbeat:nfsserver):   Started
  3. 停止要去除的资源:

    crm(live)# resource stop RESOURCE
  4. 删除资源:

    crm(live)# configure delete RESOURCE

8.7 迁移群集资源

当软件或硬件发生故障时,群集会根据您可以定义的特定参数(例如迁移阈值或资源粘性),自动将资源故障转移(迁移)。您也可以手动将资源迁移到群集中的其他节点,或将其从当前节点移出,让群集决定将资源放置在哪里。

可以使用 Hawk2 或 crmsh 来迁移群集资源。

8.7.1 使用 Hawk2 迁移群集资源

过程 8.9︰ 手动迁移资源
  1. 登录 Hawk2:

    https://HAWKSERVER:7630/
  2. 从左侧导航栏中,选择监控 › 状态资源列表还会显示状态

  3. 资源列表中,选择相应资源。

  4. 操作列中,单击向下箭头按钮并选择迁移

  5. 随后打开的窗口中会提供以下选项:

    • 离开当前节点:此选项会为当前节点创建一个分数为 -INFINITY 的位置约束。

    • 或者,您也可以将资源移到另一节点上。此选项将为目标节点创建分数为 INFINITY 的位置约束。

  6. 确认您的选择。

要使资源重新移回,请按如下操作:

过程 8.10︰ 取消迁移资源
  1. 登录 Hawk2:

    https://HAWKSERVER:7630/
  2. 从左侧导航栏中,选择监控 › 状态资源列表还会显示状态

  3. 资源列表中,转到相应资源。

  4. 操作列中,单击向下箭头按钮并选择清除。要继续,请对显示的消息进行确认。

    Hawk2 会使用 crm_resource  --clear 命令。资源可以移回到其原始位置,也可以留在当前位置(取决于资源粘性)。

有关详细信息,请参见 https://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 通过标记对资源分组

过程 8.11︰ 添加标记
  1. 登录 Hawk2:

    https://HAWKSERVER:7630/
  2. 从左侧导航栏中,选择配置 › 添加资源 › 标记

  3. 输入唯一的标记 ID

  4. 对象列表中,选择要使用标记引用的资源。

  5. 单击创建以完成配置。如果操作成功,屏幕顶部会显示一条消息。

Hawk2 - 标记
图 8.2︰ Hawk2 - 标记

8.8.2 使用 crmsh 通过标记对资源分组

例如,如果有多个资源与某个数据库相关,您可以创建名为 databases 的标记,并将与该数据库相关的所有资源都添加到此标记:

# crm configure tag databases: db1 db2 db3

这样,只需使用一条命令就能启动所有这些资源:

# crm resource start databases

同样,也可以一次性停止所有这些资源:

# crm resource stop databases