Mon infra en 2021

Rédigé par Fenix - - Aucun commentaire

Le dernier article date un peu, on dirait. Du coup, histoire de meubler, petit tour rapide de mon infra personnelle en 2021 !

J'en parlais dans un précédent article, mais j'aime refaire mon infra régulièrement (que ça soit pour la maison ou l'auto-hébergement des quelques services que j'utilise).

 

Si j'aime la simplicité, j'essaye aussi de me faire plaisir de temps en temps. Malgré tout, j'ai deux contraintes très fortes à respecter :

  1. je dois limiter mes frais au maximum ;
  2. je n'ai pas beaucoup de temps à y consacrer.

Côté besoins, si selon les périodes j'essaye de lancer quelques projets (qui vont et viennent), là aussi j'essaye de me limiter au strict minimum :

  • l'hébergement de mes données personnelles (travail perso, photos, etc) ;
  • quelques services histoire de gérer ma vie numérique sans trop m'éparpiller (Mastodon, Kresus, Nextcloud, du RSS, etc) ;
  • la médiathèque familiale ;
  • et, bien entendu, les sauvegardes qui vont bien.

 

Ah, et j'ai une connexion ADSL particulièrement mauvaise, ce qui implique certains sacrifices.

 

Le Cloud rentre à la maison

 

Je l'évoquais dans mon article sur mon parcours dans l'autohébergement, j'ai progressivement ramené (quasi) tous mes services à la maison (à cause de mon ADSL, mais aussi de ma volonté d'avoir mes jouets à portée de main). Bon, je ne vais pas vous cacher qu'un certain barbecue à Strasbourg aura précipité un peu ces opérations, mais j'avais justement un PRA à tester (et validé avec succès !).

Aujourd'hui, j'ai donc mes machines à la maison (j'y reviens par la suite), une autre déportée chez mes parents à ~15km de chez moi, et un seul et unique petit VPS (toujours chez OVH, parce que pourquoi pas).

 

Chez moi, j'ai pour commencer mon "Pokécluster", un trio de 3 mini-PC basse consommation (que je présente plus tard) sous Proxmox, qui héberge mes services internes (DNS, routeurs, etc) ainsi que mes services auto-hébergés (Mastodon/Nextcloud/etc). A l'origine, il n'y en avait qu'un, mais ses capacités étant limitées, et ne voulant pas sortir du gros Xeon avec un TDP de 95W juste pour ça, j'ai préféré cette approche. Oui, ça fait plus de matériel et de câbles (mais j'aime les câbles <3), et un peu plus de travail, mais c'est quand même sympa de pouvoir migrer ses machines pour des opérations de maintenance. Au passage, si j'ai un peu de Docker dans un coin, ça ne m'intéresse pas plus que ça.

 

Capture d'écran d'un dashboard Proxmox, qui montre les ressources présentent sur 3 noeuds.

 

Concernant les services auto-hébergés, il y a donc :

  • du Mastodon (plus exactement du glitch-soc, et je n'ai jamais aimé Pleroma) ;
  • du vieux Nextcloud historique que je dois garder dans un coin ;
  • du Yunohost qui regroupe du Wallabag, du Kresus, du Gitea, du TT-RSS, du Nextcloud, etc... parce que la flemme de tout maintenir à part ;
  • 2 serveurs Minecraft ;
  • et une seedbox qui ne sert pas à grand chose.

A côté de mon Pokécluster, j'ai mon NAS. L'Eternel. Celui qui m'accompagne depuis... oula, fort longtemps. Il a pu changer de tour ou de carte-mère, il reste mon bébé depuis pas mal d'années maintenant. S'il a pu héberger également quelques services (internes) pendant un temps, aujourd'hui il est majoritairement cantonné à son rôle de NAS, et centralise une bonne partie de mes sauvegardes. Mais en cas de besoin (petit "PRA" interne si mon Pokécluster se vautre), il peut tout remonter en l'espace de quelques minutes :)

Chez mes parents, il y a un autre NAS. Une vieille tour Acer de récup, anémique mais suffisante pour stocker quelques films et les (nombreuses) données de travail de mon père. Bon, le ventirad tient (littéralement) avec des bouts de ficelle, mais $çaMarche. Prochainement, je vais le migrer sur une "nouvelle" tour que j'ai en stock à la maison, histoire de ne plus transpirer à chaque vague de chaleur. J'en reparle également plus tard, mais ce NAS ainsi que celui que j'ai à la maison s'occupent également de croiser leurs sauvegardes. Et les sauvegardes, c'est la vie.

Et pour finir, le fameux VPS. Son rôle évolue un peu au fil des mois, mais dans l'idée il sert surtout de porte de sortie pour mon infra (VPN, tout ça tout ça) et de supervision (très) légère pour m'alerter si quelque chose ne ping plus chez moi. J'ai eu dans l'idée d'y déporter également quelques sauvegardes, mais ça chiffre vite (j'avais auparavant ~3To dispo, mais... j'ai du les abandonner, tant pis).

 

Tant que ça ping, y'a de la vie.

 

Côté réseau, je garde toujours une logique de L3 virtualisé, pour limiter le nombre d'équipements. Donc quelques switches pour brancher tout le monde dans la maison, une box ADSL, un routeur 4G (j'y reviens), un AP Wifi, et c'est tout. Quelques VLANs histoire de m'amuser, mais rien d'extraordinaire. Et du Open vSwitch sur mes Proxmox.

 

Un schéma illustrant les quelques machines que j'ai chez moi, avec les imprimantes, les PC, les serveurs, les équipements réseaux...

 

Actuellement, tout le routage/filtrage repose sur un PFsense (auparavant 2 en HA, et encore auparavant un simple LXC), qui gère aussi le VPN qui me permet de sortir par mon VPS, ainsi que la HA entre mon ADSL et un abonnement 4G. Si ça sait se faire oublier dans son coin, je regrette de ne pas réussir à monter un tunnel stable entre chez moi et chez mes parents (ça tombe trop souvent, la flemme d'investiguer), là où le Tinc que j'avais mis en place avant faisait très bien le boulot (mais ma 2e ligne en 4G m'a obligé à revoir un peu mon setup).

A propos de cette 4G, justement : le besoin est bien entendu venu des réunions en visio tous les jours (et accessoirement de juste pouvoir bosser sans lag, des fois). J'ai surveillé pendant des mois les offres chez Free/Orange/Bouygues, mais c'est juste hors de prix. Finalement, j'ai opté pour une promo chez NRJ Mobile (150Go pour 7€/mois), qui utilise le réseau Bouygues si je ne me trompe pas, et j'ai acheté un routeur 4G. Je n'utilise vraiment que la partie modem 4G, tout le reste est désactivé, et j'ai une petite alerte par SMS quand mon quota est épuisé. Point d'amélioration à apporter : actuellement, c'est ADSL ou 4G, et la bascule se fait... manuellement (enfin, en partie) :

  • si l'une ou l'autre box tombe, ça bascule automatiquement ;
  • par contre, si c'est juste la ligne derrière qui tombe, ou si je veux utiliser la 4G pour un besoin précis (au pif, bosser), je dois débrancher (physiquement ou sur PFsense) la box qui convient.

Comme tout sort par le même VPN, je n'ai pas de solution simple et efficace pour diriger uniquement certains flux via la 4G, ou pour rebasculer sur l'ADSL quand le quota 4G est épuisé (le débit est fortement réduit, mais pour mon PFsense la gateway reste joignable, donc il ne bascule pas...). Le MPTCP c'est bien, mais pour l'instant je n'ai pas envie de me (re)prendre la tête, ça me suffit au quotidien.

A noter que j'ai tourné quelques temps avec une OverTheBox d'OVH virtualisée : ça marche très bien, ça équilibre la charge correctement (ce que mon setup manuel ne fait pas) et la bascule est propre. Le hic, c'est que j'avais des difficultés de connexion à certaines plateformes (mais c'est très spécifique à mon cadre professionnel), pénibles à diagnostiquer et en dehors de mon champ d'action, donc tant pis (et puis ça rajoutait une couche de complexité chez moi).

Côté services réseaux, j'ai un Squid sur mon PFsense (ça soulage un peu mon ADSL), et du Pi-hole (qui résout aussi mes zones internes). La haute-dispo, ça va, ça vient, suivant mes envies du moment : je n'héberge rien de critique, restons KISS. Et il y aussi toute une ribambelle d'autres petits services internes, par exemple du apt-cacher, tout ça géré avec du Ansible et du café.

 

Des disques et des câbles <3

 

Passons au hardware (j'aime le hardware, c'est cool le hardware).

 

Commençons par le réseau :

  • le dernier arrivé, un routeur 4G TP-Link Archer MR600 ;
  • à côté, j'ai un vieillissant AP Wifi TP-Link TL-WA801ND sous OpenWRT (puisque le routeur 4G ne sait pas faire de VLAN, sinon il aurait déjà pris sa retraite) ;
  • ainsi que 2 switches Netgear GS108Tv2 et un Netgear GS608v3 tout jauni (le visuel sur le site n'est pas bon, donc je mets le PDF qui va bien) ;
  • je passe sous silence les innombrables vieilleries qui dépannent de temps en temps (switches 100Mb, AP Wifi qui ne supporte que du 802.11b, etc).

 

Ensuite, les NAS :

  • à la maison, un solide Fractal Design R4 qui accueille :
    • un Intel i3-2120 et 14Go de RAM ;
    • 2 disques de 160Go pour l'OS (RAID1 + LVM) ;
    • une carte LSI SAS 9211-8i flashée en IT (pour présenter les disques directement à l'OS) ;
    • et 8 disques Seagate et Western Digital de 4To (version "RED" ou équivalent) en RAIDZ2 (parce que ZFS, c'est la vie).
  • chez mes parents, une vieille tour Acer disais-je, avec :
    • un vieux Pentium E2140 et 2Go de RAM ;
    • 2 disques de 160Go pour l'OS (RAID1 + LVM) ;
    • et 2 disques de 4To en miroir (avec ZFS, encore et toujours).

 

Une tour ouverte, qui présente un classique assemblage de carte-mère, RAM, CPU et alimentation, ainsi que 8 disques visibles sur le côté (d'autres sont cachés).

 

Au tour du Pokécluster :

  • Bulbizarre, un Zotac BI320 avec :
    • un Celeron 2957U et 16Go de RAM ;
    • un SSD de 1To avec du ZFS par-dessus.
  • Carapuce, un Zotac CI320 nano avec :
    • un Celeron N2930 avec 8Go de RAM ;
    • un SSD de 128Go avec du ZFS par-dessus.
  • Salamèche, un Gigabyte GB-BACE-3150 avec :
    • un Celeron N3150 avec 8Go de RAM ;
    • un SSD de 128Go avec du ZFS par-dessus.

L'avantage de ces 3 petites machines, outre leur taille et leur consommation électrique assez faible, c'est que les CPU permettent quand même de faire du KVM.

 

Une photo de mon cluster de mini-machines, avec une Livebox noire, un switch et une borne Wifi.

 

Côté stockage, plus spécifiquement, j'ai donc :

  • 4To utiles chez mes parents, pour leurs données, les sauvegardes (locales + répliquées) et une petite médiathèque ;
  • ~20To utiles sur mon NAS, pour la médiathèque + les sauvegardes (locales + répliquées) ;
  • quelques dizaines de Go sur chaque membre de mon Pokécluster pour les VM et autres conteneurs, ainsi que quelques centaines de Go sur Bulbizarre pour nos données et quelques sauvegardes locales.

A noter : toutes les données et sauvegardes sont sur des datasets chiffrés. Donc oui, au reboot il faut se connecter pour monter les datasets, ce qui prend environ 2 minutes. L'idée n'est pas de se protéger de la NSA, de Jean-Kevin Hacker ou de toute autre force extraterrestre maléfique, ça ne m'intéresse pas et ça ne vaut pas l'investissement : c'est plutôt d'éviter qu'un éventuel cambrioleur ne tombe un jour sur nos photos de famille. Tout le reste de l'infra, c'est du Linux et des fichiers de conf, donc grosso-modo : OSEF. Pour les données utilisées par Nextcloud et consorts, c'est monté depuis les sus-cités datasets avec du Samba.

Petite digression, en passant : vous aurez peut-être noté que je fais du ZFS de partout, y compris sur des machines avec 2Go de RAM. Et tout ça sans RAM ECC. Concrètement, après quelques années de recul, ça fonctionne très bien (attention : dans un cadre purement personnel et en assumant les risques associés !), et les performances sont suffisantes pour mes besoins. Et au pire, j'ai des sauvegardes. #noFear

 

Garder tout ça en vie

 

Histoire de garder un oeil sur toutes ces machines, j'ai décidé de quitter Centreon et LibreNMS pour partir sur CheckMK. Parce que ça change, que c'est fort sympathique, et que c'est assez rapide à mettre en place. Je n'ai que très peu de notifications, tout juste pour savoir comment se portent les disques de mes machines, puisque pour les services que j'héberge j'ai un PHP Server Monitor sur mon VPS qui surveille tout ça de l'extérieur. Encore une fois, dans un contexte perso je ne vois pas l'intérêt d'aller beaucoup plus loin : j'ai besoin de quelques métriques pour savoir si ça coince quelque part, et c'est à peu près tout. Et le NagVis intégré fonctionne très bien pour avoir des visuels sur mes infras (je suis quelqu'un de très visuel, un graphique ou un schéma me parle infiniment mieux qu'une métrique).

 

Capture d'écran d'une machine sur CheckMK, avec un certain nombres de métriques.

 

Comme les accidents, ça arrive, je fais bien entendu des sauvegardes (pensez à vos sauvegardes, et si vous ne savez pas par où commencer, vous pouvez jeter un oeil à mon article sur le sujet).

Là aussi, ça change de temps en temps, mais dans les grandes lignes j'utilise une solution à base de rsync (over SSH), alias Katarina, ainsi que Proxmox Backup Server (que je vais abréger PBS). Concrètement, mon NAS, celui de mes parents et Bulbizarre sont des PBS.

  • Bulbizarre sauvegarde tous les jours les VM et conteneurs de mon Pokécluster, en local donc ;
  • Les 2 autres PBS (les NAS) répliquent ces sauvegardes tous les jours : j'ai ainsi une 2e copie chez moi, en dehors du Pokécluster, et une autre chez mes parents (à noter : comme ce sont également des Proxmox, et que j'ai réfléchi en amont au design de mon réseau, je peux restaurer au besoin mes sauvegardes sur ces machines, ce qui me fait un petit PRA).
  • Côté données, Katarina va tourner tous les jours chez moi et chez mes parents, pour sauvegarder à la fois les données locales, puis celles de l'autre site. J'ai donc un jeu de données "de production", une sauvegarde locale, et une sauvegarde déportée à ~15km. Alors, certain.e.s me diront que comme j'ai du ZFS de partout je pourrais faire du send|receive, et c'est tout à fait pertinent ; toutefois, il y a une grosse part d'historique et d'habitude, et je peux restaurer un fichier en quelques instants sans devoir remonter un snapshot ou autre. Mais ça reste effectivement une possibilité que je mets régulièrement sur la table.

 

Un rapport par mail de mes sauvegardes Katarina, avec la liste des machines, le temps écoulé, la volumétrie, etc.

 

Oui, je tourne sous Windows 10

 

Dernière partie : les machines de notre quotidien. Parce que les serveurs et les switches, c'est bien gentil, mais le soir on a surtout envie d'allumer le PC et de lancer un petit jeu pour se détendre sans se prendre la tête.

Déjà, côté matériel ça va être assez rapide : je n'ai que des vieilles tours de récup (4 au total), avec des i3 ou des i5 de 2e ou 3e génération, et 8Go de RAM de partout. Quelques SSD, parce qu'on veut quand même que ça démarre avant demain, et j'ai l'immense chance d'avoir 2 cartes graphiques à peu près décentes (oui oui !) qui datent d'avant le Covid et les pénuries (et les délires de crypto-monnaies, mais passons) : une GTX 1050Ti et une GTX 1650. Pour les enfants, ils doivent se contenter de GT710 achetées au prix fort l'année dernière...

 

Une tour blanche avec une paroi en plexi, ainsi que des bandes leds à l'intérieur aux couleurs de l'arc-en-ciel.

 

Ces tours, elles tournent sous Windows 10, parce que je veux juste me détendre, des fois, et pas me prendre la tête avec des drivers, du Proton ou du Wine customisé à n'en plus finir. Les sauvegardes sont assurées par du Veeam (en version gratuite) qui pousse tout sur le NAS, et ça juste marche. Tout est chiffré avec du Bitlocker, encore une fois plutôt pour éviter les ennuis avec Jean-Edouard Cambrioleur que pour empêcher le FBI de récupérer les photos de mon chat.

J'ai un poussif Levovo Y530 (ancienne génération) avec un Core 2 Duo T6400 et 4Go de RAM (je vous laisse imaginer l'enfer pour naviguer sur Internet aujourd'hui...), sous Debian 11, qui me sert pour tout mon sysadmin courant et mes déplacements, et pour le boulot j'ai aussi un laptop sous Linux.

Et côté smartphone, après des années sous Android, à tester plein de ROMs customs et à subir un écosystème toujours plus bordélique, j'ai opté pour un vieil iPhone 7 d'occasion : ça juste marche, les photos sont très correctes, et c'est toujours maintenu à jour. Contacts/agendas/photos sur Nextcloud, Signal, et basta.

Attention, cette partie "Windows 10" n'appelle à aucune réaction du type "installe $telleDistrib !", "c'est pas vrai chez moi ça marche !" ou autre "ouais mais aujourd'hui c'est mieux" :

  • je sais très bien que certaines choses bougent ;
  • je considère que j'ai un bagage technique suffisant pour juger de ce qui vaut le coup ou pas, en fonction de mes besoins/envies/ressources ;
  • je surveille l'avancement de pas mal de projets, y compris du Steam Deck ;
  • j'ai trop donné pendant des années, et j'ai déjà 2 gosses à gérer au quotidien, donc je vais au plus simple.

Merci de conserver calme et courtoisie.

 

Enfin voilà, je pense avoir fait le tour. J'ai du stock de pièces détachées, d'autres vielles machines qui trainent dans le placard, et une motivation un peu déclinante en ce qui concerne l'informatique en générale, mais pour aujourd'hui ça fonctionne et ça répond à nos besoins, donc c'est l'essentiel :)

Écrire un commentaire

Quelle est le dernier caractère du mot fy2wl ?