适用于 SUSE Linux Enterprise High Availability Extension 12 SP5

17 分布式锁管理器 (DLM)

摘要

内核中的分布式锁管理器 (DLM) 是 OCFS2、GFS2、Cluster MD 和 cLVM 用于在每个相关层提供主动-主动储存的基础组件。

17.1 用于 DLM 通讯的协议

为了避免单一故障点,非常有必要对高可用性群集配置冗余通讯路径。对于 DLM 通讯也是如此。如果出于任何原因无法使用网络绑定(聚合控制协议,LACP),则我们强烈建议在 Corosync 中定义冗余通讯通道(另一个环)。有关详细信息,请参见过程 4.3 “定义冗余通讯通道”

然后,DLM 将根据 /etc/corosync/corosync.conf 中的配置确定是要使用 TCP 还是 SCTP 协议来进行通讯:

  • 如果 rrp_mode 设置为 none(表示禁用冗余环配置),DLM 会自动使用 TCP。但是,如果未定义冗余通讯通道,在 TCP 链路断开的情况下,DLM 通讯将会失败。

  • 如果 rrp_mode 设置为 passive(典型的设置),并且在 /etc/corosync/corosync.conf 中正确配置了另一个通讯环,DLM 将自动使用 SCTP。在这种情况下,DLM 讯息交换会获得 SCTP 提供的冗余功能。

17.2 配置 DLM 群集资源

DLM 使用 Pacemaker 提供的并在用户空间中运行的群集成员资格服务。因此,DLM 需要配置为群集中每个节点上都存在的克隆资源。

注意
注意:多种解决方案的 DLM 资源

由于 OCFS2、GFS2、Cluster MD 和 cLVM 全部都使用 DLM,因此为 DLM 配置一个资源便已足够。由于 DLM 资源在群集中的所有节点上运行,因此它配置为克隆资源。

如果设置既包括 OCFS2 也包括 cLVM,则为 OCFS2 和 cLVM 配置一个 DLM 资源就足够了。

过程 17.1︰ 配置 DLM 的基础组

这种配置由包含多个原始资源的基础组和一个基础克隆构成。之后,基础组和基础克隆便可用于各种方案(例如,用于 OCFS2 和 cLVM)。您只需视需要使用相应的基元资源扩展基本组。由于基本组具有内部共置和顺序约束,您无需单独指定多个组、克隆及其依赖项,方便了总体设置。

在群集中的一个节点上执行以下步骤:

  1. 启动壳层,并以 root 用户身份或同等身份登录。

  2. 运行 crm configure

  3. 输入以下命令以创建 DLM 的基元资源:

    crm(live)configure# primitive dlm ocf:pacemaker:controld \
      op monitor interval="60" timeout="60"
  4. 为 DLM 资源和其他储存相关的资源创建一个基础组:

    crm(live)configure# group g-storage dlm
  5. 克隆 g-storage 组,使它在所有节点上运行:

    crm(live)configure#  clone cl-storage g-storage \
      meta interleave=true target-role=Started
  6. 使用 show 复查更改。

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

注意
注意:禁用 STONITH 时出错

未启用 STONITH 的群集不受支持。如果您出于测试或查错目的将全局群集选项 stonith-enabled 设置为 false,则 DLM 资源以及依赖于它的所有服务(例如 cLVM、GFS2 和 OCFS2)将无法启动。

打印此页