Format de stockage
D’un élément à l’autre de l’historique, seules les modifications sont conservées. Le contenu d’un volume ou d’une image est écrit dans un fichier dont le format optimise ce mode de fonctionnement.
Pour chaque volume et chaque image, le fichier ne contient pas directement les blocs de données : une empreinte du bloc est écrite à sa place.
Le bloc lui-même est placé dans un espace séparé commun, l’empreinte servant à retrouver le bloc de données correspondant.
Les blocs identiques ayant la même empreinte, le volume de stockage nécessaire est réduit.
-
Un volume D a pour parents les images S1 et S2. La longueur du segment représente la taille de l’élément. Ainsi, la taille a augmenté entre S1 et S2. Les carrés orange représentent les zones qui ont été écrites. Chaque empreinte est représentée par un symbole. Les paires empreinte/bloc de données sont conservées dans l’espace commun de stockage des blocs.
-
Lors d’une demande de lecture, les différents fichiers d’historique sont consultés pour savoir si le bloc de données correspondant a été écrit. Lorsque c’est le cas, l’empreinte trouvée dans un des fichiers permet de retrouver le bloc de données dans l’espace commun de stockage des blocs. Le bloc est renvoyé à l’appelant.
-
Lors d’une demande d’écriture, l’empreinte du bloc de données est calculée et écrite au bon emplacement dans le fichier du volume D. Si nécessaire, la nouvelle paire empreinte/bloc de données est écrite dans l’espace commun de stockage des blocs.
-
L’opération « trim » permet au système d’exploitation d’indiquer qu’un bloc de données n’est plus utilisé. Un marqueur remplace alors l’empreinte dans le fichier du volume D. Ainsi, la paire empreinte/bloc de données pourrait être supprimée de l’espace commun de stockage des blocs si elle n’est plus utile.