<metaname="description"content="URL: http://linuxfr.org/news/r-evolutions-dans-le-monde-de-la-sauvegarde-de-donneesTitle: (R)évolutions dans le monde de la sauvegarde de donnéesAuthor...">
<divclass="col-main cell cell--auto"><!-- start custom main top snippet --><divid="results-container"class="search-result js-search-result"></div><!-- end custom main top snippet -->
Title: (R)évolutions dans le monde de la sauvegarde de données
Authors: SaintGermain
Nÿco, Benoît Sibaud, Benoît, Florent Zara, Nils Ratusznik, Maz, laurentb, Anthony F. et Zied
Date: 2012-05-21T23:07:42+02:00
License: CC by-sa
Tags: sauvegarde, backup et déduplication
Score: 89</p>
<p>Nous sommes presque deux mois après le <ahref="http://www.worldbackupday.com">World Backup Day</a> mais il n’est jamais trop tard pour faire une sauvegarde. C’est une réalité qu’il faut accepter, votre <ahref="http://www.hardware.fr/articles/862-6/disques-durs.html">disque dur va vous lâcher</a> et certainement <ahref="http://fr.wikipedia.org/wiki/Loi_de_Murphy">au moment où cela vous embêtera le plus</a>. Et cela même si vous n’avez pas investi dans un superbe <ahref="http://www.hardware.fr/articles/862-7/ssd.html">SSD OCZ</a> (jusqu’à 15,58% de taux de panne !).</p>
<p>Subir une défaillance d’un disque dur devient aussi de plus en plus grave à mesure qu’un nombre croissant de types de données se retrouve sous format numérique (musique, photos, messages, rapports, etc.), et que leur volume augmente.</p>
<p>C’est pourquoi le monde du logiciel (libre ou propriétaire) regorge de solutions pour sauvegarder vos précieuses données.</p>
<p>Cette dépêche (voir la seconde partie) n’abordera pas des solutions traditionnelles et éprouvées telles que le très connu <ahref="http://www.amanda.org">Amanda</a>, le moins connu mais tout autant excellent <ahref="http://dar.linux.free.fr">DAR</a> et les solutions « maison » à base de <ahref="http://rsync.samba.org">rsync</a>. Elle n’abordera pas non plus des solutions trop restreintes à une plate-forme ou à un système de fichier (ZFS + snapshot par exemple). Elle va plutôt s’intéresser aux logiciels libres prenant en charge la <ahref="http://fr.wikipedia.org/wiki/Déduplication">déduplication</a>.</p>
<ahref="http://stromberg.dnsalias.org/~strombrg/backshift/documentation/comparison/index.html">Comparatif effectué par l’auteur de Backshift</a></p>
<hr/>
<h1id="préliminaire">Préliminaire</h1>
<p>Voici tout d’abord quelques précisions sur des concepts importants pour la dépêche :</p>
<h2id="client-serveur">Client-serveur</h2>
<p>Tous les logiciels présentés peuvent être considérés d’un point de vue client-serveur même si pour la plupart des personnes, c’est en pratique la même machine. Le disque du client contient les données à sauvegarder et le disque du serveur contient les données sauvegardées.</p>
<p>Les différents logiciels à installer sur le client ou le serveur dépendent de la solution logicielle choisie.</p>
<p>La déduplication permet d’économiser de l’espace disque en détectant les fichiers identiques, ou les morceaux (<em>chunk</em>) de fichiers identiques (pratique pour les <ahref="http://fr.wikipedia.org/wiki/Machine_virtuelle">VM</a> dont seule une petite partie est modifiée).</p>
<p>La déduplication peut-être faite sur le serveur (par un programme dédié ou en utilisant un système de fichier adapté, par exemple <ahref="http://www.lessfs.com/wordpress/">lessfs</a>, <ahref="http://en.wikipedia.org/wiki/ZFS">ZFS</a> ou <ahref="http://en.wikipedia.org/wiki/Btrfs">Btrfs</a>) ou sur le client (plus avantageux car optimise le trafic réseau). Dans le cas de multiples clients, il est aussi possible de dédupliquer entre eux.</p>
<p>Si la déduplication est bien faite, il n’y a plus besoin de notions de <ahref="http://en.wikipedia.org/wiki/Delta_encoding"><em>delta encoding</em></a> et de <ahref="http://fr.wikipedia.org/wiki/Sauvegarde#M.C3.A9thodes_.28Types.29_de_sauvegarde_les_plus_courantes">sauvegarde complète, différentielle et incrémentale</a>, et du coup c’est beaucoup plus simple à gérer.</p>
<p>Le désavantage est que si le morceau dédupliqué est perdu/corrompu, tout le monde est touché.
Sans déduplication, s’il vous reste une sauvegarde complète vous n’avez pas tout perdu. Avec déduplication, il est facile de perdre beaucoup d’un coup.
Il est donc primordial de bien gérer la redondance si vous vous orientez vers la déduplication.</p>
<h2id="chiffrement">Chiffrement</h2>
<p>La protection de la vie privée est pour certains « un problème de vieux » (voir <ahref="http://www.lemonde.fr/technologies/article/2009/03/17/la-vie-privee-un-probleme-de-vieux-cons_1169203_651865.html">la-vie-privee-un-probleme-de-vieux-cons</a>, <ahref="http://www.cenedella.com/job-search/privacy-is-for-old-people-says-linked-in-founder">privacy-is-for-old-people-says-linked-in-founder</a>, <ahref="http://www.guardian.co.uk/technology/2010/jan/11/facebook-privacy">Privacy no longer a social norm</a>) mais pour d’autres c’est absolument essentiel.</p>
<p>Le cambriolage est toujours un risque (tremblez à l’idée de ce que <ahref="http://www.theatlantic.com/magazine/archive/2011/11/hacked/8673/?single_page=true">quelqu’un pourrait faire avec tous vos emails</a>) et dans le cas d’un serveur dédié ou un disque virtuel loué à une compagnie, il faut faire confiance à cette compagnie (<ahref="http://www.theverge.com/2012/4/25/2973849/google-drive-terms-privacy-data-skydrive-dropbox-icloud">google-drive-terms-privacy-data-skydrive-dropbox-icloud</a> et <ahref="http://www.zdnet.com/blog/bott/sorry-dropbox-i-still-dont-trust-you/4173">sorry-dropbox-i-still-dont-trust-you</a>).</p>
<p>Le chiffrement est généralement fait sur le client, de manière “traditionnelle” en chiffrant les (morceaux de) fichiers avec par exemple <ahref="http://www.gnupg.org/">GnuPG</a> ou bien en montant un système de fichier chiffré (<ahref="http://fuse.sourceforge.net/sshfs.html">sshfs</a> + <ahref="http://www.arg0.net/encfs">EncFS</a>).
Dans le cas de sauvegardes non chiffrées, il est néanmoins possible de sécuriser la connexion (via <ahref="http://fr.wikipedia.org/wiki/Transport_Layer_Security">SSL</a> par exemple) mais bon du coup vous chiffrez ET déchiffrez les données et au final elles sont stockées en clair.</p>
<p><em>Note : à noter que chiffrement et déduplication sont délicats à gérer ensemble (voir cette analyse sur le sujet de la <ahref="http://security.stackexchange.com/questions/7142/online-backup-how-could-encryption-and-de-duplication-be-compatible">convergent encryption</a>).</em></p>
<p><em>Note 2 : je ne m’y connais pas trop, mais il me semble qu’avec un système de fichier chiffré on perd en souplesse (par exemple difficile d’isoler chaque utilisateur) par rapport à la manière “traditionnelle” mais que au niveau sécurité c’est kif-kif.</em></p>
<h2id="redondance">Redondance</h2>
<p>Quelques études récentes donnent des taux de panne intéressants :</p>
<ul>
<li><ahref="http://www.hardware.fr/articles/862-6/disques-durs.h">Taux de panne des disques durs</a></li>
<li><ahref="http://www.hardware.fr/articles/862-7/ssd.html">Taux de pannes des SSD</a></li>
<li><ahref="http://www.tomshardware.com/reviews/ssd-reliability-failure-rate,2923.html">Étude sur la fiabilité des SSD</a></li>
</ul>
<p>Il est possible d’atténuer les conséquences d’une possible (voire probable) défaillance du support contenant vos sauvegardes.</p>
<p>Pour cela vous pouvez :</p>
<ul>
<li>diversifier vos supports de sauvegarde : par exemple avec un disque dur + un DVD de temps en temps (que vous stockerez idéalement chez quelqu’un d’autre) ou un disque chez vous et chez votre voisin. C’est une très bonne solution si vous réussissez à bien automatiser (dur dur pour un particulier).</li>
<li>utiliser un système de fichier plus robuste : par exemple ZFS propose l’auto-réparation même si vous n’utilisez qu’un disque. Je ne connais pas trop les avantages/inconvénients de cette approche.</li>
<li>utiliser du <ahref="http://fr.wikipedia.org/wiki/RAID_%28informatique%29">RAID</a> (matériel ou logiciel) : intéressante si vous avez besoin d’une excellente disponibilité. La robustesse au cambriolage et au feu n’est pas bonne par contre. Un peu délicat et cher à mettre en place pour un particulier.</li>
<li>ajouter des sommes de contrôle permettant l’auto-réparation : par exemple (<ahref="http://parchive.sourceforge.net/">Parchive</a> ou <ahref="https://tahoe-lafs.org/trac/zfec">zfec</a>). Vous pouvez configurer le taux de redondances (robustesse à 5% de corruption par exemple) et conserver ces sommes de contrôles ailleurs (à noter que je crois que les sommes de contrôles sont elles-même auto-réparables).</li>
<p>Si vous avez des plates-formes différentes, il est important que le logiciel prenne bien en compte les spécificités de la plate-forme. Sous les systèmes de type Unix, vous avez par exemple les <ahref="http://fr.wikipedia.org/wiki/Access_Control_List">ACL</a>, les liens symboliques ou directs, les modes spéciaux (setuid, setgid, sticky), etc. Sous Windows, <ahref="http://backuppc.sourceforge.net/faq/limitations.html#locked_files_are_not_backed_up">certains fichiers sont verrouillées lorsqu’ils sont utilisés</a> (par exemple les données d’Outlook) et il est alors recommandé d’utiliser la solution Microsoft <ahref="http://en.wikipedia.org/wiki/Shadow_Copy">Volume Shadow Copy Service (VSS)</a>.</p>
<p><em>Note : Si l’on se restreint à un environnement particulier, il est possible d’avoir des solutions élégantes et performantes (comme ZFS + snapshot par exemple).</em></p>
<h2id="importants-mais-non-traités">Importants mais non traités</h2>
<p>Si vous voulez sauvegarder de manière pérenne sur de nombreuses années, il est important de aussi prendre en compte le format de stockage de vos données (i.e. est-ce que le format est standard ? est-il bien documenté ? dispose-t-il d’une API ?). Malheureusement par manque de temps, cette dépêche ne couvrira pas cet aspect.</p>
<p>La restauration reste normalement une opération beaucoup moins courante que la sauvegarde. Donc je n’ai pas trop cherché à voir si les logiciels offrent une interface évoluée pour parcourir et restaurer des données spécifiques. Du moment qu’il est possible (heureusement !) de restaurer un fichier, même de manière plus ou moins compliquée (ligne de commande tarabiscotée), je considère que le logiciel est acceptable. Malheureusement par manque de temps, je ne pourrai pas pousser le sujet plus loin.</p>
<li><strong>bup</strong> (0.25~git2011.11.04-3) : codé en Python/C, il s’appuie sur <ahref="http://git-scm.com">Git</a>. Licence GNU LGPLv2.</li>
<li><strong>BURP</strong> (1.3.8-1) : codé en C, il possède une architecture client/serveur et s’inspire de <ahref="http://bacula.org">Bacula</a>. Pour Windows il utilise en particulier <ahref="http://en.wikipedia.org/wiki/Shadow_Copy">Windows Volume Shadow Copy Service (VSS)</a>. Licence AGPLv3</li>
<li><strong>Backshift</strong> (1.03) : codé en Python avec une architecture client/serveur, il a la particularité d’intégrer la déduplication à la source de pouvoir fonctionner simultanément (<ahref="http://en.wikipedia.org/wiki/Concurrency_%28computer_science%29"><em>concurrency</em></a>). Licence principalement <ahref="http://stromberg.dnsalias.org/~strombrg/backshift/documentation/licenses/index.html">GPLv3 avec des bouts UCI, Apache et MIT</a>.</li>
<li><strong>Obnam</strong> (1.0) : codé en Python, c’est à ce jour le seul logiciel libre intégrant à la fois la déduplication des morceaux de fichiers sur le client et le chiffrement “traditionnel” (avec <ahref="http://www.gnupg.org">GnuPG</a>). Licence GPLv3 ou postérieure.</li>
<li><strong>tahoe-LAFS</strong> (1.9.1) : codé en Python (mais inclut des bibliothèques tierces codées en C/C++), c’est un système de stockage redondant décentralisé (“dans le nuage”) avec une forte composante vie privée/sécurité/cryptographie. Licence GPLv2 ou postérieure, <ahref="https://tahoe-lafs.org/trac/tahoe-lafs/browser/COPYING.TGPPL.rst">TGPPLv1</a> ou postérieure.</li>
<li><strong>BackupPC</strong> (3.2.1-3) : vénérable logiciel de sauvegarde (depuis 2001), codé en Perl et C. Apprécié des administrateurs de parc de machines hétérogènes, il s’appuie sur <ahref="http://rsync.samba.org">rsync</a> sur Linux, Unix ou Mac OS X et/ou sur le <ahref="http://fr.wikipedia.org/wiki/Server_Message_Block">protocole SMB</a> sur Windows. Licence GPLv2 ou postérieure.</li>
</ol>
<p><em>Avertissement : les logiciels (hormis BackupPC) n’étant pas tout à fait mûrs sur certains points, je pense personnellement que c’est pour le moment à réserver aux curieux aventuriers et pas à ceux qui souhaitent en faire leur solution principale de sauvegarde clé en main sans se prendre la tête. Pour info pendant l’évaluation, j’ai trouvé un <ahref="http://groups.google.com/group/bup-list/msg/69cbd41a63edc60a">bogue</a> et un <ahref="http://groups.google.com/group/bup-list/msg/b53f202484c96a97">problème de performance</a> sur la dernière version de bup, signalé un <ahref="http://vlists.pepperfish.net/pipermail/obnam-flarn.net/2012-June/000066.html">problème 1 jour avant la sortie de la version 1.0 de Obnam</a>, eu quelques <ahref="http://groups.google.com/group/backshift/browse_thread/thread/60915d2e01fd675f">problèmes de performances avec la dernière version de Backshift</a> et <ahref="http://sourceforge.net/mailarchive/message.php?msg_id=29373712">BURP a un problème avec l’avant-dernière version (1.3.6)</a>.</em></p>
<p><em>Note : ça fait plaisir de voir que Python est autant utilisé ;-)</em></p>
<h1id="contexte">Contexte</h1>
<p>Tout d’abord précisons pourquoi à titre personnel je me suis intéressé à ces logiciels. Tout allait plus ou moins bien sur mon ordinateur portable au niveau des sauvegardes. Je les enregistrais sur un (gros) disque externe au moyen de <ahref="http://dar.linux.free.fr">DAR</a> et comble du luxe, j’ajoutais même des sommes de contrôles <ahref="http://parchive.sourceforge.net">PAR2</a> pour rendre mes archives auto-réparables (jusqu’à 5% de corruption).</p>
<p>Cependant, tout n’est pas rose car :</p>
<ol>
<li>Un (gros) disque externe ce n’est pas très pratique. Et donc en pratique je ne le branchais pas souvent et mes sauvegardes n’étaient ni fréquentes, ni régulières.</li>
<li>Un disque externe, ce n’est pas très robuste aux cambriolages et au feu.</li>
<li>Je suis un peu bordélique sur les bords, donc il y beaucoup de fichiers qui sont rangés un peu n’importe comment et je range toutes les deux éclipses totales. <ahref="http://dar.linux.free.fr">DAR</a>, comme beaucoup d’autres logiciels similaires, détecte un fichier qui a bougé comme un nouveau fichier, donc les sauvegardes incrémentales prennent beaucoup de place.</li>
<li>Je commence à utiliser des machines virtuelles qui sont très grosses (de l’ordre de 1 Go, voire plus). Au moindre petit changement dans ces machines virtuelles, il faut tout ré-enregistrer.</li>
<li>J’aimerais bien aussi faire quelque chose pour la famille et les amis qui sont un peu novices en informatique et qui sont sous Windows ou Mac OS.</li>
</ol>
<p>J’ai donc commencé à m’intéresser aux serveurs dédiés (<ahref="http://www.kimsufi.com/fr">Kimsufi</a> proposant 1 To pour 216 € par an, cela commence à être intéressant par rapport à de l’auto-hébergement moins robuste aux cambriolages et au feu) et aux logiciels libres de sauvegarde efficaces sur la sauvegarde à distance (i.e. optimisant les échanges et la bande-passante et robuste à une déconnexion).
C’est plus cher et beaucoup plus fastidieux à mettre en place, mais c’est à mettre en balance avec la valeur que vous accordez à vos données.</p>
<p>Un contre-point intéressant serait de comparer avec une personne qui aurait tous ses emails sous Gmail, ses photos sous Flickr, ses documents sous Dropbox, sa musique avec Deezer et sa vie numérique sous Facebook. Il est plus difficile dans ce cas d’expliquer la nécessité de la sauvegarde (défaillance du fournisseur, capture du consommateur), sans même parler de vie privée.</p>
<p><em>Note : même si cela n’est pas exactement le même sujet, j’ai été aussi impressionné par la facilité d’utilisation et les performances de Dropbox. Il combine la synchronisation des données ainsi que le versioning des fichier (on peut presque dire que c’est plus ou moins équivalent à de la sauvegarde) de manière très intuitive. Voir cette <ahref="http://linuxfr.org/news/synchroniser-vos-dossiers-locaux-distants">dépêche</a> présentant quelques équivalents libres (et qui m’a fait découvrir bup et Obnam).</em></p>
<h1id="bup">bup</h1>
<p>Approche originale fondée sur le fameux <ahref="http://git-scm.com/">Git</a> et utilise en particulier ses <ahref="http://alblue.bandlem.com/2011/09/git-tip-of-week-packfiles-redux.html">packfiles</a> :</p>
<ul>
<li>Si vous avez de nombreux petits fichiers, les performances devraient donc être très intéressantes. La <ahref="http://fr.wikipedia.org/wiki/Déduplication">déduplication</a> est le gros point fort de <strong>bup</strong> et c’est peut-être le logiciel optimisant le mieux l’espace disque et le trafic réseau pour vos sauvegardes (déduplication à la source et ne transmet que les changements/deltas).</li>
<li>Peut générer les sommes de contrôles <ahref="http://parchive.sourceforge.net">PAR2</a> pour vos sauvegardes, afin de réparer les corruptions éventuelles.</li>
<li>Fonctionne avec Linux, Mac OS X >= 10.4, Solaris, ou Windows (avec Cygwin). J’ai quelques doutes pour les fichiers verrouillés sous Windows.</li>
<li>Ne gère pas encore officiellement les metadatas des fichiers (les patchs sont prêts mais il reste quelques bogues).</li>
<li>Ne gère pas l’expiration ou la rétention des données.</li>
<li>Pas de chiffrement des données.</li>
<li>La liste de diffusion et la communauté semblent actives mais moins dynamiques qu’auparavant. La dernière version officielle de bup sous Debian Unstable remonte au 04/11/11. Pas facile de trouver où est le <ahref="http://git.debian.org/?p=users/rlb/bup.git">dépôt contenant les sources les plus à jour</a>. Sur les problèmes que j’ai remontés, je n’ai pour l’instant pas eu beaucoup d’aide.</li>
<li>Pas de bugtracker</li>
<li>Comme il s’appuie sur Git, on peut s’attendre à une certaine robustesse. Le format de l’archive est de plus compatible avec Git.</li>
<li>Robustesse à l’interruption de la sauvegarde</li>
<li>Fonctionnement en ligne de commande.</li>
</ul>
<h1id="burp">BURP</h1>
<p><strong>BURP</strong> (oui le nom peut prêter à confusion avec le précédent) s’inspire donc de <ahref="http://www.bacula.org">Bacula</a> (<ahref="http://burp.grke.net/why.html">l’auteur explique pourquoi</a>) et possède de nombreuses fonctionnalités intéressantes :</p>
<ul>
<li>Architecture client-serveur facilement configurable (pratique pour gérer les sauvegardes de la famille)</li>
<li>Intègre un mélange de <ahref="http://en.wikipedia.org/wiki/Delta_encoding">delta encoding</a> pour n’envoyer que la partie modifiée d’un fichier (pratique pour les VM) et de déduplication de fichiers <em>au niveau du serveur</em> (et à lancer manuellement avec bedup).</li>
<li>Gère le chiffrement symétrique Blowfish des sauvegardes (mais cela désactive le <ahref="http://en.wikipedia.org/wiki/Delta_encoding">delta encoding</a>). Cependant le nom des fichiers n’est pas chiffré (et la taille du fichier chiffré étant similaire, vous dévoilez une partie non négligeable de l’information).</li>
<li>Très bonne prise en charge des aspects multiplateformes. Utilise VSS pour les sauvegardes Windows : cela permet de gérer les problèmes de <ahref="http://backuppc.sourceforge.net/faq/limitations.html#locked_files_are_not_backed_up">verrouillage de certains fichiers</a></li>
<li>Bien adapté pour des sauvegardes à distance : reprise de la sauvegarde en cas d’interruption (le fichier en cours n’a pas besoin d’être retransmis dans son intégralité), génération automatique de certificats SSL, utilisation de SSL obligatoire pour toute communication.</li>
<li>Le serveur fonctionne uniquement sur Unix. Client Unix et Windows disponible.</li>
<li>De par son fonctionnement (reverse deltas : la dernière sauvegarde contient la dernière version des fichiers et les sauvegardes précédentes sont modifiées pour contenir uniquement le delta), je ne pense pas que cela soit possible d’implémenter un mécanisme <ahref="http://parchive.sourceforge.net/">Parchive</a> ou <ahref="https://tahoe-lafs.org/trac/zfec">zfec</a> (sauf à désactiver le delta encoding).</li>
<li>Planification évoluée des sauvegardes</li>
<li>Nombreuses options pour la rétention/expiration des sauvegardes</li>
<li>Mise à jour automatique des clients</li>
<li>l’auteur est très sympa et très réactif (parfois < 5 minutes !) sur la liste de diffusion. Par contre il semble être le seul à développer.</li>
<li>Fonctionnement en ligne de commande.</li>
</ul>
<h1id="tahoe-lafs">tahoe-LAFS</h1>
<p><strong>tahoe-LAFS</strong> n’est pas seulement un logiciel de sauvegarde : c’est un système de fichiers distribué qui intègre <em>en plus</em> un outil de sauvegarde. L’objectif premier est de sécuriser vos données, aussi bien du point de vue vie privée que du point de vue perte de données. Pour cela il stocke vos données chiffrées (à la source) sur plusieurs machines organisées en réseau avec une politique configurable (si vous spécifiez K=2 et N=5, vos données seront réparties sur 5 machines, dont au moins 2 doivent être disponibles pour accéder à vos données).</p>
<ul>
<li>J’aime bien son approche “paranoïaque”. L’idée directrice est que personne (pas même l’hébergeur qui détient la machine contenant la sauvegarde) ne devrait pouvoir accéder en lecture/écriture à vos données.</li>
<li>Le besoin de sommes de contrôle <ahref="http://parchive.sourceforge.net/">Parchive</a> ou <ahref="https://tahoe-lafs.org/trac/zfec">zfec</a> est moins présent vu que les données sont dupliquées sur le réseau (je recommande quand même une petite sauvegarde de temps en temps sur un autre média au cas où)</li>
<li>La communauté et la liste de diffusion sont très actives et très sympathiques (postez un message sur la liste de diffusion pour voir !). La documentation est de qualité.</li>
<li>Vous pouvez rejoindre un réseau existant (comme <ahref="http://bigpig.org/">VolunteerGrid2</a>) en ajoutant votre machine. Du coup tous les membres du réseau auront accès à une partie de vos données (chiffrées !) et vice-versa. C’est un saut psychologique important à faire (il faut faire confiance au chiffrement)</li>
<li>Vous pouvez aussi louer de l’espace à <ahref="https://leastauthority.com/">Least Authority Enterprises</a> ou un réseau privé entier à <ahref="https://www.rentanode.nl">RentaNode</a>.</li>
<li>Pas de <ahref="http://en.wikipedia.org/wiki/Delta_encoding">delta encoding</a> mais intègre la déduplication à la source mais seulement au niveau d’un fichier entier.</li>
<li>Fonctionne sur tous les systèmes suffisamment conformes à la norme <ahref="http://fr.wikipedia.org/wiki/POSIX">POSIX</a> (linux, *BSD, Mac OS X, Windows, etc.). J’ai quelques doutes pour les fichiers verrouillés sous Windows. Mais il est possible d’utiliser <ahref="http://www.duplicati.com/">Duplicati</a> pour gérer les sauvegardes avec Windows VSS.</li>
<li>En cas d’interruption d’une sauvegarde, le fichier en cours doit être retransmis dans son intégralité.</li>
<li>Chiffrement avec AES-128 (bientôt <ahref="https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1164">combiné avec XSalsa20</a>)</li>
<li>Fonctionnement en ligne de commande, via votre navigateur et FTP/SFTP.</li>
</ul>
<h1id="obnam">Obnam</h1>
<p><strong>Obnam</strong> s’inspire de <ahref="http://fr.wikipedia.org/wiki/Btrfs">Btrfs</a> en utilisant les B-tree (<ahref="http://fr.wikipedia.org/wiki/Copy-On-Write">copie sur écriture</a>). La version 1.0 vient de sortir la semaine dernière. C’est (à ma connaissance) le seul logiciel libre intégrant le chiffrement et la déduplication (sur le client) des morceaux de fichiers.</p>
<ul>
<li>Déduplication à la source des morceaux de fichier (“file data chunks”) donc pas besoin de delta encoding (mais perte légère d’efficacité qui dépend de la taille des morceaux). L’algorithme est cependant moins performant que celui de bup car il gère mal le décalage à l’intérieur d’un fichier (voir cet <ahref="http://vlists.pepperfish.net/pipermail/obnam-flarn.net/2012-June/000073.html">exemple de suppression d’une ligne</a>).</li>
<li><ahref="http://liw.fi/obnam/locking/">Déduplication possible entre plusieurs utilisateurs</a> avec chiffrement. Cela est possible en ayant en commun la même clé de chiffrement symétrique qui est elle-même chiffrée avec chacune des clefs publiques des utilisateurs. On peut ainsi révoquer un utilisateur (mais si celui-ci a copié la clef symétrique, c’est mort) et créer des groupes de personnes de confiance pour partager le même dépôt.</li>
<li>Ne semble pas adapté à une sauvegarde à distance si vous avez beaucoup de petits fichiers (<ahref="https://groups.google.com/forum/#!topic/bup-list/QNYW_VsaJqg">latence dans la commande SFTP RTT</a>)</li>
<li><ahref="http://fr.wikipedia.org/wiki/Cryptographie_hybride">Chiffrement hybride</a> des données avec GnuPG à la source. A noter que la clé privée est nécessaire pendant toute la durée de la sauvegarde car Obnam a besoin de déchiffrer des informations (“file data chunks checksums”) sur les sauvegardes précédentes pour effectuer la déduplication.</li>
<li>Sécurisation de la connexion par <ahref="http://en.wikipedia.org/wiki/SSH_File_Transfer_Protocol">SSH FTP</a> (mais autant chiffrer de mon point de vue).</li>
<li>Reprise possible d’une sauvegarde interrompue (placement de checkpoints après une taille configurable, on reprend alors à partir du checkpoint).</li>
<li>Ne fonctionne que sur linux.</li>
<li>Développé par une seule personne (un ancien copain de Linus !). Il répond généralement assez vite sur la liste de diffusion.</li>
<li>Fonctionnement en ligne de commande.</li>
</ul>
<h1id="backuppc">BackupPC</h1>
<p><strong>BackupPC</strong> est un logiciel relativement connu car délivrant de bons et loyaux services depuis 2001. Il semble particulièrement adapté à la gestion de sauvegardes d’un parc de machines (outils d’administration à distance évolués) et devrait donc plaire aux administrateurs (personnellement en tant que particulier j’ai eu un peu de mal à lancer ma première sauvegarde). Il rentre dans la catégorie des logiciels de sauvegardes traditionnels et éprouvés, sauf qu’il tient tête aux petits nouveaux en intégrant lui-aussi la déduplication.</p>
<ul>
<li>Pas de chiffrement des données mais sécurisation de la connexion par SSL.</li>
<li>Fonctionnement “classique” à base de sauvegardes complètes et incrémentales.</li>
<li>Déduplication au niveau d’un fichier sur le serveur. Aussi possible entre plusieurs utilisateurs.</li>
<li>Au moins sur Debian, il y a une dépendance sur Apache (!) car il intègre un outil web d’administration à distance (très bien fait d’ailleurs).</li>
<li>Sous Windows, possibilité de sauvegarder les fichiers verrouillés pas très claire : voir la <ahref="http://backuppc.sourceforge.net/faq/limitations.html#locked_files_are_not_backed_up">FAQ</a>, ce <ahref="http://www.mail-archive.com/backuppc-users@lists.sourceforge.net/msg20989.html">message</a> ainsi que <ahref="http://www.backupcentral.com/phpBB2/two-way-mirrors-of-external-mailing-lists-3/backuppc-21/rsync-3-0-x-with-windows-vss-support-98590/">celui-ci</a>.</li>
<li>Sur linux, vous avez le choix entre tar et rsync. Les performances ne sont pas toujours similaires (voir par exemple cette <ahref="http://adsm.org/lists/html/BackupPC-users/2011-02/msg00215.html">comparaison</a>).</li>
<li>L’évolution est relativement lente (signe de maturité ?) : 3.2.0 le 02/08/10 et 3.2.1 le 09/05/11.</li>
<li>Fonctionne sans installer de logiciels sur le client.</li>
<li>Reprise possible d’une sauvegarde interrompue (Partial Backup).</li>
<li>Documentation assez complète et de nombreuses ressources à disposition.</li>
<li>Le serveur fonctionne avec Linux, Freenix, Solaris. Le client fonctionne avec Linux, Win95, Win98, Win2000 et WinXP.</li>
<li>Fonctionne en ligne de commande et via votre navigateur (sous celui-ci, l’interface est extrêmement bien faite).</li>
</ul>
<h1id="backshift">Backshift</h1>
<p><strong>Backshift</strong> est visiblement développé par un amateur de Python (voir les <ahref="http://stromberg.dnsalias.org/~strombrg/backshift/documentation/interpreters/index.h">différents interpréteurs testés</a> ainsi que les <ahref="http://stromberg.dnsalias.org/~strombrg/backshift/documentation/performance/index.html">tests de performance</a>). L’accent est apparemment mis sur l’optimisation de la taille de l’archive (déduplication des morceaux de fichiers et utilisation de LZMA pour la compression)</p>
<ul>
<li>Déduplication des morceaux de fichiers sur le client.</li>
<li>Possibilité de fonctionnement en parallèle de plusieurs clients avec déduplication entre eux (!).</li>
<li>Reprise possible d’une sauvegarde interrompue.</li>
<li>Pas de chiffrement des données.</li>
<li>Sécurisation de la connexion possible par sshfs.</li>
<li>Création initiale de nombreux répertoires/fichiers mais permettant en théorie de mieux optimiser par la suite le nombre de répertoires/fichiers sur de nombreuses sauvegardes.</li>
<li>Fonctionnement en ligne de commande.</li>
</ul>
<p>Je n’ai malheureusement pas réussi à avoir des performances suffisantes pour qu’il puisse rentrer convenablement dans les tests de performance. L’auteur est en train de voir mais cela peut prendre du temps. Je surveille en tout cas ce logiciel de près.</p>
<h1id="tests-de-performance">Tests de performance</h1>
<p>Afin d’avoir une idée des performances de chacun des logiciels, j’ai créé un petit programme générant des nombres pseudo-aléatoires (j’ai limité aux nombres afin de bien voir l’effet de la compression).
Pour chaque logiciel j’ai alors d’abord sauvegardé, puis modifié, puis re-sauvegardé et enfin effectué une restauration.</p>
<p>L’arborescence “Sauvegarde initiale” <ahref="http://groups.google.com/group/backshift/msg/d3d645e4a5a55ae0">est la suivante</a> :</p>
<ul>
<li>10 répertoires contenant 10 répertoires contenant 10 répertoires contenant 10 fichiers de 1 Mo (soit 10 000 fichiers)</li>
Au final nous avons donc environ 10 000 fichiers et 24 Go.</li>
</ul>
<p>Ensuite j’ai modifié l’arborescence (“Modifications”) en touchant 3 Go de fichiers :</p>
<ol>
<li>Renommage d’un répertoire de petits fichiers (soit 1000 fichiers de 1 Mo)</li>
<li>Renommage d’un fichier de 500 Mo</li>
<li>Modification d’un fichier de 500 Mo (suppression d’une ligne au milieu)</li>
<li>Modification d’un fichier de 500 Mo (modification d’une ligne au milieu)</li>
<li>Duplication d’un fichier de 500 Mo</li>
<li>Duplication d’un fichier de 500 Mo et modification d’une ligne au milieu</li>
</ol>
<p>La “Restauration” est tout simplement une opération de restauration de toute l’arborescence.</p>
<p>J’ai ajouté un test “Machine Virtuelle” sur la sauvegarde d’une machine virtuelle avant et après installation de divers logiciels (la taille de la VM est de 4.6 Go avant, 7.3 Go après).</p>
<p>Les arborescences ainsi que les dépôts pour la sauvegarde sont sur le même disque dur interne de 5400 rpm (je n’en ai pas d’autres sous la main). Les tests sont réalisés sous Debian Testing (kernel 3.2.0-2-686-pa).</p>
<p><em>Note : sur un serveur de sauvegarde distant, les résultats devraient être encore plus marqués. On pourra de plus contrôler le volume de données qui transitent et les effets de latence. Des volontaires ?</em></p>
<li><strong>bup</strong>¹ : 12693 Mo en 36mn28</li>
<li><strong>BURP</strong>² : 11427 Mo en 79mn47</li>
<li><strong>BURP</strong>² (avec chiffrement) : 11427 Mo en 80mn36</li>
<li><strong>Obnam</strong> : 11607 Mo en 59mn55</li>
<li><strong>Obnam</strong> (avec chiffrement) : 11697 Mo en 78mn43</li>
<li><strong>BackupPC</strong> (avec tar) : 11729 Mo en 36mn24</li>
<li><strong>BackupPC</strong> (avec rsync) : 11729 Mo en 38mn42</li>
<li><strong>tahoe-LAFS</strong>³ : 24795 Mo en 110mn46</li>
<li><strong>Backshift</strong>⁴ : j’ai arrêté la sauvegarde après 8h et 2000 fichiers traités.</li>
</ul>
<p><em>Note 1 : La version de bup utilisée ne stocke pas les metadatas.</em></p>
<p><em>Note 2 : J’ai désactivé SSL pour BackupPC mais je n’ai pas réussi à l’enlever pour BURP, celui-ci est donc pénalisé.</em></p>
<p><em>Note 3 : tahoe-LAFS est configuré pour un seul noeud de stockage en local (K=H=N=1).</em></p>
<p><em>Note 4 : j’ai fait ce que j’ai pu pour accélérer Backshift en choisissant l’interpréteur Pypy (1.7), un disque externe formaté en ext4 (car Backshift crée beaucoup de répertoires/fichiers et en ext3 cela ne passe pas) et désactivé LZMA au profit de bzip2.</em></p>
<li><strong>bup</strong> : +37 Mo en 12mn43. C’est le roi de la déduplication, rien ne lui échappe.</li>
<li><strong>BURP</strong> : +271 Mo en 18mn10. Les modifications 3 et 4 sont bien gérées (il n’envoie et stocke que le delta). 1, 2 et 5 sont gérées mais à postériori (déduplication sur le serveur), donc les données sont quand mêmes envoyées. 6 n’est pas gérée.</li>
<li><strong>BURP</strong> (avec chiffrement) : +811 Mo en 25mn10. Idem que précedemment sauf que les modifications 3 et 4 ne sont plus gérées à cause du chiffrement.</li>
<li><strong>Obnam</strong> : +140 Mo en 2mn40. La modification 3 est <ahref="http://vlists.pepperfish.net/pipermail/obnam-flarn.net/2012-June/000073.html">partiellement gérée</a>.</li>
<li><strong>Obnam</strong> (avec chiffrement) : +141 Mo en 3mn34. Identique au cas précédent.</li>
<li><strong>BackupPC</strong> (avec tar) : +837 Mo en 26mn36. Les modifications 1, 2 et 5 sont gérées à postériori (déduplication sur le serveur), donc les données sont quand mêmes envoyées. 3, 4 et 6 ne sont pas gérées.</li>
<li><strong>BackupPC</strong> (avec rsync) : +837 Mo en 6mn54. Identique au cas précédent.</li>
<li><strong>tahoe-LAFS</strong> : +1751 Mo en 118mn34. Les modifications 1, 2 et 5 sont bien gérées. 3, 4 et 6 ne sont pas gérées.</li>
<li><strong>bup</strong> : 1955 Mo en 4mn03, puis +1717 Mo en 4mn42</li>
<li><strong>BURP</strong> : 2640 Mo en 9mn35, puis +2060 Mo en 15mn23</li>
<li><strong>Obnam</strong> : 2671 Mo en 6mn07, puis +3098 Mo en 9mn13</li>
</ul>
<p><em>Note : à noter qu’on est ici dans un cas similaire aux modifications 3 et 4. Cependant la sauvegarde de Machines Virtuelles se fait usuellement via des instantanés (“snapshots”) qui s’apparentent donc plutôt à la modification 6 (BURP ne pourra donc pas économiser quoi que ce soit).</em></p>
<h1id="conclusion">Conclusion</h1>
<p>En conclusion voici mon avis <strong>personnel</strong> basé sur l’état <em>actuel</em> des logiciels. Encore une fois, pour une chose aussi sensible que la sauvegarde de vos données, je vous recommande de faire attention vu la maturité relative de ces logiciels (hormis BackupPC). Mais ils sont tous en plein développement, donc c’est le moment idéal pour y participer en les testant, en remontant les bogues ou en proposant un patch !</p>
<ul>
<li>Si vous êtes sous un système de type Unix :
<ul>
<li>Si vous recherchez les performances pures (rapidité et optimisation de l’espace), bup est LA référence. Cependant ses limitations ‘opérationnelles’ actuelles (pas de gestion des metadatas, pas d’expiration des sauvegardes) peuvent être trop limitantes.</li>
<li>Si vous voulez la performance ainsi que le chiffrement complet de vos données, Obnam est actuellement le meilleur choix (avec une réserve sur la sauvegarde à distance cependant).</li>
</ul>
</li>
<li>Si vous êtes sous Windows :
<ul>
<li>BURP gère normalement le mieux les spécificités de Windows (pas essayé malheureusement) tout en maintenant un bon niveau de sécurité.</li>
</ul>
</li>
<li>Si vous gérez un parc de machines hétérogènes :
<ul>
<li>Pour un particulier, BURP est peut-être plus accessible.</li>
<li>Pour un administrateur, difficile de ne pas trouver son bonheur dans BackupPC qui est de plus mature et éprouvé.</li>
</ul>
</li>
<li>Si vous êtes pressés et que vous voulez un logiciel prêt à l’emploi et disposant de toutes les fonctionnalités, je vous recommande chaudement BURP.</li>
<li>Si vous très soucieux de votre vie privée, de la sécurité ainsi que de la redondance, tahoe-LAFS est fait pour vous (mais encore une fois ce n’est pas uniquement pour de la sauvegarde, c’est un système de fichiers distribué).</li>
</ul>
<p><em>Merci à Nÿco, Benoît Sibaud, Florent Zara, Maz, Anthony F., ziedabid, Laurent Bachelier, Benoît et Beurt d’avoir lu et corrigé les fautes dans la dépêche.</em></p>