Storage & Protokolle

RBD

RBD (RADOS Block Device) ist das native Blockspeicher-Interface von Ceph: über den Cluster verteilte, thin-provisionierte Block-Images mit Snapshots und Replikation.

  • Ceph-Blockspeicher
  • verteilt & ausfallsicher
  • Snapshots & Clones
  • nativ, ohne Gateway
Von Andreas Huser, Technische Beratung & Architektur Aktualisiert am 7 Min. Lesezeit

RBD (RADOS Block Device) ist das native Blockspeicher-Interface von Ceph. Es stellt virtuelle Festplatten bereit, die als Stripes über den ganzen Cluster verteilt sind und Ceph-Funktionen wie Replikation und Snapshots direkt nutzen.

Dieser Artikel ordnet ein, wie RBD funktioniert, wie es angebunden wird und wie es sich zu iSCSI verhält. Für die Grundlagen des Clusters siehe den Artikel zu Ceph.

Kurz gesagt

Stärken

  • Verteilte, ausfallsichere Block-Images direkt aus dem Ceph-Cluster, ohne Gateway
  • Thin Provisioning, Snapshots und schreibbare Clones
  • Asynchrone Cluster-zu-Cluster-Replikation per RBD Mirroring (zweites Rechenzentrum)
  • Native Anbindung über librbd (QEMU/Proxmox/OpenStack) und krbd (Kernel)
  • Mitwachsend: Kapazität und Leistung skalieren mit dem Cluster

Schwächen

  • Setzt einen Ceph-Cluster voraus; für einen einzelnen Server ist ZFS einfacher
  • Clients ohne librbd (Windows, ältere VMware) brauchen ein Gateway
  • Das Ceph-iSCSI-Gateway ist seit November 2022 im Maintenance-Modus; für neue Projekte ist das NVMe-oF-Gateway der aktive Weg

1. Was RBD ist

RBD bildet ein Block-Device auf dem Ceph-Objektspeicher RADOS ab. Ein RBD-Image wird in kleine Objekte zerlegt und über die OSDs des Clusters verteilt. Dadurch erbt das Block-Device die Eigenschaften von Ceph: Replikation, Selbstheilung und lineares Wachstum.

Für den Nutzer sieht ein RBD-Image aus wie eine ganz normale Festplatte, etwa als VM-Disk. Im Hintergrund liegt es aber ausfallsicher verteilt im Cluster, nicht auf einem einzelnen Datenträger.

2. librbd und krbd

Es gibt zwei Wege, ein RBD-Image zu nutzen.

  • librbd (Userspace) eine Bibliothek, die direkt mit dem Cluster spricht. QEMU/KVM, Proxmox VE und OpenStack nutzen sie für VM-Disks; sie unterstützt Caching und Live-Migration.
  • krbd (Kernel) das Kernel-Modul bildet ein Image als /dev/rbdX ab, nutzbar wie eine lokale Disk. Praktisch für Bare-Metal-Hosts und Container.

3. Funktionen

RBD bringt die Funktionen mit, die man von einem modernen Block-Storage erwartet: Thin Provisioning (Platz wird erst bei Bedarf belegt), Snapshots und schreibbare Clones (etwa für schnelle VM-Vorlagen) sowie RBD Mirroring zur asynchronen Replikation zwischen zwei Clustern, etwa für ein zweites Rechenzentrum.

4. Zugriff ohne librbd: Gateways

Wo der Host Ceph nativ spricht (Linux, Proxmox, KVM, OpenStack), ist RBD über librbd der direkte und schnellste Weg, ganz ohne Gateway. Clients ohne librbd (Windows, ältere VMware-Stacks) lassen sich über ein vorgeschaltetes Gateway anbinden, das den Ceph-Block-Storage in ein Standardprotokoll übersetzt.

  • NVMe-oF-Gateway exportiert RBD-Images über NVMe/TCP (ceph-nvmeof). Es ist der aktiv weiterentwickelte Weg für Nicht-Linux- und VMware-Clients und in aktuellen Ceph-Releases die empfohlene Block-Brücke.
  • iSCSI-Gateway exportiert RBD-Images über iSCSI. Es ist laut Ceph-Dokumentation seit November 2022 im Maintenance-Modus und erhält keine neuen Features; für Neuprojekte ist das NVMe-oF-Gateway vorzuziehen.
  • Datei statt Block wird kein Block-, sondern Datei-Zugriff (NFS, SMB) gebraucht, exportiert man nicht RBD, sondern CephFS über die entsprechenden Ceph-Gateway-Dienste.

RBD nativ über librbd/krbd ist der Normalfall. Ein Gateway ist die Ausnahme für Clients, die Ceph nicht direkt sprechen, kein Standardpfad für die ganze Umgebung.

5. Leistung und Betrieb

Für die Leistung zählen die Verteilung der Images über den Cluster (Objektgröße und Striping), die Caching-Optionen von librbd und das Verwerfen freigewordener Blöcke (Discard/TRIM), damit Thin Provisioning real Platz zurückgibt. Für die Replikation in ein zweites Rechenzentrum kennt RBD Mirroring zwei Modi: journalbasiert (jede Änderung wird protokolliert, kleinste Verlustfenster) und snapshotbasiert (periodische Snapshots, geringerer Overhead).

Cache und Konsistenz

Schreib-Caching in librbd beschleunigt, muss aber zur Konsistenzanforderung der Anwendung passen; für VM-Disks einen Cache-Modus wählen, der die Datenintegrität bei Stromausfall wahrt. Discard im Gast aktivieren, damit gelöschte Daten im Cluster freigegeben werden.

Häufige Fragen zu RBD

Ceph ist das gesamte verteilte Speichersystem. RBD ist eine seiner drei Zugangsarten, nämlich der Blockspeicher. Daneben gibt es CephFS (Datei) und RGW (S3-Objekt).

RBD ist verteilter Block-Storage aus einem Ceph-Cluster, sinnvoll ab mehreren Knoten. ZFS ist starker lokaler Storage auf einem einzelnen Server. Unterschiedliche Schichten für unterschiedliche Größen.

Auch der Autor ist nur ein Mensch, dem Fehler unterlaufen können. Wenn in diesem Beitrag etwas nicht stimmt oder unklar ist, freuen wir uns über einen kurzen Hinweis über das Kontaktformular unten, wir prüfen und korrigieren das.

Der nächste Schritt

RBD im eigenen Haus richtig einsetzen?

Wir klären, ob und wie der Baustein zu Ihrer Infrastruktur passt, und sagen offen, wann sich der Aufwand lohnt und wann nicht.

Erstgespräch vereinbaren oder Formular ausfüllen