RSS

OpenDSでMulti-master

SunがOpenDSというDirectory Serverを開発している。これは既にMulti-masterを実装しているので試してみた。

    付与されたタグ:
  • LDAP
もちろん知ってのとおりSun MicrosytemsはiPlanet由来のSun Java Directory Serverを持っている。エンタープライズ用途にも耐えられる立派なものである。でこのOpenDSはJavaで一から実装しているDirectory Serverである。ちなみにSunはOpenDSを作ったからといってSJDSをやめるつもりはないと言っている。

現在のOpenDSはあくまで開発中という位置付けではあるが既にMulti-masterを実装しておりなかなか意欲的な仕上がりを見せている。OpenDSを使
うにはサイトからダウンロードしてインストーラに適当に打ち込めばいいので省略してMulti-masterの実験をしよう。
なお、これはOpenDS-0.1-build-032に基いている。

まず、OpenDSを2箇所に展開する。便宜上OpenDS1とOpenDS2と呼ぶことにする。それぞれの初期セットアップをすませる。LDAPのポートは10389と20389とでもしておく。もし、別のサーバが用意できるのなら別のサーバで動かしてもよい。OpenDS1とOpenDS2の両方にdc=example,dc=comのbaseDNを作っておくこと。OpenDS1には適当にデータを入れておく。

次にOpenDS1のconfig/config.ldifを編集する。syncronization.ldifを後にくっつける。
dn: cn=example, cn=Multimaster Synchronization,cn=Synchronization Providers,cn=c
onfig
objectClass: top
objectClass: ds-cfg-synchronization-provider-config
cn: example
ds-cfg-synchronization-dn: dc=example,dc=com
ds-cfg-changelog-server: localhost:18989
ds-cfg-changelog-server: localhost:28989
ds-cfg-directory-server-id: 1
ds-cfg-receive-status: true

dn: cn=Changelog Server, cn=Multimaster Synchronization, cn=Synchronization Prov
iders, cn=config
objectClass: top
objectClass: ds-cfg-synchronization-changelog-server-config
cn: Changelog Server
ds-cfg-changelog-port: 18989
ds-cfg-changelog-server: localhost:18989
ds-cfg-changelog-server: localhost:28989
ds-cfg-changelog-server-id: 1
ds-cfg-changelog-portが自分自身の同期に使うポート、ds-cfg-changelog-serverはMasterになるサーバーを指定する。OpenDS1とOpenDS2のことですな。ds-cfg-directory-server-idがMaster毎に違う番号を割り振る。OpenDS1には1番を割り振る。

次はOpenDS2の設定だが、ds-cfg-changelog-portは当然変えておくこと。28989ですね。ds-cfg-changelog-server-idは2にする。以上で設定はおわり。OpenDS1とOpenDS2の両方を起動させる。あとは適当にデータをいじってみよう。LDAP Studioでやれば二つのサーバを同時に参照できるので楽だろう。片方の変更が即座に両方に反映させるのがわかるだろう。もちろんMulti-masterなのでどちらを変更しても大丈夫。
そして片方のサーバーを停止させて、もう片方で変更を加えたとしても、次に起動させるときちんと同期が取れている。

OpenLDAPに苦労している身にとってはもう使ってしまおうかしらんと思うような素晴しいソフトウェアである。

参考