Ceph Concepts¶
Here's a detailed overview of Ceph storage concepts:¶
Architecture¶
- Distributed Storage System Ceph is a distributed storage system designed to provide scalable, reliable, and high-performance storage. It eliminates single points of failure, allowing for continuous operation.
1. Components¶
- Monitors (MON)
- Maintain cluster state and configuration.
- Ensure consensus among nodes.
- Managers (MGR)
- Handle cluster management and monitoring.
- Provide API for external tools.
- Object Storage Devices (OSD)
- Each drive on each node is one OSD.
- Create pools out of HDD, SSD OSDs for better performance and separation.
- Store data.
- Responsible for data replication and recovery.
- Metadata Servers (MDS)
- Manage file system metadata.
- Optimize file system performance.
Data Storage¶
- Object Storage
- Stores data as objects within pools.
- Supports S3 and Swift APIs.
- Pools
- Logical grouping of OSDs.
- Define storage policies (replication, erasure coding).
- Objects
- Stored data with associated metadata.
- Support for large objects (multiple GBs).
- Block Storage
- Provides block devices (RBD) for VMs and applications.
- Supports thin provisioning and snapshots.
- File System Storage
- CephFS provides a POSIX-compliant file system.
- Supports file and directory operations.
Data Replication and Distribution¶
- Replication
- Ensures data durability through replication.
- Configurable replication factor (e.g., 3x).
- Replication Factor
- Configurable replication factor.
- Affects data durability and storage capacity.
- Placement Groups (PG)
- Distribute data across OSDs.
- Optimize data placement and recovery.
- PG Count
- Configurable PG count.
- Affects data distribution and performance.
Cluster Management¶
- Cluster Configuration
- Managed through configuration files and CLI.
- Supports dynamic reconfiguration.
- Monitoring and Maintenance
- Ceph provides tools for monitoring and maintenance.
- Supports integration with external tools (e.g., Grafana, Prometheus).
Data Protection and Security¶
- Data Encryption
- Optional data encryption.
- Supports SSL/TLS encryption.
- Authentication and Authorization
- Ceph supports authentication and authorization.
- Integrates with external auth systems (e.g., LDAP).
Performance Optimization¶
- Erasure Coding
- Efficient data storage and recovery.
- Supports various erasure coding algorithms.
- Cache Tiering
- Improves performance with caching.
- Supports SSD and NVMe caching.
Advanced Topics¶
- BlueStore
- Ceph's object store storage engine.
- Optimized for performance and efficiency.
- CephFS
- POSIX-compliant file system.
- Supports snapshots and quotas.
- RBD (RADOS Block Device)
- Provides block devices for VMs and applications.
- Supports thin provisioning and snapshots.
Setting up Ceph Storage for Proxmox Cluster¶
Requirements¶
- Minimum 3 servers for the Ceph cluster (max depending on the desired level of redundancy)
- Each server should have:
- A minimum of 2 disks (1 for the operating system and 1 for Ceph storage)
- A minimum of 8 GB of RAM
- A 64-bit CPU
- Spare disks on all nodes for Ceph should be of similar/same size to avoid capacity loss.
- Proxmox VE 6.x or later installed on each node
- A separate network for Ceph communication (optional but recommended)
Steps¶
1: Install Ceph on Each Node¶
Update the node and install using the Ceph section in Proxmox UI. Do this for all the nodes.
2: Add Ceph monitors for each node¶
For any of the nodes, navigate to Ceph -> Monitors and click create to add monitors. Do this to have one monitor for each node.
3: Add additional Ceph managers for each node¶
One manager is fine for the cluster, but its good to create multiple managers that stay in standby mode.
4: Create OSDs¶
OSDs can be created one per storage disk. Go the each node, Ceph -> OSD and create OSD for each node. They all will appear together.
OSDs on LVM partition¶
Generally, OSDs in Proxmox only works on full disks but using below ceph commands we can setup OSDs on an LVM.
You may get some error lines in some cases but if creation is successful(last line), things should work
Node without Monitor/Manager
if your node is not a manager or monitor then you need to run this command as well
ln -s /etc/pve/ceph.conf /etc/ceph/ceph.conf
5: Create Ceph Pool¶
Create pool, ceph -> pool Size -> Number of replicas Min Size -> Min number of replicas.
A cluster of size 3 can have max replica 3.
5: Output¶
For the main cluster interface, this is how it should look.

Ceph Issues and Solutions¶
rbd error: rbd: listing images failed: (2) No such file or directory (500)¶
The usually happens when a disk migration to ceph fails or there is a corrupt disk in ceph.
Issue following commands to list and remove corrupt disk
List disk - This should fail with same error
List disk - This should work
List disk - delete corrupt disk
Slow Migration¶
If the VM is running during migration, it'll be slow. Migrate after turning off the VM.
Remove Ceph from Proxmox¶
Steps - Migrate all VM disks to another store. - Delete ceph Storage pool - Stop OSDs, Select OUT and destroy - Stop and destroy monitors and managers - Run following commands to make purge remaining files.



