Ceph pools define where RADOS objects live and how many copies the cluster keeps. A replicated pool stores full object copies across OSDs, making it the usual choice for RBD images, CephFS metadata, RGW indexes, and small application data where quick recovery matters more than raw capacity savings.
The pool creation command sets the pool name, pool type, and initial placement group count. Current Ceph clusters can also let the PG autoscaler choose or adjust PG counts, but a deliberate starting value is still useful when the workload size and placement plan are known before data is written.
Set the application tag before handing the pool to clients so Ceph health checks do not report an unclassified pool. For a block-image pool, the rbd tag identifies the client stack before images are created, while a small raw RADOS smoke test proves basic pool I/O without replacing workload-specific setup such as rbd pool init.
Related: How to create an erasure-coded pool in Ceph
Related: How to set a quota on a Ceph pool
Related: How to create a Ceph RBD pool
Steps to create a replicated Ceph pool:
- Check cluster health before adding the pool.
$ ceph -s cluster: id: 11111111-2222-3333-4444-555555555555 health: HEALTH_OK services: mon: 3 daemons, quorum ceph-node1,ceph-node2,ceph-node3 mgr: ceph-node1(active), standbys: ceph-node2 osd: 9 osds: 9 up, 9 in data: pools: 3 pools, 73 pgs objects: 262.15k objects, 1.1 TiB usage: 3.4 TiB used, 56 TiB / 60 TiB avail pgs: 73 active+cleanDelay pool creation when the cluster already reports degraded, backfilling, remapped, or stuck PGs. A new pool adds placement work to the same OSD set.
Related: How to check Ceph cluster health
- Decide the pool name, application, replica policy, and initial PG count.
The sample pool uses name appdata, application rbd, replica size 3, min_size 2, and pg_num 32. Choose a power-of-two PG count when setting it manually, or omit the count when the PG autoscaler should choose from observed pool usage.
Related: How to enable the Ceph PG autoscaler
- Create the replicated pool.
$ ceph osd pool create appdata 32 replicated pool 'appdata' created
The final replicated argument makes the pool type explicit. If a custom CRUSH rule is required, add the rule name after replicated.
- Set the replica count for the pool.
$ ceph osd pool set appdata size 3 set pool 7 size to 3
The size value includes the primary copy. A size of 3 keeps three total object copies when enough OSDs are available.
- Set the minimum replica count for client I/O.
$ ceph osd pool set appdata min_size 2 set pool 7 min_size to 2
A production pool with size 2 or min_size 1 can acknowledge writes with too little redundancy. Use those values only for a documented emergency or disposable test cluster.
- Enable the pool application tag.
$ ceph osd pool application enable appdata rbd enabled application 'rbd' on pool 'appdata'
Use rbd for block images, cephfs for CephFS pools, and rgw for object gateway pools. Workload-specific initialization may still be required after the generic pool exists.
- Inspect the pool detail.
$ ceph osd pool ls detail ##### snipped ##### pool 7 'appdata' replicated size 3 min_size 2 crush_rule 0 object_hash rjenkins pg_num 32 pgp_num 32 autoscale_mode on last_change 44 flags hashpspool stripe_width 0 application rbd ##### snipped #####
The target line should show the pool name, replicated type, size, min_size, pg_num, pgp_num, autoscale mode, and application tag.
- Write a small smoke-test object to the pool.
$ rados -p appdata put smoke-object /etc/hostname
The object write tests raw RADOS I/O only. For an RBD pool, continue with rbd pool init before creating images.
Related: How to create a Ceph RBD pool
- Confirm the smoke-test object exists.
$ rados -p appdata stat smoke-object appdata/smoke-object mtime 2026-06-29T06:58:44.000000+0000, size 10
- Remove the smoke-test object.
$ rados -p appdata rm smoke-object
Mohd Shakir Zakaria is a cloud architect with deep roots in software development and open-source advocacy. Certified in AWS, Red Hat, VMware, ITIL, and Linux, he specializes in designing and managing robust cloud and on-premises infrastructures.