Ceph Management
Monitor and manage Ceph storage directly from PegaProx. Compatible with PVE 7, 8, and 9 (including Ceph Squid 19.2.x via multi-node fallback and cluster metadata endpoint).
- Cluster health status and IOPS metrics
- OSD status and management
- Pool management (list, create, modify)
- Usage statistics per pool
- Integration with VM storage selection
RBD Mirroring
PegaProx supports Ceph RBD mirroring for replicating block device images between clusters:
- Pool mode - All images in the pool are mirrored automatically
- Image mode - Select individual RBD images to mirror
- View mirror sync status and health per pool
- Peer management (add/remove mirror peers)
RBD mirroring requires the rbd-mirror daemon on both clusters and a pool configured with rbd mirror pool enable. PegaProx manages the configuration but the daemon must be installed separately.
API Endpoints
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/clusters/{id}/datacenter/ceph |
Cluster-wide aggregate: health, OSD/MON/MDS/MGR |
GET |
/api/clusters/{id}/nodes/{node}/ceph/status |
Per-node Ceph status |
GET POST |
/api/clusters/{id}/nodes/{node}/ceph/osd |
List / create OSDs |
DELETE |
/api/clusters/{id}/nodes/{node}/ceph/osd/{osdid} |
Remove an OSD |
POST |
/api/clusters/{id}/nodes/{node}/ceph/osd/{osdid}/{action} |
OSD action (in / out / up / down) |
GET POST DELETE |
/api/clusters/{id}/nodes/{node}/ceph/mon[/{monid}] |
List / create / remove monitors |
GET POST |
/api/clusters/{id}/nodes/{node}/ceph/pool |
List / create pools |
PUT DELETE |
/api/clusters/{id}/nodes/{node}/ceph/pool/{name} |
Modify / delete a pool |
GET POST DELETE |
/api/clusters/{id}/nodes/{node}/ceph/fs[/{name}] |
List / create / remove CephFS |
GET |
/api/clusters/{id}/nodes/{node}/ceph/mds |
Metadata servers |
GET |
/api/clusters/{id}/nodes/{node}/ceph/mgr |
Managers |
GET |
/api/clusters/{id}/nodes/{node}/ceph/rules |
CRUSH rules |
GET |
/api/clusters/{id}/ceph/mirror/overview |
RBD mirroring overview |
POST |
/api/clusters/{id}/ceph/mirror/pool/{pool}/enable\|disable |
Enable / disable pool mirroring |
POST |
/api/clusters/{id}/ceph/mirror/pool/{pool}/peer |
Add a mirror peer |
DELETE |
/api/clusters/{id}/ceph/mirror/pool/{pool}/peer/{uuid} |
Remove a mirror peer |
POST |
/api/clusters/{id}/ceph/mirror/pool/{pool}/image/{image}/enable\|disable\|promote\|demote\|resync |
Per-image mirroring actions |
GET POST |
/api/clusters/{id}/ceph/mirror/pool/{pool}/schedule |
Mirror snapshot schedule |
CRUSH Tree: Proxmox returns OSD data as nested CRUSH tree. PegaProx flattens it into a simple OSD list, annotated with host and CRUSH location.
Creating a Pool via API
bash
curl -X POST https://pegaprox.local:5000/api/clusters/{id}/ceph/pools \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"name": "vm-pool", "size": 3, "pg_num": 128}'
size = replication factor (3 copies). Adjust pg_num based on OSD count (~100 PGs per OSD per pool).
RBD Mirroring Setup
Enable Mirroring
Select pool, choose mode: pool (mirrors all) or image (opt-in per image).
Add Peer
Provide remote Ceph monitor addresses and credentials.
Verify Sync
Check sync state, last sync time, and replication lag in dashboard.