arinux

Linux サーバー設定備忘録
<< イーモバイルと ThinkCentre | main | openLDAP 構築(45) - マルチマスター(MirrorMode) (2) >>
openLDAP 構築(44) - マルチマスター(MirrorMode) (1)


メモ テスト環境


機種NEC Express5800
OSCentOS 4.5
kernel2.6.9-55.EL
LDAPopenldap-2.4.8



メモ MirrorMode 概要


この例では、2台のサーバーがいずれもマスターとなるように、「node 1」 「node 2」 として MirrorMode を構成します。なお、3台以上によるマルチマスター構成は、未検証です。


  • 2台の node 間はセッションを張ったままにして、いずれか一方の node に更新された内容を、もう一方の node に push します。
  • 「refreshAndPersist」 モードの場合は、更新後直ちにもう一台に差分が push されます。
  • いずれかの 「マスター」 が停止しても、稼働中の 「マスター」 に対して更新が行えます。
  • 停止していた node が再起動した際に、自動的に再同期が行われます。
  • 但し、MirrorMode は厳密に言うと 「Multi-Master solution」 とは呼びません。なぜなら、仮想的な mirror device を使用するわけではなく、また物理的な 2台に同時に書き込みが行われるわけではないからです。あくまでもいずれかの node に書かれた後、もう一方の node に同期されます。
  • ゆえに、MirrorMode は 「Active-Active Hot-Standby」 と呼ばれます。



メモ MirrorMode 設定


  1. 「node 1」 「node 2」 とも、openldap サーバーの環境が整っている状態で始めます。


  2. 「node 1」 「node 2」 とも、slapd デーモンは停止した状態で始めます。


  3. 「node 1」 の 「/usr/local/etc/openldap/slapd.conf」 に、以下を追加します。
    ●node 1
    index entryCSN,entryUUID eq
    
    overlay syncprov
    
    syncrepl        rid=1
                    provider=ldap://ldap-node1.examples.com
                    bindmethod=simple
                    binddn="cn=Manager,dc=examples,dc=com"
                    credentials=bindpasswd
                    searchbase="dc=examples,dc=com"
                    schemachecking=on
                    type=refreshAndPersist
                    retry="60 +"
    
    syncrepl        rid=2
                    provider=ldap://ldap-node2.examples.com
                    bindmethod=simple
                    binddn="cn=Manager,dc=examples,dc=com"
                    credentials=bindpasswd
                    searchbase="dc=examples,dc=com"
                    schemachecking=on
                    type=refreshAndPersist
                    retry="60 +"
    
    mirrormode      on
    serverID        1
    


    虫眼鏡 注意


    • 「credentials」 には、「openLDAP 構築(6) で生成したパスワード」 を平文で記述します。
    • 「serverID」 は、MirrorMode を構成する node の中で、ユニークな番号でなければいけません。
  4. 「node 1」 の 「/usr/local/etc/openldap/slapd.conf」 を 「node 2」 にコピーします。
    ●node 1
    [root]# scp -p /usr/local/etc/openldap/slapd.conf 10.1.1.16:/tmp
    root@10.1.1.16's password:
    slapd.conf                          100% 3999     3.9KB/s   00:00
    


  5. 「node 2」 の 「/usr/local/etc/openldap/slapd.conf」 を入れ替えます。
    ●node 2
    [root]# cd /usr/local/etc/openldap
    [root]# mv slapd.conf slapd.conf.save02
    [root]# cp /tmp/slapd.conf .
    


  6. 「node 2」 の 「slapd.conf」 設定を、以下のようにします。
    ●node 2
    overlay syncprov
    
    syncrepl        rid=1
                    provider=ldap://ldap-node2.examples.com    #ここ注意!
                    bindmethod=simple
                    binddn="cn=Manager,dc=examples,dc=com"
                    credentials=bindpasswd
                    searchbase="dc=examples,dc=com"
                    schemachecking=on
                    type=refreshAndPersist
                    retry="60 +"
    
    syncrepl        rid=2
                    provider=ldap://ldap-node1.examples.com    #ここ注意!
                    bindmethod=simple
                    binddn="cn=Manager,dc=examples,dc=com"
                    credentials=bindpasswd
                    searchbase="dc=examples,dc=com"
                    schemachecking=on
                    type=refreshAndPersist
                    retry="60 +"
    
    mirrormode      on
    serverID        2     #ここ注意!
    


    虫眼鏡 注意


    • 「credentials」 には、「openLDAP 構築(6) で生成したパスワード」 を平文で記述します。
    • 「serverID」 は、MirrorMode を構成する node の中で、ユニークな番号でなければいけません。
  7. 「openLDAP 構築(22) - SSL/TLS」 を参考に、「node 2」 上でサーバー証明書と秘密鍵を作成します。


  8. 「node 1」 の DB を 「node 2」 にコピーします。
    ●node 1
    [root]# cd /usr/local/var/openldap-data
    [root]# tar zcvf ../master02.tar.gz .
    [root]# cd ..
    [root]# scp -p ./master02.tar.gz 10.1.1.16:/tmp
    root@10.1.1.16's password:
    master02.tar.gz                          100%  680KB 680.3KB/s   00:00
    


  9. 「node 2」 の LDAP DB 用のディレクトリを再作成します。
    ●node 2
    [root]# cd /usr/local/var
    [root]# mv openldap-data openldap-data.save02
    [root]# mkdir openldap-data
    [root]# chown ldap:ldap openldap-data
    


  10. コピーしたファイルを 「node 2」 上で解凍します。
    ●node 2
    [root]# cd /usr/local/var/openldap-data
    [root]# cp /tmp/master02.tar.gz .
    [root]# tar zxvf master02.tar.gz
    [root]# rm master02.tar.gz
    


  11. 「node 1」 と 「node 2」 の 「/etc/ldap.conf」 の 「host」 を、以下のようにします。
    ●node 1
    host 127.0.0.1 10.1.1.16   # 10.1.1.16 は node 2 の IP アドレス
    

    ●node 2
    host 127.0.0.1 10.1.1.15   # 10.1.1.15 は node 1 の IP アドレス
    


  12. 「node 1」 の 「slapd」 を起動します。
    ●node 1
    [root]# /etc/rc.d/init.d/slapd start
    


  13. 「node 2」 の 「slapd」を起動します。
    ●node 2
    [root]# /etc/rc.d/init.d/slapd start
    




つづく

| arinux | openldap | 14:26 | comments(0) | trackbacks(0) | pookmark |









http://arinux.net/trackback/54
     12
3456789
10111213141516
17181920212223
24252627282930
<< June 2018 >>
+ SELECTED ENTRIES
+ RECENT COMMENTS
+ RECENT TRACKBACK
+ CATEGORIES
+ ARCHIVES
+ 掲載予定のタイトル
  • Wordpress
  • Pukiwiki
  • SMTPs/POPs/IMAPs
  • fml
  • Tips
+ CSS Nite
+ MOBILE
qrcode
+ LINKS
+ RECOMMEND
+ PROFILE