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

6 配置群集资源和约束

除了定义特定群集设置所需的资源和约束外,Geo 群集还需要下文所述的其他资源和约束。可按以下示例中所示使用 crm 外壳 (crmsh) 或者使用 Hawk2 来配置这些资源和约束。

本章重点介绍特定于 Geo 群集的任务。有关您的首选群集管理工具的简介以及如何使用该工具配置资源和约束的一般说明,请参见以下其中一章:

如果您是使用引导脚本设置 Geo 群集的,那么投票间所需的群集资源(包括 boothd 的资源组)均已配置好。在此情况下,您可以跳过第 6.2 节,只需执行以下剩余步骤即可完成群集资源配置。

如果您要手动设置 Geo 群集,则需要执行以下所有步骤:

重要
重要:不跨站点进行 CIB 同步

CIB 不会跨 Geo 群集的群集站点自动同步。需要为每个站点相应地配置必须在 Geo 群集中保持高度可用的所有资源,或者需要将这些资源传输到其他一个或多个站点。

为简化传输过程,可以在配置任何包含站点特定参数的资源时为参数指定取决于运行资源的群集站点名称的值(另请参见第 3 章 “要求中的其他要求和建议)。

在一个站点上配置资源后,可以标记所有群集站点上所需的资源,从当前 CIB 导出这些资源,然后将其导入另一站点的 CIB。有关详细信息,请参见第 6.4 节 “将资源配置传输到其他群集站点”

6.1 配置资源的票据依赖项

对于 Geo 群集,可以指定哪些资源依赖于特定的票据。您可以与特定类型的约束一起,设置丢失策略,该策略定义撤消票据时应对相应资源采取哪些操作。loss-policy 属性可能具有以下值:

  • fence:屏蔽运行相关资源的节点。

  • stop:停止相关资源。

  • freeze:不对相关资源执行任何操作。

  • demote:将以 master 模式运行的相关资源降级为以 slave 模式运行。

过程 6.1︰ 使用 crmsh 配置资源的票据依赖项
  1. 在群集 amsterdam 的其中一个节点上,启动外壳并以 root 或同等身份登录。

  2. 输入 crm configure 切换到交互式 crm 外壳。

  3. 配置约束,用于定义哪些资源依赖于特定的票据。例如,要使原始资源 rsc1 依赖于 ticketA,请运行以下命令:

    crm(live)configure# rsc_ticket rsc1-req-ticketA ticketA: \
      rsc1 loss-policy="fence"

    如果已撤消 ticketA,应屏蔽运行资源的节点。

  4. 如果希望其他资源依赖于其他票据,请使用 rsc_ticket 根据需要创建更多的约束。

  5. 使用 show 复查更改。

  6. 如果全部都正确,请使用 commit 提交更改,并使用 exit 退出 crm 当前配置。

    配置将保存到 CIB。

6.2 配置 boothd 的资源组

如果您是使用 ha-cluster-init 引导脚本设置 Geo 群集的,则可以跳过下面的过程,因为在此情况下,boothd 的资源和资源组已配置好。

每个站点都需要运行 boothd 的一个实例以与其他投票间守护程序通讯。该守护程序可以在任何节点上启动,因此应将其配置为原始资源。要使 boothd 资源保持在同一节点上,则在可行的情况下将资源粘性添加到配置中。每个守护程序都需要一个永久 IP 地址,因此请用虚拟 IP 地址配置另一个原始资源。将两个原始资源分组:

  1. 在群集 amsterdam 的其中一个节点上,启动外壳并以 root 或同等身份登录。

  2. 输入 crm configure 切换到交互式 crm 外壳。

  3. 输入以下命令创建两个原始资源,并将它们添加到一个组 g-booth

    crm(live)configure# primitive ip-booth ocf:heartbeat:IPaddr2 \
      params iflabel="ha" nic="eth1" cidr_netmask="24"
      params rule #cluster-name eq amsterdam ip="192.168.201.100" \
      params rule #cluster-name eq berlin ip="192.168.202.100"
    crm(live)configure# primitive booth-site ocf:pacemaker:booth-site \
      meta resource-stickiness="INFINITY" \
      params config="nfs" op monitor interval="10s"
    crm(live)configure# group g-booth ip-booth booth-site

    通过这种配置,每个投票间守护程序都将在各自的 IP 地址处可用,独立于运行守护程序的节点。

  4. 使用 show 复查更改。

  5. 如果全部都正确,请使用 commit 提交更改,并使用 exit 退出 crm 当前配置。

    配置将保存到 CIB。

6.3 添加顺序约束

如果票据已授予某个站点,但因任何原因导致该站点的所有节点无法托管 boothd 资源组,则可能导致分布于不同地理位置的站点之间出现节点分裂现象。在这种情况下,系统无法通过任何 boothd 实例针对其他站点安全地管理票据故障转移。要避免该票据出现潜在的并发性违规(票据同时授予给多个站点),请添加一个顺序约束:

  1. 在群集 amsterdam 的其中一个节点上,启动外壳并以 root 或同等身份登录。

  2. 输入 crm configure 切换到交互式 crm 外壳。

  3. 创建顺序约束,例如:

    crm(live)configure# order o-booth-before-rsc1 Mandatory: g-booth rsc1

    该约束定义 rsc1(依赖于 ticketA)只能在 g-booth 资源组之后启动。

  4. 对于依赖于某个特定票据的任何其他资源,定义更多顺序约束。

  5. 使用 show 复查更改。

  6. 如果全部都正确,请使用 commit 提交更改,并使用 exit 退出 crm 当前配置。

    配置将保存到 CIB。

6.4 将资源配置传输到其他群集站点

完成或更改一个群集站点的资源配置后,请将该配置传输到 Geo 群集的其他站点。

为了简化传输,可以标记所有群集站点上所需的任何资源,从当前 CIB 导出这些资源,然后将其导入另一站点的 CIB。标记不会在资源之间创建任何共置或顺序关系。

过程 6.2 “标记并导出资源配置”过程 6.3 “导入标记的资源配置”中提供了操作方法的示例。它们基于以下先决条件:

先决条件
  • 有一个包含两个站点的 Geo 群集:群集 amsterdam 和群集 berlin

  • 已在相应的 /etc/corosync/corosync.conf 文件中定义每个站点的群集名称。

    totem {
         [...]
         cluster_name: amsterdam
         }

    您可以手动完成此操作(即编辑 /etc/corosync/corosync.conf),也可以通过 YaST 群集模块进行(即切换到通讯通道类别,然后定义群集名称)。随后,请停止 pacemaker 服务然后再将其启动,以使更改生效:

    root # crm cluster restart
  • 已在站点 amsterdam 上的 CIB 中配置应在 Geo 群集中高度可用的投票间和所有服务的必要资源。这些资源将导入到站点 berlin 上的 CIB 中。

过程 6.2︰ 标记并导出资源配置
  1. 登录到群集 amsterdam 的节点之一。

  2. 使用以下命令启动群集:

    root # crm cluster start
  3. 输入 crm configure 切换到交互式 crm 外壳。

  4. 查看当前 CIB 配置:

    crm(live)configure# show
  5. 使用标记 geo_resources 来标记 Geo 群集中需要的资源和约束:

    crm(live)configure# tag geo_resources: \
      LIST_OF_RESOURCES_and_CONSTRAINTS_FOR_REQUIRED_SERVICES 1\
      rsc1-req-ticketA ip-booth booth-site g-booth o-booth-before-rsc1 2

    1

    Geo 群集中所有站点上都需要的特定设置的任何资源和约束(例如,SUSE 最佳实践文档中所述的 DRBD 的资源)。

    2

    boothd 的资源和约束(原始资源、投票间资源组、票据依赖项、其他顺序约束),请参见第 6.1 节第 6.3 节

  6. 使用 show 查看更改。

  7. 如果配置符合需要,请使用 submit 提交更改,然后使用 exit 退出 crm 在线外壳。

  8. 将标记的资源和约束导出到名为 exported.cib 的文件:

    root # crm configure show tag:geo_resources geo_resources > exported.cib

    命令 crm configure show tag:标记名称将显示属于标记标记名称的所有资源。

过程 6.3︰ 导入标记的资源配置

要将保存的配置文件导入到第二个群集站点的 CIB 中,请执行以下操作:

  1. 登录群集 berlin 的其中一个节点。

  2. 使用以下命令启动群集:

    root # crm cluster start
  3. 将群集 amsterdam 中的文件 exported.cib 复制到此节点。

  4. 将文件 exported.cib 中标记的资源和约束导入群集 berlin 的 CIB:

    root # crm configure load update PATH_TO_FILE/exported.cib

    crm configure load 命令使用 update 参数时,crmsh 会尝试将文件内容集成到当前的 CIB 配置(而不是将当前 CIB 替换为文件内容)。

  5. 使用以下命令查看更新的 CIB 配置:

    root # crm configure show

    导入的资源和约束将显示在 CIB 中。