MySQL DRBD 리소스가 PaceMaker + Corosync를 시작할 수 없습니다.

MySQL DRBD 리소스가 PaceMaker + Corosync를 시작할 수 없습니다.

따라서 클러스터를 구성할 때 모든 서비스가 실행 중이지만 다시 시작하면 다음과 같은 결과가 나타납니다.

Full list of resources:

 virtual_ip     (ocf::heartbeat:IPaddr2):       Started node1
 webserver      (ocf::heartbeat:apache):        Stopped
 Master/Slave Set: WebDataClone [WebData]
     Masters: [ node2 ]
     Slaves: [ node1 ]
 WebFS  (ocf::heartbeat:Filesystem):    Started node2
 sqlfs  (ocf::heartbeat:Filesystem):    Stopped
 Master/Slave Set: SQLDataClone [SQLData]
     Masters: [ node1 ]
     Slaves: [ node2 ]

실패한 작업:

    sqlfs_start_0 on node1 'unknown error' (1): call=26, status=complete, last-rc-change='Sat Jun  4 00:57:27 2016', queued=0ms, exec=32ms
    sqlfs_start_0 on node2 'unknown error' (1): call=34, status=complete, last-    rc-change='Sat Jun  4 00:57:27 2016', queued=0ms, exec=59ms

이것이 내가 SQL 구성에 사용하는 것입니다.

 resource sqldata {
 protocol C;
 disk   /dev/sdb2;
 device /dev/drbd1;

 startup {
wfc-timeout 30;
outdated-wfc-timeout 20;
degr-wfc-timeout 30;
  }

 net {
cram-hmac-alg sha1;
shared-secret sync_disk;
  }

 syncer {
rate 10M;
al-extents 257;
on-no-data-accessible io-error;
verify-alg sha1;
  }

 on node1.freesoftwareservers.com {
   address  192.168.1.218:7788;
   flexible-meta-disk internal; 
  }

 on node2.freesoftwareservers.com {
   address  192.168.1.221:7788;
   meta-disk internal;
  }

 }

DRBD를 시작하고 동기화합니다.

drbdadm -- --overwrite-data-of-peer primary sqldata
drbdadm primary --force sqldata
watch cat /proc/drbd

수정된 my.cnf는 두 서버 모두에서 변경됩니다.

service mysqld stop
sudo nano /etc/my.cnf
Change in /etc/my.cnf :

#bind-address = 127.0.0.1
#Make Virtual_IP
bind-address = 192.168.1.215
#datadir=/var/lib/mysql
#Where DRBD will Mount
datadir=/var/lib/mysql_drbd
Mount and Populate with Data :

drbd1을 설치하고 채웁니다.

/sbin/mkfs.ext4 /dev/drbd1
mkdir /mnt/drbd1
mount /dev/drbd1 /mnt/drbd1 
mv /var/lib/mysql_drbd/* /mnt/drbd1/
chcon -R --reference=/var/lib/mysql /mnt/drbd1
umount /dev/drbd1

실패한 것으로 보이는 구성은 다음과 같습니다.

pcs cluster start --all
pcs cluster cib sqlfs_cfg
pcs -f sqlfs_cfg resource create sqlfs ocf:heartbeat:Filesystem device="/dev/drbd1" directory="/var/lib/mysql_drbd" fstype="ext4"
pcs -f sqlfs_cfg constraint colocation add sqlfs with SQLDataClone INFINITY with-rsc-role=Master
pcs -f sqlfs_cfg constraint order promote SQLDataClone then start sqlfs
pcs -f sqlfs_cfg constraint colocation add webserver with sqlfs INFINITY
pcs -f sqlfs_cfg constraint order sqlfs then webserver
pcs -f sqlfs_cfg constraint
pcs -f sqlfs_cfg resource show
pcs cluster cib-push sqlfs_cfg

sqlfs_drbd_cfg:

pcs cluster start --all
pcs cluster cib sqlfs_drbd_cfg
pcs -f sqlfs_drbd_cfg resource create SQLData ocf:linbit:drbd drbd_resource=sqldata op monitor interval=60s
pcs -f sqlfs_drbd_cfg resource master SQLDataClone SQLData master-max=1 master-    node-max=1 clone-max=2 clone-node-max=1 notify=true
pcs -f sqlfs_drbd_cfg resource show
pcs cluster cib-push sqlfs_drbd_cfg

노드 1(AKA 기본)에서 기본 위치를 설정합니다.

pcs constraint location sqlfs prefers node1=50

이 문제를 해결하는 방법에 대한 아이디어가 있습니까? 다시 말하지만, 초기 구성 중에 작동하고 재부팅 후에 충돌이 발생합니다...

감사해요!

답변1

Pacemaker에 mysql이 정의되어 있지 않습니다. 클러스터가 시작된 후 또는 시작할 때 수동으로 시작합니까?

부팅 시 시작되면 Pacemaker보다 먼저 시작되어 마운트 지점(데이터가 있어야 하는 위치)이 잠길 수 있으며, 이로 인해 파일 시스템 리소스가 해당 위치에 파일 시스템을 마운트할 수 없게 됩니다.

약간 맹목적이지만, 이 경우에는 부팅 시 mysql이 시작되지 않도록 비활성화한 다음 클러스터에서 정의해야 합니다.

관련 정보