Bug #46325
closedA pool at size 3 should have a min_size 2
0%
Description
The get_osd_pool_default_min_size() calculation of size - size/2 for the min_size should special case size 3 and just return 2.
Updated by David Zafman over 3 years ago
- Status changed from New to In Progress
- Pull request ID set to 36731
- Component(RADOS) OSD added
Updated by Neha Ojha over 3 years ago
- Status changed from In Progress to Won't Fix
On a vstart cluster after removing "osd_pool_default_min_size = 1" from vstart.sh
./bin/ceph osd pool create foo
pool 'foo' created
./bin/ceph osd dump
pool 2 'foo' replicated size 3 min_size 2 crush_rule 0 object_hash rjenkins pg_num 32 pgp_num 32 autoscale_mode on last_change 23 flags hashpspool stripe_width 0
./bin/ceph osd pool set foo size 5
pool 2 'foo' replicated size 5 min_size 3 crush_rule 0 object_hash rjenkins pg_num 32 pgp_num 32 autoscale_mode on last_change 24 flags hashpspool stripe_width 0
Updated by David Zafman over 3 years ago
I booted vstart without this change using my other pull request:
commit 61828658e147fc1cb4ba92b66c6930279529ed75 (HEAD -> wip-39012, backup/wip-39012)
MDS=0 MON=1 MGR=1 OSD=3 ../src/vstart.sh -l -d -n -o "--osd_pool_default_min_size=0"
ceph osd pool create test ...
ceph osd dump
pool 1 'device_health_metrics' replicated size 3 min_size 1 crush_rule 0 object_hash rjenkins pg_num 1 pgp_num 1 autoscale_mode on last_change 10 flags hashpspool stripe_width 0 pg_num_min 1 application mgr_devicehealth pool 2 'test' replicated size 3 min_size 1 crush_rule 0 object_hash rjenkins pg_num 1 pgp_num 1 autoscale_mode on last_change 23 flags hashpspool stripe_width 0 max_osd 3
Updated by Vikhyat Umrao over 3 years ago
This is from `octopus` - `15.2.4`.
# ceph --admin-daemon /var/run/ceph/0dbc6220-cb6a-11ea-9694-b083fee95e35/ceph-mon.dell-per630-13.asok config show | grep min_size "bluefs_log_compact_min_size": "16777216", "bluestore_extent_map_shard_min_size": "150", "journal_align_min_size": "65536", "osd_allow_recovery_below_min_size": "true", "osd_heartbeat_min_size": "2000", "osd_hit_set_min_size": "1000", "osd_pool_default_min_size": "0", [root@dell-per630-13 ~]# ceph osd pool create test 8 pool 'test' created [root@dell-per630-13 ~]# ceph osd pool ls detail pool 1 'device_health_metrics' replicated size 3 min_size 2 crush_rule 0 object_hash rjenkins pg_num 1 pgp_num 1 autoscale_mode on last_change 13 flags hashpspool stripe_width 0 pg_num_min 1 application mgr_devicehealth pool 2 '.rgw.root' replicated size 3 min_size 2 crush_rule 0 object_hash rjenkins pg_num 32 pgp_num 32 autoscale_mode on last_change 43 flags hashpspool stripe_width 0 application rgw pool 3 'us-east.rgw.log' replicated size 3 min_size 2 crush_rule 0 object_hash rjenkins pg_num 32 pgp_num 32 autoscale_mode on last_change 47 flags hashpspool stripe_width 0 application rgw pool 4 'us-east.rgw.control' replicated size 3 min_size 2 crush_rule 0 object_hash rjenkins pg_num 32 pgp_num 32 autoscale_mode on last_change 48 flags hashpspool stripe_width 0 application rgw pool 5 'us-east.rgw.meta' replicated size 3 min_size 2 crush_rule 0 object_hash rjenkins pg_num 8 pgp_num 8 autoscale_mode on last_change 162 lfor 0/162/160 flags hashpspool stripe_width 0 pg_autoscale_bias 4 pg_num_min 8 application rgw pool 6 'test' replicated size 3 min_size 2 crush_rule 0 object_hash rjenkins pg_num 8 pgp_num 8 autoscale_mode on last_change 431 flags hashpspool stripe_width 0
It works and that has been the case in L and N also.
Updated by David Zafman over 3 years ago
- Status changed from Won't Fix to Rejected
My testing using vstart is wrong because somehow the config osd_pool_default_min_size == 1 even though I specified that it be 0.