Accueil > Hyper-V, Hyper-V v2, Microsoft, Procedure, Windows 2008, Windows 2008 R2 > Volume Shadow Copy Service (VSS) détails

Volume Shadow Copy Service (VSS) détails

Pour rappel ce service est arrivé avec Windows Server 2003 et XP et permet de réaliser une image à un instant T dans le temps (Un cliché instantané) d’un Volume ou plus (on est au niveau du volume).
Ces Shadow Copy peuvent ensuite être manipulées pour réaliser des restaurations de perte de données par exemple, ou avec HyperV comme vu dans mon précèdent poste (http://diskshadow.fr/microsoft/sauvegarde-vm-sous-hyperv.html).
Apres avoir eu plusieurs fois des questions sur le fonctionnement en arrière-plan de VSS : taille prise sur le volume, où sont les Shadow Copy et comment configurer le comportement des prises de Snapshot de façon plus fine, je vais essayer ici de détailler un peu tout cela.
Pour toutes questions n’hésitez pas.

Alors c’est parti !

1) A la question, Où sont stockées les Shadow Copy la réponse est :

Par default l’emplacement de stockage associé est le même que le volume sur lequel est fait la Shadow Copy (Si je fais un cliché du volume C, le cliché sera stocké sur le C)
Alors effectivement comme on se situe sur le même volume, au niveau des I/O on peut arriver à des goulots d’étranglement en fonction des opérations effectuées.

Si vous souhaitez déplacer le stockage associé voici la procédure :

Tout d’abord voir l’état de la configuration avec :
VSSAdmin List ShadowStorage

Puis une fois décidé :
VSSAdmin Add ShadowStorage /For=C: /On=D: /MaxSize=20GB
(ici on déplace l’emplacement du stockage associé à C sur D avec une taille max de 20Gb)

Pour redimensionner la taille maximum allouée (par exemple 40Gb) il faudra utiliser la commande :
Vssadmin Resize ShadowStorage /For=C: /On=D: Mazsize=40GB

Si vous décidez de déplacer à nouveau l’emplacement avant de faire la commande ci-dessus il vous faudra le supprimer à l’aide de la commande :
Vssadmin Delete ShadowStorage /For=C: /On=D:

Les clichés sont stockés dans le répertoire caché « System Volume Information » à la racine de chaque volume (ce répertoire, est un répertoire système ou seulement le compte SYSTEM à un accès full)

2) La question bonus, Comment ça marche ??!!

On ne va pas faire durer le suspense plus longtemps, le mécanisme est assez complexe mais l’idée est : Copy-on-Write (Differential Copy) en fait le volume augmente en fonction des modifications !! je fais un snapshot du volume D : si je ne fais rien dessus pendant 3 heures (le snapshot sera de taille initial à savoir quelques Kb et à partir du moment où je vais faire de la suppression ou de la modification de fichiers, le snapshot va grossir avec les sauvegarde des fichiers avant modification/suppression.
Voilà grossièrement l’image du fonctionnement.

Passons à un jolie schéma :

Les éléments qui rentrent en jeu :
ComposantsVSS
- Volume Shadow Copy Service : c’est lui qui va coordonner tout le monde pour produire au final une Shadow Copy consistante.
- Requestor : Une application qui désire initier une Shadow Copy (un cliché) un application de backup par exemple.
- Writer : Composant d’une application qui va participer dans la synchronisation de la Shadow Copy (c’est le composant qui sait comment communiquer avec l’application concernée) par exemple pour communiquer avec les VMs d’HyperV on va utiliser le Writer HyperV.
- Provider : Compassant qui va créer et maintenir les Shadow Copy. Par exemple les Provider Systèmes inclus dans l’OS et les Provider Matériels avec les éléments de stockage.
- Source Volume : Le volume qui contient les données qui vont être sauvegardées dans la Shadow Copy.
- Storage Volume : Le volume qui va contenir les Shadow Copy pour le volume désiré.

Les étapes de la création d’une Shadow Copy (un cliché) :
EtapesVSS
1- Le requestor demande au service VSS d’énumérer les writers disponibles, récupère les metadatas des writers et prépare la création de la Shadow Copy.
2- Le writer cré un fichier de description XML du composant de backup au service VSS et défini les methodes de restauration. Le service VSS demande au writer de l’application concerné de préparer ses datas pour réaliser le snapshot.
3- Le writer prépare les datas en fonction des spécificités par exemple compléter toutes les transactions ouvertes, passer toutes les transactions encore en attente dans les logs, vider les caches etc. Quand tout est prêt le writer prévient le service VSS.
4- Le service VSS initie la phase « commit » pour la création de la Shadow Copy.
5- Le service VSS demande au writer de mettre en veille ses data et de temporairement geler les I/O en écritures (les I/O en lectures sont autorisées) pour quelques secondes requises pour créer la Shadow Copy du ou des volumes. Ce frezze (gèle) n’est pas autoriser à dépasser 60 sec. Le service VSS vide le buffer su système de fichier et le gèle, ce qui assure que les metadatas du système de fichier sont écrites de façon consistantes.
6- Le service VSS dit au provider de créer la Shadow Copy (temps maximum autorisé 10 sec !)
7- Le service VSS décongèle le système de fichier. Apres la création de la Shadow Copy, le service VSS relâche les writers de leur phase temporaire d’inactivité et toutes les files d’attente pour les I/O en écriture sont complétées.
8- Le service VSS demande aux writers si les I/O en écriture ont été bien gérés pendant toute la phase de création de la Shodow Copy.
9- Si tel n’est pas le cas (les datas sont peut-être inconsistantes) la Shadow Copy est supprimée et le requestor est prévenu.
10- Le requestor peut faire une nouvelle tentative (on repart en 1-) ou prévenir l’administrateur d’essayer plus tard.
11- Si tout c’est bien déroulé, le service VSS donne les information sur la location de la Shodow Copy au requestor.

Intéressant non ? :p

Anthony Hyper-V, Hyper-V v2, Microsoft, Procedure, Windows 2008, Windows 2008 R2 , , , ,

  1. antoine
    16/02/2010 à 14:01 | #1

    bonjour, je dois actuellement configurer les sauvegardes sur un serveur pour cela j’utilise l’utilitaire fournit par microsoft avec windows serveur 2008 et lorque je lance une sauvegarde j’ai des erreurs avec vss l’id est 30 n’arrive pas a avoir les privilege pour recuperer les audits de securités pourtant il es executer avec les privilèges maximum pouvez vous m’aider?

  2. 17/02/2010 à 16:23 | #2

    bonjour, j’ai besoin du message exacte retourné dans le journal d’événements

  3. antoine
    18/02/2010 à 10:13 | #3

    bonjour, merci de votre réponse voici le message exact :

    Nom du journal :Application
    Source : VSS
    Date : 18/02/2010 07:00:00
    ID de l’événement :30
    Catégorie de la tâche :Aucun
    Niveau : Erreur
    Mots clés : Classique
    Utilisateur : N/A
    Ordinateur : servjs23.ddjs23.local
    Description :
    Échec d’acquisition de privilège d’audit de sécurité.
    Les audits de sécurité pour la création et l’importation des clichés instantanés ne seront pas enregistrés. 0×80070514, L’appelant ne bénéficie pas de tous les privilèges ou groupes référencés.

    XML de l’événement :

    30
    2
    0
    0×80000000000000

    2506
    Application
    servjs23.ddjs23.local

    0×80070514, L’appelant ne bénéficie pas de tous les privilèges ou groupes référencés.

    2D20436F64653A2020434F525356434330303030303634322D2043616C6C3A2020434F525356434330303030303537312D205049443A202030303030313937322D205449443A202030303030333836382D20434D443A2020433A5C57696E646F77735C73797374656D33325C76737376632E6578652020202D20557365723A204E616D653A2044444A5332335C61646D696E6973747261746575722C205349443A532D312D352D32312D313030363836373939362D3137343734383331302D3937333637323430372D35303020202020

    cordialement Antoine

  4. 18/02/2010 à 10:44 | #4

    Effectivement il s’agit d’un problème de droits lié au compte qui exécute les sauvegardes ou d’un problème de paramétrage.
    Si vous allez dans les propriétés du job de sauvegardes dans l’onglet général vous verrez une option à cocher “Exécuter avec les autorisations maximales”, elle doit être cochée.
    Si non il s’agit d’un problème de droits associé au compte utilisé pour lancer le job :
    Toujours dans l’onglet général il y a “Utiliser le compte d’utilisateur suivant pour exécuter cette tache”, est ce le bon compte qui est utilisé ? a t il les droits suffisants sur le système ?

  5. antoine
    18/02/2010 à 10:58 | #5

    oui la case est bien coché il ma demandé de rentré un compte j’ai rentré le compte d’administrateur de domaine je ne vois pas d’où cela peut venir

  6. 18/02/2010 à 14:43 | #6

    utilisez vous 2008 ou 2008R2 ?
    si vous utilisez 2008 avez vous votre registre à jour pour supporter les backup hyperv avec WBS ?

    WSB_VSSHyperV_Enable.reg
    Windows Registry Editor Version 5.00
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WindowsServerBackup]
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WindowsServerBackup\Application Support]
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WindowsServerBackup\Application Support\{66841CD4-6DED-4F4B-8F17-FD23F8DDC3DE}]
    “Application Identifier”=”Hyper-V”

  7. antoine
    18/02/2010 à 15:09 | #7

    j’utilise 2008 R2
    je suis completement desesperé la je sais pas d’ou cela viens je cherche partout mais en vain le pire j’ai cette erreur mais elle est suivit par deux autres filtermanager et kernel-event tracing et je ne trouve rien du tout sur le support de microsft n’y ailleur

  8. 18/02/2010 à 15:46 | #8

    ok alors si c’est 2008 R2 essayez de changer le compte d’exécution :
    Propriété sur la tache de backup > Utiliser le compte suivant > change le compte > choisir emplacement et passer en local (pas sur le domaine) > faites avancé > Rechercher > puis dans la liste choisir Système.
    Valider le tout et faites un test de sauvegarde.
    En espérant que ca résolve le problème.
    Courage :)

  9. antoine
    18/02/2010 à 15:54 | #9

    j’ai pas local j’ai juste l’annuaire avec juste le domaine dedans
    je ne sais pas du tout comment faire je vais continuer a chercher en tout cas merci d’avoir pris le temps de me repondre
    cordialement Antoine

  10. 18/02/2010 à 16:03 | #10

    Ce n’est pas local mais le nom de l’ordinateur qui sera dans la liste des emplacements disponibles (exemple mon oridinateur s’appel HYPERV et mon domaine test.local).
    Dans la partie emplacement j’aurai :
    HYPERV
    Annuaire
    test.local

    il faut choisir HYPERV (dans mon cas) et faire une recherche de l’utilisateur “Système” et enfin le selectionner pour executer le job de backup.

  11. antoine
    18/02/2010 à 16:15 | #11

    justement je n’ai que l’annuaire mon ordinateur n’apparait pas dans la liste des emplacement ni le domaine le domaine apparait uniquement si je deroule l’annuaire

  12. 18/02/2010 à 16:44 | #12

    Alors là par contre j’ai bien peur que le serveur qui héberge le rôle HyperV soit aussi contrôleur de domaine non ??

  13. antoine
    18/02/2010 à 16:46 | #13

    oui c’est la même machine qui fait tout

  14. 18/02/2010 à 17:12 | #14

    Il est normal que des anomalies apparaissent dans un environnement unique qui fait même le café.
    Un contrôleur de domaine utilise une politique de sécurité différente d’une machine classique lui permettant de diminuer l’empreinte d’exposition du système.
    Je vous conseil de faire des recherches sur le paramétrage d’un compte qui ne sera utilisé que pour les backup et de lui donner les droits d’exécution en tant que service (à modifier dans gpedit.msc) et de lui donner les droits suffisant sur l’ordinateur (commencer par administrateur local pour vérifier que tout se lance bien) (puis diminuer les droits pour qu’il n’ait que les bons à la fin).

    Bon courage.

  15. antoine
    19/02/2010 à 10:07 | #15

    juste une precision le serveur n’a pas le rôle hyperV

  16. antoine
    19/02/2010 à 11:19 | #16

    je vais suivre votre piste je vous remercie pour votre aide et pour le temps que vous avez passer
    cordialement,
    Antoine

  17. antoine
    19/02/2010 à 15:02 | #17

    je crois bien avoir resolut le problème. en faites lorsque je sauvegardais je le faisais sur une partition du disque donc je sauvegardaisles autres partitions donc j’ai testé sur un disque dure usb il faut absolument que le disque soit disque de base et plus d’erreurs dans le journal d’événement mais lorsque je redemarre le serveur les erreur apparaissent juste au redemarrage et après plus rien donc je pense qu’un service doit se lancer avant un autre voila

  18. EtherKurios
    16/09/2010 à 14:02 | #18

    Instructif et très clair ! Je connaissais Shadow copy mais je savais pas qu’il était possible de le mettre en place sous XP !!!

  19. Benoit
    08/04/2011 à 10:52 | #19

    bonjour, je me permet de réveiller ce sujet très intéressant.

    je dispose d’un serveur 2003 R2 64bit sur lequel sont situés 6 dossiers partagés à l’ensemble de mon réseau. j’utilise actuellement le shadow copy.

    Ma question est la suivante.
    Le Volume shadow copy comme son nom l’indique fait un cliché de la totalité du volume.
    est-il possible de faire un cliché d’un dossier ciblé SEULEMENT avec le shadow copy intégré à Win2003 (argument supplémentaire, etc…) ?
    ou cela est-il possible avec une autre utilitaire ?

    merci de vos réponses
    benoit

  20. 09/04/2011 à 14:11 | #20

    Bonjour,
    le principe même de VSS impose que la racine soit le volume.
    Il n’est pas possible de le positionner uniquement sur un repertoire :/
    Tous les utilitaires tierces s’appuient sur VSS et donc fontionnent de la même facon.

  21. Benoit
    11/04/2011 à 15:58 | #21

    Merci Anthony pour ta réponse rapide.
    c’est bien ce que j’avais compris à propos du VSS, il porte bien son nom =/
    connaitrais-tu par hasard, une autre façon de faire ?

  22. Thierry
    31/05/2011 à 08:54 | #22

    Bonjour ,

    J’ai un soucis avec vss sur un serveur SBS2008 64b.
    j’explique, quand je veux faire un backup avec les outils fournis par le système il bloque avec le message d’erreur 80042316 , j’ai cherché avec mon ami google et j’ai vu qu’il s’agissais d’un problème de shadows copy qui restai bloqué, effectivement en regardant je vois bien copy ouverte . \\?\volume(06991808-xxxxx-xxxx-xxxx).
    Comment remédier a cela . rebooter le serveur ? je n’ai pas encore essayé . quand je redémarre la tache elle ne s’arrête jamais , toujour bloqué .Je ne vois pas quelle action entreprendre pour remédier a ce problème , si vous avec une piste , même une solution je suis preneur car je n’aime pas trop ne pas avoir de backup , ni de cliché instantané .

    Merci

    Thierry

  1. 28/08/2011 à 18:42 | #1