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


Rispondere a