Pour mes besoins d’auto-formation en BigData (et aussi car j’adore mon métier) j’ai décidé de me monter un cluster de test BigData.
Ce projet n’aurait pu naitre sans l’émergence des « cartes de développement » (RaspberryPi et suivants).
Architecture du cluster.
Le cluster est composé de 5 machines : c’est le nombre minima (à mon goût) pour réaliser un grand nombre de test/maquettes.
- 1 client.
- Point d’entrée au cluster tant en local mais surtout depuis l’extérieur de mon LAN
- SSH est le seul port ouvert et seule cette cette machines est exposée au net
- En charge des backup des jeux de données des maquettes
- Monitoring (température, charge processeur…) des « travailleurs » : le maître et les 3 esclaves
- Point d’entrée au cluster tant en local mais surtout depuis l’extérieur de mon LAN
- 1 maître
- En charge de répartir la charge, les data… entre les 3 esclave
- 3 esclaves
- En charge de gérer les data, se répliquer, répondre aux requêtes …
Type de matériel
Comme énoncé plus haut les carte de développement sont adaptées à ce type de maquettes pour plusieurs raisons
- le prix : maximum 50€ pour un noeud (carte mère+stockage)
- la place : le cluster (photos à venir) tient sur 40cmx40cmx25cm
- la consommation électrique < 10Watt à vu de nez (mériterait quelques mesures)
- le bruit : aucun bruit à l’opposé des serveur traditionnels.
Pour toutes ces raisons les cartes de développement ont été retenue face aux solutions traditionnelles.
Choix RaspberryPi
Il existe des concurrents (OrangePi, BananaPi, ODroid…) au RaspberryPi.
Certains sont plus puissants, possèdent de meilleur composants (processeur, carte réseau gigabit)…
J’ai pourtant fait le choix du Raspberry Pi. Voici les raisons :
- Une parfaite intégration logicielle/matérielle
- La distribution Raspbian « colle » au plus près (pas faux non plus pour la version Ubuntu Server) des cartes RasberryPi.
- Un bon matériel ne vaut que si il est propulsé par un bon logiciel.
- Facilité d’achat
- On peut acheter des carte en France (et en Angleterre), aucun problème de stock, livraison rapide
- Sauf pour le RaspberryPi Zero qui est en rupture de stock permanent mais il n’est pas utilisé dans ce cluster
- Suivit dans le temps et rétro-compatibilité de cartes
- Malgré l’arrivé de nouvelles cartes les anciennes sont toujours disponibles à la vente ce qui permet de faire évoluer son cluster dans les mois (années) à venir avec un matériel homogène
- La rétro-compatibilité permet de faire tourner toutes les cartes (quelques soit l’ancienneté ou la puissance) avec le même OS : Rasbian
- Attention pour Ubuntru server seul les RaspberryPi 2 et 3 sont utilisable
- Du au fait que Ubuntu Server ne fonctionne qu’à partir de la V7 du processeur ARM.
- Attention pour Ubuntru server seul les RaspberryPi 2 et 3 sont utilisable
Un cluster »maquette’ ou viable en prod
Un tel type de cluster semble adapté à la formation, le maquettage… mais qu’en est-il de l’utilisation en production ?
- Les performance sont elles adaptées
- Pour quel type d’application, service, architecture un cluster Raspberry Pi est il viable ?
Pour l’instant je n’ai pas de réponse, elles viendront au fur et à mesure des tests et maquettages.
Le budget
- Pour ma part mon cluster ne m’a coûté qu’environ 250€
- J’ai pu trouver 5 RaspberryPi 1 B+ à 15€ TTC ce qui a fortement baissé le prix du cluster
- A plein tarif comptez environ 400€ pour un cluster 5 machines.
A venir
- Listing complet du matériel utilisé pour monter le cluster.
- Photo du cluster
- Article « Et si le RaspberryPi Zero était un bon candidat pour un cluster ? »
- Redis : bench sur RaspberryPi 1, 2 et Zero