Utilisation de la technologie Volume Shadow Copy de Microsoft pour des sauvegardes cohérentes

Lors de la création d’une sauvegarde d’une machine virtuelle ou physique exécutant des applications, en particulier des applications qui écrivent intensivement des données dans des fichiers et des bases de données, il est essentiel de garantir la cohérence des données de sauvegarde. Des données de sauvegarde cohérentes facilitent les récupérations sans corruption des données ni retards. À cette fin, Microsoft a développé la technologie VSS.

Cet article de blog explique ce qu’est le Volume Shadow Copy Service (VSS), comment il fonctionne et pourquoi cette technologie est importante pour sauvegarder les machines virtuelles et physiques basées sur Windows.

Qu’est-ce que VSS ?

Le Volume Shadow Copy Service (VSS), une fonctionnalité native des systèmes d’exploitation Windows, facilite la création de sauvegardes cohérentes avec les applications. Pour garantir la cohérence des données de sauvegarde, les opérations suivantes sont effectuées :

  • VSS arrête temporairement les opérations d’écriture effectuées par les applications.
  • Les tampons de la mémoire sont écrits sur le disque, c’est-à-dire vidés, et le système de fichiers est figé.
  • Un instantané du volume, également appelé cliché instantané, est créé dans le système d’exploitation Windows.

Le Volume Shadow Copy, également appelé Volume Snapshot Service, est un ensemble d’interfaces COM (Component Object Model) dans Windows qui fournit l’infrastructure nécessaire à la création de sauvegardes cohérentes pour différentes applications. VSS a été publié pour la première fois avec Windows XP et Windows Server 2003.

Pourquoi avez-vous besoin de la technologie VSS ?

La cohérence des données des applications est importante pour les sauvegardes de VM et de serveurs physiques. La cohérence garantit que les applications exécutées sur les machines virtuelles ou physiques restent pleinement fonctionnelles après leur restauration à partir d’une sauvegarde.

Sans VSS, vous obtenez une sauvegarde incohérente. Une telle sauvegarde est créée en copiant simplement chaque bloc dans l’état où il se trouve au moment de sa copie. Supposons qu’un fichier soit utilisé en permanence par une application telle qu’une base de données ou une application système. Cette application modifie continuellement les données du fichier ouvert en écrivant ou en supprimant des blocs. Pendant que la première partie du fichier est copiée, les blocs utilisés par les autres parties du fichier sont modifiés. Au moment où les autres parties du fichier sont copiées dans le référentiel de sauvegarde, les blocs de la première partie ont changé. Vous obtenez ainsi des blocs de données qui ne sont pas cohérents et ne représentent pas un point précis dans le temps.

Une façon d’éviter cette situation consiste à effectuer une basé sur des instantanés sauvegarde de VM. Lorsque le processus de sauvegarde démarre, un instantané, c’est-à-dire une copie exacte de la VM, est créé. Au cours de ce processus, tous les disques de VM (qui sont représentés par des fichiers .vmdk dans les environnements VMware) deviennent accessibles en lecture seule. Pour enregistrer sur le disque maître les modifications effectuées pendant le processus de sauvegarde, VMware ESXi crée un fichier delta connecté au fichier .vmdk principal. Une fois le fichier delta créé, le logiciel de sauvegarde commence à copier les données depuis le fichier .vmdk en lecture seule. Une fois le processus de sauvegarde terminé, le fichier delta est fusionné avec le fichier .vmdk.

Cette approche peut être efficace pour les systèmes de fichiers qui ne sont pas soumis à une charge très élevée, tels que le stockage de fichiers interne ou les serveurs web. Toutefois, si le processus de sauvegarde démarre au moment où certaines transactions sont en cours et que des opérations d’E/S (entrée/sortie) sont effectuées, des données peuvent être perdues. Lorsque vous utilisez des applications ou des bases de données telles que Microsoft SQL Server, Active Directory ou Exchange Server, vous ne pouvez pas simplement fermer le fichier, puis y ajouter des données. Dans ce cas, le service VSS (Volume Shadow Copy Service) peut vous aider. Cette technologie permet de créer des copies instantanées à un instant donné de fichiers ouverts et utilisés, sans compromettre l’intégrité ni l’utilisabilité de ces copies.

Fonctionnement du service VSS (Volume Shadow Copy Service)

Pour comprendre le fonctionnement de VSS, nous devons d’abord examiner les composants qui constituent cette fonctionnalité. Les composants principaux de VSS sont les suivants :

  • Le fournisseur VSS est le composant principal de VSS, qui crée des copies instantanées (instantanés) des volumes. Le fournisseur VSS peut être implémenté sous forme logicielle ou matérielle. Le fournisseur VSS logiciel de type copie à l’écriture est inclus dans le système d’exploitation Windows. Les fournisseurs matériels sont généralement utilisés avec un stockage SAN (réseau de stockage). Les fournisseurs matériels déchargent le système d’exploitation hôte lors de la création d’une copie instantanée.
  • Les writers sont des composants logiciels qui écrivent des données dans des fichiers et des bases de données afin d’en garantir la cohérence. Chaque application prenant en charge VSS ajoute son writer au système d’exploitation lors de son installation. Microsoft SQL Server et Exchange Server sont des exemples d’applications qui fournissent un writer VSS.
  • Le demandeur est un composant logiciel qui ordonne au fournisseur VSS de démarrer ou d’arrêter son fonctionnement (création, suppression ou importation de copies instantanées). Le demandeur peut être un composant Windows natif (comme NTBackup ou Snapshot Manager for Hyper-V) ou une application tierce comme un logiciel de sauvegarde.
  • Le service VSS est un composant du système d’exploitation qui garantit que tous les autres composants peuvent communiquer et fonctionner ensemble.

How does VSS work?

Les instantanés sont créés au niveau du volume et VSS fonctionne avec des blocs (les fichiers utilisent également des blocs). C’est pourquoi vous ne pouvez pas créer d’instantanés de fichiers ou de dossiers. Une copie fantôme peut être stockée sur le même volume ou sur un autre volume. L’espace alloué sur un volume au stockage des copies fantômes est appelé zone différentielle.

Le dossier System Volume Information est utilisé pour stocker les fichiers des copies fantômes VSS. Les fichiers portent des identifiants tels que 3517271a-d214-3a47-c5ea-01137a4fe675.

La technologie VSS peut être utilisée comme outil Windows natif pour enregistrer des copies à un instant donné (instantanés) des volumes de disque. Ces copies vous permettent d’annuler les modifications et de revenir à l’état enregistré de l’intégralité du volume ou de fichiers particuliers. Néanmoins, il est recommandé de créer une véritable sauvegarde à enregistrer sur un support externe pour assurer une protection des données plus fiable.

VSS est une procédure incrémentielle : Windows peut créer plusieurs instantanés de volume successivement. Après la création de la première copie fantôme, VSS suit les modifications apportées aux disques en divisant les données en blocs de 16 Ko. Lorsque des modifications sont apportées au disque, le service écrit l’intégralité de ce bloc dans une copie fantôme. Il n’est donc pas nécessaire de copier l’ensemble des données à chaque nouvel instantané : seuls les blocs modifiés sont copiés.

Principales conditions à remplir et limitations de VSS :

  • Au moins 300 Mo d’espace disque sont requis pour créer des instantanés VSS.
  • Le nombre maximal d’instantanés de volume est de 64 par défaut.
  • 10 % de l’espace du volume sont alloués aux copies fantômes par le système Windows.

Notez que les instantanés VSS déclenchés par une application de sauvegarde sont généralement supprimés une fois la tâche de sauvegarde terminée.

Outils natifs pour gérer les copies fantômes VSS

Vous pouvez utiliser les outils Windows natifs pour gérer les copies fantômes de volume. Comprendre leur fonctionnement avec les instantanés peut aider à mieux comprendre la technologie VSS et à résoudre les problèmes éventuels (par exemple, lorsqu’un instantané VSS temporaire n’est pas supprimé après la création d’une sauvegarde terminée).

Certaines options VSS sont disponibles dans l’interface graphique de Windows, mais toutes les options sont accessibles dans la ligne de commande, ce qui nous intéresse davantage. Deux outils VSS sont disponibles dans Windows PowerShell ou CMD :

  • vssadmin – disponible sur toutes les versions de Windows à partir de Windows XP (y compris Windows 10), à l’exception de Windows 8.
  • diskshadow – disponible uniquement sur les versions de Windows Server. Il s’agit d’une implémentation avancée de vssadmin , qui vous permet non seulement de travailler en mode interactif, mais également de créer des scripts.

Notez que ces deux utilitaires sont différents et fonctionnent dans des contextes différents. Une copie instantanée créée dans vssadmin ne peut pas être gérée dans diskshadow, et inversement. Vous pouvez voir l’instantané créé avec un autre outil, mais vous ne pouvez effectuer aucune action dessus.

L’API du service de cliché instantané des volumes est disponible pour permettre aux applications de sauvegarde d’utiliser VSS et de créer des sauvegardes cohérentes avec les applications afin d’assurer la cohérence des données de sauvegarde.

Les VM VMware exécutant Windows utilisent le composant VMware VSS comme pilote VSS dans le système d’exploitation Windows invité pour assurer la mise au repos. Le pilote est installé lorsque vous Installer VMware Tools. Dans les autres cas, lors de l’utilisation d’anciennes versions de Windows, un pilote SYNC est utilisé.

Comment une copie instantanée est créée

Une fois qu’une copie instantanée (instantané de volume) est créée, sa taille est de 0 octet. Lorsque de nouvelles données sont écrites, elles sont écrites sur le disque (là où elles doivent normalement l’être), tandis que les anciennes données sont écrites dans une copie instantanée afin que vous puissiez les restaurer ultérieurement. La taille de la copie instantanée augmente en conséquence.

Il existe deux approches principales pour écrire les données lors de la création d’un instantané :

  • Redirect on write (RoW) : écrire de nouveaux blocs dans un instantané (copie instantanée) et enregistrer les métadonnées indiquant sur quels blocs du disque ils doivent être écrits. Cette approche permet une écriture rapide des données, mais une lecture lente. Si vous devez revenir à l’état initial au moment de la création de l’instantané, la suppression de l’instantané ne prend que quelques secondes (presque instantanément). L’approche RoW est utilisée pour créer des instantanés des disques virtuels des machines virtuelles (VMDK) dans VMware ESXi et VMware Workstation.
  • Copy on Write (CoW) : écrire de nouveaux blocs à l’emplacement requis sur le disque et envoyer le contenu des blocs réécrits vers un instantané. L’écriture est lente, mais la lecture est rapide. Les instantanés précédents (états précédents des données) sont supprimés en quelques secondes (presque instantanément). L’approche CoW est utilisée pour les instantanés VSS.

Étant donné le grand nombre d’applications différentes susceptibles d’écrire des données sur les disques, Microsoft a créé, avec VSS, une interface unifiée permettant de notifier toutes les applications qu’un instantané est sur le point d’être créé après le lancement de sa création. L’idée du message de notification est la suivante : Un système va créer un instantané : arrêtez vos activités d’écriture et videz les tampons d’écriture sur les disques afin d’intégrer les données dans un état cohérent.

Le processus de création d’un instantané VSS est le suivant :

  1. Le demandeur VSS vérifie les services disponibles avec lesquels il peut communiquer, énumère les writers et collecte les métadonnées.
  2. Après avoir collecté une liste de writers, le demandeur communique avec le fournisseur VSS et lui indique les données dont il souhaite créer un instantané ainsi que l’emplacement où celui-ci doit être stocké. Dans la plupart des cas, l’instantané se trouve sur le même volume que le disque d’origine. Dans les autres cas, les fournisseurs de matériel SAN peuvent créer un volume distinct pour un instantané, appelé instantané de stockage.
  3. Préparation de la sauvegarde. Cette étape consiste à demander l’état réel des writers VSS (après avoir obtenu les métadonnées) et à préparer l’opération la plus importante, au cours de laquelle les writers doivent agir les uns après les autres. Les writers sont informés qu’ils doivent se préparer à la création de l’instantané. Le tampon du système est vidé et l’application est gelée afin de garantir la création d’une copie cohérente des données. Par défaut, chaque writer doit terminer son traitement dans le délai qui lui est imparti, soit 60 secondes. Microsoft Exchange Server ne dispose que de 20 secondes pour cette opération (ce délai est défini par Microsoft).

    Remarque : 20 secondes constituent un délai court. Si une application ne peut pas terminer son traitement dans ce délai, les writers renvoient une erreur et l’instantané n’est pas créé. Si les performances du stockage ne permettent pas de respecter ce délai, vous pouvez essayer de mettre à niveau votre matériel pour résoudre ce problème. Par exemple, vous pouvez remplacer les périphériques de stockage HDD par des périphériques de stockage SSD. Vous pouvez également essayer de migrer d’autres charges de travail vers un autre stockage et d’utiliser un stockage dédié uniquement pour la machine exécutant Microsoft Exchange Server. Consultez les journaux pour détecter quel writer a échoué lors de la tâche de création de l’instantané.

  1. Si tout est correct et que l’activité du système est gelée, VSS indique alors au fournisseur qu’il peut créer une copie instantanée. Il ne dispose que de 10 secondes pour créer un instantané. Les demandes d’E/S du système de fichiers sont temporairement indisponibles pendant cette période. C’est également à ce moment que vous pouvez créer un instantané de machine virtuelle. Une fois les 10 secondes écoulées, tous les writers sont dégelés et les opérations d’entrée/sortie (E/S) reprennent.

    Remarque : Si les fournisseurs VSS mettent plus de 10 secondes à valider la copie instantanée, l’opération échoue.

  1. Le service VSS indique aux applications qu’elles peuvent débloquer les requêtes d’E/S et poursuivre l’écriture des données sur les disques. Si vous utilisez une application de sauvegarde et qu’une sauvegarde a été créée à l’aide du service VSS de Windows, l’instantané VSS peut être supprimé. Cette opération peut être effectuée par l’application de sauvegarde elle-même. Vous pouvez également supprimer un instantané de volume à l’aide de diskshadow ou vssadmin.

    Si vous rencontrez des problèmes liés au service VSS, un redémarrage de la machine permet souvent de les résoudre lorsque les autres méthodes échouent. Certains problèmes liés à des contraintes de temps (par exemple, 10 secondes pour créer un instantané) peuvent être résolus en mettant à niveau le matériel, notamment les périphériques de stockage, ou en réduisant la charge.

    Essayez de créer un instantané manuellement et vérifiez si vous respectez le délai imparti de 20 secondes (en prenant Exchange Server comme exemple). En cas d’échec, redémarrez la machine, réduisez la charge, puis réessayez.

À partir de Windows Server 2012, le service VSS prend en charge les partages de fichiers SMB sous Windows. La technologie VSS est très utile avec les partages de fichiers, car ceux-ci peuvent faire l’objet d’écritures continues de la part des utilisateurs et des applications, ce qui rend la sauvegarde des partages difficile sans VSS. NAKIVO Backup & Replication 10.7 prend en charge sauvegarde du partage de fichiers.

Fonctionnement du service de clonage de volume (VSS) dans la solution NAKIVO

Nous avons examiné le fonctionnement général du service VSS. Voyons maintenant comment la technologie VSS fonctionne lors de la création de sauvegardes de machines virtuelles VMware vSphere avec un logiciel de sauvegarde dédié tel que NAKIVO Backup & Replication.

En résumé, le service de clichés instantanés de volume fonctionne comme suit : le demandeur lance le fournisseur VSS. Le fournisseur redirige les processus d’écriture vers un fichier journal et commence à créer le cliché du volume. Une fois que le demandeur a envoyé le signal d’arrêt au fournisseur (généralement une fois l’instantané prêt), celui-ci commence à transférer les données du fichier journal vers le volume.

Dans ce cas, NAKIVO Backup & Replication devient un demandeur VSS lors de la sauvegarde d’une machine virtuelle VMware vSphere à l’aide de VSS.

  1. Avant le démarrage de la sauvegarde de la machine virtuelle, la solution NAKIVO écrit les données via son programme d’écriture VSS.

VSS writer services are working with applications

  1. Au démarrage de la sauvegarde, NAKIVO Backup & Replication demande au fournisseur VSS de commencer à fonctionner. Le module d’écriture redirige les données vers le fichier journal tandis que le volume est « gelé ».

VSS backup has been started

  1. NAKIVO Backup & Replication commence à créer un instantané au niveau de la machine virtuelle. Cette opération peut prendre de quelques secondes à plusieurs minutes, en fonction de la charge du stockage VMFS. Pendant ce temps, le module d’écriture continue d’écrire les données dans le fichier journal.
  2. Un instantané de la machine virtuelle a été créé avec succès. NAKIVO Backup & Replication, en tant que demandeur, envoie au fournisseur un signal lui indiquant d’interrompre son activité.

VM backup using VSS software is in process

  1. Le fournisseur VSS transfère les modifications du fichier journal vers le volume. NAKIVO Backup & Replication copie le bloc de données de l’instantané de la machine virtuelle vers le référentiel de sauvegarde.

    Vous pouvez configurer le mode « App-Aware » pour assurer la cohérence des données de sauvegarde dans l’assistant, à l’étape Options . Vous activez ainsi le service VSS sur une machine fonctionnant sous Windows pour sauvergarder cette machine.
    The app-aware mode is used to enable VSS for VM backup

Conclusion

Le service de clonage de volume (VSS) est une excellente technologie pour garantir la cohérence des sauvegardes de machines virtuelles, mais il ne fonctionne que sur les machines sous Windows. Pour créer des sauvegardes cohérentes pour les machines sous Linux, vous devez mettre en œuvre des scripts spéciaux de pré-gel et de post-dégel. La solution NAKIVO fournit également des sauvegardes cohérentes automatisées pour les serveurs et postes de travail Linux.

Essayez NAKIVO Backup & Replication

Essayez NAKIVO Backup & Replication

Profitez d'un essai gratuit pour découvrir toutes les fonctionnalités de protection des données de la solution. 15 jours gratuits. Aucune restriction en termes de fonctionnalités ou de capacité. Aucune carte bancaire requise.

Les gens qui ont consulté cet article ont également lu