Übersicht über Snapshots

Auf dieser Seite wird beschrieben, was ein Snapshot ist, wie er funktioniert und welche Einschränkungen gelten. und Best Practices.

Informationen zur Verwendung von Snapshots finden Sie in den folgenden Anleitungen:

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äten bis die Daten auf der Instanz geändert wurden. Alle Snapshots einer Instanz teilen sich gemeinsame Daten, d. h., die Instanz behält nur die Unterschiede zwischen den Snapshots bei.

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 Dateien Attribute wie atime und ownership sowie Lese- und Schreibberechtigungen sind beibehalten werden.

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 darf zusammen bis zu 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:

  • Bereitstellungsoption sync verwenden oder Dateien öffnen mit dem 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 Befehle READDIR oder READDIRPLUS und auch nicht im Bash-Befehl ls -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 angezeigt.

Dateien löschen, die in einem Snapshot aufgenommen wurden

Wenn eine Datei in einem Snapshot erfasst wird, wird der freie Speicherplatz durch das Löschen nicht erhöht. Speicherplatz auf Ihrer Instanz.

Snapshot-Status wiederherstellen

Das Zurücksetzen einer Instanz auf einen Snapshot-Status ist allgemein verfügbar. für zonale, hochskalierte SSD, und Unternehmensinstanzen.

Wenn eine Instanz auf den in einem Snapshot erfassten Zustand zurückgesetzt wird, werden alle neuen Daten seit Erstellung des Ziel-Snapshots gelöscht und kann nicht mehr wiederhergestellt. Nach dem Ziel-Snapshot erstellte Snapshots werden ebenfalls gelöscht durch das Wiederherstellen.

Featurebeschränkungen

  • Die Funktion zum Wiederherstellen eines Snapshots ist ein irreversibler Vorgang, durch den Daten aus des Live-Dateisystems und löschen jeden nachfolgenden, neueren Snapshot im Kette hinzufügen. Daher ist das Risiko eines versehentlichen Datenverlusts höher. Dies ist sich im Vergleich zur Wiederherstellung aus einer Sicherung stark verhalten, wo die Sicherung nach der Verwendung in ihrem aktuellen Zustand verbleibt, sodass Sie versucht, Daten aus mehreren Sicherungen wiederherzustellen, um die beste zu finden. Zurückkehren mit Bedacht vor.

  • Alle Daten, die nach dem Erstellen des Ziel-Snapshots geschrieben wurden, werden gelöscht am Anfang des Wiederherstellungsprozesses und kann nicht wiederhergestellt werden. Alle Snapshots die neuer als der Ziel-Snapshot sind, werden ebenfalls gelöscht. Beispiel: snapshot1, snapshot2 und snapshot3 werden sequenziell erstellt. Wird zurückgesetzt Wenn die Instanz den in snapshot2 erfassten Status ändert, bedeutet dies, dass alle in nach snapshot2 sowie alle Snapshots, die nach dem Erstellen von snapshot2, werden beim Wiederherstellen gelöscht.

    Die Bereinigung dieser gelöschten Daten kann zwischen sechs Stunden und zehn Tagen dauern. Instanz Kapazität und Leistung können in dieser Zeit beeinträchtigt werden.

  • Wenn Sie eine Instanz auf einen Snapshot-Status zurücksetzen, wird die NFS-Dateisystem-ID (fsid) aktualisiert. Versuche für den Zugriff auf Clients, die vorhandene Bereitstellungen verwenden, werden Fehler mit veralteten Dateien zurückgeben. Heben Sie als Best Practice vor dem Zurücksetzen alle Clients von der Instanz auf. und stellen Sie sie anschließend wieder bereit.

  • Das Zurücksetzen kann bis zu zwei Minuten dauern.

    • Alle mit dem Wiederherstellungsvorgang verbundenen Bereinigungen, z. B. Löschen nachfolgenden Snapshots in der Kette erstellt werden, kann es zwischen sechs Stunden und zehn Tagen dauern, und zwar je nach Anzahl der Dateien.
    • Sie können andere Vorgänge ausführen, während der Vorgang zum Zurücksetzen ausgeführt wird und während Bereinigung wird abgeschlossen.
    • Sie müssen warten, bis der Wiederherstellungsvorgang abgeschlossen ist, bevor Sie einen weiteren starten können Vorgang rückgängig machen.
  • Snapshots und die zugehörigen revert-Vorgänge sind für die meisten Dienste verfügbar Ebenen. Snapshots sind auf der Basis-SSD und HDD-Dienststufen.

  • Nur Instanzen mit einer einzelnen Freigabe können auf einen Snapshot-Status zurückgesetzt werden.

  • Snapshots werden in der Dienststufe Enterprise unterstützt, sie können nicht mit der Dateispeicher-Mehrfachfreigabe kombiniert werden. .

Nächste Schritte