When engineering an enterprise Proxmox VE cluster or a high-availability home lab, Ceph is the undisputed gold standard for distributed, self-healing shared storage. However, one of the most persistent architectural mistakes sysadmins make is misunderstanding the fundamental boundary between Ceph’s block layer (RBD) and its distributed POSIX filesystem layer (CephFS).
While both storage types sit atop the foundational RADOS (Reliable Autonomic Distributed Object Store) cluster, they serve diametrically opposed workload profiles. Misconfiguring a virtual machine disk onto CephFS instead of native RBD can cut random I/O performance in half while driving Metadata Server (MDS) CPU and RAM consumption through the roof.
Architectural Breakdown: RBD Block vs. CephFS Distributed POSIX
To understand why performance diverges so dramatically, consider the underlying data path between a Proxmox KVM hypervisor and the underlying Ceph OSDs:
| Architectural Dimension | Ceph RBD (Block Device) | CephFS (Distributed Filesystem) | Proxmox Sysadmin Takeaway |
|---|---|---|---|
| Primary Data Abstraction | Raw virtual block device (striped) | Hierarchical POSIX tree (folders/files) | RBD interacts natively with QEMU/KVM |
| Metadata Management | Direct algorithmic striping (CRUSH) | Centralized Metadata Server (MDS) | RBD has zero MDS bottlenecks or crashes |
| Concurrent Multi-Host Access | Single-writer lock (exclusive-lock) | Multi-writer concurrent POSIX access | CephFS allows shared RW folders across nodes |
| 4K Random Write Latency (NVMe) | 0.85 – 1.2 ms | 2.4 – 3.8 ms | RBD is 2.5x to 3x faster for database I/O |
| Proxmox Native Integration | VM virtual disks, live migrations | ISO storage, VZDump backups, snippets | Use each tool for its designated storage role |
| Memory Overhead | Low (OSD RAM only: 4GB/OSD) | High (MDS cache requires 8GB+ RAM) | Under-provisioned MDS causes cluster lag |
Why Ceph RBD Dominates Virtual Machine Performance
When you allocate an RBD pool in Proxmox VE, the hypervisor treats virtual machine disks as native block streams. Ceph divides an 80GB virtual disk into millions of uniform 4MB objects, distributing them directly across cluster OSDs via the deterministic CRUSH algorithm.
Because there is no filesystem hierarchy, directory index, or file permission layer between QEMU and the OSDs, there is zero metadata hop. When a virtual machine executes a 4K write, the QEMU `librbd` driver communicates directly with the primary OSD for that placement group (PG), replicates the write across the secondary OSDs, and returns an immediate write acknowledgment. As explored in our deep-dive on Ceph vs. ZFS on Proxmox VE, pairing RBD with enterprise NVMe drives and a dedicated 10GbE or 25GbE backend network delivers linear IOPS scaling without single-point bottlenecks.
Furthermore, Proxmox VE leverages Ceph’s `krbd` kernel mapping or user-space `librbd` to support instantaneous, zero-copy snapshotting and thin-provisioned cloning. Deploying 50 identical Linux VMs from a single base template takes less than three seconds on an RBD storage pool.
When to Deploy CephFS: Shared Storage & Multi-Client File Trees
While RBD is king for block devices, it cannot be mounted simultaneously by multiple independent virtual machines or Proxmox nodes in read-write mode without a clustered filesystem (like OCFS2 or GFS2) running inside the guest OS. Attempting to attach an RBD volume to two VMs simultaneously will inevitably result in catastrophic data corruption.
This is where CephFS becomes indispensable. CephFS layers a fully compliant POSIX filesystem over RADOS by deploying one or more Metadata Servers (MDS). The MDS daemon maintains directory trees, file ownership permissions, inode timestamps, and client capabilities entirely in high-speed RAM, while the raw file data is striped across standard OSD pools.
Ideal Proxmox Use Cases for CephFS:
- Cluster-Wide ISO & Template Storage: Uploading an ISO image once to CephFS makes it instantly available across all nodes in the cluster without manual NFS exports.
- Persistent Storage for Docker & LXC Containers: Multiple container nodes can read and write to shared application directories, persistent volumes, and media libraries simultaneously.
- Multi-Node VZDump Backup Targets: Fast snapshot dumps can be written to CephFS when dedicated Proxmox Backup Server (PBS) instances are not deployed locally.
Tuning the CephFS Metadata Server (MDS) in Production
The primary architectural bottleneck of CephFS is MDS cache sizing. If your CephFS pool hosts millions of small files, an undersized MDS cache will exhaust allocated memory, forcing the daemon to flush inodes to disk and causing hypervisor I/O freezes.
To ensure flawless stability on Proxmox VE, tune the MDS memory limit via the Ceph CLI:
# Check active MDS status on Proxmox
ceph fs status
# Configure MDS cache memory limit (e.g., 8GB for enterprise workloads)
ceph config set mds mds_cache_memory_limit 8589934592
# Enable active-standby MDS redundancy across cluster nodes
ceph fs set cephfs standby_count_wanted 1
# Verify client lock status and active inodes
ceph daemon mds.$(hostname) perf dump | grep mds_mem
Always ensure your cluster maintains at least two MDS daemons running on separate physical nodes in an active-standby configuration. If the active MDS crashes or runs out of memory, the standby node immediately assumes file tree authority within 2.5 seconds, preventing cluster-wide storage disconnections.
Where to Expand Your Stack Next
Deepen your Proxmox clustering and high-availability architecture with these masterclasses:
- Proxmox Two-Node High Availability & QDevice: External Quorum Setup
- NVMe-oF & ZFS dRAID: Building a 100GbE All-Flash Home Lab SAN
- Ceph on ZFS in Proxmox: Why Running OSDs on ZFS Destroys IOPS
People Also Ask
Can I store virtual machines on CephFS instead of RBD?
Technically yes, but it is strongly discouraged. Storing VM images inside CephFS adds unnecessary filesystem and locking overhead on top of Ceph’s object layer. RBD delivers significantly lower latency, higher 4K random write IOPS, and instant zero-copy snapshots natively integrated into Proxmox VE.
Does Ceph RBD require a Metadata Server (MDS)?
No. Ceph RBD communicates directly with Ceph OSDs using the CRUSH algorithm to calculate object placement deterministically. It does not require or use an MDS, eliminating metadata bottlenecks completely.
Can multiple VMs share the same CephFS folder at the same time?
Yes. CephFS is a POSIX-compliant distributed filesystem that fully supports concurrent multi-client read and write operations across multiple Proxmox nodes, virtual machines, and LXC containers.

