Architecture d'annuaire hautement disponible avec OpenLDAP
-
Upload
linagora -
Category
Technology
-
view
290 -
download
2
description
Transcript of Architecture d'annuaire hautement disponible avec OpenLDAP
architecture d'annuaire hautement disponible avec OpenLDAP
Solutions Linux – 21/05/2014David Coutadeur
21 mai 2014 Solutions Linux 2014 2
À propos du conférencier
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
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
21 mai 2014 Solutions Linux 2014 5
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
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
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
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é +++ +++ + ++ -
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 !
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
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
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 !
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
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...
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
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
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
21 mai 2014 Solutions Linux 2014 19
Assemblons tous ces composants
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
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
21 mai 2014 Solutions Linux 2014 22
C'est la fin... Bientôt !
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 !
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]
21 mai 2014 Solutions Linux 2014 25
Des questions ?