[Infra] Retour d'expérience sur 15 ans d'auto-hébergement
@ Nicolas | Friday, Oct 8, 2021 | 11 minutes de lecture | Mise à jour le Friday, Oct 8, 2021

Depuis 15 ans, je fais de l’auto-hébergement pour mes besoins personnels. Petit retour d’expérience sur des années d’évolution et de remise en question.

Introduction

Cela fait 15 ans que j’ai commencé à créer mon propre serveur et à me l’héberger à la maison. Cela n’a pas toujours été simple et parfois j’ai du tout remettre en question, mais au final il perdure et me sert toujours autant, voire plus.

Je partage donc mon retour d’expérience sur ces années.

Quel besoin initial ?

Le besoin initial était purement “geek” : avoir mon propre serveur sur le réseau local, qui m’héberge mes documents et mes bricoles (bon, ça amusait clairement moins mes parents d’avoir une tour de serveur qui tourne son mon lit).

C’était surtout le besoin de bricoler, d’étudier, et de bidouiller du matériel qui m’a lancé dans le sujet. Quand on commence l’informatique, à démonter des PC à 8 ans, croyez moi même à 18 c’est toujours amusant.

Ce qui m’a vraiment poussé à me lancer c’était Linux. Je commençais sérieusement à m’y intêresser, et avoir une deuxième machine à côté de mon PC Fixe windosien, c’était bien pratique, donc autant l’installer et le laisser tourner planqué dans un coin.

Au final, ce serveur était mon “labo” local, pas ouvert sur internet au départ.

Les évolutions

Avec les années qui passent, mes compétences, mes besoins, ma curiosité sur les services, ont amené mon auto-hébergement à sacrement évoluer.

Du besoin

Après avoir Linux bien en main (et dégager tout windows de mon périmètre), mon premier besoin a été d’héberger un blog à la sauce php pour commencer à pousser quelques articles.

Puis au fil du temps j’ai ajouté, et ajouté, et encore ajouté plein de services :

  • stocker mes datas pour le réseau local (samba)
  • héberger mes mails (dovecot/postfix/spamassassin)
  • stocker plus de sites
  • faire du monitoring (influxdb/telegraf/grafana, puis prometheus/alertmanager/grafana)
  • faire de la vidéo surveillance (motioneye)
  • héberger mes bases git (gitea)
  • avoir mon propre cloud (owncloud puis nextcloud)
  • gérer mes sauvegardes (rsnapshot, puis borg)
  • avoir de quoi faire des bacs à sable

Et je ne compte pas la partie service “réseau”.

De l’infrastructure matérielle

Au départ je tournais sur une petite machine, type Pentium 3 500Mhz, avec 256Mo de RAM, et genre un disque dur. Puis avec les études, j’ai du partir avec sous le bras. Vous avez déjà fait 6 heures de trains avec une tour de pc sous le bras ? Moi non plus.

C’est pour ça que pendant 1 an, mon serveur a été un peu, disons, “allegé” : juste une carte mère, la plus petite alim et les disques durs dans un sac à dos ça passe mieux :D Une petite année d’auto-hébergement dans un tiroir de mon bureau, ça fonctionne (dommage j’ai pas de photo) :D

Par la suite j’aurais connu une phase de “plus c’est gros, plus c’est gros” (le tout d’occaz) :

  • un bon gros core2duo des familles
  • 4Go de RAM
  • 5 disques de 1To en RAID 5 matériel avec une carte HP P212 récupérée
  • une armée de ventilos

Et ça ressemblait à ça :

core2-1 core2-2

Non, non j’ai pas parlé “cable management”. C’est ce qu’on appelle du “free cable management”.

Mais arrive à un moment, où ta femme te motive à éviter le bruit, ou les grosses tours dans le salon. Et puis mine de rien, 100W à la prise, 24h/24 7j/7 c’est pas annodin.

J’ai donc commencé à sérieusement repenser mon infra :

  • trouver un CPU qui consomme moins, et qui chauffe moins
  • Repenser mes données, trier, réduire la volumétrie
  • Réduire la taille de la tour
  • optimiser la ventilation (et la vitesse des ventilos)

J’ai donc du pour la première fois, acheter une carte mère, cpu et ram. Oui oui. J’étais parti à ce moment là sur le core i3 avec un TDP faible (35W) pour limiter la consommation et le refroissement (i3-3220T) (j’avais même pu adapter mon ancien ventirad).

J’ai du aussi acheter des disques, car malheureusement, j’avais pas mal de trucs à stocker et je voulais limiter le nombre, 3x3To à l’époque ça m’a fait mal au slip.

Je me suis donc retrouvé avec une machine plus petite, un gain en perf, et une consommation réduite (entre 50W et 70W).

i3

Et le temps passe, et ma motivation à réduire la consommation électrique a pris le dessus. J’ai donc fait subir plusieurs évolutions d’architecture à mon infra sur les 5 dernières années, tout en essayant de minimiser les achats.

Ce qui consomme le plus dans une machine, c’est :

  • le CPU
  • les disques

Le CPU si on réfléchi bien à notre besoin de puissance, on peut facilement trouver un CPU peu énergivore ; ce qui au final limitera son refroidissement. Le stockage, les disques 3,5 consomment pas mal, il faut donc limiter leur usage, mais un 2,5", mécanique ou SSD, c’est pas le même prix pour la volumétrie. Il faut donc repenser à sa façon de stocker les datas, et surtout trier les datas “vivantes/mortes”.

Sur les 4 dernières années, mon serveur a donc tourné sur ce type de machine :

  • une carte mère mini-itx avec un CPU J3455 fanless (10W de TDP)
  • 8Go de RAM
  • 2 ou 3 SSD 240G en RAID5 contenant les datas “vivantes”
  • 3-4 HDD 3To en RAID5 sur une baie USB, en veille 90% du temps, contenant les datas “mortes”.

Ceci m’a fait descendre la consommation à 30W ce qui est plus que correct…

j3455

En 2021, j’ai franchi plusieurs autres pas dans ma réflexion hardware, qui a principalement été poussée par les évolutions logicielles. Historiquement, par flemme de tout refaire et par économie de ressources, tous mes services étaient sur le même OS.

En voulant tout reprendre pour splitter (on en parlera après), j’ai refait le point sur le hardware et j’ai pu récupérer un serveur d’occasion Supermicro.

  • Supermicro A1SAi 2750 (2013)
  • Atom Avoton 8 coeurs (20W TDP)
  • 32Go RAM ECC
  • 2 SSD 1To en RAID1 (données vivantes)
  • 2 HDD 3To en RAID1 (données mortes)

La consommation est aux alentours des 30W, ce qui reste toujours aussi bon. En augmentant le CPU mais baissant le nombre de disques 3,5" je n’ai pas augmenté ma conso.

supermicro

Cette machine possède une IPMI et c’est un vrai plus. Le CPU bien qu’ancien fait très bien son boulot pour un ATOM.

L’infrastructure et les services

L’infra système

Jusqu’à très récemment donc, j’utilisais la bonne vieille méthode historique, du serveur monolitique qui fait tout sur son unique OS. C’est bien, et c’est pas bien.

C’est bien parce que ça économise beaucoup les ressources, par contre c’est un enfer à réinstaller et reconfigurer car il y en a partout. Par chance les OS que j’ai utilisés au fil du temps sont robustes (Centos 6 puis 7, et Debian 9, 10 et maintenant 11), donc hormi le passage Centos/Debian je n’ai pas eu à tout refaire.

Dorénavant je suis passé sur de la virtualisation Proxmox, et sur des VM dédiées à mes services, entièrement installées par Ansible que je développe au fur et à mesure. 3500 lignes de conf Ansible qui à ce jour font en sorte que le déploiement et les mises à jour soient automatisées.

Ceci simplifie grandement l’évolution de mes services et me prémunit de la grosse panne du serveur monolitique.

Les 32Go de RAM et le 8 coeurs du Supermicro sont donc les bienvenus, et très franchement, pour un CPU qui maintenant 8 ans, il fonctionne du tonnerre. Mon ancien serveur à base de J3455 est également présent, que j’ai pu intégrer dans un chassis Supermicro récupéré, et intégré dans le cluster Proxmox, mais est volontairement éteint ; car je n’ai pas besoin de tant de ressources, mais me sert ponctuellement pour du loadbalancing.

L’infra réseau

Niveau réseau, les besoins en virtu, et mes besoins de bricoler la partie switching m’ont fait acheter un Juniper EX2200 d’occasion sur le net. Le switch consomme environ 25W, ce qui n’est pas négligeable, mais les fonctionnalités ne sont forcement pas au même niveau du petit dlink 8 ports que l’on trouve un peu partout.

Un switch pas forcement récent mais qui fait bien son taf, et me permet de faire du VLAN et du vrai LACP.

Mon arrivée fibre reste gérée par le boitier PON de mon FAI, et par ensuite sur mon EX dans un VLAN dédié au WAN. Mon routeur perso (puisque j’ai dégagé la box du FAI), montre la connexion internet directement local donc, derrière un LACP de 3x1Gb/s. Il gère au passage le firewall Iptables et tous mes VLANS.

Mon Supermicro est cablé en 4x1Gb/s LACP vers le switch, et permet de porter tous les VLANS nécessaires.

Les services

J’utilise tellement de services en parallèle, que je pense plutôt en parler dans des articles séparés…

En conclusion de cette expérience

Choisir son matériel

A ce niveau, mon/mes serveurs sont un peu passés par toutes les étapes.

Un ‘fil’ conducteur me guide toujours aujourd’hui quant au matériel que j’utilise pour mes serveurs : il doit être le plus fréquemment possible, à base de matos d’occasion ou de récupération.

Pourquoi me direz-vous ? Simplement :

  • je ne veux pas acheter du matos neuf à tout prix
  • je n’ai pas besoin d’un truc dernier cri
  • je fais gaffe à mon empreinte écolo sur le matos (j’aime bien le refurb)
  • je veux limiter la consommation électrique (un xeon c’est cool mais ça consomme)

Honnêtement tout peut servir pour de l’auto-hébergement. Une ancienne machine fait toujours l’affaire, il faut juste bien réfléchir à la charge qui va être générée par ce que vous voulez héberger. Pas besoin de partir sur un gros truc pour héberger un serveur nginx qui va faire 3 vues par jour.

Les pièges/risques de l’auto-hébergement

Quand on s’auto-héberge, il y a quand même quelques points à surveiller et à maitriser. Il faut se demander :

  • est-ce que mes données sont critiques ?
  • est-ce que je me permettre de les perdre ? Dois-je sauvegarder ? Répliquer ?
  • est-ce que je peux les exposer ? Ai-je besoin d’y avoir accès sur internet ou le réseau local suffit ?
  • est-ce que dois y avoir accès en continu ? Une coupure est tolérable ?

Forcement, ce n’est pas la même criticité d’accès entre votre blog et votre serveur mail, ou la même criticité de données entre vos photos de famille et votre dernier tuto…

La sécurité des données

Est-que mes données sont critiques ? Oui, non ? pas toutes ?

Je suis toujours parti sur un principe : données critiques ou non, OS facilement réinstallable ou non, je ne fais pas confiance à mon stockage. Sauf cas très ponctuel, mes disques ont des années d’uptime. Une panne ça arrive et n’importe quand, et ça m’est déjà arrivé plusieurs fois.

Tout mon stockage est donc en RAID. J’utilise MDADM car c’est simple à mettre en place et robuste, et n’importe quel PC sous linux peut reprendre la main sur le volume. J’ai beaucoup utilisé du RAID5, et actuellement plutôt du RAID1 pour une question de nombre de disques.

Au moins, quand ça casse, je remplace et je ne passe pas ma soirée à tout réparer.

Par contre ceci ne remplace pas la sauvegarde. Toutes mes données sont sauvegardées via BORG sur un barebone externe via un VPN wireguard. J’ai d’ailleurs fait un article sur BORG, et sur WIREGUARD.

L’avantage de l’avoir en externe et d’éviter que la sauvegarde ne soit détruite en même temps que les données originales.

L’accès aux données

Quand je pense à l’accès aux données, je parle de la sécurité et l’authentification qui y donne accès, mais aussi les moyens techniques (entrée internet).

Il faut bien évidemment veiller à n’utiliser que des flux chiffrés sur internet, et à avoir toujours une authentification (voire deux), sur vos services. Maintenez à jour vos applications (pas de Nextcloud de l’antéchrist sur Internet..).

Pour l’accès internet, forcement qui dit auto-hébergement dit la probabilité d’avoir des coupures… Mais en fonction de ce que vous hébergez on peut toujours trouver une solution :) Dans mon cas seul la partie mail est doublée, j’en viendrais sur un article prochainement sur le sujet de l’auto-hébergement mail.

Et surtout : tout ce que vous hébergez n’a peut-être pas besoin d’être sur internet ? Le mieux est de spliter les infras visibles du net, de celles qui ne seront qu’internes (une DMZ et un haproxy en frontal c’est une bonne idée).

Les coûts

Hormi les coûts du hardware, celui qui est le plus visible est la consommation électrique. Sans parler forcement de coût €, je pense aussi au coût écologique.

Je veille donc à limiter ma conso de manière générale, et donc dans ma baie informatique qui tourne H24… Un wattmètre parait être le premier achat utile pour savoir où vous en êtes. Sachez que rien qu’une box internet d’un FAI peut consommer plus de 20W en continu.

Actuellement, ma consommation électrique de ma baie navigue autour de 60W (serveurs, routeur, switch, …), soit environ 85€/an.

Au final, ça vaut le coup ?

Je dirais que oui car je suis un geek, et que c’est aussi mon métier que je ramène un peu à la maison. Mon auto-hébergement ce n’est pas que de l’hébergement, c’est aussi un bon labo qui me permet de tester de nouvelles technos et apprendre toujours plus d’outils. Avec les années, et l’expérience, mon infra me prend très peu de temps de maintenance, la majorité des opérations sont automatiques.

La majorité des services que j’ai mis en place me permettent aussi de ne pas avoir à utiliser les services des GAFAM, c’est un autre sujet, mais c’est vraiment important pour moi. Je souhaite avoir la main sur mes données et les héberger comme je l’entends.

A voir dans 10 ans !

© 2017 - 2022 Some stuff...

Powered by Hugo with theme Dream.