mds/client: file blockdiff support#61937
Conversation
mchangir
left a comment
There was a problem hiding this comment.
some early comments of a partial review
|
I will push in the mirror daemon changes to and then mark this PR as ready-for-review. |
da173b1 to
6b48bbd
Compare
|
Marking this ready for review as the latest push has integration of the block diff API with the mirror daemon. The mirror daemon code needs a bit more polishing, however, I think its good to seek reviews before starting that effort. |
|
@joscollin The latest push includes commits from PR #61539. I'll will probably integrate those changes into an existing commit and add your credits in the commit message. |
|
I'm working on fixing a bug identified in testing the mirror daemon block diff integration. |
The issue seems to be related to snapdiff not returning deleted dentry information for a file which is a symlink in a snapshot and a regular file in another snap. Discussing with @ifed01 on slack. |
6b48bbd to
0e52abe
Compare
|
To be tested with #62126 |
|
This PR is under test in https://tracker.ceph.com/issues/70332. |
0e52abe to
5accf36
Compare
|
Also fixed up a minor test refactor -- nothing but, just rearranging the test case. |
|
Question to @ceph/cephfs - does this new mds operation need a feature bit? |
EDIT: The MDS would return |
There is a failed mirror daemon test that seems related: https://pulpito.ceph.com/vshankar-2025-03-10_05:25:01-fs:mirror-wip-vshankar-testing-20250306.055054-debug-testing-default-smithi/8178206/ Working on that. |
|
Full fs suite run: https://pulpito.ceph.com/vshankar-2025-03-10_04:27:16-fs-wip-vshankar-testing-20250306.055054-debug-testing-default-smithi/ Nothing stood out at first pass, but I'll go through the files in detail to see if something new broke. |
91e1125 to
bb3be44
Compare
|
I refreshed this PR with just the mds and client changes for the new block diff operation. The mirror daemon changes will be a separate PR. |
|
@kotreshhr @mchangir PTAL - this change is |
|
jenkins test make check |
|
jenkins test make check arm64 |
|
jenkins test make check |
|
Review Comments: Overall the code looks good. I particularly tested with mds (not having blockdiff api) with the libcephfs program compiled with blockdiff api support. I am attaching the test program blockdiff.txt here for reference. Following is the program output |
|
Tests running here: https://tracker.ceph.com/issues/70394 |
While that fine, I was talking to Greg today regarding this PR in general and it would benefit to add a feature bit (feature exchange b/w the client and the mds) that's used by the client to check if the mds supports block diff. |
|
The fs suite run didn't report any failures related to this change. I plan to merge this as it is an follow up with feature bit check as mentioned in #61937 (comment). |
Any updates regarding the block size used by RADOS and the experiment that I had run to test fetching of rados block overlaps between two snaps? |
|
Rerun of failed/dead jobs as there were infra errors https://pulpito.ceph.com/khiremat-2025-03-18_09:30:13-fs-wip-vshankar-testing-20250313.072951-debug-testing-default-smithi/ |
Err. no. I need to spend time on the case you mention (currently occupied with other stuff). |
|
Yes and included in the other pr for integrating blockdiff with mirror daemon. |
|
@joscollin See #62250 |
kotreshhr
left a comment
There was a problem hiding this comment.
Looks good to me. Went through test results. Didn't find any relevant or new failures.
Thanks! I will have a look at @mchangir query and if no-one has any other comments, then this change can be merged. I will follow this up with the future check change. |
|
For @mchangir query on slack I guess when the |
|
@mchangir - I ran your test case and listsnaps: |
that looks much better |
Not that I know of.
Good line of thought. For holes, the object would be missing. blockdiff reports the whole extent if there is hole. See: https://github.com/ceph/ceph/pull/61937/files#diff-ea7cb1a6ba9fa08363b14dd00a86bc6b79e01673e93af84ffdfcdbd0d3f26b19R14639 This is fine, since there is no hole punch support in cephfs client (at least the user-space client). |
|
@mchangir @kotreshhr If there is nothing pending for this, please merge. |
Please find run wiki here. |
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
xbetween the brackets:[x]. Spaces and capitalization matter when checking off items this way.Checklist
Show available Jenkins commands
jenkins retest this pleasejenkins test classic perfjenkins test crimson perfjenkins test signedjenkins test make checkjenkins test make check arm64jenkins test submodulesjenkins test dashboardjenkins test dashboard cephadmjenkins test apijenkins test docsjenkins render docsjenkins test ceph-volume alljenkins test ceph-volume toxjenkins test windowsjenkins test rook e2e