Grappe de serveurs
On parle de grappe de serveurs[1], de cluster, de groupement de serveurs 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 :
- augmenter la disponibilité ;
- faciliter la montée en charge ;
- permettre une répartition de la charge ;
- faciliter la gestion des ressources (processeur, mémoire vive, disques durs, bande passante réseau).
La création de petites grappes de serveurs est un procédé peu coûteux, consistant à grouper plusieurs ordinateurs en réseau, qui apparaîtront comme un ordinateur unique doté de plus de puissance du processeur, d'espace de stockage, 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 d'éviter l'achat d'un serveur multiprocesseur coûteux, en se contentant de plus petits périphériques connectés entre eux en « grappe », permettant une meilleure adaptabilité en fonction des besoins - d'un point de vue performance comme financier. Ces grappes sont généralement situées dans un centre de données.
Historique
Les clusters sont apparus au moment de l'explosion du prix des supercalculateurs alors que les microprocesseurs devenaient de plus en plus rapides et de moins en moins chers. Dès la fin des années 1980, des ingénieurs développent un « multi-ordinateur » (en 1987, l'université du Mississippi travaille 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
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ées de nœuds de calcul, de nœuds de stockage et de un ou plusieurs nœuds frontaux. Il y a quelquefois 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 dont le débit est 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 gigabits par seconde.
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
Leur utilisation est de plus en plus importante dans la communauté scientifique, où les besoins en calculs à haute performance 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
- É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].
Notes et références
- Grappe est le terme recommandé par la Commission générale de terminologie et de néologie en France, voir FranceTerme
- Historique et fonctionnement des clusters Beowulf, sapril.org, 25 octobre 1999
- [PDF] « Le clustering dans les entreprises » [archive du ], sur univ-pau.fr (consulté le )
- CERN Openlab confère une nouvelle dimension à la Grille de calcul, sur le site cern.ch du 5 juillet 2004
- « Cluster de serveurs: tout savoir sur les différentes architectures » (consulté le )