Eine erfolgreiche Backup-Strategie in der Praxis: Einblick in die WoltLab Cloud

Foto von Nana Smirnova auf Unsplash

In unserem ersten Artikel zur Technik der WoltLab Cloud haben wir beschrieben, wie wir uns die Eigenschaften des ZFS-Dateisystems zu Nutze machen, um einen Datenverlust als Folge technischer Probleme bestmöglich auszuschließen. Dennoch kann ZFS nicht gegen alle Probleme schützen: Manchmal hat man einfach Pech und alle Datenträger einer Redundanz-Gruppe fallen gleichzeitig aus. Auch gegen menschliche Fehler kann ZFS nicht schützen, etwa wenn ein Administrator irrtümlich das falsche Thema oder das falsche Benutzerkonto gelöscht hat. Sicherheitsabfragen vermeiden die meisten dieser Probleme, aber nicht immer ist man mit den Gedanken voll bei der Sache und schon ist der Schaden entstanden.

Um gegen solche Situationen zu schützen, müssen richtige Datensicherungen zum Einsatz kommen. Im Gegensatz zu der automatischen Spiegelung aller Daten in Echtzeit, werden an Datensicherungen andere Anforderungen gestellt, um gegen die zuvor beschriebenen Probleme gewappnet zu sein. Datensicherungen, die den Namen zu Recht tragen, müssen mehrere Kriterien erfüllen:

  • Unveränderlichkeit
    Eine einmal erstellte Datensicherung wird bis zu ihrer Löschung nicht verändert, da nur so garantiert werden kann, dass die Datensicherung einen konsistenten Zustand enthält und funktionsfähig ist.
  • Regelmäßigkeit
    Im Falle des Falles muss der Datenverlust planbar und auf die Anforderungen abgestimmt sein. Eine Datensicherung die nur unregelmäßig alle paar Wochen oder gar Monate angefertigt wird, bietet keinen Mehrwert.
  • Physische Trennung
    Eine Datensicherung auf dem gleichen Datenträger oder demselben Server erfüllt womöglich die Anforderung der Unveränderlichkeit und der Regelmäßigkeit, aber ist bei einem Ausfall im Zweifel ebenfalls verloren.
  • Explizite Versionierung
    Probleme werden oftmals erst mit Verzögerung entdeckt. Eine physisch getrennte Datensicherung, die täglich durch einen neuen Stand überschrieben wird, kann nach einem Wochenende bereits fehlerhafte Daten aus dem Live-System enthalten und ist damit nutzlos. Es muss eine explizite Versionierung mit einer Vorhaltezeit erfolgen, in der bestehende Sicherungen nicht gelöscht werden.

Neben den Anforderungen, die man für eine zuverlässige Wiederherstellung der Daten an die Datensicherung stellt, ergeben sich aus den geltenden Gesetzen und Vorschriften oder Verträgen aber noch weitere Anforderungen. So muss beispielsweise der Datenschutz gewährleistet sein. Daraus ergibt sich, dass Datensicherungen typischerweise in verschlüsselter Form abgelegt werden müssen und die Vorhaltezeit auf einen Zeitraum begrenzt sein muss, der eine Wiederherstellung im Falle von spät entdeckten Fehlern erlaubt, ohne, dass die Datensicherung effektiv zu einer Langzeitarchivierung bereits gelöschter Daten wird.

Auch sollte eine Wiederherstellung der Daten auf effiziente Weise möglich sein. Wenn die verwendete Sicherungsform keine effiziente Wiederherstellung erlaubt, dann kommt zu dem Verlust der Daten seit der letzten Sicherung auch die Ausfallzeit bis zur vollständigen Wiederherstellung der Sicherung. Ein Unternehmen könnte womöglich über längere Zeit nicht auf essentielle Firmendaten zugreifen und müsste dadurch Umsatzverluste in Kauf nehmen.

Datensicherungen in der WoltLab Cloud

Für Datensicherungen in der WoltLab Cloud setzen wir mit BorgBackup (kurz: Borg) auf eine bewährte Standardsoftware in der Industrie. Borg enthält standardmäßig bereits Funktionen zur Übertragung auf einen Backup-Server, Verschlüsselung und bequemen Versionierung der Datensicherungen. Auch sind erstellte Datensicherungen unveränderlich, eine Veränderung ist nur durch Erstellung einer veränderten mit anschließender Löschung der ursprünglichen Sicherung möglich.

Datensicherungen können mit Borg in komprimierter Form abgelegt werden: Dies reduziert den benötigten Speicherplatz auf dem Backup-Server und verbessert die Geschwindigkeit bei der Wiederherstellung der Daten. Durch die geringere Größe der Datensicherungen müssen im Falle der Wiederherstellung weniger Daten vom Backup-Server übertragen werden, sodass die Sicherung schneller zur Verfügung steht. In Summe erfüllt Borg alle notwendigen Anforderungen, die an den Sicherungsprozess selbst gestellt werden und ist als Standardprogramm gut getestet und zuverlässig. Als letzter Baustein für eine robuste Datensicherung fehlt nur noch die physische Trennung des Backup-Servers sowie die Sicherstellung der Regelmäßigkeit der Sicherungen.

Physische Trennung

Die mittels Borg auf den Anwendungsserver erstellten und lokal verschlüsselten Sicherungen werden auf dedizierte Backup-Server innerhalb desselben Rechenzentrums übertragen. Wie alle Server der WoltLab Cloud verwenden die Backup-Server ZFS als Dateisystem. Die verwendete ZFS-Konfiguration ist hierbei allerdings speziell auf die Anforderungen von Borg abgestimmt, um eine bestmögliche Performance zu gewährleisten und durch die Speicherung der Backups im selben Rechenzentrum ist die Wiederherstellung im Fehlerfalle schnell möglich.

Strikte Trennung von Schlüssel und verschlüsselten Daten

Für jeden Kunden wird ein separates Borg-Repository mit einem separaten Schlüssel verwendet und durch die Verschlüsselung der Sicherungen direkt auf den Anwendungsservern liegen die Backups auf dem Backup-Server immer verschlüsselt vor. Der Schlüssel zur Entschlüsselung der Daten wird dabei niemals auf den Backup-Server übertragen. Eine potentielle Kompromittierung des Backup-Servers erlaubt einem Angreifer also nicht an die unverschlüsselten Daten zu gelangen. Auch die Kompromittierung eines einzelnen Schlüssels hat keine Auswirkungen auf andere Kunden.

Umgekehrt schützen wir aber auch bereits bestehende Datensicherungen vor einer Kompromittierung der Anwendungsserver: Der Zugriff auf den passenden Backup-Server wird den Anwendungsservern über temporäre SSH-Zertifikate ermöglicht. Diese Zertifikate sind nur wenige Minuten gültig und beschränken den Zugriff darauf, für einen einzelnen Kunden eine neue Sicherung anzufertigen. Eine Löschung bestehender Daten oder der Zugriff auf das Borg-Repository eines anderen Kunden wird damit zuverlässig unterbunden. Sobald das SSH-Zertifikat abgelaufen ist, ist der Zugriff bis zum Zeitpunkt der nächsten Sicherung nicht mehr möglich.

Geografische Redundanz

Eine Speicherung auf dedizierten Servern innerhalb des gleichen Rechenzentrums schützt zwar vor technischen Problemen, die einen kompletten Server betreffen, kann aber nicht vor dem Totalverlust eines kompletten Rechenzentrums im Katastrophenfall, beispielsweise ein unerwartetes Hochwasser, schützen. Aus diesem Grund erstellen wir in einem zweiten Rechenzentrum Datensicherungen von den Datensicherungen.

Einmal in der Nacht werden alle Borg-Repositorys in ein zweites Rechenzentrum übertragen, das die Vorgaben des Bundesamt für Sicherheit in der Informationstechnik (BSI) für geo-redundante Rechenzentren erfüllt, beispielsweise eine räumliche Trennung von mehr als 200km zum primären Rechenzentrum und die Lage an einem anderen Hauptfluss. Die vorliegenden Daten werden über einen Snapshot persistiert, der für 7 Tage aufbewahrt wird und keine vorherigen Löschungen oder Änderungen zulässt. Auf diese Weise sind die Sicherungen im zweiten Rechenzentrum ebenfalls vor einer Kompromittierung des Backup-Servers geschützt.

Regelmäßigkeit

Unser im ersten Artikel bereits erwähnte „Manager“ behält den Überblick über den letzten Zeitpunkt der Sicherung jedes Kunden und leitet alle 19 bis 20 Stunden eine neue Sicherung ein. Dazu verbindet der Manager sich mit den Anwendungsservern und startet den Borg-basierten Prozess zur Erstellung einer neuen Sicherung. Im Rahmen dieses Prozesses erstellt der Manager ein neues temporäres SSH-Zertifikat, um dem Anwendungsserver den Zugriff auf den Backup-Server zu gestatten.

Zum Abschluss des Prozesses werden durch den Anwendungsserver alle Sicherungen als gelöscht markiert, die die maximale Vorhaltezeit überschritten haben. Die tatsächliche Freigabe des Speicherplatzes („Borg Compaction“) erfolgt in einem separaten Vorgang, um sicher zu stellen, dass der Anwendungsserver keinen Zugriff zur tatsächlichen Löschung von Sicherungen besitzt. Die Compaction kann direkt mit den verschlüsselten Daten arbeiten, sodass dieser Vorgang direkt durch die Backup-Server ohne Kenntnis des Schlüssels durchgeführt werden kann.

Die Sicherung erfolgt in einem zufälligen Abstand alle 19 und 20 Stunden, um die Backups aller Kunden gleichmäßig über Tag und Nacht zu verteilen, sodass Datensicherungen zu jedem Zeitpunkt schnell angefertigt werden können, anstatt dutzende Sicherungen gleichzeitig anzufertigen und den Prozess dadurch in die Länge zu ziehen.

Verifikation

Um sicherzustellen, dass die Datensicherungen auch wirklich angefertigt werden, lassen wir die Durchführung jeder einzelnen Sicherung loggen. Sollte der Manager einen Fehler bei der Erstellung bemerken, so werden wir umgehend informiert, um die Situation zu prüfen. Zusätzlich führen wir regelmäßig stichprobenartige Kontrollen durch, um sicherzustellen, dass nicht womöglich sowohl die Sicherung, als auch die Meldung des Fehlers einen Fehler enthält. Nur so können wir gewährleisten, dass wir nicht nur Datensicherungen haben, sondern, dass diese auch tatsächlich funktionieren.

Besondere Anforderungen

Wie auch bei der Auswahl des richtigen Dateisystems in Form von ZFS, überlassen wir auch bei der Erstellung der Datensicherungen nichts dem Zufall, um eine bestmögliche Datensicherheit der uns anvertrauten Kundendaten zu gewährleisten. Durch die Verwendung gut getesteter Standardsoftware in Form von Borg und unsere sorgfältig geplante Infrastruktur um Borg als Kernkomponente können wir – und hoffentlich auch die Kunden der WoltLab Cloud – nachts ruhig schlafen, ohne einen schwerwiegenden Datenverlust befürchten zu müssen.

Für Kunden mit besonderen Anforderungen im Business Continuity Management bieten wir im Rahmen unseres Enterprise-Angebots gerne die Möglichkeit, die Sicherungen zusätzlich automatisiert auf vom Kunden bereitgestellten Systemen zu replizieren. Sprechen Sie uns gerne an.