web-dev-qa-db-ja.com

drbd corosyncclusterの2番目のノードが常にプライマリになろうとしています

Drbdcorosyncクラスターの問題に直面しています。

プライマリである1つのノードでは、すべてのリソース(mysql services、drbd)が正常に機能しています。しかし、2番目のノードは常にプライマリになろうとしています。


以下に示すように、2番目のノードのエラーログ:

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マスター/スレーブのステータスは完全ではありません。以下の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

Node2

[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ステータスは両方のノードで正常に表示されています

Node1(プライマリ):

[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 

[email protected], 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 

[email protected], 2010-06-04 08:04:09

m:res         cs         ro                 ds                 p  mounted  fstype

0:mysql-disk  Connected  Secondary/Primary  UpToDate/UpToDate  C
1
Ankush Tupe

これが発生するのは、クラスターフェンシングが構成されていないため(stonith)、クラスターがスプリットブレインになっているためです。

 Now you have a cluster with two DC and every node are trying to start the resource
1
c4f4t0r

各ノードのcorosyncが相互に通信できないようです。そのため、すべてのノードがそのノードをオンラインとしてマークしています。

マルチキャストオプションの代わりにユニキャストを試してみることをお勧めします。

  1. 両方のノードでcorosyncを停止します。
  2. ユニキャスト1.4.1をサポートするcorosyncバージョンを更新します
  3. Corosync構成を変更し、以下を追加します。
  4. Corosyncを開始します

メンバー{

                    memberaddr: <node1 IP>
            }
            member {
                    memberaddr: <node2 IP>
            }
            ringnumber: 0
            bindnetaddr: <Network address of your nodes> 
            mcastport: 5405
    } 

輸送:udpu

と言う行にコメントしてください

mcastaddr

ポート5404と5405がIptableファイアウォールを通過できるようにし、両方のノードでcorosyncを開始します。

ありがとう。

0
sandeep.s85