Debian 10 Pacemaker-Cluster: "전역 잠금 실패: 전역 잠금 공간이 사용 중인지 확인하세요"라는 메시지와 함께 GFS2 마운트가 실패합니다.

Debian 10 Pacemaker-Cluster: "전역 잠금 실패: 전역 잠금 공간이 사용 중인지 확인하세요"라는 메시지와 함께 GFS2 마운트가 실패합니다.

세 개의 인스턴스가 있는 새 Debian 10 클러스터를 설정하려고 합니다. 내 스택은 Pacemaker, corosync, dlm, lvmlockd 및 GFS2 볼륨을 기반으로 합니다. 모든 서버는 GFS2 볼륨에 접근할 수 있지만, GFS2 파일 시스템을 사용할 때 페이스메이커를 사용하거나 수동으로 마운트할 수 없습니다. 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모든 리소스가 작동되어 온라인 상태임을 나타냅니다 . Pacemaker를 구성한 후 Pacemaker에 파일 시스템 리소스를 추가하기 위해 공유 볼륨 그룹을 설정하려고 시도했지만 모든 명령이 실패했습니다.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 dlmdlm 시작 또는 디버깅 과 같은 여러 구성을 시도했지만 dlm_controld -d이를 수행하는 방법에 대한 정보를 찾지 못했습니다. 웹에서 유사한 오류를 논의하지만 페이월로 인해 솔루션을 제공하지 않는 일부 RedHat 포럼을 발견했습니다.

GFS2가 Pacemaker Debian 클러스터에 올바르게 설치될 수 있도록 dlm을 사용하여 전역 잠금을 시작하거나 초기화하는 방법은 무엇입니까? 아니면 내 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>

이는 프로덕션 설정이 아니며 일부 길 잃은 VM에서 일부 테스트일 뿐입니다.

관련 정보