- PR -

Openldapでのユーザ登録時にエラー

1
投稿者投稿内容
未記入
会議室デビュー日: 2007/08/02
投稿数: 6
投稿日時: 2007-08-02 21:14
シングルマスター構成のLDAPサーバ2台で構築しています。

スレーブ側のサーバにldapaddコマンドでユーザ追加しようとすると、
以下のエラーとなります。
# ldapadd -f ldapuser.ldif -x -D "cn=Manager,o=test,c=jp" -W
Enter LDAP Password:
adding new entry "uid=testuser,o=test,c=jp"
ldap_add: Internal (implementation specific) error (80)
additional info: no structuralObjectClass operational attribute

スレーブ側のslapd.confには「updatedn」と、「updateref」を記述しています。
slapd.conf抜粋
updatedn "cn=Manager,o=test,c=jp"
updateref "ldap://web1:389/"

上記設定でスレーブ側LDAPサーバを起動しておけば、スレーブ側への更新を、マスタへ転送してくれると思っていたのですが、他に設定が必要なのでしょうか?

ちなみに、マスタへの更新内容は、slurpdによりスレーブにも反映されていることは確認できています。

どなたかご教授頂けたらと思います。
F/A
ぬし
会議室デビュー日: 2006/03/18
投稿数: 312
お住まい・勤務地: Tokyo
投稿日時: 2007-08-02 21:39
ます、シングルマスター構成というのは、
スレーブ側へはマスターからの複製でしか追加修正出来ないと思います。

Master → Replica
常に一方向です
未記入
会議室デビュー日: 2007/08/02
投稿数: 6
投稿日時: 2007-08-03 08:54
返信有難うございます。

確かに、シングルマスタ構成ですと、マスタへの更新内容をslurpdによりスレーブへ反映する一方向の同期になりますよね。

ただ、スレーブ側のslapd.confに「updateref」を設定していれば、スレーブへの更新依頼を、マスタへ送信してくれると思っておりました。
「updateref」は、更新対象のマスタ(マスタのuri)を通知するだけで、リクエストを送信してくれるわけではないのでしょうか?
その辺りを誤解しているかもしれません。

※実はLDAPサーバ2台は、負荷分散構成(UltraMonkeyを利用)となっており、且つラウンドロビンで振分ています。
その為、LDAPデータベース更新用のWebアプリ等でスレーブ側に更新依頼する場合も発生してしまいます。

別の構成を検討すべきでしょうか?
F/A
ぬし
会議室デビュー日: 2006/03/18
投稿数: 312
お住まい・勤務地: Tokyo
投稿日時: 2007-08-04 21:32
検索すると…

------------------------
5.2.3.9. updateref <URL>

このディレクティブはスレーブの slapd にのみ適用できます。これは複製の更新要求を送るクライアントに戻す URL を指定します。このディレクティブはいくつも指定でき、各 URL が戻されます。
------------------------

と書かれていますから、要求を肩代わりはしてくれないんじゃないかと思います。
クライアントが戻ってきたURLを使用して再度マスターに要求を投げるように
動くべきなんでしょう…
(ldapaddやldapmodifyがMasterに投げなおしてくれるのかもしれませんが…)


[ メッセージ編集済み 編集者: F/A 編集日時 2007-08-04 21:42 ]
未記入
会議室デビュー日: 2007/08/02
投稿数: 6
投稿日時: 2007-08-08 09:21
返信が遅れまして申し訳ありません。

おっしゃる通り、マスターへの再?要求の制御方法は作りこむしかないかもしれません。
現状の(LDAPのシングルマスター)構成で、負荷分散と高可用性を両立させることのメリットを検討し直してみます。
有難う御座いました。
1

スキルアップ/キャリアアップ(JOB@IT)