vendredi 5 novembre 2010

Petit point sur la déduplication

Sur le marché du stockage l'un des grands thèmes à la mode c'est la déduplication. On pourrait définir la déduplication par le fait d'analyser un flux ou un contenu en vue de n'en conserver qu'une unique version de données redondantes, les autres occurences étant remplacées par un pointeur. Pour comprendre, je vous fais une analogie. Prenons d'un côté des pâtes alimentaires de différentes formes et de l'autre une passoire. La forme des trous de cette passoire c'est la donnée que vous cherchez à dédupliquer. Lorsque qu'une pâte a exactement la même forme et qu'elle passe dans un des trous, elle libère de l'espace sur le dessus de la passoire. On répète l'opération kusqu'à ce qu'il n'en reste qu'une seule en comptant le nombre de celle ont été filtrées. Ca c'est de la déduplication avec une taille de bloc fixe (la forme du trou).

Mais, il reste d'autres pâtes avec d'autres formes, ne serait-il pas judicieux de procéder de la sorte avec les pâtes ayant d'autres formes ?

Imaginons à présent que la passoire a la faculté de changer la forme de ses trous pour correspondre à la forme de toutes les pâtes présentes. Au final on arrivera à quasiment toutes les faires passer et on ne gardera qu'une pâte pour chaque forme. On parle alors de déduplication avec une taille de bloc variable (la forme des trous changent).

Sur un stockage informatique, cette analyse peut se faire à la volée auquel cas on ne consommera aucun espace de stockage supplémentaire ou en analysant le contenu des disques à postériori dans la mesure ou l'on dispose d'un espace tampon pour procéder à l'opération de collecte et de tri. Attention aux conséquences sur la production dans la mesure ou ces traitements peuvent être très lourds et impacter la vitesse d'accès aux données.

Sachez que ce mécanisme est applicable dans le monde de la sauvegarde. On peut dédupliquer lorsque la donnée à franchi tout le réseau depuis la machine qui est sauvegardée auquel cas on fera de la déduplication à la cible : ça permet de diminuer l'espace de stockage utilisé pour les sauvegardes. Mieux on peut procéder à la déduplication directement à la source en analysant la machine à sauvegarder et en envoyant que les données dédupliquées non déjà présentes dans les catalogue de sauvegarde : on parle de déduplication à la source. On consomme alors moins de réseau, moins de ressources CPU sur le serveur de sauvegarde mais on utilise plus de CPU sur le client à sauvegarder.

Autre petit inconvénient : lorsque l'on souhaitera récupérer les données, on parlera alors de réhydratation, il faudra parcourir toutes les données dédupliquées pour les reconstruire ce qui prendra immanquablement plus de temps qu'avec une système de sauvegarde traditionnel. Inutile de dire que celà se prête d'autant moins sur un stockage primaire de données à moins de ne pas être pressé pour accéder à ses données.

Quoiqu'il en soit, la dédup c'est sûr, c'est une source d'économie qui offre l'intérêt de libérer un espace disque parfois conséquent sur du backup et pour faire de l'archivage.

Aucun commentaire: