Skip to content
Nouveau rapport : Obtenez votre exemplaire du rapport 2024 sur l'état de l'internet ! | Télécharger aujourd'hui
Blogs

Homelab et Break Things

Ceci est un billet de blog sur des choses qui se sont vraiment mal passées. Mais ce n'est pas grave, parce qu'elles étaient censées mal se passer. Je m'explique.

J'ai rejoint Censys en tant qu'ingénieur en fiabilité des sites en décembre 2023. Ma carrière dans la technologie a été fortement influencée par l'informatique en nuage qui a modifié l'expertise spécifique dont vous devez vous préoccuper en tant qu'ingénieur. Au cours des quinze dernières années, beaucoup d'entre nous ont passé beaucoup moins de temps à faire du câblage dans un centre de données et beaucoup plus de temps à se battre avec une console cloud d'une variété ou d'une autre. Pourtant, comme la mode, tout est cyclique dans ce secteur et de plus en plus de gens parlent chaque jour des économies de coûts et des avantages en termes de liberté qu'offre l'exécution de vos services sur du matériel physique que vous possédez. Censys ne fait certainement pas exception : nous exécutons une partie de nos systèmes sur place depuis un certain temps maintenant.

Dans les fonctions antérieures où j'ai eu à travailler avec du matériel physique, j'ai été soutenu par des équipes entières qui géraient cela directement. Censys est une organisation beaucoup plus petite et mon nouveau rôle m'a obligé à comprendre des parties de la pile que j'ai largement pu ignorer jusqu'à présent. Alors, comment quelqu'un qui a passé une grande partie de sa carrière la tête dans le "nuage", pour ainsi dire, peut-il se mettre au diapason des préoccupations liées au matériel physique réel ?

Voici le budget de développement professionnel Censys . Il s'agit d'une allocation annuelle que nous pouvons utiliser comme bon nous semble (dans les limites du raisonnable) pour améliorer nos compétences professionnelles. J'ai décidé d'utiliser une partie de mon budget pour construire un laboratoire à domicile que je pourrais utiliser pour expérimenter le matériel physique de première main. Aujourd'hui, je vais vous parler de ce que j'ai construit et de quelques-uns des obstacles les plus frustrants que j'ai rencontrés en chemin.

Qu'est-ce qu'un Homelab ?

La pratique du "homelabbing" existe depuis longtemps dans la communauté technologique. Vous trouverez de nombreux fils de discussion sur Reddit où des personnes parlent de leur laboratoire domestique, partagent des photos de celui-ci, et bien d'autres choses encore. Le terme lui-même fait référence à la pratique consistant à construire une sorte de bac à sable à la maison qui vous permet de travailler sur des problèmes analogues (voire identiques) à ceux auxquels vous seriez confronté dans votre vie professionnelle.

Les limites de ce que vous pouvez apprendre avec cette approche ne sont limitées que par votre budget et votre curiosité. Ce que chaque individu choisit de mettre dans son homelab dépend de ce qu'il souhaite apprendre. En ce qui me concerne, je voulais acquérir une expérience pratique avec des techniques de mise en réseau plus avancées et l'exécution de Kubernetes sur du matériel bare metal. Ce que j'ai construit reflète cela.

Aujourd'hui, dans mon homelab, j'ai :

  • Mon réseau domestique et mon matériel de sécurité, qui sont pour l'instant largement isolés du matériel de laboratoire, à la fois pour des raisons de sécurité et pour des raisons pratiques.
  • Un NUC Intel i3 fonctionnant sous pfSense, qui est actuellement le pare-feu du laboratoire.
  • Cinq Raspberry Pi 4B assemblés en un cluster Kubernetes.
  • Quatre d'entre eux sont équipés de disques durs reliés par USB afin de fournir un espace de stockage permanent résistant à la défaillance d'un seul nœud.
  • Un commutateur Power over Ethernet TP-Link bon marché qui fournira l'alimentation et la connectivité réseau à mes Raspberry Pi via le même câble.

Photo du homelab de Matt Farmer, employé de Censys

A l'échelle des homelabs, celui-ci est plutôt petit. Il ne me vaudra certainement pas de prix pour l'élégance de son câblage (bien que j'y travaille). Malgré tout, il m'a donné de nombreuses occasions d'apprendre de nouvelles choses, et c'est là tout l'intérêt.

J'ai mentionné au début qu'il s'agit d'un article de blog sur des choses qui ont mal tourné, donc si vous cherchez des conseils sur la façon de mettre en place une configuration comme celle-ci pour qu'elle soit utile, vous n'êtes probablement pas au bon endroit. Au lieu de cela, ce qui suit est un aperçu des tangentes les plus intéressantes qui se sont produites et ce que j'en ai appris. Si cela vous semble intéressant, allons-y.

Les malheurs des disques durs externes

Les clés USB externes sont un phénomène assez courant de nos jours. L'une des raisons pour lesquelles ces disques fonctionnent aussi bien est une technologie appelée "UAS", qui vous permet de lire et d'écrire des données sur un disque USB beaucoup plus rapidement que vous ne le feriez autrement. L'une des premières choses que je voulais faire dans mon nouveau laboratoire domestique était de disposer d'un espace de stockage.

J'ai acheté des disques d'essai et un câble d'essai pour un Raspberry Pi. J'ai tout transféré sur le nouveau disque, y compris le système d'exploitation. Tout semblait bon, j'en ai donc acheté d'autres. Tout a été vérifié après avoir connecté les disques et effectué des tests de vitesse de lecture et d'écriture. J'ai donc déployé Longhorn pour donner à mon cluster Kubernetes un stockage redondant et persistant. J'étais très enthousiaste jusqu'à ce que je copie le premier fichier volumineux dans un volume Longhorn et que tout s'arrête soudainement. Je ne pouvais pas me connecter à la machine à distance, mes fichiers ne s'affichaient plus et c'était un peu comme si tout avait disparu dans l'air jusqu'à ce que je redémarre le serveur et que tout revienne. Jusqu'à ce qu'il tombe à nouveau en panne.

J'avais commis une erreur grave et je n'aurais jamais pu l'anticiper. Quel que soit le nom de la marque qui figure sur l'extérieur d'un câble informatique lorsque vous l'achetez, d'autres fabricants produisent les puces qui se trouvent à l'intérieur du câble et qui lui permettent de fonctionner. Si ces puces ne sont pas compatibles avec votre matériel, vous êtes grillé.

Le câble que j'utilisais pour connecter mon disque à l'USB n'était pas compatible avec le Raspberry Pi. En conséquence, il s'éteignait périodiquement jusqu'à ce que l'alimentation soit réinitialisée. C'est déjà assez grave en soi, mais j'ai appris à mes dépens que si le système d'exploitation principal se trouve sur ce disque externe lorsque cela se produit, vous allez perdre tout accès à ce serveur pour comprendre ce qui s'est passé jusqu'à ce que vous le redémarriez. Après quoi, les preuves du problème ont généralement disparu et il ne reste plus beaucoup de preuves du problème antérieur.

Alors, comment ai-je résolu le problème et qu'avons-nous appris ?

En fait, la solution à ce problème était double.

Tout d'abord, j'ai dû déplacer le système d'exploitation vers la carte SD sur laquelle le Raspberry Pi s'attend généralement à ce que vous exécutiez votre système d'exploitation. Cela signifie qu'en cas de problème avec le stockage externe, le serveur central fonctionne toujours et je peux au moins y accéder pour recueillir des informations sur le problème.

Deuxièmement, il s'avère que les disques externes avec les Pi sont un sujet très complexe. En fin de compte, la solution pour empêcher mon disque de tomber en panne a été d'activer le "mode bizarrerie" pour mon disque. Cela permettait de dire au Pi d'arrêter d'utiliser les vitesses de transfert de données les plus rapides en faveur de l'approche la plus lente et la plus stable, et voilà, mes disques externes ont recommencé à fonctionner et sont restés fonctionnels.

J'ai besoin de plus de puissance

J'ai décidé très tôt que je voulais que mon laboratoire domestique soit alimenté par Power-over-Ethernet. Principalement pour éviter d'avoir à acheter une multiprise plus grande avec suffisamment de prises pour connecter cinq Raspberry Pi à l'alimentation murale. Mon équipement existant était capable de fournir de l'énergie aux appareils, alors pourquoi ne pas en profiter ?

L'une des premières choses que j'ai rencontrées avec ma nouvelle installation a été les problèmes de puissance. Comme vous pouvez le constater sur l'image ci-dessus, mon installation est assez dense. Outre le matériel du homelab, je dois fournir de l'énergie et de la connectivité aux appareils qui font fonctionner mon réseau domestique. Les commutateurs que j'avais initialement prévu d'utiliser pour l'alimentation ne pouvaient pas gérer cinq Raspberry Pi à la fois, ce qui signifiait qu'ils devaient être branchés sur l'un des rares ports disponibles sur mon commutateur principal. Cela m'a conduit à essayer de trouver un moyen d'obtenir plus de ports Ethernet alimentés pour mon installation.

Au début, la solution semblait simple. Acheter un nouveau commutateur auprès du fabricant de mon choix. Malheureusement, une enquête rapide a révélé que je devrais dépenser beaucoup plus d'argent que je ne le souhaitais pour que cela fonctionne (~ 350-700 $). C'est alors que j'ai trouvé la perle rare - un commutateur d'un autre fournisseur qui répond à la plupart de mes attentes pour 85 $ sur Amazon. C'est gagné !

Je sais ce que vous pensez et, à vrai dire, je m'attendais à de nombreuses différences entre un interrupteur à 85 dollars et un autre à 350 dollars. Je n'étais cependant pas préparé au plus gros problème que j'ai rencontré. Un après-midi, alors que je passais des câbles dans mon placard pour ajouter un nouveau composant, j'ai soudain entendu un "CLIC" très fort. Tout avait été mis hors tension et était en train de redémarrer. Étrange.... Je ne pensais pas avoir heurté l'interrupteur de la multiprise, mais c'est peut-être le cas. Après avoir vérifié que l'interrupteur principal était dans la bonne position, j'ai déplacé les objets pour ne pas heurter l'interrupteur par accident et j'ai continué à faire passer mon câble. "CLIC. D'accord, ce n'est pas la multiprise.

Que s'est-il passé ?

Lorsqu'il s'agit d'économiser de l'argent dans le monde physique, il y a beaucoup d'endroits où un fabricant peut faire des erreurs dans son processus ou prendre des raccourcis pour réduire son prix. Dans le cas présent, il semble que les personnes qui ont construit cet interrupteur n'aient pas dimensionné correctement le câble d'alimentation qui le relie au mur. Ainsi, chaque fois qu'un vent léger (ou un câble Ethernet) frôle la connexion électrique, tout se réinitialise.

Après avoir réfléchi à ce qu'il fallait faire, j'ai décidé qu'il s'agissait d'un de ces problèmes que l'on ne doit pas nécessairement résoudre, mais que l'on peut atténuer. Souvent, dans le monde réel, le matériel physique ne correspond pas aux spécifications. Parfois, vous retournez l'équipement cassé et vous obtenez quelque chose de neuf, mais dans d'autres cas, vous décidez qu'il est préférable d'utiliser votre temps pour atténuer le problème et passer à autre chose. C'est ce que j'ai fait ici. Le câble a été reconfiguré pour minimiser le nombre de choses avec lesquelles il peut entrer en contact, ce qui devrait à son tour signifier que les redémarrages inattendus à la suite d'une secousse devraient, eux aussi, devenir plus rares.

Plus de casse, plus d'apprentissage

Il ne s'agit là que de quelques unes des manigances auxquelles j'ai été confronté en travaillant sur mon laboratoire domestique. Si vous me voyez à une conférence et que vous voulez en savoir plus, je serais ravi de vous raconter la fois où j'ai fait en sorte que tous les équipements de réseau de ma maison accélèrent leurs ventilateurs au maximum, puis redémarrent les uns après les autres. Ou encore la fois où j'ai dû trouver le format exact d'une disquette pour qu'un ancien système de télégestion fonctionne. La liste est encore longue.

Si vous avez accès à un budget de développement professionnel, je ne saurais trop vous recommander d'être curieux, d'acheter du matériel et d'essayer de construire quelque chose. Et si ce n'est pas le cas, c'est sans doute le moment de vous dire que nous recrutons.

Censys Carrières

A propos de l'auteur

Matt Farmer
Censys Ingénieur principal en fiabilité des sites
Matt est un ingénieur logiciel spécialisé dans les applications dorsales de haute performance. Avec une expérience dans le conseil, les startups et les grandes entreprises, il est connu pour l'exécution des feuilles de route techniques et le mentorat des ingénieurs. Père de famille dévoué, il aime passer du temps avec ses enfants lorsqu'il n'est pas en train d'explorer de nouvelles technologies.

Contenu similaire

Retour au centre de ressources
Solutions de gestion de la surface d'attaque
En savoir plus