Architecture d'annuaire hautement disponible avec OpenLDAP

25
architecture d'annuaire hautement disponible avec OpenLDAP Solutions Linux – 21/05/2014 David Coutadeur

description

Présentation donnée lors du salon Solutions Linux 2014 par David COUTADEUR, Intégrateur LinID, Linagora.

Transcript of Architecture d'annuaire hautement disponible avec OpenLDAP

Page 1: Architecture d'annuaire hautement disponible avec OpenLDAP

architecture d'annuaire hautement disponible avec OpenLDAP

Solutions Linux – 21/05/2014David Coutadeur

Page 2: Architecture d'annuaire hautement disponible avec OpenLDAP

21 mai 2014 Solutions Linux 2014 2

À propos du conférencier

Page 3: Architecture d'annuaire hautement disponible avec OpenLDAP

21 mai 2014 Solutions Linux 2014 3

David Coutadeur

● Ingénieur en identité Open-Source depuis 2010 à LINAGORA

● Expériences dans des migrations SUN/Oracle vers OpenLDAP

● Integrateur des solutions LinID http://linid.org

● Membre de l'équipe LTB : http://ltb-project.org

● Membre de l'équipe LSC : http://lsc-project.org

● Membre de la core-team de LemonLDAP::NG http://lemonldap-ng.org

Page 4: Architecture d'annuaire hautement disponible avec OpenLDAP

21 mai 2014 Solutions Linux 2014 4

Plan● présentation d'OpenLDAP (2)● points forts● comparatif avec d'autres annuaires● nouveau mode de configuration cn=config● protocole de réplication (2)● implémentation syncrepl● Architectures syncrepl● Logiciels libres de HA

- heartbeat - pacemaker / corosync - haproxy - keepalived / IPVS / piranha

● quelques exemples d'architectures d'annuaires - architecture 1 - architecture 2

● conclusion

Page 5: Architecture d'annuaire hautement disponible avec OpenLDAP

21 mai 2014 Solutions Linux 2014 5

OpenLDAP

Page 6: Architecture d'annuaire hautement disponible avec OpenLDAP

21 mai 2014 Solutions Linux 2014 6

Présentation d'OpenLDAP

● Issu du serveur LDAP de l'université du Michigan

● Projet initié en 1998 (OpenLDAP v1), avec support LDAPv2

● Conforme LDAPv3 en 2000 (OpenLDAP v2)

● Codé en C

Page 7: Architecture d'annuaire hautement disponible avec OpenLDAP

21 mai 2014 Solutions Linux 2014 7

Présentation d'OpenLDAP● Version stable actuelle : OpenLDAP 2.4 (octobre 2007)

● Version 2.5 en construction. Version 3 envisagée dans la roadmap

● 3 développeurs principaux :

– Howard Chu,

– Pierangelo Masarati,

– Kurt Zeilenga● Plusieurs backends de stockage : bdb, hdb, lmdb

● Extensible via des overlays : politiques de mots de passe, groupes dynamiques, intégrité référentielle, réécriture des requêtes à la volée

● Nouveau backend de configuration cn=config

Page 8: Architecture d'annuaire hautement disponible avec OpenLDAP

21 mai 2014 Solutions Linux 2014 8

Points forts● Performances / Efficacité

● Nombreux backends (stockage, proxy, meta)

● Options de sécurité : SSL, SASL, ACLs, ACL sets, limites (en taille et en temps)

● Nombreuses extensions– 18 overlays officiels à ce jour

– 15 overlays contribués, disponibles dans les sources, mais à compiler

● Documentation relativement complète

● Et évidemment : opensource

Page 9: Architecture d'annuaire hautement disponible avec OpenLDAP

21 mai 2014 Solutions Linux 2014 9

Comparatif avec d'autres annuairesopenLDAP OpenDJ

Apache Directory

Server

Oracle Directory

Server

Active Directory

éditeur communau-taire

ForgeRock Fondation Apache

Oracle Microsoft

maturité 16 ans(09/1998)

4 ans(12/2010)

12 ans (10/2002)

16 ans(1998)

18 ans(1996)

technologie C java java C C, C++,C# ?

Réplication multi-maître √ √ √ √ √Console d'administra-tion

X √ √ √ √

Open-source (license)

√(OpenLDAP

Public License)

√(CDDL 1.0)

√(Apache 2.0)

X X

Autres embarquable embarquable

Performances / efficacité +++ +++ + ++ -

Page 10: Architecture d'annuaire hautement disponible avec OpenLDAP

21 mai 2014 Solutions Linux 2014 10

Nouveau mode de configuration cn=config

● La configuration se trouve dans l'annuaire ( >= 2.3)

● Possibilité de réplication de la configuration entre annuaires

● Certains paramètres sont pris en considération immédiatement (compte super-administrateur et son mot de passe)

● Possibilité d'administrer l'annuaire à distance

● Attention aux erreurs de configuration en cas de réplication !

Page 11: Architecture d'annuaire hautement disponible avec OpenLDAP

21 mai 2014 Solutions Linux 2014 11

Protocole de réplication● « LDAP Content Synchronization Operation », RFC 4533

● Implémenté par « syncrepl » dans OpenLDAP

● Objectifs :

– Moins verbeux qu'un simple polling

– Convergent (inconsistances transitoires)

– Support du polling et du listening

– Support de la synchronisation partielle

– Ne nécessite pas de « contrat » de synchronisation

– Ne nécessite pas de maintenir des états par client

– Ne nécessite pas de maintenir des historiques des changements

Page 12: Architecture d'annuaire hautement disponible avec OpenLDAP

21 mai 2014 Solutions Linux 2014 12

Envoi d'entrées

Mise à jour terminée

Nouveau cookie

Envoi d'entrées modifiées et / ou de messages « supprimés »

Terminé avec ce cookieAccuse réception de l'arrêt

Terminé avec ce cookie

Arrêt(cancel)

Requête initiale

Envoi des entrées présentes

Envoi des entrées modifiées

Requête initiale

Protocole de réplication● Deux modes :

Refresh Only = polling Refresh and Persist = listening

Envoi d'entrées

Terminé avec ce cookie

Requête de mise à

jour de contenu

Boucle

Boucle

Page 13: Architecture d'annuaire hautement disponible avec OpenLDAP

21 mai 2014 Solutions Linux 2014 13

Implémentation syncrepl● Pas de maintien d'historique des changements

● Attributs opérationnels supplémentaires :

– Pour chaque entrée :● entryUUID / parentUUID

cfbebb8a-64c0-1033-80c5-7b0923a7f955

● entryCSN : mis à jour à chaque modification20140430143816.912528Z#000000#000#000000

– Pour le contexte :● contextCSN :

20140430144831.206763Z#000000#000#000000

● Attention à les indexer !

Page 14: Architecture d'annuaire hautement disponible avec OpenLDAP

21 mai 2014 Solutions Linux 2014 14

Architectures syncrepl● Réplication multi-maîtres

– Les instances sont à la fois maîtres et esclaves

● Multi-maîtres à N instances– Évite le SPOF, vraie solution de failover, mais...

– Convergence difficile en cas d'écriture simultanée sur de multiples points d'entrée

– Casse la cohérence forte des données apportée par X500. (inconsistances transitoires)

● Mode mirroir– Équipement en frontal vient jouer le rôle de failover entre deux maîtres

● Réplication Delta-syncrepl– Maintien d'un changelog

– + efficace dans le cas d'écritures fréquentes sur de grosses entrées

Page 15: Architecture d'annuaire hautement disponible avec OpenLDAP

21 mai 2014 Solutions Linux 2014 15

Logiciels libres de HA● Heartbeat

– Solution de reprise sur échec en GNU/GPL

– Surveillance des services compatibles « LSB »

– Fournit des services intégrés : maintien d'une adresse IP virtuelle

– Battement de cœur entre instances des nœuds (broadcast, multicast, unicast, ping)

– Quelques stratégies de migration des ressources (ordre, groupe)

– Administration des ressources : fichier plat / fichier XML / en ligne de commande

– Pas de gestion fine des ressources, de la politique de migration

– En perte de vitesse...

Page 16: Architecture d'annuaire hautement disponible avec OpenLDAP

21 mai 2014 Solutions Linux 2014 16

● Pacemaker / corosync– Pacemaker : gestionnaire de ressources

– Corosync : moteur de cluster

– Corosync : support de petits ou larges clusters, détection et récupération de nœuds, support des quorums, de ring

– Pacemaker :

● primitives LSB, OCF, systemd,...● Ensemble de primitives : groupe, clone,...● Contraintes : Location, Ordering, Colocation,...● Configuration XML, gestion par GUI ou par ligne de

commande, surveillance des nœuds

– Pas de répartition de charge !

– Gestion de ressources peu utile, car en général, tous les annuaires sont démarrés

Page 17: Architecture d'annuaire hautement disponible avec OpenLDAP

21 mai 2014 Solutions Linux 2014 17

● haproxy– Logiciel très léger (819 Ko) en C de répartition de charge

– Écrit en 2000 (14 ans), dernière version : 1.4.25

– Présent dans des infrastructures web connues : Amazon Web Services, Stack Overflow, Twitter,...

– Réputé très stable, rapide et efficace

– Fonctionne aux niveaux transport (4) et application (7)

– Nombreux algorithmes de répartition : roundrobin, par poids, par connexion la moins chargée, par hash de l'ip source, par hash du l'URI demandée, par en-tête HTTP,...

– Vérification du service au niveau TCP, HTTP, LDAP

Page 18: Architecture d'annuaire hautement disponible avec OpenLDAP

21 mai 2014 Solutions Linux 2014 18

● IPVS / Keepalived / piranha– IP Virtual Server : système de répartition de charge agissant au

niveau transport (4), implémenté au niveau noyau

– Linux Virtual Server : groupe de serveurs apparaissant comme un seul serveur pour les clients

– Keepalived : logiciel de routage écrit en C et basé sur IPVS et LVS

● Permet la reprise sur échec (via mécanisme de VIP et protocole VRRP), et la répartition de charge

● Surveillance des services prise en charge en interne par requêtes TCP (possibilité de scripts externes)

● Répartition de charge impose des contraintes réseau lourdes

– Piranha : Service proche de keepalived, mais basé sur des signaux « je suis en vie » (heartbeat) échangés entre nœuds.

● Propose une interface d'administration● Présent en standard sur Red-Hat

Page 19: Architecture d'annuaire hautement disponible avec OpenLDAP

21 mai 2014 Solutions Linux 2014 19

Assemblons tous ces composants

Page 20: Architecture d'annuaire hautement disponible avec OpenLDAP

21 mai 2014 Solutions Linux 2014 20

Quelques exemples d'architectures d'annuaires

Quelques chiffres

● VM vmware● 4 CPU● 6Go de RAM● Réseau : 1Gbit/s● + 80 000 comptes

Performances minimum● 5 écritures/s● 1000 lectures/s

Page 21: Architecture d'annuaire hautement disponible avec OpenLDAP

21 mai 2014 Solutions Linux 2014 21

Quelques exemples d'architectures d'annuaires

Quelques chiffres

● VM vmware● 2 VCPU (1,5Ghz)● 4Go de RAM● Réseau : 100Mbits/s

● Backend bdb ● 120 000 comptes● 21 écritures/s● Lectures : facteur 50

Page 22: Architecture d'annuaire hautement disponible avec OpenLDAP

21 mai 2014 Solutions Linux 2014 22

C'est la fin... Bientôt !

Page 23: Architecture d'annuaire hautement disponible avec OpenLDAP

21 mai 2014 Solutions Linux 2014 23

Conclusion

● L'objectif est rempli :– 1 solution d'annuaire de niveau

professionnel...

– capable de gérer la réplication

– 4 solutions de haute disponibilité compatibles et performantes

● Le tout uniquement avec de l'open-source !

Page 24: Architecture d'annuaire hautement disponible avec OpenLDAP

21 mai 2014 Solutions Linux 2014 24

Remerciements

● Un grand merci !

– À l'organisation de Solutions Linux

– À Linagora

– À la communauté OpenLDAP● Restons connectés

– IRC: stryg #lemonldap-ng@freenode

– Mail: [email protected]

Page 25: Architecture d'annuaire hautement disponible avec OpenLDAP

21 mai 2014 Solutions Linux 2014 25

Des questions ?