Commit Graph

51739 Commits

Author SHA1 Message Date
Mykola Golub
3995cafae4 cls::rbd: read_peers: update last_read on next cls_cxx_map_get_vals
Signed-off-by: Mykola Golub <mgolub@mirantis.com>
2016-03-30 15:01:05 +03:00
Kefu Chai
dbd9bb1174 Merge pull request #7857 from tchaikov/wip-14844
ceph.spec.in: enable lttng and babeltrace explicitly

thanks to ktdreyer, we have lttng and babel in EPEL-7 now.

Reviewed-by: Nathan Cutler <ncutler@suse.com>
2016-03-30 14:47:34 +08:00
Josh Durgin
5b49e9fb41 Merge pull request #8287 from dillaman/wip-15232
rbd-mirror: initial failover / failback support

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2016-03-29 18:25:05 -07:00
Sage Weil
1ac3444626 Merge pull request #7712 from vitek/listbucket_encoding_type_fix
rgw: S3: set EncodingType in ListBucketResult

Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
2016-03-29 21:07:41 -04:00
Orit Wasserman
99c6f3095c Merge pull request #8363 from cbodley/wip-cmake-vstart
vstart: fix up cmake paths when VSTART_DEST is given
Reviewed-by: Orit Wasserman <owasserm@redhat.com>
2016-03-29 23:24:28 +02:00
Sage Weil
5318be502c Merge pull request #8362 from jdurgin/wip-ceph-python-path
ceph.in: fix python libpath for automake as well
2016-03-29 15:46:52 -04:00
Samuel Just
4810928bdf Merge pull request #8364 from liewegas/wip-fix-update-op
os/ObjectStore: fix _update_op for split dest_cid

Reviewed-by: Samuel Just <sjust@redhat.com>
2016-03-29 12:46:14 -07:00
Casey Bodley
23336a3c7c vstart: fix up cmake paths when VSTART_DEST is given
mstart.sh uses VSTART_DEST to tell vstart.sh where to create the
cluster. in the cmake case, it needs to get a relative path from there
to the built binaries and libraries - update these paths to use the new
'lib' and 'bin' directories

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2016-03-29 15:26:31 -04:00
Sage Weil
e3dc7c772f os/ObjectStore: fix _update_op for split dest_cid
Signed-off-by: Sage Weil <sage@redhat.com>
2016-03-29 15:24:59 -04:00
Jason Dillaman
ded7a77931 qa/workunits/rbd: add basic failover/fallback test case
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2016-03-29 15:19:26 -04:00
Jason Dillaman
9665b5b276 rbd-mirror: use 32bit image creation bid to avoid overflow
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2016-03-29 15:19:26 -04:00
Jason Dillaman
4c2747fba1 rbd-mirror: initial support for primary/non-primary handling
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2016-03-29 15:19:26 -04:00
Jason Dillaman
a6eaa837c8 librbd: accessor for journal tag data
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2016-03-29 15:19:26 -04:00
Jason Dillaman
3f15853f29 librbd: link primary mirror uuid to non-primary journal tag
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2016-03-29 15:19:25 -04:00
Jason Dillaman
882bc06f54 rbd-mirror: update mirror peer sync state after completion
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2016-03-29 15:19:25 -04:00
Jason Dillaman
668b41d1e8 librbd: track mirror peer replay state
This new state will protect against the case of an rbd-mirror crash
between registering with the remote and starting the image sync.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2016-03-29 15:19:25 -04:00
Jason Dillaman
276e2eb21b rbd-mirror: allocate local journal tags from mirror remote peer tags
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2016-03-29 15:19:25 -04:00
Jason Dillaman
bdee02cb57 journal: helper method for retrieving tag struct
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2016-03-29 15:19:25 -04:00
Jason Dillaman
4adc57ecfb rbd: use consistent "non-primary" verbiage for image mirroring
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2016-03-29 15:19:25 -04:00
Jason Dillaman
04892961d2 librbd: image demotion should record new demote journal event
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2016-03-29 15:19:25 -04:00
Jason Dillaman
970a17368a librbd: blacklist journal error while attempting to acquire lock
The journal policy will return -EPERM if attempting to acquire the
exclusive lock when the image is non-primary.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2016-03-29 15:19:25 -04:00
Jason Dillaman
e1c61f59ae librbd: new demote journal event
This event will be used as a placeholder to ensure that the demotion journal
tag is properly processed by rbd-mirror.  Without an event associated with
the demotion journal tag, the demotion event will be missed.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2016-03-29 15:19:25 -04:00
Jason Dillaman
f42e7610fb rbd-mirror: framework for replay allocating tags in local journal
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2016-03-29 15:19:25 -04:00
Jason Dillaman
5de360dd64 librbd: journal reset should re-register the local client
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2016-03-29 15:19:25 -04:00
Jason Dillaman
d624e65a30 rbd-mirror: cleanup debug log messages
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2016-03-29 15:19:25 -04:00
Jason Dillaman
476da1011c rbd-mirror: cross-reference local image via global image id
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2016-03-29 15:19:25 -04:00
Jason Dillaman
909eb43d73 cls_rbd: mirroring directory reverse lookup from global id to image id
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2016-03-29 15:19:25 -04:00
Jason Dillaman
347349c3f5 rbd-mirror: bootstrap requires the global image id
The global image id can be used to cross-reference images that
have been replicated amongst peers.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2016-03-29 15:19:25 -04:00
Jason Dillaman
6541e3566a rbd-mirror: fix state output stream formatter
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2016-03-29 15:19:25 -04:00
Jason Dillaman
7a3ffc9d70 librbd: support creating images with non-primary journals
When rbd-mirror initially creates a replicated image in the
local pool, the journal should be flagged as non-primary to
(1) prevent local ops againsts the image and (2) provide a
clean chain of replicated tags.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2016-03-29 15:19:25 -04:00
Jason Dillaman
f01efc8ce6 rbd-mirror: don't acquire lock for primary local images
Abort the image replay for any local images that are marked as primary.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2016-03-29 15:12:29 -04:00
Jason Dillaman
511039eca9 rbd-mirror: tweaks to support creating mock test cases
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2016-03-29 15:12:29 -04:00
Jason Dillaman
8e8deb35a2 rbd-mirror: bootstrap now has initial support for existing images
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2016-03-29 15:12:29 -04:00
Jason Dillaman
d9ee1e7270 rbd-mirror: properly initialize image copy start/end objects
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2016-03-29 15:12:29 -04:00
Jason Dillaman
18e849f01c rbd-mirror: only delete ImageCtx after open failure
The image is already closed -- it just needs to be destroyed
in a thread context outside of librbd.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2016-03-29 15:12:29 -04:00
Jason Dillaman
cb72ac120c cls_journal: disallow client registration against missing journal
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2016-03-29 15:12:29 -04:00
Jason Dillaman
0b0b2244a0 journal: added helper to query single client record from disk
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2016-03-29 15:12:29 -04:00
Jason Dillaman
418b4746a1 rbd-mirror: convert ImageReplayer into templated class
This will facilitate create mock test cases.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2016-03-29 15:12:29 -04:00
Jason Dillaman
7d10eb01c0 librbd: helper methods to allocate tags associated to remote journals
Allocating tags for the local journal will always be based off the local
commit position.  For remote journals, the local commit position doesn't
reflect actual events replayed by rbd-mirror, so it needs to provide the
remote journal commit position.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2016-03-29 15:12:29 -04:00
Jason Dillaman
0f99d88dc9 rbd-mirror: initial integration with librbd lock/journal policies
For the first stage, acquiring the exclusive-lock will no longer
automatically result in the allocation of a journal tag.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2016-03-29 15:12:29 -04:00
Jason Dillaman
a9549d6643 librbd: basic policy for journal handling
This will allow rbd-mirror to override the allocation of a new
tag and to restart rbd-mirror's image replayer when a watch error
forces the loss of the exclusive lock.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2016-03-29 15:12:28 -04:00
Jason Dillaman
38cf63d55c librbd: optional 'force' parameter for request lock payload
This will be used when force promoting an image to primary -- when
rbd-mirror receives the forced request, it will immediately abort
playback.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2016-03-29 15:12:28 -04:00
Jason Dillaman
2afb2c31ed librbd: basic policy for controlling the release of the exclusive lock
The rbd-mirror daemon will need to interlock with the request for the lock
from another client with the successful sync of remote journal events.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2016-03-29 15:12:28 -04:00
Jason Dillaman
dae789dd2b librbd: journal type traits should be standalone
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2016-03-29 15:12:27 -04:00
Jason Dillaman
e94e779edb Merge pull request #8332 from rjfd/wip-15267
rbd-mirror: prevent enabling/disabling an image's mirroring when not in image mode

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
2016-03-29 15:12:09 -04:00
Josh Durgin
e3ad07ba61 ceph.in: fix python libpath for automake as well
Follow-on to a041e5c941
due to confusion from .pyc files hanging around.

Signed-off-by: Josh Durgin <jdurgin@redhat.com>
2016-03-29 12:07:39 -07:00
Sage Weil
88a183bd85 Merge remote-tracking branch 'gh/jewel' 2016-03-29 15:04:16 -04:00
Sage Weil
eff3b08a75 Merge pull request #8320 from dachary/wip-virtualenv-jewel
Makefile-env.am: set a default for CEPH_BUILD_VIRTUALENV (part 2)

Reviewed-by: Dan Mick <dmick@redhat.com>
2016-03-29 15:08:54 -04:00
Sage Weil
962c65a48d Merge pull request #8360 from jdurgin/wip-ceph-python-path
ceph.in: correct dev python path for automake builds

Tested-by: Sage Weil <sage@redhat.com>
2016-03-29 15:06:56 -04:00
Josh Durgin
c321c534e4 Merge pull request #8361 from liewegas/wip-test-port
test/test_pool_create.sh: fix port

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2016-03-29 11:34:54 -07:00