User Tools

Site Tools


Sidebar

cn:ccr:aai:howto:389indexes

Indicizzazione dei DB del 389DS

Per ridurre i tempi di risposta di un server LDAP è necessario indicizzare i DataBase utilizzati dal 389 Directory Server.

Questa operazione richiede due fasi distinte:

  • Configurazione
  • Inizializzazione

Configurazione degli indici

La configurazione di default del 389DS prevede la possibilità di abilitare le indicizzazioni sugli attributi:

 aci
 cn
 entryusn
 givenName
 mail
 mailAlternateAddress
 mailHost
 member
 memberOf
 nsUniqueId
 ntUniqueId
 ntUserDomainId
 numsubordinates
 objectclass
 owner
 parentid
 seeAlso
 sn
 telephoneNumber
 uid
 uniquemember

Ai quali, per le esigenze specifiche di INFN-AAI vanno aggiunti gli attributi

 edupersonaffiliation
 edupersonentitlement
 edupersonprincipalname
 infncertsubjectdn
 infnkerberosprincipal
 infnlinkeduuid
 infnuuid
 schacpersonaluniquecode
 schacPersonalUniqueID
 shacpersonaluniqueid
 shacuserstatus
 uidnumber
 gidnumber

E questo va fatto sia nella configurazione di default, sia nella configurazione di ogni DataBase creato nel 389 Directory Server (che viene normalmente creato con una configurazione degli indici basata sul default)

Si possono configurare questi indici aggiuntivi partendo dal file additional-default-indexes.ldif.txt.

Dopo aver opportunamente definito la variabile d'ambiente SEDE

SEDE=le ; export SEDE

potete tranquillamente usare il cut-and-paste per ottenere i file da dare in pasto ad ldapmodify

wget -O additional-default-indexes.ldif http://wiki.infn.it/_media/cn/ccr/aai/howto/additional-default-indexes.ldif.txt
wget -O additional-infn-indexes.ldif http://wiki.infn.it/_media/cn/ccr/aai/howto/additional-default-indexes.ldif.txt
wget -O additional-$SEDE-indexes.ldif http://wiki.infn.it/_media/cn/ccr/aai/howto/additional-default-indexes.ldif.txt

Una volta scaricati questi file, bisogna modificarli opportunamente.

sed -i 's/cn=default indexes,cn=config/cn=index,cn=infn-db/'  additional-infn-indexes.ldif 
sed -i "s/cn=default indexes,cn=config/cn=index,cn=$SEDE-db/"  additional-$SEDE-indexes.ldif 

Viene da sè che nel caso abbiate definito un ulteriore DB "custom" locale, tale operazione va fatta anche per tale DB

CUSTOM=local ; export CUSTOM
wget -O additional-$CUSTOM-indexes.ldif http://wiki.infn.it/_media/cn/ccr/aai/howto/additional-default-indexes.ldif.txt
sed -i "s/cn=default indexes,cn=config/cn=index,cn=$CUSTOM-db/"  additional-$CUSTOM-indexes.ldif

A questo punto siete pronti per inserire le definizioni dei nuovi indici nella configurazione del server

cat additional-*.ldif >> /tmp/indexes.ldif

ldapmodify -a -ZZ -c  -v -h `hostname`  -D "cn=directory manager" -W  -f /tmp/indexes.ldif

Inizializzazione degli indici

Una volta inserita la definizione degli indici nella configurazione del server, bisogna inizializzarli secondo quanto descritto in http://docs.redhat.com/docs/en-US/Red_Hat_Directory_Server/7.1/html/Administrators_Guide/index1.htm#1051480 ed in http://docs.redhat.com/docs/en-US/Red_Hat_Directory_Server/8.2/html/Configuration_and_Command-Line_Tool_Reference/Perl_Scripts.html#Perl_Scripts-db2index.pl_Create_and_generate_indexes

/usr/lib64/dirsrv/slapd-$DSID/db2index.pl -v -D "cn=Directory Manager" -w - -n infn-db
/usr/lib64/dirsrv/slapd-$DSID/db2index.pl -v -D "cn=Directory Manager" -w - -n $SEDE-db
/usr/lib64/dirsrv/slapd-$DSID/db2index.pl -v -D "cn=Directory Manager" -w - -n $CUSTOM-db

Il DB più pesante da indicizzare è l'infn-db. Su può seguire lo stato di avanzamento usando

tail -f /var/log/dirsrv/slapd-$DSID/errors

Una macchina virtuale con 2 GB di RAM e 4 CPU QEMU Virtual CPU version (cpu64-rhel6) @ 1995.060 MHz ci mette circa 10 minuti (il processo di indicizzazione è comunque legato ad una sola CPU)

cn/ccr/aai/howto/389indexes.txt · Last modified: 2012/08/03 12:57 by enrico@infn.it