Wie Cloud Storage eine Zuverlässigkeit von 99,999999999 % erreicht
Geoffrey Noer
Product Manager, Cloud Storage
David Petrie Moulton, Ph.D.
Senior Data Scientist
Einer der wichtigsten Aspekte jeder Speicherlösung ist Zuverlässigkeit. Wie gut sind Ihre Daten demnach vor Verlust oder Beschädigung geschützt? In einer Cloud-Umgebung spielt dieser Faktor eine besonders große Rolle. Cloud Storage wurde für eine jährliche Zuverlässigkeit von mindestens 99,999999999 % bzw. „11 Neunen“ entwickelt. Das bedeutet, dass Sie wahrscheinlich selbst bei einer Milliarde Objekte innerhalb von 100 Jahren kein einziges Objekt verlieren würden.
Wir nehmen das Erreichen dieser Ziele für Zuverlässigkeit sehr ernst. In diesem Beitrag erfahren Sie mehr darüber, wie Sie Daten in Cloud Storage am besten schützen. Letztendlich ist der Schutz von Daten eine geteilte Verantwortung (die häufigste Ursache für Datenverlust ist das versehentliche Löschen durch Nutzer*innen oder Administrator*innen von Speichersystemen). Daher gehen wir in diesem Beitrag auch auf Best Practices ein, wie Sie Ihre Daten vor Risiken wie Naturkatastrophen und Anwendungsfehlern schützen können.
Physische Zuverlässigkeit
Meistens wird Zuverlässigkeit mit dem Schutz vor Fehlern von Netzwerk-, Server- und Speicherhardware in Zusammenhang gebracht.
Wir bei Google sind davon überzeugt, dass Software letztendlich den besten Schutz vor Hardwarefehlern bietet. So wird die Zuverlässigkeit zu attraktiven Preisen gesteigert und es kommt nicht zu einer Abhängigkeit von exotischen Hardwarelösungen. Wir rechnen immer damit, dass Hardware versagt – denn das kommt auch immer wieder vor. Das heißt aber nicht, dass die Zuverlässigkeit darunter leiden muss.
In Cloud Storage werden Objekte beim Speichern in „Datenblöcke“ aufgeteilt, die dann auf verschiedenen Servern mit unterschiedlichen Stromquellen aufbewahrt werden. Zusätzlich wird für Redundanz eine Reihe von „Codeblöcken“ erstellt. Bei einem Hardwarefehler (z. B. Server, Laufwerk) wird das gesamte Objekt mithilfe der Daten- und Codeblöcke rekonstruiert. Dieses Verfahren wird als Löschcodierung (Erasure Coding, EC) bezeichnet. Außerdem werden mehrere Kopien der Metadaten zum Suchen und Lesen des Objekts gespeichert. Auf diese Weise besteht weiterhin Zugriff auf das Objekt, selbst wenn Metadaten-Server ausfallen.
Die wichtigste Voraussetzung ist hierfür, dass Daten immer redundant in verschiedenen Verfügbarkeitszonen gespeichert werden, bevor ein Schreibvorgang als erfolgreich durchgeführt gilt. Die verwendeten Codierungen bieten ausreichend Redundanz, um das Ziel einer Zuverlässigkeit von über 11 Neunen bei Hardwarefehlern zu erreichen. Nach dem Speichern werden regelmäßig Prüfsummen abgeglichen, um inaktive Daten vor bestimmten Arten von Datenfehlern zu schützen. Stimmt eine Prüfsumme nicht überein, können Daten aufgrund der Redundanz in der Codierung automatisch repariert werden.
Best Practice: Standorte mit zwei oder mehr Regionen verwenden
Diese Maßnahmen zum Schutz der physischen Zuverlässigkeit sind schön und gut, helfen allerdings nicht unbedingt bei einer erheblichen Zerstörung einer Region wie beispielsweise im Falle eines Krieges, eines Asteroideneinschlags oder anderer großer Katastrophen.
Das Ziel der Zuverlässigkeit von mindestens 99,999999999 % für Cloud Storage gilt für eine einzelne Region. Zum Schutz vor Naturkatastrophen, die gesamte Regionen zerstören können, sollten Sie die wichtigsten Daten in dualen oder multiregionalen Buckets speichern. Mit diesen Buckets wird eine Redundanz Ihrer Daten in mehreren geografischen Regionen automatisch gewährleistet. Sie erfordern keine zusätzlichen Konfigurationen oder API-Änderungen an Ihren Anwendungen und erhöhen die Zuverlässigkeit bei Ereignissen, die sehr selten sind, aber unter Umständen katastrophal sein können. Ein zusätzlicher Vorteil dieser Standorttypen sind die SLAs mit einer bedeutend höheren Verfügbarkeit. Wenn vorübergehend kein Zugriff auf eine Region besteht, können Objekte von einem anderen Standort bereitgestellt werden.
Zuverlässigkeit während der Übertragung
Eine weitere Art von Risiken für die Zuverlässigkeit betrifft die Beschädigung von Daten während der Übertragung. Dabei kann es sich um die Datenübertragung zwischen Netzwerken im Cloud Storage-Dienst selbst oder um das Hoch-/Herunterladen von Objekten in/von Cloud Storage handeln.
Zum Schutz vor einer möglichen Beschädigung werden Daten bei der Übertragung in Cloud Storage immer und ohne Ausnahme mit einer Prüfsumme geschützt. Wenn die Validierung der Prüfsumme fehlschlägt, wird die Anfrage je nach Situation automatisch wiederholt oder es wird ein Fehler ausgegeben.
Best Practice: Prüfsummen für Uploads und Downloads verwenden
In Google Cloud werden alle innerhalb des Diensts übertragenen Cloud Storage-Objekte mit einer Prüfsumme validiert, um End-to-End-Schutz zu erreichen. Sie sollten Prüfsummen bereitstellen, wenn Sie Daten in Cloud Storage hochladen, und diese Werte auf dem Client validieren, wenn Sie ein Objekt herunterladen.
Menschliches Versagen als Risiko für die Zuverlässigkeit
Ohne Frage ist der Datenverlust durch menschliche Fehler das größte Risiko – nicht nur Fehler von uns Entwickler*innen und Dienstbetreibern, sondern auch Fehler von Cloud Storage-Nutzer*innen.
Software-Programmfehler stellen möglicherweise die größte Gefahr dar, wenn es um die Zuverlässigkeit von Daten geht. Mit ausgefeilten Maßnahmen verhindern wir, dass Programmfehler eingeführt werden, die Daten beschädigen oder löschen und sich folglich auf die Zuverlässigkeit auswirken könnten. Spezielle Absicherungen helfen bei der schnellen Erkennung dieser Art von Programmfehlern. Ziel ist es, Fehler zu finden, bevor sich eine Beeinträchtigung der Zuverlässigkeit zum Verlust der Zuverlässigkeit entwickelt.
Eine neue Version von Cloud Storage wird erst eingeführt, nachdem sie zahlreiche Integrationstests bestanden hat. Auf diese Weise werden Programmfehler schon im Vorfeld erkannt. Die Tests umfassen verschiedene Grenzfall-Fehlerszenarien wie den Ausfall einer Verfügbarkeitszone und den Vergleich von Datencodierung und Placement-APIs mit früheren Versionen, um das Auftreten neuer Fehler auszuschließen.
Nach der Genehmigung einer neuen Softwareversion werden Upgrades schrittweise nach Verfügbarkeitszone eingeführt. Das Rollout findet zuerst stark begrenzt statt und wird dann langsam erweitert, bis die neue Version allgemein verwendet wird. So können Fehler gefunden werden, bevor sie große Auswirkungen haben und solange es noch Kopien der Daten (oder eine ausreichende Anzahl an Löschcodeblöcken) für die Datenwiederherstellung gibt, falls erforderlich. Diese Software-Rollouts werden streng überwacht und es gibt Pläne für schnelle Rollbacks, wenn Bedarf besteht.
Auch Sie können zahlreiche Maßnahmen ergreifen, um einem Datenverlust vorzubeugen.
Best Practice: Objektversionsverwaltung aktivieren
Eine der häufigsten Ursachen für Datenverlust ist das versehentliche Löschen von Daten durch Speicheradministrator*innen oder Endnutzer*innen. Wenn Sie die Objektversionsverwaltung aktivieren, werden gelöschte Objekte in Cloud Storage erhalten und können so später bei Bedarf wiederhergestellt werden. Mit Richtlinien für die Verwaltung des Objektlebenszyklus können Sie festlegen, wie lange Objektversionen bis zum endgültigen Löschen aufbewahrt werden, um Ihre Speicherkosten besser zu kontrollieren.
Best Practice: Datensicherung
Auch wenn Cloud Storage eine Zuverlässigkeit von 99,999999999 % erreicht, sollten Sie Ihre Daten sichern. Es besteht leider immer die Gefahr, dass bösartige Hacker Zugriff auf Ihr Cloud Storage-Konto erlangen. Abhängig von Ihren Zielen können Sie zur Sicherung eine zweite Datenkopie in einer anderen Region oder Cloud, lokal oder sogar physisch durch einen Air Gap getrennt auf Band oder Laufwerk erstellen.
Best Practice: Aufbewahrungsrichtlinien und Audit-Logs
Legen Sie für die langfristige Datenaufbewahrung mit der Cloud Storage-Funktion Bucket-Sperre Aufbewahrungsrichtlinien fest und sperren Sie Daten für bestimmte Zeiträume. So können Sie verhindern, dass Daten versehentlich geändert oder gelöscht werden. Zusammen mit Audit-Logs zum Datenzugriff unterstützt Sie diese Funktion bei der Einhaltung von Vorschriften und Compliance-Anforderungen, z. B. in Bezug auf FINRA, SEC und CFTC. Sie fördern auch die Einhaltung bestimmter Aufbewahrungsvorschriften im Gesundheitswesen.
Best Practice: Richtlinien zur rollenbasierten Zugriffssteuerung
Schränken Sie die Auswirkungen von bösartigen Hackerangriffen und versehentlichem Löschen mit Richtlinien zur IAM-Zugriffssteuerung ein, die das Prinzip der Funktionstrennung (Separation of Duties, SoD) sowie das Prinzip der geringsten Privilegien (Principle of Least-Privilege, PoLP) befolgen. Trennen Sie beispielsweise Nutzer*innen, die Buckets erstellen können, von solchen, die Projekte löschen können.
Schlüssel und Zuverlässigkeit
Alle inaktiven und in der Cloud übertragenen Cloud Storage-Daten sind verschlüsselt. Da Objekte ohne ihre Schlüssel nicht gelesen werden können, stellt der Verlust dieser Schlüssel ein enormes Risiko für die Zuverlässigkeit dar, denn selbst die zuverlässigsten Daten sind nutzlos, wenn sie nicht zu lesen sind. Cloud Storage bietet drei Möglichkeiten der Schlüsselverwaltung: 1) von Google verwaltete Schlüssel, 2) vom Kunden verwaltete Schlüssel (Customer Managed Encryption Keys, CMEK) mit Cloud KMS oder 3) vom Kunden bereitgestellte Schlüssel (Customer Supplied Encryption Keys, CSEK) mit einem externen Schlüsselserver.
Die Zuverlässigkeit der von Google verwalteten Schlüssel wird mit ähnlichen Maßnahmen wie zuvor beschrieben geschützt (einschließlich Löschcodierung und Konsistenzprüfung).
Best Practice: Schlüssel absichern
Bei der Wahl von CMEK oder CSEK übernehmen Sie selbst die Verantwortung für die Schlüsselverwaltung. In diesem Fall sollten Sie Ihre Schlüssel unbedingt so schützen, dass Sie auch eine Zuverlässigkeit von mindestens 99,999999999 % erreichen. Bei CSEK sind daher Sicherungen der Schlüssel an externen Standorten erforderlich, sodass sie selbst bei Verlust oder Beschädigung wiederhergestellt werden können. Ohne derartige Maßnahmen hängt die Zuverlässigkeit Ihrer Daten von der Zuverlässigkeit der Schlüssel ab.
Mehr als 99,999999999 %
Google Cloud nimmt die Verantwortung für den Schutz Ihrer Daten sehr ernst. Dank der zahlreichen hier beschriebenen Verfahren konnte für Cloud Storage bereits eine jährliche Zuverlässigkeit von über 99,999999999 % erreicht werden. Wenn Sie nun noch die Best Practices anwenden, die wir in diesem Beitrag mit Ihnen geteilt haben, sollten Ihre Daten bestens geschützt und immer verfügbar sein, egal ob heute oder in Zukunft. Lesen Sie sich für weitere Informationen unsere umfassende Sammlung an Anleitungen zu Cloud Storage durch.
Wir möchten uns bei Dean Hildebrand, Technical Director, Office of the CTO, bedanken. Er ist Mitverfasser des Dokuments, auf dem dieser Beitrag basiert.