In this env, there are total 128 pgs and 6 osds, so the warning persist the entire time.
pg_num is set as following:
if data_pt and osds:
# [(Target PGs per OSD) * (# OSD) * (% Data) ]/ Size target_pg_num_raw = ((osds * constants.CEPH_TARGET_PGS_PER_OSD * data_pt / 100) / replication)
# find next highest power of 2 via shift bit length target_pg_num = 1 << (int(target_pg_num_raw) - 1).bit_length()
Where constants.CEPH_TARGET_PGS_PER_OSD = 200
and data_pt% could be 10%, 20%, 28%, 27%, 35%, 80% based on the pool type
so it's possible that when #OSD goes high, the number of groups for each osd goes below 30.
We should either 1. change how this is calculated or 2. add a cap at the end to see if it meets the minimum 30 each requirement.
In this env, there are total 128 pgs and 6 osds, so the warning persist the entire time.
pg_num is set as following:
target_ pg_num_ raw = ((osds * constants. CEPH_TARGET_ PGS_PER_ OSD * data_pt / 100) /
replicatio n)
target_ pg_num = 1 << (int(target_ pg_num_ raw) - 1).bit_length()
if data_pt and osds:
# [(Target PGs per OSD) * (# OSD) * (% Data) ]/ Size
# find next highest power of 2 via shift bit length
Where constants. CEPH_TARGET_ PGS_PER_ OSD = 200
and data_pt% could be 10%, 20%, 28%, 27%, 35%, 80% based on the pool type
so it's possible that when #OSD goes high, the number of groups for each osd goes below 30.
We should either 1. change how this is calculated or 2. add a cap at the end to see if it meets the minimum 30 each requirement.