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

Architecture d'annuaire hautement disponible avec OpenLDAP

Nov 28, 2014

Download

Technology

linagora

Présentation donnée lors du salon Solutions Linux 2014 par David COUTADEUR, Intégrateur LinID, Linagora.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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 ?