# Woodstock

Woodstock Backup v2.0.0 - La réécriture complète en Rust

Posté le 26 avril 2026 dans Woodstock Tags: woodstock, backup, sauvegarde, rust, grpc

Temps de lecture: 21 min

Bonjour à tous,

Six ans. Il m'aura fallu six ans entre la première version de Woodstock Backup et cette v2. Si vous m'aviez dit en 2020 que je passerais la moitié de la décennie à réécrire trois fois le même logiciel de sauvegarde... j'aurais quand même foncé tête baissée. C'est ma façon de faire. Me voilà donc avec une version 2 stable, entièrement réécrite en Rust, qui tourne en production sur ma petite infrastructure depuis plus d'un an. Et je suis vraiment content du résultat. 😄

Pour ceux qui me lisent depuis longtemps, voici un récapitulatif des articles qui ont précédé celui-ci :

ArticleDateSujet
Woodstock Backup v1.0.02020-09-20Présentation du projet, prototype TypeScript + rsync
Woodstock Backup - Btrfs2021-01-12Abandon de Btrfs, écriture d'un pool custom
Woodstock Backup - Protocole et Langage de sauvegarde2021-04-18Protocole gRPC maison
Woodstock Backup - Optimiser Node.js avec Rust2023-05-10NAPI-RS et bindings Rust pour réduire la consommation mémoire
Woodstock Backup - Reverse engineering de BackupPC2024-05-07Migration du pool BackupPC vers Woodstock

Pour les nouveaux, je résume : Woodstock Backup est mon logiciel de sauvegarde personnel, centralisé, qui sauvegarde toutes les machines de mon réseau local et mes serveurs distants sur un NAS. L'idée de départ était simple. Le résultat est... un peu plus complexe. :)

Pool of chunks


Woodstock Backup - Utilisation de Btrfs et son remplacement

Posté le 12 janvier 2021 dans Woodstock Tags: backup, sauvegarde, btrfs, rsync, javascript, nodejs, woodstock

Temps de lecture: 13 min

Bonjour à tous,

La version 1 de mon programme de sauvegarde Woodstock Backup utlise Btrfs et Rsync pour effectuer une sauvegarde. Je l'utilise depuis quelques mois pour sauvegarder mes differentes machines (7 machines).

Voici un premier compte-rendu de l'utilisation de la première version de cet outil dont je suis l'auteur:

  • Lors de mon utilisation la sauvegarde fonctionne très bien, et cela c'est cool :). Je suis aux alentours de 200 snapshots.
  • J'ai eu un problème d'espace disque. Lors du déplacement de plusieurs énormes fichiers sur un serveur. La taille de l'espace de stockage à augmenté énormément.
    En effet rsync ne permet pas de détecter les déplacements de fichiers et btrfs ne permet pas de dédupliquer à la volée les données.
    Les fichiers ont donc été considérés comme étant nouveau.
  • L'espace disque étant tombé à zéro, j'ai voulu supprimer la dernière snapshot pour tester un déplacement de fichiers dans btrfs (à la main).
    La suppression de la snapshot a commencé à prendre énormément de temps, puis la machine est devenue inaccessible.
    En me connectant en direct sur la machine (KVM), j'ai découvert que la suppression du dernier volume Btrfs remplissait la mémore. Les 8Go octets de mémoire ont été remplis. Et le noyaux linux a utilisé OOM Killer pour détruire tous les processus.
    Bref la machine n'était plus dans un état lui permettant de faire les sauvegardes.

Woodstock Backup v1.0.0

Posté le 20 septembre 2020 dans Woodstock Tags: backup, sauvegarde, btrfs, rsync, javascript, nodejs, woodstock

Temps de lecture: 12 min

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.