Le stockage de fichiers « dédupliqués » requiert jusqu'à 50 fois moins d'espace que les procédés habituels. Son principe : les fichiers sont découpés en une multitude de tronçons, auxquels est
associé un identifiant unique. La comparaison de ces identifiants permet de ne stocker qu'une seule fois un même tronçon. Tous les acteurs de la sauvegarde se positionnent sur cette technologie : Diligent, Avamar, Data Domain, Sepaton pour les
éditeurs de niche ; et Veritas, EMC, HP, HDS, Quantum-Adic, Overland, et Falconstor pour les plus grands noms.
Tout repose sur un algorithme
Le principal enjeu est de trouver le meilleur équilibre entre la factorisation des séquences (la plus élevée possible) et la taille (la plus réduite possible) de l'index des signatures. Plus les tronçons sont petits, plus la
factorisation - et donc l'économie d'espace de stockage - est importante. Inversement, les signatures générées sont plus nombreuses, et alourdissent l'index. Aussi, pour des questions de performance, celui-ci doit être stocké
dans le cache du serveur de déduplication, et non sur disque. Et cette mémoire cache s'avère limitée et coûteuse.
Sur le papier, l'Israélien Diligent affiche, à ce jour, les meilleures performances. Avec 4 Go de cache, il adresse 1 Po (1 petaoctet, soit 1 000 téraoctets) de données, à un débit moyen de 200 Mo/s
(selon le contenu des fichiers). Son secret : c'est l'un des rares à miser sur un algorithme de hachage propriétaire, et non sur SHA-1 ou MD5 pour signer les tronçons. Il optimise ainsi la taille des segments en fonction des séquences de bits
identifiées.
Des économies sur l'espace de stockage
1. Un processus centralisé ou éclaté

Certains serveurs de déduplication (Diligent et Data Domain, par exemple) s'insèrent dans le flux des données de sauvegarde. Souvent en émulant une bandothèque virtuelle. D'autres systèmes (Avamar, notamment) sont plus
décentralisés : les processus de déduplication sont répartis sur les serveurs de production au moyen d'agents. Les données sont ensuite envoyées à un serveur de déduplication, qui, dans cette architecture, se substitue au serveur de sauvegarde.
2. Une segmentation déterministe ou aléatoire

Le fichier envoyé par le serveur de sauvegarde est découpé par l'algorithme de déduplication en plusieurs blocs. A chaque portion est associée une signature unique, sous la forme de « hash ». Selon les
technologies, le découpage est soit déterministe (un segment de 8 Ko, par exemple), soit aléatoire (sa taille diffère selon les séquences de bits identifiées par l'algorithme). Tous ces « hashs » sont ensuite comparés
à ceux déjà stockés dans l'index. Lorsqu'un « hash » est présent, c'est que le segment de données qui lui est associé est déjà stocké. Si aucune correspondance n'est trouvée, la séquence est stockée, et l'index mis à jour.
3. De l'index aux adresses physiques

L'index envoie au référentiel la description du fichier à stocker sous forme d'une combinaison de signatures. Le référentiel traduit alors ces signatures en pointeurs vers les adresses physiques des séquences de données. Lorsque le
serveur de sauvegarde restaure des données, il s'adresse directement à ce référentiel. En cas de perte du serveur de duplication et de son index, cette restauration est donc toujours possible.