fuel overestimates ceph default value for pool placement groups number
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Fuel for OpenStack |
Fix Released
|
Medium
|
Kyrylo Galanov | ||
7.0.x |
Won't Fix
|
Medium
|
MOS Ceph | ||
StackLight |
Confirmed
|
Medium
|
Unassigned | ||
0.10 |
Confirmed
|
Medium
|
Unassigned | ||
0.9 |
Won't Fix
|
Medium
|
Unassigned |
Bug Description
Fuel sets the following placement group parameters in ceph.conf
osd_pool_
osd_pool_
using the formula:
Nearest power of 2 (num_of_OSDs * 100 / num_of_replica)
This formula is correct only for clusters with one pool. For clusters with many pools it overestimate the number of placement groups by the number of the pools times (the goal is to have 100 placement groups per osd or a little high).
Too large number of placement groups requires significantly more resources and time for peering (e.g. after every crushmap change, during this period clients get stuck when accessing peering placement groups). It may also cause issues during deployment (1462451).
Taking into consideration that it is much easier to increase pg num values for existing pools (pg splitting is supported) than decreasing them (currently pg merging is not supported, so the only way is to recreate the pool and copy data), it is much better if we underestimate the parameters than overestimate.
In many cases we can expect that a cluster will have at least 10 pools (images, volumes, compute + 7 pools for radosgw). So, the formula can be changed to:
max(128, Nearest power of 2 (num_of_OSDs * 100 / num_of_replica / 10))
Another option is to add a possibility for users to set this parameter manually via GUI, similarly to what we already do with ceph replication factor.
Changed in fuel: | |
milestone: | none → 7.0 |
assignee: | nobody → Fuel Library Team (fuel-library) |
status: | New → Confirmed |
Changed in fuel: | |
importance: | Undecided → Medium |
Changed in fuel: | |
assignee: | MOS Ceph (mos-ceph) → Kostiantyn Danylov (kdanylov) |
status: | Confirmed → In Progress |
Changed in fuel: | |
assignee: | Kostiantyn Danylov (kdanylov) → Andrew Woodward (xarses) |
Changed in fuel: | |
assignee: | Andrew Woodward (xarses) → Kostiantyn Danylov (kdanylov) |
tags: | added: known-issue |
Changed in fuel: | |
assignee: | Kostiantyn Danylov (kdanylov) → Sebastian Kalinowski (prmtl) |
Changed in fuel: | |
assignee: | Sebastian Kalinowski (prmtl) → Kostiantyn Danylov (kdanylov) |
Changed in fuel: | |
assignee: | Kostiantyn Danylov (kdanylov) → Vladimir Sharshov (vsharshov) |
Changed in fuel: | |
assignee: | Vladimir Sharshov (vsharshov) → Kostiantyn Danylov (kdanylov) |
tags: | added: ceph |
no longer affects: | fuel/6.1.x |
no longer affects: | fuel/7.0.x |
Changed in fuel: | |
milestone: | 7.0 → 8.0 |
status: | Fix Committed → Confirmed |
assignee: | Kostiantyn Danylov (kdanylov) → MOS Ceph (mos-ceph) |
tags: | added: customer-found |
Changed in fuel: | |
assignee: | MOS Ceph (mos-ceph) → Kostiantyn Danylov (kdanylov) |
status: | Confirmed → In Progress |
Changed in fuel: | |
assignee: | Kostiantyn Danylov (kdanylov) → Dmitry Ilyin (idv1985) |
tags: | added: area-library |
Changed in fuel: | |
assignee: | Dmitry Ilyin (idv1985) → Kostiantyn Danylov (kdanylov) |
Changed in fuel: | |
milestone: | 8.0 → 9.0 |
Changed in lma-toolchain: | |
status: | New → Confirmed |
importance: | Undecided → Medium |
milestone: | none → 1.0.0 |
Changed in lma-toolchain: | |
milestone: | 1.0.0 → 0.10.0 |
Changed in lma-toolchain: | |
milestone: | 0.10.0 → none |
tags: |
added: area-ceph removed: area-library ceph |
tags: | added: on-verification |
There is also a blueprint for this change:
https:/ /blueprints. launchpad. net/fuel/ +spec/ceph- osd-pool- default- pg-num