Un datacenter à la maison

Le dans «Infonuagique» par Eldeberen
Mots-clés:

Introduction

Depuis trois ans environ, j'héberge quelques services à moi dans le "Cloud". Celui d'OVH en l'occurence. D'un petit VPS, je suis passé à un dédié chez Kimsufi, mais ça fait quelques mois que je souhaitais rappatrier une partie des services chez moi, littéralement. La raison principale est que le dédié n'est plus taillé pour ce que je lui demande. Entre une instance Misskey, un Nextcloud, une forge Gitea, une seedbox et quelques autres trucs, le combo CPU/disque arrive au bout de ses limites. Ci dessous un extrait du monitoring, pour vous donner une idée.

Monitoring d'erebor, mon dédié

À ce moment là j'ai grosso-modo trois solutions : louer un Kimsufi plus gros, louer un ou plusieurs VPS en plus, enfin utiliser mon rack de 3 Raspberry Pi 3B+ qui n'attend que ça depuis quelques années.

Dans une optique de maitrise des données, de budget (je paie environ 120€ de serveur à l'année), et aussi de d'apprentissage, j'ai décidé de monter mon infra chez moi. À terme, seule la seedbox restera sur le Kimsufi.

La série de billets qui va suivre est une tentative de mettre au propre ce que j'ai fais pour configurer l'infrastructure, pour pouvoir refaire ça au besoin. Ce sera peut-être un peu brouillon, mais dans tous les cas je pars du principe que mes lecteur⋅ices ont de bonnes connaissances en système Gnunux.


Ce billet est le premier de sa série. Vous pouvez retrouver les autres ici :

  1. Un datacenter à la maison (cet article)
  2. Un NAS presque parfait
  3. Du monitoring avec Prometheus
  4. Backup to the sky (à paraître)

Le hardware

Pour mon infra, j'ai à disposition :

  • 3× Raspberry Pi 3B+ (Cortex-A53 64 bits, 1 Go de RAM)
  • 3× carte SD 16 Go, pour les RPi
  • 1× routeur/switch 1 Gbps 4 ports
  • 1× HDD externe de 2 To

En plus de ça, je décide d'acheter :

  • 1× Odroid H2+ (Intel J4115 x86_64) [160€]
  • 1× 4 Go de LPDDR4 [30€]
  • 1× 500 Go de SSD nvme [59€]
  • 2× 2 To de HDD [100€]
  • divers câbles, alimentation, etc. [25€]

Le principal intérêt de l'Odroid, c'est que c'est elle qui me servira de serveur de stockage. Les 500 Go de SSD supporteront les bases de données et autres services à latence réduite, tandis que les HDD, montées en RAID 1, stockeront les données qui sont moins demandées, ainsi que les backups. Finalement, le HDD externe sera branché régulièrement pour faire une sauvegarde hors-ligne en cas de pépin, et je copierais peut-être les données sur un autre HDD pour faire une sauvegarde hors-site, chez mes parents. À voir pour ce dernier point. L'autre avantage de ce système étant de ne pas faire trop de cycles d'écriture sur les cartes SD des RPi pour ne pas les cramer tous les deux mois.

Concrètement, ça se présente comme ça :

Schéma d'architecture

Et une fois branché, sur l'étagère, comme ceci :

L'étagère qui accueille mon datacenter

L'alimentation ATX a servi à alimenter les ventilateurs temporairement. L'Odroid a un port pour un ventilateur, mais le format est un peu plus petit que le standard, je fabriquerais un adaptateur à l'occasion. À terme, la multiprise ira rejoindre les câbles Ethernet sous l'étagère avec les bouquins.

L'Odroid, les disques et les Raspberry Pi

Bien entendu, l'Odroid posée à l'arrache et le support à disque dur en carton sont tout à fait définitivement temporaires. Ou temporairement définitif. Ça dépendra du temps que je mets à faire un vrai boitier plus propre, un peu comme celui des RPi.

La ventilation est vraiment un plus, j'ai pas fait de gros benchmark mais le dissipateur est largement dimensionné, j'ai jamais dépassé les 55 °C sur mes tests, en refroidissement passif. Mais je garde ça sous le coude au cas où il fasse trop chaud cet été.

La partie réseau, sur un étage dédié

Ça parait dégueulasse, mais je trouve ça plutôt propre. Les câbles bleus correspondent au LAN des Raspberry Pi, le jaune au LAN de l'appartement. Avec les étiquettes qui vont bien, ça fait le taf. C'est ici que descendra la multiprise dès que j'en aurais une à dédier au datacenter.

Le software

Les serveurs seront basés sur Archlinux, pour la simple et bonne raison que c'est une distro que je maitrise, qui propose à peut près tout ce dont j'ai besoin dans les dépôts et qui ne demande qu'une maintenance régulière minime. Suivant mes sautes d'humeur, peut-être que je ferais des tests sur d'autres distros avec l'un des RPi.

Niveau réseau, la box est configurée pour que les requêtes extérieures tapent l'Odroid, qui elle même sert de relais SSH et reverse-proxy pour accéder aux services qui sont derrières. Vu que c'est un équipement qui sera en frontal sur Internet, on veillera à faire une config pare-feu aux petis oignons.

Les disques de l'Odroid seront intégralement chiffrés, hors /boot toutefois. Pour les SD des RPi, ça serait pas mal de les chiffrer aussi, je ferais des tests à l'occasion, même si ça sera peut-être juste niveau performance.

Je m'arrête volontairement ici, puisque le reste fera l'objet d'autres articles, qui seront tagués @home comme celui-ci. À la prochaine o/

Vous pouvez réagir à cet article en m'envoyant un mail, à blog[@]middleearth[.]fr. Je répondrais avec plaisir :)