On parle de
grappe de serveurs ou de
ferme de calcul (
cluster en anglais) pour désigner des techniques consistant à regrouper plusieurs ordinateurs indépendants (appelés noeuds,
node en anglais) pour permettre une gestion globale et 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 (CPU, mémoire, disques, bande passante réseau)
Les grappes de serveurs sont 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 capacités (plus puissant, etc.), très utilisé pour les calculs parallèles. Cet usage optimisé des ressources permet la répartition des traitements sur les différents noeuds.
Un des grands avantages est qu'il n'est plus besoin d'acheter un serveur Multiprocesseur coûteux et qu'il est souvent possible de se contenter de petits systèmes que l'on peut connecter à la suite les uns des autres selon l'évolution des besoins.
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 un cluster comme s'il s'agissait d'une machine unique.
Dans les domaines scientifiques, les clusters sont habituellement constitués de noeuds de calcul, de noeuds de stockage et de un ou plusieurs noeuds frontaux. Il y a quelques fois des noeuds supplémentaires dédiés au suivi (monitoring).
Les noeuds 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 noeuds, 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 10 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 noeuds avec des messages.
Lors de la défaillance d'un serveur, le logiciel de clustering réagit en transférant les tâches exécutées sur le système défaillant vers les autres serveurs de la grappe. De même pour le partage des tâches d'un serveur surchargé à un autre.
Utilisation
Leur utilisation est de plus en plus importante dans la communauté scientifique, où les besoins en calculs à haute performance (HPC) sont toujours croissants, ainsi qu'en
imagerie numérique notamment pour les
images de synthèse au travers des
fermes de rendu.
En Informatique de gestion, les clusters peuvent être utilisés pour minimiser l'impact d'une panne de serveur sur la disponibilité d'une application; cela nécessite la mise en oeuvre de disques partagés, par exemple dans le cadre d'un SAN.
Dans d'autres domaines, on a de plus en plus recours aux réseaux P2P comme alternative aux clusters, et ce pour un coût moindre.
Voir aussi