[Date Prev][Date Next] [Chronological] [Thread] [Top]

OpenLDAP multi master replication



Hi,
i have openldap(2.4.9) installed in ubuntu 8.04 server.
i want to create a multi master set up with two such servers(2 or more than 2)
first i tried to follow http://www.openldap.org/doc/admin24/replication.html to form n-way master setup.
but in starting only i got a problem saying database(dc=mytest,dc=com) is not configured to hold "cn=config"
then  i tried setting up cn=config using  http://www.zytrax.com/books/ldap/ch6/slapd-config.html 
but that doesn't help me meaning even after configuring that cn=config as he mentioned in the site i got the same error
so i removed everything(slapd.d) what i did earlier so now i have slapd.conf in  both of my servers

finally i found one more link
http://itsecureadmin.com/wiki/index.php/OpenLDAP_Multi-Master_Replication
that displays sample config file 
so i followed that
you can check the slapd.conf below
so now i set up the same configuration in the second server too.

after writing these slapd.conf i just restared slapd on both servers.
for the first time when i add some data the first server it got replicated on the other server only when restart slapd on second server.
that is fine.
when i tried to add some other data on second server its not getting replicated on the other server even if i restart slapd.
after that wherever i add data not getting replicated adding locally only.

what could be the problem.
plz check my slapd.conf file and suggetst me how to do multi master replication on ubuntu 8.04 server.
 
so my slapd.conf is below.

# This is the main slapd configuration file. See slapd.conf(5) for more
# info on the configuration options.

#######################################################################
# Global Directives:

# Features to permit
#allow bind_v2

# Schema and objectClass definitions
include         /etc/ldap/schema/core.schema
include         /etc/ldap/schema/cosine.schema
include         /etc/ldap/schema/nis.schema
include         /etc/ldap/schema/inetorgperson.schema

# Where the pid file is put. The init.d script
# will not stop the server if you change this.
pidfile         /var/run/slapd/slapd.pid

# List of arguments that were passed to the server
argsfile        /var/run/slapd/slapd.args

# Read slapd.conf(5) for possible values
loglevel        none

# Where the dynamically loaded modules are stored
modulepath /usr/lib/ldap
moduleload back_hdb
moduleload ppolicy.la
moduleload syncprov.la
moduleload back_monitor.la

# The maximum number of entries that is returned for a search operation
sizelimit 500

# The tool-threads parameter sets the actual amount of cpu's that is used
# for indexing.
tool-threads 1

#######################################################################
# Specific Backend Directives for hdb:
# Backend specific directives apply to this backend until another
# 'backend' directive occurs
backend hdb

#######################################################################
# Specific Backend Directives for 'other':
# Backend specific directives apply to this backend until another
# 'backend' directive occurs
#backend <other>

database        config
rootdn "cn=admin,cn=config"
rootpw admin123

database        monitor
rootdn cn=monitor
rootpw admin123

#######################################################################
# Specific Directives for database #1, of type hdb:
# Database specific directives apply to this databasse until another
# 'database' directive occurs
database        hdb

# The base of your directory in database #1
suffix          "dc=mytest,dc=com"

# rootdn directive for specifying a superuser on the database. This is needed
# for syncrepl.
rootdn          "cn=admin,dc=mytest,dc=com"

# Where the database file are physically stored for database #1
directory       "/var/lib/ldap"

serverid  3   ldap://192.168.7.88:389
serverid  4   ldap://192.168.7.89:389

cachesize 1000
checkpoint 256 5

syncrepl rid=003
provider=ldap://192.168.7.88:389
binddn="cn=admin,dc=mytest,dc=com"
bindmethod=simple
credentials=admin123
searchbase="dc=mytest,dc=com"
type=refreshAndPersist
interval=00:00:00:10
retry="5 5 300 5"
timeout=1

syncrepl rid=004
provider=ldap://192.168.7.89:389
binddn="cn=admin,dc=mytest,dc=com"
bindmethod=simple
credentials=admin123
searchbase="dc=mytest,dc=com"
type=refreshAndPersist
interval=00:00:00:10
retry="5 5 300 5"
timeout=1

mirrormode true

overlay syncprov
syncprov-checkpoint 100 10
syncprov-sessionlog 100

# The dbconfig settings are used to generate a DB_CONFIG file the first
# time slapd starts.  They do NOT override existing an existing DB_CONFIG
# file.  You should therefore change these settings in DB_CONFIG directly
# or remove DB_CONFIG and restart slapd for changes to take effect.

# For the Debian package we use 2MB as default but be sure to update this
# value if you have plenty of RAM
dbconfig set_cachesize 0 2097152 0

# Sven Hartge reported that he had to set this value incredibly high
# to get slapd running at all. See http://bugs.debian.org/303057 for more
# information.

# Number of objects that can be locked at the same time.
dbconfig set_lk_max_objects 1500
# Number of locks (both requested and granted)
dbconfig set_lk_max_locks 1500
# Number of lockers
dbconfig set_lk_max_lockers 1500

# Indexing options for database #1
index           objectClass eq
index           cn,mail,surname,givenname eq

# Save the time that the entry gets modified, for database #1
lastmod         on

# Checkpoint the BerkeleyDB database periodically in case of system
# failure and to speed slapd shutdown.
checkpoint      512 30

# Where to store the replica logs for database #1
# replogfile /var/lib/ldap/replog

# The userPassword by default can be changed
# by the entry owning it if they are authenticated.
# Others should not be able to see it, except the
# admin entry below
# These access lines apply to database #1 only
access to attrs=userPassword,shadowLastChange
        by dn="cn=admin,dc=mytest,dc=com" write
        by anonymous auth
        by self write
        by * none

# Ensure read access to the base for things like
# supportedSASLMechanisms.  Without this you may
# have problems with SASL not knowing what
# mechanisms are available and the like.
# Note that this is covered by the 'access to *'
# ACL below too but if you change that as people
# are wont to do you'll still need this if you
# want SASL (and possible other things) to work 
# happily.
access to dn.base="" by * read

# The admin dn has full write access, everyone else
# can read everything.
access to *
        by dn="cn=admin,dc=mytest,dc=com" write
        by * read

# For Netscape Roaming support, each user gets a roaming
# profile for which they have write access to
#access to dn=".*,ou=Roaming,o=morsnet"
#        by dn="cn=admin,dc=mytest,dc=com" write
#        by dnattr=owner write

#######################################################################
# Specific Directives for database #2, of type 'other' (can be hdb too):
# Database specific directives apply to this databasse until another
# 'database' directive occurs
#database        <other>

# The base of your directory for database #2
#suffix "dc=debian,dc=org"
---------------------------------------------------------------------
so now i set up the same configuration in the second server too.

after writing these slapd.conf i just restared slapd on both servers.
for the first time when i add some data the first server it got replicated on the other server only when restart slapd on second server.
that is fine.
when i tried to add some other data on second server its not getting replicated on the other server even if i restart slapd.
after that wherever i add data not getting replicated adding locally only.

what could be the problem.
plz check my slapd.conf file and suggetst me how to do multi master replication on ubuntu 8.04 server.

Thanks 
Visu