Confus par les clusters ? Nous ne parlons pas de raisins. Voici un bon tutoriel sur le clustering, la haute disponibilité, la redondance et la réplication. Sans oublier le basculement et l’équilibrage de charges. Prenez plaisir !
Qu’est-ce qu’un cluster ?
Un cluster (en ce qui concerne les ordinateurs) fait référence à un groupe de serveurs et d’autres ressources qui sont connectés via le matériel, les réseaux et les logiciels pour se comporter comme s’il s’agissait d’un système unique. Il y a beaucoup de raisons pour lesquelles le cluster est une chose intéressante à faire, même pour les petites entreprises.
Ces raisons incluent :
- Haute disponibilité,
- Équilibrage de la charge,
- Traitement parallèle,
- Gestion des systèmes et évolutivité.
Nous parlerons plus au sujet de chacune de ces applications plus tard. Mais, la chose principale à comprendre en ce moment sur le clustering est que son but est de faire apparaître un groupe d’ordinateurs (au monde extérieur et aux services utilisateurs internes) comme s’il s’agissait d’un système totalement intégré, toujours disponible et toujours rapide !
Un peu d’histoire, s’il vous plait ?
Pour ceux qui sont intéressés, une petite histoire sur le début et l’évolution du clustering pourrait être intéressante.
Au début, le clustering était presque exclusivement synonyme de la nécessité de fournir des solutions évolutives pour une entreprise en pleine croissance. En fait, pas plus tard qu’en 1997, un groupe de RS/6000s étaient regroupés pour fournir l’évolutivité nécessaire pour le fameux championnat d’échecs « Deep Blue » qui opposait un cerveau électronique à l’incroyable brillance du cerveau « organique » de Gary Kasparov. (Deep Blue a gagné, d’ailleurs.)
Les applications de clustering d’aujourd’hui
Aujourd’hui, cependant, les serveurs individuels de presque tous les fournisseurs sont généralement assez évolutifs, donc l’évolutivité est devenue simplement un avantage si vous installez un cluster qui est principalement destiné à fournir un autre avantage.
Et si vous demandez peut-être : “Quelles pourraient être les raisons de conduite aujourd’hui pour installer une solution de clustering ?” La réponse est simple : DISPONIBILITÉ et RÉPONSE RAPIDE (équilibrage de charge) pour tous les types d’utilisateurs !
Pourquoi les clusters sont-ils si importants ?
Haute disponibilité
La nécessité d’avoir des systèmes principaux et leurs serveurs frontaux Web concomitants fonctionnant littéralement tout le temps signifie qu’une haute disponibilité est impérative. C’est là que le clustering est une solution géniale. Le clustering fournit une sauvegarde et un basculement transparent, et une redondance des systèmes, des périphériques et des données, toutes essentielles à la maintenance d’une arène 24x7x365 IS.
Intégration de serveur :
De plus, un environnement d’entreprise Web signifie que les entreprises ne peuvent plus attendre qu’un seul gigantesque « ordinateur dans le ciel » réponde à tous ses besoins de traitement – même si un serveur peut probablement être acheté pour gérer le total de volume d’une entreprise.
De nombreuses applications nécessitent que les ressources du serveur soient modifiées de différentes manières pour atteindre divers objectifs. Généralement, il existe trois classes de charges de travail qui nécessitent différents serveurs dynamiques :
- Les serveurs de transactions de données gèrent les processus métiers de base.
- Les serveurs d’applications Web gèrent l’expérience de l’utilisateur final.
- Les serveurs d’appliance gèrent des fonctions réseaux spécifiques.
Pourtant, toutes les applications qui s’exécutent dans ces différentes classes de charges de travail (et qui, par conséquent, sont probablement implémentées sur des serveurs distincts) doivent accéder, partager et mettre à jour les données de l’autre en temps réel.
Il est également vrai que les fonctions traditionnellement connectées directement à des serveurs individuels, telles que les connexions réseau et le stockage, sont déployées de manière centralisée afin d’offrir une utilisation plus efficace, une évolutivité plus simple et une plus grande flexibilité.
Le clustering résout élégamment le problème de l’intégration de ces trois types de serveurs avec des ressources réseau et de stockage centralisées. Et en passant, le clustering permet également aux IS de gérer ces serveurs séparés comme s’ils en étaient un.
Ce que la haute disponibilité ?
Votre organisation a-t-elle besoin d’un clustering à haute disponibilité ?
La disponibilité peut être mesurée par rapport à « 100% opérationnel » ou « jamais défaillant ». Avez-vous déjà entendu quelqu’un se référer à “cinq 9s” ? C’est une métrique qui se réfère à la disponibilité du système par le nombre de “9s”. Un 9 correspond à une disponibilité de 90%, deux 9s à 99%, trois 9s à 99,9%, etc.
Le temps de disponibilité de quatre à neuf signifie que votre système dispose de moins d’une heure de temps d’arrêt par an. Les cinq 9s sont actuellement considérés comme le point d’entrée pour les solutions à haute disponibilité. “Cinq 9s (ce qui représente 5,39 minutes de temps d’arrêt annuel) serait considéré comme le Saint-Graal de la haute disponibilité pour les systèmes distribués”, selon Ron Anderson, l’auteur de “OSes & Network Services”.
Il a dit : « Le temps de fonctionnement de cinq neuf est cher et complexe, mais cela vaut le coût et les efforts si votre e-business vit ou meurt à la seconde – comme le fait Amazon.com, par exemple.
Regardons le graphique sur cette page pour mieux comprendre les coûts qui peuvent être associés à la non-mise en place d’un système de clustering à haute disponibilité. Comme vous pouvez le voir, les temps d’arrêt de l’ordinateur peuvent coûter des millions de dollars. Les coûts liés à la tolérance aux pannes continuent d’être plus acceptables aux cadres supérieurs, car un nombre croissant d’entreprises commencent à subir les coûts associés au fait de ne pas avoir investi dans des mesures de haute disponibilité.
La technologie de cluster permet d’apporter de la disponibilité et des performances au modèle de centre de données traditionnel. Les niveaux de service formalisés au sein des entreprises et entre les entreprises deviennent une pratique courante. La disponibilité, la performance et la fiabilité sont les principales métriques mesurées. La disponibilité continue sur le plan technique tend à réduire les coûts de planification des activités.
Cela inclurait la disponibilité des applications, les conflits de lots par rapport aux sauvegardes, les systèmes d’aide à la décision, l’utilisation d’actifs pour autre chose que la récupération après sinistre et la reconstruction ponctuelle. Ces problèmes conduisent à l’évitement des coûts, mais ce sont des coûts très tangibles qui doivent être pris en compte dans l’équation.
Redondance … Résilience … Qu’y a-t-il dans un Nom ?
Puisqu’un système informatique comprend de nombreuses parties, qui doivent généralement être présentes pour que l’ensemble soit opérationnel, une grande partie de la planification de la haute disponibilité est centrée sur le traitement des sauvegardes et des basculements ainsi que sur le stockage et l’accès aux données.
Pour le stockage, une matrice redondante de disques indépendants (RAID) est une approche. Une approche plus récente est le réseau de stockage (SAN). Un SAN est un réseau spécial à haute vitesse qui interconnecte différents types de périphériques de stockage de données avec des serveurs de données pour le compte d’un plus grand réseau d’utilisateurs.
Pour atteindre une disponibilité continue, il ne suffit pas seulement d’une disponibilité robuste du système. Les données critiques et les applications critiques doivent également résister aux pannes. Les deux doivent être accessibles à travers le cluster, même lorsque le système d’hébergement normal pour la ressource échoue. Une solution complète est obtenue lorsque les données et les applications critiques sont faites pour être des ressources résilientes et sont toujours disponibles.
La résilience des données garantit qu’une copie des données est toujours accessible aux utilisateurs finaux du cluster. La résilience des applications garantit que les services fournis par l’application sont toujours accessibles aux utilisateurs finaux du cluster. La résilience des applications est assurée par la reprise d’adresse IP et le redémarrage de l’application sur le premier système de sauvegarde.
De même, tout autre point de défaillance susceptible d’interrompre la disponibilité doit être éliminé. Ainsi, la redondance est essentielle dans tout le système, y compris les réseaux, l’alimentation et la connectivité Internet.
En cas de panne de système ou de perte de site, les fonctions fournies sur un système de serveur de base de données en cluster peuvent être commutées vers un système de sauvegarde désigné contenant une copie (réplique) actuelle de vos données d’application critiques ou devenant le point d’accès principal du périphérique résilient contenant ces données critiques. Le basculement peut être automatique en cas de défaillance du système, ou vous pouvez contrôler comment et quand le transfert aura lieu en initiant manuellement une commutation.
Toute cette redondance permet non seulement des basculements, mais aussi des commutations. Une commutation se produit si vous commutez manuellement l’accès d’un système à un autre. C’est très pratique lorsque vous devez effectuer la maintenance du système, comme l’application de correctifs temporaires (PTF), l’installation d’une nouvelle version ou la mise à niveau de votre système.
Configuration de cluster à haute disponibilité
La configuration de cluster à haute disponibilité la plus simple est un cluster à deux nœuds (comme illustré ici avec deux serveurs iSeries). Il existe un système principal pour toutes les ressources du cluster et un second système qui est une sauvegarde, prêt à prendre le relais pendant une panne du système principal.
Figure 1. Cluster à deux nœuds
Un autre environnement typique (également illustré ici) est le cluster de reprise mutuelle. Chaque nœud de cet environnement sert de nœud principal pour certains ensembles de ressources et de nœud de sauvegarde pour d’autres ensembles de ressources. Avec une reprise mutuelle, chaque système ou nœud est utilisé pour le travail de production, et tous les travaux de production critiques sont accessibles à partir de plusieurs systèmes, de plusieurs nœuds ou d’un cluster.
Dans ces deux scénarios, la réplication est la clé. La réplication signifie qu’une copie de quelque chose est produite en temps réel – par exemple, en copiant des objets d’un nœud dans un cluster vers un ou plusieurs autres nœuds du cluster. La réplication crée et maintient les objets sur vos systèmes identiques. Si vous apportez une modification à un objet sur un nœud dans un cluster, cette modification est répliquée sur les autres nœuds du cluster.
[REMARQUE : Si vous envisagez d’utiliser le clustering à deux nœuds, une conception ultra-conservatrice inclurait au moins trois systèmes (comme indiqué ici). De cette façon, vous pouvez vous assurer que vous aurez toujours un système de commutation, même si une sauvegarde est en cours lorsque l’échec se produit sur le système principal.]
Beaucoup sont complémentaires …
Équilibrage de charge : l’équilibrage de charge implique la répartition du travail qu’un serveur doit effectuer entre deux ou plusieurs ordinateurs afin que le travail se fasse plus rapidement. L’équilibrage de charge peut être implémenté avec du matériel, un logiciel ou une combinaison des deux, et constitue une raison très attrayante pour choisir une solution de clustering. Lorsqu’il est nécessaire d’équilibrer les charges de travail provenant d’un site Web, une approche consiste à acheminer chaque requête à une adresse d’hôte de serveur différente dans une table de système de noms de domaine (DNS), de type round-robin.
Évolutivité :
Dans les technologies de l’information, l’évolutivité implique la capacité de conserver les niveaux de performance lors de l’ajout de nouveaux composants en toute transparence selon la croissance de votre entreprise. Il semble aller de soi que la raison pour laquelle vous auriez besoin d’ajouter des processeurs et du stockage sur disque est que les volumes d’activité ont augmenté.
Toutefois, dans l’environnement de l’entreprise actuel basé sur le Web, les volumes d’affaires provenant des serveurs Web peuvent devenir si énormes, si rapidement, que l’évolutivité peut souvent être mieux résolue grâce à des techniques sophistiquées de clusters et d’équilibrage de charge. C’est parce que l’évolutivité doit maintenant supporter la demande de pointe, pas seulement la demande normale.
Capacité sur demande (CoD) :
Habituellement référencé en même temps que le besoin de gérer la demande de pointe, CoD offre une nouvelle forme d’évolutivité horizontale. Dans cet environnement, la technologie de clustering doit être capable d’allouer et de désallouer les ressources informatiques (par exemple, les serveurs, le stockage), à mesure que les demandes de charge de travail augmentent et changent. Il doit également être en mesure d’adopter rapidement un nouveau service non planifié.
Gestion des systèmes :
L’administration simplifiée des serveurs peut être réalisée par le biais du clustering, ce qui vous permet de gérer un groupe de systèmes en tant que système unique ou base de données unique. Des fonctionnalités telles que la gestion et l’administration intuitive, la détection et la reprise après échec, ainsi que la possibilité d’ajouter ou de supprimer des ressources sans interruption totale du service sont nécessaires pour les solutions de gestion de systèmes en cluster d’aujourd’hui.
En outre, même si par le passé, il était approprié que la gestion des ressources soit pilotée par le commandement, elle doit maintenant être sur demande et entièrement automatisée.
Traitement parallèle haute performance :
Pour de nombreuses applications, les instructions de programme peuvent être réparties entre plusieurs processeurs, ce qui réduit considérablement la durée totale du programme. Dans les systèmes multitraitement symétriques (SMP), chaque processeur est également capable de gérer le flux de travail à travers le système.
Les machines SMP fonctionnent bien sur tous les types de problèmes, à condition que la quantité de données impliquées ne soit pas trop importante. Les systèmes de traitement massivement parallèle (MPP) peuvent également fournir une capacité de traitement parallèle, et réellement excellent lorsqu’ils sont utilisés dans des environnements impliquant de nombreuses opérations indépendantes et séparées sur de grandes quantités de données, telles que des tâches d’exploration de données et d’intelligence artificielle.
À propos de cette discussion, cependant, le clustering peut fournir un traitement parallèle relativement bon marché pour des applications scientifiques et autres qui se prêtent à des opérations parallèles (par exemple, transactions de base de données, simulation scientifique et exploration de données).
[REMARQUE : La plus célèbre application de traitement parallèle au monde est peut-être le projet SETI@HOME. Géré par l’Université de Californie à Berkeley, SETI@HOME fonctionne (en arrière-plan) sur près de 3,5 millions d’ordinateurs personnels dans 226 pays à travers le monde. Chacun de ces ordinateurs traite le « bruit » numérisé de l’espace dans une recherche fiévreuse pour répondre à la question : « Y a-t-il quelqu’un ? » À ce jour, le nombre total de temps de traitement cumulés par chaque propriétaire d’ordinateur personnel dans cet énorme effort de traitement parallèle approche 800 000 ans !]