
This change aims to allow the rook ceph auto-estimation of pg's per pool. Placement groups (PGs) are subsets of each logical Ceph pool. Placement groups perform the function of placing objects (as a group)into OSDs.Ceph manages data internally at placement-group granularity: this scales better than would managing individual RADOS objects. It fixes an issue when using a simplex environment with only 1 osd it raises a warning alarm where there is too many pg's per pool, being 250 the limit and when applied there's more than this limit recommended. Rook ceph is using the reef version which doesn't require to specify the pg num at the pool creation[1] while in nautilus version the pg num specification is a must at the pool creation[2]. Thinking about the different approaches between those versions, a retro compatibility is also being implemented to preserve the pool creation in both versions, the self estimate function is preserved. comparison: simplex rook ceph without the patch: POOL PG_NUM .mgr 32 kube-cephfs-metadata 16 kube-rbd 32 kube-cephfs-data 32 images 64 cinder.backups 64 cinder-volumes 64 simplex rook ceph with the patch: POOL PG_NUM kube-rbd 32 .mgr 1 kube-cephfs-metadata 16 kube-cephfs-data 32 images 32 cinder.backups 32 cinder-volumes 32 simplex host ceph before and after the patch: dumped pgs_brief kube-rbd (1): 64 PGs dumped pgs_brief kube-cephfs-data (2): 64 PGs dumped pgs_brief kube-cephfs-metadata (3): 64 PGs dumped pgs_brief images (4): 64 PGs dumped pgs_brief cinder.backups (5): 64 PGs dumped pgs_brief cinder-volumes (6): 64 PGs Standard rook ceph without the patch: POOL PG_NUM kube-rbd 32 .mgr 1 kube-cephfs-metadata 16 kube-cephfs-data 32 images 32 cinder.backups 32 cinder-volumes 32 standard rook ceph with the patch: POOL PG_NUM kube-rbd 32 .mgr 1 kube-cephfs-metadata 16 kube-cephfs-data 32 images 32 cinder.backups 32 cinder-volumes 32 Test plan: simplex: rook-ceph: PASS - build openstack PASS - apply openstack PASS - create vm's PASS - ping between vm's PASS - volume creation/backup creation PASS - validate alarm for total pg's host-ceph: PASS - build openstack PASS - apply openstack PASS - create vm's PASS - ping between vm's PASS - volume creation/backup creation PASS - validate alarm for total pg's standard: rook-ceph: PASS - build openstack PASS - apply openstack PASS - create vm's PASS - ping between vm's PASS - volume creation/backup creation PASS - validate alarm for total pg's host-ceph: PASS - build openstack PASS - apply openstack PASS - create vm's PASS - ping between vm's PASS - volume creation/backup creation PASS - validate alarm for total pg's miscellaneous: PASS - change pool pg_num through user-overrides References: [1] - https://docs.ceph.com/en/reef/rados/operations/placement-groups/#preselecting-pg-num [2] - https://docs.ceph.com/en/nautilus/rados/operations/placement-groups/#a-preselection-of-pg-num Closes-Bug: 2122620 Change-Id: I018f7302328c3789864d7f7875fe7d2b4b31f7ee Signed-off-by: kgoncalv <kayo.goncalvesdacosta@windriver.com>
This repo is for https://github.com/openstack/openstack-helm
Changes to this repo are needed for StarlingX and those changes are not yet merged. Rather than clone and diverge the repo, the repo is extracted at a particular git SHA, and patches are applied on top.
As those patches are merged, the SHA can be updated and the local patches removed.