Commit Graph

21919 Commits

Author SHA1 Message Date
John Wilkins
256c665eab doc: Did a little clean-up work in the cephx guide.
Signed-off-by: John Wilkins <john.wilkins@inktank.com>
2012-10-16 15:23:34 -07:00
John Wilkins
0818e1e95a doc: Added a new intro for cephx authentication.
Signed-off-by: John Wilkins <john.wilkins@inktank.com>
2012-10-16 15:22:25 -07:00
Yehuda Sadeh
d2afddd457 rgw: multiple coverity fixes
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2012-10-16 14:13:38 -07:00
Sam Lang
58020d44c7 test: Add a workunit for chmod
Signed-off-by: Sam Lang <sam.lang@inktank.com>
2012-10-16 15:17:38 -05:00
Sage Weil
db976663a5 mds: explicitly queue messages for unconnected clients
Previously, the messenger would queue messages for a destination that
didn't exist when you were a server; that changed a while back with the
wip-msgr merge (circa v0.52).  The result is that when we force open
client sessions and queue messages, they are dropped on the floor and the
client--when it does connect--gets confusing stuff from the MDS.

Instead, explicitly queue and send these messages.  Also, *always* send
via the Connection* instead of the inst.

Fixes: #2681
Signed-off-by: Sage Weil <sage@inktank.com>
2012-10-16 13:04:43 -07:00
Sage Weil
2542dd5364 client: fix implemented caps update on release/flush
When we release caps, clear them out of implemented as well, unless we
still hold references.  Otherwise implemented ends up holding all sorts of
extra caps (e.g., when nothing is getting revoked), leading to confusion
later down the line.

This now mirrors the kernel code.

Fixes: #3301
Signed-off-by: Sage Weil <sage@inktank.com>
2012-10-16 11:47:29 -07:00
Sage Weil
b290dc3a30 MClientRequest: fix mode formatting
Signed-off-by: Sage Weil <sage@inktank.com>
2012-10-16 11:11:16 -07:00
Gary Lowell
2528b5ee10 v0.43 2012-10-16 17:42:36 +00:00
Sage Weil
318bd19275 Merge remote-tracking branch 'gh/wip-fedora18' into next 2012-10-16 09:05:55 -07:00
Dan Mick
96e365be85 radosgw-admin manpage: Fix broken quotes
Signed-off-by: Dan Mick <dan.mick@inktank.com>
2012-10-15 18:18:49 -07:00
Sage Weil
412efc1681 admin_socket: fix '0' protocol version
Broken by 895e24d198.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-10-15 16:37:24 -07:00
Sage Weil
a43ba9ae24 rbd: fix striping feature bit addition
Add the STRIPINGV2 feature bit when striping is non-default.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-10-15 15:34:07 -07:00
Sage Weil
7957500566 librbd: log why create failed when striping features missing
Signed-off-by: Sage Weil <sage@inktank.com>
2012-10-15 15:34:07 -07:00
Sage Weil
b7682c5d90 librbd: use map-based stripe method to avoid fragmenting io
If we have multiple extents to read from the parent, accumulate the
resulting IO requests on a single map of ObjectExtents so that we can
merge adjacent IOs.  This helps with the copy-up when the parent and child
striping match, for example.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-10-15 15:34:07 -07:00
Sage Weil
d68a80622c striper: expose method that works directrly from a map<>
Some callers will want to call the stripe method multiple times and
accumulate IO on a single result set.  Expose access to the map<> that was
previously internally used for this and do the map -> vector conversion
in a wrapper.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-10-15 15:34:07 -07:00
Sage Weil
5599eb7c82 Striper: move from Filer
Move all the static striping code from Filer to Striper.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-10-15 15:34:06 -07:00
Sage Weil
ff304c8010 librbd: implement user-facing image to image copy
copy2, copy_with_progress2

Signed-off-by: Sage Weil <sage@inktank.com>
2012-10-15 15:34:06 -07:00
Sage Weil
6242059900 librbd: factor out copy from image create/open/close
Signed-off-by: Sage Weil <sage@inktank.com>
2012-10-15 15:34:06 -07:00
Sage Weil
5d5863c6df librbd: rename get_size() -> get_current_size()
Signed-off-by: Sage Weil <sage@inktank.com>
2012-10-15 15:34:06 -07:00
Sage Weil
c7b5cdf8e0 filer: trivial unit test
Perhaps the presence of this file will inspire me and others to write
proper unit tests.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-10-15 15:34:06 -07:00
Sage Weil
17bb2c500f osd: include buffer_extents in ObjectExtent operator<<
Signed-off-by: Sage Weil <sage@inktank.com>
2012-10-15 15:34:06 -07:00
Sage Weil
e6c98e94dc filer: more debug output
Signed-off-by: Sage Weil <sage@inktank.com>
2012-10-15 15:34:06 -07:00
Sage Weil
b4f28292c2 filer: fix add_partial_sparse_result
Fix advancement of bl_off, and handling of case where bl has no more bytes
to consume.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-10-15 15:34:06 -07:00
Sage Weil
059ebac68f test_librbd_fsx: randomly vary striping on clone
This exercises the io paths that read from the parent for client reads and
for cloning.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-10-15 15:34:06 -07:00
Sage Weil
a736cb028e librbd: allow striping to be specified for clones
Signed-off-by: Sage Weil <sage@inktank.com>
2012-10-15 15:34:06 -07:00
Sage Weil
819f93916a filer: add debug printability for striped read result stuff
Signed-off-by: Sage Weil <sage@inktank.com>
2012-10-15 15:34:06 -07:00
Sage Weil
80ebceea58 filer: uninline StripedReadResult
Signed-off-by: Sage Weil <sage@inktank.com>
2012-10-15 15:34:06 -07:00
Sage Weil
fd8013a97b librbd: avoid read copy for c++ api read
Read directly into the user's bufferlist instead of copying the buffer
contents.

NOTE: this potentially exposes cached buffers to C++ API users.  Document
this!

Signed-off-by: Sage Weil <sage@inktank.com>
2012-10-15 15:34:05 -07:00
Sage Weil
ecb040c926 librbd: read_from_parent into a bufferlist
This avoids a copy.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-10-15 15:34:05 -07:00
Sage Weil
b1b332486f librbd: use bufferlist target for read_iterate()
Save ourselves a copy for read_iterate.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-10-15 15:34:05 -07:00
Sage Weil
a8042c704e librbd: make read methods target buffers or bufferlists
This will let us transition much of the read code to move bufferlists
around instead of copying data between buffers.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-10-15 15:34:05 -07:00
Sage Weil
94de63a9ef librbd: kill unused get_block_osd()
Replaced by ImageCtx::get_object_name().

Signed-off-by: Sage Weil <sage@inktank.com>
2012-10-15 15:34:05 -07:00
Sage Weil
e9e197bca1 librbd: kill legacy striping helpers
These are replaced by ImageCtx accessors or the use of the Filer striping
helper.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-10-15 15:34:05 -07:00
Sage Weil
d556eda485 librbd: reimplement flatten in terms of child objects
Iterate over child *objects*, and map each one to the parent extents it
represents.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-10-15 15:34:05 -07:00
Sage Weil
cdb165e90f librbd: write sync read over an extent list
Signed-off-by: Sage Weil <sage@inktank.com>
2012-10-15 15:34:05 -07:00
Sage Weil
2660129593 librbd: make rollback use new striping accessors
Signed-off-by: Sage Weil <sage@inktank.com>
2012-10-15 15:34:05 -07:00
Sage Weil
113f698a34 librbd: make trim_image() behave with new world striping order
Signed-off-by: Sage Weil <sage@inktank.com>
2012-10-15 15:34:05 -07:00
Sage Weil
0aeedf657c librbd: generate format_string in ImageCtx
Prebuild the format string on image load so that it is handy at all times.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-10-15 15:34:04 -07:00
Sage Weil
3ae9f5723c librbd: make read_iterate iterate over periods
Object sizes no longer make sense since we are iterating over the logical
device image space, and the striping may make that unrelated to the size
of the individual objects.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-10-15 15:34:04 -07:00
Sage Weil
e114cbffcc librbd/ImageCtx: accessors
Signed-off-by: Sage Weil <sage@inktank.com>
2012-10-15 15:34:04 -07:00
Sage Weil
6151899664 librbd: reimplement striping
This replaces most of the existing striping code with use of the Filer
striping helper methods and a more general ceph_file_layout that can
handle more sophisticated striping patterns that the previous uniform
object approach.

This patch is not fully complete; there are a few additional patches that
follow that clean up some of the support functions.  However, most of the
IO path is covered here.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-10-15 15:34:04 -07:00
Sage Weil
9e109e187c filer: add sparse result into a striped read result
Add a helper to assimilate a sparse read result into the destriper
helper class.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-10-15 15:34:04 -07:00
Sage Weil
08d1eb5b0b filer: make tail zeroing in stripe result assembly optional
Objecter doesn't want it, librbd will.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-10-15 15:34:04 -07:00
Sage Weil
6cd51feced librbd: remove callback from handle_sparse_read
We always used simple_read_cb, so put it inline.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-10-15 15:34:04 -07:00
Sage Weil
3d010fc4c8 objecter: use StripedReadResult for scatter/gather read
This vastly simplifies the code, and uses the more generic helper class.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-10-15 15:34:04 -07:00
Sage Weil
3c2024de44 filer: helper to assemble striped read results into a single result
This is intended to replace the Objecter::_sg_read_finish() monstrosity,
and be reused by the librbd striping code.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-10-15 15:34:04 -07:00
Sage Weil
36a2245d50 buffer: add claim_prepend()
Steal another bufferlist's content and prepend it to our own.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-10-15 15:34:04 -07:00
Sage Weil
827ad53aba filer: add optional buffer offset
It may be that some range is being mapped that is intended for some offset
within the result buffer.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-10-15 15:34:04 -07:00
Sage Weil
c85b9016ea filer: add helper to map from object extent to file extents
Given an extent in an object and a layout, map it back to extent(s) in the
original file.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-10-15 15:34:03 -07:00
Sage Weil
c3f186e678 filer: use vector<pair<>> instead of map<> for buffer extent map
This is less inefficient.  :)

Signed-off-by: Sage Weil <sage@inktank.com>
2012-10-15 15:34:03 -07:00