S3-kompatibler Object Storage ist zur Grundlage moderner Cloud-Infrastruktur geworden – und wer ihn self-hosted betreibt, kommt an zwei Namen kaum vorbei: Ceph und MinIO. Beide lösen dasselbe Problem (ein S3-kompatibles Storage-Backend), mit fundamental unterschiedlichen Ansätzen. Ceph ist das Schweizer Taschenmesser für komplexe Cluster-Deployments, MinIO die schlanke Alternative für Teams, die einfach loslegen wollen. In diesem Artikel zeige ich, wann welche Lösung die bessere Wahl ist.

Was ist Object Storage, und warum S3-Kompatibilität?

Object Storage speichert Daten als unveränderliche "Objekte" mit eindeutigen IDs – im Gegensatz zu Block Storage (Festplatten) oder File Storage (NFS). Amazon S3 hat dabei das De-facto-Protokoll gesetzt: die S3-API ist heute der Standard für Object Storage, und nahezu jede moderne Anwendung (MinIO, Nextcloud, GitLab, Harbor, Longhorn) kann mit S3-kompatiblen Endpoints umgehen.

Self-hosted S3-Storage bedeutet: Du kontrollierst, wo deine Daten liegen, was du zahlst, und wie du skalierst. Die Frage ist nur: Ceph oder MinIO?

MinIO – S3 in 10 Minuten auf deinem Server

MinIO ist das Go-Binary-Äquivalent für Object Storage: schnell, einfach, S3-kompatibel. Ein einzelner MinIO-Prozess kann auf einem Docker-Host oder Kubernetes-Pod laufen und sofort S3-kompatiblen Storage bereitstellen. MinIO ist in Go geschrieben, hat eine exzellente Admin-UI und ist für Performance und Einfachheit optimiert.

MinIO wurde ursprünglich für Single-Node-Deployments entwickelt, unterstützt aber mittlerweile auch verteilte Cluster (Distributed Mode) mit Erasure Coding für Redundanz. Das klingt nach Ceph-Territorium – aber MinIO bleibt in der Umsetzung deutlich einfacher.

MinIO im Überblick

  • Setup-Aufwand: Minimal – ein Container, eine Konfiguration
  • S3-Kompatibilität: ✅ Vollständig, inkl. Multipart-Upload, Presigned URLs, Versioning
  • Skalierung: Vertikal (größere Nodes) oder horizontal (Distributed Mode)
  • Kubernetes-Integration: ✅ Exzellent (MinIO Operator, Helm-Chart)
  • Lizenz: AGPL-3.0 (Open Source), kommerziell verfügbar
  • Performance: Sehr hoch – MinIO hält Benchmarks zu AWS S3 stand

Docker-Quickstart


version: '3.8'
services:
  minio:
    image: quay.io/minio/minio:latest
    command: server /data --console-address ":9001"
    ports:
      - "9000:9000"   # S3 API
      - "9001:9001"   # Admin Console
    volumes:
      - minio_data:/data
    environment:
      MINIO_ROOT_USER: minioadmin
      MINIO_ROOT_PASSWORD: minioadmin
    restart: unless-stopped

volumes:
  minio_data:

Das war's. MinIO läuft, die Admin-UI ist unter Port 9001 erreichbar, und der S3-Endpunkt unter Port 9000.

Ceph – verteilter Storage für komplexe Setups

Ceph ist das Schwergewicht unter den Open-Source-Storage-Systemen. Ursprünglich für große OpenStack-Deployments entwickelt, bietet Ceph block storage (RBD), file storage (CephFS) und object storage (RADOS Gateway / RGW) in einem einzigen System. Der RADOS Gateway bietet vollständige S3-Kompatibilität plus Swift-API.

Was Ceph von MinIO unterscheidet: Ceph ist ein echtes verteiltes System, das auf mehrere physische Nodes aufgeteilt werden muss. Ein Minimum-Deployment benötigt drei OSD-Nodes (Object Storage Daemons), einen oder mehrere MON-Nodes (Monitor) und einen MGR-Node (Manager). Das ist absichtlich so – Ceph ist für Hochverfügbarkeit und horizontale Skalierung auf Cluster-Ebene ausgelegt.

Ceph im Überblick

  • Setup-Aufwand: Hoch – Multi-Node-Cluster erforderlich, Rook oder ceph-deploy empfohlen
  • S3-Kompatibilität: ✅ Via RADOS Gateway (RGW), sehr vollständig
  • Skalierung: Horizontal auf unbegrenzte OSD-Nodes
  • Kubernetes-Integration: ✅ Via Rook-Ceph Operator
  • Lizenz: LGPL-2.1 (Open Source)
  • Performance: Gut, aber Overhead durch verteilte Koordination

Der entscheidende Unterschied: Komplexität vs. Skalierbarkeit

MinIO und Ceph repräsentieren zwei fundamentale Ansätze:

MinIO folgt der Unix-Philosophie: Tu eine Sache, und tu sie gut. Es ist ein Single-Purpose-Tool für S3-Storage, und diese Fokussierung macht es extrem zuverlässig und einfach zu betreiben. Wenn du Object Storage brauchst und nichts anderes, ist MinIO die erste Wahl.

Ceph ist eine vollständige Storage-Plattform. Block Storage für Kubernetes Persistent Volumes, File Storage für shared Mounts und Object Storage via RGW – alles aus einem System. Das macht Ceph unschlagbar für Setups, die mehrere Storage-Typen aus einer Hand brauchen. Aber der Preis ist Komplexität: Ceph zu operieren erfordert tiefes Verständnis des Systems, und Fehler können schwer zu debuggen sein.

Vergleichstabelle

KriteriumMinIOCeph (RGW)
Setup-Aufwand⭐⭐⭐⭐⭐ Sehr einfach⭐⭐ Komplex
Mindest-Hardware1 Node (sogar Raspberry Pi)3+ Nodes empfohlen
S3-KompatibilitätVollständigVollständig
Block Storage✅ (RBD)
File Storage✅ (CephFS)
Kubernetes-IntegrationMinIO OperatorRook-Ceph Operator
PerformanceSehr hoch (S3-optimiert)Gut (mehr Overhead)
Operativer AufwandNiedrigHoch
LizenzAGPL-3.0LGPL-2.1

Kubernetes-Setup: Longhorn vs. Rook-Ceph vs. MinIO

In Kubernetes-Umgebungen stellt sich oft die Frage: Brauche ich Rook-Ceph oder reicht MinIO? Eine wichtige Unterscheidung: MinIO bietet nur Object Storage (S3), keine Kubernetes Persistent Volumes (PVCs). Wenn du PVCs für Datenbanken brauchst, benötigst du zusätzlich Longhorn, Rook-Ceph oder einen anderen Block Storage Provider.

Ein typisches Setup in einem Self-Hosted Kubernetes-Cluster:

  • Für Block Storage (PVCs): Longhorn (einfach, aber Single-Cluster) oder Rook-Ceph (komplex, aber Multi-Cluster)
  • Für Object Storage (S3): MinIO (einfach) oder Ceph RGW (wenn Ceph sowieso schon läuft)

Die pragmatische Empfehlung: Installiere Longhorn für Block Storage und MinIO für Object Storage. Das gibt dir 90% der Funktionalität mit 20% der Komplexität von Rook-Ceph.

Wann Ceph unvermeidbar ist

Es gibt Szenarien, in denen Ceph trotz seiner Komplexität die richtige Wahl ist:

  • Multi-Protokoll-Storage: Wenn du Block, File und Object Storage aus einem System willst
  • Sehr große Cluster: 10+ Nodes mit Petabytes an Daten – hier skaliert Ceph besser als MinIO Distributed
  • OpenStack-Integration: Ceph ist das De-facto-Standard-Backend für OpenStack Cinder und Glance
  • Wenn Rook-Ceph bereits im Cluster ist: Dann ist Ceph RGW für Object Storage die logische Erweiterung

Mein Fazit

Für den typischen Self-Hoster oder das kleine Dev-Team ist MinIO fast immer die bessere Wahl. Es ist in 10 Minuten produktionsbereit, bietet vollständige S3-Kompatibilität und ist einfach zu warten. Die meisten Anwendungen, die S3-Storage brauchen (Nextcloud-External-Storage, Harbor-Registry, GitLab-Artifacts, Loki-Backend), funktionieren problemlos mit MinIO.

Ceph lohnt sich erst, wenn du bereits mehrere Storage-Anforderungen hast (Block + Object) oder einen sehr großen Cluster mit vielen Nodes betreibst. Für ein typisches Homelab oder ein kleines Produktionssetup ist Ceph überdimensioniert – und die Komplexität überwiegt den Nutzen.

Das Schöne: Diese Entscheidung ist nicht für immer. MinIO speichert Daten in einem standardmäßigen Format, und eine Migration zu einem anderen S3-Backend ist über einfaches Sync-Tooling (mc mirror oder rclone) möglich, wenn die Anforderungen wachsen.

Weiterführende Artikel

Verwandte Technologien im Techradar