Les utilisations des clusters dans les entreprises Référence Auteur Version Date Biblio_M2SIR_Cluster.doc Christophe BARBERET Philippe VILMINT V.1.1 24/12/2004 Les utilisations des clusters dans les entreprises Page : 1
SOMMAIRE INTRODUCTION...3 1. DEFINITION DU CLUSTERING...4 1.1 HISTORIQUE... 4 1.2 CLASSIFICATION DES ORDINATEURS... 4 1.3 PROBLEMATIQUE POSEE PAR LES CLUSTERS... 6 2. CLUSTERS DE CALCULS...7 3. CLUSTERS DE HAUTE DISPONIBILITE...8 3.1 RISQUES ET ENJEUX DE L INDISPONIBILITE INFORMATIQUE... 8 3.2 CARACTERISATION DE LA HAUTE DISPONIBILITE... 11 3.3 COMMENT ASSURER LA HAUTE DISPONIBILITE... 12 3.3.1 Duplication de composants... 12 3.3.2 Mise en cluster... 13 3.3.3 Répartition de charge... 16 4. CLUSTERS DE REPARTITION DE CHARGE...18 4.1 ILLUSTRATION DE LOAD-BALANCING POUR UN SERVEUR WEB... 18 4.2 LES ARCHITECTURES N-TIERS... 19 4.2.1 Plusieurs couches logiques avec un rôle spécifique... 19 4.3 TOPOGRAPHIE DES DIFFERENTS TYPES DE CLUSTERS... 21 4.4 CLUSTER A UNE SEULE COUCHE (CLUSTER DE BASE)... 21 4.5 CLUSTER A DEUX COUCHES, DISPONIBILITE ET EVOLUTIVITE ELEVEES... 22 4.6 CLUSTER MULTICOUCHES, COMPLEXE MAIS DISPONIBILITE EXTREME... 24 5. EXEMPLES DE SOLUTIONS...25 5.1 CLUSTERS ORACLE... 25 5.2 CLUSTERS MICROSOFT... 25 5.3 CLUSTERS LINUX... 32 5.3.1 Les Cluster Beowulf... 32 5.3.2 OpenMosix : un exemple de clustering simple et efficace.... 33 5.4 EXEMPLES DE CLUSTERS DANS LE MONDE... 35 6. CONCLUSION...36 7. SOURCES BIBLIOGRAPHIQUES...37 Les utilisations des clusters dans les entreprises Page : 2
Introduction Des origines de l ordinateur en 1945 jusqu à 1985, l utilisation de l ordinateur dans nos sociétés ne cessait de progresser, mais le prix du matériel étaient encore très élevé. Les entreprises disposaient de peu de machines et étaient dans l incapacité de les faire collaborer ensemble. Dans les années 1980, cette situation fut bouleversée par l arrivée de deux avancées technologiques : la première étant liée aux progrès des microprocesseurs (de plus en plus rapides et peu onéreux) et la deuxième est l invention des réseaux rapides. De ces deux facteurs naquirent les systèmes distribués qui s opposaient à l approche centralisée des mainframes qui régnait alors. Aujourd hui, la technologie du parallélisme est devenue un pilier de l informatique moderne. C est une méthode permettant de fragmenter un problème en plusieurs morceaux plus petits qui peuvent être résolus en parallèle. Cette solution est la seule à pouvoir répondre à des problématiques de vitesse et de volume de données importants. Son développement fut permis par la création de processeurs massivement parallèles mais extrêmement coûteux et par la diffusion des systèmes distribués qui eux, en revanche ne nécessitent que l utilisation de machines existantes. Cette recherche bibliographique s intéresse à une partie des systèmes distribués, les clusters qui sont un groupe de machines traitant ensemble des données et des instructions. Dans un premier temps nous définirons la notion de cluster, puis les parties suivantes traiteront des trois grandes applications de ce type d architecture : Calculs Haute disponibilité Répartition de charge Nous illustrerons notre recherche par quelques exemples avant de conclure. Les utilisations des clusters dans les entreprises Page : 3
1. Définition du Clustering 1.1 Historique SAGE était un cluster construit pour le NORAD par IBM en 1950. Avec la technologie des tubes à transistors, SAGE était constitué de machines autonomes qui collaboraient pour détecter préventivement des missiles arrivant sur le continent américain. Des bonds technologiques aussi bien matériels que logiciels eurent des impacts durables sur les clusters. Les premières générations de microprocesseurs conçus par le développement initial du VLSI (Very Large Scale Intégration) apparurent en favorisant l émergence des premières stations de travail et des premiers ordinateurs personnels. Ethernet en se répandant popularisa les réseaux locaux et créa un standard industriel peu coûteux pour le transport des données. Les années 1980 marquèrent un intérêt accrus pour les clusters par des expérimentations dans la recherche et l industrie. La NSA utilisa 160 stations Apollo interconnectées entre elles pour ses besoins. DEC réunit 750 machines. La communauté scientifique explora, durant cette période de nombreuses voies dans le domaine du parallélisme dont celle qui aboutit au domaine du message passing. Une étape fut franchie avec la naissance de PVM (Parallel Virtual Machine) qui implémentait ce modèle. PVM, développé à Oak Ridge National Laboratory, a été le précurseur des systèmes distribués disponibles sur plusieurs types de plateformes. En 1993, Le réseau Myrinet fut inventé pour offrir au cluster une meilleure bande passante et une meilleure latence. Les premiers clusters Beowulf furent développés pour la NASA en 1994. Cette année vit la naissance d une nouvelle API de message passing MPI (Message Passing Interface) qui devint le modèle dominant. Les clusters ne cessent de devenir de plus en plus performants. En 2000, le laboratoire de Los Alamos annonça un cluster pouvant atteindre les 30 Gflops. 1.2 Classification des ordinateurs Flynn range les matériels selon les services qu ils rendent aux flux de données et aux flux d instructions : SISD: Single Instruction Single Data. Les processeurs séquentiels appartiennent à cette famille, SIMD Single Intruction Multiple Data Stream MISD Multiple Instruction Single Data Stram (sans réelle application). MIMD Multiple Instruction Multiple Data, les systèmes multiprocesseurs et les architectures distribuées figurent dans cette famille. En 1988, ce schéma fut étoffé par Johnson en se basant sur la structure de la mémoire (Distribuée ou globale) et sur les mécanismes de communications (variables partagées ou passage de messages). La Figure 1 présente la classification de Flynn-Johnson. Les utilisations des clusters dans les entreprises Page : 4
Flux de données Flux d instructions Multiple Simple SISD MISD GMSV GMMP MIMD DMSV DMMP Variables partagées SIMD Message Passing Distribué Global Mémoire Communication Synchronisation Figure 1 Classification de Flynn-Johnson Les nouvelles divisions sont : GMSV Global Memory Shared variables GMMP Global Memory Message Passing (sans réelle application). DMSV Distributed Memory Shared Variables DMMP Distributed Memory Message Passing La plupart des clusters sont de la famille DMMP, c est à dire que ce sont des architectures à mémoire distribuée utilisant le passage de messages. Les utilisations des clusters dans les entreprises Page : 5
1.3 Problématique posée par les Clusters Définition : Un cluster (grappe) est un ensemble d'ordinateurs connectés les uns aux autres en réseau dans le but de partager des ressources. Ces ordinateurs sont alors appelés nodes (noeuds) et l'ensemble forme le cluster. Lenteur de diffusion du code vers les nodes Toutes les machines interconnectées ne partagent pas la même mémoire. Ainsi, il est indispensable de diffuser le code à exécuter à chaque node cliente. A noter que les temps de propagation sur le réseau sont très longs comparés aux temps de propagation sur le bus interne d'un ordinateur (ce qui tente à changer aujourd hui). la redondance Les clusters utilisent un mécanisme permettant une redondance importante. Les nodes serveurs utilisent une adresse IP virtuelle négociée en permanence. Dans le cas ou un serveur connaîtrait une défaillance, un autre prendrait immédiatement la relève. Ce mécanisme fonctionne également lorsqu'un serveur connaît une trop grosse charge réseau. Il n'est plus en mesure de répondre donc il perd son adresse virtuelle et un autre serveur moins surchargé prend la relève. le coût Une structure en clusters peut être mise en place à partir de machines standards monoprocesseur. les performances architecturelles Mise en place d'une machine virtuelle disposant d'une puissance de calcul démultipliée et d'une capacité en mémoire et disque inégalable. Points forts - Optimisation des performances - Haute disponibilité - Sécurité - Redondance - Rapidité Points faibles - Coût important - Nécessite de solides connaissances informatiques - Technique gourmande en bande passante et en temps. Tableau 1 Avantages et inconvénients des clusters Les utilisations des clusters dans les entreprises Page : 6
2. Clusters de calculs Ce type de clusters est destiné à permettre la mise en commun de ressources de calculs. Ils sont utilisés pour résoudre des problèmes calculatoires en distribuant les parties indépendantes du calcul sur les différents noeuds. Lorsque l'on met en place un système de calculs distribués ou un système de calculs parallèles, le but est le même : la mise en commun de la puissance de calculs de plusieurs processeurs. Les calculs sont considérés comme parallèles s ils sont effectués sur plusieurs processeurs. Dans le cas d une machine parallèle les processeurs sont regroupés dans le même châssis et probablement relié par un bus spécifique. Alors que dans le cas de calculs distribués, les données, mais également les traitements, peuvent être réparties sur différentes machines. Dans ce dernier cas, les communications jouent un rôle très important et influencent énormément les performances du calcul. Formellement, il y a peu de différences entre les calculs parallèles et les calculs distribués. L'une d'entres elle que l'on peut citer, est l'absence de communications explicites entre les processeurs dans le cas d'un calcul parallèle. Les principales difficultés de mise en place sont les mêmes dans les deux cas. La communication interprocessus peut se faire par l'intermédiaire d'une mémoire partagée, par échanges de fichiers ou par envois de messages à l'aide d'un réseau. Il existe plusieurs solutions très différentes, aussi bien pour l'architecture matérielle que pour les algorithmes de calculs. Chaque solution répond à un problème particulier. Il faut donc bien étudier le problème afin de déterminer la solution qui va le mieux y répondre. Les utilisations des clusters dans les entreprises Page : 7
3. Clusters de haute disponibilité Notre vie quotidienne est rythmée par des activités comme les transactions bancaires, les télécommunications, l audiovisuel, Internet, nos transports. Elles demandent toujours plus d une technologie qui repose sur des systèmes matériels et logiciels qui gagnent en puissance et en complexité. Plus nous serons dépendant d eux, plus leur défaillance deviendra critique et coûteuse. Nous pouvons accroître la fiabilité d un serveur en dupliquant ses ressources critiques et augmenter la disponibilité d un service en le faisant reposer sur plusieurs serveurs. Dans un premier paragraphe, nous verrons l impact que peut avoir une indisponibilité sur une organisation. Un second paragraphe caractérisera un système hautement disponible. Un troisième paragraphe montrera comment approcher cette haute disponibilité. 3.1 Risques et enjeux de l indisponibilité informatique Toute organisation est exposée à une défaillance de son système d information; en cas d incident. Les conséquences peuvent être la destruction des données, des applications et des codes. Mais aussi l indisponibilité partielle ou totale du réseau et des services (potentiellement prolongée). Il est particulièrement important d'en mesurer les conséquences possibles d autant que les pénalités financières peuvent être conséquentes (Tableau 2). Application Secteur d activité Coût de l indisponibilité Courtage Finance $6,45 millions Vente pas carte de paiement Finance $2,6 millions Films à la demande Loisirs $150 000 Téléachat Distribution $113 000 Ventes sur catalogue Distribution $90 000 Réservation aérienne Transport $89 500 Tableau 2 Coût moyen d'une heure d'indisponibilité Les utilisations des clusters dans les entreprises Page : 8
Figure 2 Conséquence de l'indisponibilité Ainsi les coûts engendrés pour l indisponibilité du système d information sont les suivants : Perte d'un investissement Cet investissement peut consister dans le coût de mise en place du réseau et des systèmes d information (ressources internes consacrées au projet, du développement des applications, ) Coût de remise en place du service Il convient d'évaluer le coût nécessaire à la remise en fonctionnement du réseau ou des systèmes d informations par des ressources internes et/ou externes. Le cœur de certains systèmes peut être endommagé (données ou code / développements manquants), il convient d'inclure le coût de rétablissement, de reconstruction, de reconfiguration ou de re-développement). Perte de productivité et / ou de revenus Si le système touché est un outil important dans l'activité de votre organisation et de ses partenaires, l'indisponibilité totale ou partielle, courte ou prolongée, entraînera une perte de productivité dont il convient d'évaluer le coût. Si votre réseau héberge des applications ou un site commercial, l'indisponibilité engendrera une perte de revenus directs durant la période d'indisponibilité et risque d avoir des conséquences sur les relations commerciales futures. Perte de crédibilité L'indisponibilité de votre plate-forme ou l'incapacité à livrer un service peuvent engendrer une perte de crédibilité de votre organisation auprès de ses clients et partenaires et / ou de votre département vis-à-vis du reste de l'organisation. Il peut en résulter une atteinte à la notoriété de votre entreprise difficile à restaurer. Mise en cause de la responsabilité Les utilisations des clusters dans les entreprises Page : 9
o o Risque de condamnation à des dommages et intérêts au titre de la responsabilité contractuelle (services non rendus ou non conformes au contrat) Responsabilité délictuelle, basée sur la notion de fautes ; le professionnel étant présumé initié (connaissance du risque, non mise en oeuvre des moyens adéquats) aura des difficultés à prouver qu il n a pas commis de fautes. L'enjeu que représente la fiabilité du système d information est similaire à tout outil de production : c est d'assurer la continuité de fonctionnement d'une organisation et un service optimal. Les utilisations des clusters dans les entreprises Page : 10
3.2 Caractérisation de la haute disponibilité Chacun des composants d un serveur (processeur, disque dur, mémoire, carte réseau) constitue une ressource critique pouvant être à l origine d une panne. Ces composants sont appelés en anglais SPOF (Single Point Of Failure). Leur fiabilité repose sur ces définitions : MTBF (Mean Time Between Failure) Il s agit du temps moyen qui s écoule entre deux pannes. Le constructeur fournit généralement une évaluation de cette valeur. MTTF (Mean Time To Failure) Il s agit du temps moyen avant une panne définitive. MTTR (Mean Time To Repair) Il s agit de l intervalle de temps moyen où le service est indisponible avant d être rétablis. Le taux de disponibilité peut s exprimer comme suit : MTTF MTTF+ MTTR Dans la pratique, il est plus simple de calculer sur une année, le rapport entre la durée où le service a été rendu sur le temps et la durée totale. Ceci a amené le principe normalisé des «9» (Tableau 2). Un système dont la disponibilité est de 99,99% est dit système à «4 neufs». Type de Système Indisponibilité Disponibilité (%) Classe de disponibilité (Min/an) Non géré 50 000 90 1 Géré 5000 99 2 Bien géré 500 99.9 3 Tolérant les fautes 50 99.99 4 Haute disponibilité 5 99.999 5 Très haute disponibilité 0.5 99.9999 6 Ultra Haute disponibilité 0.05 99.99999 7 Tableau 3 Principe normalisé des "9" La fiabilité et la disponibilité ne sont pas des notions qui s opposent. La première est l aptitude d un système à ne pas tomber en panne. La seconde caractérise un système qui rend un service en dépit des pannes. Maintenant que nous savons estimer le taux de disponibilité d un système, nous allons aborder les techniques permettant de le rendre hautement disponible. Les utilisations des clusters dans les entreprises Page : 11
3.3 Comment assurer la haute disponibilité Les techniques permettant d assurer la haute disponibilité reposent sur la redondance des équipements afin de les rendre moins critiques. Il en existe trois principales : Duplication des composants En multipliant les ressources critiques (physiques ou logicielles) d un serveur, la défaillance de l un d eux devient moins critique. Le Tableau 4 donne des exemples de duplication de composants. Mise en cluster La redondance est utilisée cette fois au niveau du serveur. La panne d une machine peut être compensée par une autre. La continuité du service pourra être garantie après un temps de basculement (FOS, Fail Over Service) Répartition de charge Cette technique est mise en pratique dans les clusters. En général, elle est assurée par un des nœuds (le dispatcher) qui répartit le travail sur les autres. S il découvre qu un des nœuds esclaves ne fonctionne plus, il peut le supprimer de sa liste. 3.3.1 Duplication de composants Le Tableau 4 donne des exemples de techniques de duplication de composants. Eléments Alimentation redondée Utilisation de grappes de disques durs Multiplication des cartes réseaux Commentaire Certains constructeurs proposent de fournir deux ou trois alimentations pour prévenir la perte de ce composant. Les alimentations sont des composants critiques et il n'est pas rare de voir celles-ci faillir bien avant les autres composants du système L'utilisation des technologies RAID est un bon moyen de sécuriser vos données et prendre en compte notamment la perte d'un disque. Une carte réseau peut tomber en panne ou un câble réseau peut simplement être débranché. Une réponse possible est d agréger les liens. Channel Bonding sous Linux, EtherChannel (Cisco) Tableau 4 Duplication de composants Un exemple de duplication de composant est apporté par le channel bonding. C est une technologie permettant de faire de l agrégation de liens sous Linux. Elle est comparable à l EtherChannel de Cisco ou au trunking de SUN qui implémentent la norme 802.3ad. Il s agit de regrouper plusieurs interfaces Ethernet en une interface virtuelle unique. Ceci permet de supporter la perte d un ou plusieurs liens physiques et de multiplier la bande passante par le nombre de cartes réseaux impliquées dans l agrégation. Les utilisations des clusters dans les entreprises Page : 12
Figure 3 Channel bonding La Figure 3 présente deux configurations possibles. La première consiste à faire de l agrégation de lien entre un serveur linux et un commutateur supportant cette technologie. La seconde consiste à faire de l agrégation de lien entre deux serveurs linux. 3.3.2 Mise en cluster La fiabilité d un serveur étant amélioré par la redondance de ses composants, nous pouvons augmenter la disponibilité du service par la redondance de serveurs. Malheureusement, ce but n est pas atteint en se contentant de mettre en marche plusieurs machines. Différentes techniques doivent être implémentées sur le cluster pour pallier à la défaillance d un nœud (confère Tableau 5). Techniques Heartbeat FailSafe Fake STONITH LVS Keepalived Commentaire Heartbeat [5] est la brique de base de bon nombre de cluster. Il permet à deux machines de se surveiller l une l autre. Le service est assuré par un nœud maître. Si Heartbeat détecte une défaillance de ce dernier, il fait basculer les services sur un nœud esclave. Puisqu il ne détecte que des défaillances matérielles, une association avec un outil de surveillance des services tel que mon est possible FailSafe [7] est une contribution de SGI qui nous permet de disposer d'un outil similaire à Heartbeat pour basculer des services entre plusieurs noeuds d'un cluster Fake [6] permet de prendre l'identité d'un service présent dans un cluster en démarrant une adresse IP virtuelle (alias IP) et en s'occupant de mettre à jour les caches ARP des machines connectées pour qu'ils tiennent compte du basculement. Heartbeat intègre ce logiciel en standard STONITH (Shoot The Other Node In The Head!). Il permet d arrêter l alimentation électrique d une machine. Ainsi, nous sommes sur qu une machine supposée ne plus fonctionner l est vraiment! LVS [8] (Linux Virtual Server) met en place un cluster à répartition de charge. Un nœud (le dispatcher) répartit le travail à des nœuds esclaves. Si l un d eux faillis, le dispatcher se contente de le retirer de sa liste. Le dispatcher étant critique, il est souvent redondé grâce à Heartbeat Keepalived surveille la santé des serveurs. Tableau 5 Défaillance d'un nœud La disponibilité d'un service est indissociable de la disponibilité des données. Dans la constitution de votre architecture HA, parvenir à garantir l'intégrité de vos données est l'un des paliers parmi les plus importants à franchir. Des systèmes de fichiers spécifiques offrent aussi des fonctionnalités de tolérance aux pannes intéressantes : On parle alors de systèmes de fichiers distribués ou partagés. Les utilisations des clusters dans les entreprises Page : 13
L'utilisation d'une baie de disques partagée qui va permettre de centraliser les données sur un support unique accessible en concurrence ou non (selon le type de la solution) par l'un ou l'autre des noeuds. Intranet HeartBeat sur liaison série Heartbeat et communications inter-cluster Onduleur Onduleur Figure 4 Exemple de cluster avec HeartBeat et STONITH La Figure 4 présente un exemple de configuration typique d un cluster. Deux serveurs sont mis en cluster et se surveille l un l autre en s échangent des messages HeartBeat, des pulsations cardiaques. Ces derniers peuvent transiter par des liens ethernet. Parfois les échanges ne se font plus, non pas à cause de la défaillance d un nœud mais à cause d un problème réseau. C est pourquoi, Heartbeat peut utiliser en plus une liaison série pour effectuer ses communications. Si le secondaire pense que le maître est défaillant, il prend la main. Pour que les clients s adressent à lui, il s accapare l adresse IP virtuelle du maître avec un logiciel tel que fake. Dans certains cas, les deux machines sont vivantes et considèrent l autre comme absente. Cette situation est dramatique. Les deux voudront se promouvoir maître et monter les systèmes de fichiers au risque de les corrompre. Pour être sûr de devenir la seule machine active, le nœud arrête l autre en envoyant un ordre à son onduleur(stonith). Nous pouvons citer plusieurs techniques de disponibilité de données : RAID [3] Mécanisme permettant d'agréger virtuellement plusieurs disques durs DRDB [12] Outil de réplication réseau de données localisées sur deux serveurs distincts. La synchronisation peut se faire de façon partielle (après une déconnexion réseau par exemple) ou complète (dans le cadre d'un changement de média ou d'une première utilisation). L'utilisation d'une telle couche de réplication (livré sous la forme d'un driver) est absolument transparente pour les applications ENDB Version améliorée du driver NBD (Network Block Device) que l'on trouve habituellement sous Linux. Ce driver nous permet de disposer en local d'une ressource présente sur un serveur Les utilisations des clusters dans les entreprises Page : 14
distant ; Les échanges de données se faisant par l'intermédiaire du réseau. L'accès aux données est ensuite absolument transparente pour le système et les applications. SafeKit [13] Ce produit de la société Evidian (Groupe BULL) offre un large panel de solutions clefs en main pour répliquer des données, équilibrer la charge et basculer des services dans des clusters Linux. Il fonctionne, au moins sur la partie réplication, sur un principe équivalent à DRBD. NFS Ce produit de la société Evidian (Groupe BULL) offre un large panel de solutions clefs en main pour répliquer des données, équilibrer la charge et basculer des services dans des clusters Linux. Baie de stockage partagée Plutôt que de chercher à répliquer les données entre tous les noeuds d'un cluster, une solution idéale consiste à utiliser une baie de disques partagée pour stocker les données. Afin d'éviter les accès concurrents, seul un noeud du cluster à la possibilité de monter les données présentes sur la baie. En cas de panne, le noeud de secours réagit en récupérant la ressource et en redémarrant les services (adresse IP inclus). OpenGFS [15] Le Global File System (GFS) réalisé par la société SISTINA (auteurs de LVM) est un système de fichiers journalisé qui permet de manipuler sans risque des données présentes sur un support de stockage partagé par plusieurs machines. InterMezzo [16] Système de fichiers distribué permettant de propager des modifications apportées à des données entre plusieurs machines CodaFS [17] On pourrait dire que CodaFS est l'ancêtre d InterMezzo car ce dernier est fait par quasiment la même équipe. Il offre donc les mêmes fonctionnalités tout est étant plus stable et plus aboutit au niveau technique RSYNC Petit programme assez sympathique qui peut nous permettre de synchroniser à la demande deux répertoires localisés sur deux machines distantes. CodaFS est un système de fichiers répartis descendant d AFS2. Il est développé à l Université de Carnegie Mellon depuis 1987. C est un système puissant mais aussi gros et complexe. Un de ses principaux avantages est d autoriser les nomades à travailler en mode déconnecter. Les communications entre les serveurs et les clients se font avec les RPC. La sécurité se fait par Kerberos et l emploi d ACL. Sur un poste client, le système de fichier distribué est toujours monté sous /coda. Contrairement à NFS, le client se connecte au système de fichier directement et non à un des serveurs. L utilisateur retrouvera ses données au même endroit quelque soit le client qu il utilise. Les utilisations des clusters dans les entreprises Page : 15
Programme Client Appel Système Retour de l appel système Venus Cache Mgr RPC Serveur VFS NFS E/S EXT2 NOYAU Coda FS Machine client Figure 5 Interaction Coda avec le noyau Supposons que nous souhaitons visualiser le contenu d un de nos fichiers stockés par CODA. Notre commande fera des appels au système de fichiers virtuels (VFS) su noyau LINUX qui les transmettra au module CodaFS. La demande est passée au gestionnaire de cache de Coda, Venus qui vérifiera son cache sur le disque dur du client. Si le fichier existe, Venus répond au noyau sinon il interroge tous les serveurs pour ramener le fichier. Pour des raisons de tolérance aux pannes, le fichier peut exister sur plusieurs serveurs. 3.3.3 Répartition de charge Une solution pour faire de la répartition de charge sous LINUX est LVS (Linux Virtual Server). Commencé en 1998, ce projet combine plusieurs serveurs réels en un unique serveur virtuel. Les applications clientes interagisse avec le cluster comme si il s agissait d un unique serveur bénéficiant d une haute performance et d une haute disponibilité. Réponse Serveur 1 Internet/Intranet Client Requete Retransmission de la Dispatcher requête Serveur 2 Système de fichier partagé Serveur 3 Figure 6 Architecture d'un cluster LVS Comme le montre la Figure 6, LVS est basé sur une architecture trois tiers : Les utilisations des clusters dans les entreprises Page : 16
Un dispatcher (load balancer) sert de frontal avec les clients dont il redistribue les requêtes aux serveurs réels. Les serveurs réels font tourner les services réseaux (Web, email, FTP, DNS). Une solution de stockage partagé fournit un espace de stockage partagé afin que les serveurs disposent des mêmes données. Le dispatcher constitue un point d entrée unique pour le cluster. Un client dirige ses requêtes vers lui qui les transfère vers un des serveurs réels. Ce dernier peut répondre directement aux clients, afin que le dispatcher ne devienne pas un goulot d étranglement (Figure 6). Couplé avec d autres outils que nous avons introduis dans le Tableau 5, LVS est capable de faire de la haute disponibilité (. L idée est de permettre à LVS de détecter les serveurs réels défaillants pour les retirer de sa liste. Dans cet exemple, nous utilisons le logiciel mon. La solution stockage partagé sera rendue plus sure par Coda, un système de fichier distribué et tolérant aux fautes. Une fois, ces améliorations achevées, le dispatcher est une ressource critique. Nous pouvons lui adjoindre un serveur de secours qui prendra la main quand Heartbeat détectera une défection du dispatcher actif. Le logiciel fake permettra au dispatcher de secours de récupérer l adresse IP du dispatcher défaillant. La Figure 7 illustre cet exemple : mon Serveur 1 Dispatcher Internet/Intranet Client fake mon Retransmission de la requête Serveur 2 Système de fichier distribué Coda Dispatcher Serveur 3 Figure 7 - Haute disponibilité de LVS Les utilisations des clusters dans les entreprises Page : 17
4. Clusters de répartition de charge La répartition de charge ou load-balancing est un mécanisme très utilisé dans le domaine des entreprises, elle permet de répartir l exécution des processus ou des flux réseaux vers les différents nœuds de notre cluster en fonction du type de service attendu et de la charge des différents nœuds. Le load-balancer (Node Server) a pour rôle d aiguiller le trafic en fonction de plusieurs critères de service et d indices de congestion des différents noeuds, on parle d «équilibrage de charge», le traitement de la requête est alors optimale (Qualité de services). Exemple : Figure 8 : Architecture simpliste Un cluster server (load-balancer) reçoit les requêtes de services provenant de l Internet est les réparti entre deux serveurs. A noter qu un système très simple de load-balancing pourrait être l utilisation du mécanisme de Round Robin du DNS qui lors de la résolution de nom donnerait à tour de rôle l adresse IP du serveur 1 et du serveur2. 4.1 Illustration de load-balancing pour un serveur WEB Plusieurs serveurs travaillant conjointement pour gérer le trafic HTTP provenant d'internet constituent un exemple de cluster d'équilibrage de la charge réseau. Chaque serveur exécute une instance du serveur Web, et toutes les requêtes de clients sont réparties entre les serveurs du cluster. Cette approche permet d'accélérer le traitement normal de telle sorte que les clients Internet obtiennent un délai d'exécution plus rapide de leurs requêtes. Toutes les instances du serveur Web s'exécutent indépendamment et accèdent uniquement à leurs disques locaux pour récupérer des pages Web. En général, elles ne partagent pas d'informations sauf en cas d'accès à une base de données principale dans certaines applications (type 3-tiers). Les utilisations des clusters dans les entreprises Page : 18
Dans le cas où un serveur présente une défaillance ou est placé en mode hors connexion, l'équilibrage de la charge réseau détecte automatiquement le problème et redistribue le trafic HTTP sur les serveurs restants, assurant ainsi la continuité du service aussi longtemps qu'au moins un serveur est disponible. Les connexions actives à un serveur défaillant sont perdues au moment où le serveur est mis hors connexion ; toutes les autres connexions restent inchangées. Les clients touchés par la panne du serveur établissent une nouvelle connexion avec un serveur survivant du cluster. 4.2 Les architectures n-tiers 4.2.1 Plusieurs couches logiques avec un rôle spécifique Hors mis la gestion du trafic http classique, actuellement de nombreux sites Web ont une architecture un peu plus complexe, alliant Base de données et composants métiers (chargé d effectuer un traitement précis), on peut alors envisager d utiliser un cluster d'équilibrage de la charge réseau pour adapter et équilibrer la charge des composants métiers Les serveurs qui exécutent des composants métiers constituent souvent des éléments clés des sites de commerce électronique. L'évolutivité (capacité que possède une application à accepter un nombre croissant d'utilisateurs) et la disponibilité sont obtenues à l'aide d'équilibreurs de charge et par mise en cluster, applications en différentes couches. Nous utiliserons par la suite l abréviation EA (Enterprise Application) pour nommer l Application d entreprise. Couches application d'entreprise. L'application d'entreprise située à l'extrémité serveur peut être subdivisée en plusieurs "couches" logiques. Ces couches sont des subdivisions logiques des services applicatifs, mais pas nécessairement des divisions physiques entre matériels et logiciels. Dans certains cas, toutes ces couches peuvent être exécutées sur le même ordinateur. Couche web. Cette couche fournit un contenu statique (Pages Html statiques) au client. Il s'agit en principe de l'extrémité frontale de l EA. Une EA simple possède une couche web qui peut être dotée d'un ou plusieurs ordinateurs exécutant un serveur Web (Apache, Netscape Entreprise Server,IIS ). L'équilibreur de charge transmet les requêtes à la couche web. Couche de présentation. La couche de présentation fournit un contenu dynamique (servlets, asp, jsp ) aux clients de l'ea. En règle générale, la couche de présentation comprend un cluster de serveurs (Tomcat, WebLogic, WebSphere, MTS/IIS) qui héberge les composants dynamiques d affichage. Si ce cluster dessert également des pages Html statiques à votre application, il englobe à la fois la couche web et la couche de présentation. Les utilisations des clusters dans les entreprises Page : 19
Couche objet. La couche objet fournit en ensemble d objets métiers (EJB,COM ), et leur logique opérationnelle associée, à une EA. Figure 9 Schéma global de l'architecture dite à 3 niveaux (3-tiers) Les utilisations des clusters dans les entreprises Page : 20
4.3 Topographie des différents types de clusters En regroupant logiquement ces couches en une ou plusieurs couches, il est possible de produire différentes architectures de cluster. Sur la base des couches logiques décrites ci-dessus, plusieurs architectures permettent de regrouper en cluster des EA. Le choix d'une architecture pour une EA dépend largement du modèle d'utilisation et du type de l'application. 4.4 Cluster à une seule couche (cluster de base) Le cluster sur une seule couche constitue la forme la plus simple. Dans ce type d'architecture, chaque ordinateur du cluster exécute toutes les couches simultanément Figure 10 Cluster à une seule couche L'équilibreur de charge distribue les requêtes entre les différents serveurs du cluster. Avantages: Facile à administrer Performances élevées Toutes les couches étant localisées au même endroit; il n'y a pas de trafic réseau consacré à la communication entre couches. Les utilisations des clusters dans les entreprises Page : 21
Montée en puissance facile Globalement, l'équilibreur de charge transmet les requêtes du client au serveur, dans la plupart des cas par l'intermédiaire d'une distribution circulaire. Il ne prend pas en compte l'utilisation des ressources pour effectuer l'équilibrage de charge. Les serveurs peuvent dans cette architecture, à un moment donné, posséder une charge inégale, ce qui peut dégrader leurs performances. De plus, la défaillance d'un serveur lors du traitement d'une requête peut devenir visible pour le client, car le serveur incriminé ne peut pas transférer des requêtes vers d'autres serveurs en cas de panne. Dans cette architecture, les possibilités d'offrir un équilibrage de charge et une résilience de la reprise à chaud sont donc réduites. Cette architecture est rarement utilisée dans les applications d'entreprise. 4.5 Cluster à deux couches, disponibilité et évolutivité élevées Dans le cluster à deux couches, trois couches de base sont regroupées en deux couches logiques. Les couches sont plus nombreuses que les groupes logiques, et elles ne peuvent fonctionner que dans un ordre spécifique. Figure 11 Cluster à deux couches Deux méthodes existent alors pour regrouper trois couches en deux dans les conditions décrites ci-dessus. Dans ce type d'architecture, les couches web et de présentation sont exécutées sur des ordinateurs distincts qui fonctionnent conjointement dans un cluster appelé cluster du serveur web. Les utilisations des clusters dans les entreprises Page : 22
Une couche objet est exécutée simultanément sur tous les ordinateurs du cluster. Dans ce cas, les couches de présentation et objet résident sur des ordinateurs différents; il est donc la possible d'équilibrer la charge sur la couche objet. Cette opération est réalisée au moyen de modules "sensibles à la réplication". Le serveur d'applications crée ces modules au moment du déploiement des objets (EJB). Les modules sensibles à la réplication connaissent d'autres serveurs du cluster qui hébergent des objets et contiennent un algorithme d'équilibrage de charge. Tous les appels de méthode vers la couche objet sont équilibrés en charge par ces modules sensibles à la réplication. Par conséquent, ces modules font essentiellement office d'équilibreur de charge entre les couches de présentation et objet. Le cluster à deux couches est largement utilisé entre différentes applications d'entreprise. Figure 12 Clustering à deux couches avec les couches sur le même ordinateur Dans la figure ci-dessous : Clustering à deux couches avec les couches sur le même ordinateur, le PPI assure l'équilibrage de charge (distribution circulaire) entre les couches web et de présentation. Toutefois, ces couches sont exécutées sur le même ordinateur. En conséquence, dans cette architecture, les possibilités d'équilibrage de charge entre les couches de présentation et objet sont réduites. C'est pourquoi l'architecture décrite à la figure B est préférable. Les utilisations des clusters dans les entreprises Page : 23
4.6 Cluster multicouches, complexe mais disponibilité extrême Dans un cluster multicouche, chaque couche (web, présentation et objet) s'exécute sur un ordinateur distinct et forme un cluster avec ses propres ordinateurs. Figure 13 Cluster multicouches Dans cette architecture, nous avons trois niveaux d'équilibrage de charge: Niveau 1 Equilibrage de charge avant le cluster de serveur web Niveau 2 Equilibrage de charge entre les couches web et de présentation via PPI Niveau 3 Equilibrage de charge entre les couches de présentation et objet via des modules sensibles à la réplication. Avantages et inconvénients Architecture très complexe Difficile à administrer Evolutivité facile : Haut niveau de disponibilité Pour une application dans laquelle l'utilisation de chaque couche est différente et possède un grand nombre de clients, cette architecture est sans doute la plus adaptée. Les utilisations des clusters dans les entreprises Page : 24
5. Exemples de solutions Il existe énormément de solutions pour mettre en place un cluster et il y en a pour les différents systèmes d'exploitation (propriétaires ou libres). La plupart sont des solutions commerciales, clés en main avec support technique. Mais ces dernières ont un coût non négligeable du aux prix des licences logiciels (souvent une licence par nœud est nécessaire) et au prix du support technique. Il existe aussi des solutions gratuites, à base de logiciels "libres". Le choix se fera donc en fonction du support technique voulu et du budget disponible. Il est possible de mettre en place un cluster à l'aide de n'importe quel système d'exploitation. En effet, il faut que chaque noeud ait accès à un système d'exploitation pour pouvoir fonctionner. Donc soit on installe un système complet sur tout les noeuds, soit on leur met à disposition une image qu'ils iront chercher à chaque lancement. Le cluster ne marche que grâce à une couche logicielle supplémentaire qui permet une communication efficace et l'échange de tâches entre les nœuds. Il suffit donc que cette couche soit présente pour que le système d'exploitation soit capable de faire fonctionner le cluster. 5.1 Clusters Oracle Oracle propose également pour ses serveurs de base de données des mécanismes de Clustering, que ce soit pour la gestion de la charge ou la redondance (haute disponibilité). Une solution récente baptisée Architecture Cache Fusion, permet aux serveurs d'une grappe de partager les données de leur cache. En cas de panne d'un des serveurs, les autres sont capables de restaurer les informations perdues, chaque cache disposant d'une image des autres. Intégrée au nouveau module RAC (Real Application Cluster), successeur de OPS (Oracle Parallel Server), cette technologie permet d'éviter les accès disque coûteux en temps de réponse, et rend en outre possible l'ajout d'un serveur sans remettre en cause l'existant : le nouveau bénéficiant automatiquement des données en mémoire stockées par le cache partagé. 5.2 Clusters Microsoft Depuis la version NT4 de son système d'exploitation Windows, Microsoft propose de mettre en place un cluster constitué de serveurs Microsoft pour répondre aux besoins croissants des entreprises en terme de messagerie électronique, de base de données et depuis quelques années de serveurs WEB ou FTP. Le clustering de Service Il s'agit de réaliser des clusters d'application et de rendu de service. En fait Microsoft propose un cluster de Haute Disponibilité, à tolérance aux fautes. Il permet de fournir une garantie et une qualité de service aux utilisateurs d'applications comme Microsoft SQL Server (SGBD). Le clustering à répartition de charge Ici, Microsoft garantit une répartition de charge réseau sur des flux IP à travers un cluster constitué de 32 nodes au maximum. Typiquement, il s'agit de répartir les charges réseaux d'un serveur WEB, d'un serveur de média,... Les utilisations des clusters dans les entreprises Page : 25
A travers ses solutions, Microsoft vise les entreprises désireuses d'améliorer leur production, en proposant des systèmes permettant d'améliorer et d'accélérer le travail quotidien des employés, mais aussi permettant de réaliser du commerce (comme le e-business) avec un plus grand nombre de clients. Microsoft a implémenté deux technologies de clustering sur ses serveurs Windows 2000 Advanced et Datacenter serveur Le service de cluster MSCS Le service MSCS fournit une haute disponibilité pour les applications critiques, telles que les bases de données, les serveurs de messagerie, serveur de fichier et d impression. Il est possible d implémenter 2 nœuds de serveur lorsque l on se trouve en environnement Windows 2000 Advanced Server et 4 nœuds en environnement Windows 2000 Datacenter Server La version 2003 Server permet qu en a elle d implémenter jusqu à 8 nœuds toutes versions confondues. Network Load Balancing (NLB) NLB permet d équilibrer le trafic IP entrant. A travers différentes règles établies les connexions entrantes sont réparties entre les différents nœuds du cluster, il peut y avoir jusqu à 32 nœuds pour équilibrer la charge IP en mode Network Load Balancing. Le service d'équilibrage de charge de réseau augmente la disponibilité et la montée en charge des applications serveur basées sur l accès Internet, tels que des serveurs WEB, des serveurs médias streaming, serveur Windows Terminal serveur ou autres. Il existe une troisième technologie de clustering implémentée sur les serveurs Application Center. Component Load Balancing (CLB) - Application Center 2000 Equilibrage de Composants, le service CLB est intégré à Application Center 2000 (ou versions antérieures), ce type de clustering permet de répartir la charge sur plusieurs nœuds du cluster, pour les applications basées sur la technologie des objets COM et COM+ (composants métiers), une mise a jour pour les objets WMI et la gestion du framework.net est désormais disponible. On parle de clustering d'application dit clustering de puissance Exemple d utilisation: L'architecture CLB est souvent couplé à la l'architecture de cluster NLB, dans le cas de serveur WEB basé sur le commerce électronique Rôle de NLB: Répartition des connexions IP et requêtes distantes Répartition de la charge et bande passante sur les nœuds Connexion au site web. Rôle de CLB Répartition des appels sur les modules d'applications hébergés sur le cluster Les utilisations des clusters dans les entreprises Page : 26
Système d exploitation Edition Network Load Balancing (NLB) Component Load Balancing (CLB) Server Cluster Windows 2000 Advanced Server 32 8 2 Datacenter Server 32 8 4 Windows Server 2003 Enterprise Server 32 8 8 Datacenter Server 32 8 8 Tableau 6 comparatif des produits de Clustering de Microsoft Les utilisations des clusters dans les entreprises Page : 27
Le concept de cluster Microsoft Tableau 7 Architecture globale du cluster Microsoft Un serveur de cluster Microsoft est un groupe de serveurs gérant des ressources stockées sur des disques partagés. Les noeuds et les disques sont connectés par un bus de liaison (SCSI ou Fibre Channel). Les données publiques sont appelées ressources, chaque disque du bus partagé représente un groupe de ressources; pour publier un groupe de ressources accessible par les clients externes, il est nécessaire de créer un serveur virtuel en lui adressant une adresse IP virtuelle et un nom d'hôte. Lorsqu un client externe se connecte pour faire une requête sur les données, celle-ci transite par le serveur virtuel, qui fait office de «passerelle» entre les nœuds connecté aux disques partagés du cluster et le client, ainsi l architecture du cluster est transparente du côté client. La connexion à un serveur virtuel se fait de manière tout à fait classique, par adresse IP ou nom d'hôte. Par défaut chaque groupe de ressources est attribué à un nœud. Dans le cas où le noeud a une défaillance quelconque, l autre nœud prend en charge les groupes de ressources de son homologue, et répond aux requêtes distantes. C est la phase de basculement entre les 2 noeuds, appelé failover, en conséquent la mise en place d'un cluster permet d avoir une disponibilité des ressources proche de 100%. Les utilisations des clusters dans les entreprises Page : 28
La Phase de Basculement : le failover En cas de défaillance du noeud il y a un basculement automatique de prise en charge de toutes les ressources vers l'autre noeud du cluster, ce processus est appelé failover. Figure 14 Mécanisme du failover 1-Le client envoie une requête sur le serveur virtuel géré par le nœud 1. 2-Le nœud 1 ne peut pas répondre au client car il est hors service 3-Le nœud 1 n émet plus de heartbeat sur le réseau privé ce qui entraîne le basculement des ressources du nœud 1 vers le nœud 2 4-Le nœud 2 prend le relais et publie les ressources du serveur virtuel 1 pour les clients externes 5-La requête client est alors correctement acheminé et la mise hors service du nœud 1 est obsolète pour le client. Les utilisations des clusters dans les entreprises Page : 29
La Phase de Basculement : le failback Après les diverses opérations de maintenance et/ou de remise à niveau sur le noeud hors ligne, la remise en production se fait grâce au procédé de failback. Il est possible de paramétrer l'instant où le serveur sera remis en production dans le cluster. Il est préférable dans le cas d'un failback de restaurer le noeud durant les périodes creuses des entrées sorties sur le cluster, la nuit ou le matin avant l'arrivée des utilisateurs. Le nœud reprend ensuite le management des groupes de ressources qui lui étaient attribués initialement. Figure 15 Mécanisme du failback 1-Le problème technique est résolu et le noeud est remis en production. 2-Les datagramme UDP, battements de coeurs sont de nouveaux générés sur le réseau entre les deux noeuds 3-Depuis le réseau privé, le noeud 2 est informé de la remise en production du noeud 1 Les groupes de ressources qui étaient initialement attribués au noeud 1 lui sont alors restitué. 4-Le noeud 1 synchronise les groupes de ressources et les publie via le serveur virtuel (dont l'ip n'a pas changé). 5-Les clients peuvent continuer à faire leur requête, et le failback reste obsolète du côté client, on peut note parfois en fonction des applications utilisées un micro-coupure de connexion au serveur. Les utilisations des clusters dans les entreprises Page : 30
Compatibilités des applications avec le clustering Microsoft Une ressource est une entité logicielle qui est publiée sur un serveur virtuel. Elle est ensuite automatiquement partagés et accessible par tous les clients disposant des droits d'accès sur celle-ci. Les ressources sont stockées physiquement sur les disques partagés. Les applications aware Possèdent un mode de mise en cluster, l'implémentation en mode clustering de ces applications est facilité par des API intégrées aux logiciels ou DLL dédiées au service de cluster. Une partie de l application est installée sur le bus de disques partagés ainsi que les paramètres de l application et une partie de la base de registre. Ainsi lors d un failover, le nœud qui remplacera le nœud défaillant, reprendra la même configuration logicielle. Exemple : SQL serveur, Exchange 2000 serveur, Back Office. Les applications unaware Ces logiciels n ont pas d API permettant de gérer le service de cluster, la gestion du service de cluster MSCS se fait uniquement par l appel de DLL. Les applications unaware ont un statut de ressources génériques. Vous ne pouvez pas configurer ces applications avec la console «Cluster Administrator Tools». Lors d un basculement (Fail-Over), les applications sont mises hors service sans attente de la fin des opérations en cours. Inconvénients majeurs des clusters Microsoft Coût des licences Compatibilité uniquement avec les produits Microsoft (ou certifiés) Avantages Fonctionne vraiment très bien avec les produits Microsoft Facilité d administration Assistance relativement performante. Permet de rester fidèle aux choix de l entreprise «Full Microsoft» (Homogénéité) Les utilisations des clusters dans les entreprises Page : 31
5.3 Clusters Linux L'alternative, aux clusters chers, est Linux. Il suffit de posséder quelques PC, une distribution Linux et quelques logiciels permettant de réaliser la parallélisation entre les nodes du système. Toutefois, il faut savoir que de nombreuses personnes ont déjà effectué des recherches et mises en oeuvre des clusters en développant des applications Open Source et donc disponible sur le réseau en version gratuite. En fait, le caractère quasi gratuit de ce type de clustering réside dans le fait que le système n'est pas livré clé en main et nécessite donc un investissement humain important pour le mettre en place. De plus, la mise en oeuvre de ce type de solution n'est pas aisée et demande de bonnes compétences en informatique et réseaux, et de bonnes connaissances du monde Linux, mais surtout un travail de patience et de passionné. Enfin, dans un dernier temps, il faut trouver le meilleur support et le meilleur emplacement qui mettront en valeur le système réalisé. Pour l'administrateur, il s'agira de trouver le meilleur matériel et de placer son système là où il est le plus attendu. 5.3.1 Les Cluster Beowulf Le premier cluster Beowulf a été développé à la NASA en 1994. Il tire son nom d un héro légendaire scandinave, décris dans un des plus ancien poème anglais. Doté d une grande force, il vainquit un monstre nommé Grendel. Le but du projet était, pour des raisons de coût, de n utiliser que du matériel standard. Dans la pratique, deux classes se distinguent : Classe I : les machines sont fabriquées à partir d équipements standards. C est à dire des composants vendus à grand échelle par plusieurs fournisseurs. Cela garantit une maintenance à prix réduit ainsi qu une indépendance vis à vis des fournisseurs. Class II : les machines intègrent des composants spécifiques provenant d un seul fournisseur. Elles sont plus chères. Mais leur homogénéité permet d atteindre des performances et une fiabilité plus grande que la classe I. Il n existe pas de distribution logicielle Beowulf. Il faut réunir soit même des composants logiciels pour bâtir ce type de cluster. Les principaux sont une API de message passing telle que PVM et MPI. Ensuite, il est possible d ajouter des patchs au noyau LINUX comme le channel bonding ou le global pid space (qui vous permet de voir touts les processus sur le cluster avec une seule commande ps) ou comme DIPC (qui vous permet d utiliser de la mémoire partagée de façon transparente). Un cluster Beowulf est donc composé uniquement d éléments physiques et logiciel standards. Les utilisations des clusters dans les entreprises Page : 32
Historique 5.3.2 OpenMosix : un exemple de clustering simple et efficace. Moshe Bar, l initiateur d openmosix, a participé pendant de nombreuses années au développement de Mosix. Fin 2001, il fut décidé que Mosix serait placé sous une licence non-gpl. Évidemment, les divergences d opinion ne se firent pas attendre, surtout entre le Pr. Barak, manager du projet Mosix, qui possède aujourd hui tous les droits sur Mosix, et Moshe Bar, co-manager du projet à l époque. Il y avait environ un millier d installations de Mosix recensées dans le monde. Moshe Bar décida tout de même de continuer le développement d un Mosix libre sous licence GPL, car la plupart des utilisateurs étaient également mécontents du changement de licence soudain. openmosix était né. openmosix est donc, à l origine, un clone de Mosix : aujourd hui, un an après la création d openmosix, il ne reste (presque) plus de code de Mosix dans openmosix et on compte une douzaine de développeurs pour openmosix, contre quatre seulement pour Mosix. Présentation d openmosix Il s agit d une solution de clustering pour Linux (open source Gnu Public license) qui permet d utiliser la technologie du clustering sans modifier ni recompiler la moindre application (hors mis le noyau Linux). OpenMosix offre à Linux une solution de clustering plutôt intéressante, en utilisant une méthode proche de celle du load-balancing. L idée est la suivante : nous disposons d un cluster composé de machines. Imaginons qu à un instant donné, un noeud ait à exécuter plusieurs tâches demandant un temps CPU important, alors que ses voisins sont complètement inactifs : OpenMosix va alors prendre la décision de migrer certains processus demandant un temps CPU important sur les noeuds les plus puissants et les plus inactifs du cluster, afin d équilibrer la charge totale sur le maximum de noeuds. La migration des processus est totalement transparente! Grâce à OpenMosix, nous allons pouvoir transformer un groupe de machines en une sorte de machine virtuelle multiprocesseur (SMP) ; à la différence près que sur une machine multiprocesseur, les échanges de données entre processeurs se font extrêmement rapidement, alors qu ici nous allons passer par une connexion réseau. Il est conseillé d utiliser au moins du Fast Ethernet, voire du Gigabit Ethernet pour minimiser les temps de migrations des processus. Au pire, si le Gigabit est trop cher pour vous, vous pouvez faire du «bonding «de plusieurs interfaces Fast Ethernet (fusionner plusieurs interfaces Ethernet afin d augmenter le débit total). Autre avantage : OpenMosix permet de créer un cluster de plusieurs dizaines, voire centaines de noeuds avec des machines tout à fait ordinaire. Malgré tout OpenMosix fonctionne comme un système SMP, c est-à-dire qu il ne pourra pas faire tourner une application sur plusieurs noeuds à la fois (sauf si celle-ci se découpe en plusieurs processus). L application sera juste migrée sur le noeud le plus rapide et le plus inactif. Par conséquent, si nous n avons jamais plus de trois processus gourmands en CPU et/ou en mémoire qui tournent au même moment, ce n est pas la peine d avoir plus de trois noeuds! À noter que depuis peu, OpenMosix possède un système d auto détection des nouveaux noeuds du cluster, ainsi qu une distribution sur CD (ClumpOS) permettant d ajouter des noeuds à la volée dans un cluster. Les utilisations des clusters dans les entreprises Page : 33
Nous constatons que la machine 2 est hors service! Figure 16 Aperçu de l interface d OpenMosix En guise de conclusion, nous pouvons dire qu OpenMosix est donc une formidable solution de clustering pour Linux. Cependant, il faut voir à ce que les applications utilisent vraiment beaucoup de CPU et soient plusieurs à tourner en même temps. (OpenMosix correspond à des besoins très précis en clustering : Il agit comme un répartiteur de charge entre processus, il réparti non pas le calcul mais le multitâche entre plusieurs machines). Les utilisations des clusters dans les entreprises Page : 34
5.4 Exemples de Clusters dans le monde Earth Simulator Architecture NEC SX 640 nodes 8 processeurs par node 16 Gb de mémoire vive par node 40 TéraInstructions par seconde 10 TéraOctets de mémoire totale 700 TéraOctets de disque dur Cet ordinateur virtuel constitue le plus gros cluster au monde. Il permet de simuler l'activité climatique de la Terre grâce à la récupération de nombreuses données venant des satellites et de nombreux points d'observation. Il est entre autre capable de simuler l'impact de pollutions maritimes et environnementales. Enfin, sa dernière utilisation réside dans l'étude des phénomènes terrestres tels que la tectonique des plaques et les tremblements de terre. ASCI White Processeurs IBM RS6000 SP Power3 à 375 MHz 12,3 trillions d'instructions par seconde 8192 processeurs 6 TéraOctets de mémoire totale Ce cluster est le second plus grand au monde. Sa taille est équivalente à celle de deux terrains de basket côte à côte. Il s'appuie sur des applications développées en langages C/C++ et Fortran. Il est utilisé par l'armée américaine pour effectuer des tests sur ses armes nucléaires : - sécurité des centres de stockages - contrôle du vieillissement Ce cluster constitue un prototype. En 2005, la seconde génération devra être capable de calculer 100 trillions d'instructions par seconde. Les utilisations des clusters dans les entreprises Page : 35
6. Conclusion La notion de cluster est apparue dés 1950 avec les machines SAGE d IBM pour remplacer les architectures de supercalculateur très onéreuses et offrant une haute disponibilité très limitée. Très rapidement trois types firent leur apparition : Cluster de calculs Cluster de haute disponibilité Cluster de répartition de charge (très utilisé dans le domaine du commerce électronique) La mise en place d un cluster haute disponibilité est avant tout une affaire politique. - Quel taux de panne toléré pour un service donné? - Quel est le niveau de service à rendre pour les utilisateurs (qui acceptent de moins en moins les ruptures de continuité de service)? Dans tous les cas, le coût de l administration est à prendre en compte. Il faut également se poser la question de l administration des clusters (solutions de déploiement, monitoring, soumission d un batch, ensemble de machines vu comme une seule). Après le choix de telle ou telle solution, dépend des choix politiques de votre entreprise (homogénéité), du coût du matériel et logiciel, sans pour autant délaisser l assistance technique fournie. Le coût de possession (Total Cost of Ownership) est souvent le critère qui motive le choix d une solution.il représente toutes les charges, directes et indirectes, de l'exploitation d'un système. Il doit en particulier tenir compte des frais de formation, du temps d'indisponibilité du système, de la facilité ou de la difficulté. Le clustering ne cesse de se développer. Le Grid Computing est l une des évolutions majeures de celui-ci. Il généralise la notion de cluster, les nœuds n étant plus contraints à être sur le même réseau local (LAN) mais ceci fait l objet d une autre recherche bibliographique Les utilisations des clusters dans les entreprises Page : 36
7. Sources bibliographiques [1] Haute Disponibilité sous Linux : http://www.linux-ha.org/ [2] Network UPS Tools (NUT) : http://www.networkupstools.org/ [3] RAID : http://people.redhat.com/mingo/raidtools/ et http://www.cse.unsw.edu.au/~neilb/source/mdadm [4] Channel Bonding : http://www.sourceforge.net/projects/bonding [5] Heartbeat : http://www.linux-ha.org/download/ [6] Fake : http://www.vergenet.net/linux/fake/ [7] FailSafe : http://oss.sgi.com/projects/failsafe/ [8] LVS : http://www.linuxvirtualserver.org/ [9] Keepalived : http://keepalived.sourceforge.net/ [10] LVM : http://www.sistina.com/lvm [11] EVMS : http://evms.sourceforge.net/ [12] DRBD : http://www.drbd.org/ [13] SafeKit : http://www.evidian.com/ [14] GFS : http://www.sistina.com/products_gfs.htm [15] OpenGFS : http://lionel.tricon.free.fr/articles/ha/="http://opengfs.sourceforge.net" [16] InterMezzo : http://www.inter-mezzo.org/ [17] CodaFS : http://www.coda.cs.cmu.edu/ [18] MySQL : http://www.mysql.com/ [19] PostgreSQL : http://www.postgresql.org/ [20] PCIMG Hot-Swap site : http://www.sourceforge.net/projects/pcimg212-hs [21] Mon : http://www.kernel.org/software/mon/ [22] lm_sensors : http://secure.netroedge.com/~lm78/ [23] Wake On Lan : http://www.scyld.com/expert/wake-on-lan.html [24] Liste de matériels supportés : http://www.redhat.com/docs/manuals/enterprise/rhel-as-2.1-manual/cluster-manager/ch-hardware.html [25] Convolo Cluster Dataguard Edition : http://www.missioncriticallinux.com/products/ [26] Cluster Kimberlite : http://oss.missioncriticallinux.com/ [27] Red Hat Cluster Manager : http://www.redhat.com/software/rha/cluster/manager [28] HP Serviceguard : http://www.hp.com/go/ha/ [29] Ultramonkey : http://www.ultramonkey.org/ [30] Piranha : http://www.redhat.com/software/rha/cluster/piranha/ [31] Alinka raisin : http://www.alinka.com/ [32] High Availability Cluster Checklist : http://www.linuxjournal.com/print.php?sid=4344 [33] Livre blanc Alcove sur la Haute Disponibilité : http://www.alcove.fr/fr/alcove/ressources/whitepapers/white_paper_ha.pdf CETMEF (Ministère Equipement, Transports, Aménagement du territoire, du Tourisme et de la Mer) : http://www.cetmef.equipement.gouv.fr 3IE (Institut d innovation Informatique pour l entreprise) : http://www.3ie.org GNU - LINUX Magazine ZDnet Microsoft TechNet Etude Statistiques de l indisponibilité du «Contingency Planning Research Laboratoire Microsoft - Sup info -: http://www.laboratoire-microsoft.org Les utilisations des clusters dans les entreprises Page : 37