Détails de la création de clichés instantanés
En général, la façon dont un cliché instantané est créé dépend du type de cliché instantané à créer, de son contexte et du rôle accordé aux rédacteurs dans l’opération de cliché instantané. (Pour plus d’informations , consultez Configurations du contexte de clichés instantanés.)
Le contexte de cliché instantané est défini en appelant la méthode IVssBackupComponents::SetContext . Avant d’appeler la méthode IVssBackupComponents::D oSnapshotSet pour créer un cliché instantané, les demandeurs doivent appeler les méthodes IVssBackupComponents dans l’ordre spécifié dans les sections suivantes.
Conditions préalables pour tous les clichés instantanés
Quel que soit le niveau de participation du rédacteur, la création d’un cliché instantané nécessite toujours que le demandeur soit initialisé avec des appels à IVssBackupComponents::InitializeForBackup et IVssBackupComponents::StartSnapshotSet.
Si cet appel n’est pas effectué, la méthode IVssBackupComponents::D oSnapshotSet retourne une erreur.
Clichés instantanés avec participation de writer
Si le contexte de cliché instantané spécifie la participation de l’enregistreur (autrement dit, IVssBackupComponents::SetContext est appelé avec VSS_CTX_BACKUP ou VSS_CTX_APP_ROLLBACK) :
- Les demandeurs doivent toujours appeler IVssBackupComponents::GatherWriterMetadata lorsque le contexte de cliché instantané prend en charge la participation de l’auteur. Si le contexte de cliché instantané prend en charge la participation de l’enregistreur et que IVssBackupComponents::GatherWriterMetadata n’est pas appelé avant IVssBackupComponents::D oSnapshotSet, une erreur est retournée.
- Si un demandeur souhaite sélectionner des composants d’enregistreur spécifiques, il doit appeler IVssBackupComponents::AddComponent avant d’appeler StartSnapshotSet pour créer le jeu de clichés instantanés.
- StartSnapshotSet doit être appelé pour créer le jeu de clichés instantanés.
- Les demandeurs peuvent ajouter un ou plusieurs volumes au jeu de clichés instantanés en appelant AddToSnapshotSet. Certains composants de l’enregistreur peuvent ne pas spécifier de volumes affectés. Dans ce cas, il est acceptable qu’un instantané défini soit vide (c’est-à-dire qu’il ne contienne aucun volume).
- Pour garantir la cohérence des métadonnées de l’enregistreur, un demandeur doit toujours appeler IVssBackupComponents::P repareForBackup même si aucun composant n’est sélectionné. Cela entraîne la génération par VSS d’un événement PrepareForBackup , dans lequel VSS appelle la méthode CVssWriter::OnPrepareBackup pour chaque enregistreur participant.
- VSS génère des événements PrepareForSnapshot et Freeze avant de créer le cliché instantané en réponse à IVssBackupComponents::D oSnapshotSet. Les rédacteurs gèrent les événements avec CVssWriter::OnPrepareSnapshot et CVssWriter::OnFreeze.
- VSS génère des événements Thaw et PostSnapshot après avoir créé un cliché instantané en réponse à IVssBackupComponents::D oSnapshotSet. Les rédacteurs gèrent les événements avec CVssWriter::OnThaw et CVssWriter::OnPostSnapshot.
Clichés instantanés sans participation de l’auteur
La création de clichés instantanés sans participation de l’enregistreur est déconseillée pour les applications de sauvegarde standard (voir Sauvegardes sans participation de l’enregistreur).
Il existe des utilisations, telles que les sauvegardes rapides d’un disque pour fournir un filet de sécurité contre l’altération accidentelle des fichiers, qui peuvent être effectuées sans participation explicite de l’enregistreur. Un tel cliché instantané aurait un contexte de VSS_CTX_FILE_SHARE_BACKUP ou de VSS_CTX_NAS_ROLLBACK.
Pour ce type de cliché instantané, notez les points suivants :
- Les demandeurs doivent toujours appeler les méthodes requises répertoriées dans Prérequis pour tous les clichés instantanés.
- Les demandeurs peuvent appeler IVssBackupComponents::GatherWriterMetadata, mais cela n’est pas obligatoire.
- Si les demandeurs appellent IVssBackupComponents::AddComponent, IVssBackupComponents::P repareForBackup ou IVssBackupComponents::BackupComplete, une erreur est retournée.
- Les fournisseurs ne génèrent pas d’événements PrepareForSnapshot, Freeze, Thaw ou PostSnapshot pour ce type de cliché instantané.