Rocks

Fiche logiciel validé
  • Création ou MAJ importante : 09/01/13
  • Correction mineure : 07/10/13
Mots-clés
Pour aller plus loin
  • Fiches logiciel PLUME connexes : , ,

Rocks : système de gestion de grappes de calcul

  • Site web
  • Système : UNIX-like
  • Téléchargement
  • Version évaluée : Rocks 5.4.3
  • Langue(s) de l'interface : anglais
  • Licence : autre

    C'est une licence type open source, avec un copyright, qui doit être reproduit dans tout produit dérivé, demandant simplement de créditer l'Université de Californie à San Diego (UCSD) et le groupe rockscluster qu'elle héberge, de l'origine du travail. Le logo est aussi sous copyright.

Description
Fonctionnalités générales

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.

Autres fonctionnalités
  • Virtualisation possible du frontal et/ou des nœuds de calcul avec Xen 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.
Contexte d'utilisation dans mon laboratoire/service

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.

Limitations, difficultés, fonctionnalités importantes non couvertes
  1. 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).
  1. 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.
  1. 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.
  1. 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.
Environnement du logiciel
Distributions dans lesquelles ce logiciel est intégré

Ce logiciel est intégré dans une distribution linux Centos 5.X spécifique.
La dernière version, mamba (05/2012), est distribuée en deux variantes, 5.5, basée sur CentOS 5.8, et 6.0, basée sur CentOS 6.2.

Plates-formes

Matériel :

Configuration minimale pour le frontal et les nœuds de calcul :

  • Processeur à architecture X86 ou X86_64
  • 2 ports ethernet pour le frontal et 1 seul pour les nœuds
  • 30 Go de disque dur
  • 1 Go de RAM

Logiciel :

  • Page de téléchargement des disques d'installation : http://www.rocksclusters.org/wordpress/?page_id=271
  • Pour une version donnée (version 5.4.3), il faut télécharger au minimum :
    • Kernel/Boot Roll
    • Base Roll
    • OS Roll (disk1 et disk2)
    • Puis optionnellement pour les différents Rolls (disk3, disk4, disk5, disk6, disk7 et disk8)
  • Installer Rocks sur le frontend et les nœuds de calcul en suivant cette procédure: http://www.rocksclusters.org/roll-documentation/base/5.1/getting-started.html. A noter qu'il faut impérativement choisir
    • kernel : to be able to kickstart compute nodes
    • base : to setup Rocks
    • jumpstart : to be able to JumpStart compute nodes and NAS appliances
    • OS : provides the base OS bits
Logiciels connexes
  • bio: logiciels de Bioinformatique
  • ganglia: système de supervision des performances d'un cluster
  • hpc: outils logiciels pour l'exécution de programmes en environnement parallèle (MPI, PVM...)
  • perl perl
  • python python (2.7 et 3.x)
  • sge: gestionnaire de lancements de jobs de calcul Sun Grid Engine (Open Grid Scheduler)
  • torque: gestionnaire de lancements de jobs de calcul Torque+Maui
  • Xen Xen: environnement de virtualisation pour créer des machines virtuelles sur les nœuds de calcul
  • KVM : environnement de virtualisation pour créer des machines virtuelles sur les nœuds de calcul
Autres logiciels aux fonctionnalités équivalentes
Environnement de développement
Type de structure associée au développement

UCSD (Université de San Diego)

Eléments de pérennité

Bien que la distribution Rocks ait une certaine ancienneté (plus de dix ans), qu'elle ait connu un développement continu, qu'elle ait été largement adoptée un peu partout dans le monde, qu'elle ait divers contributeurs en dehors de L'université de San Diego, la pérennité n'est néanmoins pas assurée. Les développeurs à l'UCSD, en particulier le leader du groupe, Philip Papadopoulos, sont payés sur des financements qu'ils obtiennent de diverses sources, par exemple la NSF, comme souvent aux Etats-Unis.

En Mars 2011, deux des principaux développeurs du groupe, Greg Bruno et Mason J. Katz, ont quitté le projet pour rejoindre une entreprise commerciale, StackIQ, basée aussi à San Diego, qui développe des produits commerciaux développés autour de Rocks Cluster. Suite à des questions sur la liste de diffusion concernant l'avenir du projet, Philip Ppadopoulos a répondu franchement qu'il dépendait des financements qu'il pouvait trouver, qu'il avait un emprunt pour sa maison, et que s'il ne trouvait plus de financement, il serait obligé de trouver un emploi ailleurs. Il est lui-même actionnaire de StackIQ.

Actuellement, il ne doit plus y avoir que deux développeurs à l'UCSD, Philip Papadopoulos et un développeur plus récent. StackIQ a été le premier à sortir une version de Rocks basée sur CentOS 6.x. Néanmoins, le développement à l'UCSD a continué et Philip Papadopoulos a réussi à sortir sa version basée sur CentOS 6.2, mamba, en mai dernier.

Pour l'instant, il n'y a pas de signes comme quoi il serait mis un terme au projet à l'UCSD. La solution Rocks est développée pour les besoins internes à l'Université.

A noter que StackIQ propose une version gratuite, jusqu'à 16 nœuds, de son produit commercial.

Références d'utilisateurs institutionnels

Cette distribution HPC est utilisée par de nombreux laboratoires et institutions dans le monde et en France. Il y a une page pour enregistrer son cluster. N'hésitez pas à enregistrer le vôtre pour assurer la pérennité du projet (qui dépend des financements qu'il peut obtenir, NFS ou autres..., qui dépendent eux-mêmes de la diffusion du logiciel prouvant son utilité) : http://www.rocksclusters.org/rocks-register

Environnement utilisateur