Bug #45809
openWhen out a osd, the `MAX AVAIL` doesn't change.
0%
Description
Environment: Luminous 12.2.12
I have a question about the pool's `MAX AVAIL` of `ceph df`.
When i out a osd, the `MAX AVAIL` doesn't change. Only when i remove the osd from the crush map of the pool, the `MAX AVAIL` decrese.
For example, I have a pool with 10 osd. When 9 osds out, `ceph df` still output the MAX AVAIL with 10 osds, not the remained 1 osd. Only when i remove the out osds from the crush map, the MAX AVAIL changed to the remained size.
But in my understanding, when the osd out, the recovery begin. When the recovery begins, the out osd has no use for the pool. If `MAX AVAIL` doesn't change, It may provide error avail size for the users.
The calculate logic is in `PGMap::get_rules_avail`. Maybe after called `get_rule_weight_osd_map`, we could recalculate the weight map to remove the osd which `osd_info.kb` is zero.
Or could modify the `get_rule_weight_osd_map`, but i don't know whether there is some other impact.
Updated by Greg Farnum almost 3 years ago
- Project changed from Ceph to RADOS
- Category deleted (
ceph cli)