Storage-Technologie: Gute und schlechte Snapshots

München, Starnberg, 25. März 2021 - Alternativen zu Copy-on-write- und Redirect-on-write Snaps; eine Standortbestimmung mit Hinweisen des Speicherspezialisten Infinidat...

Zum Hintergrund: Auch für dieses Jahr ist wieder von einem deutlichen Anstieg an Malware-Attacken auszugehen. Ein Grund mehr für Unternehmen, ihre Backup- und Recovery-Strategie zu überprüfen. In der Storage-Welt spielt die Snapshot-Technologie dabei eine nicht zu unterschätzende Rolle. Zu oft wird ihr allerdings von Seiten der IT-Abteilung zu wenig Aufmerksamkeit geschenkt. Für viele handelt es sich nur um einen weiteren Punkt auf ihrer Anforderungsliste für Speichersysteme. Dabei gibt es wichtige Unterschiede bei den derzeit am häufigsten verwendeten Snapshot-Technologien.

Laut Expertenmeinung gibt es "gute und schlechte" Snapshots. Danach sind schlechte Snapshots „copy-on-write“; gute Snapshots hingegen sind „redirect-on-write“. Wo der Unterschied liegt und ob es Alternativen dazu gibt, finden Sie in dem folgenden Beitrag mit Hinweisen von Infinidat:

1. Beim copy-on-write-Verfahren werden alle Blöcke, die geschützt werden sollen, kopiert, bevor sie mit neuen Informationen überschrieben werden. Mit anderen Worten: Wenn ein Block eines Volumes geändert werden soll, kopiert das System diesen Block in einen separaten Snapshot-Bereich, bevor er mit den neuen Informationen überschrieben wird. Dieser Ansatz erfordert drei Input/Output-Operationen für jeden Snapshot: einen Lese- und zwei Schreibvorgänge.

2. Beim redirect-on-write-Verfahren hingegen nutzt das Storage-System „Pointer“, um Volumes zu repräsentieren. Wenn ein Block geändert werden muss, leitet das Speichersystem lediglich den Pointer für diesen Block auf einen anderen Block um und schreibt die Daten dorthin. Das Snapshot-System weiß, wo sich alle Blöcke befinden, die einen bestimmten Snapshot umfassen; mit anderen Worten, es hat eine Liste von Pointern und kennt die Position der Blöcke, auf die sich diese Zeiger beziehen. Redirect-on-write gilt als das bessere Verfahren, weil es nur ein Drittel der I/O-Operationen des copy-on-write-Verfahrens benötigt. Copy-on-Write-Prozesse haben daher einen größeren Einfluss auf die Leistung des Systems.

Tatsächlich haben nach Ansicht von Infinidat beide Methoden einen negativen Einfluss auf die Performance des Speichersystems. Das liegt daran, dass Datei- und Speichersysteme ein "seltsames" Verhalten an den Tag legen, wenn man eine große Anzahl von Snapshots oder Snapshots in hoher Geschwindigkeit erstellt. Das ist ein wichtiger Grund, warum Datenblätter für Speicherprodukte, selbst solche mit mehreren Petabyte Kapazität, strikte Grenzen für diese Kapazität angeben. Will der Anwender auch nur wenig über dieses Limit hinausgehen, muss er sich ein zusätzliches System kaufen.

Das Problem ist das Lock-Management im Cache

Um einen Snapshot zu erstellen, müssen bestimmte Datenstrukturen im Speicher für die Dauer des Snapshots gesperrt sein. Ohne diese Sperrung käme es zu einer Datenkorruption. Um dies zu vermeiden, verbringen moderne Speichersysteme eine signifikante Zeit unproduktiv, d.h. ohne irgendwelche I/O-Operationen auszuführen. Je größer die Datenmengen werden und-/oder so schneller Snapshots erzeugt werden, desto mehr macht sich dieser Leistungsverlust bemerkbar und Unternehmen sind womöglich gezwungen, sich ein weiteres Storage-System zuzulegen.

Neue Wege

Es gilt somit eine Alternative zu copy-on-write- und redirect-on-write-Verfahren zu finden, welche die Storage-Systemleistung nicht beeinträchtigt. Der Grundgedanke eines solchen Verfahrens ist recht einfach, wenn auch die technische Umsetzung nicht trivial ist. Erforderlich ist ein virtueller Anwender-Adress-Raum (VUA: Virtual User Address), in dem mehrere Adressen auf dieselben physischen Daten verweisen können. Einen Snapshot zu erstellen wird somit zu einer Metadaten-Operation. Es erfordert lediglich, einen Pointer im VUA-Raum zu erstellen. Es handelt sich um eine Operation, die keine Zeit erfordert und bei der keine Daten kopiert werden. Beidiesem Vorgehen werden auch keine Metadaten gesperrt, wenn ein Snapshot erstellt wird.

Wenn man ohne Sperrung von Daten auskommen will, muss man eine andere Möglichkeit finden, um Datenintegrität zu gewährleisten. Eine solche Möglichkeit bieten Zeitstempel („Timestamps“). Wenn man für jeden Schreibvorgang im System, beispielsweise für jeweils 64 KB an geschriebenen Daten, einen Zeitstempel erzeugt, lässt sich jeder Schreibvorgang eindeutig einem Snapshot zuordnen, basierend auf dem Zeitstempel, wann der Snapshot erstellt wurde, und dem Zeitstempel aller anstehenden I/Os. Er gehört eindeutig entweder zum Snapshot oder nicht. So wird Schreib- und Datenintegrität über Snapshots hinweg gewährleistet, ohne dass die Metadaten in irgendeiner Form gesperrt werden. Das Snapshot-Objekt selbst erhält ebenfalls einen Zeitstempel.

Bei dem geschilderten Vorgehen haben Snapshots keinerlei Auswirkungen auf die Performance eines Speichersystems. Das bedeutet auch, dass die Anzahl der möglichen Snapshots praktisch kein fixes Limit hat. Die Anzahl der von einer IT-Abteilung gewünschten oder geforderten Snapshots wird das System nie an seine Grenzen bringen. Da es sich um einen instanten Prozess handelt, der keine Zeit erfordert, gilt das Gleiche für die Snapshot-Geschwindigkeit. Auch hier setzt das System den Erfordernissen der IT-Abteilung keine Grenzen mehr.


Abb. 1: Data Protection Services, Snapshots (Bildquelle: WHITE PAPER, INFINIDAT Storage Architecture)

Nach Angaben von Hans Hallitzky, Sales Manager DACH bei INFINIDAT, wurden mit der Lösung seines Unternehmens Systeme mit 100.000 Snapshots und mit 25 Snapshots pro Sekunde getestet. In keinem Falle kam es danach zu Leistungseinbußen. Diese Angaben sind lediglich die getesteten Werte. Bei Bedarf lassen sie sich mit dem geschilderten Verfahren sicherlich noch steigern. Auf Basis dieser Snapshot-Methode lässt sich laut Infinidat auch ein sehr effizientes Replikationsverfahren realisieren. Beim Spiegeln eines Volumes lässt sich alle n-Sekunden ein Snapshot nehmen. Der entsprechende Log wird dann an das Slave-System übertragen und sobald die Übertragung bestätigt wurde, wird der vorangegangene Snapshot gelöscht. Als Ergebnis kann ein Unternehmen ein Speichersystem mit 100.000 wie auch immer replizierten Volumes erhalten, oder ein großes Volume, das buchstäblich das gesamte Array repliziert. Dabei lässt sich ein Wiederherstellungspunkt-Ziel (RPO: Recovery Point Objective) von vier Sekunden gewährleisten.

Ein Fazit: Unternehmen sollten die Performance ihrer Speichersysteme im Allgemeinen und die der verwendeten Snapshot-Methode im Besonderen vor allem unter finanziellen Gesichtspunkten betrachten. Die verwendete Snapshot-Methode stellt bei den meisten Speichersystemen ein fixes Limit ihrer Nutzbarkeit dar und führt nicht selten dazu, das Unternehmen ein zusätzliches System erwerben müssen, obwohl die pure Speicherkapazität des vorhandenen Systems noch lange nicht an seine Grenzen gelangt ist. Deshalb auch der abschließende Rat des Storage-Experten Hallitzky: "Augen auf beim Schnappschuss!“


Querverweise: