-
Notifications
You must be signed in to change notification settings - Fork 5.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RADOS: Generalize stretch mode pg temp handling to be usable without stretch mode #56233
Open
kamoltat
wants to merge
4
commits into
ceph:main
Choose a base branch
from
kamoltat:wip-ksirivad-fix-64802
base: main
Could not load branches
Branch not found: {{ refName }}
Could not load tags
Nothing to show
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
kamoltat
changed the title
[WIP] src/mon/OSDMonitor: Added peering_bucket_count & peering_bucket_barrier in prepare_new_pool
[WIP] RADOS: Generalize stretch mode pg temp handling to be usable without stretch mode
Mar 15, 2024
kamoltat
force-pushed
the
wip-ksirivad-fix-64802
branch
from
March 20, 2024 15:57
de33711
to
8413e1c
Compare
kamoltat
force-pushed
the
wip-ksirivad-fix-64802
branch
6 times, most recently
from
March 25, 2024 13:53
3b504ac
to
1b24e98
Compare
kamoltat
force-pushed
the
wip-ksirivad-fix-64802
branch
from
March 26, 2024 12:44
3bbda7a
to
a2dc1ef
Compare
kamoltat
force-pushed
the
wip-ksirivad-fix-64802
branch
from
March 26, 2024 17:31
3739add
to
2969da8
Compare
kamoltat
force-pushed
the
wip-ksirivad-fix-64802
branch
from
April 2, 2024 19:16
2969da8
to
a9ec826
Compare
Tested the newly created integration test: |
kamoltat
force-pushed
the
wip-ksirivad-fix-64802
branch
from
April 2, 2024 20:05
a9ec826
to
b79cec7
Compare
kamoltat
changed the title
[WIP] RADOS: Generalize stretch mode pg temp handling to be usable without stretch mode
RADOS: Generalize stretch mode pg temp handling to be usable without stretch mode
Apr 2, 2024
kamoltat
force-pushed
the
wip-ksirivad-fix-64802
branch
6 times, most recently
from
April 5, 2024 20:32
069bd14
to
ea789dd
Compare
14 tasks
kamoltat
force-pushed
the
wip-ksirivad-fix-64802
branch
from
May 9, 2024 20:35
5087e71
to
4ad3ec7
Compare
@gregsfortytwo thank you for your review, I have addressed every comment you've made with the new commit |
kamoltat
force-pushed
the
wip-ksirivad-fix-64802
branch
from
May 10, 2024 15:05
4ad3ec7
to
e1c73ce
Compare
jenkins test api |
kamoltat
force-pushed
the
wip-ksirivad-fix-64802
branch
3 times, most recently
from
May 15, 2024 18:52
35ab017
to
dd19429
Compare
@anthonyeleven was wondering if you have some time to take a look at the docs for this |
jenkins test api |
jenkins test make check |
jenkins test api |
14 tasks
kamoltat
force-pushed
the
wip-ksirivad-fix-64802
branch
2 times, most recently
from
May 28, 2024 15:40
a872fbf
to
f8316e1
Compare
kamoltat
force-pushed
the
wip-ksirivad-fix-64802
branch
4 times, most recently
from
May 31, 2024 14:21
dd83bd0
to
dcba1fd
Compare
In the command `ceph osd pool stretch set` <pool> <peering_crush_bucket_count> <peering_crush_bucket_target> <peering_crush_bucket_barrier> <crush_rule> <size> <min_size> user has the option of setting the value of `peering_crush_bucket_{count|target|barrier}`. This will then allow the utilization `calc_replicated_acting_stretch`, since with `peering_crush_bucket_count != 0` the pool is now a stretch_pool and we can handle pg_temp better by settubg barriers and limits to how much OSDs should be in a pg_temp. This will enable the specify pool to handle pg_temp properly during create_acting, as a stretch pool should. User can also use the command: `osd pool stretch show <pool> ` to show all the stretch related information for the pool pool: cephfs.a.data pool_id: 3 is_stretch_pool: 1 peering_crush_bucket_count: 3 peering_crush_bucket_target: 3 peering_crush_bucket_barrier: 8 crush_rule: replicated_rule_custom size: 3 min_size: 2 User can also unset the stretch pool wiith the commnad: `osd pool stretch unset <pool>` However, the pool must be a stretch pool. Fixes: https://tracker.ceph.com/issues/64802 Signed-off-by: Kamoltat <ksirivad@redhat.com>
Test the following new Ceph CLI commands: `ceph osd pool stretch set` `ceph osd pool stretch unset` `ceph osd pool stretch show` `qa/workunits/mon/mon-stretch-pool.sh` will create the stretch cluster while performing input validation for the CLI Commands mentioned above. `qa/tasks/stretch_cluster.py` is in charge of setting a pool to stretch cluster and checks whether it prevents PGs from the going active when there is not enough buckets available in the acting set of PGs to go active. Also, test different MON fail over scenarios after setting pool as stretch `qa/suites/rados/singleton/all/mon-stretch-pool.yaml` brings the scripts together. Fixes: https://tracker.ceph.com/issues/64802 Signed-off-by: Kamoltat <ksirivad@redhat.com>
…|show Fixes: https://tracker.ceph.com/issues/64802 Signed-off-by: Kamoltat <ksirivad@redhat.com>
kamoltat
force-pushed
the
wip-ksirivad-fix-64802
branch
4 times, most recently
from
June 2, 2024 21:44
4d36186
to
525aecb
Compare
Test the case where 2 DC loses connection with each other for a 3 AZ stretch cluster with stretch pool enabled. Check if cluster is accessible and can accept read/write operations Signed-off-by: Kamoltat <ksirivad@redhat.com>
kamoltat
force-pushed
the
wip-ksirivad-fix-64802
branch
from
June 2, 2024 23:34
525aecb
to
85a1e5a
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
ATTENTION:
THIS PR SHOULD BE TESTED IN CONJUNCTION WITH #57381
Recommend merging #57381 before this PR.
In the command
ceph osd pool stretch set
user has the option of setting the value of
peering_crush_bucket_{count|target|barrier}
.This will then allow the utilization
calc_replicated_acting_stretch
,since with
peering_crush_bucket_count != 0
the pool is now a stretch_pool and we can handle pg_temp
better by setting barriers and limits to how much OSDs
should be in a
pg_temp
.This will enable the specify pool to
handle
pg_temp
properly duringcreate_acting
, as a stretch poolshould.
Users can also use the command:
osd pool stretch show <pool>
to show all the stretch related information for the pool
pool: cephfs.a.data
pool_id: 3
is_stretch_pool: 1
peering_crush_bucket_count: 3
peering_crush_bucket_target: 3
peering_crush_bucket_barrier: 8
crush_rule: replicated_rule_custom
size: 3
min_size: 2
Users can also unset the stretch pool with the command:
osd pool stretch unset <pool>
However, the pool must be a stretch pool.
Fixes: https://tracker.ceph.com/issues/64802
Contribution Guidelines
To sign and title your commits, please refer to Submitting Patches to Ceph.
If you are submitting a fix for a stable branch (e.g. "quincy"), please refer to Submitting Patches to Ceph - Backports for the proper workflow.
When filling out the below checklist, you may click boxes directly in the GitHub web UI. When entering or editing the entire PR message in the GitHub web UI editor, you may also select a checklist item by adding an
x
between the brackets:[x]
. Spaces and capitalization matter when checking off items this way.Checklist
Show available Jenkins commands
jenkins retest this please
jenkins test classic perf
jenkins test crimson perf
jenkins test signed
jenkins test make check
jenkins test make check arm64
jenkins test submodules
jenkins test dashboard
jenkins test dashboard cephadm
jenkins test api
jenkins test docs
jenkins render docs
jenkins test ceph-volume all
jenkins test ceph-volume tox
jenkins test windows
jenkins test rook e2e