Publié le 16 mai 2017 - par

Une solution de sauvegarde à base de Raspberry Pi

Administrateur système pour une entreprise qui se situe à Chalon-sur-Saône, j’ai rencontré un problème, concernant les sauvegardes de nos clients. En effet, nous avons développé une box de sauvegarde qui s’appelle MultiBox . Elle est basée sur une architecture Linux bien évidemment et nous avons recompilé le logiciel pour l’adapter à nos besoins.

L’auteur de l’article que je vous propose aujourd’hui est Damien. Je l’ai formé à l’informatique il y a ouuuhhh… quelques années. Depuis il a fait son chemin et est devenu sysadmin. Pour résoudre un problème de sauvegarde il a choisi une solution à base de Raspberry Pi et décrit ici les étapes de sa réalisation. Une preuve de plus de l’intérêt du Raspberry Pi pour les entreprises.
La parole est à Damien 🙂

Un système de sauvegarde à base de Raspberry Pi

Pour expliquer rapidement, nous installons en principe chez le client un NAS QNAP. Il se réplique sur un système distant pour faire des sauvegardes incrémentielles et également des images complètes.
Le souci est qu’aujourd’hui beaucoup de gens habitent la campagne (la Bourgogne ce n’est quand même pas au fin fond du Larzac me direz-vous, mais presque…). Du coup le souci  que je rencontre est le suivant.
Les sauvegardes se font très lentement. Forcément, étant donné le débit internet très faible, ce qui provoque des ralentissements sur les serveurs. Faire des copies directement sur un disque tous les soirs n’est pas non plus une solution acceptable.
Après réflexion, je me suis dit : »Pourquoi pas un pi ? »

Un disque dur de 1To

Il est transportable et désormais plus de problèmes de ralentissement de copie (l’utilisateur n’a pas forcément le temps de faire les copies et elles peuvent aussi être incomplètes).

Essais de différents boîtiers. En définitif c’est le bleu qui sera utilisé.

Il fallait réfléchir à un système autonome ; transportable, sécurisé tous en ne négligeant pas la simplicité d’installation pour l’utilisateur. Il ne devait pas non plus faire de bruit, car l’air de rien un NAS ça fait du bruit.


Et hop ni une ni deux me voilà parti dans mes test et recherche, pour résoudre le problème.
La solution que j’ai trouvée comporte un Raspberry Pi 3 une Raspbian Lite avec un pi drive et là
1er problème : la taille du disque
– En effet créer un système de sauvegarde correct, il faut un minimum d’espace et le disque de 314 Go est un peu limite pour un système de sauvegarde. Je décide de brancher un disque de 1 To et là…  deuxième problème


2éme problème
– L’alimentation, du Raspberry Pi et du disque.
– Les disques sont trop consommateurs et, de ce fait, il aurait fallu rajouter une alimentation externe, ce qui me pose soucis étant donné que je veux que ma solution soit transportable, j’ai donc repris mes recherches et là le saint Graal.


La solution
– Après un appel à Kubii pour savoir s’ils avaient une solution, je tombe sur le site du constructeur Western Digital. Il propose un disque dur Pi Drive de 1 To, qui permet de gérer l’alimentation comme on le fait un disque de 314 Go ; j’achète donc ce disque pour compléter mes tests.

Les premiers essais

Je branche le tout et je fais mon installation. Recompilation du logiciel, test ok tout fonctionne, pas de problème d’alimentation tout fonctionne parfaitement, tout est parfait enfin presque…  Je me vois mal remettre au client un Raspberry Pi sans protection, avec les câbles apparents.

Comme aujourd’hui nous somme dans un monde complètement fou et étant un peu geek sur les bords, j’ai investi, il y-a à peu près 6 mois de cela dans une imprimante 3D.
Bingo, je tiens le bon fil : modéliser un boîtier pour mon Raspberry Pi.

Le boîtier en impression 3D

Alors me voilà aujourd’hui, comme tous bon maker qui se respecte en mode modélisation et print 3D à gogo, j’arrive à un résultat plus que concluant, tout en prenant compte qu’il me faudra ; un interrupteur ; un port Ethernet et en étant sûr qu’en aucun cas le client n’aura accès à l’électronique (pour éviter les soucis). L’interrupteur ne fait que couper l’alimentation dans ce cas.

Après plusieurs semaines, j’arrive enfin à un résultat comme vous pouvez le voir sur les images de cet article.

Il reste deux choses à régler : la dissipation de chaleur et la sécurité en cas de choc. J’ai donc repris ma modélisation pour arriver à un résultat final me satisfaisant complètement. Un ventilateur permet d’abaisser la température dans le boîtier et les deux couvercles noirs sont en polyFlex, une matière souple permettant d’amortir en cas de choc ; le reste est imprimé en PLA Chromatik de chez Dagoma.

Le Raspberry Pi monté, la box imprimée avec ses protections, on peut commencer l’assemblage.

Un souci avec la longueur des fils

Je coupe le câble d’alimentation pour faire passer un interrupteur, je monte mon Raspberry Pi sur une structure que j’ai modélisée ainsi que le disque dur et là aucune action le Raspberry Pi ne démarre plus.

grrrrrr si près du but, rebelote on réfléchit Damien : qu’as tu fais depuis tout à l’heure, qui pourrait créer ce souci ?
L’interrupteur !! j’ai rallongé les câbles pour être plus à l’aise lors de l’assemblage ; Eh bien c’est une très mauvaise idée car plus un fil est long, plus il est résistant et plus l’intensité du courant est faible.
J’entreprends donc de raccourcir mes fils et de m’adapter à la situation. Ouf cette fois le résultat est probant. Ah Ah les lois de l’électricité sont une autre aventure aussi passionnante que l’informatique.

Bref tout est monté et je me pose alors, la question de la carte SD prévue pour un nombre de lectures infini, mais un peu moins en écriture. Avec un disque de 1 To pourquoi pas booter sur le disque ? Et c’est parti !

Configuration du système

La première opération à faire est de démonter la partition si elle est montée :

sudo umount /dev/sda1

Une fois ceci fait, nous allons pouvoir partitionner et formater. L’outil le plus simple pour cela en ligne de commande est cfdisk.

sudo cfdisk /dev/sda

Il reste maintenant à formater la partition, qui est a priori /dev/sda1:

sudo mkfs.ext4 /dev/sda1

Créer une image du système présent sur la carte SD sur le disque dur.

cat /boot/cmdline.txt
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

La partition à copier est donc /dev/mmcblk0p2:

sudo dd bs=1M if=/dev/mmcblk0p2 of=/dev/sda1

l’étendre pour qu’elle prenne toute la place disponible sur le disque dur:

sudo resize2fs /dev/sda1

ET SURTOUT NE PAS OUBLIER

sudo cat /etc/fstab
proc /proc proc defaults 0 0
/dev/mmcblk0p1 /boot vfat defaults 0 2
#/dev/mmcblk0p2 / ext4 defaults,noatime 0 1
/dev/sda1 / ext4 defaults,noatime 0 1

Pour la modification du chemin, il suffit d’éditer le fichier /boot/cmdline.txt et de remplacer l’ancien chemin (/dev/mmcblk0p2) par le nouveau (/dev/sda1). Pour ma part, j’ai copié la ligne et commenté l’ancienne, afin de garder une trace :

sudo cat /boot/cmdline.txt
#dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/sda1 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

Donc maintenant ma box est prête l’emploi ; elle boote sur mon disque mais le bootloader étant sur la carte SD, il ne faut pas retirer celle-ci. Ca ne pose pas de problème puisqu’elle est seulement lue au démarrage.

Utilisation de la box

Le client a juste à alimenter la box, brancher le câble internet, appuyer sur l’interrupteur ; le Raspberry Pi se connecte scanne le réseau, reconnaît ses hôtes, et la sauvegarde peut désormais commencer.

Quand celle -ci est finie on aperçoit la LED du disque qui est allumée et prévient le client du bon fonctionnement du processus de sauvegarde. Le Raspberry Pi  envoie également un mail, qui nous prévient que la sauvegarde s’est bien déroulée.

Fichiers d’impression 3D

Les fichiers sont disponibles sur Thingiverse.

Vidéo

Conclusion

J’avoue être fier de cette réalisation et d’avoir apporté ma pierre à l’édifice du Pi. C’est cela qui me passionne dans l’informatique partir de rien et développer au fur et à mesure avec des pièges qu’il faut savoir contrer.

Sources

MULTIBOX

 

 

À propos François MOCQ

Électronicien d'origine, devenu informaticien, et passionné de nouvelles technologies, formateur en maintenance informatique puis en Réseau et Télécommunications. Dès son arrivée sur le marché, le potentiel offert par Raspberry Pi m’a enthousiasmé j'ai rapidement créé un blog dédié à ce nano-ordinateur (www.framboise314.fr) pour partager cette passion. Auteur de plusieurs livres sur le Raspberry Pi publiés aux Editions ENI.

12 réflexions au sujet de « Une solution de sauvegarde à base de Raspberry Pi »

  1. gUI

    Pas mal du tout Damien ! Une idée simple, très bien réalisée.

    J’ai quelques questions sur la partie alimentation : tu alimentes ta boite en 220V et tu as inséréré à l’intérieur un transfo ? Le bouton rouge, est-il un ON/OFF violent (coupure d’alim direct) du Pi ? N’as-tu pas peur de corrompre les données en cas de mauvaise manip de l’utilisateur final ?

    Répondre
  2. damien

    bonjour Gu,
    i pour répondre à ta première question j’alimente bien en 220 v sans transfo à l’intérieur, le disque prévaut à cet effet me permet une totale sécurité niveau alimentation puisqu’il a été conçut pour être peu alimenté.

    tu pourra bien entendu retrouvé tous les détails a cette page du site : https://www.framboise314.fr/pidrive-314-go-le-disque-dur-special-raspberry-pi-enfin-disponible-en-france/

    Le bouton rouge est effectivement une coupure d’alimentation directe, je penche déjà sur le sujet qui me permettra du coupé proprement.

    Il se peut effectivement que des données soient corrompues par une mauvaise manip de l’utilisateur mais rassurons-nous tous mes clients son équipé de deux boitier, une sauvegarde qui est sur le site et une externalisée qui est le pi, donc je retrouverai mes petits quoi qu’il arrive et cependant ma sauvegarde a été développé pour faire des archives et l’utilisateur est prévenue par mail immédiatement de la fin de la sauvegarde, ce qui réduit encore les risques de corrompre les résultats

    Mais vous avez raison, il vrai et fondamental que je dois bosser sur le principe de l’estimation du boitier pour qu’il s’arrête proprement.

    Répondre
  3. damien

    bonjour Gui,
    i pour répondre à ta première question j’alimente bien en 220 v sans transfo à l’intérieur, le disque prévaut à cet effet me permet une totale sécurité niveau alimentation puisqu’il a été conçut pour être peu alimenté.

    tu pourra bien entendu retrouvé tous les détails a cette page du site : https://www.framboise314.fr/pidrive-314-go-le-disque-dur-special-raspberry-pi-enfin-disponible-en-france/

    Le bouton rouge est effectivement une coupure d’alimentation directe, je penche déjà sur le sujet qui me permettra du coupé proprement.

    Il se peut effectivement que des données soient corrompues par une mauvaise manip de l’utilisateur mais rassurons-nous tous mes clients son équipé de deux boitier, une sauvegarde qui est sur le site et une externalisée qui est le pi, donc je retrouverai mes petits quoi qu’il arrive et cependant ma sauvegarde a été développé pour faire des archives et l’utilisateur est prévenue par mail immédiatement de la fin de la sauvegarde, ce qui réduit encore les risques de corrompre les résultats

    Mais vous avez raison, il vrai et fondamental que je dois bosser sur le principe de l’estimation du boitier pour qu’il s’arrête proprement.

    Répondre
  4. Philippe Maladjian

    Bonne idée ce petit boitier, mais je vois un problème : l’interface réseau.

    Sur le rpi elle passe par l’usb et du coup le débit correspond à celui d’un port usb. Tu risque de rencontrer une effet de goulot d’étranglement si tu a plusieurs hôtes qui viennent copier leurs fichiers en même temps. Pour peu que les logiciels utilisés pour copier les données soient un bête copier/coller windows pas du tout optimisé, les perfs vont s’effondrer.

    Répondre
    1. S.POURRE

      +1
      Sans parler de l’absence de port SATA.
      AMHA, même dans cette gamme de prix et ce type d’architecture, le Raspberry qui ne manque pas de qualités par ailleurs, est le plus mauvais choix .

      Sylvain

      Répondre
        1. damien

          aucun problème niveau sauvegarde avec 3 hôte en même temps qui sauvegarde des machines de 150 go
          Les structures que je sauvegarde on en moyenne 3 ou 4 machine virtuelle sur serveur et grosso-modo une 5 ou 6pc en moyenne et pas de problème depuis

          Répondre
  5. Xavier

    bonjour,

    Une question relative à de la sauvegarde, mais qui dépasse un peu le cadre de cet article.

    Dans le cadre d’une structure en production (ex: site web de e-commerce avec SGBD en arrière-plan) qui fonctionne en H24, quelle est l’approche pertinente pour de la sauvegarde à distance (entre 2 bâtiment éloignés pour se protéger d’un incendie) ?

    Je précise ma question :  une sauvegarde ne se réalise pas en 1/10e de seconde (genre…on arrête la production, on sauvegarde en 1/10e de seconde, on relance la production).

    Pendant que la sauvegarde est réalisée (plusieurs minutes) d’autres écritures sont réalisées , car le e-commerce continue H24. Donc entre le début et la fin de la sauvegarde, il existe un delta de nouvelles écritures sur le serveur en production (dans le SGBD, mais pas seulement…). En cas de reconstruction suite à un crash, on est confronté à des incohérences.

    Comment gérer ce delta sou Linux ?

    Je sais que sous Windows, une sauvegarde est réalisée sur la base d’un cliché (snapshot) . Windows se charge de gérer localement les nouvelles écritures (pendant ce delta temporel), qui ne feront pas partie de la sauvegarde.

    Mais sous Linux ??? on fait comment. Je ne suis pas sûr que cette problématique soit gérée par rsync. C’est une question qui me taraude depuis les incendies chez OVH, car dans les datacenters les opérateurs ont beaucoup de machines sous Linux. Comment gèrent-ils cette problématique du « delta-pendant-sauvegarde » ?

    bonne journée,

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Complétez ce captcha SVP *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.