Ceph

Deploy Ceph for block, file and S3-compatible object storage, with CRUSH failure domains, data protection and upgrades planned for your infrastructure.

On this page

One storage cluster, three interfaces

Ceph stores data in RADOS, a distributed object store that replicates or erasure-codes data across many servers and recovers automatically when a disk or host fails. On top of RADOS it offers block devices (RBD), a POSIX file system (CephFS) and an object gateway (RGW) with S3- and Swift-compatible APIs. Most of Ceph is licensed under LGPL-2.1 or LGPL-3, with some files under other open source licenses.

Ceph suits organizations that need storage capacity and resilience on commodity servers, often as the backend for Proxmox VE, OpenStack or Kubernetes. It rewards careful design: hardware, networks, failure domains and capacity thresholds decide how a cluster behaves during a failure. A small cluster built without that planning can be harder to run than the array it replaced.

Daemons and where they run

Each daemon type has a different job and failure behavior. Place them so one host or rack failure does not remove a majority of any group.

DaemonRolePlacement
MONMaintains the cluster maps and quorum.Run an odd number, commonly three or five, on separate hosts or racks.
MGRRuns the dashboard, orchestrator and monitoring modules.One active instance and at least one standby.
OSDStores data on a device and handles replication, recovery and scrubbing.One per disk, using BlueStore. Spread evenly across hosts so recovery load is shared.
MDSManages CephFS metadata.Needed only for CephFS. Run standbys and add active daemons only when metadata load requires it.
RGWServes the S3 and Swift APIs.Run several instances behind a load balancer. They keep their data in RADOS, so instances can be added or replaced.

Match the interface to the consumer

RBD provides thin-provisioned block devices with snapshots and clones. It backs virtual machine disks in Proxmox VE and OpenStack, and persistent volumes in Kubernetes through the Ceph CSI driver. RBD mirroring can replicate images to a second cluster for disaster recovery.

Design failure domains and data protection

These decisions are hard or impossible to change once pools hold data.

CRUSH failure domains

CRUSH rules decide where replicas or chunks land. Set the failure domain to host or rack to match how your hardware fails, including shared power and switches.

Replication

Three-copy replicated pools are the common choice for block storage and metadata. They use three times the raw capacity and recover quickly. Keep min_size above one.

Erasure coding

Pools split data into k data and m coding chunks; 4+2 uses 1.5 times raw capacity. The profile cannot change after creation, m=1 is discouraged for production, and the cluster needs at least k+m failure domains, ideally one more.

Network separation

Use a public network for clients and a separate cluster network for replication where possible, sized for recovery after a host failure.

Capacity thresholds

By default Ceph warns at 85 percent (nearfull), stops backfill at 90 percent and stops client I/O at 95 percent (full). Leave room to lose the largest host and still recover.

Deploy with cephadm or Rook, then secure access

cephadm, introduced in Ceph Octopus (15.2), runs Ceph daemons in containers, manages them through the orchestrator and handles upgrades. It suits dedicated storage hosts. Rook runs Ceph as a Kubernetes operator, and Proxmox VE has its own integrated Ceph management. Choose one management path per cluster.

Use host bus adapters in place of RAID controllers, one OSD per device, and faster flash for BlueStore DB and WAL when data devices are HDDs. The default OSD memory target is 4 GiB, and recovery uses more.

Issue a cephx key per client with the narrowest capabilities, for example limited to one pool or one CephFS path. The dashboard supports SAML 2.0 single sign-on and, under cephadm, OAuth2 through oauth2-proxy, with roles assigned inside Ceph. Enable TLS on the dashboard and RGW, consider msgr2 secure mode for traffic between daemons and clients, and use OSD encryption where data at rest must be encrypted.

Moving off community MinIO to RGW

The community MinIO GitHub repository was archived on April 25, 2026 and is now read-only, and its README states that the legacy binaries will not receive updates. Teams running the community edition need a maintained S3-compatible store. Ceph RGW is one open source option, and it fits well where Ceph already provides block or file storage.

Inventory what applications use: bucket policies, versioning, object lock, lifecycle rules, presigned URLs, server-side encryption, notifications and the identity model behind access keys. RGW implements a large subset of the S3 API, so test each client library and workflow against a staging RGW before moving data.

Copy buckets with an S3-aware tool such as rclone, verify object counts and checksums, then switch endpoints and credentials one application at a time. Keep the MinIO deployment read-only until owners confirm that their data and access work on RGW.

Snapshots, backups and upgrades

RBD and CephFS snapshots give fast recovery points, and RBD mirroring or RGW multisite can keep a copy in a second cluster. They protect against local mistakes and site loss, but they share software and often credentials with the source cluster.

Ceph operating ownership

Ceph keeps serving data through many failures, which makes warnings easy to ignore. Assign people to watch them and act.

Storage operations

  • Watches health checks, placement group states, scrub results and slow operations.
  • Replaces failed disks and hosts and tracks recovery.
  • Plans and runs release upgrades.

Capacity

  • Tracks raw and usable capacity against nearfull and full ratios.
  • Models the effect of losing the largest host or rack.
  • Orders hardware before thresholds are reached.

Consumers

  • Own the data in their pools, images, file systems and buckets.
  • Request pools, quotas and keys through a defined process.
  • Back up data that cannot be recreated.

Security

  • Reviews cephx capabilities, RGW users and dashboard roles.
  • Holds encryption keys and backup credentials under separate control.
  • Tracks Ceph security advisories.

Ceph deployment questions

How many nodes do we need?

Three hosts is the practical minimum for replicated pools with a host failure domain, and the Proxmox VE documentation recommends at least three nodes and twelve OSDs for hyper-converged Ceph. Erasure coding needs at least k+m hosts, plus one more for recovery headroom.

Can Ceph replace our SAN?

For many virtualization and Kubernetes workloads, RBD can take that role. Test latency-sensitive databases on your own hardware and network before committing, since every Ceph write crosses the network to several OSDs.

Is RGW a drop-in replacement for MinIO?

Both speak S3, but feature coverage, identity and administration differ. Test every application against RGW and plan the credential change for each one.

What happens when the cluster fills up?

When any OSD reaches the full ratio, 95 percent by default, Ceph stops client I/O to protect data. Freeing space at that point is slow and risky, so alert on nearfull and add capacity early.

Scope and handover

Effort depends on capacity and growth, the interfaces in use, hardware and network design, failure domains, encryption needs, integration with Proxmox VE, OpenStack or Kubernetes, and any data migration such as a move from MinIO. Hardware selection and network design decide much of the outcome before any software is installed.

DeployOpen plans the cluster, deploys it with cephadm or Rook, hardens access, connects dashboard SSO, sets up snapshots, replication and off-cluster backups, runs upgrades and documents the result. Handover includes the hardware and network map, CRUSH rules and pool layout, capacity model, key and capability inventory, backup and restore evidence, the upgrade runbook and a support route.

Sources and further reading

More on Ceph

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.