L'architecture RAIN* est au départ un sujet de recherche partant d'une vraie réflexion d'informatique théorique pour s'appliquer aux applications critiques des entreprises. Les chercheurs voulaient développer un modèle informatique distribué pour le stockage à base de composants standards. Le sujet a été étudié aux états-unis par l'Institut de Technologie de Californie (CalTech), le laboratoire Jet Propulsion (JPL) de la NASA et par le DARPA (Defense Advanced Research Projects Agency, département de la défense).
En 2 mots, l'architecture RAIN est aux serveurs ce que le RAID** est aux disques, au lieu de répartir une donnée sur plusieurs disques d'un assemblage RAID, cette donnée est répartie entre plusieurs serveurs caractérisant l'assemblage RAIN entre serveurs, on parle alors de RAIN 1, RAIN 5... comme pour le RAID. Par exemple, quand l'appliance est seul, la protection est limitée et se résume au RAID pour les données attachées à ce noeud mais quand 2 appliances sont configurés, le modèle est en RAIN1 (miroir) et à partir de 3 noeuds, le modèle évolue vers un RAIN5 (striping avec parité circulaire) mais la configuration demeure libre et un RAIN1/5 est possible également pour augmenter la redondance. Le cluster ainsi constitué est un modèle dit sans partage (shared-nothing) c'est-à-dire que les unités de stockage sont connectées et accédées par un seul serveur (pas de partage entre les serveurs) pour augmenter l'indépendance et donc la redondance. Par conséquent le protocole réseau qui gére l'état du cluster et les membres actifs est fondamental.
En 2 mots, l'architecture RAIN est aux serveurs ce que le RAID** est aux disques, au lieu de répartir une donnée sur plusieurs disques d'un assemblage RAID, cette donnée est répartie entre plusieurs serveurs caractérisant l'assemblage RAIN entre serveurs, on parle alors de RAIN 1, RAIN 5... comme pour le RAID. Par exemple, quand l'appliance est seul, la protection est limitée et se résume au RAID pour les données attachées à ce noeud mais quand 2 appliances sont configurés, le modèle est en RAIN1 (miroir) et à partir de 3 noeuds, le modèle évolue vers un RAIN5 (striping avec parité circulaire) mais la configuration demeure libre et un RAIN1/5 est possible également pour augmenter la redondance. Le cluster ainsi constitué est un modèle dit sans partage (shared-nothing) c'est-à-dire que les unités de stockage sont connectées et accédées par un seul serveur (pas de partage entre les serveurs) pour augmenter l'indépendance et donc la redondance. Par conséquent le protocole réseau qui gére l'état du cluster et les membres actifs est fondamental.
Dans le détail, l'idée est de constituer une architecture distribuée redondante basée sur des éléments standards, potentiellement hétérogéne, incrémentale et évolutive à souhait par ajout de composants élémentaires apportant une capacité de traitement supplémentaire. Cet esprit est trés présent historiquement dans les travaux du projet NOW (Network Of Workstations) developpé par l'université Berkeley ou dans le projet Beowulf, il y a plus de 10 ans, démontrant la possibilité de délivrer un niveau de performance au moins aussi bon qu'un grand calculateur dédié grâce à une configuration horizontale de systèmes d'entrée de gammes tous fonctionnant en parallèle et contribuant au traitement global. La littérature de l'industrie mentionne également le terme scale-out pour cette catégorie. Il n'y a pas de hiérarchie maître-esclave ou de paires primaire-secondaire. Tous les noeuds sont actifs et participent à l'équilibre global.
Le point clé réside dans le choix délibéré d'éléments standards et bons marchés permettant globalement, c'est-à-dire regoupés dans un cluster, d'atteindre des niveaux de disponibilité et de performances trés élevés. Les systèmes composants le cluster sont connectés grâce à une topologie réseau redondante faite de plusieurs switchs et d'interfaces réseaux et couplés à une structure de stockage distribuée généralement constituée d'unités connectés à chaque serveur. L'aspect sous-jacent mais fondamental est la capacité d'évolution de la configuration sans rupture et arrêt de service toutjours en apportant au moins le même niveau de redondance et un niveau de performance global supérieur. Les composants bons marchés diffusés à grande échelle donc éprouvés sont des processeurs Intel ou AMD, le système d'exploitation Linux, Ethernet et TCP/IP et des unités de stockage du type SATA qui offrent une possibilité de remplacement à volonté. Une bonne configuration RAIN se doit de s'administrer grâce à des outils certes spécifiques mais développés avec des composants classiques: html, php, mysql... en fait comme une configuration LAMP (Linux, Apache, MySQL et PHP|Python). Côté stockage, la distribution entre les noeuds est assurée par les assemblages dits Array Codes permettant de calculer une répartition des données et d'assurer le recouvrement en cas de défaillance d'un élément de la chaîne.
La seconde idée est l'auto-reconfiguration en cas de panne d'un constituant, d'un ajout ou d'un retrait d'un noeud du cluster. Il n'y pas de limite au nombre de noeuds au sein d'une configuration cluster de type RAIN de même que la distance. La couche RAIN fournit également un mécanisme d'équilibre de charge au sein du cluster pour les requêtes entrantes et sa philosophie de redondance permet d'accepter plusieurs défaillances de plusieurs éléments de la configuration: noeud, interface ou lien réseau, switch, stockage ou noeud complet. Côté configuration, il peut être envisager de déporter certains noeuds et de mixer des liens LAN et WAN pour rigidifier le cluster.
En résumé, l'architecture RAIN est un cluster de niveau 3 avec les innovations clés suivantes :
- Une couche de transport sûre et fiable entre les noeuds qui assure une délivrance des paquets,
- Un protocole complet d'adhésion au cluster qui s'appuit sur une diffusion de l'information et qui gère le partionnement du cluster,
- Un pool d'adresses IP virtuelles appelé "Always-On-IP" qui assure l'équilibrage de charge et les bascules inter-noeuds,
- une série de moniteurs de défaillance locale ou globale qui surveille en continue ou sur événement les ressources critiques au sein et à la périphérie du cluster,
- et une interface de gestion sûre et contralisée basée sur un navigateur qui se connecte à n'importe quel noeud du cluster pour obtenir l'état de la configuration.
La souche technologique RAIN est seulement composée d'éléments logiciels et elle est essentiellement disponible sur Linux, Solaris et Windows NT et d'autres portages ont été faits notamment à destination des systèmes embarqués.
Plusieurs applications ont été réalisées comme des serveurs vidéo (RAINVideo) et des serveurs Web (RAINWebServer). Ces travaux ont été confiés par la suite en 1998 à la startup Rainfinity qui a été depuis acquise 7 ans aprés par EMC en 2005 pour la gestion des environnements de fichiers dédiés comme les NAS ou réseau. Le produit Rainfinity RainWall est un trés bon exemple de cette architecture de même que les solutions CAS, certaines nouvelles baies de disques intelligentes comme ExaGrid ou solutions de protection de données comme Avamar Axion, Adaptec File Saver ou Veritas PureDisk.
* RAIN : Reliable|Redundant|Random Array of Inexpensive|Independant Nodes
** RAID: Redundant Array of Independant|Inexpensive Disks
0 commentaires:
Post a Comment