Tout ce que vous devez savoir sur les sauvegardes Exchange* - Partie 1
Article d’origine publié le mardi 5 juin 2012
*Mais que vous n'osiez pas demander
Si le fonctionnement interne des sauvegardes de données Exchange à l’aide du Cliché instantané de volume (VSS) vous laissent un peu perplexe, rassurez-vous, vous n'êtes pas le seul. Les administrateurs se demandent peut-être : « Qu’est-ce que c’est que tous ces blocages et déblocages dans mes journaux d’événements ? Qu’est-ce que l’enregistreur VSS d'Exchange en réalité et que fait-il à mes bases de données ? Comment parvient-il a créer un cliché instantané d’une base de données de 135 Go en moins de 60 secondes ? »
Si vous vous êtes déjà posé ces questions mais que les réponses n’ont fait que contribuer un peu plus à votre confusion, voici un guide pour clarifier un peu tout ça. Pour comprendre comment une sauvegarde VSS d’Exchange fonctionne, il est primordial de comprendre les principes de base de VSS. Il existe une excellente documentation sur TechNet et MSDN sur le sujet, de même que sur le blog de l’équipe de Windows Server Core, « Demandez à l'équipe Core ». Mon très cher collègue Randy Monteleone résume très bien les principes de base de VSS au début de son billet, tout en fournissant des liens (repris ici) vers quelques bons ouvrages TechNet sur VSS :
Procédure : suivi VSS – Randy Monteleone
https://blogs.technet.com/b/askcore/archive/2012/04/29/how-to-vss-tracing.aspx
Comment fonctionne le service VSS
https://technet.microsoft.com/en-us/library/cc785914(WS.10).aspx
Service VSS
https://technet.microsoft.com/en-us/library/ee923636.aspx
Si les principes de base de VSS vous sont déjà familiers, vous pouvez passer directement à la Partie 2 de cette série, dans laquelle nous examinons les événements qui se produisent dans une sauvegarde VSS d’Exchange, et comment Exchange les enregistre dans le journal d’événements de l’application.
Si vous avez besoin d’une rapide introduction ou d’un rappel sur les principes de base de VSS et de l’enregistreur d’Exchange, j’ai préparé un petit résumé sous forme de points visuels pour compléter les références citées plus haut.
Clichés instantanés
N’oubliez pas que les solutions VSS pour Exchange, et pour toutes les applications, varient énormément selon les différentes configurations matérielles et logicielles. Il y a des clichés instantanés clones et COW, des solutions matérielles et logicielles, tout simplement une immense variété de technologies basées sur le sous-système VSS principal. Pour bien comprendre les sauvegardes Exchange, nous n’illustrerons qu’un seul type de solution spécifique. À savoir, ce qu'on appelle les clichés instantanés « copie sur écriture », ou « COW ».
Dans une sauvegarde VSS Exchange basée sur les clichés instantanés COW, des clichés instantanés des disques sur lesquels sont hébergées les données Exchange sont créés. Quelle que soit la nature de ce qui est sauvegardé, même s’il ne s'agit que d’un seul fichier de base de données et de quelques journaux, VSS crée un cliché instantané du disque entier sur lequel sont stockées les données. Si les données se trouvent sur plusieurs disques, par exemple la base de données Exchange est sur un disque et les journaux sur un autre, VSS créera des clichés instantanés de tous ces disques.
Mais, un « cliché instantané », c’est quoi au juste ? Le cliché instantané d’un volume est une zone à l'intérieur de ce qu'on appelle un « stockage de clichés instantanés », qui est lui-même généralement une petite zone du disque, située dans son dossier System Volume Information.
Une fois le cliché instantané créé, aucune modification ne peut être apportée à un bloc de données tant qu’une copie de ces données de bloc avant la modification (c’est-à-dire telles qu’elles étaient avant la création du cliché instantané) n’est pas écrite dans la zone de différenciation du stockage de clichés instantanés. De cette façon, les données du disque au moment de la création du cliché instantané sont conservées, bloc par bloc, dans la zone de stockage de clichés instantanés. Les données des clichés instantanés sont alors disponibles soit depuis le disque d’origine, si les blocs de données demandés n'ont pas changé, soit depuis la zone de différenciation dans le cas contraire. Les principes de base sont illustrés plus bas :
Disque E : cliché instantané créé à 13 h 00 :
Une minute plus tard, un des blocs est modifié mais pas avant que les données telles qu’elles étaient à 13 h 00 ne soient conservées dans la zone de différenciation :
Le disque réel ayant changé, les données telles qu’elles étaient à 13 h 00 sont écrites dans le stockage de clichés instantanés, ce qui permet de conserver un enregistrement du disque tel qu’il était à ce moment-là :
L’étape suivante :
Dans la figure ci-dessus, un serveur de sauvegarde demande des données du cliché instantané des blocs 2 et 53. Le bloc 53 est conservé dans le cliché instantané depuis 13 h 00, il est donc copié directement depuis le stockage de clichés instantanés. Le bloc 2 n'a pas changé depuis 13 h 00, il est donc copié via le pilote VSS VOLSNAP.SYS, qui fonctionne comme un pilote de filtre sous le pilote du système de fichiers NTFS.SYS. En travaillant dans la pile IRP (la partie de la mémoire du noyau qui gère l’E/S du disque) sous le système de fichiers, il peut lire des blocs de données sans que n’intervienne le NTFS pour avertir qu’un fichier est en cours d’utilisation. VOLSNAP.SYS doit aussi faire en sorte que les blocs soient copiés dans le stockage de clichés instantanés si une écriture est demandée sur eux, d’où le nom de « copie sur écriture ». Tim McMichael nous en dit un peu plus sur VOLSNAP.SYS dans son billet :
Exchange / VSS / et taille du bloc différentiel…
https://blogs.technet.com/b/timmcmic/archive/2011/07/12/exchange-vss-and-differential-block-size.aspx
À présent que nous maîtrisons les principes de base du cliché instantané, voyons comment il fonctionne avec Exchange et d’autres concepts essentiels :
L’enregistreur de Microsoft Exchange
Nous savons donc qu’un disque qui stocke des données Exchange fait l’objet d’un cliché instantané par VSS. Comment, pourtant, une application de sauvegarde sait-elle exactement quels sont ces disques ? Souvent un administrateur sélectionne des bases de données à sauvegarder sans rien spécifier sur les disques dans lesquels sont stockés leurs fichiers de données. Donc il manque quelque chose pour savoir où se trouvent les fichiers, et donc de quels disques VSS doit créer des clichés instantanés. Ces informations indiquent aussi à une application de sauvegarde, le demandeur VSS, les fichiers de données spécifiques à recopier à partir des clichés instantanés pour être conservés sur un support de sauvegarde, puisque nous ne voulons pas recopier du disque des éléments dont nous n'avons pas besoin.
Le mécanisme qui fait tout ici est l’enregistreur VSS de Microsoft Exchange. Comme tous les autres enregistreurs VSS d’application (ils sont nombreux, il suffit d’exécuter VSSADMIN LIST WRITERS pour les afficher) sa première tâche est d’indiquer à l’application de sauvegarde les données à sauvegarder, en particulier le fichier EDB, les journaux et le fichier de point de vérification pour chaque base de données demandée. Les informations concernant ces fichiers de données Exchange spécifiques sont appelées métadonnées d’enregistreur.
(cliquer sur la vignette pour afficher la version taille réelle)
La figure ci-dessus présente les étapes initiales d’une sauvegarde Exchange. L’enregistreur d’Exchange indique au serveur de sauvegarde (le demandeur) qu’une base de données se trouve dans un dossier du volume E:, et que les journaux de transaction de cette base de données se trouvent dans un dossier du volume D:. À partir de ces informations, l’application de sauvegarde demande des clichés instantanés des volumes D: et E: au fur et à mesure de la tâche.
L’enregistreur VSS d’Exchange joue un autre rôle stratégique hormis fournir des métadonnées aux demandeurs VSS. Il doit aussi interrompre les écritures dans les bases de données et les journaux du disque, ou les « bloquer » le temps de créer les clichés instantanés nécessaires. Un cliché instantané COW est généralement créé très rapidement, car il ne représente au départ que l’indication d’une zone dans le stockage de clichés instantanés pour conserver les blocs lorsqu’ils sont modifiés sur le disque réel. Malgré cette opération relativement rapide, la création du cliché peut durer environ une minute, ce qui laisse largement le temps aux blocs de données de changer sur un disque entre le début et la fin du processus de création de son cliché instantané. Si les blocs de données sont modifiés sans que les originaux soient conservés depuis le moment exact où débute la création du cliché instantané, ces blocs peuvent devenir incohérents par rapport aux données d’un autre cliché instantané, en particulier entre deux journaux, bases de données et fichiers de point de vérification. Par conséquent, l’enregistreur d’Exchange empêche le service de banque d'informations, ou le service de réplication de MS Exchange, d’écrire ce qui se trouve dans la mémoire RAM en bloquant les fichiers de base de données. Dans le cas du service de banque d’informations, le fichier du journal de transaction actif (Exx.log) est fermé avant que l’enregistreur d’Exchange n’autorise VSS à prendre le cliché instantané. Ainsi aucune modification n’est apportée aux données du fichier entre le début et la fin du cliché instantané, moment où les bases de données sont « débloquées ». Quand les bases de données sont débloquées, les écritures E/S retenues dans la mémoire RAM sont réautorisées sur le disque.
Voici des informations supplémentaires sur la façon dont l’enregistreur VSS d’application interagit avec VSS pour les blocages et les déblocages, et le temps nécessaire à la création d’un cliché instantané :
Méthode CVssWriter::OnFreeze
https://msdn.microsoft.com/en-us/library/windows/desktop/aa381563(v=vs.85).aspx
Le dernier grand rôle de l’enregistreur d’Exchange est d’indiquer au service de banque d’informations (ou service de réplication de MS Exchange en cas de sauvegarde de copie passive) que la sauvegarde est terminée et, le cas échéant, d’effectuer des tâches post-sauvegarde comme la troncation des journaux, indiquer que la base de données n’est plus en cours de sauvegarde, etc.
Dans les parties 2 et 3 de cette série, nous examinons rôle par rôle la façon dont les éléments décrits plus haut interviennent tous dans une sauvegarde d’Exchange, les événements des journaux d'applications qui sont générés et nous comparons les processus pour une base de données montée et pour une copie de base de données passive.
Un grand merci pour leur collaboration au contenu de ces billets à Michael Blanton, Tim McMichael, Randy Monteleone, Dave Vespa et Tom Kern.
Jesse Tedoff
Ce billet de blog a été traduit de l’anglais. L’article d’origine est disponible à la page Everything You Need to Know About Exchange Backups* - Part 1