Introduction : systèmes informatiques en cluster. L'histoire du projet Beowulf. Architecture de cluster évolutive

Développement rapide technologies de l'information, la croissance des données traitées et transmises et en même temps les exigences croissantes de fiabilité, de disponibilité, de tolérance aux pannes et d'évolutivité nous amènent à porter un regard neuf sur la technologie de clustering déjà loin d'être jeune. Cette technologie vous permet de créer des systèmes assez flexibles qui répondront à toutes les exigences ci-dessus. Il serait faux de penser que l'installation d'un cluster résoudra absolument tous les problèmes. Mais il est tout à fait possible d'obtenir des résultats impressionnants grâce au clustering. Il vous suffit de comprendre clairement de quoi il s'agit, quelles sont les différences les plus importantes entre leurs variétés individuelles, et également de connaître les avantages de certains systèmes - en termes d'efficacité de leur application dans votre entreprise.

Les analystes d'IDC ont calculé que la taille du marché des clusters en 1997 n'était que de 85 millions de dollars, alors que l'an dernier ce marché valait déjà 367,7 millions de dollars.

Alors, essayons de mettre les points sur les "i". À ce jour, il n'existe pas de définition claire d'un cluster. De plus, il n'y a pas une seule norme qui réglemente clairement le cluster. Cependant, ne désespérez pas, car l'essence même du clustering n'implique le respect d'aucune norme. La seule chose qui détermine qu'un cluster est un cluster est l'ensemble des exigences imposées à de tels systèmes. Nous listons ces exigences (quatre règles) : l la fiabilité ; l la disponibilité de la fonction (disponibilité) ; l la scalabilité ; l la puissance de calcul. Sur cette base, nous formulons la définition d'un cluster. Un cluster est un système de périphériques arbitraires (serveurs, lecteurs de disque, systèmes de stockage, etc.) qui offre une tolérance aux pannes de 99,999 % et satisfait également les « quatre règles ». Par exemple : un cluster de serveurs est un groupe de serveurs (communément appelés nœuds de cluster) connectés et configurés de manière à fournir à l'utilisateur un accès au cluster en tant que ressource cohérente unique.

tolérance aux pannes

Sans aucun doute, la principale caractéristique d'un cluster est la tolérance aux pannes. Ceci est également confirmé par une enquête auprès des utilisateurs : 95 % des personnes interrogées ont répondu qu'elles avaient besoin de fiabilité et de tolérance aux pannes dans les clusters. Cependant, ces deux notions ne doivent pas être confondues. La tolérance aux pannes fait référence à la disponibilité de certaines fonctions en cas de panne, c'est-à-dire à la redondance des fonctions et à l'équilibrage de charge. Et la fiabilité s'entend comme un ensemble de moyens permettant d'assurer une protection contre les défaillances. Ces exigences de fiabilité et de tolérance aux pannes des systèmes en cluster sont dues aux spécificités de leur utilisation. Prenons un petit exemple. Le cluster sert le système de paiement électronique, donc si le client à un moment donné se retrouve sans service pour la société exploitante, cela lui coûtera cher. En d'autres termes, le système doit fonctionner en continu 24 heures sur 24, sept jours sur sept (7-24). Dans le même temps, une tolérance aux pannes de 99 % n'est manifestement pas suffisante, car cela signifie que près de quatre jours par an Système d'Information l'usine ou l'opérateur sera inutilisable. Cela peut ne pas sembler si long, étant donné le travail de prévention et Entretien systèmes. Mais le client d'aujourd'hui est absolument indifférent aux raisons pour lesquelles le système ne fonctionne pas. Il a besoin de services. Ainsi, 99,999% devient un chiffre acceptable pour la tolérance aux pannes, ce qui équivaut à 5 minutes par an. De tels indicateurs peuvent être atteints par l'architecture du cluster elle-même. Prenons un exemple de cluster de serveurs : chaque serveur du cluster reste relativement indépendant, c'est-à-dire qu'il peut être arrêté et éteint (par exemple, pour une maintenance ou l'installation d'équipements supplémentaires) sans perturber le cluster dans son ensemble. L'interaction étroite des serveurs formant un cluster (nœuds de cluster) garantit performance maximum et un temps d'arrêt minimal de l'application du fait que : l en cas de panne logicielle sur un nœud, l'application continue à fonctionner (ou redémarre automatiquement) sur les autres nœuds du cluster ; l panne ou panne du nœud (ou des nœuds) du cluster pour quelque raison que ce soit (y compris les erreurs humaines) ne signifie pas une défaillance du cluster dans son ensemble ; l les travaux de prévention et de réparation, la reconfiguration et le changement de versions logicielles peuvent dans la plupart des cas être effectués sur les nœuds du cluster un par un, sans interrompre le fonctionnement des applications sur d'autres nœuds du cluster. Les temps d'arrêt éventuels qui ne peuvent pas être évités par les systèmes normaux du cluster entraînent une dégradation des performances (si les nœuds tombent en panne) ou une dégradation significative des performances (les applications ne sont indisponibles que pendant une courte période). nécessaire pour basculer vers un autre nœud), ce qui permet un niveau de disponibilité de 99,99 %.

Évolutivité

Le coût élevé des systèmes de cluster est dû à leur complexité. Par conséquent, l'évolutivité du cluster est tout à fait pertinente. Après tout, les ordinateurs dont les performances satisfont aux exigences d'aujourd'hui ne les satisferont pas nécessairement à l'avenir. Avec presque toutes les ressources du système, tôt ou tard, on doit faire face à un problème de performances. Dans ce cas, deux options de mise à l'échelle sont possibles : horizontale et verticale. La plupart des systèmes informatiques offrent plusieurs façons d'améliorer leurs performances : ajouter de la mémoire, augmenter le nombre de processeurs dans les systèmes multiprocesseurs ou ajouter de nouveaux adaptateurs ou lecteurs. Cette mise à l'échelle est appelée mise à l'échelle verticale et vous permet d'améliorer temporairement les performances du système. Cependant, le système sera défini sur la quantité maximale de mémoire, de processeurs ou de disques prise en charge, et les ressources système seront épuisées. Et l'utilisateur sera confronté au même problème d'amélioration des performances du système informatique qu'auparavant.La mise à l'échelle horizontale offre la possibilité d'ajouter des ordinateurs supplémentaires au système et de répartir le travail entre eux. Alors les performances nouveau système va généralement au-delà de la précédente. Une limitation naturelle d'un tel système serait Logiciel que vous décidez de courir dessus. L'exemple le plus simple d'utilisation d'un tel système est la répartition de diverses applications entre différents composants du système. Par exemple, vous pouvez déplacer votre applications bureautiques d'un nœud de cluster d'applications Web à un autre, des bases de données d'entreprise à un troisième. Cependant, cela pose la question de l'interaction de ces applications entre elles. Encore une fois, l'évolutivité est généralement limitée aux données utilisées dans les applications. applications diverses qui nécessitent un accès aux mêmes données, une méthode est nécessaire qui permette d'accéder aux données de différents nœuds d'un tel système. La solution dans ce cas, ce sont des technologies qui, en fait, font du cluster un cluster, et non un système de machines connectées entre elles. Dans le même temps, bien sûr, la possibilité d'une mise à l'échelle verticale du système de cluster demeure. Ainsi, grâce à la mise à l'échelle verticale et horizontale, le modèle de cluster offre une protection sérieuse des investissements des consommateurs.Comme variante de la mise à l'échelle horizontale, il convient également de noter l'utilisation d'un groupe d'ordinateurs connectés via un commutateur qui répartit la charge (technologie Load Balancing ). Nous parlerons en détail de cette option plutôt populaire dans le prochain article. On ne note ici que le faible coût d'une telle solution, qui est principalement la somme du prix d'un switch (6 000 $ ou plus, selon les équipements fonctionnels) et d'un adaptateur hôte (de l'ordre de plusieurs centaines de dollars chacun ; bien que , bien sûr, vous pouvez utiliser des cartes réseau ordinaires). Ces solutions trouvent leur utilisation principale dans les sites Web à fort trafic où un seul serveur ne peut pas gérer toutes les demandes entrantes. La possibilité de répartir la charge entre les nœuds de serveur d'un tel système vous permet de créer un seul site Web sur plusieurs serveurs.

Beowulf ou puissance de calcul

Souvent, des solutions similaires à celles décrites ci-dessus sont appelées le cluster Beowulf. De tels systèmes sont principalement conçus pour une puissance de calcul maximale. Par conséquent, des systèmes supplémentaires pour améliorer la fiabilité et la tolérance aux pannes ne sont tout simplement pas fournis. Cette solution a un prix extrêmement attractif, c'est probablement pourquoi elle a gagné le plus de popularité dans de nombreux organismes d'enseignement et de recherche. Le projet Beowulf est apparu en 1994 - l'idée est née de créer des systèmes informatiques parallèles (clusters) à partir d'ordinateurs publics basés sur Intel et de réseaux Ethernet peu coûteux, en installant Linux et l'une des bibliothèques de communication gratuites (PVM, puis MPI) sur ces ordinateurs. Il s'est avéré que pour de nombreuses classes de problèmes et avec un nombre de nœuds suffisant, de tels systèmes offrent des performances comparables à celles d'un supercalculateur. Comme le montre la pratique, il est assez simple de construire un tel système. Tout ce qui est nécessaire pour cela est un commutateur haute performance et plusieurs postes de travail (serveurs) connectés à celui-ci avec un système d'exploitation installé. Système Linux. Ce n'est pas sufisant. Pour que ce tas de fer prenne vie, un logiciel spécial pour le calcul parallèle est nécessaire.L'interface de programmation parallèle la plus courante dans le modèle de transmission de messages est MPI (Message Passing Interface). Le nom Message Passing Interface parle de lui-même. C'est un mécanisme bien standardisé pour construire des programmes parallèles dans un modèle de messagerie. Il existe des implémentations gratuites (!) et commerciales pour presque toutes les plates-formes de calcul intensif, ainsi que pour les réseaux de postes de travail UNIX et Windows NT. MPI est actuellement l'interface la plus utilisée et la plus dynamique de sa catégorie. L'implémentation gratuite recommandée de MPI est le package MPICH développé au Laboratoire national d'Argonne. MPI est standardisé par le MPI Forum. La dernière version de la norme est la 2.0. Cette version ajoute des fonctionnalités importantes à MPI telles que le contrôle dynamique des processus, la communication unidirectionnelle (Put/Get), les E / S parallèles.La demande constante de puissance de calcul élevée a créé un marché attractif pour de nombreux fabricants. Certains d'entre eux ont développé propres technologies connexions d'ordinateurs dans un cluster. Les plus célèbres d'entre eux sont Myrinet de MyriCom et cLAN de Giganet. Myrinet est un standard ouvert. Pour le mettre en œuvre, MyriCom propose une large gamme d'équipements réseau à des prix relativement bas. Au niveau de la couche physique, les environnements de réseau SAN (System Area Network), LAN (CL-2) et fibre optique sont pris en charge. La technologie Myrinet offre une grande évolutivité du réseau et est actuellement très largement utilisée dans la construction de clusters hautes performances. Giganet développe des logiciels et du matériel pour une interaction directe des unités centrales de traitement des serveurs de cluster à des vitesses gigabit, en contournant les fonctions du système d'exploitation. Le coût de la solution est d'environ 2 500 $ pour un commutateur à 8 ports, 150 $ pour un adaptateur Myrinet, environ 6 250 $ pour un commutateur à 8 ports et 800 $ pour un adaptateur Giganet. Ce dernier a d'ailleurs reçu le prix Best of Show lors de l'exposition Microsoft Tech Ed 2000. Prenons l'exemple de la mise en œuvre du cluster Beowulf à l'Institut pour le calcul haute performance et les bases de données du Ministère de la politique scientifique et technologique de la Fédération de Russie. Le cluster, appelé "PARITET", est basé sur des composants couramment disponibles pour les ordinateurs personnels et les stations de travail et fournit une performance maximale totale de 3,2 GFLOP/sec. Le cluster se compose de quatre nœuds informatiques à double processeur basés sur des processeurs Intel Pentium II/450 MHz. Chaque nœud dispose de 512 Mo de RAM et d'un disque dur Ultra Wide SCSI de 10 Go. Les nœuds de calcul du cluster sont unis par un switch Myrinet hautes performances (canaux avec une bande passante de 1,28 Go/s, full duplex). Il existe également un réseau redondant utilisé pour la gestion et la configuration (100 Mbit Fast Ethernet). Le système d'exploitation Linux (kit de distribution Red Hat 5.2) est installé sur les nœuds du cluster informatique. Pour la programmation applications parallèles Des interfaces de transmission de messages MPI/PVM sont utilisées.

Mini cluster de Dell et Compaq

En plus de la solution de commutation pour la construction d'un cluster, il existe un certain nombre de solutions - à la fois matérielles et logicielles. Certaines solutions sont complexes et sont livrées « telles quelles » - « tout en un ». La dernière option - appelons-la un "cluster in a box" - est également une solution assez populaire, car elle est conçue pour le marché de masse et est un cluster entrée de gamme(en termes de performances et d'options de mise à l'échelle). Cependant, la construction de tels systèmes, la relation composants internes , la fiabilité et la tolérance aux pannes sont parfaitement compatibles avec les "grands" systèmes. Afin de comprendre le fonctionnement d'un cluster, considérons deux systèmes de production similaires - Compaq et Dell. Les clusters de ces acteurs bien connus du marché informatique sont construits à partir de deux serveurs DELL - PowerEdge 6100 ou PowerEdge 4200 et, à leur tour, Compaq - Proliant 1850R. Le logiciel utilisé est Microsoft Cluster Server (Compaq, Dell) ou Novell High-Availability Services pour NetWare 4.0 / Clustering Services pour NetWare 5.0 (Compaq). Le logiciel vous permet de configurer deux serveurs de sorte que si l'un des serveurs du cluster tombe en panne, son travail et ses applications seront immédiatement transférés automatiquement vers l'autre serveur, éliminant ainsi les temps d'arrêt. Les deux serveurs de cluster fournissent leurs ressources pour effectuer le travail de production, de sorte qu'aucun d'eux n'est inactif en attendant que l'autre tombe en panne. La communication entre les deux serveurs s'effectue via la connexion dite pulsée (Heartbeat) d'une section dédiée du réseau local. Lorsque le serveur principal tombe en panne, le deuxième serveur qui surveille la connexion par pulsation apprend que le serveur principal est en panne et prend en charge la charge de travail qui s'exécutait sur la machine défaillante. Les fonctions exécutées comprennent l'exécution des applications, des processus et des services requis pour répondre aux demandes d'accès des clients à un serveur défaillant. Bien que chacun des serveurs du cluster doive disposer de toutes les ressources nécessaires pour reprendre les fonctions d'un autre serveur, les principales tâches exercées peuvent être complètement différentes. Un serveur secondaire qui fait partie d'un cluster de basculement répond à l'exigence de fournir une capacité de secours automatique, mais il peut également exécuter ses propres applications. Cependant, malgré la duplication massive des ressources, un tel cluster a un "goulot d'étranglement" - l'interface du bus SCSI et du système de mémoire externe partagée, dont la défaillance entraîne l'échec du cluster. Bien que, selon les fabricants, la probabilité que cela soit négligeable, ces mini-clusters sont principalement conçus pour un fonctionnement autonome sans surveillance et administration constantes. Un exemple d'utilisation est une solution pour les bureaux distants de grandes entreprises afin d'assurer une haute disponibilité (7S24) des applications les plus critiques (bases de données, systèmes de messagerie, etc.). Compte tenu de la demande croissante de systèmes d'entrée de gamme puissants mais tolérants aux pannes, le marché de ces clusters semble assez favorable. Le seul "mais" est que tous les consommateurs potentiels de systèmes en cluster ne sont pas prêts à payer environ 20 000 $ pour un système à deux serveurs.

Résidu sec

En résumé, les clusters ont enfin un marché de masse. Une telle conclusion peut facilement être tirée des prévisions des analystes de Standish Group International, qui affirment que dans les deux prochaines années, la croissance mondiale du nombre de systèmes de clusters installés sera de 160 %. De plus, les analystes d'IDC ont calculé que la taille du marché des clusters en 1997 n'était que de 85 millions de dollars, et l'année dernière ce marché valait déjà 367,7 millions de dollars.La tendance à la croissance est évidente. En effet, le besoin de solutions de cluster se pose aujourd'hui non seulement dans les grands centres de données, mais aussi dans les petites entreprises qui ne veulent pas vivre selon le principe "l'avare paie deux fois" et investir leur argent dans des systèmes de cluster hautement fiables et facilement évolutifs. Heureusement, il existe plus qu'assez d'options pour mettre en œuvre un cluster. Cependant, lors du choix d'une solution, il ne faut pas oublier que tous les paramètres du cluster sont interdépendants. En d'autres termes, vous devez clairement hiérarchiser les fonctionnalités requises du cluster, car à mesure que les performances augmentent, le degré de disponibilité (disponibilité) diminue. Augmenter les performances et assurer le niveau de disponibilité requis entraîne inévitablement une augmentation du coût de la solution. Ainsi, l'utilisateur doit faire la chose la plus importante - trouver le juste milieu des capacités du cluster à l'heure actuelle. C'est d'autant plus difficile à faire que les solutions proposées aujourd'hui sur le marché des clusters sont plus variées. Lors de la préparation de l'article, des matériaux provenant de serveurs WWW ont été utilisés : http://www.dell.ru/ , http://www.compaq .ru/ , http://www.ibm.ru/ , http://www.parallel.ru/ , http://www.giganet.com/ , http://www.myri.com/

ComputerPress 10"2000

Université d'État des technologies de l'information et de la communication

abstrait

de la discipline "Circuits informatiques"

sur le thème : "Les systèmes de clusters modernes et leur utilisation"

Réalisé par : élève du groupe KSD-32

Muzalevsky Evgeny


Introduction 3

1. Principes généraux des systèmes de clusters 4

2. Classement 4

3. Utilisation des systèmes de cluster 5

Conclusion 6

Références 6
Introduction

Un cluster est un système multiprocesseur modulaire créé sur la base de nœuds de calcul standard connectés par un support de communication à haut débit. Aujourd'hui, les mots "cluster" et "supercalculateur" sont en grande partie synonymes, mais avant que cela puisse être dit avec certitude, le matériel a traversé un long cycle d'évolution. Au cours des 30 premières années depuis l'avènement des ordinateurs, jusqu'au milieu des années 1980, les technologies de "superordinateurs" étaient comprises exclusivement comme la production de processeurs spécialisés, particulièrement puissants. Cependant, l'apparition d'un microprocesseur monopuce a pratiquement effacé la différence entre les processeurs "de masse" et "particulièrement puissants", et à partir de ce moment la seule manière La création d'un supercalculateur est devenue le moyen de combiner des processeurs pour la solution parallèle d'un problème.

Une caractéristique intéressante des technologies de cluster est qu'elles permettent, afin d'atteindre les performances requises, de combiner des ordinateurs du même type différent allant des ordinateurs personnels aux superordinateurs puissants. Les technologies de cluster sont largement utilisées pour créer des systèmes de classe supercalculateur à partir de composants produits en série, ce qui réduit considérablement le coût d'un système informatique.


1. Principes généraux systèmes de grappes

Comme mentionné précédemment, un cluster informatique est une collection
ordinateurs réunis au sein d'un certain réseau pour résoudre un problème, qui est présenté à l'utilisateur comme une ressource unique.

Le concept de "ressource unique" signifie la présence d'un logiciel qui donne
opportunité pour les utilisateurs, les administrateurs et programmes d'application compter,
qu'il n'y a qu'une seule entité avec laquelle ils travaillent, le cluster.
Par exemple, le système de traitement par lots du cluster vous permet d'envoyer un travail à
traitement au cluster, et non à un ordinateur individuel. Plus complexe
les systèmes de bases de données en sont un exemple. Presque tous les fabricants
systèmes de base de données, il existe des versions fonctionnant en parallèle sur
plusieurs machines en cluster. Par conséquent, les applications utilisant la base de données
les données n'ont pas à se soucier de l'endroit où leur travail est effectué. SGBD
responsable de la synchronisation des activités simultanées et de la maintenance
l'intégrité de la base de données.

Les ordinateurs qui forment un cluster - les soi-disant nœuds de cluster - toujours
relativement indépendant, ce qui permet d'arrêter ou d'éteindre n'importe lequel des
pour l'entretien préventif ou l'installation de
l'équipement sans perturber la santé de l'ensemble du cluster.

Comme les nœuds de calcul dans un cluster sont généralement utilisés
ordinateurs personnels à processeur unique, SMP à deux ou quatre processeurs
les serveurs. Chaque nœud exécute sa propre copie du système d'exploitation.
systèmes, qui sont le plus souvent utilisés en standard
systèmes d'exploitation : Linux, NT, Solaris, etc. Composition et puissance des nœuds
peuvent changer même au sein d'un même cluster, ce qui permet de créer
systèmes hétérogènes. Le choix d'un support de communication spécifique est déterminé
de nombreux facteurs : les caractéristiques de la classe de tâches à résoudre, le besoin
expansion ultérieure du cluster, etc. Peut être configuré
ordinateurs spécialisés, par exemple, serveur de fichiers, et, en règle générale,
donné l'occasion accès à distance au cluster via Internet.
Il découle de la définition de l'architecture des systèmes de clusters qu'elle comprend
lui-même une très large gamme de systèmes.

2. Classement

Les systèmes de cluster peuvent utiliser une variété de plates-formes et sont généralement classés non pas par un ensemble de composants, mais par application. Il existe quatre types de systèmes de cluster : les clusters de calcul, les clusters de bases de données, les clusters de basculement et les clusters de distribution de charge. Le groupe le plus important est celui des clusters informatiques. Il peut être divisé en sous-groupes; cependant, la classification au sein de ce groupe n'est plus soumise aux ordinateurs réels, mais à des solutions de cluster logicielles et matérielles prêtes à l'emploi. Ces systèmes clés en main disposent d'un logiciel d'application préinstallé requis par le client pour résoudre ses problèmes. Les solutions optimisées pour différentes applications se différencient par la sélection des composants qui assurent le fonctionnement le plus productif de ces applications particulières au meilleur rapport qualité/prix.

Les clusters de bases de données sont nouveaux. Ces systèmes fonctionnent avec des versions parallèles de bases de données et sont utilisés dans les grandes organisations pour le fonctionnement des systèmes CRM et ERP, ainsi que des bases de données transactionnelles. Aujourd'hui, ces systèmes sont un concurrent sérieux des serveurs de mémoire partagée traditionnels en raison de le meilleur rapport prix/performance, évolutivité et tolérance aux pannes.

Les clusters de basculement sont conçus pour assurer au mieux la fiabilité des applications critiques. Le fonctionnement de l'application est dupliqué sur différents nœuds, et en cas d'erreur sur l'un d'eux, l'application continue de fonctionner ou est automatiquement redémarrée sur l'autre. Ces clusters ne sont pas volumineux et les utilisateurs les construisent souvent eux-mêmes. Les technologies de cluster sont également utilisées pour distribuer un flux important de requêtes sur de nombreux serveurs. Ces solutions sont souvent utilisées pour prendre en charge des sites Web avec un contenu dynamique qui accèdent en permanence à des bases de données, telles que moteurs de recherche. Selon la taille du service, les clusters de répartition de charge peuvent avoir un assez grand nombre de nœuds.

Le fonctionnement des systèmes de cluster est pris en charge par quatre types d'applications spécialisées, telles que : les systèmes d'exploitation (généralement Linux), les outils de communication, les outils de développement d'applications parallèles et les logiciels d'administration de cluster.

3. Utiliser des systèmes de cluster

Les développeurs d'architectures de système de cluster ont poursuivi divers objectifs lorsque
leur création. Le premier était Digital Equipment avec clusters VAX/VMS.
Le but de la création de cette machine était d'augmenter la fiabilité du système,
garantissant une haute disponibilité et une tolérance aux pannes. Maintenant
temps il existe de nombreux systèmes similaires dans l'architecture des autres
fabricants.

Un autre objectif de la création de systèmes de clusters est de créer des
systèmes informatiques parallèles hautes performances. L'un des premiers
projets qui ont donné un nom à toute une classe de systèmes parallèles - le cluster Beowulf
– est né au Goddard Space Flight Center de la NASA pour soutenir
ressources informatiques nécessaires au projet Sciences de la Terre et de l'Espace.
Le projet Beowulf a commencé à l'été 1994, et un 16 processeurs
cluster sur les processeurs Intel 486DX4/100 MHz. Chaque nœud avait
16 Mo installés mémoire vive et 3 réseaux Ethernet-
adaptateur. Ce système a été très efficace en termes de
prix / performance, par conséquent, une telle architecture a commencé à être développée et
être largement utilisé dans d'autres organisations et instituts scientifiques.
Chaque classe de clusters a ses propres particularités d'architecture et
matériel appliqué.

En moyenne, les supercalculateurs domestiques sont encore loin derrière les occidentaux en termes de performances : les machines utilisées pour la recherche scientifique le sont 15 fois, les ressources de calcul des sociétés financières sont 10 fois, les supercalculateurs industriels sont 9 fois.


conclusions

Un cluster est un complexe logiciel et matériel complexe composé de nœuds informatiques basés sur des processeurs standard connectés par un réseau système à haut débit, ainsi que, en règle générale, des réseaux auxiliaires et de service.

Il existe quatre types de systèmes de cluster : les clusters de calcul, les clusters de bases de données, les clusters de basculement et les clusters de distribution de charge.

La sphère d'application des systèmes de cluster n'est désormais pas plus étroite que celle des superordinateurs avec une architecture différente: ils n'en font pas moins face avec succès à la tâche de simuler une variété de processus et de phénomènes. La modélisation par superordinateur peut réduire considérablement les coûts et accélérer l'introduction de nouveaux produits sur le marché, ainsi qu'améliorer leur qualité.

Quelques réflexions sur le moment où il est judicieux d'utiliser des clusters à haute disponibilité pour protéger les applications.

L'une des tâches principales dans le fonctionnement d'un système informatique dans toute entreprise est d'assurer la continuité du service fourni. Cependant, très souvent, les ingénieurs et les responsables informatiques ne savent pas exactement quelle « continuité » s'exprime spécifiquement dans leur entreprise. Selon l'auteur, cela est dû à l'ambiguïté et au flou du concept même de continuité, c'est pourquoi il n'est pas toujours possible de dire clairement quelle période de discrétisation est considérée comme continue et quel intervalle sera l'intervalle d'inaccessibilité. La situation est aggravée par la multitude de technologies conçues pour résoudre en fin de compte un problème commun, mais de différentes manières.

Quelle technologie choisir dans chaque cas spécifique pour résoudre les tâches définies dans le budget disponible ? Dans cet article, nous examinerons de plus près l'une des approches les plus populaires pour protéger les applications, à savoir l'introduction de la redondance matérielle et logicielle, c'est-à-dire la construction d'un cluster à haute disponibilité. Cette tâche, malgré l'apparente simplicité de mise en œuvre, est en réalité très difficile à régler et à exploiter. En plus de décrire des configurations bien connues, nous essaierons de montrer quelles autres fonctionnalités - pas trop souvent utilisées - sont disponibles dans de telles solutions, comment différentes implémentations de clusters sont agencées. De plus, il est souvent souhaitable que le client, ayant sérieusement pesé tous les avantages de l'approche cluster, ait toujours à l'esprit ses inconvénients, et envisage donc toute la gamme des solutions possibles.

Ce qui menace les applications...

Selon diverses estimations, 55 à 60% des applications sont critiques pour l'activité de l'entreprise - cela signifie que l'absence du service fourni par ces applications affectera gravement le bien-être financier de l'entreprise. À cet égard, le concept d'accessibilité devient un aspect fondamental dans les activités du centre informatique. Voyons d'où viennent les menaces à la disponibilité des applications.

Destruction de données. L'un des principaux problèmes est l'accessibilité du service. La façon la plus simple protection - de prendre des "instantanés" fréquents des données afin de pouvoir revenir à une copie complète à tout moment.

Défaillance matérielle. Les fabricants de systèmes matériels (serveurs, stockage sur disque) proposent des solutions avec des composants redondants - cartes processeurs, contrôleurs système, alimentations, etc. Cependant, dans certains cas, une panne matérielle peut entraîner l'indisponibilité des applications.

Une erreur dans l'application. L'erreur d'un programmeur dans une application qui a déjà été testée et mise en production peut se manifester dans un cas sur des dizaines voire des centaines de milliers, mais si un tel incident se produit, il entraîne une perte directe du profit de l'organisation, car la transaction le traitement s'arrête et la manière d'éliminer l'erreur n'est pas évidente et prend du temps.

Erreur humaine. Exemple simple : un administrateur modifie un paramètre fichiers de configuration, par exemple, DNS. Lorsqu'il teste les modifications, le service DNS est en cours d'exécution, mais voici le service qui utilise DNS, par exemple, E-mail, commence à rencontrer des problèmes qui ne sont pas immédiatement détectés.

Maintenance prévue. La maintenance du système - remplacement de composants, installation de service packs, redémarrage - est la principale cause d'indisponibilité. Gartner estime que 80 % du temps d'indisponibilité d'un système est un temps d'arrêt planifié.

Problèmes généraux sur la plate-forme informatique. Même si l'organisation fait tout pour se protéger des problèmes locaux, cela ne garantit pas la disponibilité du service si, pour une raison quelconque, l'ensemble du site est indisponible. Ceci doit également être pris en compte lors de la planification du système.

...et comment y faire face

Selon la criticité de la tâche, les mécanismes suivants pour restaurer la santé du système informatique peuvent être utilisés.

Sauvegarde données sur bande ou disque. ce un niveau de base de l'accessibilité - la plus facile, la moins chère, mais aussi la plus lente.

mise en miroir locale. Fournit la disponibilité des données en temps réel, les données sont protégées contre la destruction.

Regroupement local. Une fois la protection des données organisée, l'étape suivante pour garantir la disponibilité des applications est le clustering local, c'est-à-dire la création d'une redondance matérielle et logicielle.

réplication à distance. Il suppose la séparation des sites informatiques afin de créer une copie des données dans les centres de données séparés.

Clustering à distance. La disponibilité des données des différents sites étant assurée, il est également possible de maintenir la disponibilité du service des différents sites en organisant l'accès des applications à ces données.

Nous ne nous attarderons pas ici sur la description de toutes ces méthodes, car chaque élément pourrait bien faire l'objet d'un article distinct. L'idée est claire : plus nous introduisons de redondance, plus le coût de la solution est élevé, mais mieux les applications sont protégées. Pour chacune des méthodes énumérées ci-dessus, il existe un arsenal de solutions de différents fabricants, mais avec un ensemble typique de fonctionnalités. Il est très important pour le concepteur de solutions de garder à l'esprit toutes ces technologies, car seule leur combinaison compétente conduira à une solution exhaustive de la tâche définie par le client.

Selon l'auteur, l'approche de Symantec est très efficace pour comprendre la stratégie de reprise de service (Fig. 1). Il y a deux points clés ici - le point auquel le système est restauré (objectif de point de récupération, RPO) et le temps nécessaire pour restaurer le service (objectif de temps de récupération, RTO).

Le choix de l'un ou l'autre outil dépend des exigences spécifiques qui s'appliquent à une application ou une base de données critique.

Pour les systèmes les plus critiques, RTO et RPO ne doivent pas dépasser 1 heure. Réserver une copie fournir un point de restauration de deux jours ou plus. De plus, la récupération sur bande n'est pas automatisée, l'administrateur doit constamment se rappeler qu'il a correctement tout restauré et lancé.

De plus, comme déjà mentionné, lors de la planification d'un schéma de disponibilité, un seul outil ne suffit pas. Par exemple, il n'est guère logique d'utiliser uniquement le système de réplication. Même si les données critiques se trouvent sur un site distant, les applications doivent être lancées manuellement dans l'ordre approprié. Ainsi, la réplication sans démarrage automatique applications peuvent être considérées comme une forme de sauvegarde coûteuse.

Si vous souhaitez fournir un RTO et un RTS mesurés en minutes, c'est-à-dire que la tâche nécessite de minimiser les temps d'arrêt (prévus et non planifiés), alors la seule bonne solution est un cluster à haute disponibilité. Dans cet article, de tels systèmes sont considérés.

Du fait que le concept de « cluster informatique » est surchargé depuis un certain temps en raison de leur grande diversité, nous allons d'abord dire un peu ce que sont les clusters.

Types de grappes

Dans sa forme la plus simple, un cluster est un système d'ordinateurs qui travaillent ensemble pour résoudre des problèmes ensemble. Il ne s'agit pas d'un modèle de traitement de données client/serveur dans lequel une application peut être logiquement séparée de manière à ce que les clients puissent envoyer des requêtes à différents serveurs. L'idée d'un cluster est de mettre en commun les ressources informatiques des nœuds associés pour créer des ressources redondantes qui offrent une plus grande puissance de calcul partagée, une haute disponibilité et une évolutivité. Ainsi, les clusters ne se contentent pas de traiter les requêtes des clients vers les serveurs, mais utilisent simultanément de nombreux ordinateurs, les présentant comme système unique et offrant ainsi des capacités de calcul nettement supérieures.

Un cluster d'ordinateurs doit être un système auto-organisé - le travail effectué sur l'un des nœuds doit être coordonné avec le travail sur les autres nœuds. Cela conduit à la complexité des relations de configuration, aux communications difficiles entre les nœuds du cluster et à la nécessité de résoudre le problème d'accès aux données dans un système de fichiers commun. Il existe également des problèmes opérationnels associés au fonctionnement d'un nombre potentiellement important d'ordinateurs en tant que ressource unique.

Les clusters peuvent exister sous différentes formes. Les types de clusters les plus courants sont le calcul haute performance (HPC) et la haute disponibilité (HA).

Les clusters de calcul haute performance utilisent des méthodes de calcul parallèle avec la participation d'autant de puissance de processeur que possible pour résoudre le problème. Il existe de nombreux exemples de telles solutions dans le calcul scientifique, où de nombreux processeurs à faible coût sont utilisés en parallèle pour exécuter un grand nombre opérations.

Cependant, le sujet de cet article est les systèmes à haute disponibilité. Par conséquent, en parlant de clusters, nous n'aurons à l'esprit que de tels systèmes.

En règle générale, lors de la construction de clusters à haute disponibilité, la redondance est utilisée pour créer un environnement fiable, c'est-à-dire qu'un système informatique est créé dans lequel la défaillance d'un ou plusieurs composants (matériel, logiciel ou installations réseau) n'affecte pas de manière significative la disponibilité des une application ou un système en général.

Dans le cas le plus simple, il s'agit de deux serveurs configurés de manière identique avec accès à un système de stockage partagé (Fig. 2). Pendant le fonctionnement normal, le logiciel d'application s'exécute sur un système tandis qu'un second système attend que les applications s'exécutent lorsque le premier système tombe en panne. Lorsqu'une panne est détectée, le deuxième système bascule les ressources appropriées (système de fichiers, adresses réseau, etc.). Ce processus est communément appelé basculement. Le deuxième système remplace complètement celui qui a échoué, et l'utilisateur n'a pas besoin de savoir que ses applications s'exécutent sur différentes machines physiques. Il s'agit de la configuration asymétrique à deux nœuds la plus courante, où un serveur est actif, l'autre est passif, c'est-à-dire qu'il est en veille en cas de défaillance du serveur principal. En pratique, ce schéma fonctionne dans la plupart des entreprises.

Cependant, la question doit être posée : dans quelle mesure est-il acceptable de conserver un ensemble supplémentaire d'équipements qui est effectivement en réserve et qui n'est pas utilisé la plupart du temps ? Le problème des équipements déchargés est résolu en modifiant le schéma de cluster et l'allocation des ressources qu'il contient.

Configurations de cluster

En plus de la structure de cluster asymétrique à deux nœuds mentionnée ci-dessus, il existe des options selon lesquelles différents fabricants de logiciels de cluster peuvent avoir des noms différents, mais leur essence est la même.

Grappe symétrique

Le cluster symétrique est également exécuté sur deux nœuds, mais chacun d'eux exécute une application active (Fig. 3). Le logiciel du cluster assure la bonne transition automatique de l'application de serveur à serveur en cas de panne d'un des nœuds. Dans ce cas, le chargement du matériel est plus efficace, mais si un dysfonctionnement survient, il s'avère que les applications de l'ensemble du système tournent sur un seul serveur, ce qui peut avoir des conséquences indésirables en termes de performances. En outre, vous devez déterminer s'il est possible d'exécuter plusieurs applications sur le même serveur.

Configuration N+1

Cette configuration comprend déjà plus de deux nœuds, et parmi eux, il y en a un dédié et redondant (Fig. 4). En d'autres termes, il y a un serveur de secours pour chaque N serveurs en cours d'exécution. En cas de dysfonctionnement, l'application se "déplacera" du nœud problématique vers un nœud libre dédié. À l'avenir, l'administrateur du cluster pourra remplacer le nœud défaillant et le désigner comme serveur de secours.

La variante N+1 est une configuration N vers 1 moins flexible où le nœud de secours reste toujours le même pour tous les nœuds de travail. En cas de panne du serveur actif, le service passe en veille et le système reste sans sauvegarde jusqu'à ce que le nœud défaillant soit activé.

De toutes les configurations de cluster, N + 1 est probablement la plus efficace en termes de complexité et d'efficacité des équipements. Tableau ci-dessous. 1 confirme cette estimation.

Configuration N à N

C'est la configuration la plus efficace en termes d'utilisation des ressources de calcul (Fig. 5). Tous les serveurs qu'il contient fonctionnent, chacun d'eux exécute des applications qui font partie du système de cluster. Si une panne survient sur l'un des nœuds, les applications sont déplacées de celui-ci conformément aux politiques établies vers les serveurs restants.

Lors de la conception d'un tel système, il est nécessaire de prendre en compte la compatibilité des applications, leurs connexions lorsqu'elles "se déplacent" d'un nœud à l'autre, la charge du serveur, la bande passante du réseau, et bien plus encore. Cette configuration est la plus complexe à concevoir et à exploiter, mais elle offre le plus de valeur pour votre matériel lors de l'utilisation de la redondance de cluster.

Évaluation des configurations de cluster

En tableau. 1 résume ce qui a été dit ci-dessus à propos des différentes configurations de cluster. L'évaluation est donnée sur une échelle de quatre points (4 - le score le plus élevé, 1 - le plus bas).

Du tableau. 1 on peut voir que le système asymétrique classique est le plus simple en termes de conception et de fonctionnement. Et si le client peut l'exploiter de manière autonome, il serait alors juste de transférer le reste à la maintenance externe.

En conclusion de la conversation sur les configurations, je voudrais dire quelques mots sur les critères selon lesquels le noyau du cluster peut automatiquement donner la commande de "déplacer" l'application d'un nœud à l'autre. La grande majorité des administrateurs dans les fichiers de configuration définissent un seul critère - l'indisponibilité de tout composant du nœud, c'est-à-dire une erreur logicielle et matérielle.

Pendant ce temps, le logiciel de cluster moderne offre la possibilité d'équilibrer la charge. Si la charge sur l'un des nœuds atteint une valeur critique, avec une politique correctement configurée, l'application qui s'y trouve sera correctement arrêtée et lancée sur un autre nœud, là où la charge actuelle le permet. De plus, les outils de contrôle de la charge du serveur peuvent être à la fois statiques - l'application dans le fichier de configuration du cluster indique elle-même le nombre de ressources dont elle aura besoin - et dynamiques, lorsque l'outil d'équilibrage de charge est intégré à un utilitaire externe (par exemple, Precise), qui calcule la charge actuelle du système.

Maintenant, afin de comprendre le fonctionnement des clusters dans des implémentations spécifiques, examinons les principaux composants de tout système à haute disponibilité.

Principaux composants du cluster

Comme tout complexe complexe, un cluster, quelle que soit l'implémentation spécifique, est constitué de composants matériels et logiciels.

Quant à l'équipement sur lequel le cluster est assemblé, le composant principal est ici une connexion inter-nœuds ou une interconnexion interne au cluster qui assure la connexion physique et logique des serveurs. En pratique, il s'agit d'un réseau Ethernet interne avec des connexions dupliquées. Son objectif est, d'une part, la transmission de paquets confirmant l'intégrité du système (ce que l'on appelle le battement de cœur), et d'autre part, avec une certaine conception ou un schéma apparu après un dysfonctionnement, l'échange de trafic d'informations entre les nœuds destinés à la transmission à l'extérieur. D'autres composants sont évidents : les nœuds exécutant le système d'exploitation avec le logiciel du cluster, les stockages sur disque auxquels les nœuds du cluster ont accès. Et enfin, un réseau commun à travers lequel le cluster interagit avec le monde extérieur.

Les composants logiciels permettent de contrôler le fonctionnement d'une application de cluster. Tout d'abord, il s'agit d'un système d'exploitation partagé (pas nécessairement une version partagée). Dans l'environnement de ce système d'exploitation, le noyau du cluster - le logiciel du cluster - fonctionne. Les applications qui sont regroupées, c'est-à-dire qui peuvent migrer d'un nœud à l'autre, sont contrôlées - démarrées, arrêtées, testées - par de petits scripts, les soi-disant agents. Il existe des agents standard pour la plupart des tâches, mais au stade de la conception, il est impératif de vérifier la matrice de compatibilité pour voir s'il existe des agents pour des applications spécifiques.

Implémentations de cluster

Il existe de nombreuses implémentations des configurations de cluster décrites ci-dessus sur le marché des logiciels. Presque tous les principaux fabricants de serveurs et de logiciels - par exemple, Microsoft, HP, IBM, Sun, Symantec - proposent leurs produits dans ce domaine. Microtest a de l'expérience avec les solutions Sun Cluster Server (SC) de Sun Microsystems (www.sun.com) et Veritas Cluster Server (VCS) de Symantec (www.symantec.com). Du point de vue de l'administrateur, ces produits sont très similaires en termes de fonctionnalités - ils fournissent les mêmes paramètres et réactions aux événements. Cependant, en termes d'organisation interne, ce sont des produits complètement différents.

SC a été développé par Sun pour son propre système d'exploitation Solaris et ne fonctionne donc que sur ce système d'exploitation (SPARC et x86). Par conséquent, lors de l'installation, SC est profondément intégré au système d'exploitation et devient une partie de celui-ci, une partie du noyau Solaris.

VCS est un produit multiplateforme qui fonctionne avec presque tous les systèmes d'exploitation actuellement populaires - AIX, HP-UX, Solaris, Windows, Linux, et est un module complémentaire - une application qui contrôle le fonctionnement d'autres applications soumises au clustering .

Nous examinerons la mise en œuvre interne de ces deux systèmes - SC et VCS. Mais nous soulignons une fois de plus que malgré la différence de terminologie et la structure interne complètement différente, les principaux composants des deux systèmes avec lesquels l'administrateur interagit sont essentiellement les mêmes.

Composants logiciels du serveur Sun Cluster

Le noyau SC (Figure 6) est le système d'exploitation Solaris 10 (ou 9) avec un shell complémentaire qui fournit une fonction de haute disponibilité (le noyau est surligné en vert). Viennent ensuite les composants globaux (vert clair) qui fournissent leurs services dérivés du noyau du cluster. Et enfin, tout en haut - des composants personnalisés.

La structure HA est un composant qui étend le noyau Solaris pour fournir des services de cluster. La tâche de structure commence par initialiser le code qui démarre le nœud en mode cluster. Les tâches principales du framework sont l'interaction entre les nœuds, la gestion de l'état du cluster et l'adhésion à celui-ci.

Le module de communication nœud à nœud transmet des messages de pulsation entre les nœuds. ce messages courts, confirmant la réponse du nœud voisin. L'interaction des données et des applications est également gérée par le framework HA dans le cadre de la communication inter-nœuds. En outre, la structure gère l'intégrité de la configuration en cluster et, si nécessaire, effectue des tâches de restauration et de mise à jour. L'intégrité est maintenue grâce au dispositif de quorum ; si nécessaire, une reconfiguration est effectuée. Un dispositif de quorum est mécanisme supplémentaire vérification de l'intégrité des nœuds du cluster à travers de petites sections du système de fichiers partagé. À dernière version cluster SC 3.2, il est devenu possible d'attribuer un périphérique de quorum en dehors du système de cluster, c'est-à-dire d'utiliser serveur supplémentaire sur la plate-forme Solaris, disponible via TCP/IP. Les membres de cluster défaillants sont retirés de la configuration. Un élément qui redevient opérationnel est automatiquement inclus dans la configuration.

Les fonctions des composants globaux dérivent du framework HA. Ceux-ci inclus:

  • périphériques globaux avec un espace de noms de périphérique de cluster commun ;
  • un service de fichiers global qui organise l'accès à chaque fichier du système pour chaque nœud comme s'il se trouvait dans son propre système de fichiers local ;
  • un service de réseau mondial qui fournit l'équilibrage de charge et la possibilité d'accéder aux services de cluster via une adresse IP unique.

Les composants personnalisés gèrent l'environnement de cluster sur haut niveau interface applicative. Il est possible de gérer l'administration par interface graphique, et à travers ligne de commande. Les modules qui surveillent le fonctionnement des applications, les démarrent et les arrêtent sont appelés agents. Il existe une bibliothèque d'agents prêts à l'emploi pour applications standards; Cette liste s'allonge à chaque version.

Composants logiciels Veritas Cluster Server

Schématiquement, un cluster VCS à deux nœuds est illustré à la fig. 7. La communication inter-nœuds dans VCS est basée sur deux protocoles - LLT et GAB. Le VCS utilise un réseau interne pour maintenir l'intégrité du cluster.

LLT (Low Latency Transport) est un protocole développé par Veritas qui s'exécute sur Ethernet en remplacement très efficace de la pile IP et est utilisé par les nœuds dans toutes les communications internes. La redondance requise dans les communications inter-nœuds nécessite au moins deux réseaux internes complètement indépendants. Ceci est nécessaire pour que le VSC puisse faire la distinction entre une panne de réseau et une panne de système.

Le protocole LLT remplit deux fonctions principales : la distribution du trafic et l'envoi de battements de cœur. LLT répartit (équilibre) la communication inter-nœuds entre tous les liens internes disponibles. Ce schéma garantit que tout le trafic interne est réparti de manière aléatoire entre les réseaux internes (il peut y en avoir un maximum de huit), ce qui améliore les performances et la tolérance aux pannes. En cas de défaillance d'un lien, les données seront redirigées vers les autres. De plus, LLT est responsable de l'envoi du trafic de pulsation sur le réseau, qui est utilisé par GAB.

GAB (Group Membership Services/Atomic Broadcast) est le deuxième protocole utilisé dans VCS pour la communication interne. Lui, comme LLT, est responsable de deux tâches. Le premier est l'appartenance des nœuds au cluster. GAB reçoit le battement de cœur de chaque nœud via LLT. Si le système ne reçoit pas de réponse du nœud pendant une longue période, il marque son état comme DOWN - inopérant.

La deuxième fonction de GAB est de fournir une communication inter-cluster fiable. GAB fournit une livraison garantie des diffusions et des messages point à point entre tous les nœuds.

Le composant de contrôle du VCS est le moteur VCS, ou HAD (High Availability daemon), exécuté sur chaque système. Elle est responsable de :

  • créer des configurations de travail obtenues à partir de fichiers de configuration ;
  • répartition des informations entre les nouveaux nœuds rejoignant le cluster ;
  • traiter les entrées de l'administrateur (opérateur) du cluster ;
  • effectuer des actions de routine en cas de panne.

HAD utilise des agents pour surveiller et gérer les ressources. Les informations sur l'état des ressources sont collectées auprès des agents sur systèmes locaux et est transmise à tous les membres du cluster. Le HAD de chaque nœud reçoit des informations des autres nœuds, mettant à jour sa propre image de l'ensemble du système. HAD agit comme une machine à états répliquée RSM, c'est-à-dire que le noyau de chaque nœud a une image de l'état de la ressource qui est entièrement synchronisée avec tous les autres nœuds.

Le cluster VSC est géré via la console Java ou via le Web.

Ce qui est mieux

La question de savoir quand quel cluster est préférable d'utiliser, nous l'avons déjà discuté ci-dessus. Nous soulignons une fois de plus que le produit SC a été écrit par Sun pour son propre système d'exploitation et qu'il est profondément intégré à celui-ci. VCS est un produit multiplateforme et donc plus flexible. En tableau. 2 compare quelques-unes des possibilités de ces deux solutions.

En conclusion, je voudrais donner un argument de plus en faveur de l'utilisation de SC dans l'environnement Solaris. En utilisant à la fois le matériel et les logiciels d'un seul fabricant - Sun Microsystems, le client bénéficie d'un service de "guichet unique" pour l'ensemble de la solution. Malgré le fait que les éditeurs créent désormais des centres de compétences communs, le temps de diffusion des requêtes entre fabricants de logiciels et de matériels va réduire la rapidité de réponse à un incident, ce qui ne convient pas toujours à l'utilisateur du système.

Cluster réparti territorialement

Nous avons examiné comment un cluster haute disponibilité est construit et fonctionne au sein d'un site unique. Une telle architecture ne peut protéger contre les problèmes locaux qu'au sein d'un seul nœud et de ses données associées. En cas de problèmes affectant l'ensemble du site, qu'ils soient techniques, naturels ou autres, l'ensemble du système sera inaccessible. Aujourd'hui, de plus en plus de tâches apparaissent, dont la criticité nécessite d'assurer la migration des services non seulement au sein du site, mais également entre des centres de données dispersés géographiquement. Lors de la conception de telles solutions, de nouveaux facteurs doivent être pris en compte - la distance entre les sites, la bande passante du canal, etc. Quelle réplication privilégier - synchrone ou asynchrone, hôte ou baie signifie, quels protocoles utiliser ? Le succès du projet peut dépendre de la solution de ces problèmes.

La réplication des données du site principal vers le site de sauvegarde est le plus souvent effectuée à l'aide de l'un des packages populaires : Veritas Volume Replicator, EMC SRDF, Hitachi TrueCopy, Sun StorageTek Availability Suite.

En cas de panne matérielle ou de problème d'application ou de base de données, le logiciel du cluster tentera d'abord de déplacer le service applicatif vers un autre nœud du site principal. Si le site principal devient indisponible pour le monde extérieur pour une raison quelconque, tous les services, y compris le DNS, migrent vers le site de secours, où les données sont déjà présentes en raison de la réplication. Ainsi, pour les utilisateurs, le service est repris.

L'inconvénient de cette approche est le coût énorme du déploiement d'un site "chaud" supplémentaire avec des équipements et une infrastructure réseau. Cependant, l'avantage d'une protection complète peut l'emporter sur ces coûts supplémentaires. Si le nœud central est incapable de fournir le service pendant une longue période, cela peut entraîner des pertes importantes et même la mort de l'entreprise.

Test du système avant sinistre

Selon une étude de Symantec, seulement 28% des entreprises testent un plan de reprise après sinistre. Malheureusement, la plupart des clients avec qui l'auteur a dû discuter de cette question n'avaient pas du tout un tel plan. Les raisons pour lesquelles les tests ne sont pas effectués sont le manque de temps des administrateurs, la réticence à le faire sur un système "en direct" et le manque d'équipement de test.

Pour les tests, vous pouvez utiliser le simulateur inclus dans le package VSC. Les utilisateurs qui choisissent d'utiliser VCS comme logiciel de cluster peuvent tester leurs paramètres sur le simulateur de serveur de cluster, ce qui leur permet de tester leur stratégie de migration d'application entre les nœuds sur un PC.

Conclusion

La tâche de fournir un service avec un haut niveau de disponibilité est très coûteuse à la fois en termes de coût du matériel et des logiciels, et en termes de coût de maintenance et de support technique ultérieurs du système. Malgré l'apparente simplicité de la théorie et la simplicité d'installation, un système de cluster, lorsqu'il est étudié en profondeur, s'avère être une solution complexe et coûteuse. Dans cet article, l'aspect technique du système n'était considéré que de manière générale, alors que sur certaines questions du cluster, par exemple, la détermination de l'appartenance à celui-ci, on pouvait écrire un article séparé.

Les clusters sont généralement créés pour des tâches critiques pour l'entreprise, où une unité de temps d'arrêt entraîne des pertes importantes, par exemple, pour les systèmes de facturation. On pourrait recommander la règle suivante, qui détermine où il est raisonnable d'utiliser des clusters : là où l'indisponibilité du service ne doit pas dépasser une heure et demie, le cluster est la solution appropriée. Dans d'autres cas, vous pouvez envisager des options moins coûteuses.

Cluster (groupe d'ordinateurs)

Grappes d'équilibrage de charge

Le principe de leur fonctionnement repose sur la distribution des requêtes à travers un ou plusieurs nœuds d'entrée, qui les redirigent pour traitement vers d'autres nœuds de calcul. L'objectif initial d'un tel cluster est la performance, cependant, ils utilisent souvent aussi des méthodes qui augmentent la fiabilité. Des conceptions similaires sont appelées fermes de serveurs. Le logiciel (logiciel) peut être soit commercial (OpenVMS, MOSIX, Platform LSF HPC, Solaris Cluster, Moab Cluster Suite, Maui Cluster Scheduler) soit gratuit (OpenMosix, Sun Grid Engine, Linux Virtual Server).

Grappes de calcul

Les clusters sont utilisés à des fins informatiques, en particulier dans la recherche scientifique. Pour les clusters informatiques, les indicateurs significatifs sont les performances élevées du processeur dans les opérations sur les nombres à virgule flottante (flops) et la faible latence du réseau unificateur, et moins significatives - la vitesse des opérations d'E / S, qui est plus importante pour les bases de données et les services Web. Les grappes de calcul permettent de réduire le temps de calcul, par rapport à un seul ordinateur, en divisant la tâche en branches d'exécution parallèles qui échangent des données sur un réseau de connexion. Une configuration typique est un ensemble d'ordinateurs assemblés à partir de composants accessibles au public, exécutant Linux dessus et connectés par un réseau Ethernet, Myrinet, InfiniBand ou d'autres réseaux relativement peu coûteux. Un tel système est communément appelé cluster Beowulf. Les clusters hautes performances sont spécialement distingués (désignés par l'abréviation anglaise Pôle HPC - Pôle de calcul haute performance). Liste des ordinateurs hautes performances les plus puissants (peut également être désigné par l'abréviation anglaise CHP) se retrouve dans le classement mondial TOP500. En Russie, il existe un classement des ordinateurs les plus puissants de la CEI.

Systèmes informatiques distribués (grille)

De tels systèmes ne sont généralement pas considérés comme des clusters, mais leurs principes sont largement similaires à la technologie des clusters. Ils sont également appelés systèmes de grille. La principale différence est la faible disponibilité de chaque nœud, c'est-à-dire l'incapacité de garantir son fonctionnement à un moment donné (les nœuds se connectent et se déconnectent pendant le fonctionnement), de sorte que la tâche doit être divisée en plusieurs processus indépendants. Un tel système, contrairement aux clusters, ne ressemble pas à un ordinateur unique, mais sert de moyen simplifié de distribution des calculs. L'instabilité de la configuration, dans ce cas, est compensée par un grand nombre de nœuds.

Cluster de serveurs organisé par programmation

Les systèmes de cluster occupent une place digne dans la liste des plus rapides, tout en surpassant considérablement les supercalculateurs en termes de prix. Depuis juillet 2008, la 7e place du classement TOP500 revient au cluster SGI Altix ICE 8200 (Chippewa Falls, Wisconsin, États-Unis).

Une alternative relativement bon marché aux superordinateurs est les clusters basés sur le concept Beowulf, qui sont construits à partir d'ordinateurs ordinaires bon marché basés sur des logiciels libres. Un des exemples pratiques un tel système est Stone Soupercomputer (Oak Ridge, Tennessee, USA).

Le plus grand cluster privé (de 1 000 processeurs) a été construit par John Koza.

Histoire

L'histoire de la création des clusters est inextricablement liée aux premiers développements dans le domaine réseaux informatiques. L'une des raisons de l'émergence de la communication à haut débit entre ordinateurs était l'espoir de mutualiser les ressources informatiques. Au début des années 1970 L'équipe de conception TCP/IP et le laboratoire Xerox PARC ont défini les normes de mise en réseau. Le système d'exploitation Hydra ("Hydra") pour les ordinateurs fabriqués par DEC est également apparu.Le cluster créé sur cette base s'appelait C.mpp (Pittsburgh, Pennsylvanie, USA). Cependant, ce n'est qu'il y a environ un an que des mécanismes ont été créés pour permettre un partage facile des tâches et des fichiers sur un réseau, principalement des développements dans SunOS (le système d'exploitation basé sur BSD de Sun Microsystems).

Le premier projet de cluster commercial a été ARCNet, créé par Datapoint dans la ville, il n'est pas devenu rentable, et donc la construction de clusters ne s'est développée que l'année où DEC a construit son VAXcluster basé sur système opérateur VAX/VMS. ARCNet et VAXcluster ont été conçus non seulement pour l'informatique commune, mais aussi pour le partage du système de fichiers et des périphériques, en tenant compte de la préservation de l'intégrité et de l'absence d'ambiguïté des données. VAXCluster (maintenant appelé VMSCluster) fait partie intégrante du système d'exploitation OpenVMS utilisant les processeurs Alpha et Itanium.

Deux autres premiers produits de cluster acclamés comprennent le Tandem Hymalaya (classe HA) et l'IBM S/390 Parallel Sysplex (1994).

L'histoire de la création de clusters à partir d'ordinateurs personnels ordinaires doit beaucoup au projet Parallel Virtual Machine. En 2009, ce logiciel de supercalcul virtuel a ouvert la possibilité de créer instantanément des clusters. En conséquence, la performance totale de tous les clusters bon marché créés à cette époque a dépassé la somme des capacités des systèmes commerciaux "sérieux" en termes de performances.

La création de clusters à base d'ordinateurs personnels bon marché connectés par un réseau de transmission de données poursuivie en ville par l'Agence aérospatiale américaine (NASA), puis en ville des clusters Beowulf, spécialement conçus sur la base de ce principe, ont été développés. Le succès de tels systèmes a stimulé le développement des réseaux de grille, qui existent depuis la création d'UNIX.

Logiciel

Un outil largement utilisé pour organiser l'interaction inter-serveurs est la bibliothèque MPI, qui prend en charge les langages et Fortran. Il est utilisé, par exemple, dans le programme de simulation météorologique MM5.

Le système d'exploitation Solaris fournit le logiciel Solaris Cluster, qui est utilisé pour fournir une haute disponibilité et un basculement pour les serveurs exécutant Solaris. Il existe une implémentation open source pour OpenSolaris appelée Cluster haute disponibilité OpenSolaris.

Plusieurs programmes sont populaires parmi les utilisateurs de GNU/Linux :

  • distcc , MPICH et autres sont des outils spécialisés pour paralléliser le travail des programmes. distcc permet la compilation parallèle dans la collection de compilateurs GNU.
  • Linux Virtual Server, Linux-HA - Logiciel de nœud pour la distribution des requêtes entre les serveurs de calcul.
  • MOSIX , openMosix , Kerrighed, OpenSSI - environnements de cluster complets intégrés au noyau, distribuant automatiquement les tâches entre des nœuds homogènes. OpenSSI, openMosix et Kerrighed créent entre les nœuds.

Il est prévu que les mécanismes de cluster soient intégrés au noyau DragonFly BSD, qui a dérivé en 2003 à partir de FreeBSD 4.8. À l'avenir, en le transformant également en environnement de système d'exploitation unifié.

Microsoft publie le cluster HA pour le système d'exploitation Windows. Il y a une opinion qu'il a été créé sur la base de la technologie Digital Equipment Corporation, prend en charge jusqu'à 16 nœuds (depuis 2010) dans un cluster, ainsi que le fonctionnement dans un SAN (Storage Area Network). Un ensemble d'API est utilisé pour prendre en charge les applications distribuées, il existe des blancs pour travailler avec des programmes qui n'impliquent pas de travailler dans un cluster.

Windows Compute Cluster Server 2003 (CCS), publié en juin 2006, est conçu pour les applications haut de gamme qui nécessitent un calcul en cluster. L'édition est conçue pour être déployée sur plusieurs ordinateurs regroupés pour obtenir une puissance de calcul intensif. Chaque cluster sur Windows Compute Cluster Server se compose d'une ou plusieurs machines maîtres qui distribuent les tâches et de plusieurs machines esclaves qui effectuent le travail principal. En novembre 2008, Windows HPC Server 2008 a été introduit pour remplacer Windows Compute Cluster Server 2003.

Développement de systèmes de clusters (CS) en Russie

Un cluster est un système multiprocesseur modulaire créé sur la base de nœuds de calcul standard connectés par un support de communication à haut débit. Aujourd'hui, les mots "cluster" et "supercalculateur" sont en grande partie synonymes, mais avant que cela puisse être dit avec certitude, le matériel a traversé un long cycle d'évolution. Au cours des 30 premières années depuis l'avènement des ordinateurs, jusqu'au milieu des années 1980, les technologies de "superordinateurs" étaient comprises exclusivement comme la production de processeurs spécialisés, particulièrement puissants. Cependant, l'apparition d'un microprocesseur monopuce a pratiquement effacé la différence entre les processeurs «de masse» et «particulièrement puissants», et à partir de ce moment, la seule façon de créer un supercalculateur était de combiner des processeurs pour résoudre un problème en parallèle. Aleksey Latsis, l'un des créateurs du supercalculateur russe MVS-1000M, dans son livre "Comment construire et utiliser un supercalculateur" l'appelle "la première révolution de supercalculateur".

Jusqu'au milieu des années 1990 environ. La direction principale du développement des technologies de supercalculateurs était associée à la construction de systèmes multiprocesseurs spécialisés à partir de microcircuits de masse. L'une des approches émergentes - SMP (Symmetric Multi Processing), impliquait l'intégration de nombreux processeurs utilisant une mémoire commune, ce qui facilitait grandement la programmation, mais imposait des exigences élevées à la mémoire elle-même. Il était presque impossible de maintenir les performances de tels systèmes avec une augmentation du nombre de nœuds à des dizaines. De plus, cette approche s'est avérée être la plus coûteuse en implémentation matérielle. Un ordre de grandeur moins cher et presque infiniment évolutif était la méthode MPP (Massively Parallel Processing), dans laquelle des modules informatiques spécialisés indépendants étaient combinés par des canaux de communication spécialisés, tous deux créés pour un supercalculateur spécifique et n'étant utilisés à aucune autre fin.

L'idée de créer un soi-disant cluster de postes de travail était en fait un développement de la méthode MPP, car logiquement le système MPP ne différait pas beaucoup d'un réseau local classique. Le réseau local ordinateurs personnels standard, avec le logiciel approprié utilisé comme supercalculateur multiprocesseur, et est devenu l'ancêtre du cluster moderne. Cette idée s'est encore développée au milieu des années 1990, lorsque, grâce à l'équipement généralisé des PC d'un bus PCI haut débit et à l'émergence de solutions bon marché mais réseau rapide. Les clusters Fast Ethernet ont commencé à rattraper les systèmes MPP spécialisés en termes de capacités de communication. Cela signifiait qu'un système MPP à part entière pouvait être créé à partir d'ordinateurs série standard utilisant des technologies de communication, et un tel système était moins cher en moyenne de deux ordres de grandeur.

Voici les supercalculateurs les plus célèbres avec une architecture de cluster de "première génération": Beowulf (1994, NASA Goddard Space Flight Center) - cluster de 16 processeurs basés sur des processeurs Intel 486DX4/100 MHz; Avalon (1998, Los Alamos National Laboratory) - Cluster Linux basé sur des processeurs Alpha 21164A/533 MHz. Initialement, Avalon se composait de 68 processeurs, puis leur nombre est passé à 140 ; ses performances au test LINPACK de 48,6 GFlops* le placent à la 113e place de la 12e édition du classement Top500 des ordinateurs les plus puissants au monde, aux côtés du système IBM RS/6000 SP SMP à 152 processeurs. Le premier système domestique inclus dans TorbOO était le cluster MVS-1000M, fabriqué par l'Institut de recherche KVANT et l'Institut de mathématiques appliquées de l'Académie des sciences de Russie. Il se composait de 384 nœuds basés sur des processeurs Alpha 21164 de DEC-Compaq.

* Flops (opérations en virgule flottante par seconde) - le nombre d'opérations en virgule flottante par seconde, une mesure des performances du supercalculateur. GFlops (gigaflops) - un milliard d'opérations en virgule flottante par seconde ; TFlops (téraflops) - un billion d'opérations en virgule flottante par seconde. Les performances réelles du supercalculateur le plus puissant d'aujourd'hui dépassent 136 TFlops ; il y a tout juste un an, ce chiffre était de 35 TFlops.

Distinguer les performances de pointe des performances réelles des supercalculateurs. Le pic de performance d'un système multiprocesseur (cluster, système SMP, etc.) est une valeur théorique inaccessible en pratique. Il est obtenu en multipliant les performances de pointe du processeur par le nombre de processeurs du système. Les performances de pointe d'un processeur sont généralement obtenues en multipliant sa vitesse d'horloge par le nombre maximal d'opérations effectuées par cycle d'horloge. La performance réelle d'un cluster est la performance obtenue lors de la résolution d'un problème réel (académique ou industriel). Par exemple, les systèmes du classement Top500 sont classés en fonction des résultats du test LINPACK, véritable problème académique de résolution d'un système d'équations linéaires.

Une nouvelle impulsion puissante au développement des technologies de cluster, en plus de l'émergence de réseaux de communication plus avancés, a donné une augmentation rapide des performances des processeurs de masse nouvellement lancés, ce qui a rendu les solutions hautes performances plus abordables que jamais. Par exemple, SKIF K-500, le deuxième cluster domestique inclus dans TorbOO, a été construit sur la base de 128 Processeurs Intel Réseau système Xeon et SCI. Construit à l'automne 2003 pour le programme de superordinateurs d'État russo-biélorusse SKIF, ce cluster a pris la 407e place du classement avec une performance réelle de 423,6 GFlops. Le deuxième cluster "top" du programme d'état, "SKIF K-1000" basé sur 576 Processeurs AMD Opteron et le réseau système InfiniBand, sont apparus en octobre 2004 et sont entrés dans le top cent du Top500 avec une performance réelle de 2 032 TFlops. Les deux clusters SKIF installés en Biélorussie ont été construits par T-Platforms avec la participation de l'Institut des systèmes d'information de l'Académie des sciences de Russie et de partenaires biélorusses et utilisent les technologies de supercalculateurs russes. Le cluster le plus puissant de Russie à l'heure actuelle est MVS 15000BM avec une performance réelle de plus de 5,3 Tflops, il se classe 56e au Top500 et est installé dans le Centre interdépartemental des superordinateurs (MSC RAS). Le cluster est construit à partir de nœuds informatiques IBM basés sur des processeurs PowerPC et le réseau du système Myrinet.

Le développement rapide des technologies de clusters ces dernières années ressort clairement de l'analyse de la liste Top500 : de 2000 à 2004, la part des clusters dans la liste est passée de 2,2 % à 60,8 %. Si en 2000 il n'y avait que deux clusters parmi les 40 installations les plus puissantes (la plus puissante - 31ème place), alors en 2004 leur nombre parmi les 40 premières machines était de 24). Dans le même temps, selon la dernière version de Top500, plus de 71,5 % des processeurs utilisés pour construire des supercalculateurs sont des processeurs produits en série. par Intel et DMLA.

Les technologies de cluster sont également utilisées dans les derniers développements de supercalculateurs des principaux fabricants : par exemple, le supercalculateur IBM BlueGene/L le plus puissant aujourd'hui avec une performance de plus de 136 TFlops utilise de nombreux éléments de l'architecture de cluster.

La sphère d'application des systèmes de cluster n'est désormais pas plus étroite que celle des superordinateurs avec une architecture différente: ils n'en font pas moins face avec succès à la tâche de simuler une variété de processus et de phénomènes. La modélisation par superordinateur peut réduire considérablement les coûts et accélérer l'introduction de nouveaux produits sur le marché, ainsi qu'améliorer leur qualité. Par exemple, au lieu de construire des modèles de test coûteux de nouvelles voitures, puis de les écraser contre un mur pour effectuer des calculs d'ingénierie, vous pouvez tout calculer plus rapidement et plus précisément en modèles informatiques. Grâce à cela, de nombreuses entreprises automobiles occidentales ont réussi à réduire de cinq fois le temps de développement d'un nouveau modèle de voiture - de 10 à 2 ans. Le traitement informatique des données géophysiques vous permet de créer des modèles très détaillés de champs de pétrole et de gaz, offrant un développement de puits plus efficace, plus sûr et moins cher.

C'est le développement des technologies de cluster qui a rendu le calcul haute performance largement disponible et a permis à une grande variété d'entreprises d'en tirer parti. C'est ainsi que se répartissent les domaines d'application des 500 ordinateurs les plus puissants du monde : 44,3 % - mines, électronique, automobile, aviation et autres branches de l'industrie lourde et de l'ingénierie, un peu plus de 20 % - science et éducation, supercalculateur centres. Plus de 18 % relèvent de la recherche météorologique et climatique, 7 % - des programmes gouvernementaux nucléaires, spatiaux, énergétiques et militaires, 3,5 % - des sociétés financières et des banques. En outre, la liste comprend des entreprises et des organisations impliquées dans la médecine et le développement de médicaments, l'infographie, le transport, le commerce, la production alimentaire, le conseil et l'administration publique.

En ce qui concerne l'utilisation des supercalculateurs en Russie, le classement actuel Top50 des supercalculateurs de la CEI, publié pour la première fois en décembre 2004, ne comprend que trois catégories d'utilisateurs : les instituts scientifiques et les universités, les entreprises engagées dans les industries lourdes et pétrolières, ainsi que les institutions financières.

En moyenne, les supercalculateurs domestiques sont encore loin derrière les occidentaux en termes de performances : les machines utilisées pour la recherche scientifique le sont 15 fois, les ressources de calcul des sociétés financières sont 10 fois, les supercalculateurs industriels sont 9 fois. Cependant, la deuxième édition de la liste Top50, publiée en avril 2005, démontre le développement rapide de l'industrie. Ainsi, le nombre de systèmes en fonctionnement dans le secteur industriel est passé de 2 à 16 %, et leur performance moyenne a immédiatement augmenté de 135 %. Le nombre de supercalculateurs des sociétés financières et des banques a également augmenté de 2 à 18 %. La part des supercalculateurs utilisés pour la recherche scientifique est passée de 96 % à 66 %, et leurs performances moyennes ont augmenté de 70 %. En général, la deuxième édition du classement des superordinateurs domestiques montre une augmentation significative de la part des systèmes à usage commercial. Le plus grand nombre de supercalculateurs nationaux a été fourni par IBM (26%), mais les fabricants russes ne lui sont que légèrement inférieurs.