Windows 2003 Schattenkopien (VSS)

Mit Windows 2003 ist die Funktion "Schattenkopien" (Volume Shadow Service = VSS) verfügbar, aber

  • Wie funktioniert das mit den Windows 2003 Schattenkopien ?

  • Kopiert Windows dabei die Dateien auf der Festplatte herum

  • Wie viel  Platz brauchen Schattenkopien ?

  • Wie lange hebt Windows die Kopien auf ?

  • Wozu kann ich die Schattenkopien einsetzen ?

Wir arbeiten die Fragen schrittweise ab, indem wir zuerst die Funktionsweise erklären. Die folgende Erklärung ist aber stark vereinfacht und soll mehr das Prinzip aufzeigen als technisch korrekt sein.

Verwechseln Sie bitte die Schattenkopien nicht mit einem richtigen Backup und der Möglichkeit eines Imagebackup.

Die Grundlagen

Sie kennen Festplatten und wissen, dass Sie diese als Hardware-RAID zusammenschalten können. Windows 2003 sieht davon jedoch eine logische Festplatte. Mit dem Festplattenmanager legen Sie auf diesen logischen Festplatten Volumes an, die aus einer oder mehreren Partitionen auf diesen Festplatten bestehen. Die Volumes sind der Fokus für Schattenkopien. Populistisch ausgedrückt hat ein Volume einen "Laufwerksbuchstaben" und ist mit NTFS formatiert. Was aber steckt in so einem Volume? Die Struktur können Sie sich vereinfacht so vorstellen, dass es ein Inhaltsverzeichnis (MFT) gibt mit Verweisen auf die Informationen in den Datenblöcken. Alle belegten Blöcke werden in einer weiteren Struktur (File allocation Table) notiert. Damit weiß das System immer, welche Blöcke frei und belegt sind. Im Muster wird eine Festplatte mit 20 Blöcken angenommen, von denen einige belegt (BLAU) und der Rest sind frei (Weiß) sind.

Block 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20
Belegung A B C     D E   F G H I                

Auf dieser Stand wird nun eine Schattenkopie ausgeführt. Dadurch reserviert Windows einen Bereich (z.B. 100 MBtye) auf der Festplatte.

Block 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20
Belegung A B C     D E   F G H I                

Nach der Schattenkopie werden die weiteren Zugriffe weiterhin auf das produktive Dateisystem durchgeführt. Wird nun eine Datei auf diese Festplatte beschrieben, dann werden dadurch natürlich auch bestehende Blöcke geändert, Neue angelegt und frei gemacht. Besonders die Blöcke, in dem das Inhaltsverzeichnis selbst steht, werden geändert.

Windows überwacht dies und wenn ein Block seit der letzten Schattenkopie geändert werden wird, muss die Information vor dem überschreiben gesichert werden. Die Blöcke (A, B, D) werden dazu in den reservierten Bereich gelegt. (Geänderter Block ist GRÜN)

Block 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20
Belegung A2 B2 C     D2 E   F G H I       A B D    

Wann immer Windows einen bestehenden Block überschreiben möchte, wird die alte Information in den reservierten Pool kopiert. Das produktive Volume enthält immer die korrekten Daten. Nur der Explorer, NTBACKUP und entsprechende Anwendungen können über eine gesonderte API auf die Dateien zugreifen, wie diese im Moment des Schnappschuss ausgesehen haben.

Aufgrund dieser Arbeitsweise ist das Anlegen der Schattenkopie relativ schnell erfolgt. Allerdings bedeuten Änderungen an Daten, dass die betreffenden Blöcke dann erst einmal wegkopiert werden müssen. Der Schreibzugriff wird beim ersten Zugriff auf einen Block erst mal gebremst, bis die vorherigen Daten weggesichert wurden. Allerdings ist auch gut zu erkennen, dass der rote reservierte Bereich natürlich beschränkt ist. Sobald dieser Bereich aufgeschöpft ist, beginnt Windows damit, die Bereiche der ältesten Schattenkopie zu verwerfen. Die Anzahl der verfügbaren Schattenkopien ist daher direkt abhängig von der Größe des Reservebereichs und die Menge der Blockveränderungen in einer Zeiteinheit.

Ein ähnliches Verfahren nutz z.B. auf der "Open File Manager (OFM)" von St Bernard, der als OEM-Version auch mit verschiedenen Sicherungsprogrammen verkauft wird.

Konsistenz der Daten

Kritisch für die Konsistenz der Schattenkopie ist die  Methode, anhand derer Windows den Zeitpunkt bestimmt, wann der Schnappschuss erstellt wird. Es kann durchaus sein, dass eine Schreiboperation in einer Datei oder Datenbank mehrere Blöcke verändert. Würde die Schattenkopie dann genau dazwischen erfolgen, würde die Schattenkopie unbrauchbare Daten enthalten. Daher muss VSS sicherstellen, dass keine offenen Transaktionen durchgeführt werden.

Dazu helfen dem VSS entsprechende Module, über die VSS die Schreibprozesse über eine anstehende Schattenkopie informieren kann. So können SQL, Exchange, der SystemState und andere ihre Transaktionen beenden und dem Schattenkopiedienst Bescheid geben. Einige Anwendungen (wie z.B. Exchange 2003) unterstützen Schattenkopien sogar als legitimes Backup. Dazu später mehr. Anwendungen wie Access hingegen sind hierfür nicht vorbereitet, so dass eine Schattenkopie einer Access-Datenbank im laufenden Betrieb problematisch sein könnte. Viele Desktopdatenbanken bieten zudem keine Transaktionsprotokollierung und sind auch so nur bedingt geeignet.

Die Schattenkopien sind immer "schreibgeschützt". Sie können also nicht verändert werden.

Platzbedarf

Bleibt noch die Frage, wie viel Platz diese Schattenkopien benötigen. Anhand der Funktionsweise ist relativ einfach zu erkennen, dass die erste Schattenkopie erst einmal 100 Megabyte belegt. Und für die drei Aktionen auf einem Dateisystem gilt:

  • Datei gelöscht
    Der betreffende Block mit den Informationen wird erst mal nicht verändert und daher auch nicht kopiert. Allerdings wird der Block in dem der Verzeichniseintrag geändert wird, eventuell als Kopie in den reservierten Platz gesichert.

  • Datei geändert.
    Alle Informationen, die überschrieben würden,  müssen auf einem neuen Platz gespeichert werden. Diese "COPY"-Aktion benötigt natürlich etwas Zeit.

  • Datei wird neu angelegt
    Ein neuer Eintrag im Inhaltsverzeichnis verweist auf die früher freien Blöcke mit dem Inhalt. Eine eventuelle Änderung im Inhaltsverzeichnis kann eine COPY-Aktion des Blocks mit dieser Information verursachen.

Die Fragen nach dem Platzbedarf einer Schattenkopie ist daher nicht richtig gestellt. Genauer müssten Sie den Platzbedarf der Änderungen nach der Schattenkopie ermitteln. Alle Änderungen von Blöcken am Live-System müssen als Kopie im reservierten Platz gesichert werden.

Gefährlich ist daher nicht die Schattenkopie selbst, sondern die verzögerte Freigabe der Datenbereiche. Aus diesem Grund können Sie bei der Schattenkopie auch eine Obergrenze einstellen, wie viel Platz durch alte Daten maximal belegt werden dürfen. Wird diese Grenze erreicht, wird die älteste Schattenkopie entfernt. Windows 2003 löscht quasi die Kopie des früheren Inhaltsverzeichnisses und gibt die Blöcke frei, die von keiner anderen Schattenkopie oder dem Live-System referenziert werden.

Aktivierung auf dem Server

Die Aktivierung der Schattenkopien erfolgt je Volume auf dem Windows 2003 Server. Unter den Eigenschaften der logischen Festplatte müssen Sie die Schattenkopien erst aktivieren.

In den Eigenschaften können Sie auch festlegen, wie viel Platz auf der Festplatte für die alten Instanzen vorgehalten werden soll und ob Windows auch automatisch zu bestimmten Zeiten und Intervallen eine Schattenkopie anlegen soll.

Nutzung vom Client

Der Zugriff auf die "vorherigen Versionen" erfolgt sichtbar über ein verbundenes Netzwerklaufwerk. Hierbei können Sie die "vorherigen Versionen" sich anzeigen lassen und die älteren Dateien bei Bedarf auf einen neuen Ort speichern. Dieser Vorgang Entspricht einfach dem Kopieren von einem Laufwerk auf das andere, wobei die Quelle einfach der nur lesende Zugriff auf die Schattenkopie darstellt.

Alternativ kann auch eine Schattenkopie "Wiederhergestellt" werden. Dies ersetzt das bestehende "Live-System" durch die Schattenkopie. Dabei werden alle Änderungen seit dieser Schattenkopie vernichtet! Dies ist für den normalen Dateiserver nicht sinnvoll, aber es gibt auch hierfür Einsatzbereiche.

Damit diese Optionen verfügbar sind, müssen Sie auf Windows 98, SE, 2000 erst den Shadow Copy Client installieren, welchen Sie downloaden können. Windows NT4 oder Windows ME ist nicht unterstützt.

VSS und Versionen

Die Schattenkopien erlauben Ihnen daher einfach ohne zusätzliche Kosten auf frühere Versionen einer Datei zugreifen. Allerdings sollte Sie genau den Begriff "Version" verstehen. Die Versionen der Schattenkopien sind nach der Zeit und nicht nach Änderungen erfolgt. Dies bedeutet, dass mehrere Änderungen einer Datei nicht unbedingt auch wieder über die Schattenkopien wieder herstellbar sind. Dies ist nur der Fall, wenn nach jeder Änderung zufällig auch eine Schattenkopie erfolgt ist. Eine "Versionierung" von Dateien ist mit Schattenkopien daher nicht möglich. Hierzu sind andere Methoden (z.B. Sharepoint Team Services) besser geeignet.

VSS und Backup und Undelete

Die Schattenkopie ist aber nicht nur eine Möglichkeit eine ältere Version schnell wieder zu erhalten, sondern sie ersparen sich dadurch auch sicher den ein oder anderen Einsatz einer Wiederherstellung vom Bandlaufwerk. Allerdings nur, wenn Sie ihre Schattenkopien "sinnvoll" planen. Hierbei sind zwei Zeitpläne interessant:

  • Mehrfach am Tag
    Normalerweise sichern Sie in der Nacht ihre Server. Dies bedeutet, dass eine Datei, die unter Tage verändert oder gelöscht wird, nur mit einem Stand des letzten Backups wieder hergestellt werden kann. Hier können Schattenkopien einfache Zwischenversionen sicherstellen.

  • Mehrere Tage
    Interessant kann es aber auch sein, über mehrere Tage Schattenkopien aufzubewahren. Festplattenplatz ist relativ "günstig" im Vergleich zu Bandlaufzeit und der Arbeitszeit, ältere Dateien wieder zurück zu holen

Aber verwechseln Sie eine Schattenkopie nicht mit einem Backup. Sie müssen trotzdem ihren Server regelmäßig sichern, denn Schattenkopien erlauben nur den Zugriff auf ältere Versionen der Informationen, die aber auf der gleichen Festplatten abgelegt werden. Bei einem Ausfall der Festplatte sind auch alle Schattenkopien verloren

VSS, NTBACKUP und offene Dateien

Ein großes Problem bei Sicherungen sind offene Dateien. Durch die Schattenkopien wird diese Problem umgangen, wenn die Sicherungssoftware nicht das produktive Dateisystem, sondern die Schattenkopie sichert. Genau das macht NTBACKUP von Windows 2003. Sobald Sie eine Sicherung mit NTBACKUP starten, wird eine Schattenkopie angelegt und diese gesichert. Allerdings bedeutet diese Sicherung nur bedingt einen Erfolg für bestimmte Daten. Die Schattenkopien versuchen einen Zeitpunkt zu finden, an dem keine offenen Transaktionen ausstehen. Dies erspart aber nicht die korrekte Sicherung von Datenbank wie Exchange und SQL-Server.

Einen weiteren Nebeneffekt der Schattenkopien ist eine "zeitgenaue" Sicherung. Bislang dauert eine Bandsicherung in der Regel mehrere Stunden. Unschön hierbei ist, dass einige Dateien eben früher gesichert werden und andere später. Nicht alle Dateien sind damit vom "gleichen Zeitpunkt".  Wenn Sie z.B. um 22:00 Uhr eine Sicherung starten und diese um 02:00 Uhr abgeschlossen ist, dann können auch Daten während der Laufzeit geändert werden. Insofern können Sie auch nie sagen, Sie holen eine Datei von der 22:00Uhr-Sicherung zurück, sondern eine Ungenauigkeit bleibt.

VSS und SAN

Nun stellt sich die Frage, ob das alle Einsatzbereiche der Schattenkopien sind. Und gerade im Enterprise Umfeld kommt den Schattenkopien eine weitere Funktion hinzu. Hierbei werden häufig die Daten auf einem zentralen Festplattenspeicher (Storage Array Network, SAN) abgelegt von von den Servern über Fiberchannel angesprochen. Diese Massenspeicher erlauben auch im laufenden Betrieb die Kopie einer logischen Festplatte. (EMC nennt dies Business Continuous Volumes, BCV. IBM bezeichnet dies als FlashCopy etc) Das Problem dieser Kopien ist, dass die Speichereinheit oft nicht genau ermitteln kann, ob alle Schreibbefehle schon erfolgt sind oder noch "unterwegs" in einem Cache stecken.

Durch die Schattenkopien kann das Betriebsystem quasi eine Kopie des Dateisystems zu einem bestimmten Zeitpunkt einfrieren. Die Inhalte dieser Daten werden danach nicht mehr geändert. Bei einer "Kopie" der Festplatte ist es nicht mehr so wichtig, ob das Livesystem wirklich konsistent ist, denn auf der Kopie wird einfach die letzte Schattenkopie "wiederhergestellt", die kurz vor dem Spiegeln ausgeführt wurde.

Hinzu kommt eine Funktionalität "Shadow Copy Transport" mit der eine Schattenkopie auch komplett auf ein anderes Volume kopiert werden kann. Bei geeigneter Unterstützung durch die SAN-Herstellern (EMC, HP, etc) kann auch diese Arbeit vom Server auf das Speichersubsystem verlagert werden.

VSS und chkdisk

Da eine Schattenkopie quasi eine "eigene logische Datenstruktur" darstellt, können Sie unter Windows 2003 auch mit VRFYDSK.EXE eine Schattenkopie mit "Checkdisk" bearbeiten. Dabei wird eine Schattenkopie angelegt und diese mit CHKDISK überprüft. Zwar können Fehler nicht repariert werden, aber schon die echte Kontrolle der Struktur im laufenden Betrieb kann als Regeltätigkeit die Verfügbarkeit verbessern, da Sie Fehler feststellen können ohne das Volume "offline" nehmen zu müssen.

VSS und Exchange

Exchange 2003 bringt ebenfalls eine Unterstützung für die Schattenkopien mit. Dazu bindet sich Exchange 2003 in das VSS System ein, und kann über diesen Weg angewiesen werden, die Schreibzugriffe während der Anfertigung einer Schattenkopie einzustellen und über den Weg eine konsistente Kopie der Datenbank zu ermöglichen. Denken Sie aber immer daran, dass dabei keine "echte" Kopie angelegt wird, sondern nur der aktuelle Stand des Dateisystems eingefroren wird und neue Änderungen nicht die bestehenden Blöcke verändern. Die Datenbank ist aber in diesem Fall "trotzdem" inkonsistent. Sie entspricht quasi einem System, welches im Betrieb "kopiert" wurde. Die Datenbank ist inkonsistent (Dirty Shutdown) und kann auch nur mit den Protokolldateien wieder konsistent gebracht werden.

Die Software, welche die Schattenkopie anfordert, muss zuerst die Liste der "Provider" erfragen und dann nicht nur das Dateisystem, sondern auch Exchange über den Start eine Schattenkopie informieren. Exchange friert dann den Store ein und wartet bis die Sicherung wieder eine Freigabe erteilt. Nach der Freigabe sollte die Sicherungsanwendung auch ein "Backup erfolgreich" melden. Erst dann erlaubt Exchange, dass der Store beendet werden kann und schneidet zusätzlich die Protokolldateien ab.

Insofern ist die Anfertigung einer Schattenkopie vergleichbar zu einem Online Backup mit Sicherung der Datenbank und Transaktionsprotokollen. Allerdings muss nach der Schattenkopie der "Schatten" natürlich noch wirklich auf ein Band oder anderweitig gesichert werden.

Bei einer Wiederherstellung werden übrigens die Informationsspeicher beendet und nach der Einspielung der alten Daten wieder gestartet. Eine Mischung von VSS-Sicherungen mit bisherigen Online-Sicherungen ist nicht möglich.

Die Funktion von Exchange finden Sie auch im Eventlog wieder

VSS und Scripting

Grafische Oberflächen sind zwar sehr einfach zu bedienen, aber für Administratoren ist die Kommandozeile und die Skriptsteuerung notwendig. Auch dies ist mit VSS möglich. Zum einen gibt es das Hilfsprogramm "VSSADMIN.EXE", mit dem einige Aktionen durchgeführt werden.

Eine komplette Steuerung ist z.B.: über VBScript möglich. Entsprechende Beispiele finden sich im Script Center der TechNet. Exemplarisch legt ein kleines Skript eine Schattenkopie an.

Const VOLUME="C:\"
Const CONTEXT = "ClientAccessible"
strComputer="."
Set objWMIService=GetObject("winmgmts:\\"&strComputer&"\root\cimv2")
Set objShadowStorage=objWMIService.Get("Win32_ShadowCopy")
errResult=objShadowStorage.Create(VOLUME, CONTEXT, strShadowID)

Ein weiteres Programm ist "VOLREST", mit dem von einer Kommandozeile ältere Dateien wieder hergestellt werden können. Sehr nützlich ist aber auch "vshadow.exe", welches Bestandteil des VSS-SDK ist. Hier bietet das Blog von Adi Oltean einen sehr guten Einstieg.

Besonders interessant ist die Möglichkeit, seit Windows 2003 einer Schattenkopie auch einen Laufwerkbuchstaben zuzuweisen und damit auch per Script ohne Nutzung des Explorers auf die Inhalte der Schattenkopien zuzugreifen.

Performance Monitoring

Damit die Volume Shadow Performance Counter ausgelesen werden können, müssen diese zuerst installiert werden. Dies erfolgt mit

Volperf.exe /install

Erst dann können über Perfmon auch die Anzahl der Schattenkopien und der benötigte Platz ausgelesen werden.

Wo liegen die VSS-Informationen

Nach all den Beschreibungen zur Funktion und dem Einsatz werden Sie sich frage, wo das Dateisystem diese Schattenkopieinformationen ablegt. Diese Informationen liegen wirklich als "Datei" mit im Dateisystem in dem speziellen Ordner  "System Volume Information", der auf jeder NTFS-Partition automatisch angelegt wird.

Normalerweise hat in diesen Ordner nur "SYSTEM" Berechtigungen. Wenn Sie daher dort hinein schauen wollen, müssen Sie sich erst als Administrator die Berechtigungen geben. Zur Sicherheit sollten Sie sich maximal "Lese"-Rechte geben und diese danach wieder entfernen.

Weitere Links