Clustering sous Linux

Ce cours aborde le clustering sous Linux, une technique essentielle dans le cadre des systèmes distribués et du calcul parallèle.

D'après le document Clustering sous Linux

Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.

Clustering sous Linux

Document source

Clustering sous Linux

Computer Science - Unix/Linux Systems · Institut Supérieur des Études Technologiques · PDF · 5 pages · 1994

Afficher l'aperçu du document

Consulter le document original →

Ce cours aborde le clustering sous Linux, une technique essentielle dans le cadre des systèmes distribués et du calcul parallèle. Il s'inscrit dans un cursus Unix/Linux et présente les principes, les motivations, les logiciels et les projets majeurs liés au clustering, permettant ainsi de comprendre comment plusieurs machines peuvent coopérer pour améliorer la performance, la disponibilité ou la capacité de stockage.

Principe du clustering

Le clustering consiste à réduire le temps d'exécution d'une tâche en la répartissant sur plusieurs machines. Concrètement, une tâche divisée sur N machines s'exécute environ N fois plus vite que sur une seule. Cette technique permet de transformer n'importe quel réseau en cluster.

Il est important de distinguer deux types de clustering :

  • Systèmes en clustering : ce sont des tâches indépendantes réparties sur plusieurs machines. Par exemple, les sites web à fort trafic comme Google utilisent des clusters de serveurs web, qui sont des miroirs du site et traitent simultanément un grand nombre de requêtes.
  • Logiciels en clustering : une seule tâche est divisée et répartie sur chaque machine du cluster. C’est typiquement le cas des clusters de calcul, utilisés pour des rendus d'effets spéciaux ou des calculs intensifs nécessitant beaucoup de puissance et d’espace de stockage.

Malgré ses avantages, le clustering n'est pas universellement adopté à cause des contraintes liées aux connexions entre machines. Pour qu'un cluster soit performant, les communications doivent être très rapides, ce qui augmente le coût global.

Terminologie

Un cluster est un ensemble de machines connectées en réseau et fonctionnant en parallèle. Chaque machine dans ce cluster est appelée un node. Ces nodes sont des stations de travail équipées d’un ou plusieurs processeurs, contrairement aux terminaux simples. Le réseau formé par ces nodes est appelé un NOW (Network Of Workstation), c’est-à-dire un réseau de stations de travail.

Les motivations d’un cluster

Le clustering répond à des besoins variés selon les utilisateurs, qu'ils soient ingénieurs systèmes, mathématiciens ou ingénieurs réseaux. On distingue quatre grands types de clusters, souvent combinables :

  • Clusters scientifiques : ils cumulent la puissance de calcul des nodes pour atteindre des performances comparables à celles d’un supercalculateur. L’objectif principal est la puissance de calcul.
  • Clusters de stockage : ils combinent l’espace disque de plusieurs machines pour offrir un volume de stockage important.
  • Clusters haute disponibilité : ils assurent la fiabilité en créant des nodes redondants qui prennent le relais en cas de panne. La machine principale est appelée la machine maître, tandis que les autres sont des machines esclaves prêtes à devenir maîtres si nécessaire. Plusieurs programmes sont nécessaires pour gérer la synchronisation des données, la synchronisation temporelle, la vérification de la disponibilité des services et des machines, ainsi que le basculement automatique vers une machine de secours.
  • Clusters à répartition de charge : ils répartissent les processus entre les nodes pour éviter les surcharges et améliorer la qualité de service. Un serveur appelé « équilibreur de charge » (load-balancer) distribue les requêtes des clients vers les nodes disponibles. Un autre serveur, le « directeur », contrôle la santé des nodes et informe l’équilibreur pour éviter d’envoyer des requêtes vers des nodes défaillants. Ce type de cluster est typique des clusters de serveurs web, capables de gérer des millions de connexions simultanées. Souvent, la haute disponibilité est associée à la répartition de charge pour garantir un service toujours disponible et performant.

Les logiciels de clustering sous Linux

Pour transformer un réseau de stations de travail (NOW) en cluster, plusieurs logiciels existent sous Linux. Leur rôle est de faire apparaître l’ensemble des nodes comme une seule machine virtuelle, abstraite et non physique. Voici les deux principaux outils :

  • PVM (Parallel Virtual Machine) : PVM permet de créer un cluster à partir de nodes hétérogènes (PC/Linux, PC/Windows, Mac, HP, CRAY, etc.). Il supporte les réseaux utilisant des connexions par socket comme SLIP, PLIP, Ethernet ou ATM. PVM fonctionne avec un démon et des bibliothèques en C et FORTRAN. Les applications doivent être compilées avec ces bibliothèques, ce qui nécessite souvent de modifier le code source. Un exemple notable est le portage de PovRay (logiciel de ray tracing) en PvmPov.
  • MPI (Message Passing Interface) : MPI est souvent vu comme le principal concurrent de PVM. Contrairement à PVM, qui possède un environnement de contrôle unifié facilitant le lancement des applications, MPI considère la machine virtuelle comme un processeur massivement parallèle ou un réseau de nodes identiques. MPI est davantage orienté vers les réseaux homogènes. Il offre des fonctionnalités avancées comme l’accès distant à la mémoire (RMA) et un système d’entrée/sortie parallèle, mais nécessite d’apprendre une nouvelle interface de programmation. Créé après PVM, MPI est plus performant dans la gestion des buffers et des structures de données.

Le choix entre PVM et MPI dépend des besoins spécifiques de l’utilisateur et du contexte d’utilisation.

Les projets de clusters sous Linux

Plusieurs projets emblématiques illustrent les différentes approches du clustering sous Linux :

  • Beowulf : Ce projet, soutenu par la NASA, vise à créer un cluster à partir d’ordinateurs PC sous Linux. Initié en 1994, il permet à un ensemble de nodes de fonctionner comme un seul PC virtuel. Les processus sont répartis sur les nodes en fonction de leur disponibilité, mais un seul programme n’est pas parallélisé sur plusieurs nodes. Le premier cluster Beowulf était constitué de 16 processeurs DX4 connectés en Ethernet.
  • Linux/AP+ : Ce projet porte Linux sur l’architecture Fujitsu AP1000+, une machine parallèle basée sur SPARC avec un réseau propriétaire à 25 Mo/s. Il s’agit d’un cluster de SPARC sous Linux.
  • U-NET : Projet de l’université de Cornell, U-NET vise à optimiser les temps de réponse sur un réseau classique en permettant l’envoi et la réception de messages sans intervention du système d’exploitation. Il fonctionne sur PC Linux avec des cartes DECchip Fast Ethernet.
  • distributed.net : Le plus grand cluster mondial, accessible via www.distributed.net. En téléchargeant un client, n’importe quel ordinateur, quel que soit son système, peut devenir un node du cluster. Ce projet a notamment démontré la vulnérabilité des clés de cryptage actuelles en cassant des codes DES-II 56 bits en 40 jours et RC5-32/12/7 56 bits en 250 jours.
  • Extreme Linux : Dérivé de Beowulf et développé en collaboration avec Red Hat, la NASA et plusieurs centres de recherche, Extreme Linux est la première distribution Linux dédiée au clustering. Elle est issue d’une version modifiée de Red Hat utilisée pour un cluster de 160 stations Alpha, notamment pour le rendu d’effets spéciaux dans le film Titanic.

Points clés

  • Le clustering permet d’accélérer l’exécution des tâches en les répartissant sur plusieurs machines.
  • Différents types de clusters existent : scientifiques, de stockage, haute disponibilité et répartition de charge.
  • La haute disponibilité repose sur la redondance des machines et la synchronisation des données et du temps.
  • Les logiciels PVM et MPI sont les principaux outils pour créer des clusters sous Linux, chacun avec ses spécificités.
  • Des projets comme Beowulf, distributed.net ou Extreme Linux illustrent les différentes approches et applications du clustering.

Partager

Commentaires

Aucun commentaire pour le moment. Posez la première question.

Les commentaires sont relus avant publication. Votre e-mail n'est jamais affiché.

← Toutes les révisions