• Aumentar tamanho da fonte
  • Tamanho da fonte padrão
  • Diminuir tamanho da fonte

OpenLDAP - atualizações do livro - arquivo DB_CONFIG

Uma dica interessante: para quem usa o BDB como backend do OpenLDAP deve usar o arquivo DB_CONFIG que normalmente fica na pasta /var/lib/ldap com parâmetros como tamanho do cache por exemplo.

Se, por qualquer motivo, você tiver que limpar os arquivos desta pasta para restaurar um backup, por exemplo, pode ser que você apague o arquivo sem querer e quando reiniciar o slapd, o serviço vai reclamar que você poderá ter uma performance baixa devido à falta desta configuração. Veja um exemplo:

# /etc/init.d/slapd stop
Stopping OpenLDAP: slapd.

# rm -f /var/lib/ldap/DB_CONFIG

# /etc/init.d/slapd start
Starting OpenLDAP: slapd.

# tail -4 /var/log/syslog
Feb  3 11:55:15 ldapmaster slapd[2733]: slapd stopped.
Feb  3 11:56:03 ldapmaster slapd[2768]: @(#) $OpenLDAP: slapd 2.4.11 (Nov 26 2009
 10:49:27) $#012#011@brahms:/build/buildd-openldap_2.4.11-1+lenny1-amd64-TN9Lvw/
openldap-2.4.11/debian/build/servers/slapd
Feb  3 11:56:03 ldapmaster slapd[2769]: hdb_db_open: warning - no DB_CONFIG file
 found in directory /var/lib/ldap: (2).#012Expect poor performance for suffix
"dc=empresa,dc=com,dc=br".

Feb  3 11:56:03 ldapmaster slapd[2769]: slapd starting

Com a série 2.3 do servidor OpenLDAP você pode colocar estas configurações no arquivo slapd.conf e se, na hora de iniciar o serviço, o arquivo DB_CONFIG não existir ele será criado com os parâmetros que você colocou no slapd.conf.

Veja um exemplo. Coloquei as configurações a seguir no arquivo slapd.conf do meu servidor:

...

# Onde os arquivos de database estão armazenados no servidor
directory "/var/lib/ldap"

# área de dados em memória (2Mb)
dbconfig set_cachesize 0 2097152 0

# Cache para nomes de arquivos
dbconfig set_lg_regionmax 1048576

# Define o tamanho máximo do log de transações (o padrão é 1Mb)
dbconfig set_lg_max 10485760

# Cache do log de transações em memória
dbconfig set_lg_bsize 2097152

# Em servidores muito requisitados podem aparecer mensagens de erro indicando
# a exaustão de locks, lockers ou lock objects. Os parâmetros a seguir já oferecem
# uma boa margem de folga nestes casos mas pode ser necessário ajustá-los se você
# identificar este problema em seus logs.

# Número de objetos que podem ser travados simultaneamente
dbconfig set_lk_max_objects 1500

# Número de travamentos (locks) solicitados e permitidos
dbconfig set_lk_max_locks 1500

# Número de lockers
dbconfig set_lk_max_lockers 1500

...

Salve o arquivo e feche-o. Pronto, agora vamos ao teste. Vou remover todos os arquivos do /var/lib/ldap e fazer o procedimento de restaurar um backup full do meu Diretório de testes.

# /etc/init.d/slapd stop

# rm -f /var/lib/ldap/*

# ls -la /var/lib/ldap
total 8
drwxr-xr-x  2 openldap openldap 4096 Fev  3 11:35 .
drwxr-xr-x 25 root     root     4096 Fev  1 14:28 ..

# /etc/init.d/slapd start
alock     __db.002  __db.004  DB_CONFIG  id2entry.bdb
__db.001  __db.003  __db.005  dn2id.bdb  log.0000000001

# cat /var/lib/ldap/DB_CONFIG
set_cachesize 0 2097152 0
set_lg_regionmax 1048576
set_lg_max 10485760
set_lg_bsize 2097152
set_lk_max_objects 1500
set_lk_max_locks 1500
set_lk_max_lockers 1500

# ldapadd -x -D cn=admin,dc=empresa,dc=com,dc=br -W -f ~/backup.ldif
Enter LDAP Password: **********
adding new entry "dc=empresa,dc=com,dc=br"

adding new entry "cn=admin,dc=empresa,dc=com,dc=br"

adding new entry "ou=groups,dc=empresa,dc=com,dc=br"

adding new entry "ou=users,dc=empresa,dc=com,dc=br"

adding new entry "ou=computers,dc=empresa,dc=com,dc=br"

adding new entry "cn=marcos,ou=groups,dc=empresa,dc=com,dc=br"

adding new entry "uid=marcos,ou=users,dc=empresa,dc=com,dc=br"

É isso aí, chega de se preocupar em manter uma cópia do DB_CONFIG pra lá e pra cá.

Um detalhe importante, o arquivo só é criado se ele não existir pasta especificada na linha directory da configuração do serviço. Se você precisar alterar algum parâmetro, altere o slapd.conf, remova o arquivo DB_CONFIG da pasta /var/lib/ldap e reinicie o serviço slapd.

 

Referências:

OpenLDAP.org - How do I configure BDB Backend

Oracle Berkeley DB documentation

 

Marcos Sungaila