Aller au contenu

Un cluster de Raspberry Pi 3 ?


LolYangccool

Messages recommandés

Bonsoir !  :)

Je possède déjà un Raspberry Pi, mais j'ai comme projet de créer un cluster de Raspberry Pi.

Le but est d'avoir 2 ou 4 Raspberry Pi qui partagent le même espace de stockage cumulé de chaque carte micro SD de chaque Raspberry Pi, et que leur puissance soit cumulée sur une seule installation de Raspbian.

Je pense que ça serait pas mal pour découvrir le cluster de serveur à moindre coût, dans un premier temps.

 

J'ai quelques questions, puisque je crois me souvenir que certains d'entre vous ont des Pi aussi.

 

Quels sont les pré-requis, hormis d'autres Raspberry Pi, alim et carte SD ?

Peux-t'on utiliser un seul chargeur pour tous les Pi afin de mieux maitriser la consomation électrique ?

Est-ce faisable avec 2 Pi, ou en faut-il obligatoirement 4 au minimum (j'ai vu que certains l'ont même fait avec 64 Raspberry Pi ! :o)

 

Merci. :)

Lien vers le commentaire
Partager sur d’autres sites

J'ai rapidement regardé 2-3 sites et si je comprends bien, il s'agit juste de mettre plusieurs ordinateur sur un réseau commun.

 

Si je comprends toujours bien, ça peut se faire avec 2 Pi - ou - 2 Macs. Le tout est d'écrire les programmes qui vont communiquer par réseau.

 

Imaginons que l'un soit maitre et l'autre esclave en attente. Le maitre reçoit une demande de calcul et il partage celui-ci en plusieurs paquet. Il en garde (éventuellement) un pour lui et s'adresse aux autres via le réseau.

 

Les modules esclaves écoutent en permanence sur une porte réseau (comme un serveur http qui écoute sur le port 80). Dès qu'un message arrive, il est traité par le programme, le calcul se lance et le résultat est retourné par la même voie.

 

Comme d'hab pour que ça soit intéressant (comme le multithreading) il faut que le problème soit sécable en plusieurs sous-problèmes fortement indépendant.

 

J'avais déjà envisagé de faire ce genre de chose, mais beaucoup plus tordu. Je sais qu'il est possible de se faire construire des Pi, avec les interfaces qu'on souhaite, mais il faut 1000 unité minimum je crois ... Ce que j'aurais fait est de supprimer tout ce qui est inutile mais d'y inclure 4 connexions réseaux. Le but n'est pas de relier les 4 connecteurs au même switch mais bien de créer une sorte d'hypercube. Evidemment, il faut un sacré algorithme pour que chaque tâche sache exactement où tournent toutes les autres pour faire transiter l'information par le chemin minimum entre Pi-switch-Pi-switch- ...

 

Vous me direz que c'est inutile qu'un réseau classique peut faire ça aussi bien mais l'idée est d'adapter la topologie des Pi au problème. A la limite, pour un problème à 2 dimensions avec des noeuds orthogonaux, il n'y a même pas besoin de switch car des cross-cable reliant directement l'une des 4 connexions du Pi (appelons la "Nord" par exemple) avec une autre connexion réseau du Pi voisin (par exemple la connexion "Sud" du Pi situé au Nord).

 

Dans un tel exemple on mesure bien tout l'intérêt puisque chaque Pi communique directement avec le Pi destinataire du message. Bon pour que ça devienne vraiment intéressant, il faudrait (pour un problème 3D) 7 connecteurs réseaux (Nord, Sud, Est, Ouest, Dessus, Dessous) dont une dédiée au transfert des résultats (par exemple à un PC). Déjà que je ne suis pas certain qu'il soit possible d'en mettre 4 sur une carte Pi ...

Lien vers le commentaire
Partager sur d’autres sites

J'ajoute (pour la petite histoire) que je me suis amusé à simuler ce genre de chose sur le Hack (mais en Windows car je maitrise nettement mieux tant la programmation réseau que les connexions DB en Windows).

 

12 processus qui étaient chacun connectés à leur propre DB (répartie sur 2 disques, c'était juste un test) et qui communiquaient tous entre eux par réseau (il y avait donc 66 connexion réseaux virtuelles). Dès qu'un processus avait besoin d'une info présente dans un autre processus, il lui envoyait une requête. Ce dernier recherchait l'info dans la DB et la renvoyait au premier.

Lien vers le commentaire
Partager sur d’autres sites

Oula, merci Sethenès, ça n'a pas l'air évident du tout à mettre en place tout ça. :/

J'ai trouvé cet article pas mal fait.

 

Dans mon exposé, j'ai présenté l'un des types d'usage pour le cluster. L'autre, qui concerne la disponibilité est également développé.

 

https://www.sebastien-han.fr/blog/2011/07/04/introduction-au-cluster-sous-linux/

 

Avec ce genre de configuration, tu pourrais avoir deux Pi qui se partagent les requêtes http provenant des utilisateurs par exemple. Tu partages la charge et si un tombe, c'est l'autre qui reprend tout.

 

Mais imaginer que tu pourras, sans trop d'effort, transformer deux (ou plus) Pi en une sorte de carte mère virtuelle ayant deux processeurs (ou plus) est illusoire.

Lien vers le commentaire
Partager sur d’autres sites

Ok, le but c'est d'avoir une répartition de charge et une sorte de RAID1 de machine physique aussi, comme tu le dis : Si un lache (stockage HS ou Raspberry complet HS), tout le trafic passe sur l'autre. ;)

Je regarde ton lien, merci. :)

 

Mais comment ça se passe pour le stockage du coup, par exemple ?

Et l'OS ? On l'installe comment ?

Lien vers le commentaire
Partager sur d’autres sites

Il faut quand même se rendre compte qu'en principe un des noeuds peut disparaitre à n'importe quel moment et que ça ne devrait pas compromettre l'intégrité du système.

 

Nous avions de telles machines basées sur Windows Server Cluster au taf' mais si nous les utilisions et les administrions, c'était d'autres collègues spécialisés dans ce domaine qui venaient nous aider pour les upgrades et les installations.

 

Ceci dit, c'est un domaine dans laquelle une expertise peut être intéressante au niveau professionnel.

Lien vers le commentaire
Partager sur d’autres sites

  • 2 months later...

Bon, j'attendais un Raspberry Pi 4 début 2017 mais à priori il ne sera pas des nôtres cette année...

Pas%20de%20RPi4%20en%202017.png

Du coup, je pense commander 3 autres Raspberry Pi 3 pour tenter l'installation d'un cluster avec 4 RPi 3.

Je vais voir le coût que ça va me faire, 3 RPi 3 + 3 boitier + des alimentations, faut que je vois ce que j'ai déjà aussi, je dois encore avoir 3 chargeurs qui pourraient servir.

Niveau câble Ethernet ça devrait le faire aussi. ;)

 

En gros je pense devoir acheter les 3 RPi3 qu'il me manque pour le cluster, forcément, mais aussi 2 cartes micro SD de 32Go (j'en ai déjà deux), mais du coup j'aurai bien 32 x 4 = 128Go de stockage, c'est bien ça ?

Je dois aussi acheter 3 boitiers et je pense que c'est tout.

 

Câble ethernet, j'en ai en pagaille, switch c'est bon aussi, il m'en reste un, alimentation aussi. ;)

 

J'ai trouvé un tutoriel sur YouTube, en plusieurs parties ou le gars a l'air de tout expliquer en détail. ;)

 

Ca serait kiffant. :D

J'ai vu un cluster de 33 RaspBerry Pi (version 1 par contre).

 

Question pour Sethenès (ou quelqu'un d'autre s'il a la réponse) : Est-il facile de rajouter des noeuds à un cluster pour augmenter la puissance de calcul ?

Si un noeud lâche, que se passe t'il ?

Lien vers le commentaire
Partager sur d’autres sites

Comme je l'ai écrit, nous administrions des clusters windows mais c'était des spécialistes qui venaient le configurer et le maintenir.

 

Dans cette configuration, il y a une partition particulière, appelée "quorum device" (et qui apparemment, je le découvre n'est pas propre à Microsoft : https://www.google.be/#q=quorum+device ) qui sert en quelque sorte de main courante dans laquelle tous les noeuds du cluster écrivent ce qu'ils font. C'est au départ de ce log, que les autres noeuds peuvent prendre le relais en cas de problèmes.

 

D'ailleurs le reboot des machines du cluster devait suivre un protocole bien précis (notamment pour les shares).

 

Ici apparemment quelqu'un qui s'est amusé à cela avec 2 Pi : https://www.raspberrypi.org/forums/viewtopic.php?f=51&t=8575

 

Et en fait, c'est un peu mon conseil. Commence par 2. L'investissement est moindre et cela constituera une base.

 

Car le problème est que "cluster", c'est un peu tout et n'importe quoi. 2,3 ou 4 Pi reliés à un composant réseau sans plus, ne feront jamais plus que 2,3 ou 4 macs reliés à un composant réseau.

 

Ce sont les paramétrages d'applis, d'OS, voir de version spéciale d'OS qui font le cluster (et éventuellement des hardwares spécifiques). 

 

Mais encore une fois, ce sont des connaissances utiles. Je ne veux surtout pas te dissuader de les acquérir mais il faut plonger des les arcanes des réseaux, des disques et des OS pour y arriver.

Lien vers le commentaire
Partager sur d’autres sites

Merci Sethenès, j'avais préparé mon panier pour 3 Pie et ce qui va avec, mais je vais commencer par deux. ;)

Merci. :)

 

Ca fais moins de frais, parce que là, tel que mon panier est prêt, j'en ai pour un peu moins de 187€...

51€ pour juste 1 de plus puisque j'ai du matériel en moins à acheter. :)

 

C'est commandé ! :)

 

 

Je vais les alimenter sur un hub USB 4 ports que j'ai déjà que je connecterai à un adaptateur secteur samsung, comme ça j'aurai encore deux ports USB libres pour les deux futurs RPi. :)

 

Mais j'espère qu'un seul adaptateur suffira pour en alimenter deux puis 4.

Il faut 2,5A par RPi... Au pire je les alimenterai séparément.

 

Réception du second prévue lundi ! :)

Lien vers le commentaire
Partager sur d’autres sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

Chargement
×
×
  • Créer...