Accueil > Backup > La déduplication en sauvegarde
Mai/114

Les objectifs

Les objectifs sont multiples, et émergent suivant une chronologie qui logiquement permet l’évolution technologique à l’origine ou découlant d’un nouveau besoin. Aujourd’hui les besoins de la déduplication sont évidents :

  • gain en volumétrie cible
  • gain en bande passante
  • gain en charge système
  • réduction des I/O
  • réduction des fenêtres de sauvegarde
  • Mise en place de PRA/PCA par réplications…

Au programme de ce post : retour sur l’apparition de la déduplication dans l’histoire de la sauvegarde, le vocabulaire, des logiciels, des équipements, des exemples d’utilisation et sans rentrer dans les détails ce que l’on peut attendre de la déduplication.

L’historique

La sauvegarde des données est maintenant assez ancienne. Elle était effectuée uniquement sur bande pendant des années et sur la dernière décénnie, le besoin a été nettement exprimé de pouvoir freiner le besoin croissant de nouveaux médias de sauvegarde. Les différentes couches de compression (logicielle et matérielle) ont alors été empilées pour proposer des outils pouvant sauvegarder jusqu’a deux fois la volumétrie native d’une bande. Les dernière générations de LTO5 propose ainsi jusqu’a 3To de stockage lorsque la compression est de 2:1. En comparaison aux plus petits médias qu’il m’a été donné de manipuler sur des environnements en production (DAT20/40 – 40Go compressés) l’évolution n’a pas tant été portée sur la compression (toujours 2:1), que sur les bandes elles-mêmes.

Ce que l’on peut appeler comme déduplication primitive est le simple fait de pouvoir éviter de resauvegarder des données déjà sécurisée. Alors que chaque job de sauvegarde pouvait être un travail complet chaque nuit, sont venus les travaux de sauvegardes incrémentales et différentielles. Les données n’ayant pas été modifiées depuis un certain point (dernière full pour les différentielles et dernière sauvegarde pour les incrémentales) ne sont alors plus sauvegardées. Le gain a été immédiat : moins de bandes à manipuler, plus de sauvegardes sur une bande et moins de temps de sauvegarde. Le potentiel d’un jeu de bande est alors passé de quelques sauvegarde complètes à plusieurs jours voir semaines de sauvegardes. Le ratio est alors tout autre. Mais aujourd’hui un simple tri sur un fichier intégral n’est pas suffisant.

Une nouvelle dimension a été apportée par la sauvegarde sur disque ces dernières années grâce à la baisse des prix du stockage sur disque par l’arrivée des disques capacitifs à performances réduites. Les premières sauvegardes sur disques avaient été initiées en parallèle de la sauvegarde sur bande pour faciliter les opérations de sauvegarde face aux différents problèmes matériels. Cette sauvegarde disque de première génération prenait la forme d’une émulation de bande. Un système de fichiers comprenait alors des dossiers contenant des fichiers de tailles correspondant à une cartouche virtuelle dimensionnée selon le besoin de l’administrateur. C’est encore ce qui est utilisé par des produits comme Backup Exec, Time Navigator, Data Protector et d’autres sans options particulières. Le gain en volumétrie est alors minimal (2:1), vu que c’est de la bande émulée mais la dépendance relative du matériel a nettement augmenter le taux de réussite des sauvegardes et des restaurations.

Cette sauvegarde sur disque a permis de modifier les habitudes de sauvegarde. Les sauvegardes complètes et incrémentales périodiques font place à des sauvegardes incrémentales à vie (incrementals forever) rendues possible par des volumes de disques importants, et le gain de temps direct à ne plus charger le média physique nécessaire à la restauration. Le besoin d’externalisation est tout de même toujours d’actualité, par obligations légales dans certains cas, ou par le manque de confiance dans le stockage disque. Pour répondre à ce besoin de mise sur bande, les nouvelles sauvegardes synthetics, virtual full… ont fait apparition pour permettre la création d’une sauvegarde totale à partir des dernières sauvegarde incrémentales. La première utilisation de ce procédé est à mon avis à associer à Atempo qui utilisait les sauvegardes synthétiques pour répondre à la problématique de sauvegarde des sites distants qui ne peuvent pas supporter le passage d’une sauvegarde full, mais difficilement exploitable par une solution entièrement basée sur des bandes (nécessité de plusieurs lecteurs, de toutes les bandes en ligne…).

Donc avec les sauvegardes sur disque, on trouve de plus en plus de sauvegarde complète initiale, suivie de sauvegardes incrémentales à vie et des sauvegardes complètes synthétiques pour externaliser ou simplement faire une nouvelle référence totale, mais basée sur un ensemble de sauvegardes déjà effectuées (sans nouvelle sollicitation du serveur source). Mais au final, ces nouvelles complètes sont entièrement redondantes avec des données déjà stockées : donc soit elles sont régénérée, soit elles sont virtuelles.

HP Data protector effectue de la Virtual Full. C’est de la synthétique, mais qui ne regénère pas de donnée. La virtual full est un tableau de pointeurs qui désigne les données nécessaires à la consistance de cette complète. C’est une déduplication à la volée effectuée lors de l’opération.

Le vocabulaire

Quand on parle déduplication, on entend parler de :

  • Déduplication à la source
  • Déduplication à la destination, ou cible
  • Déduplication à la volée
  • Déduplication en post-process
  • Déduplication par bloc fix
  • Déduplication progressive
  • Déduplication par bloc variable
  • Déduplication globale
  • Réhydratation

On entend aussi dire que la déduplication est effectuée par le logiciel ou par le matériel… Voici quelques informations pour s’y retrouver et pour choisir celle qui convient. Puisqu’il n’y a pas 1 déduplication, mais bien plusieurs, il faut s’adapter aux différents cas d’usage. La déduplication est appliquée à un grand périmètre de systèmes et équipements. Par exemple, l’algorithme de déduplication créé par Quantum pour ses VTL a été réutilisé par Riverbed sur les fameux boitiers d’optimisation de flux réseau WAN.

La déduplication à la source

C’est aujourd’hui ce que recherchent beaucoup d’entreprise. En général c’est faisable grâce aux performances élevées des serveurs actuels qui sous sous exploitées en phases de sauvegarde. Le principe de d’effectuer la déduplication au plus proche de la donnée primaire, afin de n’envoyer que les informations inconnues par le référentciel de blocs uniques.

Le gains sont : Réduction des I/O sur le volume primaire, réduction de bande passante Ethernet, faible charge du serveur de sauvegarde et faible I/O sur le volume primaire.

Les limites sont : parfois un cache local, une charge du système lors de la sauvegarde.

La déduplication à la destination

C’est très utilisé dans les périmètres ou les serveurs à sauvegarder ont de faibles performances de calcul et ou l’investissement sur la plateforme de sauvegarde n’est pas une contrainte forte. La sauvegarde est dans ce cas effectuée normalement, et soit le serveur de sauvegarde soit le stockage secondaire fait une opération de déduplication. Cette opération est faite soit en live soit en post-process.

Les gains sont : aucune nouvelle charge sur le serveur source, bonnes performances de sauvegarde (déduplication en post-process)

Les limites sont : utilisation importante du réseau Ethernet, I/O importants sur le volume primaire, serveur de sauvegarde  performant ou stockage capacitif.

La déduplication à la volée (on the fly)

Elle est précisée à la volée principalement sur les architectures de déduplication à la cible. En effet, la déduplication à la source est obligatoirement effectuée en live. Ce mode est assez gourmant en ressources, pouvant limiter les performances de la sauvegarde. Mais elle ne nécessite pas de stockage temporaire en attendant une seconde passe pour effectuer l’opération. Un flux de données de sauvegarde arrive alors sur l’élément (outil de sauvegarde ou baie de stockage)qui va effectuer cette déduplication. Cet élément va tronçonner, découper ce flux en blocs pour y trouver des similitudes avec des blocs existants avant de mettre à jour le stockage et le catalogue.

Les gains sont : stockage secondaire (aucun volume tampon)

Les limites sont : les performances de la sauvegarde seront probablement limitées

La déduplication en post-process

Elle est très utilisée lorsque les volumes secondaires sont importants et lorsque l’architecture serveur n’est pas de dernière génération… La sauvegarde est effectuée sur disque sans opérations de déduplication, ce qui est par conséquent la plus performante en débit. Puis la baie va effectuer en tâche de fond (par planification ou sur périodes creuses) une opération de déduplication. Lors de ces périodes creuses, on retrouve aussi les opérations de maintenance de la volumétrie : réoganisation de blocs, suppressions…

Les gains sont : performance de la sauvegarde

Les limites sont : coût d’investissement dans un volume temporaire, charge Ethernet, I/O sur volumes source et destination

Récapitulatif intermédiaire

Voici un tableau pour permettre de comparer ces 4 premières définitions :

    Déduplication logicielle  Déduplication matérielle 
    Source Destination à la volée post process
Gain   Réseau +++ 0 0 0
Stockage ++ ++ +++ ++
DD Globale +++ +++ +++ ++
Charge  Client +++ 0 0 0
Serveur + +++ 0 0
Performance Sauvegarde ++* ++* -** +++

* fonction des performances des serveurs

**fonction des performances de la baie

La déduplication par bloc

C’est la déduplication actuelle. Elle permet de ne plus traiter au niveau du fichier, mais bien par partie de fichier ou de disque. Les logiciels (même intégrés dans du matériel) découpent les données en blocs de taille fixe, ou variable, stockent chaque nouveau bloc dans un base et compare chaque bloc nouvellement lu pour en connaitre la pertinence avant création d’un simple pointeur ou création d’un enregistrement unique. L’unicité d’un bloc n’est pas limitée à son fichier d’origine, mais à l’ensemble des données sauvegardées.

Ce fonctionnement impose donc une analyse des blocs, ce qui génère inévitablement une surcharge à la source ou à la destination, et en fonction de l’algorithme. Pour être performant en taux de déduplication, ce process est consommateur de ressources pour trouver le maximum d’occurrences.

Le fait de parler en blocs unique implique que le stockage n’est plus un stockage de fichiers, mais un stockage constitué d’une table (catalogue, base…) et d’un référentiel de blocs (vault). Une sécurisation particulière donc être faite pour ce coffre-fort contenant les blocs uniques.

La déduplication par bloc fix

Elle est courremment utilisée dans les équipements de stockage ou sur certaines versions de logiciel. C’est autant utilisé sur des process à la volée qu’en post-process, à la source ou à la destination.

La déduplication progressive

Elle est basée principalement sur une taille de bloc fixe, mais pour permettre un meilleur taux de déduplication, ce bloc « glisse » sur la donnée pour trouver une similitude. L’analyse est aussi simple que le simple bloc fixe, et donc relativement peu consommateur.

La déduplication par bloc variable

Plus poussé, et donc plus gourmand que le bloc fixe, cette déduplication va adapter automatiquement la taille des blocs aux données. Le résultat est bon, mais parfois à un impact fort sur les performances.

La déduplication globale

Elle est née du besoin de dédupliquer des données qui ne viennent pas forcément du même serveur. Une table d’index est commune à l’architecure et est consultée et mise à jour lors de chaque sauvegarde. La déduplication globale est uniquement rencontrée dans le cas d’un logiciel. Une baie disque dédupliquera sur le périmètre fixé, ne prenant pas en compte l’origine des données. La déduplication est pour beaucoup de logiciels limitée à un travail de sauvegarde, voir un travail d’un serveur.  La déduplication globale permet de tirer profit de toutes les données sauvegardées.

La réhydratation

C’est le terme utilisé pour l’action inverse de la déduplication. La réhydratation est la duplication des blocs uniques en fonction de la table de pointeurs de la donnée à restituer.

Les logiciels

Voici quelques exemples de logiciels utilisant la déduplication :

Veeam Backup utilise la déduplication depuis ses premières versions (2007). Cette déduplication est effectuée à la cible, puisqu’aucun agent n’est déployé. Cependant, il utilise les fonctionnalités des hyperviseurs pour ne prendre que les blocs modifiés depuis la dernière sauvegarde, ce qui revient presque à une déduplication à la source. La déduplication est effectuée sur un travail de sauvegarde et non sur l’intégralité des données.

I365 propose aussi depuis ses débuts (1997) une déduplication, mais à la source. Le produit a été développé pour les entreprises à sites distants. Ce produit ne fait pas de déduplication à la destination. C’est uniquement l’agent qui envoie ses données qui les déduplique. Les serveurs « satellite » utilisent pleinement la déduplication. Ce sont des serveurs de sauvegarde locaux aux sites distants, qui se synchronisent vers le site central, uniquement les nouveaux blocs sont transmis. 

Atempo propose une solution de déduplication depuis quelques temps maintenant, Atempo HSS. Le serveur HyperStream permet une déduplication globale des sauvegardes. La déduplication est effectuée au moment de la sauvegarde, par le client qui communique avec le serveur HSS afin d’identifier les nouveaux blocs et ainsi réduire la bande passante. HyperStream permet aussi une réplication des serveurs HSS pour sécuriser les bocs uniques.

Arkeia vient d’annoncer la mise en place de la déduplication progressive sur toutes les appliances fournies depuis 2007 (voir article sur site). Cette mise à jour apportera toutes les fonctionnalités de la version 9.0 de Arkeia Network Backup. Hormis cette annonce, Arkeia est un logiciel qui permet la déduplication à la source et/ou à la cible à la volée, sur les environnements physiques et virtuels (Microsoft et VMware). Leur algorithme date de 2004.

Commvault Simpana 9.0 propose depuis cette version majeure une déduplication à la source, en plus de la déduplication à la destination et globale. La taille des blocs est fixe et peut être modifiée sur le storage policy.

Symantec Netbackup7 propose une déduplication à la carte avec la couche PureDisk. Il supporte la déduplication, source, destination et globale.

Et encore bien d’autres….

Les équipements

Là aussi la liste peut être longue. Jusque quelques exemples :

Netapp possède l’option (gratuite) A-SIS. C’est une déduplication en post-process, et soumis à planification. La déduplication est effectuée en taille de blocs fixe.

HP possède toute une gamme de produits orientés sauvegarde sur disque. On retrouve les baies D2D et VLS. Le produit de déduplication est appelé StoreOnce. Ces produits permettent la mise en place de réplications entre baies pour externaliser les données. Sur la gamme D2D, la déduplication est effectuée à la volée, par taille de bloc fixe (4Ko).

Quantum fait de la déduplication depuis 1999. C’est un acteur qui utilise des tailles de blocs variables et glissants, voir le white paper. C’est aussi mis à profit des réplications sur réseaux locaux et étendus.

Quelle que soit la solution, lors des sauvegardes sur ces baies, des bonnes pratiques doivent être respectées. La sauvegarde doit utiliser des blocs de taille unique sur toutes les sauvegardes, les données ne doivent pas être cryptées ou compressées… Chaque constructeur dispose de ses best practices.

Les utilisations avancées

Dans plusieurs architectures pensées autour de la continuité ou la reprise d’activité la déduplication trouve tout son intérêt. Utilisé sur des équipements de type Quantum DXi , HP D2D4200 ou avec des solutions applicatives type I365 (avec serveurs satellites), les sauvegardes se font sur des réseaux étendus, au travers de campus, tout en gardant une exploitation simplifiée. La déduplication apporte da capacité à synchroniser des volumes disques d’une baie à une autre, que ce soit géré par le matériel ou par le logiciel. Dans certains cas, des adaptations doivent être effectuées pour que la baie de secours soit exploitable par l’outil de sauvegarde, mais dans tous les cas les synchronisations sont complètes. Sur des VTL la synchronisation prend en compte toutes les bandes virtuelles, code bar, label et données. Sur un serveur satellite, tous les blocs sont synchronisés en central. En fonction des gammes de produits, les synchronisations sont de multi site vers un point central, ou de 1 à 1, unidirectionnel ou bidirectionnel…

Petit schéma avec différents cas :

C’est l’architecture d’un client possédant plusieurs sites. Il effectue sur un premier site (site2) une sauvegarde de ses serveurs sur une VTL. Cette VTL dispose de la couche de déduplication et est synchronisée avec 2 autres VTL, l’une sur un site de production (site1) et l’autre sur un site d’archivage. Les données transférée entre les sites ne sont que les blocs modifiés, les informations sur les recyclages de bandes virtuelles effectuées… il n’y a pas de gros traffic. Le site de production 1 fait 2 type de sauvegardes. La première sur une VTL aussi synchronisée avec un équipement sur site d’archivage, l’autre sauvegarde se faut sur un Vault. C’est un volume de stockage présenté à un serveur de sauvegarde. Ce volume contient un index avec des blocs uniques. Il est répliqué avec un site distant pour le PRA. Le logiciel de sauvegarde y étant aussi installé, cela permet une synchronisation maitrisée et connue par l’outil.

Les taux de déduplication

Les taux annoncés par les différents acteurs sont du simple au quintuple. Difficile de s’y retrouver. Seuls quelques points sont communs à tous : l’outil de dimensionnement. En prenant en compte la volumétrie de production, la quantité de modification journalière, les types de données, les rétentions, les périodicités de sauvegarde…. on tombe sur un résultat  : 1 = 1 !

En clair : 1 Go de stockage disque pour 1 Go de données source. Cela correspond à 1 sauvegarde full hebdo (rétention 2 mois), 6 incrémentales (rétention 4 semaines).

Tout est très dépendant des fichiers de l’infrastructure. Aussi deux clients, l’un expert-comptable, l’autre dessinateur industriel ne pourront pas s’attendre au même résultat.

Ensuite, sur des cas particuliers on retrouver des taux de déduplications explosifs : plus de 90% sur les sauvegardes Veeam des serveurs de tests d’Amosdec, plus de 70% sur une déduplication Netapp d’un stockage utilisé par View…

  1. julien
    05/05/2011 à 01:49 | #1

    bravo pour cet article complet

  2. 06/05/2011 à 00:22 | #2

    Mais alors ca fait moins de M&Ms? 😛

  1. Pas encore de trackbacks