User Tools

Site Tools


cn:ccr:aai:howto:389indexes

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
cn:ccr:aai:howto:389indexes [2012/08/03 10:54]
enrico@infn.it
cn:ccr:aai:howto:389indexes [2012/08/03 10:57] (current)
enrico@infn.it
Line 1: Line 1:
 +====== 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 {{:​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)
  
cn/ccr/aai/howto/389indexes.txt · Last modified: 2012/08/03 10:57 by enrico@infn.it