Une limitation courante des opérations de sauvegarde tient à l'analyse des métadonnées exigée par les logiciels de sauvegarde traditionnels basés sur les fichiers. Ces solutions parcourent généralement l'arborescence des répertoires et utilisent des opérations stat() pour vérifier les horodatages de modification. Sur les serveurs de fichiers contenant un grand nombre de fichiers, cette analyse peut prendre un temps considérable avant même le début du transfert des données.
Pour améliorer l'efficacité des sauvegardes incrémentielles, StateWarden contourne le parcours du système de fichiers en espace utilisateur au profit d'un suivi au niveau bloc.
1. Limites des sauvegardes basées sur les fichiers
Lorsqu'un logiciel traditionnel effectue une sauvegarde basée sur les fichiers, il opère dans l'espace utilisateur :
- Il interroge le système d'exploitation pour obtenir la liste des répertoires et des fichiers.
- Il interroge le système d'exploitation pour obtenir les métadonnées des fichiers (taille, date de modification, etc.).
- Il ouvre le fichier et le lit séquentiellement.
Si un fichier volumineux (par exemple une image disque de machine virtuelle de 50 Go) subit une modification mineure, une solution de sauvegarde basée sur les fichiers lit et hache souvent l'intégralité du fichier pour traiter les changements.
2. Architecture de sauvegarde au niveau bloc
StateWarden traite les volumes de stockage au niveau bloc. En s'intégrant aux API bas niveau du noyau de l'hôte, le système identifie et ne transfère que les secteurs modifiés.
Windows : Smart NTFS et le journal USN
Dans les environnements Windows, StateWarden applique le processus suivant :
- Analyse du journal USN : l'agent surveille le journal USN (Update Sequence Number) de NTFS, qui consigne les modifications de fichiers. L'agent analyse ce journal pour identifier les fichiers modifiés sans parcourir l'arborescence des répertoires.
- Mappage physique des LCN : l'agent utilise
FSCTL_GET_RETRIEVAL_POINTERSpour mapper les fichiers modifiés directement à leurs numéros de cluster logiques (Logical Cluster Numbers, LCN) physiques sur le disque. - Lectures brutes de secteurs : l'agent effectue des lectures brutes de secteurs depuis
\\.\PhysicalDrive0plutôt que des lectures de fichiers classiques en espace utilisateur. Cela améliore le débit et contourne les conflits traditionnels de verrouillage de fichiers.
Linux : suivi au niveau du noyau et gestion des volumes logiques
Dans les environnements Linux, StateWarden s'appuie sur le framework Device Mapper :
- Interception des écritures : StateWarden s'intègre aux cibles de suivi par époques du noyau Linux (
dm-era). Ces structures surveillent et enregistrent les opérations d'écriture au niveau du périphérique bloc. - Indépendance vis-à-vis du système de fichiers : le suivi s'effectuant au niveau du secteur sur le volume (par exemple
/dev/md0p1), le suivi des blocs modifiés (Changed Block Tracking, CBT) fonctionne indépendamment du système de fichiers sous-jacent (ext4,xfs,btrfs, etc.).
3. Avantages opérationnels
Opérer sous la couche d'abstraction du système de fichiers offre plusieurs avantages :
- Analyses incrémentielles efficaces : l'analyse des métadonnées est minimale. L'agent identifie, hache et transmet uniquement les fragments de données modifiés.
- Réduction des IOPS : grâce aux lectures brutes de secteurs, StateWarden réduit la charge en IOPS de lecture/écriture sur le serveur de production pendant la fenêtre de sauvegarde.
- Déduplication au niveau bloc : le découpage mathématique du flux disque brut permet une déduplication efficace entre appareils au niveau du plan de données (Driad). Les blocs en double présents sur différents serveurs (par exemple les mises à jour système communes) ne sont stockés qu'une seule fois.