Rocks
Rocks est un système complet spécialisé pour la gestion des grappes de calcul (clusters), basé sur la distribution Linux CentOS.
La distribution est très facile à installer et inclut tous les outils nécessaires au fonctionnement et au déploiement d'un cluster. L'architecture comprend un frontal et des nœuds de calcul connectés dans un sous réseau privé (cf ce schéma). La distribution s'installe sur le frontal (noyau Linux CentOS 5.x, récemment 6.x) et peut être configurée avec différents paquets logiciels (qui sont appelés "Rolls"). La configuration du cluster est maintenue à l'aide d'une base de données MySQL.
A partir d'une configuration logicielle globale pour un groupe de nœuds, Rocks permet de découvrir et d'installer automatiquement les différents nœuds du cluster. Il utilise pour cela une solution développée en interne, appelée "Avalanche", basée sur PXE, et utilisant le Peer to Peer pour ne pas saturer la bande passante. Il est ainsi possible de déployer des centaines de nœuds en parallèle. La solution est prévue pour des clusters de milliers de nœuds. Différents outils permettent de propager des commandes et des configurations à tous les nœuds simultanément. Rocks supporte des configurations de nœuds hétérogènes. Le monitoring peut être réalisé à partir de pages Web (Roll ganglia). La documentation est complète et on trouve beaucoup d'informations complémentaires sur le wiki ou sur une liste de diffusion très active.
- Virtualisation possible du frontal et/ou des nœuds de calcul avec
Xen. A partir de la version "mamba", c'est Linux KVM qui est utilisé par défaut.
- Distribution Linux autre que CentOS possible (mais compatible RHEL, type Scientific Linux, Oracle Entreprise Linux, ...), y compris Solaris, pour les nœuds.
- Accès console sur les nœuds.
- Volumes GFS.
- Supporte plusieurs sous-réseaux.
- Gestion Firewall
- Ordonnanceurs Open-Grid-Engine, Torque.
- Post-installation sur mesure via des fichiers XML.
Nous avons installé ce système sur une grappe de 32 serveurs. Le fonctionnement est assez robuste pour être utilisé actuellement par plus d'une dizaine de personnes.
- Ne supporte pas le protocole NIS pour les nœuds. L'authentification est assurée par un service appelé 411 (n° des renseignements aux US), dérivé de NIS, qui distribue les fichiers passwd, shadow, group, autofs... sur les nœuds, pour une meilleure "scalabilité". Il est cependant possible d'utiliser un système d'authentification extérieur (annuaire LDAP ou Active Directory commun à tout un laboratoire par exemple).
- Après une installation très facile, la principale difficulté est probablement de maîtriser tous les éléments logiciels qui ont été installés automatiquement, SGE ou Torque, Ganglia, etc... Il faut alors se plonger dans les documentations pour configurer par exemple correctement le gestionnaire de travaux pour l'adapter à son environnement de laboratoire.
- Une autre difficulté est qu'il n'est (n'était ?) pas possible de mettre à jour le système par un 'yum update', car cela risquait de casser la configuration du cluster. Pour cela, le fichier de configuration des dépôts était laissé intentionnellement vide, ce qui ne permettait pas non plus d'installer un paquetage additionnel. Il fallait alors récupérer la configuration des dépôts sur une autre station CentOS. Des efforts ont été faits depuis un certain temps par les développeurs pour isoler les paquetages critiques (MySQL, ...) dans une "Rocks Foundation" (en général installée sous /opt), des paquetages système, permettant de mettre à jour ceux-ci, mais aussi d'installer des versions de paquetages plus récentes dans Rocks Foundation (par exemple Python 2.7, par rapport à la vieille version 2.4 de base dans CentOS 5.x). La philosophie de Rocks, comme l'installation est très rapide, est de réinstaller avec la dernière version pour mettre à jour.
- Autre difficulté, qui survient rarement, est qu'en cas de changement d'adresse IP (publique) de votre cluster, il est presque obligatoire de le réinstaller. L'adresse IP est en effet dispersée dans de nombreux fichiers de configuration, sur le cluster et sur les nœuds, ainsi que dans la base MySQL, et il est très difficile de retrouver tous les endroits où elle est enregistrée et de faire les modifications correctes.