You can share between several directory servers the load of processing requests generated by directory service clients for the same information. This is done by defining a replica, or slave server to provide an alternative access point to the directory service for clients. A master naming context can have more than one replica naming context. FIGURE 1-10 shows a master server with two replica servers. Replication is the process by which changes in the master data store are propagated to all the replica naming contexts. You can replicate an entire naming context, a subtree, or a particular entry. You can replicate the entire content of an entry or you can specify a subset of attributes to be replicated.
Information from a master naming context is propagated to a replica by the slurpd daemon. The slurpd daemon can run permanently, so that updates to directory information are propagated immediately, or you can define a synchronization schedule. You can override the schedule at any time and trigger an immediate synchronization. This is useful if you change a large number of entries and do not want to wait for the next scheduled synchronization.
The slurpd daemon uses the LDAP protocol to update a replica naming context. A master naming context for which a replica is defined maintains a replication log. Each time the master naming context is updated, the transaction is recorded in the replication log. When the slurpd daemon next runs, it reads the replication log and sends the change to the slapd server that holds the replica naming context. The slapd server handles update requests from slurpd in the same way that it handles all requests, using the information supplied in the bind request to set the access level granted to slurpd requests. To guarantee that all replication updates are completed, slurpd must bind with the DN defined when the replica naming context was configured. If a different DN is used, write access for all entries may not be granted.
A replica data store always has a referral pointing to the master data store. If a replica server receives a request to modify an entry, it returns a referral to the client, indicating the master server to be contacted. In some cases, the client software handles the referral automatically and the user need not resubmit the query. Once the modification has been made in the master naming context, the change is sent to the replica naming context the next time the slurpd daemon runs.
Server
|
Naming Contexts
|
Replication Status
|
boston
|
l=Boston, o=XYZ, c=US
|
master, replicated to ussales, eursales, and rowsales
|
ussales
|
ou=US-Sales, o=XYZ, c=US
|
master
|
|
l=Boston, o=XYZ, c=US
|
replica from boston, replicated to atlanta and sanfran
|
eursales
|
ou=Euro-Sales, o=XYZ, c=US
|
master, replicated to eursale2
|
|
l=Boston, o=XYZ, c=US
|
replica from boston, replicated to eursale2, london, and paris
|
eursale2
|
ou=Euro-Sales, o=XYZ, c=US
|
replica from eursales
|
|
l=Boston, o=XYZ, c=US
|
replica from eursales
|
rowsales
|
ou=RoW-Sales, o=XYZ, c=US
|
master
|
|
l=Boston, o=XYZ, c=US
|
replica from boston
|
atlanta
|
ou=Atlanta-Dist, o=XYZ, c=US
|
master, replicated to london and tokyo
|
|
l=Boston, o=XYZ, c=US
|
replica from ussales
|
|
ou=London-Dist, o=XYZ, c=US
|
replica from london
|
|
ou=dist, l=Tokyo, o=XYZ, c=US
|
partial replica from tokyo
|
sanfran
|
l=San-Francisco, o=XYZ, c=US
|
master
|
|
l=Boston, o=XYZ, c=US
|
replica from ussales
|
london
|
ou=London-Dist, o=XYZ, c=US
|
master
|
|
l=Boston, o=XYZ, c=US
|
replica from eursales
|
|
ou=Atlanta-Dist, o=XYZ, c=US
|
replica from atlanta
|
|
ou=dist, l=Tokyo, o=XYZ, c=US
|
partial replica from tokyo
|
lonres
|
ou=London-RD, o=XYZ, c=US
|
master
|
|
l=Boston, o=XYZ, c=US
|
replica from london
|
paris
|
ou=Paris-Man, o=XYZ, c=US
|
master
|
|
l=Boston, o=XYZ, c=US
|
replica from eursales
|
tokyo
|
l=Tokyo, o=XYZ, c=US
|
master, partially replicated to atlanta and london
|
|
l=Boston, o=XYZ, c=US
|
replica from rowsales
|
|
ou=Atlanta-Dist, o=XYZ, c=US
|
replica from Atlanta
|
|
ou=London-Dist, o=XYZ, c=US
|
replica from london
|