[Projet] Projet Cluster Web + BDD sur RPI

Projet Cluster Web + BDD sur RPI [Projet] - Divers - Overclocking, Cooling & Modding

Marsh Posté le 18-05-2015 à 11:29:26    

Topic en cours de rédaction, a l'heure ou je rédige ces lignes je ne sais pas forcément comment arriver a mes fins, soyez indulgent et n'hésitez pas a me faire part de vos commentaires.  :)
 
Introduction :
Sur ce projet nous allons créer un serveur web haute disponibilité maison.
Notre but est donc avec un minimum de moyen de réaliser une petite tour qui sera un serveur Web haute disponibilité, certain SPOF ne seront pas abordé.
Il faut aussi se rendre compte que faire héberger votre site chez un prestataire sera moins chère, ce projet nous permet juste au passionné de mettre en place un projet assez aboutis sur machine physique sans balancer la moitié de ça paye dedans. Qui sait, si vous êtes dans une PME ça peut vous donner des idées. Notre projet sera essentiellement constitué de logiciels libre sous les distribution Debian.  
 
Objectifs :

  • Maintenir un petit serveur Web
  • Mettre en place du Load Balancing de session
  • Mettre en place du Load Balancing de base de donnée


Software :

  • RaspBian (Distrib  Debian recompilé pour fonctionner sur les processeur ARM des RaspBerry Pi)
  • LB : Ha Proxy (Web et BDD)
  • Serveur Web Apache
  • BDD Mysql


Equipements :

  • Une connexion Internet
  • 2 Serveur de Load Balancing ( Web & DB )
  • 2 Nodes Web (RaspBerry Pi 2 B cf Carac Technique)
  • 2 Nodes BDD (RaspBerry Pi B+ cf Carac technique)
  • Switch 16 Port (Netgear 10/100 non administrable)
  • Alim USB (2A part port minimum)


Topologie Réseau :
Le commencement :  
 
Vocabulaire :

  • Node - Nœud en français désigne les nœud de notre réseau sur lesquels les session vont être réparties.
  • BDD & DB - Base de Donnée (fr) ou Database (en) https://fr.wikipedia.org/wiki/Base_de_donn%C3%A9es
  • LB - Load Balancing, comme ça traduction l'indique, c'est répartir les charges, dans notre cas on répartis les charges sur les nodes.
  • SSH Secure SHell, permet d'avoir une prise en main distante sur le shell d'une machine de manière cryptée.


Photos du matos :

Spoiler :


http://img11.hostingpics.net/thumbs/mini_294458Commande.jpghttp://img11.hostingpics.net/thumbs/mini_497480stack.jpg
 


 
Part 1 : Pré-Installation
Dans cette étape nous aurons besoins d'un écran, d'une liaison internet, d'un clavier, d'une souris et d'un soupçon de matière grise.
 
Nous allons commencer par installer un Debian sur notre première carte. Pour ce faire nous téléchargeons NOOBS (https://www.raspberrypi.org/downloads/). Nous avons donc un fichier que nous décompressons et on le cloque sur la SD Card.
On extrait la SD Card et on la cloque dans 1 des RPI.
Maintenant nous allons relier la carte a internet, ici je fais ça avec un boitier CPL puis la mettre sous tension.
Vous devriez voir dans une premier temps voir une framboise s'afficher puis dans un second temps un menu avec un listing de différents OS.
Nous choisirons Raspbian (la version de debian adaptée pour le RPI).
A partir d'ici notre RPI va télécharger la distribution et l'installer tranquillement.
 
A la fin de l'installation notre RPI est fonctionnel, nous allons devoir lui donner une configuration IP fixe et le mettre a jour et installer le SSH si c'est pas déjà fait. L'objectif a la suite de cette manip est d'administrer tout nos RPI a distance sans être obligé des déménager la moitié de la maison pour en configurer 1.
 
Nous allons donc aller donner une IP provisoire mais fixe a notre machine avec les commande suivantes :  

  • `sudo su` On passe en administrateur de la machine avec cette commande. A chaque redémarrage vous devrez la taper pour interagir avec des fichiers système nécessitant des droits particuliers.
  • `nano /etc/network/interfaces` Nous utilisons l'éditeur de texte "nano" pour éditer le fichier interfaces.  

Nous modifions les fichier comme ceci :  

Spoiler :

auto lo
iface lo inet loopback
 
auto eth0
allow-hotplug eth0
iface eth0 inet static
address 192.168.0.49
netmask 255.255.255.0
gateway 192.168.0.1


  • `reboot` On redémarre.
  • `ping www.google.fr` On fait un ping pour vérifier que tout est bien fonctionnel.
  • `apt-get install -y ssh` On installe le SSH

Voilà notre carte est fin prête, nous allons l'éteindre et débrancher la carte SD afin de passer a la partie clonage.

  • `halt` Extinction des feux !


Part 2 : Clonage de la SD
Dans cette partie deux solutions en fonction de votre OS, Windows ou Linux, si vous avez un pc Windows a disposition vous devrez télécharger Win32Diskimager.
Cette outils va nous permettre d'écrire une sauvegarde de notre carte SD en .img, c'est aussi ce logiciel qui va nous permettre de ré écrire nos image sur une nouvelle carte SD.
Rien de bien méchant l'option Write pour écrire sur la carte et l'option Read pour lire se qu'il y a marqué dessus.
 
La procédure est simple :

  • On branche notre SD ou µSD sur notre PC.
  • On lance Win32DiskImager
  • On définis un chemin dans le premier champ pour créer notre image, par exemple (C:\Users\JaquieEtMichel\MonImage.img)  [:ashjibe:1]  
  • Sélectionnez la lettre qui a été attribué a votre SD card. (Démarrer -> Ordinateur )
  • Cliquez sur Read.


 
Part 3 :
Part 4 :


Message édité par lolight le 01-08-2015 à 19:11:35
Reply

Marsh Posté le 18-05-2015 à 11:29:26   

Reply

Marsh Posté le 19-05-2015 à 09:18:21    

[:tillow:2]


Message édité par lolight le 29-07-2015 à 12:01:09
Reply

Marsh Posté le 19-05-2015 à 22:13:47    

Salut.
 
Par curiosité, quel va être l'usage de ce cluster? Est ce juste pour le fun de mettre en place la solution? Disposer d'une plateforme ARM pour des tests?
En effet, un tel système ne constituera pas une solution performante pour de vrais codes parallèles (ie déployés sur plus d'un noeud) avec des communications inter-processus reposant sur un modèle de programmation tel que MPI. L'interconnexion de type Ethernet 10/100 risque d'être fort pénalisante, au niveau du débit et encore plus de la latence.
Si l'objectif est la performance, mieux vaut tabler sur un noeud x86 à 6 coeurs pour un prix analogue.
 
Je ne remets pas en cause le projet, qui m'amuserait également beaucoup (surtout pour le prix très contenu), mais préfère t'éviter d'être déçu après les nombreuses heures de configuration qui t'attendent (config des OS voir du système qui va les déployer, du file system partagé a priori NFS ici, du scheduler, des applicatifs, etc).

Reply

Marsh Posté le 20-05-2015 à 10:45:03    

"créer un gros pc en utilisant la technologie du Clustering avec des RaspBerry Pi."
tu obtiendra jamais un cluster très puissant ni meme comparable a du i3/i5 avec des raspberry.... il t'en faudrait quelque chose comme 140 pour juste égaler un i7 de 3eme génération!
sinon pour le délire oui c'est fun !
 
EDIT: pas vu que c'était des RPI >>2<< .. donc ok pourquoi pas, il t'en faudrait je pense une vingtaine pour égaler un i7 à vu de nez, par contre si c'est pour du calcul pure je ne vois toujours pas l'interet sauf si ! tu cherche à pouvoir faire du calcul sans rien consommer (enfin peu dira t on !) ou pour gerer 96 USB, gerer 24 écrans ou gerer 24 UARTs sinon ....
 
Niveau alimentation, je ne sais pas encore si j’alimente les RPI par USB ou je les met sur une prise multiple.
 
t'em**** pas ! prend une alim ATX standard, ajoute un module sparkfun ATX (type https://www.sparkfun.com/products/12867) et tu cables tous tes RPI dessus, ca te prendra moins de place, si tu prend un boitier pour PC tout rentrera, et tes ARM seront correctement alimentés ! pense d'ailleurs a mettre un petit ventillateur, car empacté des tartines a 50° ca va emmagasiner de la chaleur ;)
 


Message édité par whiteblood le 20-05-2015 à 11:03:07

---------------
Xeon E5 2687W - 64Gb DDR3 ECC REG - Mobale HP Z420 -  Thermaltake P3 - SLI GTX1070
Reply

Marsh Posté le 20-05-2015 à 11:01:43    

Hello merci d’être passer donner vos avis.
 
Dans un premier temps j'avais pensé mettre en place ce cluster pour découvrir cette technologie donc pour le fun et les compétences.
J'avais ensuite penser a faire de la virtualisation dessus pour être plus libre, mais en me documentant sur le net j'ai vu que ça dépendais beaucoup du code des applications comme tu le souligne Ayor9 suivant le modèle MPI.
Je me suis donc résilier a ce projet d'utilisation du cluster.
 
Je n'ai donc plus vraiment d'idées d’utilités a ce cluster, ça serais donc pour le fun mais lacher tant d'argent pour le fun c'est pas top, surtout que je suis encore étudiant donc je n'ai pas de revenus.
En passant je suis des étude dans les réseaux, je ne touche donc pas ou très peut a la prog si on peut considérer le scipting comme telle.
 
J'attends donc qu'une idée fleurisse dans mon esprit pour me lancer.
Le 10/100 celon vous serais vraiment pénalisant ?  
Avec 10 RPI sur la théorie ça ferais quand même 10 mega pour chacun.

Reply

Marsh Posté le 20-05-2015 à 11:21:19    

si tu peux t'amuser a faire du Weather forecasting si tu trouve des appli codées en C/C++ ;)
JAVA / Scala, t'oublie ! hein !
tu viendras vite au bout du 10/100 et ca impactera directement les perfs !


---------------
Xeon E5 2687W - 64Gb DDR3 ECC REG - Mobale HP Z420 -  Thermaltake P3 - SLI GTX1070
Reply

Marsh Posté le 20-05-2015 à 23:22:05    

Si c'est juste pour fun et l’acquisition des compétences qui vont avec, pourquoi ne pas utiliser 3 Raspberry Pi 2 : un master node qui fera également office de frontale et serveur NFS, et 2 noeuds de calcul? Le coût serait considérablement diminué.
 
Concernant l'interconnexion, si tu pars du principe qu'un vrai calculateur dispose en général de débits inter-noeuds de l'ordre de 40 Gb/s (et je ne parle même pas des latences), tu conviendras que 100 Mb/s peuvent s'avérer sévèrement pénalisant...
 
Si tu tiens à avoir d'avantage de perf et également de RAM à disposition (quota RAM/coeur de 256Mo sur Pi2...), tu peux partir sur quelques noeuds x86 2 ou 4 coeurs premiers prix sur carte mère mini-itx accompagnés de quelques Go de RAM. Tu seras toujours en ethernet mais aura accès à du Gb/s.

Reply

Marsh Posté le 21-05-2015 à 10:04:08    

Merci pour vos réponses :)  
 
Si je part sur une Base de 3 RPI cela réduis grandement les coûts assurément.
Je tiens quand même a préciser que se sont des model B donc 1Go de RAM en DDR2.
Effectivement je suis très loins de perf d'un réel super calculateur.
 
Dommage que j'aurais pas un super puissance mais je pourrais au moins chopper quelque connaissance a moindre prix.
J'ai déjà un RPI, un des premier donc avec de faibles carac et surtout différente de mes deux prochaine acquisitions.  
Si je partais comme tu le souligne avec 2 noeuds de calcul serais-t-il génant que ça soit le vieux RPI en Master ? Si ma compréhension est bonne celui-ci est jsute chargé de répartir la charge et non de faire le calcul.
A confirmer :p
 
Merci pour vos réponses encore !!

Reply

Marsh Posté le 21-05-2015 à 21:28:22    

lolight a écrit :


Je tiens quand même a préciser que se sont des model B donc 1Go de RAM en DDR2.


 
1 Go de RAM par raspberry 2 ce qui équivaut à un quota de 256 Go par coeur (si distribution de la RAM sur 4 processus par exemple), et encore je ne considère pas le système qui aura une empreinte non négligeable...
 

lolight a écrit :


J'ai déjà un RPI, un des premier donc avec de faibles carac et surtout différente de mes deux prochaine acquisitions.  
Si je partais comme tu le souligne avec 2 noeuds de calcul serais-t-il génant que ça soit le vieux RPI en Master ? Si ma compréhension est bonne celui-ci est jsute chargé de répartir la charge et non de faire le calcul.
A confirmer :p


 
Je n'ai pas d'expérience avec le PI donc pas de certitude, mais j'imagine que le scheduler devrait réussir à se contenter de la faible quantité de ressource sachant qu'il n'aura que deux noeuds à gérer. Bref, je testerai avec celui-ci et verrai pour un 3e Pi2 s'il s'avère insuffisant.

Reply

Marsh Posté le 22-05-2015 à 12:11:20    

Ouep c'est se que je vais faire, merci beaucoup pour vos explications conseils, je vois bien mieux ou je vais.
 
Je vais donc lancer ce projet qui perd beaucoup d'envergure côté Hardware mais j'aurais toujours l'avantage d'apprendre côté soft.  
 
Je commence a commande les 2 RPI et Case semaine pro, je vous tiens au jus !

Reply

Marsh Posté le 22-05-2015 à 12:11:20   

Reply

Marsh Posté le 15-07-2015 à 14:36:51    

Hello,  
J'ai terminé mon stage en entreprise se qui me libère pas mal de temps.
 
J'ai longuement réfléchis a vos commentaire, au final j'ai abandonné l'idée de réaliser un cluster de calcul.
J'ai pensé et je vais acheter 2 RPI dernier modèle afin de réaliser un cluster LB.
Niveau soft je vais m'orienter vers HA Proxy.
Ensuite je pense essayer de mettre un petit WordPress dessus afin de voir si ça tien le coup.
D'ailleur, je pense faire une réplication entre les nodes, afin d'effectuer les modification de mon site une seule fois.
Quelques idée de soft ? J'ai pensé a faire un script et l'intégrer sur une tache cron mais peut être que des soft permette une plus grand marge de manouvre ?
(Si mon node 1 tombe et que le script de réplication est sur celui-ci je l'ai profond)
 
Ensuite si je suis toujours autant motivé je prend 1 ou 2 nouveau RPI (je me suis pas encore documenté) et j'essaye d'externaliser la base de donnée du WP afin que toutes mes nodes utilise une seule base de donnée et que celle-ci ai aussi de la partage de charge.
 
Pour la BDD c'est du Bonus pour le moment.
Je pense changer une partie de mon matos linké dans mon premier post. J'éditerais ça au fur et a mesure.


Message édité par lolight le 15-07-2015 à 14:38:16
Reply

Marsh Posté le 19-07-2015 à 00:38:43    

Sorti du cluster je n'ai pas d'expérience à faire valoir, désolé.
Bon courage pour ton projet. :)

Reply

Marsh Posté le 30-07-2015 à 09:20:48    

Première commande arrivée, j'ai donc tout mes raspberry, me manque encore pas mal de truc mais ça devrais pas tarder, du coup j'anticipe et je commence la partie software.
J'ai ajouté aussi quelques photos du switch des carte mais manque encore tout la partie alimentation et cablage rj45.


Message édité par lolight le 30-07-2015 à 09:21:03
Reply

Marsh Posté le 10-08-2015 à 21:48:06    

[:cerveau drapal] notamment pour la partie software si tu la développes, niveau hardware ayant quelques idées je me tâte pour me lancer dans un cluster de ce style pour une utilisation semblable (enfin presque, pour un wiki style dokuwiki)


---------------
Grippe ? Coronavirus ? Portez votre masque correctement ! :D
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed