Stefanelli Mirko wrote:
Ciao a tutti,
Ho alcuni problemi con la replica attraverso syncrepl.
Ho creato un utente per il syncrepl che si chiama syncuser e questo
utente ha
i seguenti diritti di accesso specificati sul file slapd.conf:
by dn="cn=syncuser,ou=Profile,dc=xxxxx,dc=xxxxxx,dc=xxxxx" read
il master e configurato per il syncprov con i seguenti parametri:
overlay syncprov
syncprov-checkpoint 100 10
syncprov-sessionlog 100
mentre la parte slave è configurata nel seguente modo:
syncrepl rid=001
provider=ldap://10.10.216.167:890
type=refreshOnly
interval=00:00:02:00
retry="15 10 120 +"
searchbase="dc=xxxxx,dc=xxxxxxxxxx,dc=xxxxx" (root dell'albero)
filter="(objectClass=*)"
attrs="*"
scope=sub
schemachecking=off
bindmethod=simple
binddn="cn=syncuser,ou=Profile,dc=xxxx,dc=xxxxxxxxxxx,dc=xxxxxx"
credentials=xxxxxx
updateref ldap://10.10.216.167:890
Ho effettuato le seguenti prove con risultati disastrosi:
1) slave senza db, al memento dello startup dello slave il suo db
inizia a popolarsi ma dopo 8h di attesa
si è popolato solo parzialmente (lo slapd slave e configurato per
tracciare le info relative al syncrepl (-d 16384)
nel di log trovo un mare di righe tipo queste:
syncrepl_entry: rid 001 LDAP_RES_SEARCH_ENTRY(LDAP_SYNC_ADD)
syncrepl_entry: rid 001 be_search (0)
syncrepl_entry: rid 001
uid=DC_PIPPO|rm_ip2|434212|USER43|People,ou=expiredAccounts,dc=xxxx,dc=xxxxxxx,dc=xxxx
syncrepl_entry: rid 001 be_add (0)
syncrepl_entry: rid 001 LDAP_RES_SEARCH_ENTRY(LDAP_SYNC_ADD)
syncrepl_entry: rid 001 be_search (0)
syncrepl_entry: rid 001
uid=DC_PIPPO|rm_ip3|434212|USER43|People,ou=expiredAccounts,dc=xxxx,dc=xxxxxxx,dc=xxxxx
syncrepl_entry: rid 001 be_add (0)
syncrepl_entry: rid 001 LDAP_RES_SEARCH_ENTRY(LDAP_SYNC_ADD)
syncrepl_entry: rid 001 be_search (0)
syncrepl_entry: rid 001
uid=DC_PIPPO|rm_ip4|434212|USER43|People,ou=expiredAccounts,dc=xxxxx,dc=xxxxx,dc=xxxxx
syncrepl_entry: rid 001 be_add (0)
request done: ld 13bb588 msgid 2
do_syncrep2: rid 001 LDAP_RES_SEARCH_RESULT
se effettuo delle query con ldapsearch (da riga di comando vedo che
nel db sono presenti alcune entry con ou=expiredAccounts,
ma attreverso un qualsiasi browser non è visibile tale ramo.
2) Test con i due DB allineati, ho effettuato diverse prove sia
effettuando cancellazioni che inserimenti sul master ed
il risultato è sempre il medesimo il Master si impalla e non si ferma
inviando il comando kill -15 <pid>. Non è
più possibile lavorare con il master ne utilizzando vari browser ne da
riga di comando, l'unica soluzione per fermarlo
è il kill -9 e una successiva ripartenza.
Per ogni prova effettuavo un refresh del db (cancellazione dei file di
dati e slapadd da file ldif)
Alcune informazione la versione openldap è la 2.3.38 sia per il master
sia per lo slave, girano su sistemi solaris 9.
Il tipo di db che utilizziamo è ldbm e le entry presenti nel db
(intendo dn) sono 132285.
Qualche suggerimento? o idea?
Intanto ci sono poche informazioni. Il db quanto e' grande? 8 ore
possono essere tante o poche a seconda della dimensione del DB.
Poi non sappiamo se il db master esisteva gia' o e' stato caricato da
zero con slapadd. Nel qual caso hai usato il flag -w per far aggiornare
il contextCSN con il piu' alto contextCSN generato?
Ancora, openldap-2.3.38 non e' l'ultima versione rilasciata. La 2.3.39
fixa alcuni bug proprio su syncrepl.
Dal punto di vista della configurazione:
schemachecking=on e attrs="*,+" potrebbero aiutarti
Le righe che trovi nel log dicono che le macchine si stanno
sincronizzando. La replica trova una entry sul master e la aggiunge (i
result code sono 0) correttamente.
Il fatto che ldapsearch trovi le entry vuol dire che funziona. Il fatto
che i "browser" non le trovino vuol dire che sono mal configurati.
Infine... ldbm e' obsoleto e deprecato (da anni). Nella versione 2.4 e'
stato completamente rimossso (cosi' come slurpd). Ci sono vari warning
nella documentazione sul fatto che syncrepl non funziona (bene) con
ldbm. Perche' continuare a farsi del male?
Passa a bdb o hdb e vedrai che tutto funziona perfettamente.
Ing. Luca Scamoni
Responsabile Ricerca e Sviluppo
SysNet s.r.l.
via Dossi, 8 - 27100 Pavia - ITALIA
http://www.sys-net.it
-----------------------------------
Office: +39 0382 573859 (137)
Mobile: +39 347 1014425
Email: [EMAIL PROTECTED]
-----------------------------------
_______________________________________________
OpenLDAP mailing list
[email protected]
https://www.sys-net.it/mailman/listinfo/openldap