PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

Ulrich Van Den Hekke : Woodstock Backup v1.0.0

dimanche 20 septembre 2020 à 00:00

Bonjour à tous,

Un projet s'en va et un autre commence. Je suis heureux de vous présenter ce nouveau projet: Woodstock Backup.

Genèse du projet

Mes problèmes

Pour faire des sauvegardes, j'utilisais jusqu'ici BackupPC. C'est un très bon logiciel pour effectuer des sauvegardes de plusieurs machines sur une instance centralisée.

BackupPC est écrit en Perl avec des partie en C. En effet il se base sur un fork de rsync qui permet d'enregistrer le résultat des sauvegardes dans un format qui lui est propre. Malgré qu'il fonctionne très bien j'ai eu plusieurs problèmes avec récemment.

Il permet de faire des sauvegardes lancées depuis un serveur centralisé. Ce dernier vérifie régulièrement si les différents PC à sauvegarder sont présents sur le réseau et s'y connecte pour faire les sauvegardes sur la base d'un calendrier.

Le serveur a besoin de pouvoir se connecter sur tous les clients (incovénient que je suis prêt à accepter) mais les clients n'ont du coup pas besoin de devoir se connecter au serveur (avec le risque qu'un client compromis, compromette le serveur).

BackupPC est également capable de décider de l'heure de la sauvegarde en fonction de la date de la dernière sauvegarde ainsi que de la présence du PC sur le réseau. Ainsi si un PC est toujours présent, il peut être sauvegardé tout en préservant les heures où la personne a besoin de toute la puissance de son PC, sauf si la sauvegarde date de trop.

Je vous invite fortement à aller à l'adresse https://backuppc.github.io/backuppc/ pour en savoir plus sur BackupPC.

BackupPC

Voici les quelques problèmes que j'ai eu récemment avec les dernières versions de BackupPC :

Après quelques recherches j'ai découvert que BackupPC v4 n'était pas compatible avec NFS, et j'ai dû basculer toute mon installation sur un disque iSCSI sur mon NAS.

J'ai alors perdu mon historique de sauvegarde (je n'avais alors pas assez de place pour faire faire mes sauvegardes dans un coin et des expérimentations/migrations de l'autre).

BackupPC permet de le faire nativement en exportant des archives au format TAR sur ce disque dur USB (moyennant une pré-étape pour monter le disque, et une post-étape pour le démonter).

Cela me pose problème, en effet je veux pouvoir facilement accéder au contenu de l'archive (donc sans ouvrir le tar), et cette dernière est également très longue à créer. De plus il m'est déjà arrivé d'ouvrir un tar et de me rendre compte que l'archive était corrompue (tronquée) soit par manque de place soit car l'archivage n'avait pas fonctionné correctement mais sans avertissement.

Je m'emploie donc à créer un script qui à l'aide d'un connecteur Fuse BackupPC me permet de synchroniser les dernières versions des sauvegardes avec rsync vers le disque dur USB.

Malheureusement le script FUSE n'est pas très maintenu, et pose problème avec des fichiers de plusieurs centaines de gigaoctets, ou avec les permissions de fichiers sauvegardés avec des machines Windows. J'ai donc adapté le script Fuse à mes problèmes pour régler uniquement le problème de droits.

La modification n'est pas super propre: je squeeze les droits si l'utilisateur à un uid particulier.

Vous pouvez retrouver ma modification ici.

Le fait est que même si la solution continue de tourner actuellement et fonctionne bien, j'ai perdu une partie de la confiance que j'ai en ce produit.

Etudes des autres solutions

Quelques critères:

J'ai regardé plusieurs solutions et voici les deux solutions qui m'ont tapé dans l'oeil (et ça fait mal) en plus de BackupPC que j'utilse déjà.

Je précise que mes tests sont alors limités car je n'ai pas assez d'espace de stockage pour avoir à la fois le pool de BackupPC de environ 2To et le pool d'un autre gestionnaire de sauvegarde en même temps.

UrBackup

J'ai alors installé UrBackup.

J'ai apprécié l'utiliser en utilisant le stockage btrfs. Il permet aussi d'utiliser un système de stockage qui lui est propre.

Je n'ai pas trouvé de méthode pour effectuer de l'archivage sur disque dur USB des dernières sauvegardes uniquement (et pas l'ensemble du pool) pour stockage off-site. Ce point pourrait être resolvable en utilisant justement le stockage Btrfs et en écrivant mes propres scripts.

Sous Windows, il permet aussi de créer des Snapshots (équivalent LVM) pour permettre de faire des sauvegardes de fichier en lecture.

Il aussi capable de faire des images disque des machines Windows.

UrBackup utilise un client à installer sur chaque ordinateur à sauvegarder. Cela ne pose pas de problème et peut permettre d'optimiser la vitesse de sauvegarde par rapport à un simple rsync, et d'avoir un format de stockage propre pour optimiser la taille occupé.

Bref, sur le papier UrBackup a tout pour plaire.

Pourquoi ne pas l'utiliser ? Bonne question :).

La migration de mon historique de sauvegarde de BackupPC vers UrBackup n'était pas possible facilement. Il aurait fallu pour cela qu'en plus de générer la structure Btrfs qui va bien créer la structure dans la base Sqlite, ce que je n'ai pas forcément trouvé pratique.

Il me semble aussi que je ne trouvais pas l'interface très pratique (entre autres pour la restauration de fichiers).

Je n'ai pas plus de raisons que cela de ne pas l'utiliser, donc si vous cherchez un logiciel pour faire des sauvegardes n'hésitez pas à le tester.

Borg

J'ai aimé utiliser également Borg.

Surtout la possibilité de pouvoir chiffrer les sauvegardes, ainsi que les performances de Borg mêmes.

Malheureusement, je souhaite pouvoir facilement déchiffrer le contenu depuis le serveur principal pour archiver plusieurs sauvegardes de plusieurs machines en même temps.

Je souhaite également pouvoir sauvegarder toute sortes d'ordinateurs. Certains appartenant au réseau local, d'autres se trouvant être des dédiés sur Internet. Des PC sous Linux mais aussi un PC sous Windows.

Borg m'aurait alors posé quelques soucis sous Windows.

Je ne souhaite pas que mes serveurs dédiés aient accès à mon réseau local pour faire les sauvegardes, ni aient accès aux serveurs de backup directement au risque de compromettre la sécurité. Il faut alors paramétrer le serveur de backup pour gérer cela au niveau de ssh

Il n'est pas possible non plus de mutualiser les sauvegardes dans un seul repo, ce qui au delà des problèmes de sécurité, pose également des problèmes de lock.

Je pense que Borg est par contre un très bon logiciel pour faire une sauvegarde de son PC perso quand on ne s'occupe que de soi et qu'on a qu'un seul PC.

Autres tests

J'ai également testé rapidement Burp pour lequel je jette un oeil également régulièrement, mais l'IHM non intégré était alors très lente lors de mes tests, et la ligne de commande me rendait la restauration de fichiers complexe lors du peu de fois que je l'ai utilisé.

Il est alors difficile de trouver un concurrent qui me convienne pour remplacer BackupPC.

Si vous pensez que je me suis trompé sur les tests que j'ai fait ci-dessus, ou que vous voyez un autre logiciel de sauvegardes qui pourrait me convenir, n'hésitez pas à m'envoyer un mail.

A l'heure actuelle j'ai décidé d'écrire mon propre système de sauvegarde que j'ai nommé Woodstock Backup.

Woodstock Backup

A défaut de tourner en rond et de ne pas être complètement satisfait, j'ai décidé de développer ma propre solution. Ainsi si je n'ai pas toutes les fonctionnalités que je désire, je n'ai qu'à m'en prendre à moi-même et les développer.

Il n'est pas facile de choisir un nom pour un logiciel.

Lors du développement de cette application de sauvegarde, je regardais un épisode d'une série dont l'histoire se passait à Woodstock, d'où le nom :).

Les fonctionnalités

Quels sont les fonctionnalités à l'heure actuelle :

Quelques captures d'écran

DashboardHostsRunningTask

Comment l'installer ?

J'ai écrit un site Internet pour présenter Woodstock: https://woodstock.shadoware.org/ et porter la documentation.

Vous pouvez retrouver les liens de téléchargement depuis le repository de code sources :

L'installation se fait très simplement, j'ai écrit un peu de documentation pour expliquer cela.

Il est possible d'effectuer une installation via:

Par rapport à mon besoin

Reprenons mes critères :

Donc pour l'instant il répond à mes besoins mais reste améliorable.

Roadmap

Si vous avez des éléments de réponses, ou des idées là aussi, n'hésitez pas non plus à m'envoyer un mail. Si vous aussi n'êtes pas satisfaits de votre solution de sauvegardes, contactez-moi pour me dire ce qu'il vous faudrait, voir même pour contribuer.

Quelques chiffres

À l'heure actuelle, je suis passé à Woodstock Backup pour mes sauvegardes en ayant migré toutes mes sauvegardes depuis BackupPC.

Je peux donc faire quelques comparaisons rapides (Woodstock Backup méritant encore quelques évolutions pour atteindre le niveau de BackupPC dans certains domaines).

Je possède 6 machines dont l'espace est répartit comme suite :

Machine Stockage
pc-windows 260.8 Gb 
pc-portable-1 148.1 Gb
pc-portable-2 41.0 Gb
pc-linux 153.3 Gb
nas 1.4 Tb
server-ovh 189.6 Gb

Certains fichiers (comme les photos de vacances, ...) peuvent être sur plusieurs machines (nas + pc fixe).

Comparaison BackupPC Woodstock
Pool de sauvegarde le stockage optimisé 1,88 To  Le stockage btrfs avec compression prend 2,1 To
Compression pc-windows 357 Go non compressé 326 Go non compressé
246 Go compressé 245 Go compressé
Compression pc-portable-1 74 Go non compressé 79 Go non compressé
70 Go compressé 75 Go compressé
Temps de sauvegarde incrémental NAS  21 minutes en moyenne 15 minutes en moyenne
Temps de sauvegarde incrémental pc-linux 30 minutes en moyenne 7 minutes en moyenne

J'ai l'impression que la notion de compress-force n'est pas prise en compte, et que la compression n'est pas des plus efficaces.

Pour la taille du pool de sauvegarde cela ne m'étonne pas vu que la déduplication n'est pas cross-machine.

Pour le temps de sauvegarde c'est une bonne surprise mais là aussi, je pense que c'est normal vu que rsync ne doit pas faire de déduplication à son niveau.


  1. A voir si je conserve ce mode de fonctionnement pour le futur. J'envisage de peut-être prendre un client lourd. 

  2. Mais si un UI/UX souhaite améliorer l'interface, je suis preneur. 

Gravatar de Ulrich Van Den Hekke
Original post of Ulrich Van Den Hekke.Votez pour ce billet sur Planet Libre.

Articles similaires