Auf dieser Seite wird beschrieben, was ein Snapshot ist und wie er funktioniert. Außerdem werden Einschränkungen und Best Practices erläutert.
Informationen zur Verwendung von Snapshots finden Sie in den folgenden Anleitungen:
- Status von Daten mit Snapshots beibehalten
- Datei aus einem Snapshot wiederherstellen
- Dateifreigabe auf einen vorherigen Snapshot zurücksetzen
- Filestore-Snapshots planen
Was ist ein Snapshot?
Ein Filestore-Snapshot ist der beibehaltene Status Ihrer Dateifreigabedaten zum Zeitpunkt der Erstellung des Snapshots. Die Instanz behält den Status von Dateien bei, die nach dem Erstellen des Snapshots geändert werden. Wenn Sie eine Datei im beibehaltenen Status im Snapshot wiederherstellen möchten, können Sie die aktuelle Datei mit der Datei aus dem entsprechenden Snapshot-Verzeichnis überschreiben.
Snapshots werden in der Filestore-Instanz gespeichert und sind untergeordnete Ressourcen der Instanz. Sie replizieren keine Daten und verbrauchen keine Kapazität, bis die Daten auf der Instanz geändert werden. Alle Snapshots einer Instanz teilen sich gemeinsame Daten, d. h., die Instanz behält nur die Unterschiede zwischen den Snapshots bei.
Snapshots sind im Vergleich zu anderen Filestore-Datenwiederherstellungsvorgängen zwar kostengünstig, die verfügbare Instanzkapazität nimmt jedoch mit jeder Änderung an Dateien ab.
Unterstützte Stufen
In der folgenden Tabelle sehen Sie, welche Filestore-Dienststufen Snapshots und den Vorgang revert instance
unterstützen:
Stufe | Snapshot erstellen | Instanz zurücksetzen |
---|---|---|
Basic HDD | Nein | Nein |
Basic SSD | Nein | Nein |
Zonal | Ja | Ja |
Regional | Ja | Ja |
Unternehmen | Ja | Ja |
Snapshots und zugehörige revert
-Vorgänge werden auch in der zuvor verfügbaren Dienststufe für hochskalierte SSDs unterstützt.
Snapshots werden zwar in der Enterprise-Dienststufe unterstützt, können aber nicht mit der Funktion Filestore Multishares kombiniert werden.
Snapshot-Erstellung
Jedes Verzeichnis einer Dateifreigabe enthält ein ausgeblendetes .snapshot
-Verzeichnis. Jedes .snapshot
-Verzeichnis enthält die Snapshots des übergeordneten Verzeichnisses, das Sie erstellen. Beispiel:
volume1/
│ genomics-file.txt
│
└───.snapshot
│
├───snap1/
│ genomics-file.txt
│
├───snap2/
│ genomics-file.txt
│
└───snap3/
genomics-file.txt
Die Snapshots enthalten eine schreibgeschützte Ansicht aller Dateien und Unterverzeichnisse, die zum Zeitpunkt der Snapshot-Erstellung im übergeordneten Verzeichnis vorhanden sind. Alle Dateiattribute wie atime
, ownership
und Lese- und Schreibberechtigungen bleiben erhalten.
Das Erstellen von Snapshots dauert in der Regel nicht länger als zwei Minuten, da es kein Kopieren der Daten umfasst und die Instanzleistung nicht beeinträchtigt wird.
Es können bis zu 240 Snapshots pro Instanz vorhanden sein. Der Name der Dateifreigabe und der Snapshot-Name dürfen zusammen maximal 78 Zeichen lang sein.
Snapshot-Konsistenz
Filestore-Snapshots haben eine NFSv3-Konsistenzsemantik. Bevor ein Snapshot initiiert wird, ist jeder Schreibvorgang, der von der Filestore-Instanz als in den stabilen Speicher geschrieben anerkannt wird oder dem ein bestätigter COMMIT
folgt, im Snapshot enthalten. Weitere Informationen finden Sie unter NFSv3 RFC-1813 Abschnitt 3.3.7.
Dateifreigabe für optimale Snapshot-Konsistenz vorbereiten
Die Qualität eines Snapshots hängt davon ab, ob Ihre Anwendung Daten aus Snapshots wiederherstellen kann, die während hoher Schreibarbeitslasten erstellt wurden. In den meisten Fällen können Sie Snapshots mit guter Konsistenz erstellen, selbst wenn Ihre Anwendungen Daten in die Dateifreigabe schreiben. Wenn Ihre Anwendungen jedoch strikte Konsistenz erfordern, sollten Sie einen oder mehrere der folgenden Schritte ausführen:
- Verwenden Sie die Bereitstellungsoption sync oder öffnen Sie Dateien mit
O_DIRECT|O_SYNC
. Beide Methoden verbessern die Konsistenz, garantieren sie aber nicht. - Halten Sie Anwendungen oder Betriebssystemprozesse an, die Daten in die Dateifreigabe schreiben, und bewirken Sie, dass diese Änderungen in der Dateifreigabe geleert werden, bevor der Snapshot initiiert wird. Weitere Informationen finden Sie unter fsync(2).
- Wenn Ihre Anwendungen Konsistenz zwischen mehreren Dateifreigaben erfordern, pausieren Sie alle Anwendungen auf allen Instanzen, die in alle Dateifreigaben schreiben, und erstellen Sie Snapshots für alle Dateifreigaben, bevor Sie die Anwendungen fortsetzen.
- Wenn Sie Konsistenz auf Anwendungsebene benötigen, beenden Sie Ihre Anwendungen und heben Sie die Bereitstellung der Dateifreigabe auf, bevor Sie einen Snapshot erstellen.
NFS-Semantik des .snapshot
-Verzeichnisses
Die .snapshot
-Verzeichnisse sind spezielle versteckte Verzeichnisse, die die Snapshots des übergeordneten Verzeichnisses enthalten. Alle NFS- und Bash-Befehle funktionieren für diese Verzeichnisse mit folgenden Ausnahmen:
- Sie können keine Datei und kein Verzeichnis mit dem Namen
.snapshot
erstellen, da er für Snapshots reserviert ist. - Das Verzeichnis
.snapshot
wird nicht in den Ausgaben der BefehleREADDIR
oderREADDIRPLUS
und auch nicht im Bash-Befehlls -a
aufgeführt. - Wenn Sie in ein
.snapshot
-Verzeichnis wechseln möchten, müssen Sie den String.snapshot
explizit eingeben. Beispiel:cd somedir/.snapshot/
- Bei der automatischen Vervollständigung von Shell-Befehlen wird
.snapshot
nicht als Option aufgelistet.
Dateien löschen, die in einem Snapshot enthalten sind
Wenn eine Datei in einem Snapshot erfasst wird, wird durch das Löschen der Datei nicht der freie Speicherplatz auf Ihrer Instanz erhöht.
Auf einen Snapshot-Status zurücksetzen
Das Zurücksetzen einer Instanz auf den Snapshot-Status ist nur für zonale, regionale und Enterprise-Instanzen allgemein verfügbar.
Wenn eine Instanz auf den im Snapshot erfassten Zustand zurückgesetzt wird, werden alle neuen Daten, die seit der Erstellung des Ziel-Snapshots geschrieben wurden, gelöscht und können nicht wiederhergestellt werden. Snapshots, die nach dem Ziel-Snapshot erstellt wurden, werden durch den Revert-Vorgang ebenfalls gelöscht.
Featurebeschränkungen
Das Zurücksetzen eines Snapshots ist ein irreversibler Vorgang, bei dem Daten aus dem Live-Dateisystem und alle nachfolgenden, neueren Snapshots in der Kette gelöscht werden. Daher besteht ein höheres Risiko für versehentlichen Datenverlust. Das ist ein erheblich anderes Verhalten als bei der Wiederherstellung aus einer Sicherung. Dort bleibt die Sicherung nach der Verwendung im aktuellen Zustand, sodass Sie versuchen können, aus mehreren Sicherungen wiederherzustellen, um die beste zu finden. Verwenden Sie die Funktion zum Rückgängigmachen mit Bedacht.
Alle Daten, die nach der Erstellung des Ziel-Snapshots geschrieben wurden, werden zu Beginn des Revert-Vorgangs gelöscht und können nicht wiederhergestellt werden. Alle Snapshots, die neuer als der Ziel-Snapshot sind, werden ebenfalls gelöscht. Beispiel:
snapshot1
,snapshot2
undsnapshot3
werden nacheinander erstellt. Wenn Sie die Instanz auf den insnapshot2
erfassten Zustand zurücksetzen, werden alle Daten, die nachsnapshot2
geschrieben wurden, sowie alle Snapshots, die nach der Erstellung vonsnapshot2
erstellt wurden, gelöscht.Das Bereinigen dieser gelöschten Daten kann zwischen sechs Stunden und zehn Tagen dauern. Die Kapazität und Leistung der Instanz können in dieser Zeit beeinträchtigt sein.
Wenn Sie eine Instanz auf einen Snapshot-Status zurücksetzen, wird die NFS-Dateisystem-ID (fsid) aktualisiert. Bei Versuchen, über vorhandene Mounts auf Clients zuzugreifen, werden Fehler aufgrund veralteter Dateihandles zurückgegeben. Es empfiehlt sich, alle Clients von der Instanz zu trennen, bevor Sie die Rückgängigmachung durchführen, und sie nach Abschluss wieder anzuhängen.
Ein Zurücksetzen kann bis zu zwei Minuten dauern.
- Alle mit dem Zurücksetzen verbundenen Bereinigungen, z. B. das Löschen nachfolgender Snapshots in der Kette, können je nach Anzahl der beteiligten Dateien zwischen sechs Stunden und zehn Tagen dauern.
- Sie können andere Vorgänge ausführen, während der Wiederherstellungsvorgang läuft und die Bereinigung abgeschlossen wird.
- Sie müssen warten, bis der Vorgang zum Rückgängigmachen abgeschlossen ist, bevor Sie einen weiteren Vorgang zum Rückgängigmachen starten.
Snapshots und die zugehörigen
revert
-Vorgänge sind für die meisten Service-Levels verfügbar. Snapshots sind in den Dienststufen „Basic SSD“ und „Basic HDD“ nicht verfügbar.Nur Instanzen mit einer einzelnen Freigabe können in einen Snapshot-Status zurückgesetzt werden.
Snapshots werden zwar in der Enterprise-Dienststufe unterstützt, können aber nicht mit der Funktion Filestore Multishares kombiniert werden.