Commit Graph

60204 Commits

Author SHA1 Message Date
Venky Shankar
3a91d7bd2e qa / workunits: make rbd import/export work with image data pool
Signed-off-by: Venky Shankar <vshankar@redhat.com>
2016-11-20 21:21:50 +05:30
Venky Shankar
3f6ef037ce tests / rbd: fix rbd python binding test
Signed-off-by: Venky Shankar <vshankar@redhat.com>
2016-11-20 21:21:50 +05:30
Venky Shankar
e98b8ceb86 test / rbd-mirror: image data pool test support
Signed-off-by: Venky Shankar <vshankar@redhat.com>
2016-11-20 21:21:50 +05:30
Venky Shankar
3d3d0fb31e test / librbd: image data pool test support
Signed-off-by: Venky Shankar <vshankar@redhat.com>
2016-11-20 21:21:50 +05:30
Venky Shankar
1c1f4d2a34 test / librbd: use data pool IoCtx while listing objects
Signed-off-by: Venky Shankar <vshankar@redhat.com>
2016-11-20 21:21:50 +05:30
Venky Shankar
0206e15b74 librbd / ObjectMap: use data_ctx/md_ctx pool context as required
Signed-off-by: Venky Shankar <vshankar@redhat.com>
2016-11-20 21:21:50 +05:30
Venky Shankar
75def529ee librbd / CopyupRequest: use data pool ctx during copyup
Signed-off-by: Venky Shankar <vshankar@redhat.com>
2016-11-20 21:21:50 +05:30
Venky Shankar
cce335fccf librados: drop io_ctx_impl on ioctx_create/create2
close() was never called for the passed in IoCtx which
could probably result in an IoCtx leak if the original
IoCtx was a valid pool context allocated earlier.

Its kind of better to do it here rather than to leave
the destruction on the caller for better (or cleaner)
common case handling.

Signed-off-by: Venky Shankar <vshankar@redhat.com>
2016-11-20 21:21:50 +05:30
Kefu Chai
49bc71bacf Merge pull request #12080 from wjwithagen/wip-wjw-freebsd-install-deps
install-deps.sh: JQ is needed in one script

Reviewed-by: Kefu Chai <kchai@redhat.com>
2016-11-20 22:17:58 +08:00
Orit Wasserman
2c82b4318b Merge pull request #12076 from cbodley/wip-rgw-region-root
rgw: region conversion respects pre-existing rgw_region_root_pool
Reviewed-by: Orit Wasserman <owasserm@redhat.com>
2016-11-19 22:36:43 +01:00
Willem Jan Withagen
5268a3e3e0 install-deps.sh: JQ is needed in one script
Signed-off-by: Willem Jan Withagen <wjw@digiware.nl>
2016-11-19 20:10:51 +01:00
Casey Bodley
b81d880084 rgw: look for region_map in rgw_region_root_pool
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2016-11-18 17:04:57 -05:00
Casey Bodley
8b70dc62f4 rgw: region conversion respects pre-existing rgw_region_root_pool
Fixes: http://tracker.ceph.com/issues/17963

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2016-11-18 16:29:06 -05:00
Sage Weil
64bcf92e87 Merge pull request #12057 from liewegas/wip-debug-hitset
ceph_test_rados_api_tier: dump hitset that we fail to decode

Reviewed-by: Yehuda Sadeh <yehuda@redhat.com.>
2016-11-18 12:06:44 -06:00
Sage Weil
b02d0043cd Merge pull request #12040 from liupan1111/wip-bluestore-lat-report
os/bluestore: fix latency calculation

Reviewed-by: Sage Weil <sage@redhat.com>
2016-11-18 08:18:18 -06:00
Kefu Chai
8218ff8b25 Merge pull request #11978 from tchaikov/wip-cmake-jemalloc
cmake: should link against ${ALLOC_LIBS}

Reviewed-by: Varada Raja Kumar Kari <kariraja@yahoo.com>
2016-11-18 17:53:56 +08:00
Kefu Chai
2c16786f86 Merge pull request #12048 from dzafman/wip-dz-memstore
tests: Minor clean-ups

Reviewed-by: Sage Weil <sage@redhat.com>
Reviewed-by: Loic Dachary <ldachary@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
2016-11-18 17:47:14 +08:00
Loic Dachary
2a302ecdf4 Merge pull request #12066 from dachary/wip-16014-cot
tests: save 9 characters for asok paths

Reviewed-by: Kefu Chai <kchai@redhat.com>
2016-11-18 10:37:02 +01:00
Pan Liu
c7f55c40ab os/bluestore: fix a bug: when using bluestore, the output of
"ceph osd perf" is always 0ms.

Signed-off-by: Pan Liu <pan.liu@istuary.com>
2016-11-18 16:26:19 +08:00
Pan Liu
3ea4760da8 OSD: change the prefix from fs_* to os_*, because commit_latency and
apply_latency will be used not only for filestore.

Signed-off-by: Pan Liu <pan.liu@istuary.com>
2016-11-18 16:25:31 +08:00
Loic Dachary
cd72ff9f74 tests: save 9 characters for asok paths
For vstart.sh powered tests, save 9 characters in the path name
by replacing testdir/test- with td/t-

60 characters imposed by jenkins
9 characters for src/test
5 characters for td/t-

33 left (instead of 24) for the test to create asok such as out/client.admin.25327.asok

Moving these files outside of the build directory is a bad idea because
tests should only create/use files within the builddir and not write
outside of this directory. Doing so would make things more complicated
for cleanup in case the test fail and create other problems as a
consequence (filling out disk space, conflicting directories between
runs etc.).

For ceph-helpers.sh tests replace testdir with td, saving 5 characters.
This is not strictly necessary but keeps the directory names consistent:
if the developer wants to get rid of all the test leftovers, it is
enough to remove the a single directory: td.

Fixes: http://tracker.ceph.com/issues/16014

Signed-off-by: Loic Dachary <loic@dachary.org>
2016-11-18 09:19:18 +01:00
David Zafman
db1a9434f1 Merge pull request #12058 from dachary/wip-17830-eio
test: disable osd-scrub-repair and test-erasure-eio
2016-11-17 20:44:22 -08:00
Sage Weil
cc37efa47c Merge pull request #11709 from iain-buclaw-sociomantic/librados_aioexec
librados: Add rados_aio_exec to the C API

Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: Sage Weil <sage@redhat.com>
2016-11-17 18:50:04 -06:00
Sage Weil
060307cc49 Merge pull request #11921 from adamemerson/wip-clangtastic
build: The Light Clangtastic

Reviewed-by: Matt Benjamin <mbenjami@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
2016-11-17 18:49:02 -06:00
Dan Mick
ee08d38cb9 test: disable osd-scrub-repair and test-erasure-eio
While it is being worked on, because it frequently fails.

Refs: http://tracker.ceph.com/issues/17830

Signed-off-by: Dan Mick <dan.mick@redhat.com>
Signed-off-by: Loic Dachary <loic@dachary.org>
2016-11-17 23:50:17 +01:00
Loic Dachary
8249503688 Merge pull request #10585 from zhjwpku/patch-2
doc/start/hardware-recommentdations: cosmetic

Reviewed-by: Loic Dachary <ldachary@redhat.com>
2016-11-17 23:41:11 +01:00
Sage Weil
b52d602510 ceph_test_rados_api_tier: dump hitset that we fail to decode
See http://tracker.ceph.com/issues/17945

Signed-off-by: Sage Weil <sage@redhat.com>
2016-11-17 16:18:47 -06:00
Matt Benjamin
3f161671f7 Merge pull request #12008 from linuxbox2/civet-copy-target
cmake: produce civetweb.h, again

ok, w/upstream acks, merging--jenkins build did succeed (this is a build-only change)
2016-11-17 16:16:44 -05:00
Sage Weil
f61b7ce6a9 Merge pull request #12054 from ddiss/doc_osd_pool_restriction
doc: clarify file deletion from OSD restricted pool behaviour

Reviewed-by: Sage Weil <sage@redhat.com>
2016-11-17 14:57:24 -06:00
David Disseldorp
a138178fbe doc/cephfs/standby: fix minor typos
Signed-off-by: David Disseldorp <ddiss@suse.de>
2016-11-17 20:46:17 +01:00
David Disseldorp
f00546fee0 doc/cephfs: add note about deletion from OSD restricted pool
As described in http://tracker.ceph.com/issues/17937, a client with
restricted pool access can still delete files unless a corresponding
MDS path restriction is also in place.

Signed-off-by: David Disseldorp <ddiss@suse.de>
2016-11-17 20:45:57 +01:00
Samuel Just
64cc94c522 Merge pull request #11701 from athanatos/wip-ec-partial-overwrites
osd: EC Overwrites

Reviewed-by: Sage Weil <sage@redhat.com>
2016-11-17 10:54:19 -08:00
Matt Benjamin
53f6462a01 cmake: produce civetweb.h, again
The recent change to do this logic with file copy (and in src/rgw)
resolved the build problem, but now updates to the civetweb
submodule were not reflected in the build.

Move the copy into a custom target which will always source the
current submodule version at build time.

Avoid using the BYPRODUCTS option, as it is not supported in many
older cmake versions (e.g., Centos 7).

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
2016-11-17 13:49:14 -05:00
Samuel Just
0cf383da07 ReplicatedPG: clamp SPARSE_READ to object size for ec pool
Signed-off-by: Samuel Just <sjust@redhat.com>
2016-11-17 10:41:35 -08:00
Samuel Just
0e7860b1e4 osd/: add some debugging to copyfrom
Signed-off-by: Samuel Just <sjust@redhat.com>
2016-11-17 10:41:34 -08:00
Samuel Just
d8e0965cc6 ReplicatedPG: we might actually recover an object past crt on repair
Signed-off-by: Samuel Just <sjust@redhat.com>
2016-11-17 10:41:34 -08:00
Samuel Just
ccbc90dd73 osd/: add projected_log to do client dup detection on not yet committed log entries
Log entries don't get added to the log for ECBackend until reads are
done, yet we still want any other requests with the same id to wait.

ReplicatedPG::update_range should consider the projected log as well.

Signed-off-by: Samuel Just <sjust@redhat.com>
2016-11-17 10:41:34 -08:00
Samuel Just
907b357e8f ReplicatedPG::calc_trim_to: don't trim past can_rollback_to
Signed-off-by: Samuel Just <sjust@redhat.com>
2016-11-17 10:41:34 -08:00
Samuel Just
4740fe46ec doc/dev/osd_internals: add some docs for ECBackend
Also, clean up some old ones.

Signed-off-by: Samuel Just <sjust@redhat.com>
2016-11-17 10:41:34 -08:00
Samuel Just
db798d9f25 ReplicatedPG: don't leave last_backill pointing at head if snapdir exists
Fixes: http://tracker.ceph.com/issues/17668
Signed-off-by: Samuel Just <sjust@redhat.com>
2016-11-17 10:41:34 -08:00
Samuel Just
407eaaca32 osd/: cleanup the snap trimmer and deal with delayed repops
With the PGBackend changes, it's not necessarily the case that
calling simple_opc_submit syncronously updates the SnapMapper.
Thus, we can't rely on being able to just ask the snap mapper
for the next object immediately (we could well loop on the same
one if ECBackend is flushing the pipeline).  Instead, update
SnapMapper and the SnapTrimmer to grab N at a time.

Additionally, we need to make sure we don't try this again until
all of the previously submitted repops are flushed (a good idea
anyway).  To that end, this patch also refactors the SnapTrimmer
machine to be fully explicit about why it's blocked so we can be
sure that we don't queue an async work item unless we really
want to.

Signed-off-by: Samuel Just <sjust@redhat.com>
2016-11-17 10:41:34 -08:00
Samuel Just
327dd257d3 osd/ECBackend: use an explicit backfill field on ECSubWrite
Previously, we used an empty transaction to indicate when we
were sending the op to a backfill peer which needs the logs,
but can't run the transaction.  I'd like to be able to send
and empty transaction for the rollforward side effect without
it causing the peer to think it missed a backfill op, so
instead, use an explicit flag.  Compatability is handled by
interpretting an old version encoding with an empty transaction
as having the backfill field filled.

Signed-off-by: Samuel Just <sjust@redhat.com>
2016-11-17 10:41:33 -08:00
Samuel Just
126ada4749 ReplicatedPG: update zero and truncate to only disallow aligned append pools
Signed-off-by: Samuel Just <sjust@redhat.com>
2016-11-17 10:41:33 -08:00
Samuel Just
b237321bda ReplicatedPG::OpContext::start_async_reads: tolerate case sync callback call
If the read can be completed immediately, objects_read_async will call
the callback syncronously, which will result in ctx being cleaned up.
Clear pending_async_reads before the call.

Signed-off-by: Samuel Just <sjust@redhat.com>
2016-11-17 10:41:33 -08:00
Samuel Just
967764707a osd/: use PGBackend::call_write_ordered to submit log entries in commit order
Without this change, we might submit new log entries for marking objects
unfound in a way that causes replicas to process them out-of-order with
pending writes with lower version numbers.  That would be bad.  Instead,
add an interface to allow an arbitrary callback to be called after any
previously submitted transaction commit, but before any subsequently
submitted operations commit.

Signed-off-by: Samuel Just <sjust@redhat.com>
2016-11-17 10:41:33 -08:00
Samuel Just
f7b55ec144 osd/: Update PGBackend users to project last_update and submit stat deltas
The RMW pipeline means that we don't start committing an update
immediately, so we can't update the log syncronously with
submit_transaction.  Thus, in order to pipeline writes, PG/ReplicatedPG
will need to project last_update and abstain from updating info
directly (updating info.stats was the only offender).

Signed-off-by: Samuel Just <sjust@redhat.com>
2016-11-17 10:41:33 -08:00
Samuel Just
1e95f2ce64 ECBackend: integrate cache and rmw pipeline
Implements the rmw pipeline and integrates the cache.

HashInfo now maintains a projected size for use during the planning
phase of the pipeline.

(Doesn't build without subsequent patches, not worth stubbing out
the interfaces)

Signed-off-by: Samuel Just <sjust@redhat.com>
2016-11-17 10:41:33 -08:00
Samuel Just
5e0ec06376 osd/: refactor PGLog a bit and add support for rolling back extents
It was hard to reason about the validity of the IndexedLog internal
pointers and iterators during updates, so this patch cleans that up
a bunch.  It also moves responsibility for doing rollbacks into
PGBackend.  Finally, it adds support for the new log entry format.

Signed-off-by: Samuel Just <sjust@redhat.com>
2016-11-17 10:40:19 -08:00
Samuel Just
ac89594d50 TestPGLog: fix bug with merge_log_split_missing_entries_at_head
Signed-off-by: Samuel Just <sjust@redhat.com>
2016-11-17 10:40:19 -08:00
Samuel Just
5360986f6d osd/: add support for rolling back overwritten extents to pg_log_entry_t
Signed-off-by: Samuel Just <sjust@redhat.com>
2016-11-17 10:40:19 -08:00