in libraries/ceph_chef_helper.rb [193:223]
def get_pool_pg_count(pool_type, pool_index, type, num_of_pool_groups, federated)
val = node['ceph']['pools']['pgs']['num']
pool = if federated
node['ceph']['pools'][pool_type]['federated']['pools'][pool_index]
else
node['ceph']['pools'][pool_type]['pools'][pool_index]
end
if pool
calc = node['ceph']['pools']['pgs']['calc']
total_osds = calc['total_osds']
size = if type == 'erasure'
calc['erasure_size']
else
calc['replicated_size']
end
size = 1 if size <= 0
target_pgs_per_osd = calc['target_pgs_per_osd']
data_percent = pool['data_percent']
num_of_pool_groups = 1 if num_of_pool_groups <= 0
num = [(target_pgs_per_osd * total_osds * (data_percent / 100) / num_of_pool_groups) / size, calc['min_pgs_per_pool']].max
val = ceph_chef_power_of_2(num)
end
val
end