====== 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 eduPersonAssurance edupersonentitlement edupersonprincipalname infncertsubjectdn infnkerberosprincipal infnlinkeduuid infnuuid isMemberOf l objectClass 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 {{:cn:ccr:aai:howto: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)