Compartilhar via


Alles, was Sie über Exchange-Sicherungen wissen müssen* - Teil 1

Veröffentlichung des Originalartikels: 05.06.2012

*(bisher aber nicht zu fragen wagten)

Wenn Ihnen das "Innenleben" von Exchange-Datensicherungen mithilfe des Volumenschattenkopie-Diensts (VSS) ein wenig rätselhaft vorkommen, seien Sie getröstet, denn Sie sind nicht allein. Administratoren stellen sich Fragen wie “Was hat es mit dem "Sperren" und "Aufheben von Sperren" in den Ereignisprotokollen auf sich? Was ist Exchange VSS Writer tatsächlich und wie wirkt sich die Anwendung auf meine Datenbanken aus? Wie wird eine Momentaufnahme einer 135-GB-Datenbank in weniger als 60 Sekunden erstellt?”

Wenn Sie sich diese Fragen schon einmal gestellt haben, die Antworten jedoch noch mehr Verwirrung gestiftet haben, erhalten Sie hier ein wenig Klarheit. Um die Funktionsweise einer VSS-Sicherung zu verstehen, ist es wichtig, die Grundlagen von VSS selbst zu kennen. Auf den TechNet- und MSDN-Websites sowie im Blog des Windows Server Core-Teams finden Sie hervorragende Informationen hierzu: “Ask the Core Team”. In diesem Blogbeitrag werden die Grundlagen für VSS von meinem geschätzten Kollegen Randy Monteleone bestens zusammengefasst und Links (die hier wiederholt werden) zu einigen guten TechNet-Grundlagen für VSS bereitgestellt:

How To: VSS Tracing – Randy Monteleone
https://blogs.technet.com/b/askcore/archive/2012/04/29/how-to-vss-tracing.aspx

How Volume Shadow Copy Service Works
https://technet.microsoft.com/en-us/library/cc785914(WS.10).aspx

Volume Shadow Copy Service
https://technet.microsoft.com/en-us/library/ee923636.aspx

Wenn Sie zumindest mit den Grundlagen von VSS vertraut sind, können Sie sich mit Teil 2 dieser Reihe befassen. Darin werden die Ereignisse, die bei einer VSS Exchange-Sicherung stattfinden, genauer betrachtet und untersucht, wie sie von Exchange im Anwendungsereignisprotokoll protokolliert werden.

Wenn Sie eine rasche Einführung oder eine Auffrischung der VSS-Grundlagen und von Exchange Writer benötigen, habe ich dies in Form eines visuellen Überblicks als Ergänzung zu den oben genannten Referenzen zusammengefasst.

Momentaufnahmen

Denken Sie daran, dass VSS-Lösungen für Exchange sowie für alle Anwendungen deutlich zwischen verschiedenen Hardware- und Softwarekonfigurationen variieren können. Es gibt duplizierte Momentaufnahmen (Klonmomentaufnahmen) sowie COW-Momentaufnahmen (Copy on Write, Kopieren beim Schreiben), Hardware- und Softwarelösungen, also eine Vielzahl von Technologien, die auf dem zugrunde liegenden VSS-Subsystem basieren. Zum besseren Verständnis von Exchange-Sicherungen wird hier nur ein bestimmter Lösungstyp von vielen veranschaulicht. Es folgt eine Beschreibung der sogenannten COW-Momentaufnahmen.

Bei einer auf COW-Momentaufnahmen basierten VSS-Sicherung von Exchange werden Momentaufnahmen der Datenträger dort erstellt, wo die Exchange-Daten gehostet werden. Unabhängig davon, was gesichert wird, selbst wenn es sich um eine einzelne Datenbankdatei und nur wenige Protokolle handelt. VSS erstellt eine Momentaufnahme des gesamten Datenträgers, auf dem Daten gespeichert sind. Wenn sich die Daten auf mehrere Datenträger erstrecken, z. B. wenn sich eine Exchange-Datenbank auf einem Datenträger und die Protokolle auf einem anderen befinden, erstellt VSS Momentaufnahmen von all diesen Datenträgern.

Was ist denn nun eine “Momentaufnahme”? Eine Volumemomentaufnahme ist ein Speicherbereich innerhalb eines sogenannten “Schattenspeichers”, der wiederum selbst in der Regel ein kleiner Speicherbereich auf dem Datenträger ist und sich im Ordner "System Volume Information" befindet.

Nach dem Erstellen einer Datenträgermomentaufnahme kann für Datenblöcke mit Änderungen, die nach diesem Zeitpunkt erfolgen, der Schreibvorgang erst dann ausgeführt werden, wenn eine Kopie der Daten dieses Blocks vor der Änderung (vor dem Erstellen der Momentaufnahme) in den Differenzierungsbereich des Schattenspeichers geschrieben wurde. Auf diese Weise bleiben die Daten auf dem Datenträger, zum Zeitpunkt der Momentaufnahme, blockweise im Schattenspeicherbereich erhalten. Die Momentaufnahmedaten stehen dann entweder auf dem Originaldatenträger (sofern sich die angeforderten Datenblöcke nicht geändert haben) oder im Differenzierungsbereich zur Verfügung (sofern sie sich geändert haben). Die Grundlagen hierfür sind nachfolgend dargestellt:

Datenträger E: Momentaufnahme erstellt um 13.00 Uhr:

Abbildung

Eine Minute später wird in einen der Blöcke geschrieben, doch zuerst werden die Daten in ihrem Zustand um 13.00 Uhr im Differenzierungsbereich gespeichert:

Abbildung

Bei der Änderung des Datenträgers werden die Daten im Zustand von 13.00 Uhr in den Schattenspeicher geschrieben, wodurch eine Aufzeichnung des Datenträgers zu diesem Zeitpunkt erhalten bleibt:

Abbildung

Nächster Schritt:

Abbildung

In der Abbildung oben fordert ein Backup-Server Daten von der Momentaufnahme der Blöcke 2 und 53 an. Block 53 von 13.00 Uhr ist in der Momentaufnahme gespeichert und wird somit direkt aus dem Schattenspeicher kopiert. Block 2 ist seit 13.00 Uhr unverändert und wird somit über den VSS-Treiber VOLSNAP.SYS kopiert, der mehr wie ein Filtertreiber unterhalb des Dateisystemtreibers NTFS.SYS fungiert. Durch das Arbeiten im IRP-Stapel (der Teil des Kernelspeichers, der die Datenträger-E/A verwaltet) unterhalb des Dateisystems können Datenblöcke gelesen werden, ohne dass NTFS einschreitet, da die Datei eventuell gerade verwendet wird. VOLSNAP.SYS ist auch dafür zuständig, dass Blöcke in den Schattenspeicher kopiert werden, wenn ein Schreibvorgang für sie angefordert wird; daher auch die Bezeichnung “Kopieren beim Schreiben (Copy On Write)”. Weitere Informationen über VOLSNAP.SYS liefert Tim McMichael:

Exchange / VSS / and differential block size…
https://blogs.technet.com/b/timmcmic/archive/2011/07/12/exchange-vss-and-differential-block-size.aspx

Nachdem wir nun die Grundlagen von COW-Momentaufnahmen besprochen haben, schauen wir, wie diese zusammen mit Exchange und einigen anderen wichtigen Konzepten umgesetzt werden:

Microsoft Exchange Writer

Wir wissen also, dass jeder Datenträger, auf dem Exchange-Daten gespeichert werden, eine Momentaufnahme der Daten von VSS erhält. Wie stellt eine Sicherungsanwendung nun genau fest, um welche Datenträger es sich handelt? Häufig werden Datenbanken von einem Administrator für die Sicherung ausgewählt, ohne dass angegeben wird, auf welchen Datenträgern die Datendateien gespeichert sind. Es fehlen also Informationen über die Position der Datendateien und somit darüber, von welchen Datenträgern VSS Momentaufnahmen erstellen soll. Mithilfe dieser Informationen wird der Sicherungsanwendung, auch als VSS-Requestor bezeichnet, mitgeteilt, welche spezifischen Datendateien aus den Momentaufnahmen kopiert und in den Sicherungsmedien aufbewahrt werden sollen, da ja nicht der gesamte Inhalt des Datenträgers kopiert werden muss.

Die hierbei verwendete Technologie ist Microsoft Exchange VSS Writer. Wie bei jedem VSS-Writer einer beliebigen Anwendung (führen Sie VSSADMIN LIST WRITERS aus, um zu sehen, dass es sehr viele davon gibt) besteht die erste Aufgabe darin, der Sicherungsanwendung Informationen über die Daten bereitzustellen, die für die Sicherung notwendig sind, wie vor allem die EDB-Datei, Protokolle und Prüfpunktdatei für jede angeforderte Datenbank. Die Informationen über diese spezifischen Exchange-Datendateien werden als Writer-Metadaten bezeichnet.

Abbildung

(für Version in voller Größe auf Miniaturansicht klicken)

In der Abbildung oben sind die ersten Schritte einer Exchange-Sicherung zu sehen. Exchange Writer teilt dem Backup-Server (Requestor) mit, dass sich eine Datenbank in einem Ordner auf Volume E: befindet und dass sich Transaktionsprotokolle für diese Datenbank in einem Ordner auf D: befinden. Auf der Grundlage dieser Informationen fordert die Sicherungsanwendung Momentaufnahmen der Volumes D: und E: im weiteren Verlauf des Auftrags an.

Exchange VSS Writer hat eine weitere wichtige Aufgabe neben der Bereitstellung von Metadaten für VSS-Requestors. Darüber hinaus sorgt Exchange VSS Writer dafür, dass Schreibvorgänge in die Datenbanken und Protokolle auf Datenträgern beendet oder “gesperrt” werden, während die erforderlichen Momentaufnahmen erstellt werden. Das Erstellen einer COW-Momentaufnahme dauert in der Regel nur kurze Zeit, da dabei zunächst nur ein Bereich im Schattenspeicher festgelegt wird, in dem Blöcke gespeichert werden, falls diese auf dem eigentlichen Datenträger geändert werden. Dieser relativ kurze Vorgang kann dennoch bis zu einer Minute dauern, was ziemlich viel Zeit für die Änderung von Datenblöcken zwischen dem Start und dem Ende des Erstellungsvorgangs der Momentaufnahme ist. Wenn Datenblöcke geändert werden, die Originaldatenblöcke vom genauen Zeitpunkt des Erstellens der Momentaufnahme jedoch fehlen, kann es zu Inkonsistenzen zwischen diesen Blöcken und anderen Daten der Momentaufnahme kommen, vor allem zwischen Protokollen, Datenbank- und Prüfpunktdateien. Exchange Writer verhindert also, dass der Informationsspeicherdienst oder der Microsoft Exchange-Replikationsdienst den RAM-Inhalt in die gesperrten Datenbankdateien schreibt. Was den Informationsspeicherdienst anbetrifft, wird die aktuelle Transaktionsprotokolldatei (Exx.log) abgearbeitet und gesperrt, ehe Exchange Writer zulässt, dass VSS die Momentaufnahme erstellt. So wird sichergestellt, dass keine Änderungen an den Dateidaten zwischen dem Beginn und dem Ende der Momentaufnahme vorgenommen werden; erst dann wird “die Sperre aufgehoben”. Mit dem Aufheben der Sperre der Datenbanken können im RAM angehaltene E/A-Schreibvorgänge wieder an den Datenträger weitergeleitet werden.

Hier erhalten Sie weitere Informationen über die Interaktion des VSS-Writers einer Anwendung mit VSS im Hinblick auf das Sperren, Aufheben von Sperren und den Zeitraum bis zum Ende einer Momentaufnahme:

CVssWriter::OnFreeze (Methode)
https://msdn.microsoft.com/en-us/library/windows/desktop/aa381563(v=vs.85).aspx

Die letzte wichtige Aufgabe von Exchange Writer besteht darin, den Informationsspeicherdienst (den Microsoft Exchange-Replikationsdienst im Falle der Sicherung einer passiven Kopie) über das Ende des Sicherungsvorgangs zu informieren und Aufgaben auszuführen, die nach dem Sichern anfallen, wie die Protokollabschneidung, wodurch die Datenbank als ohne laufende Sicherung gekennzeichnet wird usw.

In den Teilen zwei und drei dieser Reihe werden die oben genannten Elemente im Detail untersucht und das Zusammenspiel dieser Elemente in einer Exchange-Sicherung und die generierten Anwendungsprotokollereignisse beschrieben und der Vorgang für eine bereitgestellte Datenbank mit dem für eine passive Datenbankkopie verglichen.

Mein Dank für die Mitarbeit an diesen Blogbeiträgen geht an Michael Blanton, Tim McMichael, Randy Monteleone, Dave Vespa und Tom Kern.

Jesse Tedoff

Es handelt sich hierbei um einen übersetzten Blogbeitrag. Sie finden den Originalartikel unter Everything You Need to Know About Exchange Backups* - Part 1