Funktionsweise Volume Shadow Copy Service (VSS)
Gilt für: Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 SP1/SP2
Der Volume Shadow Copy Service bietet eine Möglichkeit zur Sicherung der Microsoft Windows XP / Vista / 7 und Microsoft Windows Server 2003 Betriebssysteme, sowie einen Mechanismus für die Erstellung Konsistenter Zeitpunktkopien von Daten, bekannt als Snapshots.
Der Volume Shadow Copy Service kann in Zusammenarbeit mit Applikationen, Dateisystem-Diensten, Backup-Lösungen und Storage Hardware, konsistente Snapshots erzeugen. Einige Funktionen in Windows Server 2003 Betriebssystemen verwenden den Volume Shadow Copy Service, für das Backup.
Methoden für die Erstellung von Schattenkopien
Es gibt zwei Methoden für die Erstellung von Schattenkopien: Entweder die Erstellung eines Klons (Vollsicherung) oder nur die Sicherung der Änderungen an Daten (differentielle Kopie). Es wird mit Hilfe von VSS eine Schattenkopie erstellt, die nur lesbar ist, um die Konsistenz der Daten zu gewährleisten.
Klon (Vollsicherung / Split Mirror):
Ein Klon ist eine Vollsicherung der Daten eines Volumes. Klone können entweder durch Software- oder Hardware-Spiegelung erstellt werden. Klone werden solange synchronisiert bis die Spiegel-Verbindung zur Schattenkopie unterbrochen wird. Ab diesem Zeitpunkt sind die Quelldaten und die Schattenkopie unabhängig voneinander. Das ursprüngliche Volume übernimmt jetzt wieder die Änderungen durch Applikationen, während die Schattenkopie eine konsistente, exakte und nur lesbare Kopie der Quell-Daten ist. Hardware Hersteller bieten verschiedene Implementationen (manchmal auch Split Mirror, Snapshot Mirror oder Klone genannt) für die Erstellung identischer Kopien von Volumes, die für ein online Backup verwendet werden können.
Copy-on-Write (Differentielle Kopie):
Die Copy-on-Write Methode erstellt Schattenkopien, die eher differentielle Kopien, als Vollsicherungen der Daten sind. So wie die Klon Methode, kann auch die Copy-on-Write Methode, Schattenkopien mit Hilfe von Software oder Hardware-Lösungen durchführen. Diese Methode erstellt eine Kopie der Daten, bevor diese mit neuen Änderungen überschrieben werden. Wenn eine Änderung im ursprünglichen Volmue entsteht und diese auf die Festplatte geschrieben werden soll, wird zunächst der Block, der geändert werden soll, gelesen und in eine „differences area“ geschrieben, die eine Kopie des Datenblocks enthält. Anschließend werden mit den Änderungen die ursprünglichen Daten überschrieben.
Der Vorteil der Copy-on-Write Methode ist, dass es sehr schnell Schattenkopien erstellen kann, da nur Kopien von Änderungen erstellt werden. Der Nachteil dieser Methode ist, dass die ursprünglichen Daten für eine Wiederherstellung notwendig sind. Ohne den ursprünglichen Daten ist die Schattenkopie unvollständig und somit auch unbrauchbar. Ein weiterer Nachteil ist, dass die Performance des Quell-Volumes beeinträchtigt werden kann.
Volume Shadow Copy Service Architektur
Die folgende Abbildung und Tabelle beschreiben, wie der Volume Shadow Copy Service mit den verschiedenen Komponenten koordiniert, um eine Schattenkopie eines Volumes zu erstellen.

VSS Komponenten:
| Komponente | Beschreibung |
| Volume Shadow Copy Service | Ein Dienst, der die Zusammenarbeit zwischen den verschiedenen Komponenten und konsistente Schattenkopien von Volumes ermöglicht. |
| Requestor | Eine Applikation, die Anfragen zum Erstellen einer Schattenkopie stellt. Dies ist z. B. ein Backup-Client. |
| Writer | Eine Komponente einer Applikation, die Informationen für die Schattenkopie Synchronisation bereitstellt. |
| Provider | Eine Komponente, die Schattenkopien erstellt und verwaltet. Beispiele sind der System Provider, der im Betriebssystem mit integriert ist und die Hardware Provider bei Storage Arrays. |
| Qell Volume | Das Volume, das die Daten enthält, von denen eine Schattenkopie erstellt wird. |
| Storage Volume | Das Volume, das Schattenkopien für den System Copy-on-Write Software Provider enthält. |
Komponenten, die für die Erstellung einer Schattenkopie verwendet werden
Dieser Abschnitt beschreibt die Requestors, Writers und Providers, die für die Erstellung einer konsistenten Schattenkopie notwendig sind. Der Volume Shadow Copy Service ermöglicht die Koordination zwischen diesen Komponenten.
Requestors: Initiierung einer Schattenkopie Erstellung
Der Volume Shadow Copy Service wird vom Requestor initiiert, der typischerweise ein Backup-Client ist. Dieser erstellt Schattenkopien eines Volumes, um Daten zu sichern, während das Quell Volume weiterhin produktiv einsetzbar ist. Requestors können aber auch Applikationen sein, die die Erstellung und Verwaltung der Schattenkopien übernehmen, um eine schnelle Wiederherstellung einer Applikation zu ermöglichen.
Der Requestor übernimmt ebenfalls die Kommunikation mit den Writern, um Informationen zu sammeln, welche Daten und wie diese gesichert werden sollen.
Writers: Verhindern von Dateninkonsistenzen
Writer sind Programme, die in Applikationen integriert sind und Dienste, die bei der Erstellung konsistenter Schattenkopien helfen. Writer dienen zwei Hauptzwecken:
- Wenn Anwendungen und Diense laufen, antwortet der Writer auf durch den Volume Shadow Copy Service gestellten Anfragen, um Anwendungen zu erlauben, sich vorzubereiten und ein Anhalten der Datenbanken durchzuführen, um die Erstellung der Schattenkopie zu ermöglichen und sicherzustellen, dass keine Schreibzugriffe stattfinden, während die Schattenkopie erstellt wird. (Während der Stilllegung der Datenbanken, stellen die Applikationen sicher, dass die Daten auf der Festplatte konsistent sind. Beispielsweise wir der Cache / Arbeitsspeicher geleert und die Daten auf die Festplatte geschrieben.)
- Der Writer stellt ebenfalls Informationen über den Applikationsnamen, Icons, Dateien, die auszuschließen bzw. einzubeziehen sind und eine Strategie zur Wiederherstellung der Dateien.
Wenn ein Dienst oder eine Applikation nicht läuft und der Writer der anfragenden Backup-Applikation nicht antworten kann, wird angenommen, dass alle Daten auf dem Volume konsistent sind und somit auch die Datenbanken geschlossen sind. Somit wird auch angenommen, dass kein zusätzlicher Aufwand für die Sicherung notwendig ist.
Ein Writer ist einer oder mehreren Komponenten zugeordnet. Eine Komponente ist eine Gruppe von Dateien die als eine Einheit gesichert werden müssen. Beispielsweise eine Datenbank und die dazugehörigen Log Dateien. Damit eine Sicherung erfolgreich durchgeführt werden kann, müssen alle Dateien, die der Komponente zugeordnet sind gesichert werden. Writer stellen auch Informationen zur Wiederherstellung dieser Komponenten zur Verfügung.
Wenn eine Applikation keinen Writer besitzt, wird eine Sicherung aller Daten, egal welcher Form durchgeführt. Das bedeutet auch, dass in der Schattenkopie inkonsistente Daten enthalten sein können. Solche Inkonsistenzen können durch gecachete Daten einer Applikation, die nicht auf der Festplatte vorhanden sind oder durch geöffnete Dateien, die sich gerade in einem Schreibprozess befinden, entstehen. Auch wenn das Dateisystem den Cache vor der Erstellung einer Schattenkopie leert, kann nicht gewährleistet werden, dass die Daten konsistent sind. Es müssen alle Transaktionen von der jeweiligen Applikation abgeschlossen und auf die Festplatte geschrieben werden.
Durch diese Vorgehensweise wird die Verantwortung für Datenkonsistenz nicht von der Requestor Applikation, sondern von der zu sichernden Applikation gewährleistet. Der Vorteil dieses Ansatzes ist, dass Entwickler (diese wissen am besten über die Funktionsweise ihrer Applikation Bescheid) die meiste Erfolgswirksamkeit sicherstellen können, indem diese ihre eigenen Writer entwickeln.
Provider: Erstellung von Schattenkopien
In Zusammenhang mit Schattenkopien ist ein Provider eine Komponente die eine Schnittstelle für die Zeitpunktkopie Erstellung zur Verfügung stellt, entweder auf dem Storage Array (Hardware basierend) oder im Betriebssystem (Software basierend). Provider verwalten laufende Volumes und Erstellen auf Anforderung Schattenkopien. Als Reaktion auf eine Anfrage vom Requestor, signalisiert der Volume Shadow Copy Service die Applikation, die gesichert werden soll und signalisiert daraufhin den Provider für die Erstellung und Verwaltung dieser Schattenkopie, solange diese gebraucht wird. Hardware Provider sind als eine Komponente implementiert, die mit der Hardware kommuniziert und die Schattenkopien zur Verfügung stellt. Windows Server 2003 beinhaltet eine System Software Provider mit Schattenkopien Funktionalität.
Der Volume Shadow Copy Service verwendet folgende Hierarchie, um dem Provider während der Schattenkopie Erstellung zu ermitteln.
- Hardware Provider
- Software Provider
- System Software Provider
Wenn jedoch ein spezifisches IT Problem dies verlangt, kann der Requestor diese Hierarchie überschreiben.
Hardware basierte Provider
Hardware basierte Provider agieren als Schnittstelle zwischen dem Volume Shadow Copy Service und dem Hardware Level, indem sie in Verbindung mit Hardware Storage Adaptern oder Controllern zusammenarbeiten. Die Aufgabe eine Schattenkopie zu erstellen, wird von einem Host Adapter, Storage Appliance oder RAID Controller außerhalb des Betriebssystems durchgeführt.
Hardware Provider erstellen immer eine Schattenkopie für eine komplette LUN, aber der Volume Shadow Copy Service extrahiert nur die Schattenkopie des Volumes die auch angefragt wurde.
Software basierte Provider
Software basierte Schattenkopie Provider unterbrechen und verarbeiten I/O Anfragen im Software Layer zwischen dem Dateisystem und der Volume Manager Software.
Diese Provider sind als DLL Komponenten und insgesamt einem kernel-mode Geräte Treiber (normalerweise Storage Filter Treiber) implementiert.
Ein Software basierter Schattenkopie Provider muss die „Zeitpunkt“-Ansicht eines Volumes verwalten. Ein Beispiel dafür ist die Copy-on-Write Methode des System Providers. Der Volume Shadow Copy Service setzt aber keine Einschränkungen, welche Methode die Software basierten Provider verwenden, um Schattenkopien zu erstellen und zu verwalten.
Diese Implementation opfert die Performance, die durch Hardware basierte Schattenkopien zur Verfügung stehen könnte und nimmt keinen Gebrauch von Herstellerspezifischen Funktionen.
System Provider
Ein Schattenkopie Provider, der System Provider, wird als Bestandteil des Windows Server 2003 Betriebssystems ausgeliefert. Andere Hersteller können jedoch ihre eigenen Implementationen ausliefern, die für ihre Hardware Storage und Software Applikationen optimiert sind.
Um die „Zeitpunkt“-Ansicht eines Volumes in einer Schattenkopie zu verwalten, benutzt der System Provider die Copy-on-Write Technologie. Kopien der Blöcke auf dem Volume in der Schattenkopie die seit Erstellung dieser nicht verändert wurden, werden in einer Shadow Copy Storage Area (Storage Volume) gespeichert.
Die Shadow Copy Storage Area muss sich auf eine NTFS Volume befinden. Das kopierte Volume muss jedoch nicht mit NTFS formatiert sein.
Wie werden Schattenkopien erstellt
Die verschiedenen Rollen der Requestor, Writer und Provider werden in diesem Abschnitt zusammengeführt. Es wird aufgelistet, welche Schritte notwendig sind, um eine Schattenkopie zu erstellen. Im Großen und Ganzen wird die Koordination des Requestors, Writer und Provider vom Volume Shadow Copy Service kontrolliert. Dies wir in der folgenden Abbildung grafisch dargestellt.
Schattenkopie Erstellungsprozess

- Der Requestor macht beim Volume Shadow Copy Service eine Anfrage, die Writer zu zählen, Metadaten der Writer zu sammeln und Vorbereitungen für die Schattenkopie Erstellung zu treffen.
- Der Writer erstellt für den Volume Shadow Copy Service eine XML Beschreibung der Backup Komponenten und definiert die Wiederherstellungsmethode. Der Volume Shadow Copy Service beauftragt den Applikations-Spezifischen Writer mit der Vorbereitung der Daten für eine Schattenkopie.
- Der Writer bereitet die Daten in der entsprechenden Weise vor, indem z. B. alle Transaktionen abgeschlossen werden, die Transaction Logs abgeschnitten werden oder der Cache geleert wird. Wenn die Daten vorbereitet sind, benachrichtigt der Writer den Volume Shadow Copy Service.
- Der Volume Shadow Copy Service initiiert die Durchführungsphase.
- Der Volume Shadow Copy Service teilt dem Writer mit, die Daten stillzulegen und temporär die Anfragenden I/O Schreibzugriffe für wenige Sekunden, während der Erstellung der Schattenkopie, einzufrieren (I/O Lesezugriffe sind weiterhin möglich). Das Einfrieren der Applikation darf nicht länger als 60 Sekunden dauern. Der Volume Shadow Copy Service leert den Dateisystem Puffer und friert das Dateisystem ebenfalls ein, um sicherzustellen, dass die Metadaten und die eigentlichen Daten in einem konsistenten Zustand gesichert werden.
- Der Volume Shadow Copy Service teilt dem Provider mit, eine Schattenkopie zu erstellen (maximal 10 Sekunden lang).
- Der Volume Shadow Copy Service hebt die Einfrierung des Dateisystems auf. Nachdem die Schattenkopie erstellt wurde, werden die Schreibprozesse wieder fortgesetzt und alle anstehenden Schreibprozesse durchgeführt.
- Der Volume Shadow Copy Service erfragt bei dem Writer, ob die Schreibzugriffe während der Erstellung der Schattenkopie erfolgreich angehalten wurden.
- Wenn dies nicht der Fall war (und die Daten somit inkonsistent sein könnten), wird die Schattenkopie gelöscht und der Requestor benachrichtigt.
- Der Requestor kann den Vorgang wiederholen (zurück zu Schritt 1) oder den Administrator benachrichtigen und dies zu einem späteren Zeitpunkt wiederholen.
- Wenn die Kopie erfolgreich erstellt wurde, teilt der Volume Shadow Copy Service dem Requestor den Speicherort der Schattenkopie mit.
















