Proxmox Ceph Storage Setup for Hyper-Converged Clusters (Complete Guide)

proxmox ceph storage setup - custom-ceph-featured.png

Our Proxmox HA cluster guide covered NFS as shared storage
for VM failover — the simplest option, but it depends on a separate NAS box. Ceph turns your
existing Proxmox nodes into the storage layer itself: each node contributes local disks to a distributed,
replicated storage pool, and any node can serve any VM’s data. This is a hyper-converged
setup — no external SAN or NFS server required.

This guide installs Ceph across a 3-node Proxmox cluster, creates monitors, managers, and OSDs, builds a
replicated RBD pool, and connects it as HA-ready shared storage.

Why Ceph instead of NFS

  • No single point of failure — NFS depends on one NAS; Ceph replicates across nodes
  • Scales with your cluster — add a node, add its disks as OSDs, capacity grows
  • Native RBD integration — Proxmox talks to Ceph directly, no NFS mount layer
  • Trade-off: needs 3+ nodes, fast networking (10 GbE recommended), and more RAM/CPU overhead
    than NFS for the same VM count

Step 1: Plan Disks and Networking Before You Start

Ceph needs dedicated raw disks for OSDs — not the disk hosting Proxmox itself. Each of your 3+ nodes should have at least one unused SSD/NVMe disk. Ceph is network-sensitive: use a dedicated 10 GbE (or faster) link for Ceph traffic, separate from your management and corosync networks if possible. Plan a private subnet (e.g. 10.0.0.0/24) just for Ceph’s public and cluster traffic.

Proxmox Ceph install and network initialization terminal
Ceph prerequisites and networking

Step 2: Install Ceph Packages on Every Node

On each node in the cluster (via GUI: node → Ceph → Install Ceph, or CLI): pveceph install --repository no-subscription. This installs Ceph binaries and registers the node with Proxmox’s Ceph management layer. Repeat identically on pve1, pve2, and pve3 — mismatched Ceph versions across nodes cause cluster health warnings.

Proxmox Ceph install dialog node package installation
Install Ceph on each node

Step 3: Initialize the Ceph Cluster Network

On the first node only: pveceph init --network 10.0.0.0/24 to set the Ceph public network. Then create the first monitor and manager: pveceph mon create and pveceph mgr create. Confirm with ceph -s — you should see HEALTH_OK with 1 monitor and 1 manager before continuing.

Proxmox Ceph init network and first monitor manager creation
Initialize Ceph and first monitor

Step 4: Add Monitors and Managers on Remaining Nodes

Ceph → Monitor → Create on pve2 and pve3 to reach an odd number of monitors (3 is standard for a 3-node cluster) — this gives Ceph its own quorum, separate from Proxmox’s corosync quorum. Add a standby manager on a second node too, so management continues if the active manager’s node goes down.

Proxmox Ceph monitor creation across three nodes
Add monitors on all nodes

Step 5: Create OSDs from Local Disks

Ceph → OSD → Create: OSD on each node. Select the unused raw disk (e.g. /dev/sdb) — Ceph will wipe it, so double-check you’re not selecting the boot disk. Repeat for every disk you’re contributing on every node. More OSDs spread across more nodes gives Ceph better failure tolerance and more parallel I/O.

Proxmox Ceph OSD creation from raw disk
Create OSDs from local disks

Step 6: Create a Replicated Pool

Ceph → Pools → Create: name it vm-storage, set size 3 / min_size 2 (each object is stored on 3 OSDs across 3 nodes; the pool stays writable if only 1 node is down). Enable PG autoscale so Ceph tunes placement groups automatically as usage grows. Check Add storage so Proxmox registers the pool right away.

Proxmox Ceph pool creation with size and min size replication
Create the vm-storage pool

Step 7: Verify the RBD Storage Is Available Cluster-Wide

Datacenter → Storage should now list vm-storage as type RBD, available on all nodes, with content types Disk image and Container. Create a test VM with its disk on vm-storage and confirm it appears identically from every node — that’s what makes live migration and HA failover possible without shared NFS.

Proxmox Datacenter storage showing Ceph RBD pool on all nodes
Verify RBD storage cluster-wide

Step 8: Confirm Cluster Health and Add HA Resources

Run ceph -s and confirm HEALTH_OK, all OSDs up and in, and placement groups active+clean. Once healthy, follow the HA cluster guide to add VMs on this pool as HA resources — Ceph now satisfies the shared-storage requirement HA needs.

Proxmox Ceph cluster health status HEALTH_OK all OSDs up
Confirm Ceph health

CLI reference

# Install and init (per node / first node)
pveceph install --repository no-subscription
pveceph init --network 10.0.0.0/24

# Monitors and managers
pveceph mon create
pveceph mgr create

# OSD from raw disk
pveceph osd create /dev/sdb

# Pool
pveceph pool create vm-storage --size 3 --min_size 2 --add_storages 1

# Health check
ceph -s
ceph osd tree

Sizing guidance

  • Minimum: 3 nodes, 1 OSD disk each — survives 1 node failure
  • Recommended: 3–5 nodes, 2+ OSD disks each, dedicated 10 GbE Ceph network
  • RAM: budget roughly 1 GB per OSD daemon on top of normal Proxmox/VM usage
  • Avoid consumer SSDs without power-loss protection — Ceph’s sync writes will bottleneck on them

Related tutorials

Image credits: All illustrations use original Proxmox VE branded artwork created
for Gnome IT Solutions — not copied from vendor marketing assets or third-party screenshots.
Tutorial text © Gnome IT Solutions.

Image credits: Screenshots are from the official
Proxmox VE documentation
(Proxmox GmbH), used under open documentation terms for educational purposes.
Tutorial text and layout © Gnome IT Solutions.