Eu uso o OpenLDAP suportando uma base de usuários de cerca de 10.000 usuários ativos que dependem dele durante todo o dia para tudo. Problemas são raros. Muitos serviços dependem disso, para autenticação e outras coisas.
No entanto, temos quatro réplicas somente leitura (escravos / consumidores) atrás de um balanceador de carga, um mestre oculto e um mestre de espera quente. Costumava ser dois servidores front-end, mas tínhamos problemas de carga durante determinados horários de pico (quando cerca de 4.000 desses usuários estavam tentando desesperadamente atingi-lo no mesmo segundo). Todo o acesso de gravação ao LDAP é através do nosso código.
Esse equipamento e sistema operacional são todos antigos e estamos trabalhando para substituí-lo por uma nova configuração que vai voltar para apenas 2 réplicas (que não estão fazendo tantas outras coisas) e replicação "modo espelho" entre um par de mestres em uma configuração HA. Mais uma vez, problemas são raros.
Nós costumávamos ter alguns problemas com a replicação falhando, mas isso é principalmente a partir de quando estávamos usando o slurpd em vez do syncrepl. Além disso, os desligamentos não limpos de um servidor podem corromper os dados.
Chaves para executar o OpenLDAP em um ambiente de produção em larga escala, na minha experiência:
- Alguém que entende bem o LDAP e o OpenLDAP . De preferência, mais de um alguém.
- Alguém que entende bem todas as outras partes diretamente relacionadas da infraestrutura.
- Alguém que entenda como a replicação OpenLDAP funciona.
- Um entendimento razoável das opções do BerkeleyDB (ou de qualquer back-end que você esteja usando), já que os padrões não são muito certos.
- Escravos altamente disponíveis . Mais de 1. Melhor: realmente com carga balanceada.
- ** mestres ativos-passivos (replicação mestra ativa-ativa é inerentemente complicada)
- Fazemos backup de dados do LDAP para LDIF a cada hora e mantemos alguns dias no disco. (todo o servidor é copiado para backup todas as noites)
- Temos scripts para rapidamente trazer um escravo quebrado de volta para uma réplica de dados atual limpa
- Temos scripts para rapidamente restaurar um master quebrado a partir dos backups LDIF (via slapadd)
- Podemos alternar rapidamente para o mestre em espera . (scripts)
- Monitoramos que as conexões de replicação estão ativas
- Monitoramos que os IDs de replicação são atuais em todos os escravos
- Monitoramos (com menos frequência) que todo o conteúdo dos escravos corresponde ao mestre.
Basicamente, se é uma parte fundamental da sua infraestrutura, alguém em sua equipe deve realmente entender bem.
Adendo : Por solicitação, o arquivo DB_CONFIG
do meu diretório DB openldap. Veja o link para obter detalhes.
set_cachesize 0 536870912 1
set_flags DB_TXN_NOSYNC
set_flags DB_TXN_WRITE_NOSYNC
set_lg_regionmax 268435456
set_lg_max 536870912
set_lg_bsize 134217728