ISET Rad s
Cours Unix/Linux
Chapitre 9 :
Clustering sous linux
1. Principe :
Le principe utilis dans le clustering consiste diminuer le temps d'ex cution d'une t che
en la fractionnant sur plusieurs machines. En clair, une t che r partie sur N machines
arrivera N fois plus vite terme que sur une seule. De cette mani re, tous les r seaux
peuvent tre transform s en cluster.
" Ce concept est fort simple mais il faut faire la distinction entre un syst me complet en
clustering et un logiciel en clustering.
"
Syst mes en clustering. Ici se sont les t ches qui sont r parties sur plusieurs machines.
Typiquement, les sites web important en terme de connexion comme Google (le
moteur de recherche) utilisent des clusters de serveurs web, qui ne sont ni plus ni
moins que des miroirs du sites, et qui traitent un ensemble de requ tes utilisateurs. Le
tout interconnect permet donc de traiter plus de demandes en un temps r duit.
" Logiciel en clustering. Ici c'est une seule et m me t che qui sera divis e et r partie sur
chaque machine du cluster. G n ralement se sont les clusters de calcul qui r pondent
ce besoin, comme les syst mes de conception d'effets sp ciaux qui demandent un
grand calcul de rendu et un norme espace de stockage.
"
Pourquoi tout le monde n'utilise-t-il pas un cluster puisque c'est performant et peu cher
? Le probl me principal provient des connexions entre les diff rentes machines. Pour
cr er un cluster performant, les machines doivent pouvoir communiquer tr s
rapidement et le co t s'en trouve augment .
2. Terminologie
Un ensemble de machines en r seau destin un fonctionnement en parall le constitue un
cluster (grappe). Dans ce cluster, chaque machine sera un Node. Tous les nodes sont des
stations de travail dans le sens o elles poss dent un ou plusieurs processeurs en
opposition aux terminaux. Le r seau ainsi form est un NOW, un Network Of
Workstation (r seau de station de travail).
3. Les motivations dun cluster
Le terme clustering peut tre utilis dans diff rents contextes. En effet, en temps
quing nieurs des syst mes dinformation vous naurez pas les m mes besoins de
Publicité
parall lisation quun math maticien ou un ing nieur r seaux t l coms. Ainsi, nous
Yahia SLIMANI/Habib SMEI
- Page 1 -
ISET Rad s
Cours Unix/Linux
pouvons distinguer 4 grands types de clusters pouvant tre combin s les uns aux autres et
r pondant aux exigences de chacun des utilisateurs :
" Les clusters scientifiques : typiquement il sagit dun cluster o lensemble des nodes
cumulent leurs puissances de calcul pour arriver des performances gales celles
dun super calculateur. Pour ce type, cest une qu te de puissance qui est recherch e.
" Les clusters de stockage : ici il sagit de combiner les espaces disques de chacune
des machines afin de fournir un espace disque total assez cons quent.
" Les clusters haute disponibilit : ici il sagit de cr er plusieurs nodes redondants
permettant de prendre le relais de la machine principale en cas de crash. Cest la
fiabilit qui prime dans ce type darchitecture. En effet, le stockage des donn es tant
redondants, le fonctionnement du cluster et lassurance contre les pertes de donn es
peuvent tre garantis 99,9%. Pour expliquer la mise en oeuvre, on prend un exemple
avec plusieurs machines. On nome la machine qui prend en charge le service, la
machine ma tre. Et les autres machines qui sont en r serve en cas de probl me, pour
que l'une d'entre elle prend le relais, les machines esclaves. Et donc quand une
machine esclave prend le relais, elle devient une machine ma tre. Donc, pour avoir la
haute disponibilit , il nous faut plusieurs programmes (softwares) dans les diff rentes
machines du cluster. Un programme, qui s'occupe d'enregistrer les diff rentes donn es
et changement, suivant la date de la derni re modification sur les diff rentes machines,
pour avoir le m me service avec les m mes informations sur les diff rentes machines
du cluster, et pour cela il nous faut aussi un programme qui s'occupe de la
synchronisation du temps sur les diff rentes machines. En plus, il nous faut un
programme qui v rifie la disponibilit du service sur les diff rentes machines et un
autre qui v rifie la disponibilit des machines et d'exclure la machines qui a un
probl me jusqu' ce qu'elle soit nouveau disponible. Et le dernier programme, lui
s'occupe de donn la main une autre machine, si la machine ma tre est indisponible.
" Les clusters r partition de charge : ces clusters permettent de r partir des
processus vers les nodes du cluster. Ainsi chaque machine se verra traiter un processus
et donc la qualit de service rendu sen trouvera meilleure. Cela vite ainsi les
surcharges. Par exemple, si plusieurs clients ont besoin d'ex cuter une tache (un
Publicité
service) sur une machine disponible dans un r seau, le bon fonctionnement ne pourra
tre assurer cause des limitation du r seau et de la capacit de la machine. Dans ce
cas pour assur un bon fonctionnement, il faut limiter le nombre de clients. Pour ne
pas avoir limiter le nombre de clients et d'avoir un bon fonctionnement, la solution
est de mettre un cluster de r partition de charge. La taille du cluster d pend du nombre
Yahia SLIMANI/Habib SMEI
- Page 2 -
ISET Rad s
Cours Unix/Linux
des clients pouvant se connecter la fois. Le principe de mise en oeuvre est d'avoir un
serveur particulier appel l' quilibreur de charge (load-balancer) plac entre les
clients et les noeuds du cluster. Son r le consiste aiguiller les requ tes du client vers
un noeud particulier, car tous les noeuds proposent le m me service. Pour viter que
l' quilibreur de charge oriente un client vers un noeud d faillant, on place un autre
serveur appel directeur, qui ce charge de v rifier la fonctionnalit du service proposer
et d'ordonner l' quilibreur de charge de ne pas aiguiller les requ tes vers tel noeud
s'il pr sente un dysfonctionnement. Un bon exemple de ce type de cluster sont les
clusters de serveurs web. Afin de r ussir envoyer les pages aux clients, un cluster
peut tre install pour fournir une qualit de service qu'une machine unique ne pourra
jamais fournir. Certain peuvent r pondre des millions d'internautes. Et c'est pour cela
que le cluster haute disponibilit est associer avec la r partition de charge (Cluster
haute disponibilit avec r partition de charge). Comme sa le client peut avoir son
service toujours disponible avec un bon fonctionnement.
4. Les logiciels de clustering
Il existe une grande quantit de logiciels sous Linux afin de transformer un NOW en
cluster. Leur t che est principalement de transformer l'ensemble des nodes en une
seule fausse machine : une machine virtuelle dont l'existence est purement imag e et
qui n'existe pas physiquement. Voyons ensemble les deux principaux utilitaires et
leurs fonctions.
" PVM : PVM est l'acronyme de Parall le Virtual Machine. Il permet de cr er un
cluster partir de nodes de types diff rents (PC/Linux, PC/Windows, Mac, HP,
CRAY, etc.). Il supporte tous les r seaux capables d'une connexion par socket comme
par exemple SLIP, PLIP, Ethernet et ATM. PVM se pr sente sous la forme d'un
deamon et de biblioth ques C et FORTRAN. Les applications qui utilisent PVM
doivent tre compil es avec les biblioth ques PVM. Ceci implique une modification
Publicité
du code dans le cas d'une application d j existante. L'un des plus bel exemple
d'application modifi e et recompil e pour PVM est PovRay. C'est un logiciel de Ray
Tracing dont le portage pour PVM se nomme PvmPov, mais nous y reviendrons plus
loin.
" MPI : MPI (pour Message Passing Interface) est souvent consid r comme le
concurrent principal de PVM. Pour expliquer la diff tence entre PVM et MPI, voyons
leurs diff rences.
"
PVM poss de un environnement de contr le. En somme, le lancement d'une
application PVM est identique sur tous les environnement. Ceci permet de mettre en
Yahia SLIMANI/Habib SMEI
- Page 3 -
ISET Rad s
Cours Unix/Linux
Suvre un utilitaire pour contr ler les ex cutions des diverses applications dans la
machine virtuelle.
" MPI consid re la machine virtuelle comme un processeur massivement parall le ou
encore comme un r seau de nodes identiques. PVM est d'avantage orient vers les
r seaux h t rog nes (compos s de machines diff rentes).
" MPI permet un acc s distant la m moire (RMA, Remote memory Access) et un
syst me d'entr e/sortie en parall le. Ces deux fonctionnalit s sont utiles mais
n cessites d'apprendre MPI de la m me mani re qu'un nouveau langage.
" MPI a t cr e apr s PVM et s'en est inspir . MPI est donc plus performant au niveau
de la gestion de buffers, des structures de donn es, etc.
" Voici donc les principales caract ristiques qui existent entre les deux standards. Notre
t che n'est pas de vous inciter utiliser l'un ou l'autre. Nous ne donnerons donc pas
notre avis, vous de voir en PVM ou MPI le programme qu'il vous faut.
5. Les projets de clusters
Il existe beaucoup de m thodes diff rentes pour cr er un cluster. Il est donc utile de
pouvoir se r f rer des clusters ou des projets de cluster d j en place.
" Beowulf :
Ce projet parrain par la N.A.S.A. concerne l'architecture classique PC et le syst me
Linux. D but en 1994, il est dirig par Thomas Sterling et Don Becker. Le syst me
Beowulf permet un ensemble de nodes de fonctionner tel un seul PC. Les
programmes en fonctionnement sur le PC virtuel seront ex cut s en fonction de la
Publicité
puissance et de la disponibilit de chaque node. Mais un seul programme ne sera pas
r parti sur plusieurs nodes. En clair, le syst me va v rifier l'occupation de chaque
node et y r partir tous les process en cours. Le premier cluster construit dans le cadre
de ce projet tait constitu de 16 DX4 connect en ethernet.
" Linux/AP+ :
Ce projet ne traite pas exactement de clustering. Il s'agit du portage de Linux sur
l'architecture Fujitsu AP1000+. Cet ordinateur est une machine parall le bas e sur
SPARC qui utilise une topologie r seau propri taire 25Mo par seconde. En r sum ,
ce portage ressemble fort un cluster de SPARC sous Linux.
" U-NET :
Bas l'universit de Cornell, ce projet a pour but de cr er une interface bas e sur un
r seau classique afin d'optimiser les temps de r ponse des machines. Le principe
consiste envoyer et recevoir des messages sans l'intervention du syst me. U-Net
tourne sur PC sous Linux et des cartes DECchip Fast Ethernet.
Yahia SLIMANI/Habib SMEI
- Page 4 -
ISET Rad s
Cours Unix/Linux
"
distributed.net :
Le plus grand cluster connu au monde. En vous connectant www.distributed.net,
vous pourrez t l charger un client (programme) pour votre ordinateur. Et ce, quelqu'il
soit et quelque soit son syst me d'exploitation. Gr ce ce client, vous pourrez
transformer votre ordinateur en node connect InterNet. Le but de ce cluster
gigantesque est, entre autre, de d montrer que la taille des clefs de cryptage
actuellement utilis e est obsol te. Pour preuve, distributed.net a cass un code DES-II
56 bits en 40 jours. La clef du code RC5-32/12/7 56 bits fut cass e en 250 jours.
" Extreme Linux :
D riv e du projet Beowulf et en collaboration avec Red Hat, la Nasa et plusieurs
centres de recherche, Extreme Linux est la premi re distribution de Linux en cluster.
Celle-ci est directement issue de la distribution Red Hat modifi e pour le cluster de
160 stations Alpha utilis es pour certains effets sp ciaux du film Titanic.
Yahia SLIMANI/Habib SMEI
- Page 5 -