Duplicity est puissant, mais son pilotage par commandes le destine en pratique à des utilisateurs avertis.
Le projet Duplicati a été inspiré par duplicity et offrait des fonctions similaires jusqu’en 2008, selon la documentation officielle.
L’auteur original et principal développeur de Duplicati est Kenneth Skovhede.
Duplicity vise les utilisateurs avertis en ligne de commande ; Duplicati cherche à rendre ses capacités accessibles au grand public.
★ À maîtriser
La première approche de Duplicati consiste à porter le code de duplicity sous Windows, mais elle est abandonnée en septembre 2008 au profit d’une réimplémentation des composants.
Réécrire les composants en C# sur .NET évite de devoir porter toutes les dépendances de duplicity et simplifie l’installation et la maintenance.
Compléments
La réimplémentation remplace par du code maison les sous-programmes utilisés par duplicity, notamment rdiff et le client FTP.
Mono, l’implémentation libre de .NET, permet ensuite de faire tourner Duplicati sous Linux et macOS.
★ À maîtriser
📌 Dans le modèle de duplicity, les sauvegardes incrémentielles dépendent d’une sauvegarde complète antérieure, alors que Duplicati 2 découpe les fichiers en blocs et ne stocke chaque bloc qu’une seule fois.
Compléments
La refonte de Duplicati 2 vise à supprimer les inefficacités et les défauts hérités du code initialement conçu comme une interface pour duplicity.
Dans le modèle de duplicity, restaurer l’état d’un jour donné nécessite toute la chaîne de sauvegardes depuis la dernière sauvegarde complète.
📌 Une sauvegarde créée avec une ancienne version de Duplicati n’est pas lisible par Duplicati 2, car son format de stockage est différent.
Duplicity dépend d’une chaîne de sauvegardes ; Duplicati 2 reconstitue les fichiers à partir de blocs.
Kenneth Skovhede devient directeur technique de Duplicati, Inc., qui bénéficie d’un financement d’Open Core Ventures.
Le code de Duplicati reste libre après la création de Duplicati, Inc.
Le Server peut être installé comme service Windows ou comme démon Linux.
🔄 L’assistant de création d’une sauvegarde suit cinq étapes :
Le Server exécute les tâches ; la WebUI et le CLI lui transmettent des ordres.
★ À maîtriser
Le découpage du pipeline utilise des blocs de taille fixe de 100 Ko par défaut, valeur que l’utilisateur peut modifier.
Lors de la déduplication, Duplicati calcule une empreinte de chaque bloc avec SHA-256 par défaut et la compare aux empreintes conservées dans une base SQLite locale, située sur la machine source et propre à chaque tâche.
📌 Si l’empreinte d’un bloc existe déjà dans la base SQLite, Duplicati ne renvoie pas ce bloc et ne conserve que les nouveaux blocs.
Les nouveaux blocs sont regroupés en volumes de 50 Mo par défaut, valeur que l’utilisateur peut modifier, puis compressés au format zip.
Duplicati chiffre chaque volume sur la machine source avant l’envoi, avec AES-256 ou GPG, à partir d’une phrase secrète choisie par l’utilisateur.
📌 Le principe « zero-knowledge » signifie que le fournisseur reçoit des fichiers illisibles et ne possède jamais la clé, à condition que l’utilisateur ait activé le chiffrement.
Compléments
Pour copier un fichier déjà ouvert par un autre logiciel, Duplicati utilise VSS sous Windows ou LVM sous Linux.
Dans l’exemple d’un journal de 10 Mo augmenté de 150 Ko, environ deux blocs, soit environ 200 Ko avant compression et chiffrement, sont envoyés le mardi au lieu de 10,15 Mo.
📌 Avec des blocs de taille fixe, une insertion au milieu d’un fichier décale les blocs suivants et peut les faire considérer comme nouveaux.
📌 Le texte se compresse très bien, alors qu’un fichier JPG ou ZIP, déjà compressé, diminue presque pas de taille.
📌 En cas de coupure réseau pendant un transfert, Duplicati retente l’envoi plusieurs fois avant de signaler une erreur.
Découper → dédupliquer → compresser → chiffrer → transférer.
Les fichiers dblock contiennent les volumes de blocs compressés et chiffrés.
Les fichiers dindex relient les empreintes des blocs aux volumes dblock qui les contiennent.
Chaque fichier dlist représente une version en listant les fichiers, leurs chemins et métadonnées, ainsi que les blocs nécessaires à leur reconstitution.
Pour restaurer un fichier, Duplicati lit le dlist correspondant, consulte les dindex pour localiser les blocs dans les dblock, télécharge uniquement les dblock nécessaires, puis déchiffre et décompresse les volumes, vérifie les empreintes des blocs et reconstitue le fichier.
Chaque sauvegarde produit un nouveau dlist, ce qui permet de restaurer un fichier dans son état à une date donnée sans stocker chaque version en entier.
Les dblock sont les livres, les dindex le catalogue et les dlist les photographies datées de la bibliothèque.
Rôles des fichiers distants
| Fichier | Contenu | Rôle |
|---|---|---|
| dblock | Volumes de blocs compressés et chiffrés | Contient les données |
| dindex | Liens entre empreintes et volumes dblock | Localise les blocs |
| dlist | Fichiers, chemins, métadonnées et blocs requis | Décrit une version de sauvegarde |
Teste tes connaissances sur Histoire et fonctionnement de Duplicati avec 21 questions à choix multiples et corrections détaillées.
1. Quelle caractéristique décrit le mieux Duplicity, issu des mondes UNIX et Linux ?
2. Quelle relation la documentation officielle établit-elle entre Duplicati et duplicity avant 2008 ?
Mémorisez les concepts clés de Histoire et fonctionnement de Duplicati avec 53 flashcards interactives.
Quel type d’outil est Duplicity ?
Un outil de sauvegarde en ligne de commande.
Vers quel type de destination Duplicity envoie-t-il les sauvegardes ?
Vers des serveurs distants.
Comment Duplicity protège-t-il et actualise-t-il les sauvegardes ?
Il les chiffre et les réalise de façon incrémentielle.
Importe ton cours et l'IA génère fiches, QCM et flashcards en 30 secondes.
Générateur de fiches