Le Volume Shadow Copy Service (VSS) de Microsoft est le framework sous-jacent qui permet aux applications de sauvegarde de créer des snapshots instantanés de fichiers verrouillés et en cours d'utilisation (comme des bases SQL actives ou des ruches du Registre).
Bien que l'architecture principale de StateWarden repose sur notre moteur CBT propriétaire au niveau bloc, certains environnements hérités ou scénarios de repli spécifiques s'appuient encore sur VSS. Lorsque VSS échoue, la sauvegarde échoue.
Voici comment diagnostiquer et résoudre les défaillances d'architecture VSS les plus courantes sur les machines Windows.
1. Les symptômes d'une défaillance VSS
Si l'agent StateWarden rencontre une erreur VSS, la tâche de sauvegarde se termine et le Dashboard affiche une erreur SNAPSHOT_FAILED.
En inspectant les journaux de l'agent sur la machine affectée (C:\ProgramData\StateWarden\logs\), vous verrez typiquement des erreurs ressemblant à :
VSS Error: VSS_E_WRITERERROR_RETRYABLE (0x800423f3)Failed to CoCreateInstance for IVssBackupComponentsClass Not Registered (0x80040154)
2. Étapes de diagnostic principales
VSS est une machine à états complexe, au niveau de l'OS. Elle se bloque fréquemment si un logiciel tiers se comporte mal ou si le système manque de ressources.
Vérification 1 : l'état des writers VSS
VSS s'appuie sur des « writers » (petits plugins fournis par des applications comme SQL Server, Exchange ou l'OS lui-même) pour figer momentanément les données. Si un seul writer est en état d'échec, l'ensemble du processus de snapshot s'interrompt.
- Ouvrez une invite de commandes avec élévation de privilèges (Exécuter en tant qu'administrateur).
- Exécutez la commande :
vssadmin list writers - Examinez la sortie. Chaque writer doit afficher
State: [1] StableetLast error: No error. - Résolution : si un writer affiche un état comme
[8] Failedou[9] Timed out, vous devez redémarrer le service Windows spécifique associé à ce writer (par ex. le service « SQL Server VSS Writer »), ou redémarrer entièrement le serveur pour réinitialiser la machine à états VSS.
Vérification 2 : l'état des providers VSS
Plusieurs applications de sauvegarde installent leurs propres « providers » VSS personnalisés. Ceux-ci entrent fréquemment en conflit les uns avec les autres.
- Exécutez la commande :
vssadmin list providers - Résolution : idéalement, vous ne devriez voir que le
Microsoft Software Shadow Copy provider. Si vous voyez des providers laissés par d'anciens logiciels de sauvegarde (par ex. d'anciennes installations Acronis ou Veeam), ils interceptent probablement les requêtes de snapshot et les corrompent. Vous devez désinstaller complètement ces produits hérités et redémarrer.
Vérification 3 : l'espace disque libre sur le volume de stockage des clichés
VSS a besoin d'espace disque physique pour stocker le « diff » (les modifications apportées aux fichiers pendant que le snapshot est actif). Si le lecteur est plein à 99 %, VSS plante silencieusement.
- Exécutez la commande :
vssadmin list shadowstorage - Résolution : assurez-vous que le volume sauvegardé dispose d'au moins 10 à 15 % d'espace libre pour accueillir le cache des clichés. Vous pouvez aussi augmenter manuellement la limite de stockage des clichés allouée avec la commande
vssadmin resize shadowstorage.
3. La défaillance d'architecture « Class Not Registered »
L'agent StateWarden accède à VSS via l'interface COM vssapi.dll de Windows.
Si vous rencontrez l'erreur spécifique Class Not Registered (0x80040154) dans les journaux StateWarden, cela indique que les composants COM VSS de base de Windows sont corrompus dans le registre du système d'exploitation hôte.
La correction : Vous devez réenregistrer les DLL VSS. Ouvrez une invite de commandes avec élévation de privilèges et exécutez les commandes suivantes dans l'ordre, en ignorant les éventuelles fenêtres d'erreur bénignes :
cmdcd /d %windir%\system32 net stop vss net stop swprv regsvr32 /s ole32.dll regsvr32 /s oleaut32.dll regsvr32 /s vss_ps.dll vssvc /register regsvr32 /s /i swprv.dll regsvr32 /s /i eventcls.dll regsvr32 /s es.dll regsvr32 /s stdprov.dll regsvr32 /s vssui.dll regsvr32 /s msxml.dll regsvr32 /s msxml3.dll regsvr32 /s msxml4.dll net start vss net start swprv
À la suite de cette procédure, tentez de déclencher une sauvegarde manuelle depuis le Dashboard StateWarden.
StateWarden : la résilience par l'ingénierie.