Serveur pour sauvegardes distantes

Le 14/04/2018

Cet article présente la réalisation de mon serveur de sauvegarde "fait maison". Sans être un guide détaillé du processus, j'espère qu'il pourra donner quelques idées pour vos propres projets.

Ceci n'est pas un oscilloscope.

Si vous avez, sur un ordinateur, ou même sur un smartphone, des fichiers que vous ne voulez pas perdre, il est important d'en faire des sauvegardes. Sinon, en cas de panne matérielle, erreur de manipulation, incendie, dégât des eaux, ou de vol, vous perdrez irrémédiablement tous vos fichiers.

Un bon système de sauvegarde doit stocker les fichiers sur un support qui résistera à tous les problèmes dont vous souhaitez vous prémunir : il ne doit pas être dans la même machine bien sûr, mais en fait il est même préférable de ne pas stocker ses sauvegardes dans la même zone géographique, afin de se prémunir par exemple contre une inondation. Même si tout le monde n'est pas concerné par ce problème, il vaut mieux au moins ne pas tout stocker dans le même bâtiment.

Une option possible est de stocker ses sauvegardes dans le "cloud". Mais se posent alors deux problèmes :

  • La confidentialité, qu'on peut résoudre en chiffrant les fichiers sauvegardés ; je reviens sur ce point plus tard
  • Et l'espace de stockage disponible. Pour sauvegarder mes fichiers de travail, ainsi que mes photos et vidéos de famille, j'ai besoin d'environ 1To (un terra-octet, ou mille giga-octets). En prévision de l'augmentation du volume à stocker, il me faut donc une solution permettant de stocker au moins 2To. Ce type d'espace de stockage, bien que peu coûteux en théorie (vous pouvez trouver des disques de 2To pour une cinquantaine d'euros), va vite coûter cher si vous faites appel à un prestataire. Les solutions "gratuites" (qui ne le sont jamais réellement d'ailleurs), n'offrent pas suffisamment d'espace. Les solutions payantes tournent, à l'heure où j'écris ces lignes, aux alentours de 20€/mois.

C'est pour ces raisons que je me suis lancé dans la réalisation d'un petit serveur de stockage, avec les objectifs suivants :

  • Faible impact environnemental
  • Peu coûteux
  • Au moins 2To d'espace de stockage
  • Silencieux (car hébergé chez un ami)
  • Ne faisant travailler personne dans de mauvaises conditions ou pour un salaire trop faible

Si le dernier point vous surprend, n'hésitez pas à vous renseigner sur les conditions de travail en Chine par exemple (semaines de 60h pour un salaire de misère et un travail inintéressant, pour ne pas dire pénible). C'est un point important pour moi, basé sur le principe que je ne souhaite pas imposer à d'autres ce que je n'aimerais qu'on m'impose à moi même. Et ce n'est pas simple car quasiment tout le matériel "high-tech" est fabriqué dans des pays à faibles coûts de main d’œuvre, sans parler des minerais parfois extraits dans des conditions inhumaines (on les surnomme parfois "minerais du sang"). Notez bien qu'il ne s'agit ni de nationalisme, ni de xénophobie. Je souhaite simplement que les conditions de travail soient uniformisées vers le haut, et pour apporter ma modeste contribution, je me refuse (tant que j'ai le choix) à acheter Chinois ou Taïwanais, même si c'est moins cher. Dans la jungle de notre civilisation mondialisée, je ne me fait pas d'illusion ; cet objectif n'est pas atteignable à 100%, en particulier parce que la traçabilité de ce qu'on achète n'est jamais complète.

Conception matérielle

Le "cerveau"

Le composant principal est un Raspberry Pi (version 1, modèle B+). C'est un ordinateur complet de la taille d'une carte de crédit, qui coûte environ 30€. Inutile de dire qu'il n'est pas très performant (même si les dernières versions sont suffisantes pour un usage bureautique), mais il se trouve que je n'ai pas besoin de puissance. Il doit être capable de transférer des fichiers par internet, c'est tout. Autre avantage, les Raspberry Pi sont maintenant fabriqués au royaume uni. Je ne me fait pas d'illusions, une partie de la chaîne (extraction de ressources, transformations diverses, fabrication des composants électroniques, etc.) passe forcément par des pays bien moins respectueux des travailleurs, ce n'est donc pas une très bonne garantie, mais c'est mieux que rien.

Le stockage

Le Raspberry Pi n'a qu'un périphérique de stockage : un lecteur pour cartes micro-SD. Ce n'est pas là que je pourrais stocker 2To de fichiers, j'ai donc dû lui adjoindre un "vieux" disque dur de 2To qui prenait la poussière depuis depuis que j'ai arrêté de faire des sauvegardes sur disque externe. Étant donné que je possédais déjà un disque, je n'ai pas cherché s'il était possible de s'en procurer qui soit fabriqué dans de bonne conditions.

La carte micro-SD, justement, n'est pas fournie avec le Raspberry Pi. Elle est indispensable sur tous les anciens modèles, sinon il ne démarre pas du tout. De plus, cela permet de mettre le disque dur en veille lorsqu'il n'y a pas de transfert de fichiers, le système d'exploitation étant installé sur la carte SD. J'ai choisi une carte de 8Go (2Go auraient suffit), fabriquée par Swissbit en Allemagne. Vendue comme un produit de qualité (durabilité et fiabilité), elle est plus coûteuse (28€) qu'une carte "grand public" (comprendre : fabriquée en Chine), même de plus grande capacité. Je n'ai pas trouvé autour de moi, mais je pense qu'il est souvent possible de trouver auprès de ses proches de vieilles cartes micro-SD (appareil photo, smartphone, etc.), car les cartes de faible capacité sont souvent mises au rebut, alors qu'elles sont parfaites pour ce type d'application.

Alimentation électrique

Il faut également une alimentation. Le Raspberry Pi s'alimente en 5V, tandis que le disque dur s'alimente en 12V. Ça n'arrive pas souvent, mais j'ai trouvé dans mon carton de vieux transformateurs de tension, où je stocke tout ceux qui ne "servent plus à rien", le modèle idéal pour cette application. Il s'agit de l'alimentation d'une console de jeu "Game Cube" (datant de 2002). N'importe quelle alimentation 12V suffisamment puissante peut faire l'affaire. Il faut également qu'elle ait un rendement correct, même à faible puissance, pour éviter de gâcher de l'énergie.

Le lecteur attentif aura relevé que je ne peux toujours pas alimenter le Raspberry Pi en 5V avec une alimentation 12V. Il faut en effet un convertisseur 12V vers 5V. J'ai donc réalisé une carte de transformation 12V vers 5V à partir d'un régulateur à interruptions (LM2679 fabriqué aux États Unis par Texas Instruments). Ce régulateur permet d'atteindre un rendement de 92% avec une bonne intensité en sortie (utile si vous branchez plus de périphériques USB). Il faut lui adjoindre d'autres composants (inductance, condensateurs, diode Schottky). J'ai pu trouver certains de ces composants sur de veilles cartes électroniques, et ceux que j'ai achetés sont fabriqués soit aux États Unis, soit au Japon, pour un total de 8€. Si vous n'êtes pas équipés, ou ne souhaitez pas vous lancer dans l'électronique, les alternatives seraient une alimentation de téléphone portable à brancher sur le secteur, ou, pourquoi pas, un chargeur "voiture" (prise allume-cigare), puisque les voitures fournissent aussi du 12V. Il suffira d'adapter des fils sur les contacts prévus pour l'allume-cigare, ou éventuellement de le démonter pour n'extraire que la partie nécessaire.

Le gros rectangle blanc est juste un condensateur de récupération, normalement prévu pour du 230V, d'où sa taille. Le condensateur de droite, la résistance ajustable et la diode sont également de la récupération.

Pour ceux qui ne connaissent pas la technique utilisée ici pour assembler les composants, il s'agit d'une plaque de prototypage, qui, contrairement aux circuits imprimés, ne dispose pas de pistes en cuivre pour relier les composants entre eux. Chaque trou donne sur une pastille de cuivre qui n'est raccordée à rien. Il est alors assez facile de souder chaque patte des composants sur sa pastille, puis de faire des "ponts" entre les pastilles avec l'étain. On peut aussi plier les pattes pour les relier entre elles, et ajouter des fils quand il y a trop de distance. Le résultat est solide et fiable, mais c'est assez long à réaliser. Il existe aussi d'autres types de plaques de prototypage.

Mes premiers essais ont révélé quelque chose d'étonnant : même en veille (moteur éteint, aucun bruit), le disque dur consomme plus de 7W ! En fonctionnement normal il consomme environ 12W. Autant dire que l'efficacité de la mise en veille est assez relative. J'ai résolu ce problème en ajoutant un relais en série avec l'alimentation 12V du disque dur (le composant rectangulaire noir visible sur la photo ci-dessus), commandé par une des sorties GPIO du Raspberry Pi. Il faut juste penser à mettre un transistor entre les deux pour limiter le courant qui sort du Raspberry Pi (15mA maximum), et une diode "de roue libre" pour dissiper le courant produit lorsque le relais est désactivé. Rien de très compliqué, mais il faut se renseigner un peu pour bien dimensionner les composants et les connecter correctement entre eux.

Le boîtier

Enfin, pour encapsuler tout ça sous un format facilement manipulable et sécurisé (il y a en particulier un raccord 230V là dedans), il faut un boîtier. J'ai utilisé le boîtier d'un vieil oscilloscope qui ne fonctionnait plus, parce que j'aime bien les boîtiers en métal (et je n'avais pas grand chose d'autre sous la main). C'est également de ce vieil oscilloscope que viennent les composants électroniques de récupération. Le boîtier est largement assez grand, j'aurais pu mettre deux disques durs et il y aurait encore de la place. La façade est, certes, un peu étonnante pour un serveur. Si vous êtes bricoleur, les solutions ne manquent pas ; attention toutefois avec les matériaux inflammables, même si rien ne chauffe dans ce serveur en fonctionnement normal, je préfère éviter le bois par exemple.

Le Raspberry Pi (carte verte) fixé au châssis interne du boîtier. Le bout de métal visible à gauche de la carte, support pour la longue vis, est un cache de port PCI pour PC. Il y a également quelques pièces de mécano. J'ai soudé directement le câble USB du disque dur sur la carte, pour éviter que le fil ne dépasse à l'extérieur du boîtier (d'où le scotch qui condamne le port USB déjà utilisé).

Résultats

Je suis plutôt satisfait des caractéristiques finales de mon serveur :

  • Consommation : 2W en moyenne (0,22€ par mois)
  • Totalement inaudible, sauf quand le disque dur se met en marche (à heures programmées)
  • Une seule prise secteur pour l'alimentation
  • Un port Ethernet
  • Trois ports USB pour d'éventuelles évolutions
  • Coût total : 66€ (dont 28€ pour la carte micro-SD fabriquée en Allemagne). Ajoutez le prix du disque dur si vous n'en avez pas sous la main.

Les ports du Raspberry Pi sont accessibles à l'arrière. Mon seul regret est de ne pas avoir pensé à laisser l'accès au port HDMI pour brancher un écran ; il faut ouvrir le boîtier pour y accéder, ce qui est dommage même s'il n'a pas d'utilité pour le moment. J'ai laissé l'étiquette "made in France", car, après tout, c'est toujours vrai.

Le logiciel

Cette partie sera publiée lorsque j'aurais terminé la configuration logicielle.