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

krbd mode for librbd_fsx #1766

Merged
merged 11 commits into from May 8, 2014
Merged

krbd mode for librbd_fsx #1766

merged 11 commits into from May 8, 2014

Conversation

idryomov
Copy link
Contributor

@idryomov idryomov commented May 5, 2014

No description provided.

idryomov added 11 commits May 7, 2014 17:30
Update usage to include all options and flags.

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Move prterrcode() and simple_err() so that all printing functions are
close together.

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
temp_buf is used for reads, so align it by readbdy.

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Use posix_memalign() to allocate good_buf and temp_buf, which must be
writebdy and readbdy aligned respectively.  Using round_ptr_up() the
way it is used makes fsx crash on free()s at the end of main(), because
the pointer returned by malloc() is overwritten by the aligned pointer.

Drop round_ptr_up() as it is no longer used.

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
In preparation for krbd mode support, change check_trunc_hack() to
resize to a sector-size aligned value.  The kernel will not work with
images whose size is not sector-size aligned.

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
In preparation for krbd mode support, provide an option to specify
alignment for discards.  The kernel will reject discard requests whose
offset and length are not sector-size aligned.

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
In preparation for krbd mode support, introduce an option to disable
randomized striping.  The kernel as of 3.15 does not support "fancy"
striping and will not map images with non-default striping values.

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Add krbd mode support (-K) to test krbd in the same way librbd is
tested.  This introduces a dependency on libkrbd and, because it's
a C++ static library, requires C++ linking.  The rbd_operations
framework can be extended in the future to also test rbd_fuse.

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
docloseopen() always opens $iname image.  This is bad, because the
image we had opened could have been something like $iname-clone3.  Fix
it by leveraging the fact that rbd_ctx has an image name field.

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Wire up O_DIRECT mode (-Z) for krbd, to have a workaround for possible
problems with BLKDISCARD leaving stale entries in the buffer cache in
place.

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
check_clone() allocates temporary good_buf and temp_buf with malloc(),
which is not good enough for krbd with O_DIRECT.

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
@idryomov
Copy link
Contributor Author

idryomov commented May 7, 2014

Pushed fixes and direct IO mode for krbd.

jdurgin added a commit that referenced this pull request May 8, 2014
krbd mode for librbd_fsx

Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
@jdurgin jdurgin merged commit ff3987d into master May 8, 2014
@jdurgin jdurgin deleted the wip-fsx-krbd branch May 8, 2014 01:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants