Мы столкнулись с проблемой с кластером drbd corosync.
На одном узле, который является основным, все ресурсы (службы mysql, drbd) работают нормально. Но второй узел все время пытается быть основным.
Журналы ошибок второго узла, как показано ниже:
lrmd: [25272]: info: RA output: (mysql-drbd:0:promote:stderr) 0: State change failed: (-1) Multiple primaries not allowed by config
Oct 1 16:39:39 node2 lrmd: [25272]: info: RA output: (mysql-drbd:0:promote:stderr) 0: State change failed: (-1) Multiple primaries not allowed by config
Oct 1 16:39:39 node2 lrmd: [25272]: info: RA output: (mysql-drbd:0:promote:stderr) Command 'drbdsetup 0 primary' terminated with exit code 11
Oct 1 16:39:39 node2 drbd[25416]: ERROR: mysql-disk: Called drbdadm -c /etc/drbd.conf primary mysql-disk
Oct 1 16:39:39 node2 drbd[25416]: ERROR: mysql-disk: Called drbdadm -c /etc/drbd.conf primary mysql-disk
Oct 1 16:39:39 node2 drbd[25416]: ERROR: mysql-disk: Exit code 11
Oct 1 16:39:39 node2 drbd[25416]: ERROR: mysql-disk: Exit code 11
Oct 1 16:39:39 node2 drbd[25416]: ERROR: mysql-disk: Command output:
Oct 1 16:39:39 node2 drbd[25416]: ERROR: mysql-disk: Command output:
corosync статус Master / Slave не идеален. См. Статус corosync ниже.
Node1
[root@node1 ~]# crm status
============
Last updated: Thu Oct 2 09:01:30 2014
Stack: openais
Current DC: node1 - partition WITHOUT quorum
Version: 1.0.10-da7075976b5ff0bee71074385f8fd02f296ec8a3
2 Nodes configured, 2 expected votes 4 Resources configured.
============
Online: [ node1 ]
OFFLINE: [ node2 ]
mysql-vip (ocf::heartbeat:IPaddr2): Started node1
Master/Slave Set: mysql-drbd-ms
Masters: [ node1 ]
Stopped: [ mysql-drbd:1 ]
mysql-fs (ocf::heartbeat:Filesystem): Started node1
mysql-server (ocf::heartbeat:mysql): Started node1
You have new mail in /var/spool/mail/root
Узел 2
[root@node2 ~]# crm status
============
Last updated: Thu Oct 2 09:03:04 2014
Stack: openais
Current DC: node2 - partition WITHOUT quorum
Version: 1.0.10-da7075976b5ff0bee71074385f8fd02f296ec8a3
2 Nodes configured, 2 expected votes 4 Resources configured.
============
Online: [ node2 ]
OFFLINE: [ node1 ]
Master/Slave Set: mysql-drbd-ms
mysql-drbd:0 (ocf::linbit:drbd): Slave node2 (unmanaged) FAILED
Stopped: [ mysql-drbd:1 ]
Failed actions:
mysql-drbd:0_promote_0 (node=node2, call=7, rc=-2, status=Timed Out): unknown exec error
mysql-drbd:0_stop_0 (node=node2, call=13, rc=6, status=complete): not configured
Состояние DRBD на обоих узлах отображается нормально
Узел 1 (основной):
[root@node1 ~]# service drbd status
drbd driver loaded OK; device status:
version: 8.3.8 (api:88/proto:86-94)
GIT-hash: d78846e52224fd00562f7c225bcc25b2d422321d build by
mockbuild@builder10.centos.org, 2010-06-04 08:04:09
m:res cs ro ds p mounted fstype
0:mysql-disk Connected Primary/Secondary UpToDate/UpToDate C
Узел 2 (Вторичный):
[root@node2 ~]# service drbd status
drbd driver loaded OK; device status:
version: 8.3.8 (api:88/proto:86-94)
GIT-hash: d78846e52224fd00562f7c225bcc25b2d422321d build by
mockbuild@builder10.centos.org, 2010-06-04 08:04:09
m:res cs ro ds p mounted fstype
0:mysql-disk Connected Secondary/Primary UpToDate/UpToDate C
Это происходит потому, что у вас не настроено ограждение кластера (stonith), теперь ваш кластер находится в режиме разделения мозга.
Now you have a cluster with two DC and every node are trying to start the resource
Похоже, ваша corosync на каждом узле не может взаимодействовать друг с другом. Вот почему каждый узел помечает свой узел как подключенный.
Я предлагаю попробовать одноадресную рассылку вместо многоадресной.
member {
memberaddr: <node1 IP> } member { memberaddr: <node2 IP> } ringnumber: 0 bindnetaddr: <Network address of your nodes> mcastport: 5405 }
транспорт: удпу
Прокомментируйте строку, в которой говорится
mcastaddr
Разрешите порты 5404 и 5405 через брандмауэр Iptable и запустите corosync на обоих узлах.
Спасибо.