Qu'est-ce que la sauvegarde basée sur l'index (index-based)

Qu'est-ce que la sauvegarde basée sur l'index (index-based)

Dans un monde où les données sont devenues la colonne vertébrale des entreprises, les méthodes de sauvegarde ont dû évoluer pour suivre le rythme. L'une des évolutions les plus récentes, particulièrement avec la démocratisation du stockage objet, est la méthode de sauvegarde "index-based".

Contrairement aux méthodes traditionnelles qui reposaient sur une structure hiérarchique de fichiers, la sauvegarde "index-based" permet une gestion plus flexible et optimisée des données à l'aide d'indexes spécifiques qui suivent et enregistrent chaque changement de manière efficace. Mais qu'est-ce que cela signifie concrètement ? Plongeons dans les détails pour mieux comprendre cette approche.

Définition

Avant toute chose, commençons par définir le terme “sauvegarde basée sur l’index”. Quoi de mieux que de proposer à ChatGPT de nous aider pour ce travail ?

La sauvegarde de données index-based (ou basée sur des index) est une approche de sauvegarde qui utilise des index pour suivre et enregistrer les fichiers ou les blocs de données à sauvegarder. Cette méthode repose sur la création et l'utilisation d'un index qui contient des informations clés sur les fichiers, tels que leur emplacement, leur taille, leur horodatage, et d'autres métadonnées. L'index facilite la gestion et l'optimisation des opérations de sauvegarde.

Méthodes de sauvegarde traditionnelles

Maintenant, je dois vous proposer un petit rappel des méthodes de sauvegardes “traditionnelles”. C’est celles que vous retrouverez dans une majorité d’articles abordant les méthodes de sauvegardes de données.

Elles sont au nombre de trois et vous permettent de facilement comprendre le paradigme historique :

  • Complète : Chaque sauvegarde capture l'intégralité des données. Cela garantit une copie exacte des fichiers, mais peut rapidement devenir coûteux en termes d'espace et de temps.
  • Incrémentale : Seules les modifications effectuées depuis la dernière sauvegarde sont capturées, réduisant ainsi le temps et l'espace nécessaires, mais rendant la restauration potentiellement plus longue, car il faut réappliquer chaque changement successif.
  • Différentielle : Semblable à l'incrémentale, mais elle capture toutes les modifications depuis la dernière sauvegarde complète. Le temps de restauration est plus rapide que pour l'incrémentale, mais cela nécessite plus de stockage que l'incrémentale.

Ces méthodes traditionnelles ont été largement utilisées dans des environnements basés sur des systèmes de fichiers hiérarchiques. Cependant, l'émergence du stockage objet a fondamentalement changé cette dynamique et rebattu les cartes en matière de sauvegarde de données.

Émergence du stockage objet

Avec l'adoption croissante du stockage objet, les limitations des méthodes traditionnelles sont devenues plus apparentes. Le stockage objet, souvent utilisé dans le cloud, utilise une architecture plate.

Contrairement à un système de fichiers qui organise les données en dossiers et sous-dossiers, le stockage objet n'a pas de hiérarchie naturelle ; il stocke les fichiers comme des objets dans un "bucket". Chaque objet est identifié uniquement par un chemin qui agit comme un préfixe, sans réelle notion d'arborescence de fichiers.

Par exemple, un fichier nommé /tmp/mytestfile est simplement un objet nommé ainsi dans le bucket, au même niveau que tous les autres objets.

Ce changement de paradigme a précipité l’émergence de la sauvegarde de données basée sur l’index:

  • Pourquoi conserver une structure de sauvegarde en arborescence là où le stockage objet vient la supprimer ?
  • Pourquoi garder une dépendance au incrémentaux précédents et ainsi complexifier le processus de restauration ?

Plutôt que de voir la sauvegarde de fichiers comme un ensemble de répertoires, on a abstrait cette notion d’arborescence. Une sauvegarde n’est plus qu’une liste de fichiers (index) liée à un dépôt de données (bucket) contenant les données utiles. Il nous suffit ainsi de parcourir un index et télécharger les fichiers référencés pour restaurer une sauvegarde. Sympa non ? 😁

Mais alors comment s’effectue la sauvegarde “index-based” ?

Concrètement, la sauvegarde "index-based" suit un processus en trois étapes :

  1. Indexation des métadonnées : L'outil de sauvegarde parcourt les métadonnées des fichiers ou des blocs de données à sauvegarder (nom, taille, date de modification, etc…) et les rassemble dans un fichier d'index. Chez Datashelter, par exemple, cet index est un fichier CSV qui contient les informations clés telles que le chemin des fichier, leurs tailles, date de modification et éventuellement un checksum.
  2. Comparaison avec l'index précédent : Lorsqu'une nouvelle sauvegarde est effectuée, cet index est comparé à l'index précédemment généré. Cela permet d'identifier uniquement les changements effectués (nouveaux fichiers, fichiers modifiés).
  3. Sauvegarde des changements : Une fois les différences identifiées, seuls les nouveaux fichiers ou blocs de données (ou ceux modifiés) sont envoyés au stockage, ce qui réduit considérablement le volume de données transféré et stocké.

Ce processus est similaire à la méthode incrémentale mais en beaucoup plus optimisée, car il fonctionne directement au niveau des fichiers ou des blocs de données. Cela permet une meilleure gestion des ressources, particulièrement dans des environnements avec de grands volumes de données ou des sauvegardes fréquentes.

Avantages par rapport aux méthodes traditionnelles

Par exemple, avec une sauvegarde complète, si vous avez 1 To de données, chaque sauvegarde nécessitera un espace équivalent. En comparaison, une sauvegarde index-based peut ne sauvegarder que quelques gigaoctets à chaque itération, car elle ne transfère que les blocs modifiés. Cela réduit non seulement l'espace de stockage requis, mais aussi le temps nécessaire à chaque sauvegarde.

Il s’agit donc d’une solution combinant les avantages des trois méthodes traditionnelles sans en ajouter leurs inconvénients.

Avantages

  • faible surconsommation de stockage: sauvegarder 10 fois 1To ne nécessite qu’une peu plus d’1To de stockage final
  • sauvegarde rapide: seuls les nouveaux fichiers (ou modifiés) sont envoyés
  • restauration simple: il suffit de parcourir un index et récupérer les données référencées par celui-ci
  • prise en compte des suppressions: à contrario de la sauvegarde incrémentale, elle permet de restaurer un système de fichier tel qu’il était et de ne pas restaurer les fichiers supprimés avant la sauvegarde

Inconvénients

  • la conservation de vos index sont indispensables pour restaurer vos données
  • la suppression de données liées à un index nécessite de parcourir tous les autres index pour s’assurer que celles-ci ne sont pas référencées ailleurs

Conclusion

En conclusion, la sauvegarde "index-based" est une réponse directe aux besoins modernes de gestion des données. Grâce à l'indexation des métadonnées et à l'approche basée sur les blocs, elle permet d'optimiser la gestion des ressources, de réduire les temps de sauvegarde et de restauration, tout en s'intégrant parfaitement dans les environnements cloud et de stockage objet.

Les logiciels de sauvegarde modernes tels que restic (open-source), Synology HyperBackup (propriétaire) ou snaper (Datashelter) démontrent que cette approche devient progressivement un standard, apportant efficacité et flexibilité à la sauvegarde des données.