DB GT CF Grid ActiveMQ pour le grand collisionneur de hadrons (LHC) Lionel Cons Grid Group Information Department Journée de la communauté FUSE, Paris, 2010 CERN IT Department CH-1211 Geneva 23 Switzerland www.cern.ch/it
20 pays membres ActiveMQ @ CERN - 2
10 000 utilisateurs ActiveMQ @ CERN - 3
La mission du CERN L'Organisation assure la collaboration entre États européens pour les recherches nucléaires de caractère purement scientifique et fondamental [ ] Recherche : Chercher des réponses aux questions concernant l Univers Technologie : Faire reculer les limites de la technologie Collaboration : Rassembler les nations au travers de la science Education : Former les scientifiques de demain ActiveMQ @ CERN - 4
Le berceau du web ActiveMQ @ CERN - 5
Que fait-on au CERN? http://angelsanddemons.cern.ch/fr ActiveMQ @ CERN - 6
Physique des particules ActiveMQ @ CERN - 7
CERN, Genève & Mont-Blanc ActiveMQ @ CERN - 8
Le tunnel du LHC http://cern.ch/public/fr/lhc/facts-fr.html ActiveMQ @ CERN - 9
CMS ActiveMQ @ CERN - 10
ATLAS ActiveMQ @ CERN - 11
Collisions de particules ActiveMQ @ CERN - 12
Données à analyser (ATLAS) 70 To/s (100k CD/s) 350 Mo/s (½ CD/s) ActiveMQ @ CERN - 13
La grille de calcul (théorie) ActiveMQ @ CERN - 14
La grille de calcul (réalité) ActiveMQ @ CERN - 15
Technologie de la grille Utilisation de protocoles et standards libres programmes et bibliothèques open source Financement partiel par des projets européens EDG, EGEE, EGI, EMI... avec des partenaires industriels Tout le code est disponible et open source Tous les résultats sont publics ActiveMQ @ CERN - 16
Grid Middleware ActiveMQ @ CERN - 17
Utilisation de la grille (théorie) Site A Site B ActiveMQ @ CERN - 18
Utilisation de la grille (réalité) ActiveMQ @ CERN - 19
Message-Oriented Middleware L utilisation de messages simplifie le middleware de la grille le rend plus efficace (communications asynchrones) permet le partage d informations entre divers composants Première étape (EGEE) outils de monitoring de la grille Deuxième étape (EMI) autres composants du middleware ActiveMQ @ CERN - 20
Service Availability Monitoring (SAM) ActiveMQ @ CERN - 21
Site Wide Area Testing (SWAT) Distributed Tests Consumer Database SAM ActiveMQ Summary Exporter Web frontend ActiveMQ @ CERN - 22
Environnement de production 4 brokers sur 3 sites (Suisse, Grèce et Croatie) Connectés en anneau network of brokers 2k destinations majoritairement virtuelles (virtual topics) >15k clients à travers le monde 100 consommateurs 10 nouvelles sessions par seconde et par broker 100 messages par seconde et par broker 10 Go de messages par jour et par broker ActiveMQ @ CERN - 23
Technologie Principalement STOMP clients en Python et Perl (et un peu PHP) OpenSSL pour l authentification (certificats X.509) Un peu de OpenWire & Java Format de message simple : ~ JSON OpenSSL pour chiffrer et signer certains messages ActiveMQ @ CERN - 24
Outils Récupération d informations via JMX utilisation de jmx4perl Script pour récupérer des messages en attente broker système de fichiers Script pour renvoyer des messages système de fichiers broker Script pour détruire sélectivement les destinations ActiveMQ @ CERN - 25
Leçons - STOMP + Simple à utiliser et léger + Disponible pour tous les langages : Perl, Python... - Très difficile d écrire des programmes fiables + En théorie indépendant du broker - En pratique dépendant du broker - Spécification actuelle (1.0) très incomplète + Progrès récents pour une nouvelle spéc. (1.1) + participation active de développeurs ActiveMQ ActiveMQ @ CERN - 26
Leçons destinations virtuelles ++ Brique de base très utile... http://activemq.apache.org/virtual-destinations.html ActiveMQ @ CERN - 27
Leçons brokers en réseau + Facile à configurer et à utiliser + Permet de répartir la charge + Les producteurs et consommateurs se connectent à n importe quel endroit et ça marche (en théorie) - quelques limitations en pratique - C est une partie compliquée du code + beaucoup de bugs corrigés récemment - combien de bugs encore à trouver? = Sera complètement changé dans ActiveMQ 6 - Engendre du traffic supplémentaire entre brokers ActiveMQ @ CERN - 28
Leçons ActiveMQ + Base de code (partie centrale) solide + Beaucoup d options et d extensions - Trop d options et d extensions = il vaut mieux n utiliser que ce qui a déjà un test - Documentation parfois incomplète = il faut alors regarder le code (y compris les tests) + Il est facile d étendre la fonctionnalité (plugins) - Des lacunes dans le monitoring ActiveMQ @ CERN - 29
Monitoring Lemon (CERN) pour le monitoring du système Nagios pour le reste système : threads, sockets, fichiers ouverts... ActiveMQ : information via JMX, fichiers de log tests spécifiques : connecteurs, jmx4perl... Tests complets : producteurs consommateurs Nagios envoie des messages de test les consommateurs répondent les réponses sont analysées ActiveMQ @ CERN - 30
Nagios Broker Monitoring ActiveMQ @ CERN - 31
Nagios Broker Monitoring ActiveMQ @ CERN - 32
Advanced Monitoring ActiveMQ @ CERN - 33
Futur Plus d applications utilisant cette technologie plus de tout : clients, connections, messages, destinations... et besoins spécifiques... Plus de brokers, configurés différemment services adaptés à différents groupes d applications Peut-être des centaines de brokers Peut-être autre chose qu ActiveMQ 5.x ActiveMQ @ CERN - 34
Idée destination distante But : gérer de manière simple les interactions entre des brokers indépendants Solution : concept de destination distante (AMQP 1.0) agent qui transfère les messages ActiveMQ @ CERN - 35
Idée isolation via FBQ But : minimiser le code nécessaire pour envoyer des messages et le rendre indépendant de la technologie utilisée Solution : définir une abstraction de message utiliser le système de fichier pour stocker les messages Filesystem Based Queue (FBQ) avoir un message transfer agent (MTA), comme sendmail pour le courrier électronique ActiveMQ @ CERN - 36
Centre de Contrôle du CERN ActiveMQ @ CERN - 37
Programmes de contrôle ActiveMQ @ CERN - 38
Architecture générale ~50 Processes JAVA Process store / calc ~46K Subscriptions 200 Connections JMS ~80 Processes GUI In-house Middleware FrontEnd FESA FESA Computer ~2K Machines ~80K Parameters Devices / Hardware ActiveMQ @ CERN - 39
Exemple d utilisation Manager reads updates subscribe Request / Reply JMS subscribe GUI GUI GUI CMW writes send records STOMP Log Messages File Log Instance Registry Files DB CMW Log Instance set log level ActiveMQ @ CERN - 40
Environnement Exigences (pour le contrôle du LHC) jusqu à 10k msg/s sur 2k topics taille des messages : < 1 ko.. 5 Mo haute disponibilité : pas de messages = arrêt du faisceau Cluster ActiveMQ 41 millions de messages par jour 370 Go entrants & 2,6 To sortants par jour 7-10 k consommateurs, 7 k topics Java & OpenWire, C/C++ & STOMP ActiveMQ @ CERN - 41
Leçons simplicité = fiabilité Configuration simple pas de files d attente, seulement des topics pas de messages persistants pas d abonnements durables pas de politique de recouvrement des abonnements pas de consommateurs exclusifs Résultat = disponibilité de 100% jusqu à présent ActiveMQ @ CERN - 42
Leçons ActiveMQ + Produit stable qui répond aux attentes - Documentation parfois incomplète (ex. options de configuration) = il faut alors regarder le code + Les forums d utilisateurs sont très utiles - Des lacunes dans le monitoring ActiveMQ @ CERN - 43
Debugging & Monitoring Debugging Jconsole / JVisualVM ActiveMQ Advisory Topics Information JMX base de données SQLite Programmes de test Monitoring CPU, disques, réseau... JMX Topic Monitoring Tool : fournit un historique de la taille des messages et de la vitesse de réception ActiveMQ @ CERN - 44
Topic Monitoring Tool ActiveMQ @ CERN - 45
Pour conclure ActiveMQ est un composant important pour le CERN, à la fois pour le contrôle du LHC et pour les applications de la grille de calcul. ActiveMQ répond actuellement à nos attentes mais la demande augmente. Le CERN est intéressé par le partage d informations et d outils autour d ActiveMQ. ActiveMQ @ CERN - 46