Redundancia OpenLDAP

Los servidores openldap pueden tener diferentes roles:

Proveedor: envía actualizaciones del directorio a los consumidores

Consumidor: recibe actualizaciones de los proveedores.

Un servidor puede ser consumidor y a la vez proveedor si propaga las actualizaciones a otros consumidores. Un cliente LDAP es solamente consumidor.

Syncrepl (LDAP Sync Replication engine)

Es un motor de replicación consumer-side, permite que un servidor (consumidor LDAP) mantenga una copia de un fragmento del DIT (Directory Information Tree), se ejecuta en dicho servidor como un thread de slapd. Crea y mantiene una replica conectandose al proveedor. Utiliza el protocolo LDAP Content Synchronization, que soporta dos tipos de sincronización:

pull-based: el consumidor consulta periodicamente al proveedor por actualizaciones
push-based: el consumidor queda esperando que el proveedor le envíe actualizaciones en tiempo real.

Un consumidor puede crear una replica sin cambiar la configuración del proveedor y sin necesidad de reiniciar el proveedor, siempre que que el consumidor tenga permisos de acceso al fragmento del DIT a ser replicado.

Opciones de implementación

Master-slave

Existe un sólo servidor proveedor (master) capaz de realizar actualizaciones, estas se replican a uno o mas servidores consumidores (slaves). Los servidores consumidores tienen replicas de sólo lectura del DIT. Los usuarios de sólo lectura pueden acceder a cualquiera de los dos servidores. Los usuarios con posibilidad de escritura, sólo podrán realizar modificaciones en el master. Existe la posibilidad de configurar a los servidores esclavos para que devuelvan un referral al master cuando se les solicita una escritura. Se puede ver en la siguiente imagen:

Delta-syncrepl

Cada vez que se realiza un cambio en un atributo de un objeto, syncrepl copia todo el objeto al consumidor. Delta-syncrepl es una variante de syncrepl que busca hacer mas eficiente la transferencia de información enviando solamente los datos modificados. Es utilizado en casos donde se realiza gran cantidad de modificaciones, por ejemplo en casos donde se tiene una rutina periodica que modifica gran cantidad de atributos.

N-Way Multi-master

Utiliza syncrepl para replicar los datos a multiples proveedores (masters).
Evita tener un punto único de falla, ya que si un proveedor falla otro continuará aceptando cambios.

Puede causar inconsistencias, por ejemplo si hay al menos dos proveedores activos pero debido a problemas de red unos clientes ven uno y otros clientes ven al otro. En este caso, puede ser dificil llegar a unificar luego la información de ambos proveedores.

MirrorMode

Es una configuración hibrida que garantiza la consistencia de la replicación single-master, mientras provee alta disponibilidad como las soluciones multi-master. Dos proveedores se configuran para repcliarse mutuamente (como en multi-master) pero un front-end externo dirige las escrituras solamente a uno de los dos servidores. El servidor secundario sólo se usará para escrituras si el primario no funciona, caso en el que el frontend (single point of failure?) dirigirá las escrituras a al secundario. Cuando el servidor primario es reparado y reiniciado el automaticamente actualizará sus datos a partir del servidor secundario.

Syncrepl Proxy Mode

Se uitliza en algunas configuraciones donde el consumidor no puede iniciar la comunicación con el proveedor por restricciones de los firewalls. En ese caso Syncrepl se debe ejecutar desde un tercer equipo, que si llega al proveedor y puede iniciar la counicación del proveedor con el consumidor real.

Fuentes:
http://www.openldap.org/doc/admin24/replication.html
http://www.zytrax.com/books/ldap/ch7/