RAID als Cache: Discord baut eigenes Speichersystem in Google-Cloud

Discord betreibt seine Server in der Cloud - und baute sich ein schnelles und gleichzeitig sicheres Speichersystem.

Artikel veröffentlicht am , Johannes Hiltscher
Discord zeigt: Auch in der Cloud lassen sich Speichersysteme an die eigenen Bedürfnisse anpassen.
Discord zeigt: Auch in der Cloud lassen sich Speichersysteme an die eigenen Bedürfnisse anpassen. (Bild: Sandor Somkuti, Flickr/CC-BY 2.0)

Wie jeder datenintensive Dienst ist auch Discord darauf angewiesen, auf seinen Servern Daten möglichst schnell abzurufen. Interessant ist, dass das Unternehmen die Rechner, auf denen seine Datenbanken liegen, nicht selbst betreibt: Sie liegen in der Cloud von Google. Mit dem Speicherangebot waren die Entwickler aber unzufrieden, Google bietet nur eine schnelle oder eine sichere Variante an. Also bastelte Discord eine eigene Lösung.

Stellenmarkt
  1. C# / .NET Softwareentwickler / Programmierer (m/w/d)
    PM-International AG', Speyer
  2. Ingenieur (w/m/d) Kommunikationstechnik
    Deutscher Bundestag, Berlin
Detailsuche

Entwickler Glen Oakley führt im oben verlinkten Blog-Post aus, dass das Speichersystem in Stoßzeiten oft an seine Grenzen kam: Die Festplatten - Discord nutzt Googles Persistent Disks (GCP) - konnten die Anfragen der NoSQL-Datenbank nicht mehr bewältigen. Das führte zu langen Zugriffszeiten und Überschreitungen der Antwortzeit. Grund für das Problem ist, dass GCP selbst virtuelle Hardware ist. Der physische Speicher liegt in irgendeinem Storage Server und ist per Netzwerk mit dem Datenbank-Server verbunden. Beide befinden sich im selben Rechenzentrum.

Das hat einige angenehme Aspekte: Sicherungen können jederzeit erstellt werden, der Storage Server schützt mit RAID gegen Datenausfall und die virtuelle Festplatte kann beliebig vergrößert werden. Da aber die Anfragen durch zwei Rechner und möglicherweise mehrere Netzwerk-Switches laufen, brauchen die Antworten ziemlich lang, zwischen einer und zwei Millisekunden.

Lokaler und Cloud-Speicher als ideale Lösung

Die naheliegende Lösung, statt GCP lokale SSDs zu nutzen, kam für das Entwicklerteam von Discord nicht in Frage: Zu groß war die Angst vor Datenverlusten durch ausfallende Laufwerke oder ganze Server. Ausfallende Server fängt Googles Cloud zwar durch Umzug auf andere Hardware ab, die gespeicherten Daten sind dann aber futsch. Also suchte das Team nach anderen Lösungen.

Golem Karrierewelt
  1. IT-Sicherheit für Webentwickler: virtueller Zwei-Tage-Workshop
    07./08.02.2023, Virtuell
  2. Container Technologie: Docker und Kubernetes - Theorie und Praxis: virtueller Drei-Tage-Workshop
    14.-16.12.2022, virtuell
Weitere IT-Trainings

Der erste Schritt war, die Anforderungen an das Speichersystem genau zu betrachten: Wichtig war, jederzeit ein Backup der Daten erstellen zu können und sie gegen den Ausfall einzelner Laufwerke geschützt zu wissen. Die Zugriffszeit ist für Discord nur beim Lesen von Daten wichtig. Schnell entdeckten die Entwickler die Kombination von GCP und lokalen SSDs als den richtigen Weg. Letztere werden dabei nur als Cache genutzt.

Zuerst untersuchte das Team dm-cache, lvm-cache und bcache, Caching-Module des Linux-Kernels. Die entsprachen aber nicht ganz den Ansprüchen des Teams, da sie bei Ausfällen der als Cache genutzten SSDs Fehler verursachten, die zum Ausfall der Datenbank führten.

Ein Software-RAID machts möglich

Die für sie perfekte Lösung fanden die Entwickler letztlich in einem Software-RAID namens md. Das hat ein wichtiges Feature: Es ermöglicht, die zusammengefassten Speicher für Lese- oder Schreiboperationen zu priorisieren. Mit dem Flag "write-mostly" wird festgelegt, dass ein Gerät beim Lesen nur die zweite Wahl ist. Auf sie wird nur zurückgegriffen, wenn kein anderes Gerät die gewünschten Daten bereitstellen kann.

Also packten Discords Entwickler ein lokal im Server installiertes RAID0 aus NVMe-SSDs mit dem GCP-Speicher in ein RAID1. Das verteilt die Zugriffe auf beide Speichersysteme, die SSDs werden so zu einem Cache der geschriebenen Daten. Damit warten die Server jetzt nur noch halb so lang auf Daten wie bei der vorherigen GCP-Lösung, die Datenbanken können mehr Anfragen bewältigen.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed


gaym0r 18. Aug 2022 / Themenstart

"Eine lokale NVMe kommt ja schon fast an RAM ran. " DDR2 RAM oder was?

jhi (Golem.de) 17. Aug 2022 / Themenstart

Damit ist schon alles gesagt was ich auch hätte dazu schreiben können, danke. Es wird...

GwhE 16. Aug 2022 / Themenstart

Erstmal interessant Thema, bei dieser Fragestellungen stehen momentan viele...

JouMxyzptlk 16. Aug 2022 / Themenstart

trotzdem erwähnenswert. An sich kann Linux auch allgemein besseres Tiering als nur mit...

Kommentieren



Aktuell auf der Startseite von Golem.de
Superbase V
Zendures Solarstation mit 6.400 Wh kommt mit hohem Rabatt

Vor dem Verkaufsstart über die eigene Webseite verkauft Zendure seine Superbase V über Kickstarter - mit teilweise fast 50 Prozent Rabatt.

Superbase V: Zendures Solarstation mit 6.400 Wh kommt mit hohem Rabatt
Artikel
  1. Tesla Optimus: Elon Musk zeigt Roboter-Prototyp
    Tesla Optimus
    Elon Musk zeigt Roboter-Prototyp

    Roboter könnten für Tesla aus Sicht von Elon Musk bedeutender werden als Elektroautos. Der Konzern zeigte seinen ersten Roboter-Prototypen.

  2. Microsofts E-Mail: Modern Auth in Exchange macht Admins Arbeit
    Microsofts E-Mail
    Modern Auth in Exchange macht Admins Arbeit

    Ab dem 1. Oktober 2022 müssen Exchange-Clients zwingend Microsofts moderne Authentifizierung nutzen. Das bedeutet Mehrarbeit.
    Eine Analyse von Oliver Nickel

  3. Google: Nutzer fordern Bluetooth-Freigabe für Stadia-Controller
    Google
    Nutzer fordern Bluetooth-Freigabe für Stadia-Controller

    Mit der Einstellung von Stadia können auch Tausende der speziellen Controller ohne ein Update nicht mehr drahtlos genutzt werden.

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • MindStar (u. a. LC-Power LC-M27-QHD-240-C-K 389€) und Damn-Deals (u. a. Kingston A400 240/480 GB 17,50€/32€, NZXT Kraken X73 139€) • Alternate: Weekend Sale • Razer Strider XXL 33,90€ • JBL Live Pro+ 49€ • PCGH-Ratgeber-PC 3000 Radeon Edition 2.500€ • LG OLED65CS9LA 1.699€ [Werbung]
    •  /