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

mon,osd: add require_min_compat_client setting to enforce and clarify client compatibility #14959

Merged
merged 15 commits into from May 9, 2017

Conversation

Projects
None yet
1 participant
@liewegas
Member

liewegas commented May 4, 2017

  • tests
  • qa suite update
  • rename config option to include 'require'

@liewegas liewegas requested a review from May 4, 2017

@ghost

This comment has been minimized.

ghost commented May 4, 2017

Having a feature bit makes things easier for http://tracker.ceph.com/issues/19836, great !

@ghost

This comment has been minimized.

ghost commented May 4, 2017

Should we add a CrushWrapper method encode_with_choose_args_pre_luminuous_if_possible to be called instead of encode if the client is pre-luminous ? Or should that be done outside of CrushWrapper ?

@liewegas

This comment has been minimized.

Member

liewegas commented May 4, 2017

@ghost

This comment has been minimized.

ghost commented May 4, 2017

Ok.

@ghost

This comment has been minimized.

ghost commented May 8, 2017

The UNIX domain socket path /home/jenkins-build/build/workspace/ceph-pull-requests/build/src/test/td/t-7202/out/client.xx-profile-ro.15033.asok is too long

jenkins test this please

1 similar comment
@ghost

This comment has been minimized.

ghost commented May 8, 2017

The UNIX domain socket path /home/jenkins-build/build/workspace/ceph-pull-requests/build/src/test/td/t-7202/out/client.xx-profile-ro.15033.asok is too long

jenkins test this please

@ghost

This comment has been minimized.

ghost commented May 8, 2017

#15002 has the modified CrushWrapper::encode

liewegas added some commits May 4, 2017

osd/OSDMap: get_min_compat_client()
Calculate the oldest client we allow to connect.  Provide both a release
name (e.g., firefly) and a version string (e.g., "0.80").

Signed-off-by: Sage Weil <sage@redhat.com>
osd/OSDmap: add require_min_compat_client field
This is a persistent record of the compatibility for old clients that
we will enforce.  Once set, the mon will eventually prevent newer features
of the OSDMap or CRUSH maps from being used if they violate this
requirement.

Signed-off-by: Sage Weil <sage@redhat.com>
mon/OSDMonitor: default require_min_compat_client to hammer for new c…
…lusters

Signed-off-by: Sage Weil <sage@redhat.com>
crush: move default tunables up to hammer
Signed-off-by: Sage Weil <sage@redhat.com>
mon/OSDMonitor: set OSDMap require_min_compat_client on upgrade
Fill in this field once require_luminous is set.

Signed-off-by: Sage Weil <sage@redhat.com>
mon/OSDMonitor: switch primary-{affinity,temp} checks to require_min_…
…compat_client

If require_min_compat_client is set (we've finished luminous upgrade), use
that to enforce primary_temp and primary_affinity settings.  Otherwise,
use the legacy config option.

Drop the assert in update_from_paxos.

After luminous we can remove the config options entirely.

Signed-off-by: Sage Weil <sage@redhat.com>
mon/OSDMonitor: drop allow_pg_upmap option; use require_min_compat_cl…
…ient instead

Signed-off-by: Sage Weil <sage@redhat.com>
mon/OSDMonitor: prevent injection of crush map violating require_min_…
…compat_client

Signed-off-by: Sage Weil <sage@redhat.com>
include/ceph_features: rename OSDMAP_REMAP -> OSDMAP_PG_UPMAP
Missed this with the remap -> upmap rename a few weeks back.

Signed-off-by: Sage Weil <sage@redhat.com>
crush/CrushWrapper: has_[incompat_]chooseargs()
We'll use this for feature bit compat checks with clients and osds.

Signed-off-by: Sage Weil <sage@redhat.com>
osd/OSDMap: add CRUSH_CHOOSEARGS feature bit
Signed-off-by: Sage Weil <sage@redhat.com>
qa/suites: set initial require_min_compat_client
For cases where we are selecting crush tunables beyond the default
min of hammer.

Signed-off-by: Sage Weil <sage@redhat.com>
mon/OSDMonitor: 'osd set-require-min-compat-client ...'
Signed-off-by: Sage Weil <sage@redhat.com>
qa/releases/luminous: set require_min_compat_client after upgrade
Signed-off-by: Sage Weil <sage@redhat.com>
test/cli: fix cli tests
Signed-off-by: Sage Weil <sage@redhat.com>
@liewegas

This comment has been minimized.

Member

liewegas commented May 9, 2017

squashed commits and fixed cli test!

@liewegas liewegas merged commit 623c04e into ceph:master May 9, 2017

2 of 3 checks passed

default Build started sha1 is merged.
Details
Signed-off-by all commits in this PR are signed
Details
Unmodifed Submodules submodules for project are unmodified
Details

@liewegas liewegas deleted the liewegas:wip-crush-compat branch May 9, 2017

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