跳到内容跳到页面导航:上一页 [access key p]/下一页 [access key n]
documentation.suse.com / SUSE Linux Enterprise High Availability 文档 / 管理指南 / 存储和数据复制 / 分布式锁管理器 (DLM)
适用范围 SUSE Linux Enterprise High Availability 15 SP6

20 分布式锁管理器 (DLM)

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

20.1 用于 DLM 通讯的协议

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

DLM 可使用 TCP 或 SCTP 协议通过端口 21064 进行通讯,具体使用哪个协议取决于 /etc/corosync/corosync.conf 中的配置。

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

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

20.2 配置 DLM 群集资源

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

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

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

如果您的设置包含 OCFS2 和群集 LVM,则只需为 OCFS2 和群集 LVM 配置一个 DLM 资源就够了。在此情况下,请使用 过程 20.1 “配置 DLM 的基础组” 配置 DLM。

但是,如果您需要确保使用 DLM 的资源彼此独立(例如多个 OCFS2 挂载点),请使用不同的共置和顺序约束,而不要使用组。在此情况下,请使用 过程 20.2 “配置独立的 DLM 资源” 配置 DLM。

过程 20.1︰ 配置 DLM 的基础组

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

  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 提交更改,然后使用 quit 退出 crm 实时配置。

注意
注意:禁用 STONITH 时会发生故障

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

过程 20.2︰ 配置独立的 DLM 资源

此配置由一个原始资源和一个克隆资源构成,但不包含组。通过添加共置和顺序约束,可以避免在多个使用 DLM 的资源(例如多个 OCFS2 挂载点)之间形成依赖关系。

  1. root 或同等身份登录节点。

  2. 运行 crm configure

  3. 为 DLM 创建原始资源:

    crm(live)configure# primitive dlm ocf:pacemaker:controld \
      op start timeout=90 interval=0 \
      op stop timeout=100 interval=0 \
      op monitor interval=60 timeout=60
  4. 克隆 dlm 资源,使它在所有节点上运行:

    crm(live)configure#  clone cl-dlm dlm meta interleave=true
  5. 使用 show 查看所做的更改。

  6. 如果所有设置均正确无误,请使用 commit 提交更改,然后使用 quit 退出 crm 实时配置。