14 points par GN⁺ 2025-10-07 | 3 commentaires | Partager sur WhatsApp
  • Construction d’un stockage S3 maison avec un ordinateur portable Framework et un JBOD, permettant d’exploiter 10 To à bas coût, avec un fonctionnement stable pendant 4 mois sans administration
  • Réutilisation comme serveur domestique d’un ordinateur portable Framework d’occasion sans écran, avec ZFS et garage S3 installés, utilisé comme grand espace de stockage pour le projet de suivi des SDK d’AppGoblin
  • Après 4 mois sans aucune attention portée au serveur, une connexion a révélé que 10 To étaient utilisés et qu’un redémarrage en attente de mise à niveau patientait ; après redémarrage, tout a fonctionné normalement
  • La mise à niveau de garage S3 de la v1 vers la v2 s’est également déroulée sans problème, confirmant une expérience d’exploitation stable
  • Une configuration ZFS non standard reliant l’ordinateur portable et le JBOD en USB a posé des problèmes au départ, résolus en déplaçant les métadonnées à l’intérieur du portable

Contexte et motivation du projet

  • Décision d’héberger son propre S3 il y a 5 mois
    • Travail en cours sur le suivi des SDK des 100�0 principales applications Android et iOS d’AppGoblin
    • Besoin d’un grand espace de stockage tout en réduisant les coûts
    • Choix d’une approche self-hosted plutôt que d’un S3 cloud existant

Configuration matérielle

  • Utilisation d’un ordinateur portable Framework
    • Achat à bas prix d’un ordinateur portable Framework d’occasion sans écran
    • Modèle ancien, donc bien adapté à un usage de home server
    • Exploitation de la portabilité et de la faible consommation d’énergie du portable
  • Ajout d’un JBOD (Just a Bunch of Disks)
    • Baie de disques externe pour le stockage de grande capacité
    • Connexion à l’ordinateur portable via USB

Stack logicielle

  • Système de fichiers ZFS
    • Fournit l’intégrité des données et des fonctionnalités de snapshots
    • JBOD configuré comme pool ZFS
  • garage S3
    • Solution de stockage légère et distribuée compatible S3
    • Projet open source développé par Deuxfleurs
    • Fournit une compatibilité avec l’API S3

4 mois d’exploitation sans administration

  • Aucune attention portée au serveur pendant 4 mois après l’installation
    • Le S3 a continué à être utilisé pendant les voyages, le travail et un quotidien chargé
    • Il n’était pas nécessaire de penser au serveur
  • Constats après connexion
    • 10 To d’espace de stockage étaient utilisés
    • Le système attendait patiemment un redémarrage pour effectuer une mise à niveau
  • Résultat du redémarrage
    • Redémarrage lancé avec une certaine appréhension
    • Tout a redémarré normalement, au grand soulagement de l’auteur

Mise à niveau de garage S3

  • Passage de la v1 à la v2
    • Découverte d’une mise à niveau majeure en attente
    • Processus de mise à niveau effectué sans problème
    • Évalué comme un bon week-end

Avertissements techniques et résolution

  • Conscience d’une configuration ZFS non standard
    • Relier un ordinateur portable et un JBOD via USB constitue un cas d’usage un peu non standard pour ZFS
    • Des avertissements à ce sujet ont été reçus de la communauté Reddit
  • Problème initial
    • Des problèmes ZFS sont apparus lorsque garage effectuait de gros volumes de lecture et d’écriture
    • Dans la configuration initiale, les métadonnées SQLite étaient également stockées sur le JBOD/ZFS
  • Résolution du problème
    • Déplacement des métadonnées vers le stockage interne de l’ordinateur portable
    • Après cela, les problèmes ZFS ont été résolus et le système a fonctionné de manière stable

3 commentaires

 
shakespeares 2025-10-07

Le simple fait de se lancer dans l’auto-hébergement est déjà impressionnant.

 
rtyu1120 2025-10-07

Même si la gamme de prix est très différente, on dirait que la carte mère de Framework est devenue le Raspberry Pi moderne.

 
GN⁺ 2025-10-07
Avis sur Hacker News
  • S’il n’y a que la carte mère sans écran, on peut aussi la mettre dans un boîtier dédié comme celui de CoolerMaster lien vers le boîtier Framework de CoolerMaster
    • C’est vraiment génial, mais ce que je voulais surtout souligner, c’est que ce portable lui-même fonctionne extrêmement bien, qu’il est silencieux au niveau des ventilateurs et chauffe à peine, et que sa consommation électrique est vraiment bonne quand la charge est faible ; c’est pour cela que je pense qu’il convient parfaitement à cet usage
    • Le lien vers le boîtier est aussi partagé sur la marketplace Framework lien vers le boîtier sur la marketplace Framework ; j’y ai déjà installé une ancienne carte mère après une mise à niveau, je l’ai même utilisée comme PC de bureau fixé derrière un moniteur avec un support VESA, et maintenant je m’en sers comme HTPC (PC home cinéma), j’en suis très satisfait
    • Un mini-rack 10 pouces est aussi une bonne alternative DeskPi RackMate mini-rack 10 pouces
  • La partie technique m’intéresse davantage ; ce n’est pas forcément que je veuille refaire exactement la même chose, mais je voudrais savoir comment le pool ZFS a été configuré, et si Garage s’occupe de tout automatiquement, s’il y a un miroir, ou si c’est juste une structure où des pools séparés se synchronisent entre différents disques. J’aimerais monter un NAS à bas coût avec deux disques USB, et j’hésite entre un miroir ZFS, deux pools indépendants avec l’un servant de sauvegarde à l’autre, ou encore SnapRAID pour maximiser l’utilisation de vieux disques mélangés
    • Si vous hésitez entre un miroir ZFS et des pools indépendants, le miroir apporte une protection contre le bit rot, une autoréparation avec scrub, et de meilleures vitesses de lecture. Avec seulement deux disques durs de taille similaire, on peut aussi ajouter un vdev miroir ZFS à un pool existant ou créer un nouveau pool de sauvegarde. Il suffit que les deux disques du miroir aient des tailles proches ; tous les disques du pool n’ont pas besoin d’être identiques
    • Garage n’est pas conçu autour d’une approche imposée et peut très bien fonctionner sans ZFS. J’ai installé ZFS séparément sur Ubuntu puis installé Garage. ZFS est configuré simplement en RAID5/raidz1. Je ne suis pas expert, mais comme la capacité perdue approche des 33 %, je suis en train de reconsidérer ce point. Cela me rappelle un commentaire quasi magique vu autrefois sur HN : « Pour certaines données importantes, je peux tolérer quelques heures de perte, donc au lieu d’un miroir j’ai mis en place deux pools indépendants à un seul disque : instantanés toutes les quelques heures sur le pool principal, puis envoi vers le pool de sauvegarde via zfs send/recv. » Ce genre de flux correspond probablement mieux à mon usage. À l’origine, le RAID5 servait à se prémunir contre la panne d’un disque, mais reproduire la même configuration sur un autre site coûte encore assez cher (~$1,000 USD), donc je ne l’ai pas encore fait
  • Je découvre Garage pour la première fois et je trouve ça assez intéressant. Au travail, j’utilise souvent S3, et pour mes sauvegardes personnelles de homelab j’ai jusque-là utilisé borg avec borgbase. Je me demande si, avec Garage, il serait possible de relier un nœud local et AWS Glacier pour stocker à bas coût une grosse médiathèque en redondance, et j’aimerais aussi savoir si tout le trafic de lecture passe par le nœud local. L’article parle finalement assez peu d’une utilisation réelle de Garage, donc j’aimerais bien avoir l’avis de personnes qui l’emploient vraiment en self-hosting. Édition : j’ai appris que cela ne fonctionnerait pas avec Glacier, car il faut que ce soit monté comme système de fichiers sur l’instance EC2 qui exécute le binaire Garage ; il vaut mieux simplement planifier les sauvegardes vers Glacier avec borg/restic
    • Une autre alternative est ZeroFS, qui peut stocker les données directement sur S3 ZeroFS GitHub
    • En l’intégrant avec AWS S3, on peut mettre en place des politiques de cycle de vie agressives pour déplacer automatiquement les données vers Glacier après une courte période ; j’ai déjà monté cela dans un précédent poste, avec un passage du stockage standard à Glacier après quelques jours. Dans votre cas, il suffirait probablement de définir X à 1 jour
    • Je n’ai même pas eu besoin d’interagir directement avec Garage ; des outils compatibles avec l’API S3 comme awscli, s3cmd, rclone ou Boto3 suffisaient largement. Garage s’est configuré très simplement avec seulement quelques commandes, puis a tourné sans problème pendant quatre mois d’affilée. De ce point de vue, j’en suis très satisfait
  • Je voulais partager un exemple de self-hosting discret mais réussi
    • Je me demande si ce JBOD est composé de SSD ; avec autant de HDD, cela pourrait être assez bruyant
    • Autrefois, je trouvais déjà étrange que le fait de « posséder son propre ordinateur pour y faire tourner quelque chose » soit désigné par le terme « self-hosting ». On a l’impression de vivre à une époque où tous les ordinateurs sont désormais à quelqu’un d’autre, au point qu’il faut préciser spécialement qu’on utilise le sien
  • Avec un ancien Dell T30 et deux Seagate Exos de 10 To en ZFS RAID1 (miroir), je me sentirais probablement plus en sécurité. La méthode proposée me rendrait nerveux à chaque instant, même avec des sauvegardes quotidiennes. Le Dell T30 n’est pas non plus une garantie absolue, mais il est tout de même plus facile d’y brancher les disques sur une autre machine, et il y a moins de risque qu’un câble se débranche facilement. Cela dit, Garage a l’air vraiment pas mal, merci
    • J’utilise aussi ZFS depuis longtemps, et j’en suis arrivé à la conclusion que, pour beaucoup de données, je peux tolérer quelques heures de perte. Donc, au lieu d’un miroir, j’ai créé deux pools indépendants à un disque, avec des instantanés automatiques toutes les quelques heures sur le pool principal, puis réplication vers le pool de sauvegarde via zfs send/recv. Cela permet de mélanger les types de disques avec souplesse (par exemple un SSD d’un côté et un HDD de l’autre), au prix d’un compromis sur les performances en lecture et le temps de disponibilité. On peut aussi utiliser un disque externe comme disque de sauvegarde et ne le brancher que tous les quelques jours. Pour les données importantes, j’ai un pool RAID en miroir séparé. Beaucoup d’articles sur ZFS se concentrent sur le RAID, mais j’ai l’impression qu’il manque des informations sur cette approche plus minimaliste côté matériel
  • Je ne sais pas si Framework apporte ici quelque chose de vraiment spécial ; j’héberge quelque chose de comparable avec un RPi5 et quelques disques attachés. J’utilise lvm2 au lieu de ZFS, et cela fonctionne bien sur RPi5. ZFS consomme trop de RAM pour être adapté à cet usage
  • J’adore Garage, ça fonctionne tout simplement tout seul. Je fais tourner Garage sur quelques anciens Odroid HC2 pour les sauvegardes k8s Velero, et une fois configuré, je peux le laisser tranquille sans y toucher, ça continue de se maintenir tout seul
  • Ravi de voir parler de Garage ; moi aussi, quand j’ai choisi une alternative self-hosted compatible S3, j’hésitais entre Garage et SeaweedFS. D’après mon expérience, SeaweedFS était plus pratique car il demandait moins de configuration manuelle que Garage
  • Beau résultat ; moi aussi, j’essaie de réutiliser une carte mère Framework remplacée comme machine dédiée aux sauvegardes NAS. J’aimerais en savoir plus sur la configuration ZFS ; je voudrais l’utiliser uniquement comme espace d’instantanés, mais je crains que la vitesse de connexion USB et une déconnexion accidentelle ne fassent perdre des données
  • Il y a une ancienne discussion à propos de Garage Discussion précédente sur Hacker News