-
Notifications
You must be signed in to change notification settings - Fork 559
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
rbd: added RBD features support for krbd #2514
Conversation
07fdc0e
to
54a5e6e
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It will be great if we can add e2e tests for each of these features with krbd and rbd-nbd mounters?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@k0ste Thanks for the contribution please take care of the below items
- Update the existing documentations
- Update storageclass in helm charts
- Add E2E for CreateVolume, CreateSnapshot, PVC-PVC Clone, PVC restore, etc for new image features added
fe67565
to
0a4a8dd
Compare
Updated
Updated
Test added |
2576ff0
to
e7390ee
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@k0ste CI is failing can you please check
@k0ste Thanks for this PR, looking forward to this merging. We've recently hit this issue too of using the features already supported in the kernel but not being allowed by ceph-csi. |
Honestly! I'm not quite convinced with the approach that we are taking in using various features of krbd. The feature set will be dependent on the kernel version (rbd driver loaded). We should check for krbd supported features first and if the feature is available use krbd else we should fall back to rbd-nbd. |
I agree that detecting it would be even better. But without this PR we are just blocking features supported in most of the current LTS distros kernel versions which also isn’t a good approach. |
ce754bc
to
9dfb83a
Compare
I think better is fail, because krbd & rbd-nbd performance is dramatically different. Admin should get error and make a self decision - use nbd or update kernel |
Do you have any benchmarking results comparing both? |
FYI: for detecting the runtime krbd features supported, here is the PR: #2556 |
@k0ste agreed, however if admin is flexible to fallback, may be the SC option ( |
This pull request now has conflicts with the target branch. Could you please resolve conflicts and force push the corrected changes? 🙏 |
@Mergifyio rebase |
✅ Branch has been successfully rebased |
@k0ste do you need any help in moving this forward? if you are busy I can cherry-pick your commit and take this to completion by this week. please let me know what do you think? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
need to adjust the go-tests and fix go linter errors
internal/rbd/rbd_util.go
Outdated
needRbdNbd: false, | ||
dependsOn: []string{librbd.FeatureNameObjectMap}, | ||
}, | ||
librbd.FeatureNameDeepFlatten: { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@k0ste any specific reason for adding deep-flatten image feature? currently deep flatten is handled internally by cephcsi to make clones and snapshots independent of each other
I have tested this on my local minikube machine, as expected the mapping fails as minikube uses a lower kernel version (4.9.x).
@k0ste if you can remove the e2e changes we can continue on reviews other changes |
What exactly e2e changes? I was included everything tips that your team left🤔 |
the newly added e2e test will fail in our e2e environment as we are using a minikube to create a kubernetes cluster. please check #2514 (comment) |
6209d06
to
6d462d8
Compare
|
Please run |
Some CI test failed due:
|
CI is not going to pass as minikube comes with a kernel version of |
Added support for `object-map, fast-diff` Signed-off-by: Konstantin Shalygin <k0ste@k0ste.ru>
e2e changes was removed |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
{ | ||
"layering,journaling", | ||
&rbdVolume{ | ||
Mounter: rbdNbdMounter, | ||
Mounter: rbdDefaultMounter, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why do we need this change?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
no harm in this one.
Yes, but I don't think it's useful as this will never get executed in near time as we are still on 4.9 and what we need is 5.3 and moreover, we need to rework that one to check the kernel version on all nodes and schedule pod for that node. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
{ | ||
"layering,journaling", | ||
&rbdVolume{ | ||
Mounter: rbdNbdMounter, | ||
Mounter: rbdDefaultMounter, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
no harm in this one.
@Mergifyio rebase |
☑️ Nothing to do
|
Soon minikube will have 5.x, minkube community is working on it. I just wanted to avoid rework on it later. @k0ste I don't insist on having the e2e, but please create an issue for this so that we don't miss the e2e coverage later. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well, the changes LGTM. My only concern is on the e2e tests. Assuming @k0ste will open an issue for e2e tests later. Approving this now.
Added support for
object-map, fast-diff
Describe what this PR does
This PR added support for all currently supported krbd image features:
The features is described in man rbd
Related issues
Mention any github issues relevant to this PR. Adding below line
will help to auto close the issue once the PR is merged.
Fixes: #2513