Debian 10 Pacemaker-Cluster:GFS2 挂载因“全局锁定失败:检查全局锁定空间是否已启动”而失败。

Debian 10 Pacemaker-Cluster:GFS2 挂载因“全局锁定失败:检查全局锁定空间是否已启动”而失败。

我正在尝试设置一个包含三个实例的新 Debian 10 集群。我的堆栈基于pacemaker、corosync、dlm 和lvmlockd 以及GFS2 卷。所有服务器都可以访问 GFS2 卷,但在使用 GFS2 文件系统时,我无法使用pacemaker或手动安装它。我配置了 corosync 并且所有三个实例都在线。我继续进行 dlm 和 lvm 配置。这是我的 LVM 和起搏器的配置步骤:

LVM:
sudo nano /etc/lvm/lvm.conf --> Set locking_type = 1 and use_lvmlockd = 1   

Pacemaker Resources:
sudo pcs -f stonith_cfg stonith create meatware meatware hostlist="firmwaredroid-swarm-1 firmwaredroid-swarm-2 firmwaredroid-swarm-3" op monitor interval=60s
sudo pcs resource create dlm ocf:pacemaker:controld \
    op start timeout=90s interval=0 \
    op stop timeout=100s interval=0
sudo pcs resource create lvmlockd ocf:heartbeat:lvmlockd \
    op start timeout=90s interval=0 \
    op stop timeout=100s interval=0
sudo pcs resource group add base-group dlm lvmlockd
sudo pcs resource clone base-group \
    meta interleave=true ordered=true target-role=Started

显示pcs status所有资源均已启动并在线。配置起搏器后,我尝试设置共享卷组以将文件系统资源添加到起搏器,但所有命令都失败Global lock failed: check that global lockspace is started.

sudo pvcreate /dev/vdb
--> Global lock failed: check that global lockspace is started
sudo vgcreate vgGFS2 /dev/vdb —shared
--> Global lock failed: check that global lockspace is started

然后我尝试使用 mkfs.gfs2 直接格式化 /dev/vdb ,它可以工作,但在我看来是朝着错误方向迈出的一步,因为安装卷总是失败:

sudo mkfs.gfs2 -p lock_dlm -t firmwaredroidcluster:gfsvolfs -j 3 /dev/gfs2share/lvGfs2Share
sudo mount -v -t "gfs2" /dev/vdb ./swarm_file_mount/
mount: /home/debian/swarm_file_mount: mount(2) system call failed: Transport endpoint is not connected.

我尝试了几种配置,例如启动lvmlockd -g dlm或调试 dlm,dlm_controld -d但没有找到任何有关如何执行此操作的信息。在网络上,我发现一些 RedHat 论坛讨论了类似的错误,但由于付费专区而没有提供任何解决方案。

如何使用 dlm 启动或初始化全局锁,以便可以在pacemaker Debian 集群上正确安装 GFS2?或者换句话说,我的 dlm 配置有什么问题?

感谢您的帮助!

答案1

我目前正在尝试同样的事情。

您需要先激活 LVM 卷,然后才能在计算机上使用它。您可以使用ocf:heartbeat:LVM-activate资源来做到这一点。如果它被激活,您可以在 的输出中看到一个a下划线。Attrlvs

我发现 Buster 中的 LVM 激活资源有一些错误(bashisms 和寻找已弃用的 LVM 选项)。但到目前为止,从buster-backports 安装较新的软件包是有效的。

这是我目前的资源。

      <clone id="base-services-clone">
        <group id="base-services">
          <primitive class="ocf" id="dlm" provider="pacemaker" type="controld">
            <operations>
              <op id="dlm-monitor-interval-60s" interval="60s" name="monitor"/>
              <op id="dlm-start-interval-0s" interval="0s" name="start" timeout="90s"/>
              <op id="dlm-stop-interval-0s" interval="0s" name="stop" timeout="100s"/>
            </operations>
          </primitive>
          <primitive class="ocf" id="lvmlockd" provider="heartbeat" type="lvmlockd">
            <operations>
              <op id="lvmlockd-monitor-interval-60s" interval="60s" name="monitor"/>
              <op id="lvmlockd-start-interval-0s" interval="0s" name="start" timeout="90s"/>
              <op id="lvmlockd-stop-interval-0s" interval="0s" name="stop" timeout="90s"/>
            </operations>
          </primitive>
          <primitive class="ocf" id="cluster-vg" provider="heartbeat" type="LVM-activate">
            <instance_attributes id="cluster-vg-instance_attributes">
              <nvpair id="cluster-vg-instance_attributes-activation_mode" name="activation_mode" value="shared"/>
              <nvpair id="cluster-vg-instance_attributes-lvname" name="lvname" value="data"/>
              <nvpair id="cluster-vg-instance_attributes-vg_access_mode" name="vg_access_mode" value="lvmlockd"/>
              <nvpair id="cluster-vg-instance_attributes-vgname" name="vgname" value="cluster"/>
            </instance_attributes>
            <operations>
              <op id="cluster-vg-monitor-interval-30s" interval="30s" name="monitor" timeout="90s"/>
              <op id="cluster-vg-start-interval-0s" interval="0s" name="start" timeout="90s"/>
              <op id="cluster-vg-stop-interval-0s" interval="0s" name="stop" timeout="90s"/>
            </operations>
          </primitive>
          <primitive class="ocf" id="shared-data" provider="heartbeat" type="Filesystem">
            <instance_attributes id="shared-data-instance_attributes">
              <nvpair id="shared-data-instance_attributes-device" name="device" value="/dev/cluster/data"/>
              <nvpair id="shared-data-instance_attributes-directory" name="directory" value="/mnt/data"/>
              <nvpair id="shared-data-instance_attributes-fstype" name="fstype" value="gfs2"/>
              <nvpair id="shared-data-instance_attributes-options" name="options" value="noatime"/>
            </instance_attributes>
            <operations>
              <op id="shared-data-monitor-interval-10s" interval="10s" name="monitor"/>
              <op id="shared-data-start-interval-0s" interval="0s" name="start" timeout="60s"/>
              <op id="shared-data-stop-interval-0s" interval="0s" name="stop" timeout="60s"/>
            </operations>
          </primitive>
        </group>
      </clone>

这不是生产设置,只是在一些流浪虚拟机中进行的一些测试。

相关内容