Engineering Logbook by nine

Backup mal anders - Backup-Speicher für Root- und Cloudserver bei nine.ch

Geschrieben von nine Team | 05.09.16 22:00

Die Sicherung und Versionierung der eigenen Daten ist eine oft unterschätzte Aufgabe beim Betreiben eines eigenen Servers. Ein Datenverlust kann enorme negative Auswirkungen haben. Wir bei nine.ch bieten daher einen zentralen S3-kompatiblen Backup-Cluster für unsere Root- und Cloudserver Kunden an. Auf diesem werden die Daten mehrfach redundant gespeichert und können auch verschlüsselt hochgeladen werden.

Was ist S3?

S3 (Simple Storage Service) ist ein durch Amazon entwickeltes Storage-System, welches mittels HTTP(S) REST-API erreicht und verwaltet werden kann. Da S3 auf einem Object-Based-Storage (Erläuterung siehe unten) basiert, ist dieser Speicher sehr flexibel und einfach skalierbar. Amazon hat den Quellcode von S3 bis dato noch nicht veröffentlicht. Daher kann ein identisches System nicht angeboten werden. Aus diesem Grund bietet nine.ch keinen S3, sondern S3-kompatiblen Speicher an. S3 von Amazon bietet eine REST-API, der die S3-kompatiblen Speicherlösungen nachempfunden wurden.

Beispiele für Services, welche dieselbe (oder eine ähnliche) API anbieten:

  • Ceph mit RADOS Gateway
  • Openstack Swift
  • Apache CloudStack

nine.ch setzt hierbei auf die Lösung mit einem darunter liegenden Ceph-Cluster und einem RADOS Gateway. So haben wir gut skalierbaren Speicher als Unterbau und den RADOS Gateway darauf, welcher die S3-kompatiblen Funktionen zur Verfügung stellt.

Object-Based Storage

Die Speicherung der Daten in Objekten ist der Kern eines S3-kompatiblen Speichers. Im Gegensatz zu einem Filesystem, bei dem die Daten in einer File-Hierarchie abgelegt werden, können beim S3-kompatiblen Speicher die Daten zusammen mit Metadaten in Objekten abgelegt werden. Jedes Objekt besitzt dabei eine ID. Dies hat den Vorteil, dass die einzelnen Objekte beispielsweise über viele verschiedene Festplatten oder auch unterschiedliche Server verteilt werden können. Zudem können die Daten unabhängig von Inhalt oder Herkunft einfach objektweise dupliziert und auf unterschiedlichen Medien abgelegt werden.

Basierend auf dieser Technologie lassen sich hochverfügbare und skalierbare Speicherlösungen für unstrukturierte Daten entsprechend entwickeln. So können auch gigantische Datenmengen auf verhältnismässig günstiger Hardware untergebracht werden. Ein Beispiel hierfür sind Bilder und Videos bei Facebook, welche ebenfalls auf einem Object-Storage liegen.

Das bei uns eingesetzte Ceph ist eine Opensource-Lösung, die all diese Vorteile vereint und uns so eine verlässliche Grundlage für Ihre zu sichernden Daten bietet.

Backups auf dem S3-kompatiblen Storage

Für das Speichern von Daten auf unserer Storage Lösung erhalten Sie einen sogenannten Access-Key, welcher als Login zum Storage dient. Dieser Key kann jederzeit im Cockpit unter Produkte / Backupspace neu generiert werden.

Da es sich, wie bereits erwähnt, um einen zu S3 von Amazon kompatiblen Speicher handelt, können viele der für Amazon S3 einsetzbaren Tools für die Backup-Erstellung auf unserem Storage verwendet werden. Wir haben hierbei die besten Erfahrungen mit Duplicity gemacht.

Weitere Informationen zur Erstellung eines Backups auf unserem Speicher, finden Sie in unserem Supportbereich.

Verwalten von Buckets

S3 setzt bei der Speicherung von Daten auf sogenannte Buckets (Eimer). In diesen werdem jeweils zusammengehörige Daten abgelegt - vergleichbar mit einem Ordner, in den man Dateien legt. Diese Buckets können zum Beispiel für das Organisieren der Backups von verschiedenen Systemen verwendet werden. Ein User kann selbst die benötigten Buckets erstellen. Zu beachten hierbei ist lediglich, dass maximal 100 Buckets pro User erstellt werden können.

Aus Sicherheitsgründen ist die Verwaltung der Buckets nicht direkt über die REST-API möglich. Das bedeutet, dass Buckets zwar erstellt werden können, dies geschieht, sobald Daten in ein Bucket geschrieben werden, welcher noch nicht exisitert oder mittels dem Cockpit, diese jedoch nicht mehr zu löschen sind. Die Daten innerhalb eines Buckets sind von diesem Zustand allerdings nicht betroffen und können nach Belieben entfernt werden.

Das Löschen eines kompletten Buckets ist nur über unser Cockpit möglich. Wird ein Bucket entfernt, sind auch alle darin enthaltenen Backups endgültig gelöscht.

Martin Wittwer arbeitet als Linux System Engineer bei nine.ch und ist zusammen mit seinen Kollegen aus dem Systems-Team für die Erarbeitung neuer Services bei nine.ch zuständig.