Skip to content
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

ceph-volume/batch: fail on filtered devices when non-interactive #31978

Merged
merged 1 commit into from Feb 7, 2020

Conversation

jan--f
Copy link
Contributor

@jan--f jan--f commented Dec 3, 2019

When batch is called non-interactively and a user explicitly specifies,
say a db-device, this will be filtered when unavailable. This can cause
the resulting OSD to be very different from the users intention
(standalone vs external db when the db-device was filtered). If devices
get filtered in non-interactive mode, ceph-volume should fail.

Fixes: https://tracker.ceph.com/issues/43105

Signed-off-by: Jan Fajerski jfajerski@suse.com

Checklist

  • References tracker ticket
  • Updates documentation if necessary
  • Includes tests for new functionality or reproducer for bug

Show available Jenkins commands
  • jenkins retest this please
  • 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 backend
  • jenkins test docs
  • jenkins render docs
  • jenkins test ceph-volume all
  • jenkins test ceph-volume tox

@jan--f
Copy link
Contributor Author

jan--f commented Dec 3, 2019

jenkins test ceph-volume tox

@jan--f
Copy link
Contributor Author

jan--f commented Dec 3, 2019

jenkins test ceph-volume all

@jan--f
Copy link
Contributor Author

jan--f commented Dec 3, 2019

One tox failure is addressed in #31979.

@alfredodeza The tox test also has a unicode decode failure again, mind taking a look?

@jan--f
Copy link
Contributor Author

jan--f commented Jan 10, 2020

ping @sebastian-philipp

@sebastian-philipp
Copy link
Contributor

Hm. We're already filtering devices in cephadm now in #32545 . I'd be 👍 to just bail out immediately, if any device is not available. Any objections @leseb ?

@jan--f
Copy link
Contributor Author

jan--f commented Jan 14, 2020

Hm. We're already filtering devices in cephadm now in #32545 . I'd be +1 to just bail out immediately, if any device is not available. Any objections @leseb ?

Hmm the intention is to get batch idempotent, so I'd rather not just fail when any unavailable drive is passed.

@sebastian-philipp
Copy link
Contributor

At least when using drive Groups, we're already loosing idempotency. Maybe we'rebgoing seeing some unexpected interactions between python-common's drive groups and c-v's idempot algorithm

@jan--f
Copy link
Contributor Author

jan--f commented Jan 14, 2020

At least when using drive Groups, we're already loosing idempotency.

Not sure I understand why? If DG are already filtering so that only available drives make it to c-v then there is no harm done? Idempotency is only achievable is the call is fully specified (i.e. sizes are passed and such) and at that point it makes no difference if an unavailable drive is filtered out before it gets to c-v.
What we do gain however is less surprises for users running ceph-volume directly..

@jschmid1
Copy link
Contributor

I agree with @jan--f 's proposal here. It's about the non-interactive mode only, which should give the user immediate feedback instead of magically hiding disks. For the fully automated, drivegroup based call we're basically always calling the same command which should suffice for achieving idempotency.

@sebastian-philipp
Copy link
Contributor

🤷

@sebastian-philipp sebastian-philipp removed their request for review January 15, 2020 08:54
@jan--f
Copy link
Contributor Author

jan--f commented Jan 27, 2020

retest this please

When batch is called non-interactively and a user explicitly specifies,
say a db-device, this will be filtered when unavailable. This can cause
the resulting OSD to be very different from the users intention
(standalone vs external db when the db-device was filtered). If devices
get filtered in non-interactive mode, ceph-volume should fail.

Fixes: https://tracker.ceph.com/issues/43105

Signed-off-by: Jan Fajerski <jfajerski@suse.com>
@jan--f
Copy link
Contributor Author

jan--f commented Jan 28, 2020

jenkins test ceph-volume tox

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants