Image de Sean MacEntee, licence Creative Commons (CC BY 2.0)


L'idée de présenter un petit article sur la synchronisation et la sauvegarde des données me trotte dans la tête depuis un moment mais l'éventail des possibles est tel que je n'avais pas eu le courage de m'y atteler vraiment jusqu'ici...

Photos de plus en plus volumineuses, vidéo, musique,... la masse des données personnelles accumulées sur nos disques durs ne cesse de croître. Il n'est pas rare d'en avoir plusieurs centaines de gigaoctets. Le risque de perte/d'altération de ces données est très souvent sous-évalué par les particuliers. Mais ceux qui ont perdu (au pire moment) un mémoire à rendre ou les photos et vidéos des dix dernières années savent qu'une clé ou qu'un disque peuvent lâcher sans prévenir et que la récupération (c'est un autre sujet...) des données, quand elle est possible, peut coûter très, très cher ! Pas d'alternative que de se prémunir au moyen de sauvegardes régulières. Cela implique la contrainte de copier "manuellement" ses données et de faire attention à ne pas écraser ou dupliquer les données inutilement. Des logiciels de sauvegarde permettront de gérer ces sauvegardes aisément.


Si on étend un peu les risques ou qu'on se méfie encore davantage, il pourrait être bon de ne pas avoir tous ses oeufs dans le même panier : un incendie ou un cambriolage peuvent vous faire perdre et les originaux et les copies de sauvegarde ! Il faudra alors se tourner vers des solutions distantes, peut-être vers le cloud... Mais alors qu'en sera-t-il de la confidentialité et du statut juridique de mes données... Essayons d'y voir un peu plus clair.

Synchronisation et sauvegarde répondent à des besoins différents.
Dans le premier cas (synchronisation), il s'agira de maintenir deux emplacements identiques, par exemple pour mettre à disposition des données pour plusieurs dispositifs (ordinateur, tablette, smartphone,...).
Dans le second cas (sauvegarde), on souhaite dupliquer et stocker préventivement ses données pour prévenir des risques de vol, de perte, d'altération ou de destruction.

Certains critères sont importants et susceptibles d'être communs aux deux.
- Utilisation d'un logiciel libre, si possible gratuit, si possible open source.
- multi-OS : on doit pouvoir synchroniser ses données à partir de systèmes différents (PC, tablette, téléphone sous windows, linux ou android,...)
- usage de la cryptographie pour le stockage et le transfert des données.

La synchronisation pourra concerner essentiellement des documents sur lesquels on travaille à partir de différents dispositifs. Il serait intéressant dans certains cas d'avoir un gestionnaire de versions.
Concernant la sauvegarde, il serait bon de ne pas avoir à TOUT copier à CHAQUE fois et de compresser les données... On vérifiera donc qu'il existe des possibilités de sauvegarde différentielles. Différentes versions des sauvegardes peuvent aussi être intéressantes (sauvegarde incrémentielle).

Avant d'entrer dans le détail des solutions, il peut sembler d'ores et déjà nécessaire d'envisager des réponses différenciées en fonction des types de données. On gardera à l'esprit que les moyens retenus pour la sauvegarde/la synchronisation ne sont intéressants que si la mise en oeuvre n'est pas trop complexe et ne requière pas d'y passer trop de temps ;-) A quoi bon la solution parfaite et impossible à maintenir !

Un petit tour des solutions...

La plus classique : sauvegarde/synchronisation des données sur support externe (clé USB ou le disque dur).

Cette solution est probablement la plus simple et la plus fréquemment mise en oeuvre. Pour la sauvegarde, compte-tenu du volume des données et du coût, on se tournera évidemment vers un disque dur (externe ?). Les supports CD/DVD ne sont plus guère utilisés et les bandes magnétiques ne s'adressent pas aux particuliers !
En revanche, pour travailler sur des documents chez soi, au travail,... on choisit généralement la clé usb ou l'envoi par mail. Cela permet en outre de conserver des copies ou des versions différentes. Mais c'est vite compliqué à gérer! Documents en double,...

Clé USB

Le prix des clés a baissé mais reste plus élevé au giga que le disque dur. La clé est facilement transportable et permet aujourd'hui d'avoir avec soi un important volume de données pour pas cher. Les débits en lecture et en écriture seront fonction de la clé (certaines clés étant plus performantes) et surtout de l'interface (USB 2 ou USB 3). Des fonctionnalités de chiffrement ou de synchronisation sont parfois pré-installées. Ces solutions propriétaires ne sont pas forcément disponibles pour toutes les plateformes (Windows, IOS, Android, Linux,...) et il peut être très désagréable de se retrouver bloqué avec des fichiers lisibles uniquement sur un poste Windows ! En matière de chiffrement, il est bon de se tourner vers des solutions éprouvées et suffisamment robuste (AES 256bits) ; certains fabricant ne vont pas au delà de 128 bits (ex: Sandisk SecureAccess).

Disque dur

On favorisera le disque dur pour des volumes importants de sauvegarde. Il trouvera sa place au sein de votre tour ou bien à l'extérieur dans un boitier.

Recyclage
Si on dispose déjà d'un "vieux" disque dur, des boitiers existent pour les recycler en disque de sauvegarde. Disponible pour des disques de 2.5' ou 3.5', ils peuvent accueillir des disques SATA ou IDE et se connectent au PC par USB (2 ou 3) voire eSATA ou Firewire. Une alimentation externe est de mise pour les disques 3.5'. On trouve ces boitiers aux alentours de 15-30 €.
On peut également équiper son PC d'un rack amovible qui permet simplement d'insérer le disque dur à la façon d'un CD. Le disque est alors connecté comme s'il était relié directement à la carte mère, ce qui garantit des débits optimaux. (rack amovible)

Disque dur externe
Le plus souvent en 2.5' avec une connectique USB, on en trouve un peu partout dans le commerce (compter environ 70 € pour un disque de 500 Go en USB 3). L'alimentation se fait généralement directement via le port USB.

NAS

A mi-distance entre le local et le réseau, le NAS (Network Attached Storage), est un petit serveur de fichier situé sur le réseau local.
On trouve aujourd'hui des petits NAS pas très onéreux (voir par exemple les petits NAS synology) qui permettent, outre la sauvegarde/synchronisation des données, de mettre en place un petit serveur, un VPN, un serveur de mail, de torrents,...
Il est en général possible d'utiliser des disques en RAID (1), ce qui permet de ne pas perdre ses données en cas de panne. (NB : cette solution de raid peut également être envisagée dans une tour pour les données).
Les données sont accessibles sur le réseau local et le NAS peut également être accessible depuis internet (pour peu que l'on connaisse son adresse IP et que le routeur soit configuré pour laisser passer le trafic) ; attention cependant : le débit en upload sur de l'ADSL est mini !
Les transferts sur le réseau local seront fonction de la qualité du réseau.

On pourra, pour les bricoleurs, recycler un vieux PC ou utiliser un disque externe avec un raspberry pi pour se faire un NAS pas cher avec une distribution Open Media Vault (basé sur Debian) ou FreeNas (basé sur BSD).
Voir à ce sujet le billet de Korben.

Solution Distante :
Le Cloud.

L'heure est au cloud ! La multiplication des offres de services de stockage en ligne fait que de nombreux utilisateurs se tournent également vers ces solutions. Du fameux "dropbox" en passant par les "flickr" et consorts les offres sont multiples. De nombreux services de stockage offrent un espace gratuit et la synchronisation. Cet espace est accessible via une interface web ou une application (disponible en général sur pratiquement toutes les plateformes).
Des interrogations demeurent quant à la confidentialité, l'intégrité, la durabilité. Les données sont soumises aux lois des pays dans lesquels elles sont hébergées. Les données sont-elles répliquées ? chiffrées ? Le service est-il pérenne ?
Inconvénients : nécessité d'un accès à internet.

L'offre actuelle :
Bien des comparatifs fleurissent sur le web, à titre indicatif en voici un :
cf l'article des numériques par exemple.


Solutions logicielles.

Sous Windows.


Cobian Backup
Cobian Backup est une application multi-thread qui permet de programmer des sauvegardes par la création de tâches. Il est possible de faire des sauvegardes distantes par FTP (dans les deux sens), et de chiffrer les données (AES 128,192 ou 256bits). On peut faire des sauvegardes complètes, différentielles (ne sauvegarder ensuite que les éléments nouveaux ou modifiés) ou incrémentielles (conserver plusieurs copies de sauvegarde). Cobian Backup peut être utilisé comme un service (se lance au démarrage et travaille en fond). Cobian Backup garde une trace de son activité (log) et permet de déclencher des évènements avant/après une sauvegarde (comme envoyer un mail par exemple). Il est également possible grâce au Volume Shadow de copier des fichiers ouverts.

Cobian Backup est gratuit mais pas open source.
Inconvénient : les données ne sont pas chiffrées pendant leur transfert par FTP. Pas de synchronisation.

Syncback free
Là encore, il s'agit d'un logiciel disposant d'une version gratuite mais pas open source. Comme Cobian Backup, Syncback permet de faire des sauvegardes en passant par des tâches. Il autorise aussi la synchronisation bidirectionnelle et peut lui aussi utiliser FTP pour des sauvegardes distantes. Possibilité également de déclencher des évènements avant/après la tâche.
La version "pro", payante, permet d'utiliser SFTP et donc de chiffrer la communication, de chiffrer les données avec AES et la copie de fichier "ouverts" (Volume Shadow de windows).

Toucan
Toucan est un logiciel portable (et en français !) qui permet de synchroniser ou faire des sauvegardes localement. Il dispose de différents modes (miroir, mise à jour, différentiel,...) pour la synchro ou la sauvegarde. Il peut compresser et chiffrer les sauvegardes. Il est utilisable en ligne de commande et scriptable (langage LUA).
Simple et efficace mais ne dispose pas des fonctionnalités avancées des précédents.



robocopy
A l'origine, Robocopy faisait partie d'une suite d'outils pour Windows avant d'y être intégré (à partir de Windows Vista, 7 et Server 2008). C'est un utilitaire en ligne de commande qui permet de faire des copies exactes de répertoire, y compris à distance. Il est multi-threadé à partir de windows 7 mais il ne peut copier un fichier ouvert.
Robocopy est moins puissant que les deux précédents mais il a l'avantage d'être fourni par l'OS !
cf manpage.

Il existe encore de très nombreuses autres solutions je suis resté sur ceux-ci, à la fois gratuites et efficaces.

Sous Linux.

Les programmes qui suivent s'utilisent évidemment en ligne de commande (CLI) mais des interfaces graphiques (GUI) ont généralement été développées.
Ces programmes ont été portés sous Windows mais certains bugs peuvent persister, si vous souhaitez les utiliser quand même vous pouvez passer par Cygwin.

rsync (GUI : grsync)
rsync est le "père" de tous les autres. Grâce à un algorithme optimisé il s'avère extrêmement efficace et économe en ressources pour la synchronisation unidirectionnelle (pour faire des sauvegardes incrémentales). Il existe sous linux, Mac OS, windows,...
Rsync pleut fonctionner en local mais également via ssh (communication chiffrée) Plus de détails ici.
et des tutos ici et ici un peu plus poussé.

rdiff-backup
rdiff-backup permet "en plus" de rsync (dont il utilise la librairie librsync) de conserver une version des fichiers modifiés (versioning) dans un répertoire. Le temps de "reconstruction" peut être assez long... A n'utiliser que pour ce genre de tâche ou alors plutôt un logiciel spécialisé (GIT, SVN,... ?)
inconvénients/avantages
un petit tuto bien fait : ici
rdiff-backup est porté sous windows (version actuelle)

unison
Logiciel de synchronisation bi-directionnelle. Il est multi-plateforme (Windows, Linux, Mac OS) et vise à maintenir deux répertoires identiques. La synchronisation peut se faire en local ou bien de façon distante (et chiffrée) par ssh.
NB : sous raspberry (arch) il aura fallu compiler le programme avec le compilateur OCAML pour ARM... et quelques difficultés sous windows... mais au final : ça marche !


duplicity (GUI : "déjà dup")
from::
""" L'utilitaire duplicity est un outil en ligne de commande permettant d'effectuer des sauvegardes incrémentielles de fichiers et dossiers.
Il effectue la sauvegarde en créant des archives TAR chiffrées avec GnuPG. Ces archives sont alors envoyées dans un répertoire de sauvegarde local ou distant – les protocoles distants pris en charge sont FTP, SSH/SCP, Rsync, WebDAV/WebDAVs et Amazon S3. Puisque duplicity repose sur librsync, les sauvegardes incrémentielles sont économes en espace de stockage : seules les parties modifiées des fichiers sont prises en considération."""


Pour conclure et quelle(s) que soi(en)t la ou les solutions envisagée, assurez-vous de faire des sauvegardes régulièrement et de vérifier qu'elles fonctionnent !

bonus/hacks :
(+) Sauvegarder ses mails sous forme d'archive HTML avec nopriv

(+) Profiter du stockage gratuit sur Flickr pour stocker autre chose que ses photos !