[Projet Favela] Monter un cluster Linux : le matériel

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.

favela

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
  • 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.

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

RaspberryPI 2 et 3 : sortie de 4 distro Ubuntu.

A peine sorti le RaspberryPi 3 et voila 4 distrib pour RaspberryPi 2 et 3 proposées :

Ces distribution en sont pas compatibles RaspberryPi 1 (compatible à partie du ARM V7, le 1 est en V6).

Un seul Download par disto donc  pas de portage (aucune trace dans le changelog) 64bits : juste (et c’est déjà énorme vu les délais) une adaptation aux nouveaux hardware (wifi et BlueTooth) du RaspberryPi3.