Vor einigen Wochen berichtete Heise von einem Datenverlust bei Cloudanbieter Hetzner. Durch einen Defekt sind etliche Snapshots verloren gegangen. Im Anschluss gab es im Social-Web direkt viele gutgemeinte Hinweise darauf, dass Snapshots auch keine Backups sind. In diesem Blogartikel geht es um die Frage: was sind Snapshots eigentlich und wann sollte man Snapshots nutzen sollte, und wann ist ein Backup sinnvoller?
Was sind Snapshots?
An sich sind Snapshots ist eine großartige Sache. Wenn man einen Snapshot erstellt, ist das wie bei einem Foto. Man hält einen Zustand fest. Während sich das System immer weiter verändert, bleibt der Snapshot unverändert. Gehen jetzt Daten aus deinem aktiven System oder gleich die komplette Instanz verloren, kann man das System aus dem Snapshots wieder herstellen, bzw. auf den Zustand des Snapshots wiederherstellen.
Aufpassen muss man beim Snapshotten, dass das System in einem integren Zustand sind. So müssen Datenbanken und andere Anwendungen ggf. in einen passenden Zustand versetzt werden. Das passt zum Backup, der Vorteil des Snapshots ist, dass er signifikant schneller ist als ein Backup, aber Snapshots werden erst zu Backups, wenn man die Snapshots auch gebackupt, also wenigstens auf ein System außerhalb der eigenen Instanz gesichert hat. Die Schnelligkeit, mit der Snapshot erstellt werden kann, resultiert aus dem Umstand, dass dieser auf der gleichen Storage liegt, wie die Ursprungsdaten.
Wann empfiehlt es sich mit einem Snapshots zu arbeiten?
Der Klassiker ist wohl das Update oder Upgrade von OS oder Software. Geht da was schief, kann man schnell zum Snapshots zurückrudern. Eine weitere Möglichkeit, sowas einzusetzen, ist die Herstellung einer DEV Umgebung. Da nimmt man den Snapshot als Ausgangspunkt für die Entwicklung.
Ist ein Snaphot auch eine gute Idee, um eine Instanz zu sichern, um Sie irgendwann später wieder zu nutzen, vielleicht auch mehrfach?
Bei dem Szenario geht es um Kunden, der einen Server mit z.B. WordPress vorbereiten und später für jeden Endkunden daraus eine neue Instanz startet möchten.
Als vorbereitende Handlung ist das eine gute Idee. Der Admin kann aus dem Snapshot ein Image machen und dann daraus ein "frisches" System starten. Natürlich muss man das Image noch etwas vorbereiten, zum cloud-init vorbereiten, die lokale Config leermachen, neue Hostkeys erstellen etc....). Solche Images eignen sich zum Beispiel als Vorlage für Cluster Nodes oder ähnliches.
Übrigens, im Horizon Dashboards unseres virtuellen Rechenzentrums heißen die Snapshots Schattenkopien. In unserer Knowledgebase haben wir erklärt, wie man mit Images Instanzen zu einer erneuten späteren Verwendung speichern und dann so stoppen kann, dass Sie keine vCores oder RAM-Ressourcen mehr belegen.