Best Practices für Snapshots nichtflüchtiger Speicher

Sie können jederzeit Snapshots von nichtflüchtigen Speichern erstellen, mithilfe folgender Best Practices gelingt es Ihnen jedoch schneller und zuverlässiger:

Hinweise

Vorbereitung auf konsistente Snapshots

In den meisten Fällen können Sie einen Snapshot von nichtflüchtigen Speichern erstellen. Selbst wenn Ihre Anwendungen Daten auf diese Laufwerke schreiben, können Sie dennoch eine gute Konsistenz des Snapshots erwarten. Die Qualität des Snapshots hängt von der Fähigkeit Ihrer Anwendungen ab, sich über Snapshots wiederherstellen zu lassen, die während hoher Schreibarbeitslasten erstellt wurden.

Wenn Ihre Anwendungen eine strenge Konsistenz erfordern, können Sie mithilfe zusätzlicher Schritte gewährleisten, dass ein Snapshot mit dem gewünschten Zustand des nichtflüchtigen Speichers übereinstimmt.

Zwischenspeicher des Laufwerks vor einem Snapshot leeren

Sie können einen Snapshot eines nichtflüchtigen Speichers auch erstellen, während Anwendungen Daten auf das Laufwerk schreiben. Allerdings können Sie die Snapshot-Konsistenz verbessern, wenn Sie die Zwischenspeicher des Laufwerks leeren und Ihr Dateisystem synchronisieren, bevor Sie einen Snapshot erstellen.

Pausieren Sie alle Anwendungen oder Prozesse des Betriebssystems, die Daten in den nichtflüchtigen Speicher schreiben. Bevor Sie den Snapshot erstellen, leeren Sie zuerst die Zwischenspeicher des Laufwerks.

So bereiten Sie den nichtflüchtigen Speicher für einen Snapshot vor:

  1. Stellen Sie eine SSH-Verbindung zur Instanz her.
  2. Leeren Sie die Anwendungsdaten auf das Laufwerk. MySQL bietet hierfür zum Beispiel die Anweisung FLUSH. Verwenden Sie das für Ihre Anwendung verfügbare Tool.
  3. Beenden Sie das Schreiben von Daten auf den nichtflüchtigen Speicher durch Anwendungen.
  4. Führen Sie sudo sync aus.

Wenn Sie diesen Schritt überspringen, werden nur Daten in den Snapshot einbezogen, die von der Anwendung erfolgreich auf das Laufwerk geleert wurden. Für die Anwendung stellt sich dies wie ein plötzlicher Stromausfall dar.

Dateisystem einfrieren und trennen

Sie können das Dateisystem auch einfrieren oder trennen, bevor Sie einen Snapshot erstellen. Dies ist die zuverlässigste Methode, um zu gewährleisten, dass die Zwischenspeicher des Laufwerks geleert sind. Sie ist jedoch nicht so praktisch wie das direkte Leeren der Zwischenspeicher des Laufwerks.

Trennen Sie den nichtflüchtigen Speicher vollständig, um sicherzustellen, dass während der Erstellung des Snapshots keine Daten in ihn geschrieben werden. In der Regel ist dies nicht nötig, verbessert aber die Konsistenz des Snapshots.

  1. Stellen Sie eine SSH-Verbindung zur Instanz her.
  2. Beenden Sie alle Anwendungen, die Daten aus dem nichtflüchtigen Speicher lesen oder in ihn schreiben.
  3. Frieren Sie entweder das Dateisystem ein oder trennen Sie es.

    1. Einfrieren: sudo fsfreeze -f [example-disk_location]
    2. Trennen: sudo umount [example-disk_location]

    Sie können die Dateien freigeben oder bereitstellen, wenn Sie den Snapshot erstellt haben.

    1. Freigeben: sudo fsfreeze -u [example-disk_location]
    2. Bereitstellen: sudo mount [example-disk_location mount_location]

Linux-Nutzer

Ist das Laufwerk mit einer Linux-Instanz verbunden, trennen Sie das Laufwerk von der Instanz. Stellen Sie dazu eine Verbindung zur Instanz her und verwenden Sie das Tool umount:

sudo umount /dev/disk/by-id/google-[DISK_NAME]

Dabei ist [DISK_NAME] der Name des nichtflüchtigen Speichers.

Windows-Nutzer

Ist das Laufwerk mit einer Windows-Instanz verbunden, trennen Sie das Laufwerk von der Instanz. Stellen Sie dazu eine Verbindung zur Instanz her und verwenden Sie das Disk Management-Tool:

Nichtflüchtigen Speicher wieder bereitstellen

Nachdem Sie einen Snapshot erstellt haben, müssen Sie den nichtflüchtigen Speicher wieder bereitstellen. Weitere Informationen finden Sie unter Nichtflüchtigen Speicher formatieren und bereitstellen.

Wenn Ihre Anwendungen Konsistenz zwischen mehreren nichtflüchtigen Speichern erfordern, müssen Sie alle Dateisysteme auf jedem Laufwerk einfrieren oder trennen und alle Snapshots für diese Laufwerke fertigstellen, bevor Sie die Anwendungen fortsetzen. Compute Engine garantiert keine Konsistenz zwischen Snapshots, die gleichzeitig auf mehreren nichtflüchtigen Speichern generiert werden.

Mit einem Journaling-Dateisystem wie ext4 reduzieren Sie das Risiko, dass Daten im Cache gespeichert werden, ohne tatsächlich in den nichtflüchtigen Speicher geschrieben zu werden.

Nichtflüchtige Speicher mit Windows Server-Instanzen

Mit VSS-Snapshots können Sie die Datenintegrität für nichtflüchtige Speicher bewahren, die an Windows Server-Instanzen angehängt sind.

Snapshots effizient regelmäßig erstellen

Mit Snapshots können Sie Ihre Daten effizient verwalten.

  • Erstellen Sie regelmäßig einen Snapshot Ihrer Daten, um bei einem unerwarteten Ausfall den Datenverlust zu minimieren.

  • Die Leistung kann verbessert werden, wenn Sie übermäßige Snapshot-Downloads vermeiden, indem Sie ein Image erstellen und es wiederverwenden.

  • Richten Sie Ihren Snapshot-Zeitplan so ein, dass die Snapshots außerhalb der Spitzenzeiten erstellt werden. Dies beschleunigt die Fertigstellung.

Image eines häufig verwendeten Snapshots erstellen

Wenn Sie innerhalb einer Zone einen Snapshot mehrfach verwenden, um einen nichtflüchtigen Speicher zu erstellen, können Sie Netzwerkkosten einsparen, indem Sie den Snapshot einmal verwenden und dann ein Image des Snapshots erstellen. Speichern Sie dieses Image und verwenden Sie es, um Ihr Laufwerk zu erstellen und eine VM-Instanz zu starten. Eine Anleitung hierzu finden Sie unter Benutzerdefiniertes Image erstellen.

Als Best Practice sollten Sie einmal pro Sekunde einen Snapshot des Laufwerks erstellen. Vermeiden Sie häufigere Snapshots. Am einfachsten lässt sich dies mit einem Snapshot-Zeitplan umsetzen.

Vorhandene Snapshots als Referenz für nachfolgende Snapshots nutzen

Bereits vorhandene Snapshots eines nichtflüchtigen Speichers werden vom System automatisch als Referenz für alle nachfolgenden Snapshots verwendet, die Sie von demselben Laufwerk erstellen.

  • Erstellen Sie einen neuen Snapshot eines nichtflüchtigen Speichers, bevor Sie den vorherigen Snapshot desselben nichtflüchtigen Speichers löschen. Das System kann den neuen Snapshot schneller erstellen, wenn es den vorherigen Snapshot als Referenz verwenden kann und nur die neuen oder geänderten Daten des nichtflüchtigen Speichers einbezieht.

  • Warten Sie, bis der neue Snapshot fertig ist, bevor Sie nachfolgende Snapshots desselben nichtflüchtigen Speichers erstellen. Wenn Sie gleichzeitig zwei Snapshots desselben nichtflüchtigen Speichers generieren, greifen beide auf dieselbe Referenz zu und der Aufwand verdoppelt sich. Wenn Sie die Fertigstellung des neuen Snapshots abwarten, wird jeder nachfolgende Snapshot schneller generiert, da nur die Daten einbezogen werden, die sich seit dem letzten Snapshot geändert haben.

Snapshots außerhalb der Spitzenzeiten planen

Wenn Sie regelmäßige Snapshots Ihres nichtflüchtigen Speichers planen, erstellen Sie sie möglichst außerhalb der Spitzenzeiten. So lässt sich die Zeit verkürzen, die ein Snapshot bis zur Fertigstellung in Anspruch nimmt.

  • Planen Sie automatisierte Snapshots im Laufe eines Werktags in der Zone, in der sich der nichtflüchtige Speicher befindet. Die meisten Snapshots werden in der Regel am Ende des Werktags erstellt.
  • Planen Sie automatisierte Snapshots eher am frühen Morgen als gleich um Mitternacht in der Zone, in der sich der nichtflüchtige Speicher befindet. Um Mitternacht werden in der Regel die meisten Snapshots erstellt.

Daten auf separaten nichtflüchtigen Speichern organisieren

Wenn Sie einen Snapshot eines nichtflüchtigen Speichers erstellen, werden alle auf dem Laufwerk gespeicherten Daten in den Snapshot aufgenommen. Größere Datenmengen führen zu größeren Snapshots, die mehr kosten und deren Erstellung länger dauert. Organisieren Sie Ihre Daten daher auf separaten nichtflüchtigen Speichern, damit jeweils nur die benötigten Daten in die Snapshots aufgenommen werden.

  • Speichern Sie kritische Daten auf einem sekundären nichtflüchtigen Speicher statt auf Ihrem Bootlaufwerk. Auf diese Weise können Sie einen Snapshot Ihrer Bootlaufwerke in größeren Zeitintervallen oder nur bei Bedarf erstellen.
  • Wenn Sie Snapshots von Ihren Bootlaufwerken erstellen, speichern Sie Swap-Partitionen, Auslagerungsdateien, Cachedateien und nicht kritische Logs auf einem separaten nichtflüchtigen Speicher. Diese Dateien und Partitionen ändern sich häufig und werden deshalb vom Snapshot-Prozess wahrscheinlich als geänderte Daten identifiziert, die in einen inkrementellen Snapshot einbezogen werden müssen.
  • Reduzieren Sie die Anzahl der zu erstellenden Snapshots, indem Sie ähnliche Daten auf einem einzigen nichtflüchtigen Speicher speichern. Halten Sie das Betriebssystem und flüchtige Daten getrennt von den Daten, die Sie in Snapshots aufnehmen möchten. Dabei müssen Sie Ihre kritischen Daten aber nicht auf mehrere nichtflüchtige Speicher verteilen, wie bei einem physischen Computer. Ein großer nichtflüchtiger Speicher kann dieselbe Leistung erreichen wie mehrere kleinere nichtflüchtige Speicher mit derselben Gesamtgröße.

Option discard aktivieren oder fstrim auf dem nichtflüchtigen Speicher ausführen

Wenn Sie bei Linux-Instanzen den nichtflüchtigen Speicher nicht mit der discard-Option formatiert und bereitgestellt haben, führen Sie auf der Instanz den Befehl fstrim aus, bevor Sie einen Snapshot erstellen. Durch den Befehl werden Blöcke entfernt, die das Dateisystem nicht länger benötigt, damit das System den Snapshot schneller und mit einer geringeren Größe erstellen kann. Informationen zum Konfigurieren der Option discard für nichtflüchtige Speicher finden Sie unter Nichtflüchtigen Speicher formatieren und bereitstellen.

Weitere Informationen

Hat Ihnen diese Seite weitergeholfen? Teilen Sie uns Ihr Feedback mit:

Feedback geben zu...

Compute Engine-Dokumentation