Grappe de serveurs

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Une « grappe de serveurs » composée de serveurs industriels dans une baie

On parle de grappe de serveurs[1] ou de ferme de calcul (computer cluster en anglais) pour désigner des techniques consistant à regrouper plusieurs ordinateurs indépendants appelés nœuds (node en anglais), afin de permettre une gestion globale et de dépasser les limitations d'un ordinateur pour :

La création de grappes de serveurs est un procédé peu coûteux, résidant dans la mise en place de plusieurs ordinateurs en réseau qui vont apparaître comme un seul ordinateur ayant plus de performances (puissance du processeur, dimension de l'espace de stockage, quantité de mémoire vive, etc.), particulièrement utilisé pour les calculs parallèles. Cet usage optimisé des ressources permet la répartition des traitements sur les différents nœuds.

L'un des principaux avantages est la disparition de la nécessité d'investir dans un serveur multiprocesseur coûteux pour se contenter de plus petits périphériques qui seront ensuite connectés entre eux selon ce principe de « grappe », permettant une meilleure adaptabilité en fonction des besoins - d'un point de vue performance comme financier.

Historique[modifier | modifier le code]

Les clusters sont apparus au moment de l'explosion du prix des supercalculateur alors que les microprocesseurs devenaient de plus en plus rapides et de moins en moins cher. À partir de la fin des années 1980, les ingénieurs ont commencé à développer ce qu'ils appelaient alors un « multi-ordinateur » (en 1987, l'université du Mississippi a commencé à travailler sur un cluster basé sur le Sun 4/110). C'est toutefois le projet Beowulf[2] - l'utilisation d'un système d'exploitation Linux sur des PC communs - qui a véritablement lancé l'intérêt pour les clusters, ces grappes d'ordinateurs qui fournissent en commun un travail de calcul en parallèle sur un seul problème complexe. Le coût et la modularité d'un cluster rendant les opérations de calcul moins onéreuses qu'un super-ordinateur[3].

Fonctionnement[modifier | modifier le code]

Grappe de 2 serveurs en équilibrage de charge

Le terme cluster exprime l'idée de grappe. La Délégation générale à la langue française et aux langues de France préconise d'ailleurs l'emploi du terme « grappe ». Une grappe de serveurs est donc un groupe de serveurs indépendants fonctionnant comme un seul et même système. Un client dialogue avec une grappe, comme s'il s'agissait d'une machine unique.

Dans les domaines scientifiques, les grappes sont habituellement constitués de nœuds de calcul, de nœuds de stockage et de un ou plusieurs nœuds frontaux. Il y a quelques fois des nœuds supplémentaires dédiés au suivi (monitoring).

Les nœuds peuvent être reliés entre eux par plusieurs réseaux. Communément, le réseau avec le débit le plus lent est dédié aux tâches d'administration (chargement des systèmes sur les nœuds, suivi, mesure de charge...). À ce premier réseau vient généralement s'adjoindre un second réseau, avec une bande passante beaucoup plus importante. Ce réseau peut utiliser des technologies de type Quadrics, Myrinet ou Infiniband. Ces débits peuvent atteindre 40 gigabit/s.

Les programmes exécutés sur ce genre de machine se servent d'une API standard Message Passing Interface, utilisant la communication entre les divers processus répartis sur les nœuds avec des messages.

Lors de la défaillance d'un serveur, le logiciel de regroupement réagit en isolant le système défaillant. De même pour le partage des tâches d'un serveur surchargé avec un autre (dans le cas où les ressources sont partagées entre plusieurs tâches).

Utilisation[modifier | modifier le code]

Leur utilisation est de plus en plus importante dans la communauté scientifique, où les besoins en calculs à haute performance (HPC) sont toujours croissants[4], ainsi qu'en imagerie numérique notamment pour les images de synthèse au travers des fermes de rendu.

En Informatique de gestion, les grappes peuvent être utilisées pour minimiser l'impact d'une panne de serveur sur la disponibilité d'une application. Cela nécessite la mise en œuvre de disques partagés, par exemple dans le cadre d'un réseau de stockage SAN.

Dans d'autres domaines, on a de plus en plus recours aux réseaux pair à pair (P2P) comme alternative aux grappes de serveurs, et ce pour un coût moindre.

Bénéfices[modifier | modifier le code]

  • Évolutivité ou scalabilité (de scalable en anglais) : capacité d'une application à accepter un nombre croissant d'utilisateurs. Reposant sur plusieurs facteurs, notamment le nombre d'utilisateurs pouvant se connecter simultanément à un cluster et le temps nécessaire pour traiter une requête[5].
  • Disponibilité : la haute disponibilité peut se définir comme la redondance. Ainsi, si un serveur tombe en panne alors qu'il est en train de traiter des requêtes, d'autres serveurs du cluster doivent pouvoir les traiter d'une manière aussi transparente que possible. Tout serveur défaillant est retiré du cluster dès qu'il tombe en panne de sorte que les requêtes suivantes ne soient plus acheminées vers ce dernier. En matière de reprise à chaud pour les applications d'entreprise, la résilience et la disponibilité revêtent la plus haute importance[5].

Note[modifier | modifier le code]

  1. Grappe est le terme recommandé par la Commission générale de terminologie et de néologie en France, voir FranceTerme
  2. Historique et fonctionnement des clusters Beowulf, sur le site april.org du 25 octobre 1999
  3. [PDF] « Le clustering dans les entreprises », sur univ-pau.fr (consulté le 15 octobre 2014)
  4. CERN Openlab confère une nouvelle dimension à la Grille de calcul, sur le site cern.ch du 5 juillet 2004
  5. a et b « Cluster de serveurs: tout savoir sur les différentes architectures » (consulté le 30/09/2014)

Articles connexes[modifier | modifier le code]