Le LHC s’appuie sur OpenStack pour percer les mystères de l’univers
Produisant des données qui sont analysées par 150 équipes de chercheurs, l’accélérateur de particules du CERN devait être relié à un cloud privé avec des ressources à la demande, pour ne pas submerger les informaticiens sous les tickets.
L’informatique qui analyse les données du LHC (« Large Hadron Collider ») fonctionne sous OpenStack et bientôt sous Kubernetes. Les sept techniciens qui fournissent de la puissance de calcul aux scientifiques ont fait ce choix pour suivre le rythme d’expériences dont la complexité s’intensifie à chaque redémarrage.
« Le LHC a un cycle de production de trois ans, suivi d’une mise en sommeil de deux ans durant laquelle on améliore l’intensité de son énergie afin de produire des données avec une plus grande sensibilité. Ensuite, lorsqu’il redémarre, les traitements doivent bénéficier de ce surplus d’informations pour générer des statistiques plus détaillées », explique Tim Bell, qui encadre le groupe chargé des calculs et du monitoring au sein de la DSI du CERN.
« Sur le plan informatique, notre difficulté est de parvenir à fournir à chaque fois suffisamment de puissance aux 150 équipes scientifiques du monde entier qui lancent leurs applications d’analyse sur notre datacenter. »
Le Large Hadron Collisionner du CERN, l’accélérateur de particules le plus grand et le plus puissant du monde, vise à percer les secrets de l’univers. Parmi les expériences qui y sont menées, les applications des chercheurs s’intéressent en particulier à comprendre comment fonctionne la matière noire.
Le défi d’exécuter des applications scientifiques sans figer les infrastructures
Tim Bell ne parle pas du nombre de serveurs qui compose son datacenter mais plutôt de la quantité de cœurs disponibles pour exécuter les codes des chercheurs : 300.000. Lorsque ce centre informatique fut créé au début des années 2000, des machines entières étaient dédiées à des groupes de chercheurs. Cette conception figée a rapidement montré ses limites car la croissance de puissance nécessaire n’avait rien à voir d’une application à l’autre. Pour l’équipe de Tim Bell, répondre sempiternellement à des tickets qui demandent la configuration d’un nouveau lot de serveurs était devenu un enfer.
Tim BellCERN
« Pour nous, la solution était d’utiliser des machines virtuelles, car il est simple de définir leur nombre de cœurs, quantité de RAM et taille de stockage à la demande. L’objectif était de proposer aux scientifiques un portail à partir duquel ils pouvaient définir eux-mêmes les serveurs dont ils avaient besoin selon des quotas qui leur sont attribués. »
Il précise que ces applications, qui travaillent sur des données froides, ont rarement un caractère d’urgence : « bien entendu, les processus qui enregistrent des données produites dans le LHC doivent être exécutées en priorité. Pour le reste, les applications sont mises dans une file d’attente depuis le portail et ne sont lancées que lorsqu’il y a des ressources disponibles. Cela signifie que lorsque deux applications ont chacune besoin de tous les cœurs et de toute la RAM d’un serveur physique, nous n’avons plus besoin de déployer deux machines. »
OpenStack en guise de plateforme de cloud privé personnalisable
Pour concrétiser ce projet, l’équipe informatique déploie OpenStack en 2011, une plateforme Open Source de cloud privé que certains scientifiques avaient déjà testée et approuvée. A l’époque, néanmoins, ce logiciel et les nombreux modules qui le composent sont loin d’être parés pour la production.
« Nous avons mis deux ans à évaluer le code d’OpenStack, le personnaliser et le déployer. Les chercheurs ont pu commencer à utiliser la plateforme en 2013. Ensuite, nous nous sommes fixés de faire évoluer le logiciel tous les six mois. Mais jusqu’en 2015, OpenStack était si peu mature que nous ne pouvions pas le mettre à jour : nous devions à chaque fois mettre en route un nouveau cloud à côté, avec les dernières versions des modules », dit Tim Bell.
Il précise ne pas avoir été découragé d’utiliser OpenStack, car aucune autre plateforme de cloud privé du marché ne lui aurait permis d’atteindre le niveau de personnalisation requis.
A présent, l’équipe peut mettre à jour OpenStack sans devoir redéployer les machines virtuelles qui contiennent les applications scientifiques. Selon Tim Bell, il faut en moyenne une petite semaine à l’équipe pour compiler, installer, tester et mettre en production chacun des 14 modules qui constituent sa plateforme OpenStack. Ce délai peut dépasser la semaine pour les modules les plus complexes, notamment Nova qui indexe les ressources de calcul.
A l’initiative de Magnum
Les informaticiens du CERN ne sont pas de simples utilisateurs. Ils améliorent eux-mêmes le code d’OpenStack et partagent leurs patchs avec la communauté Red Hat, l’éditeur de leur distribution.
Tim BellCERN
« Pour les fonctions jugées non critiques, nous avons attendu que la communauté produise un module stable avant de le déployer ; c’est par exemple le cas du système de stockage Ceph. En revanche, nous sommes intervenus auprès d’elle quand des fonctionnalités dont nous avions besoin n’existaient pas encore. Nous sommes par exemple à l’initiative du module Magnum pour déployer des clusters Kubernetes en un clic », révèle le chef d’équipe.
« Nous savions pertinemment que si rien n’avait été fait au niveau de la communauté pour intégrer Kubernetes à OpenStack, des groupes de chercheurs auraient eux-mêmes inventé des mécanismes pour y parvenir. Et cela aurait de nouveau compliqué notre travail d’administration système. Pour nous, il était donc urgent d’établir un standard. »
Kubernetes pour améliorer la souplesse de déploiement au sein d’OpenStack
Encore en test, Magnum ne sera disponible pour les scientifiques qu’en 2021, au moment du prochain redémarrage du LHC. Kubernetes apporte plus de souplesse à l’équipe informatique, qui peut mettre à jour les systèmes d’exploitation sans imposer aux chercheurs de repackager leurs applications. Ces derniers en tirent aussi parti puisqu’ils peuvent, grâce aux containers, découper leurs projets en autant de modules qu’ils ont d’équipes scientifiques dédiées.
« Nous proposons d’installer des containers soit dans des VMs, soit en bare metal. Le bare metal est plus adapté aux applications qui ont besoin de performances, car on évite de passer par une machine virtuelle qui consomme 2 % du temps de calcul. En revanche, comme il n’est pas possible de fixer la quantité de ressources que va consommer un container, nous préférons circonscrire les petites applications containerisées dans des VMs pour éviter qu’elles s’accaparent à un moment donné tous les cœurs d’un serveur physique. »
A date, le cloud privé du LHC exécute 10.000 hyperviseurs, 34.000 machines virtuelles et 450 clusters Kubernetes. Si ceux-ci sont minoritaires, ce serait surtout parce que les groupes de chercheurs sont encore peu nombreux à avoir converti leurs applications en containers.
A noter que, même lorsque toutes les applications existeront au format container, Tim Bell exclut d’utiliser Kubernetes sans OpenStack. Ce dernier apporte en effet deux fonctions essentielles : le portail et les machines virtuelles.
Demain, plus de GPU, d’IoT et d’Edge Computing
Tim Bell tire un bilan positif d’OpenStack et entend encore s’en servir pour innover. Plusieurs projets sont à l’étude et devraient contribuer à améliorer la plateforme dans les mois, ou les années à venir.
« OpenStack a rempli l’objectif, à savoir incarner une plateforme de fourniture d’infrastructures à la demande aux physiciens. Sur le plan de l’administration système, il nous reste cependant à trouver comment automatiser l’extinction des ressources virtuelles quand elles ne sont plus utilisées par une application. »
« Concernant l’avenir, je pense que l’un des domaines les plus prometteurs est l’utilisation des GPU pour accélérer les calculs. Le support actuel de ces infrastructures dans OpenStack est basique. Nous regardons par exemple comment packager dans OpenStack Kubernetes et TensorFlow, le moteur de machine learning qui tire parti des GPU. »
« Les autres domaines auxquels nous nous intéressons sont l’IoT et le Edge Computing. En effet, il peut être pertinent d’avoir des sondes reliées à une puissance de calcul directement greffées sur le LHC et capable de filtrer les informations des collisions de particules avant qu’elles ne soient stockées. Dans quel but ? Nous l’ignorons encore, c’est pour cela que nous sommes un centre de recherche », conclut-il, amusé.