Etude, conception et implémentation d'un cluster low-cost haut disponibilité de Raspberry Pi 3( Télécharger le fichier original )par Rodrigue Tchuenche Institut Africain d'Informatique (IAI) - Ingénieur 2016 |
CONCLUSIONTout au long de cette première partie, nous avons essayé de mettre au point le cadre général de notre travail. Nous avons tout d'abord présenté l'organisme d'accueil qui s'avère être un élément fondamental dans l'environnement du projet et ensuite, une étude des concepts liés au projet a été abordée. Bien plus, nous avons examiné attentivement le domaine spécifique et technique autour duquel tourne notre projet. À ce stade, nous avons fourni tout le cadre théorique sur lequel, va s'appuyer la partie destinée à la conception et à l'implémentation de notre solution. La deuxième partie sera donc consacrée à l'aspect pratique de la réalisation du travail demandé. 26 Deuxième partie CONCEPTION, IMPLÉMENTATION ET ÉTUDE DE LA SOLUTION À PROPOSER 27 IAI Gabon c~Tchuenché Rodrigue Élève Ingénieur En Informatique 27 INTRODUCTIONAprès avoir circonscrit le sujet dans son contexte ainsi que le champ d'étude du projet dans la première partie, La deuxième partie présente l'aspect technique de la solution proposée. À l'entame de cette partie, le chapitre 3 présente l'analyse et la conception de notre solution. Nous poursuivons dans le chapitre 4, avec l'implémentation de notre solution et dans le chapitre 5 avec l'étude de notre solution en vue de vérifier si les objectifs ont été atteint. À l'issue de cette partie, nous pourrons déjà faire tourner notre solution. Chapitre3ANALYSE ET CONCEPTION 28 Introduction Notre travail d'Analyse et de Conception se fera en trois phases. Dans la première phase nous ferons un état de l'art des solutions logicielles de clustering existantes et ceux fonctionnant sur Raspberry pi vu que c'est avec ces nano-ordinateurs que nous implémenterons notre solution et nous finirons par une analyse. Dans la seconde phase nous étudierons des différentes techniques de clustering et la troisième phase sera consacrée à la conception de notre architecture de cluster. 3.1 Solution logicielle de Cluster Il existe plusieurs solutions sur le marché pour mettre en place un cluster pour différents systèmes d'exploitation populaires. La plupart de ces solutions sont commerciales, elles ont un coût non négligeable dû aux prix des licences logiciels et au prix du support technique. Ces solutions sont proposées par des sociétés de prestations en informatique comme Microsoft, IBM, SUN, Google, Compaq... Il existe aussi des solutions gratuites, à base de logiciels "libres". Le choix se fera donc en fonction du support technique voulu et du budget disponible. 3.1.1 Microsoft Cluster / Cluster pour système Windows Microsoft propose une solution pour mettre en place un cluster constitué de serveurs Microsoft. Pour cela deux types de clustering sont proposés, il s'agit de clustering de service ou cluster de Haute Disponibilité qui consiste à réaliser des clusters d'application et de rendu de 29 IAI Gabon c~Tchuenché Rodrigue Élève Ingénieur En Informatique 29 service et le clustering à répartition de charge qui garantit une répartition de charge réseau sur des flux IP à travers un cluster constitué de 32 noeuds au maximum. A travers ses solutions, Microsoft a implémenté des technologies de clustering permettant d'améliorer et d'accélérer le travail quotidien des employés des entreprises désireuses d'améliorer leur production mais aussi permettant de réaliser du commerce avec un plus grand nombre de clients. 3.1.1.1 Microsoft Cluster Server (MSCS) Microsoft Cluster Server est un programme informatique qui permet aux ordinateurs serveurs de travailler ensemble comme une grappe d'ordinateurs, afin de fournir le basculement et la disponibilité accrue des applications, ou une puissance de calcul parallèle en cas de grappes de calcul haute performance (HPC) (comme dans le calcul intensif). Microsoft a trois technologies pour le clustering :
Équilibrage de Composants, ce type de clustering permet d'équilibrer les Composants, le service CLB est intégré à l'Application Center 2000(ou versions antérieures), il permet aussi de répartir la charge sur plusieurs noeuds du cluster, pour les applications basées sur la technologie des objets COM et COM+, une mise à jour pour les objets WMI et la gestion du Framework.NET est désormais disponible. On parle de clustering d'application dit clustering de puissance. 3.1.1.2 Evidian Safekit Evidian Safekit est un logiciel de haute disponibilité avec Réplication temps réel, partage de charge et reprise sur panne pour le clustering. Il est développé par la société Evidian 1. Le logiciel SafeKit permet de construire un cluster actif-passif avec failover applicatif et réplication de données temps réel et continue des données. Le cluster actif-passif de SafeKit apporte une solution simple à la haute disponibilité d'applications base de données critiques sur Windows, Linux ou AIX (même Windows 7 et 8). SafeKit implémente une réplication continue synchrone 1. Evidian IAM est le leader européen des logiciels de gestion des identités et des accès, avec une présence en pleine croissance en dehors du continent européen et notamment aux Etats-Unis et au Japon 30 IAI Gabon c~Tchuenché Rodrigue Élève Ingénieur En Informatique 30 comme les SAN miroirs répliqués mais sans le coût et la complexité des clusters de failover matériel. Le cluster actif-passif est une architecture de haute disponibilité de type miroir. L'application est exécutée sur un serveur primaire et redémarrée automatiquement sur un serveur secondaire si le serveur primaire est défaillant. La réplication des données est configurée avec les répertoires de fichiers à répliquer. Les répertoires peuvent contenir des bases de données ou des fichiers plats. Avec sa fonction de réplication de données temps réel synchrone, cette architecture est particulièrement adaptée aux applications transactionnelles avec des données critiques à protéger contre les pannes. 2 3.1.2 Cluster GNU/Linux Linux est l'alternative de tous ces clusters chers grâce à sa gratuité. Grace à lui, vous êtes capables de mettre en place un cluster répondant à toutes les attentes que vous pouvez vous formuler. Pour cela, il suffit de posséder quelques machines, une distribution linux et quelques logiciels permettant de réaliser la parallélisation des noeuds du cluster. Beaucoup de projets de clustering sont mis en oeuvre sous Linux à savoir ces quelques exemples que nous allons citer ci-après : 3.1.2.1 Linux Virtuel Server (LVS) Ce projet consiste à mettre en place un cluster à répartition de charge. Son principe est de mettre en grappe des serveurs et à orchestrer les répartitions de charges par un noeud serveur qu'on appelle load-balanceur (répartiteur de charge). Il est implémenté sous forme de patchs applicables au noyau Linux, et permet alors à des applications réseaux comme les serveurs WEB de fonctionner sur des clusters acceptant plus de connections. 3.1.2.2 Beowulf Il s'agit de l'un des projets les plus connus du monde Linux et le plus utilisé. Il met en place un clustering scientifique par le biais du système d'exploitation Linux. Le principe est de mettre en place un système où l'ensemble des noeuds cumulent leur puissance pour fonctionner comme une seule machine. Ainsi les requêtes envoyées par les clients externes seront traitées en fonction de la charge et de la disponibilité de chaque noeud. Beowulf n'est rien d'autre qu'un 2. Source : http://www.evidian.com/fr/ 31 IAI Gabon c~Tchuenché Rodrigue Élève Ingénieur En Informatique 31 package d'outils qui fonctionne sur le noyau linux. 3.1.2.3 Linux HA-Project Il s'agit d'un projet de clustering qui permet de mettre en place un système à haute disponibilité. Ce système est constitué d'applications permettant de maintenir l'envoi de signaux qu'on appelle heartbeat entre les différents noeuds. Dans le cas où un noeud n'émet plus de signal, l'application donne les taches de ce dernier à un autre noeud. Le principal inconvénient vient du fait qu'il faut bien dimensionner son signal de heartbeat, ceci afin d'éviter de trop longs moments d'inactivité d'un service en cas de panne du serveur, ou bien d'éviter de polluer le réseau par des signaux intempestifs apparaissant trop souvent. 3 3.1.2.4 Multicomputer Operating System for Unix (MOSIX) MOSIX est un système de gestion de clusters Linux et de grilles organisationnelles qui fournit une Single-system image (SSI), c'est-à-dire l'équivalent d'un système d'exploitation pour un cluster dans son ensemble. Il s'agit d'un cluster à répartition de charge développé pour le monde Unix et les ordinateurs spécialisés. Le but de ce projet est de fournir un système de clustering, à travers Linux, agissant comme une simple machine, vu de l'extérieur, c'est à dire vu des utilisateurs et des processus. Il existe une version "fork" de MOSIX, openMOSIX qui est une version free open source de MOSIX. il a été initié après l'arrêt du développement de MOSIX en source libre.4 3.1.2.5 Apache Mesos Apache Mesos est un gestionnaire de cluster open-source qui a été développé à l'Université de Californie, Berkeley. Il fournit une isolation efficace des ressources et le partage entre les applications distribuées, ou des frameworks.Le logiciel permet le partage des ressources d'une manière fine et améliore l'utilisation du cluster. Apache Mesos tourne bien sur les systèmes Linux, Mac OS et Windows. il existe aussi une version pouvant tourner sur un nano-ordinateur Raspberry Pi.5 3.1.2.6 Cluster Docker Swarm Swarm permet la gestion d'un cluster de serveurs Docker. Il exporte les API standards de Docker mises à l'échelle du cluster et permet de gérer l'ordonnancement des tâches et l'allocation de ressources par container au sein du pool de ressources machines. Là où cela devient très intéressant, c'est que Swarm permet de gérer le cluster comme une seule et unique machine Docker. Swarm existe en version Linux, Mac OS et Windows. il existe aussi une version pouvant
32 IAI Gabon c~Tchuenché Rodrigue Élève Ingénieur En Informatique 32 tourner sur un nano-ordinateur Raspberry Pi à travers certains système d'exploitation conçu à cet effet. 3.2 Analyse Des SolutionsDe toutes ces panoplies de solutions citées plus haut, nous devons combiner une solution en tenant compte des différentes contraintes liées au cluster que nous voulons implémenter et des applications à déployer sur ce cluster. En effet, nous devons monter un cluster low-cost consommant moins d'énergie haute disponibilité basé sur Raspberry Pi 3 et ensuite trouver un moyen de faciliter le déploiement et la gestion des applications sur ce cluster. Le principal inconvénient d'un Raspberry Pi est son processeur qui est ARM. Ce qui le rend généralement moins puissant comparé au processeur Intel ou AMD des serveurs standards. Sur le Raspberry Pi, peut tourner les systèmes d'exploitation dérivés de Linux conçu pour processeur ARM. Un Raspberry à lui seul n'est pas assez puissant pour supporter la charge des requêtes serveurs. Nous allons ainsi implémenter un cluster haute disponibilité couplé à cela un cluster de répartition de charge. Sur chaque noeud (Raspberry Pi) du cluster nous allons installer et configurer Docker pour faciliter le déploiement des applications et par la suite couplé au cluster deja existant un cluster pour la gestion des Docker "Cluster Docker Swarm". Le processeur ARM des Raspberry ne nous permet pas d'utiliser les cluster Microsoft qui tournent sur processeur Intel ou AMD. Implémentant une solution low-cost, nous privilégions les solutions cluster gratuites et pouvant tourner sur un système Linux conçu pour processeur ARM. |
|