Commit Graph

28538 Commits

Author SHA1 Message Date
Sage Weil
cfb07f1451 arch: add NEON cpu feature detection
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Dan Mick <dan.mick@inktank.com>
2013-09-04 16:05:00 -07:00
John Wilkins
83a4848e27 doc: Updated usage for --infile syntax. Added zone name for zone syntax.
Signed-off-by: John Wilkins <john.wilkins@inktank.com>
2013-09-04 15:37:14 -07:00
Sage Weil
df112473bc mon/OSDMonitor: fix POOL_OP_DELETE_SNAP early return
Cut&paste goof in 0e85074402.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-09-04 14:44:54 -07:00
John Wilkins
e95e707345 doc: Organized into sections. Added zone/region and pool details.
Signed-off-by: John Wilkins <john.wilkins@inktank.com>
2013-09-04 13:28:34 -07:00
Sage Weil
9f44de5cbe doc/release-notes: v0.68
Signed-off-by: Sage Weil <sage@inktank.com>
2013-09-04 11:25:56 -07:00
Sage Weil
6a4f4f0d7a Merge remote-tracking branch 'gh/wip-6047'
Reviewed-by: Sage Weil <sage@inktank.com>
2013-09-04 10:43:04 -07:00
Sage Weil
b05f7ea519 osd/ReplicatedPG: set reply versions for pg ops (PGLS)
Returning the current version for the pgid and last_user_version makes
some sense here.

Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Greg Farnum <greg@inktank.com>
2013-09-04 10:25:44 -07:00
Sage Weil
5148aac73d osd/ReplicatedPG: set reply versions on dup op ACK
All other MOSDOpReply creators do this, with the exception of the pg
op.

Fixes: #6222
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Greg Farnum <greg@inktank.com>
2013-09-04 10:25:33 -07:00
Greg Farnum
f566102c3c doc: remove 'Unexpected indentation' from versions doc.
Signed-off-by: Greg Farnum <greg@inktank.com>
2013-09-04 10:10:03 -07:00
Sage Weil
b56af55243 Merge pull request #564 from ljagiello/swift_doc_fix
Correct syntax for generate swift key

Signed-off-by: Lukasz Jagiello <jagiello.lukasz@gmail.com>
2013-09-04 09:28:58 -07:00
Lukasz Jagiello
a9a516a299 Correct syntax for generate swift key 2013-09-04 16:33:57 +02:00
Gary Lowell
d9187a73c3 Merge branch 'next' 2013-09-04 01:37:41 -07:00
Gary Lowell
b4cf0f2574 v0.68 2013-09-03 16:10:31 -07:00
Sage Weil
2b2f296ed8 Merge branch 'wip-copyfrom'
Reviewed-by: Samuel Just <sam.just@inktank.com>
2013-09-03 16:00:28 -07:00
Dan Mick
dcbdeaf6d1 doc: Fix repo URL for Ceph cloning (dev/generatedocs)
Signed-off-by: Dan Mick <dan.mick@inktank.com>
2013-09-03 15:56:53 -07:00
Sage Weil
996af2d8fd ceph_test_rados: test COPY_FROM
Signed-off-by: Sage Weil <sage@inktank.com>
2013-09-03 15:48:30 -07:00
Sage Weil
ed68079198 osd: initial COPY_FROM (not viable for large objects)
Initial pass at COPY_FROM implementation.  This uses COPY_GET to read an
object from another OSD and write it locally.  It chunks the read but
accumulates it all in-memory and commits it at once, so it is only suitable
for smaller objects.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-09-03 15:48:30 -07:00
Sage Weil
3a8adf5314 objecter, librados: add COPY_FROM operation
This operation will copy an entire object (data, attrs, omap)
atomically.  If the src_version does not match the source object, or
the source object is updated while the copy is in progress, we will
fail with a suitable error code.  By atomic we mean that it will either
successfully copy the entire object in its entirety or it will fail (and
require no cleanup).

Add to C++ librados API only for now.

Signed-off-by: Sage Weil <sage@inktank.com>

Conflicts:

	src/include/ceph_strings.cc
	src/include/rados.h
	src/osd/osd_types.cc
2013-09-03 15:48:30 -07:00
John Wilkins
746e78c650 doc: Updated manual install to include sync agent, ARM packages, and DNS configuration.
Signed-off-by: John Wilkins <john.wilkins@inktank.com>
2013-09-03 14:20:59 -07:00
Sage Weil
c367d6fee2 ceph_test_rados: add missing kick for rollback
This was broken by the refactor in 96aaa5e3a3
and can make us hang.

Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Samuel Just <sam.just@inktank.com>
2013-09-03 14:10:29 -07:00
Yehuda Sadeh
1d1f7f18df rgw: change watch init ordering, don't distribute if can't
Backport: dumpling

Moving back the watch initialization after the zone init,
as the zone info holds the control pool name. Since zone
init might need to create a new system object (that needs
to distribute cache), don't try to distribute cache if
watch is not yet initialized.

Reviewed-by: Sage Weil <sage@inktank.com>
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-09-03 13:33:23 -07:00
Greg Farnum
087800ee49 osd: provide better version bounds for cls_current_version and ENOENT replies
Following the changes to when we set or increase the user_version, we
want to continue to return the best lower bound we can on the version
of any newly-created object. For ENOENT replies that means returning
info.last_user_version instead of the (potentially-zero) ctx->user_at_version.

Similarly, for cls_current_version we want to return the last version on
the PG rather than the last update to the object in order to provide
sensible version ordering across object deletes and creates.

Update the versions doc so it continues to be precise.

Signed-off-by: Greg Farnum <greg@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
2013-09-03 10:54:23 -07:00
Sage Weil
d71cd54950 Merge remote-tracking branch 'gh/wip-6179'
Reviewed-by: Greg Farnum <greg@inktank.com>
2013-09-03 10:07:26 -07:00
Yehuda Sadeh
8078e9684e Merge pull request #562 from kri5/wip-4365
rgw: Allow wildcard in supported keystone roles.

Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
2013-09-03 08:49:32 -07:00
Christophe Courtaut
6019558127 rgw: Allow wildcard in supported keystone roles.
http://tracker.ceph.com/issues/4365 fixes #4365

Signed-off-by: Christophe Courtaut <christophe.courtaut@gmail.com>
2013-09-03 11:31:47 +02:00
Sage Weil
f79b379911 osd/ReplicatedPG: set user_version in waiting_for_commit replies
Signed-off-by: Sage Weil <sage@inktank.com>
2013-09-02 17:08:04 -07:00
Sage Weil
e8506b5adf osd/ReplicatedPG: do not set ctx->user_at_version unless ctx->user_modify
Leave ctx->user_at_version set to the previous oi.user_version unless/until
we find that ctx->user_modify is true.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-09-01 08:42:57 -07:00
Sage Weil
99793d970b osd/ReplicatedPG: do not log a user_version on the snapdir object
Signed-off-by: Sage Weil <sage@inktank.com>
2013-09-01 08:42:57 -07:00
Sage Weil
72c6c30255 osd/ReplicatedPG: log previous user_version on clone
Nothing relies on this, but it makes sense to me.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-09-01 08:42:57 -07:00
Sage Weil
cc8e901138 osd/ReplicatedPG: do not log user_version on deletion events
Or snap trim events where we are adjusting the head's snapdir attr.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-09-01 08:42:57 -07:00
Sage Weil
7d72e559b1 osd/PG: only raise PG's last_user_version if entry is >
We may have pg entries that do not increase the user_version at all (i.e.,
they may be 0).  Do not update the last_user_version in that case as we
need it to remain an upper bound.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-09-01 08:42:56 -07:00
Sage Weil
1610768d4a osd: debug user_versions a bit
Signed-off-by: Sage Weil <sage@inktank.com>
2013-09-01 08:42:56 -07:00
Sage Weil
1c5e58a85e osdc/Objecter: fix dereference of NULL pg_pool_t
Make sure we don't dereference a NULL pointer.  Note that we check a
bit further down if the target pool does not exist and return the proper
error.

Bug was reliably reproduced by

 ./ceph_test_rados_api_watch_notify --gtest_filter=LibRadosWatchNotify.WatchNotifyTimeoutTestPP

Signed-off-by: Sage Weil <sage@inktank.com>
2013-09-01 08:42:41 -07:00
Roald J. van Loon
a200e184b1 Validate S3 tokens against Keystone
- Added config option to allow S3 to use Keystone auth
- Implemented JSONDecoder for KeystoneToken
- RGW_Auth_S3::authorize now uses rgw_store_user_info on keystone auth
- Minor fix in get_canon_resource; dout is now after the assignment

Reviewed-by: Yehuda Sadeh<yehuda@inktank.com>
Signed-off-by: Roald J. van Loon <roaldvanloon@gmail.com>
2013-08-31 17:43:26 -07:00
Sage Weil
9636722a67 Merge pull request #561 from ceph/wip-6178
os: LevelDBStore: ignore ENOENT files when estimating store size

Reviewed-by: Sage Weil <sage@inktank.com>
2013-08-31 16:46:52 -07:00
Sage Weil
c7f2def8aa Merge branch 'next' 2013-08-31 10:31:31 -07:00
Roald J. van Loon
e48d6cb402 mon: fix uninitialized Op field
- Uninitialized field in MonitorLevelDB::Op causes random build errors.

Signed-off-by: Roald J. van Loon <roaldvanloon@gmail.com>
2013-08-31 10:30:30 -07:00
Roald J. van Loon
a5d815d233 automake cleanup: uninitialized version_t
This sometimes gives a completely random uint64_t value, because it is
potentially used uninitialized.

Signed-off-by: Roald J. van Loon <roaldvanloon@gmail.com>
2013-08-31 10:28:19 -07:00
Sage Weil
46279327cb Merge pull request #541 from ceph/wip-6036
osd objecter; copy-get

Reviewed-by: Greg Farnum <greg@inktank.com>
Reviewed-by: Samuel Just <sam.just@inktank.com>
2013-08-30 17:02:49 -07:00
Sage Weil
4f6c6b2d74 osd/ReplicatedPG: do not requeue if not primary
This saves us a bit of work, since we will discard the op anyway if
we aren't primary (or even if we become primary again before we get to
it).

Signed-off-by: Sage Weil <sage@inktank.com>
2013-08-30 16:57:25 -07:00
Sage Weil
b0a30a55eb osd: COPY_GET operation
Add new rados operation to copy all user-visible content for an object
in a simple, safe way.  Use a new object_copy_cursor_t to keep track of
our position.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-08-30 16:57:25 -07:00
Sage Weil
8d74f417ea osd/ReplicatedPG: factor {execute,reply}_ctx() out of do_op()
Separate the processing of an OpContext from the preamble and
allocation, so that we can delay the execution for some ops (like the
COPYFROM operation we're about to add).

Signed-off-by: Sage Weil <sage@inktank.com>
2013-08-30 16:57:25 -07:00
Sage Weil
bc99437ef6 osd: feed OSDMaps to the Objecter
Feed every map message we see (that isn't discarded for some other
reason) to the Objecter.  It has the same continuity requirements that
the OSD has, so it should be satisfied with what we get.  It can also
request maps via our MonClient.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-08-30 16:54:32 -07:00
Sage Weil
34709447e1 osd: add an Objecter instance
It gets its own lock, timer, and osdmap.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-08-30 16:54:32 -07:00
Sage Weil
a6b04c5d8b osd: discriminate based on connection messenger, not peer type
Replace ->get_source().is_osd() checks and instead see if it is the
cluster_messenger so that we do not confuse ourselves when we get
legit requests from other OSDs on our public interface.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-08-30 16:54:32 -07:00
Sage Weil
20b25c6f65 ceph-osd: rename msgr vars
Signed-off-by: Sage Weil <sage@inktank.com>
2013-08-30 16:54:17 -07:00
Sage Weil
a1dd98d7ca osd: add a separate messenger for the Objecter
We will give the OSD's Objecter its own messenger so that it does not
interfere with the OSD when it marks things up or down.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-08-30 16:54:16 -07:00
Sage Weil
ea61abad91 osd/ReplicatedPG: add whitespace
Signed-off-by: Sage Weil <sage@inktank.com>
2013-08-30 16:54:16 -07:00
Sage Weil
0712d958eb osd: less whitespace
Signed-off-by: Sage Weil <sage@inktank.com>
2013-08-30 16:54:16 -07:00
Sage Weil
36d6e6fa40 osdc/Objecter: allow ops to be canceled
This is useful in general, and specifically will be useful for the
rados COPY operation.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-08-30 16:54:16 -07:00