FLASH INFORMATIQUE FI



Beowulf-me !




Vittoria REZZONICO


Cluster est un terme générique qui dénote un groupe d’ordinateurs (ferme ou grappe) combinés dans un système par du réseau et des logiciels. Ce système est destiné à résoudre une tâche.
Théoriquement donc, deux ordinateurs reliés par Ethernet utilisés pour résoudre un certain problème forment un cluster. Les clusters peuvent être utilisés pour des services Haute Disponibilité (High Availability, HA, par exemple pour des services critiques comme le mail ou l’authentification) ou bien pour du calcul à haute performance (HPC), pour pouvoir mettre à disposition plus de puissance de calcul que l’on ne pourrait avoir avec une seule machine. Je vais me focaliser dans cette suite d’articles plutôt sur les clusters utilisés pour le calcul. Néanmoins, certaines parties peuvent très bien être appliquées aux clusters HA.
La course aux Gigahertz étant en stagnation, la façon la plus efficace d’augmenter la performance est de permettre d’exécuter plus d’opérations en même temps. Ceci peut être résolu de plusieurs façons. La première consiste en l’exécution de plusieurs opérations à la fois par le biais du calcul vectoriel. Ensuite, on a pu remarquer l’apparition de processeurs multi-core (deux ou quatre coeurs) homogènes, et dernièrement des processeurs avec coeurs hétérogènes (IBM Cell - PlayStation 3). Mais la façon la plus simple est de fédérer plusieurs machines et de les connecter par du réseau rapide.

IBM Cell et PlayStation3

Un processeur Cell est un processeur comportant plusieurs coeurs, mais plutôt que des coeurs identiques, ses concepteurs ont choisi une approche alternative : 1 coeur principal et 8 coeurs synergiques (spécifiques). Le coeur principal (PPE) est un processeur de type PowerPC et est relativement standard. Chacun des coeurs spécifiques (SPE), se charge des calculs complexes qui lui envoient le PPE.
La PlayStation3 contient un processeur de type Cell, mais deux des coeurs spécifiques ne sont pas accessibles lorsqu’on veut faire du calcul en installant Linux sur la PS3.

Regardons les statistiques du site qui classe les 500 plus puissants ordinateurs au monde. On remarque que le 41% de ces machines comporte une connectivité de type Ethernet. Le 78% est basé sur un système d’exploitation de type Linux.
Un cluster Beowulf est un cluster à performance échelonnable basé sur du hardware courant, avec un réseau privé qui connecte les différents noeuds du cluster et avec GNU/Linux comme système d’exploitation. On peut donc augmenter la puissance d’un cluster Beowulf juste en rajoutant des noeuds supplémentaires. De plus, un cluster Beowulf est utilisé pour du HPC et jamais pour du HA.
Il y a plusieurs classes de clusters. Les clusters de classe I sont composés de hardware commun et pas cher. Ils utilisent de la technologie standard comme IDE, SCSI, SATA et Ethernet. Les clusters de classe II sont plus chers et comportent du matériel spécialisé, comme un système de connectivité Myrinet ou InfiniBand.
Dans la partie qui suit, je vais décrire le déploiement d’un cluster Beowulf.

Structure d’un cluster

Dans le plus simple des cas, un cluster Beowulf est composé d’un noeud maître (Master) et de noeuds de calcul (voir fig. 1).

JPEG - 5.1 ko
fig. 1
Cluster composé d’un maître et de noeuds

Il se peut que le noeud maître soit en fait deux noeuds : un frontend, utilisé par les utilisateurs pour soumettre les jobs, et un serveur, qui contient les services tels que dhcp, tftp, nfs et éventuellement un serveur http et tout ce qui orbite autour (voir fig. 2).

JPEG - 5.9 ko
fig. 2
Cluster composé d’un frontend, d’un serveur et de noeuds

TFTP

Le Trivial File Transfer Protocol (tools.ietf.org/html/rfc1350) est utilisé au démarrage des clients pour leur envoyer le noyau sur lequel ils vont démarrer. Comme son nom le dit, il est trivial. Plus en détail, il ne peut pas afficher le contenu des répertoires, il ne dispose pas d’un mécanisme d’authentification. Il permet juste d’envoyer et de recevoir des fichiers par le réseau.

Distributions Live pour des clusters

La façon la plus simple est de ne rien installer sur les machines et d’utiliser une solution de type LiveCD. On insère le CD dans le noeud maître, puis on démarre dessus. Ensuite, on démarre par PXE les autres noeuds. On a ainsi un cluster instantané, comme les nouilles. Le noeud maître contient donc un serveur DHCP, un serveur tftp pour fournir les noyaux aux noeuds et un serveur NFS pour qu’ils puissent monter leur racine. Voici une petite liste de distributions Live :

PXE

Le PXE (Preboot eXecution Environment) est un environnement qui permet à un ordinateur de démarrer en utilisant une carte réseau. On ne dépend donc pas des disques locaux.
Le firmware de la carte réseau qui sait faire du PXE cherche un serveur DHCP afin de découvrir des informations sur les serveurs de démarrage disponibles. Il interprète la réponse du serveur DHCP et va chercher un fichier à démarrer sur le serveur indiqué par le DHCP. Il va télécharger ce fichier par TFTP, et l’exécuter.

DHCP

DHCP (Dynamic Host Configuration Protocol) est un protocole d’attribution d’adresses IP. Dans un cluster de type Beowulf, il faudra à un certain moment que le noeud maître (serveur) distribue des adresses IP aux autres noeuds (clients). Si vous voulez expérimenter avec un serveur DHCP, ne connectez pas votre système au reste du monde, puisqu’il pourrait prendre le contrôle des ordinateurs hors cluster qui sont autour de lui en lui distribuant des adresses IP. Donc si vous souhaitez tester une des distributions préalablement décrites, si vous ne savez pas exactement ce qu’elles font, ne branchez surtout pas vos machines sur EPNET !

NFS

NFS (Network File System) est un protocole de système de fichiers à accès distant. Lors de l’installation d’un cluster, NFS est utilisé à l’installation des clients pour avoir un répertoire racine après avoir reçu le noyau par tftp.

Distributions Mosix

MOSIX est un système de répartition des charges. Il permet à une application lancée localement de tourner sur des noeuds autres que le noeud depuis lequel elle a été lancée, ceci par un système de migration des processus (mais pas des threads) d’une machine chargée à une machine non chargée.En 2002, MOSIX est devenu propriétaire, et un fork Open Source a vu le jour : OpenMosix. Malheureusement, le futur d’OpenMosix est incertain. Il existe néanmoins des distributions live pour clusters qui fournissent OpenMosix.

  • ClusterKnoppix (clusterknoppix.sw.be/) est une Knoppix modifiée basée sur un noyau OpenMosix. Malheureusement, les dernières activités datent de 2004, donc les drivers ne sont pas tout à fait à jour. De plus, il est nécessaire de démarrer le Knoppix OpenMosix Terminal Server pour avoir un master qui marche.
  • Quantian OS (dirk.eddelbuettel.com/quantian.html) est une distribution basée sur ClusterKnoppix, avec en plus des logiciels scientifiques tels que R, Octave et les CERNlibs. Basée sur Knoppix 4.02, elle est fournie sur un support DVD à cause de la multitude de logiciels scientifiques disponibles. OpenMosix n’est disponible qu’avec un noyau 2.4. Il faut donc au démarrage du DVD spécifier à l’entrée boot : linux24 (fig. 3).
JPEG - 2.5 ko
fig. 3
Menu de démarrage de Quantian

Ensuite il est nécessaire de démarrer le OpenMosix Terminal Server (fig. 4).

JPEG - 6.3 ko
fig. 4
Démarrage du OpenMosix Knoppix terminal server
  • CHAOS (www.midnightcode.org/project...) est une mini-distribution qui tient sur 6MB (fig. 5). Elle comporte un noyau OpenMosix, un serveur DHCP, tftp, mais rien d’autre.
JPEG - 4.9 ko
fig. 5
Démarrage de CHAOS

Son avantage principal sur les deux précédentes, c’est le fait qu’au démarrage on peut choisir le type de noeud : master, noeud esclave, ou bien noeud de calcul SETI@home. On a de plus le choix sur les services qui tourneront sur les noeuds (fig. 6).

JPEG - 5.6 ko
fig. 6
Menu de démarrage de CHAOS

Distributions MPI

MPI (Message Passing Interface) est un protocole de communication indépendant du langage. Ses buts sont la performance, la scalabilité et la portabilité. Il a eu du succès en atteignant ses buts, mais il est de très bas niveau et donc dur à utiliser. MPI n’est pas un standard reconnu, mais plutôt un standard de facto. La plupart des implémentations de MPI consistent dans des fonctions Fortran, C et C++. On peut donc utiliser MPI depuis n’importe quel langage interfaçable avec ces trois. Les principales distributions Live qui fournissent un environnement MPI sont ParallelKnoppix et BCCD :

JPEG - 6.4 ko
fig. 7
Écran de login d’un noeud de ParallelKnoppix
  • ParallelKnoppix, qui est le correspondant MPI de ClusterKnoppix. Une fois démarré sur le CDRom, il suffit de suivre les instructions présentes à la page Tutorial pour avoir à disposition un cluster pour du calcul parallèle.
JPEG - 5.9 ko
fig. 8
Démarrage de BCCD
  • BCCD, une distribution qui a du OpenMosix, PVM du LAM et du MPICH. Malheureusement cette distribution étant basée sur un noyau 2.4, les drivers ne sont pas à jour.
JPEG - 8.1 ko
fig. 9
Options de BCCD

Conclusion

Les distributions Live sont une bonne façon de s’initier aux clusters HPC et d’avoir à disposition un Cluster Beowulf qui marche en peu de temps. Parmi les distributions Live que j’ai testées pour cet article, celles qui m’ont particulièrement impressionnée sont :

  • CHAOS pour la taille minimale du CD et pour la facilité de configuration : il suffit de passer le bon paramètre au démarrage du noeud master.
  • ParallelKnoppix aussi pour la facilité de configuration. De plus parmis les distributions testées c’était la seule qui démarre sur un noyau 2.6.

Et maintenant, on installe

Les distributions précédentes étant des Live CDs, en mettant le CDRom dans le lecteur CD du master vous n’avez pas vraiment installé un cluster, puisqu’au prochain reboot vous allez vous retrouver avec votre système d’origine. Maintenant je vais décrire brièvement ROCKS : une distribution spécifique cluster qui s’installe sur le disque dur du master, et ensuite, sur celui des noeuds. Je vais décrire uniquement ROCKS parce qu’elle est largement la plus répandue. De plus, c’est la seule distribution orientée cluster à être à la fois totalement libre et à jour, la communauté d’utilisateurs et développeurs étant large et vivante.
La dernière version de ROCKS est basé sur CentOS 4 update 5, mais on peut remplacer le système d’exploitation avec n’importe quelle distribution compatible Red Hat Enterprise Linux 4 (par exemple, Scientific Linux 4 update 5). Elle est téléchargeable en une collection de plusieurs CDs (4 réquis plus 3 optionnels), un DVD, ou bien à la carte. Les modules disponibles à la carte sont, à part le système de base nécessair et l’OS remplaçable, des utilitaires de sécurité et une multitude d’outils de gestion de clusters, ainsi que des outils adaptés aux différents domaines du calcul scientifique.
La documentation sur le site de ROCKS est claire et complète, je ne vais donc pas m’y attarder ici.
Malheureusement, Rocks faisant tout automatiquement, l’administrateur peut ne pas être d’accord avec certaines décisions des développeurs, ou peut se perdre dans la logique que comporte cette distribution lorsqu’il veut plus de contrôle sur le cluster. De plus, parfois on veut avoir un frontend et un serveur et non pas un unique master (voir fig. 2).
Rocks peut donc ne pas être adaptée à vos besoins pour différentes raisons. Les services utilisés, la distribution sur laquelle Rocks est basée, ou, tout simplement, vous avez envie d’apprendre. Souvent la solution la plus utilisée par des administrateurs système est : do it yourself.

Do it yourself

L’installation manuelle d’un cluster se réduit à trois actions : installer le master, installer un noeud et répliquer le noeud. Si on veut un serveur en plus du master il y aussi l’action d’installer le serveur qui s’ajoute.
Je vais pour cette fois considérer uniquement une installation avec un frontend et des noeuds, pour simplifier. Une fois installé le master, il faut décider de la stratégie d’installation des noeuds. La stratégie dépend de comment vous êtes habitué à installer un grand nombre de machines (par exemple lors de l’aménagement de salles) et de votre façon de penser. Il y a en gros deux types d’installations :

Installation par image

D’abord, on installe un noeud. Ensuite, on fait une copie du noeud sur le master. Enfin, on déploie le noeud sur les machines restantes. Il existe des logiciels commerciaux pour faire ceci, par exemple Rembo (maintenant IBM Tivoli Provisioning Manager for OS Deployment. MondoRescue, un logiciel sous licence GPL, se prête aussi très bien. Des solutions comme des dd à travers le réseau ou des .tar.gz décompactés par ssh font aussi très bien l’affaire.

Installation par directives

Chaque distribution a son système d’installation par directives : autoyast pour SuSE, kickstart pour les distributions basés RH et FAI pour les distributions basées Debian.
Ici on a appris comment avoir un cluster de calcul sans effort ni destruction. C’est bien sûr une solution facile pour ceux qui veulent expérimenter. Dans les prochains numéros, je vais couvrir différentes méthodes d’installation d’un cluster, que l’on peut adapter à ses besoins particuliers et grâce auxquelles on peut avoir le contrôle total du système.



Cherchez ...

- dans tous les Flash informatique
(entre 1986 et 2001: seulement sur les titres et auteurs)
- par mot-clé

Avertissement

Cette page est un article d'une publication de l'EPFL.
Le contenu et certains liens ne sont peut-être plus d'actualité.

Responsabilité

Les articles n'engagent que leurs auteurs, sauf ceux qui concernent de façon évidente des prestations officielles (sous la responsabilité du DIT ou d'autres entités). Toute reproduction, même partielle, n'est autorisée qu'avec l'accord de la rédaction et des auteurs.


Archives sur clé USB

Le Flash informatique ne paraîtra plus. Le dernier numéro est daté de décembre 2013.

Taguage des articles

Depuis 2010, pour aider le lecteur, les articles sont taggués:
  •   tout public
    que vous soyiez utilisateur occasionnel du PC familial, ou bien simplement propriétaire d'un iPhone, lisez l'article marqué tout public, vous y apprendrez plein de choses qui vous permettront de mieux appréhender ces technologies qui envahissent votre quotidien
  •   public averti
    l'article parle de concepts techniques, mais à la portée de toute personne intéressée par les dessous des nouvelles technologies
  •   expert
    le sujet abordé n'intéresse que peu de lecteurs, mais ceux-là seront ravis d'approfondir un thème, d'en savoir plus sur un nouveau langage.