Skip to content

crush: add multistep retry rules#55096

Merged
yuriw merged 19 commits intoceph:mainfrom
athanatos:sjust/for-review/wip-crush-msr
Jan 26, 2024
Merged

crush: add multistep retry rules#55096
yuriw merged 19 commits intoceph:mainfrom
athanatos:sjust/for-review/wip-crush-msr

Conversation

@athanatos
Copy link
Contributor

Checklist

  • Tracker (select at least one)
    • References tracker ticket
    • Very recent bug; references commit where it was introduced
    • [x ] New feature (ticket optional)
    • [ x] Doc update (no ticket needed)
    • Code cleanup (no ticket needed)
  • Component impact
    • Affects Dashboard, opened tracker ticket
    • Affects Orchestrator, opened tracker ticket
    • [ x] No impact that needs to be tracked
  • Documentation (select at least one)
    • [x ] Updates relevant documentation
    • No doc update is appropriate
  • Tests (select at least one)
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

The existing implementation checks that the currently live
OSDs support the pending crush features, but we don't
actually check that require_osd_release is new enough.

Signed-off-by: Samuel Just <sjust@redhat.com>
We're going to add more rule types that don't map directly onto
pool types.

Signed-off-by: Samuel Just <sjust@redhat.com>
Signed-off-by: Samuel Just <sjust@redhat.com>
Signed-off-by: Samuel Just <sjust@redhat.com>
@athanatos
Copy link
Contributor Author

@athanatos
Copy link
Contributor Author

Checking/fixing make check failures -- related to tool output differences

Signed-off-by: Samuel Just <sjust@redhat.com>
Signed-off-by: Samuel Just <sjust@redhat.com>
Signed-off-by: Samuel Just <sjust@redhat.com>
Add rule_valid_for_pool_type to CrushWrapper to generalize
rule type <-> pool type mapping to include the new MSR
types.

Signed-off-by: Samuel Just <sjust@redhat.com>
Signed-off-by: Samuel Just <sjust@redhat.com>
Signed-off-by: Samuel Just <sjust@redhat.com>
Signed-off-by: Samuel Just <sjust@redhat.com>
Signed-off-by: Samuel Just <sjust@redhat.com>
…les flags

Signed-off-by: Samuel Just <sjust@redhat.com>
Adds support for crush-osds-per-failure-domain and
crush-num-failure-domains via MSR rules.

Signed-off-by: Samuel Just <sjust@redhat.com>
Signed-off-by: Samuel Just <sjust@redhat.com>
Signed-off-by: Samuel Just <sjust@redhat.com>
Signed-off-by: Samuel Just <sjust@redhat.com>
Signed-off-by: Samuel Just <sjust@redhat.com>
@athanatos athanatos force-pushed the sjust/for-review/wip-crush-msr branch from 0c08d59 to 38bd19a Compare January 9, 2024 03:27
Newly added profile options may break this test otherwise.

Signed-off-by: Samuel Just <sjust@redhat.com>
@athanatos athanatos requested a review from a team as a code owner January 9, 2024 19:36
@athanatos athanatos requested review from afreen23 and ivoalmeida and removed request for a team January 9, 2024 19:36
@athanatos athanatos requested a review from ljflores January 12, 2024 20:48
@ljflores ljflores requested review from ljflores and removed request for ljflores January 12, 2024 20:48
step emit
}

CRUSH MSR rules are a distinct type of CRUSH rule which supports retrying steps
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
CRUSH MSR rules are a distinct type of CRUSH rule which supports retrying steps
CRUSH MSR (multi-step retry) rules are a distinct type of CRUSH rule which supports retrying steps

@athanatos athanatos requested a review from jdurgin January 17, 2024 22:16
int **step_vecs;
};

/// encapsulates output space, invariant through crush_msr_do_rule invocation
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

invariant isn't the right word -- the output space remains the same but is mutated as items are output (out[i] and returned_so_far). TODO

@athanatos
Copy link
Contributor Author

jenkins test make check arm64

@anthonyeleven
Copy link
Contributor

Suggest a few sentences in the PR description.

@ljflores
Copy link
Member

@athanatos
Copy link
Contributor Author

Let's hold of on merging for now, I'll take care of merging it.

@yuriw yuriw merged commit 37d5d93 into ceph:main Jan 26, 2024
@athanatos
Copy link
Contributor Author

Once the revert merges, I'll repost this PR.

@athanatos athanatos mentioned this pull request Jan 26, 2024
14 tasks
@athanatos
Copy link
Contributor Author

#55332 is the new iteration of this PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

4 participants