Commit Graph

68090 Commits

Author SHA1 Message Date
Sage Weil
96e69ee9fd os/bluestore: simplify dirty shard handling in ExtentMap::update
We can do this with a single allocation with a simple vector<>.

Signed-off-by: Sage Weil <sage@redhat.com>
2017-02-02 17:25:55 -05:00
Sage Weil
40db5b6614 os/bluestore: ExtentMap: reshard only requested range
Only reshard extents in the requested range.

Note that the strategy for unspanning blobs changed; we now span or
unspan specific blobs at the end based on our reshard result instead
of unspanning all at the start.  This keeps the spanning id stable,
which is important because it may be referenced from another that
we aren't even looking at.

Also note that this requires a bit of restructuring: an encode_some may
hit a spanning shard, *requiring* us to reshard, which means we should
always conduct the initial pass through update to discover other reshard
requirements, even if we already know some resharding will be needed.

Signed-off-by: Sage Weil <sage@redhat.com>
2017-02-02 17:25:55 -05:00
Sage Weil
0819a0f90e os/bluestore: dump num spanning blobs from dump_onode
Signed-off-by: Sage Weil <sage@redhat.com>
2017-02-02 17:25:54 -05:00
Sage Weil
454d66bf32 os/bluestore: trivial cleanups in csum error code
Signed-off-by: Sage Weil <sage@redhat.com>
2017-02-02 17:25:54 -05:00
Sage Weil
2045431c61 os/bluestore: fsck: dump_onode after shards are loaded
Signed-off-by: Sage Weil <sage@redhat.com>
2017-02-02 17:25:54 -05:00
Sage Weil
44c3ec81e9 ceph_test_objectstore: error out on fsck failure
It's much more helpful this way.

Signed-off-by: Sage Weil <sage@redhat.com>
2017-02-02 17:25:54 -05:00
Sage Weil
9ab4873288 os/memstore: return 0 from fsck
Signed-off-by: Sage Weil <sage@redhat.com>
2017-02-02 17:25:53 -05:00
Sage Weil
317ebde7ec os/bluestore: fsck: check for shards past EOF
Signed-off-by: Sage Weil <sage@redhat.com>
2017-02-02 10:12:08 -05:00
Sage Weil
c7949d4010 os/bluestore: reshard on truncate if shards past EOF
This ensure we mop up shards past EOF instead of encoding them
empty and confusing future code (that, say, assumes no shards past
EOF).

Signed-off-by: Sage Weil <sage@redhat.com>
2017-02-02 10:12:08 -05:00
Sage Weil
92a555ec42 os/bluestore/bluestore_types: beautify use_tracker_t operator<<
Signed-off-by: Sage Weil <sage@redhat.com>
2017-02-02 10:12:08 -05:00
Sage Weil
4302e96d8d os/bluestore: ExtentMap: request reshard range from update() intelligently
Split ourselves, or merge with our immediate predecessor or
successor.

Signed-off-by: Sage Weil <sage@redhat.com>
2017-02-02 10:12:08 -05:00
Sage Weil
4fdccb2d96 os/bluestore: ExtentMap: use normal iterator for reshard loop
Signed-off-by: Sage Weil <sage@redhat.com>
2017-02-02 10:12:08 -05:00
Sage Weil
126eae8479 os/bluestore: ExtentMap: put un-spanning in normal loop
Signed-off-by: Sage Weil <sage@redhat.com>
2017-02-02 10:12:08 -05:00
Sage Weil
b806f4faad os/bluestore: ExtentMap: remove reshard 0 extent special case
Signed-off-by: Sage Weil <sage@redhat.com>
2017-02-02 10:12:08 -05:00
Sage Weil
df6365ca21 os/bluestore: ExtentMap: factor old shard key removal into reshard()
Signed-off-by: Sage Weil <sage@redhat.com>
2017-02-02 10:12:08 -05:00
Sage Weil
f4fc7a3f19 os/bluestore: cosmetic cleanup in ExtentMap::update
Signed-off-by: Sage Weil <sage@redhat.com>
2017-02-02 10:12:08 -05:00
Sage Weil
8eb60c24f0 os/bluestore: ExtentMap: count extents per Shard
Signed-off-by: Sage Weil <sage@redhat.com>
2017-02-02 10:12:08 -05:00
Sage Weil
bb8bf06c99 os/bluestore: ExtentMap: use reshard ranges from update()
This gives us a single point of control for reshard, and tells us
which range we care about at the same time.

Signed-off-by: Sage Weil <sage@redhat.com>
2017-02-02 10:12:08 -05:00
Sage Weil
b92062e38e os/bluestore: replace needs_reshard flag with a range
Signed-off-by: Sage Weil <sage@redhat.com>
2017-02-02 10:12:08 -05:00
Sage Weil
d099edcb82 ceph_test_objectstore: match clone_range src and dst offset
This is what the OSD does, and BlueStore doesn't necessarily handle
all combinations of different offsets.

Signed-off-by: Sage Weil <sage@redhat.com>
2017-02-02 10:11:30 -05:00
Sage Weil
7df1906b6c Merge pull request #13211 from liewegas/wip-clone-offsets
ceph_test_objectstore: match clone_range src and dst offset

Reviewed-by: Igor Fedotov <ifedotov@mirantis.com>
2017-02-02 09:08:05 -06:00
Sage Weil
013b96e1da Merge pull request #12904 from ifed01/wip-bluestore-onode-refmap3
os/bluestore: replace Blob ref_map with reference counting

Reviewed-by: Sage Weil <sage@redhat.com>
2017-02-02 08:56:31 -06:00
Sage Weil
6e72005891 Merge pull request #13192 from liewegas/wip-bluestore-min-alloc-size
os/bluestore: fix min_alloc_size at mkfs time

Reviewed-by: Igor Fedotov <ifedotov@mirantis.com>
2017-02-02 08:56:09 -06:00
Mykola Golub
93f7b5ef3f Merge pull request #13158 from dillaman/wip-18594
qa: integrate OpenStack 'gate-tempest-dsvm-full-devstack-plugin-ceph'

Reviewed-by: Mykola Golub <mgolub@mirantis.com>
2017-02-02 08:27:49 +02:00
Yuri Weinstein
a1d0322171 Merge pull request #13225 from tmuthamizhan/wip-ansible-m
qa: do not mention ceph branch explicitly
2017-02-01 19:50:30 -08:00
Tamil Muthamizhan
f99ca7a812 do not mention ceph branch explicitly
no need to mention ceph_dev_branch explicitly. it will be taken from the
ceph branch value mentioned in the teuthology-suite command

Signed-off-by: Tamil Muthamizhan <tmuthami@redhat.com>
2017-02-01 16:47:01 -08:00
Sage Weil
72f603d352 Merge pull request #13009 from liewegas/wip-mempool-bloom-filter
mempool: put bloom_filter in mempool

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2017-02-01 15:23:55 -06:00
Sage Weil
4a71a8ad2b Merge pull request #13136 from liewegas/wip-scrub-waitlist
osd: use separate waitlist for scrub

Reviewed-by: Samuel Just <sjust@redhat.com>
2017-02-01 14:49:46 -06:00
Adam C. Emerson
c2e9b65695 Merge pull request #12104 from pritha-srivastava/wip_sts_role_rest
rgw: Added code for REST APIs for AWS Roles.

Reviewed-by: Adam C. Emerson <aemerson@redhat.com>
Reviewed-by: Casey Bodley <cbodley@redhat.com>
2017-02-01 14:01:49 -05:00
Jason Dillaman
a1b088a727 Merge pull request #13189 from gaurav36/bug-18326-image-rename-non-rbd-pool
rbd: destination pool should be source pool if it is not specified

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
2017-02-01 12:47:01 -05:00
Jason Dillaman
8b8023c5dd Merge pull request #12948 from trociny/wip-17020
rbd-mirror: add support for active/passive daemon instances

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
2017-02-01 11:17:23 -05:00
Sage Weil
ddb3f29b8e Merge pull request #13013 from wangzhengyong/master
os/bluestore: remove no use parameter in bluestore_blob_t::map_bl

Reviewed-by: Sage Weil <sage@redhat.com>
2017-02-01 08:55:22 -06:00
Sage Weil
77ad3c925b Merge pull request #12782 from atheism/rgw-orphan-fix-error-messages
rgw: orphan: fix error messages

Reviewed-by: Sage Weil <sage@redhat.com>
2017-02-01 08:49:09 -06:00
Sage Weil
f1f1170f27 Merge pull request #13199 from chipitsine/master
mds,mon: Clean issues detected by cppcheck

Reviewed-by: Sage Weil <sage@redhat.com>
2017-02-01 08:46:59 -06:00
Sage Weil
09d23e8163 Merge pull request #13203 from ifed01/wip-bluestore-more-dump
os: extend ObjectStore interface to dump store's performance counters

Reviewed-by: Sage Weil <sage@redhat.com>
2017-02-01 08:44:50 -06:00
John Spray
13a52e9d73 Merge pull request #12974 from ukernel/wip-multimds-misc
mds: miscellaneous fixes

Reviewed-by: John Spray <john.spray@redhat.com>
2017-02-01 14:20:48 +01:00
Mykola Golub
4e234921b1 qa/suites/rbd: add rbd-mirror-ha test
Signed-off-by: Mykola Golub <mgolub@mirantis.com>
2017-02-01 11:16:34 +01:00
Mykola Golub
2bb480e8c3 qa/workunits/rbd: tweaks to use RBD_MIRROR_USE_EXISTING_CLUSTER locally
This var is mostly used when running rbd_mirror test scripts on
teuthology.  It can be used locally though to speedup re-running the
tests:

Set a test temp directory:

  export RBD_MIRROR_TEMDIR=/tmp/tmp.rbd_mirror

Run the tests the first time with NOCLEANUP flag (the cluster and
daemons are not stopped on finish):

  RBD_MIRROR_NOCLEANUP=1 ../qa/workunits/rbd/rbd_mirror.sh

Now, to re-run the test without restarting the cluster, run cleanup
with USE_EXISTING_CLUSTER flag:

  RBD_MIRROR_USE_EXISTING_CLUSTER=1 \
    ../qa/workunits/rbd/rbd_mirror_ha.sh cleanup

and then run the tests:

  RBD_MIRROR_USE_EXISTING_CLUSTER=1
    ../qa/workunits/rbd/rbd_mirror_ha.sh

Signed-off-by: Mykola Golub <mgolub@mirantis.com>
2017-02-01 10:55:03 +01:00
Mykola Golub
c802b9df0b qa/workunits/rbd: tests for rbd mirror HA
Signed-off-by: Mykola Golub <mgolub@mirantis.com>
2017-02-01 10:55:03 +01:00
Mykola Golub
7c21275f4f qa/workunits/rbd: allow to start several daemons for the same cluster
by optionally specifyning daemon instance after cluster name and
colon, like:

  start_mirror ${cluster}:${instance}

Signed-off-by: Mykola Golub <mgolub@mirantis.com>
2017-02-01 10:55:03 +01:00
Mykola Golub
065b513ad7 rbd-mirror HA: pool replayer should be started/stopped when lock acquired/released
Fixes: http://tracker.ceph.com/issues/17020
Signed-off-by: Mykola Golub <mgolub@mirantis.com>
2017-02-01 10:55:03 +01:00
Mykola Golub
733a0049b0 rbd-mirror HA: create pool locker / leader class
Fixes: http://tracker.ceph.com/issues/17019
Signed-off-by: Mykola Golub <mgolub@mirantis.com>
2017-02-01 10:55:03 +01:00
Mykola Golub
16f7878517 rbd-mirror HA: add new lock released/acquired and heartbeat messages
Fixes: http://tracker.ceph.com/issues/17018
Signed-off-by: Mykola Golub <mgolub@mirantis.com>
2017-02-01 10:55:03 +01:00
Mykola Golub
8c991bf562 rbd-mirror: add class for mirror status watcher
Signed-off-by: Mykola Golub <mgolub@mirantis.com>
2017-02-01 10:55:03 +01:00
Mykola Golub
6d44511d70 librbd: equality operator for managed_lock::Locker
Signed-off-by: Mykola Golub <mgolub@mirantis.com>
2017-02-01 10:55:03 +01:00
Mykola Golub
f89857967e librbd: add create_async_context_callback helper
Signed-off-by: Mykola Golub <mgolub@mirantis.com>
2017-02-01 10:55:03 +01:00
Mykola Golub
fa28457d6a librbd: missing const qualifiers
Signed-off-by: Mykola Golub <mgolub@mirantis.com>
2017-02-01 10:55:03 +01:00
Mykola Golub
0b179be31e librbd: track in-fly break_lock and get_locker requests in managed lock
Signed-off-by: Mykola Golub <mgolub@mirantis.com>
2017-02-01 10:55:03 +01:00
Mykola Golub
13496b22ee librbd: pass notifier_id to Watcher handle_notify
Signed-off-by: Mykola Golub <mgolub@mirantis.com>
2017-02-01 10:55:03 +01:00
Mykola Golub
ff21415b9f librbd: allow watcher derived classes access ioctx, oid and work queue
Signed-off-by: Mykola Golub <mgolub@mirantis.com>
2017-02-01 10:55:03 +01:00