2. Architecture recommandée


Afin de construire un cluster performant, il est tout de même nécessaire de faire un choix hardware et software assez important. En effet, même s'il est tout à fait possible de monter des clusters Linux à partir de machines obsolètes et hétérogènes de bout en bout, les caractéristiques générales de votre système, mais surtout la puissance de votre cluster, s'en trouveront grandement affecté.

C'est pourquoi certains parmètres sont préférables, et comme toute chose, même si cela ne coûte pas cher à la base, la qualité et la rapidité ont un prix. Ainsi, avant de monter votre cluster, il vous faut bien réfléchir sur les points qui sont exposés dans la suite.

Homogénéïté matérielle

Topologie réseaux "saine"

Choix logiciel

 


1. Pourquoi choisir Linux

3.Les projets de clusters sous Linux


B. Les clusters sous Linux


Sommaire general


Homogénéïté matérielle

 

La première règle à essayer de respecter est de préférer des stations de travail homogènes et performantes. Dans la mesure du possible, l'homogénéïté passe par l'usage de composants identiques dans les machines, et en tous cas en matière de RAM, de Disque, de processeurs et de cartes réseaux. La performance passe quant à elle par l'usage de stations cadencées à des vitesses d'au moins 350 MHz (AMD et Intel), équipées de gros disques durs et beaucoup de RAM.

En fait, ces deux aspects visent à satisfaire deux points. Le premier est une question de rapidité d'installation, de gestion, et de mise à jour du système. En effet, si toutes les machines possèdent la même architecture physique, alors il sera plus facile pour un administrarteur de créer un master générique de son système pour les nodes et donc plus facile d'installer et de mettre à jour le cluster. De plus, il sera plus facile de détecter des erreurs sur des machines homogènes car les problèmes rencontrés seront identiques.

Le deuxième point sur la nécessité de machines identiques vient du dimensionnement du cluster. Pour répondre convenablement aux besoins désirés, le cluster doit afficher une certaine puissance. Cette dernière sera plus facilement atteinte avec un lot de machines puissantes, qu'avec une armada de vieux 486. De plus en terme d'administration, il est plus simple de gérer un parc d'une dizaine de stations, que d'une centaine. Enfin, les machines plus puissantes, car plus recentes sont moins lier au risque de pannes.

Bien en tendu, j'entends les mauvaises langues me dire que pour monter un cluster, même sous Linux cela coute un certain prix. Je leur concède tout à fait. Néammoins il faut garder à l'esprit plusieurs choses.

En tant que particulier, vos besoins ne sont pas ceux d'une multi-nationnale. Un cluster de 5 à 6 machines devrait amplement suffire. De plus, pour ce qui en sera fait, la puissance de calcul ne devrait pas être trop importante sur une si petite architecture, par rapport à des machines supers puissantes. Ensuite, les PC que vous utilisez peuvent être des récupérations d'entreprises renouvelant leur parc informatique. C'est à vous de prospecter un peu. Enfin, l'hétérogénité des architectures ne devrait pas être très génante sur un nombre restreint de machines. Toutefois, en tant que paticulier, si vos besoins sont supérieurs à ceux ci c'est que votre travail est conséquent et qu'il mérite un minimum de rémunération vous permettant de vous payer du matériel plus puissant !

En tant que PME, suivant la taille de votre parc informatique, de votre budget et de vos besoins, un minimum d'investissemnt peut être fait pour atteindre le cluster de vos rêves. En effet, si vos désirs ne sont que de monter un cluster de calcul, alors utilisez l'existant autour de vous. Il faut savoir que les PC administratifs ne sont pas constamment en train de travailler et donc ils peuvent tout à fait répondre (la nuit par exemple) à un travail collaboratif. Si vos besoins sont autres, alors il faudra investir un minimum dans du matériel informatique. Essayez de trouver une entreprise revendant un parc d'ordinateurs dans le cadre d'un renouvellement !

En fait, en réfléchissant bien sur le dimensionnement, sur la puisance de calcul, et sur ses moyens, les coûts d'un cluster Linux peuvent être très bien maitrisés.

 


Topologie réseaux "saine"

 

La deuxième règle à laquelle il faut être attentif est celle concernant l'architecture réseaux employée. Les clusters des grandes sociétés disposent d'interconnexions ATM dont l'optimisation n'a d'égale que le prix. Toutefois, l'utilisation de câble BNC rend quant à lui le réseaux très lents et donc affiche une baisse des performances pour un cluster.

En fait, les communications dans un système en clustering sont très importantes. C'est un peu grâce à elles que le cluster peut afficher des performances à faire rougir certaines machines. Toutefois, pour atteindre ces chiffres, les éléments du système doivent en permance discuter entre eux afin de synchroniser leurs efforts de calcul et de répartition.

En effet, disposer d'une série de machines à base de pentium dernier cri est une chose, mais les interconnecter en est une autre. Néammoins, il existe quelques solutions d'interconnexions supportées par Linux et pouvant répondre à vos besoins et surtout à votre budget.

Ainsi, le matériel le plus courement utilsé, est celui à base d'Ethernet, se présentant sous la forme de carte electronique au format ISA (pour les plus vieilles) ou PCI. Cette topologie permet d'utiliser le cabalge BNC et évite donc d'acheter un élément fédérateur comme un hub. Toutefois si vous préferez le cablage RJ45, alors le concentrateur sera obligatoire dans un cluster de plus de 2 machines.

En matière d'ethernet, vous pouvez bien sur monter (et c'est recommandé !) plus haut en terme de débit. Pour cela, vous avez à votre disposition les technologies Fast ethernet (100 Mb/s) et Gigabit Ethernet (1000 Mbs/s). Bien entendu, l'achat d'un hub est obligatoire et ce dernier possède un coût proportionnel aux performances. Dans le cadre de vos besoins, préferz un switch.

Ici encore je concède aux plus sceptiques d'entre vous que le réseaux à un prix qui ne peut être négligé. Mais ici encore je vous répondrais que cela dépend de ce que vous comptez faire. En tant que particulier, un réseau de 5 6 machines interconnectées par du BNC à 10Mb/s par seconde ne devrait pas trop affecter les performances du système.

Par contre en tant qu'entreprise, il vous faudra investir dans un matériel fiable et tout de même puissant. Il s'agira encore une fois de bien délimiter le cadre de votre projet et de bien évaluer l'impact de la mise en place d'un cluster sur la production. Si il permet une amélioration conséquente de la production alors n'hésitez pas ! Par contre s'il s'agit juste d'un complément, alors là étudiez les propositions de manière attentive et essayer de profiter d'une bonne occasion.

 

A partir de maintenant, vous êtes en mesure de construire votre NOW. Vous avez votre topologie réseau, vos matériels, et votre plan de développement. Il va maintenant falloir s'occuper de la partie logiciel qui vous permettra de transformer votre système en cluster.

 


Choix logiciel

 

Le choix logiciel est lui plus simple à respecter. En, effet, afin de transformer votre NOW en cluster, il vous faut disposer de deux choses essentielles : une distribution Linux (l'OS) et une API de parallélisation. Ensuite, les choix s'orienteront vers les préférences de la personne qui installe le système.

Ainsi, en ce qui concerne le système d'exploitation, vous pouvez vous tourner vers la plupart des Unix libres de la planète (Linux, FreeBSD, OpenBSD...). En fait, toute personne désirant monter un cluster sous linux possède quelques notions dans ce système et donc s'est déjà forgée une opinion en ce qui concerne la distribution qu'elle préfère (Mandrake, Debian, Slackware...).

Néammoins, pour monter un cluster performant, il est tout de même préférable d'utiliser des sytèmes d'exploitation ayant une couche TCP/IP bien développée et sans faille. Certains Linuxiens tendent à dire que l'implémentation de FreBSD 4.2 serait la plus favorable pour le fonctionnement d'un cluster, car elle brille pour la qualité de son stack TCP/IP.

Pour ce qui est du choix de l'API (Application Program Interface) de parallélisation, plusieurs choix viennent encore à vous être proposés. Toutefois, 2 applications phares en Open Source viennent se démarquer : PVM (Parallele Virtual Machine) et MPI (Message Passing Interface). Il s'agit en fait de librairie et de démons permettant de développer des applications en clustering et de les faire fonctionner.

Toutefois, le choix de la plupart des développeurs de projet de clustering, entre ces deux programmes, s'orientent plutôt vers PVM. En effet, tout d'abord, PVM possède un environnement de contôle permettant de rendre le lancement d'une application de manière identique sur tous les nodes du système. Ensuite, PVM est plutôt orienté vers les réseaux hétérogènes, c'est à dire que les nodes du cluster peuvent être de type différent (PC Linux, PC Windows...). Enfin, MPI emploie des fonctionnalités interresantes (comme le RMA, Remote Memory Access, ou le système d'entrée sortie parallèle), mais nécessite un apprentissage de MPI identique à celui d'un nouveau langage de programmation.

Même si PVM semble mieux répondre aux contraintes d'un cluster et de son matériel, il faut tout de même savoir que certains inconvénients viennent s'incruster dans les rouages de PVM. En effet, les applications l'utilisant doivent obligatoirement être compilées avec les bibliothèques PVM. Ceci implique donc une recompilation quasi obligatoire des logiciels déjà existant. De plus, MPI a été développé après PVM et s'en est inspiré. Ainsi, MPI répond mieux aux contraintes liées à la gestion des buffers, des structures de données... En fait cela sera à vous de choisir l'API répondant encore une fois au mieux à vos attentes et vos besoins.

 

Il faut savoir qu'arrivé à ce stade, votre système est près à utiliser des applications en clusters. Vous pouvez désormais développer le cluster de vos rêve. Toutefois, de nombreux projets ont déjà été développés et éprouvés, et donc peuvent être utilisés, voir complétés par de nouvelles fonctionnalités. A vous de voir en fonction de votre projet !

 


3. les projets de cluster sous Linux


Renaud Vayssade

samedi 19 janvier, 2002 12:41