web-dev-qa-db-ja.com

LDAP(389ディレクトリサービス)およびマルチマスターを備えたペースメーカー

フローティングIPを備えたPacemakerを使用して、389(以前のFedora DS)を実行しているLDAPサーバーのペアを高可用性でセットアップしようとしています。さらに、389はマルチマスターレプリケーションをサポートしており、1つのノードでのすべての変更が1つ以上の他のノードで自動的にレプリケートされます。

私はすべてが機能することにかなり近いです。フェイルオーバーは問題なく機能します。また、マルチマスターレプリケーションは正常に機能します。ただし、現在のPacemaker構成は、非アクティブノードのディレクトリサービスを停止します。これは、バックアップノードが他のノードからレプリケーションデータを受信して​​いないことを意味します。

次のようにペースメーカーを設定する正しい方法は何ですか。

  1. LDAPディレクトリサービスは常に両方のノードで実行されています
  2. フローティングIPがノードの1つに割り当てられている
  3. マスターノードが停止するとフェイルオーバーが発生しますまたは LDAPサービスがマスターで実行を停止します

当初、私のPacemaker構成は次のようになりました。

property stonith-enabled=false
property no-quorum-policy=ignore

rsc_defaults resource-stickiness=100

primitive elastic_ip lsb:elastic-ip op monitor interval="10s"
primitive dirsrv lsb:dirsrv op monitor interval="10s"
order dirsrv-after-eip inf: elastic_ip dirsrv
colocation dirsrv-with-eip inf: dirsrv elastic_ip

次に、Pacemakerを使用して調査しましたクローン

property stonith-enabled=false
property no-quorum-policy=ignore

rsc_defaults resource-stickiness=100

primitive elastic_ip lsb:elastic-ip op monitor interval="10s"
primitive ldap lsb:dirsrv op monitor interval="15s" role="Slave" timeout="10s" op monitor interval="16s" role="Master" timeout="10s"

ms ldap-clone ldap meta master-max=1 master-node-max=1 clone-max=3 clone-node-max=1 notify-true

colocation ldap-with-eip inf: elastic_ip ldap-clone:Master
order eip-after-promote inf: ldap-clone:promote elastic_ip:start
order ldap-after-eip inf: elastic_ip ldap-clone

残念ながら、それは完全には機能しません。 pengineは、「ldap-clone:可能な1の0インスタンスをマスターにプロモートしました」と文句を言い、LDAPサービスを停止します。

2
organicveggie

Pacemakerメーリングリストのおかげで、解決策があります。問題は、389のLSBスクリプトがマスター/スレーブの概念を理解していないことです。最も簡単な解決策は、マスター/スレーブクローンではなく、単純なクローンを使用することです。新しいペースメーカー構成は次のようになります。

property stonith-enabled=false
property no-quorum-policy=ignore

rsc_defaults resource-stickiness=100

primitive elastic_ip lsb:elastic-ip op monitor interval="10s"
primitive dirsrv lsb:dirsrv op monitor interval="15s" role="Slave" timeout="10s" op monitor interval="16s" role="Master" timeout="10s"
clone ldap-clone dirsrv
order ldap-after-eip inf: elastic_ip ldap-clone
colocation ldap-with-eip inf: elastic_ip ldap-clone
2
organicveggie