]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
11 years agoosd/ReplicatedPG: do not flush omap objects to an EC base pool
Sage Weil [Sat, 8 Feb 2014 02:05:04 +0000 (18:05 -0800)]
osd/ReplicatedPG: do not flush omap objects to an EC base pool

The EC pool does not support omap content.  If the caching/tiering agent
encounters such an object, just skip it.  Use the OMAP object_info_t flag
for this.

Although legacy pools will have objects with omap that do not have this
flag set, no *cache* pools yet exist, so we do not need to worry about the
agent running across legacy content.

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoosd/ReplicatedPG: do not activate agent unless base pool exists
Sage Weil [Sat, 8 Feb 2014 02:03:41 +0000 (18:03 -0800)]
osd/ReplicatedPG: do not activate agent unless base pool exists

Paranoia.

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoosd: add OMAP flag to object_info_t
Sage Weil [Sat, 8 Feb 2014 02:03:19 +0000 (18:03 -0800)]
osd: add OMAP flag to object_info_t

Set a flag if we ever set or update OMAP content on an object.  This gives
us an easy indicator for the cache agent (without actually querying the
ObjectStore) so that we can avoid trying to flush omap to EC pools.

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoosd/ReplicatedPG: ignore starvation potential when taking write lock during promote
Sage Weil [Mon, 3 Feb 2014 19:44:18 +0000 (11:44 -0800)]
osd/ReplicatedPG: ignore starvation potential when taking write lock during promote

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoosd/ReplicatedPG: do not choke on op-less flush OpContexts (from flush)
Sage Weil [Mon, 3 Feb 2014 01:11:23 +0000 (17:11 -0800)]
osd/ReplicatedPG: do not choke on op-less flush OpContexts (from flush)

The agent initiates flush ops that don't have an OpRequest associated
with them.  Make reply_ctx skip the actual reply message instead of
crashing if the flush request gets canceled (e.g., due to a race with
a write).

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoosd/ReplicatedPG: do not flush|evict degraded objects
Sage Weil [Sun, 2 Feb 2014 05:48:07 +0000 (21:48 -0800)]
osd/ReplicatedPG: do not flush|evict degraded objects

The repop won't work right; we still repair the object before making
any update.

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoceph_test_rados_api_tier: fix osd pool set json syntax
Sage Weil [Sun, 2 Feb 2014 05:26:00 +0000 (21:26 -0800)]
ceph_test_rados_api_tier: fix osd pool set json syntax

String, not int.

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoosd: clear agent state when PG becomes a replica
Sage Weil [Sat, 1 Feb 2014 05:16:54 +0000 (21:16 -0800)]
osd: clear agent state when PG becomes a replica

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoosd/ReplicatedPG: do not flush or evict hitsets
Sage Weil [Thu, 30 Jan 2014 18:40:22 +0000 (10:40 -0800)]
osd/ReplicatedPG: do not flush or evict hitsets

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoosd/ReplicatedPG: fix evict mode selection for large target
Sage Weil [Tue, 28 Jan 2014 02:14:09 +0000 (18:14 -0800)]
osd/ReplicatedPG: fix evict mode selection for large target

If the target is > 1.0 for some reason (bad configuration, or high slop
value), and we are not yet full, we should be in IDLE mode--not SOME.

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoosd/ReplicatedPG: add slop to agent mode selection
Sage Weil [Tue, 28 Jan 2014 01:57:53 +0000 (17:57 -0800)]
osd/ReplicatedPG: add slop to agent mode selection

We want to avoid a situation where the agent clicks on and off when the
system hovers around a utilization threshold.  Particularly for trim,
the system can expend a lot of energy doing a minimal amount of work when
the effort level is low.  To avoid this, enable when we are some amount
above the threshold, and do not turn off until we are the same amount below
the target.

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoosd/ReplicatedPG: initial agent to random hash position inside pg
Sage Weil [Tue, 28 Jan 2014 00:26:19 +0000 (16:26 -0800)]
osd/ReplicatedPG: initial agent to random hash position inside pg

When the agent starts, start at a random offset to ensure we get a more
uniform distribution of attention to all objects in the PG.  Otherwise, we
will disproportionately examine objects at the "beginning" of the PG if we
are interrupted by peering or restarts or some other activity.

Note that if the agent_state is preserved, we do not forget our position,
which is also nice.

We *could* persist this position in the pg_info_t somewhere, but I am not
sure it is worth the effort.

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoosd: add pg_pool_t::get_random_pg_position()
Sage Weil [Tue, 28 Jan 2014 00:20:04 +0000 (16:20 -0800)]
osd: add pg_pool_t::get_random_pg_position()

Return a hash position somewhere inside a given pg.

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoosd: only enable tier agent when osd is in active state
Sage Weil [Mon, 27 Jan 2014 23:34:50 +0000 (15:34 -0800)]
osd: only enable tier agent when osd is in active state

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoosd: observe 'notieragent' osdmap flag
Sage Weil [Mon, 27 Jan 2014 23:30:28 +0000 (15:30 -0800)]
osd: observe 'notieragent' osdmap flag

Pause/unpause the agent thread accordingly.

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoosd: add 'notieragent' flag to OSDMap
Sage Weil [Mon, 27 Jan 2014 23:30:09 +0000 (15:30 -0800)]
osd: add 'notieragent' flag to OSDMap

This will pause tiering agent work.

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agohistogram: fix histogram::get_position_micro overflow
Loic Dachary [Mon, 27 Jan 2014 13:20:25 +0000 (14:20 +0100)]
histogram: fix histogram::get_position_micro overflow

Convert the return values to uint64_t

Signed-off-by: Loic Dachary <loic@dachary.org>
11 years agomon: test dirty stats in ceph df detail
Loic Dachary [Mon, 27 Jan 2014 15:47:33 +0000 (16:47 +0100)]
mon: test dirty stats in ceph df detail

Signed-off-by: Loic Dachary <loic@dachary.org>
11 years agoosd/ReplicatedPG: decay tier agent histograms over time
Sage Weil [Fri, 24 Jan 2014 22:57:02 +0000 (14:57 -0800)]
osd/ReplicatedPG: decay tier agent histograms over time

Make decisions based on recent observations of object age distributions,
not all time history.

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoosd/ReplicatedPG: basic flush and evict agent functionality
Sage Weil [Fri, 24 Jan 2014 22:35:41 +0000 (14:35 -0800)]
osd/ReplicatedPG: basic flush and evict agent functionality

This is very basic flush and evict functionality for the tiering agent.

The flush policy is very simple: if we are above the threshold and the
object is dirty, and not super young, flush it.  This is not too braindead
of a policy (although we could clearly do something smarter).

The evict policy is pretty simple: evict the object if it is clean and
we are over our full threshold.  If we are in the middle mode, try to
estimate how cold the object is based on an accumulated histogram of
objects we have examined so far, and decide to evict based on our
position in that histogram relative to our "effort" level.

Caveats:
 * the histograms are not refreshed
 * we aren't taking temperature into consideration yet, although some of
   the infrastructure is there.

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoosd: agent worker thread
Sage Weil [Mon, 20 Jan 2014 21:51:45 +0000 (13:51 -0800)]
osd: agent worker thread

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoosd/ReplicatedPG: fix finish_flush
Sage Weil [Sat, 8 Feb 2014 02:10:00 +0000 (18:10 -0800)]
osd/ReplicatedPG: fix finish_flush

Make sure we reallocate a pgbackend transaction at the time when we are
initiating new work.

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoosd/HitSet: add HitSetRef
Sage Weil [Fri, 24 Jan 2014 22:18:49 +0000 (14:18 -0800)]
osd/HitSet: add HitSetRef

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoosd/ReplicatedPG: factor clone check out of evict op code
Sage Weil [Mon, 20 Jan 2014 22:30:48 +0000 (14:30 -0800)]
osd/ReplicatedPG: factor clone check out of evict op code

Move the check for clones into a helper so that we will be able to use in
other places where we need to evict.

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoosd/ReplicatedPG: add on_finish to OpContext
Sage Weil [Tue, 4 Feb 2014 06:10:07 +0000 (22:10 -0800)]
osd/ReplicatedPG: add on_finish to OpContext

Add a callback hook for whenever an OpContext completes or cancels.  We
are pretty sloppy here about the return values because our initial user
will not care, and it is unclear if future users will.

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agomon: include dirty stats in 'ceph df detail'
Sage Weil [Mon, 20 Jan 2014 21:47:08 +0000 (13:47 -0800)]
mon: include dirty stats in 'ceph df detail'

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoosd: rename test/test_osd_types.cc -> test/osd/types.cc
Sage Weil [Mon, 20 Jan 2014 18:29:55 +0000 (10:29 -0800)]
osd: rename test/test_osd_types.cc -> test/osd/types.cc

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoosd: add pg_pool_t::get_pg_num_divisor
Sage Weil [Mon, 20 Jan 2014 18:28:43 +0000 (10:28 -0800)]
osd: add pg_pool_t::get_pg_num_divisor

A PG is not always an equally sized fraction of the total pool size due to
the use of ceph_stable_mod.  Add a helper to return the fraction
(denominator) of a given pg based on the current pg_num value.

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agomon/OSDMonitor: allow new pool policy fields to be set
Sage Weil [Fri, 10 Jan 2014 04:36:13 +0000 (20:36 -0800)]
mon/OSDMonitor: allow new pool policy fields to be set

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoosd/osd_types: add cache policy fields to pg_pool_t
Sage Weil [Wed, 18 Dec 2013 21:40:54 +0000 (13:40 -0800)]
osd/osd_types: add cache policy fields to pg_pool_t

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agohistogram: add decay
Sage Weil [Fri, 24 Jan 2014 22:56:22 +0000 (14:56 -0800)]
histogram: add decay

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agohistogram: move to common, add unit tests
Sage Weil [Fri, 24 Jan 2014 02:09:43 +0000 (18:09 -0800)]
histogram: move to common, add unit tests

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agohistogram: rename set -> set_bin
Sage Weil [Fri, 24 Jan 2014 02:05:40 +0000 (18:05 -0800)]
histogram: rename set -> set_bin

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agohistogram: calculate bin position of a value in the histrogram
Sage Weil [Fri, 24 Jan 2014 02:11:29 +0000 (18:11 -0800)]
histogram: calculate bin position of a value in the histrogram

Generate a lower and upper bound.

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoMerge pull request #1176 from ceph/wip-primary-affinity
Sage Weil [Sun, 16 Feb 2014 00:59:35 +0000 (16:59 -0800)]
Merge pull request #1176 from ceph/wip-primary-affinity

osd: primary affinity

Added primary-affinity thrashing to thrashosd.py.

Reviewed-by: Loic Dachary <loic@dachary.org>
11 years agoMerge pull request #1249 from dachary/wip-qa-erasure-test
Sage Weil [Sun, 16 Feb 2014 00:48:36 +0000 (16:48 -0800)]
Merge pull request #1249 from dachary/wip-qa-erasure-test

qa: do not create erasure pools yet

11 years agoqa: do not create erasure pools yet 1249/head
Loic Dachary [Sat, 15 Feb 2014 23:53:13 +0000 (00:53 +0100)]
qa: do not create erasure pools yet

comment out erasure pool related tests when an OSD is involved because
it does not work yet. See http://tracker.ceph.com/issues/7360.

Signed-off-by: Loic Dachary <loic@dachary.org>
11 years agoosd/OSDMap: include primary affinity in OSDMap::print 1176/head
Sage Weil [Fri, 14 Feb 2014 23:18:11 +0000 (15:18 -0800)]
osd/OSDMap: include primary affinity in OSDMap::print

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoosd/OSDMap: remove bad assert
Sage Weil [Tue, 11 Feb 2014 23:40:22 +0000 (15:40 -0800)]
osd/OSDMap: remove bad assert

You can have an erasure poool with all CRUSH_ITEM_NONE and primary == -1.
acting is not empty.

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agomon/OSDMonitor: add 'mon osd allow primary affinity' bool option
Sage Weil [Mon, 3 Feb 2014 01:34:25 +0000 (17:34 -0800)]
mon/OSDMonitor: add 'mon osd allow primary affinity' bool option

By default, disallow adjustment of primary affinity unless the user has
opted in by adjusting their monitor config.  This will avoid some user
pain because inadvertantly setting the affinity will prevent older clients
from connecting to and using the cluster.

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoceph_psim: some futzing to test primary_affinity
Sage Weil [Thu, 30 Jan 2014 16:22:58 +0000 (08:22 -0800)]
ceph_psim: some futzing to test primary_affinity

- map to acting
- count first position, primary

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoosd/OSDMap: add primary_affinity feature bit
Sage Weil [Thu, 30 Jan 2014 03:47:21 +0000 (19:47 -0800)]
osd/OSDMap: add primary_affinity feature bit

Indicate that we support it.  Indicate when an OSDMap requires it.

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoosd/OSDMap: apply primary_affinity to mapping
Sage Weil [Tue, 11 Feb 2014 17:25:04 +0000 (09:25 -0800)]
osd/OSDMap: apply primary_affinity to mapping

The behavior is a bit different for replicated and indep/erasure mode.
In the first case, we are rearranging the result.  In the second case,
we can just set the primary argument to the right value.

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoMerge pull request #1245 from ceph/wip-brag
Sage Weil [Sat, 15 Feb 2014 18:37:26 +0000 (10:37 -0800)]
Merge pull request #1245 from ceph/wip-brag

ceph-brag

Sebastien Han confirms that this is under the default (LGPL2) license, thus:

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoceph.spec: add ceph-brag 1245/head
Sage Weil [Sat, 15 Feb 2014 17:18:18 +0000 (09:18 -0800)]
ceph.spec: add ceph-brag

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agodebian: add ceph-brag
Sage Weil [Sat, 15 Feb 2014 17:18:12 +0000 (09:18 -0800)]
debian: add ceph-brag

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoceph-brag: add Makefile
Sage Weil [Sat, 15 Feb 2014 17:17:33 +0000 (09:17 -0800)]
ceph-brag: add Makefile

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoMerge pull request #1181 from dachary/wip-7277
Sage Weil [Sat, 15 Feb 2014 18:08:45 +0000 (10:08 -0800)]
Merge pull request #1181 from dachary/wip-7277

DNM: mon: s/ENOSYS/ENOTSUP/

Reviewed-by: Christophe Courtaut <christophe.courtaut@gmail.com>
Reviewed-by: Sage Weil <sage@inktank.com>
11 years agoMerge branch 'master' of https://github.com/enovance/ceph-brag into wip-brag
Sage Weil [Sat, 15 Feb 2014 17:17:22 +0000 (09:17 -0800)]
Merge branch 'master' of https://github.com/enovance/ceph-brag into wip-brag

11 years agodoc/release-notes: v0.67.6
Sage Weil [Fri, 14 Feb 2014 22:20:43 +0000 (14:20 -0800)]
doc/release-notes: v0.67.6

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoMerge pull request #1237 from dachary/wip-hashpspool
Sage Weil [Fri, 14 Feb 2014 17:27:33 +0000 (09:27 -0800)]
Merge pull request #1237 from dachary/wip-hashpspool

mon: ceph hashpspool false clears the flag

Reviewed-by: Christophe Courtaut <christophe.courtaut@gmail.com>
Reviewed-by: Sage Weil <sage@inktank.com>
11 years agoMerge pull request #1235 from ceph/wip-osdmaptool-pool-fix
Loic Dachary [Fri, 14 Feb 2014 12:33:26 +0000 (13:33 +0100)]
Merge pull request #1235 from ceph/wip-osdmaptool-pool-fix

wip-osdmaptool-pool-fix

Reviewed-by: Loic Dachary <loic@dachary.org>
11 years agoosdmaptool: add tests for --pool option 1235/head
Ilya Dryomov [Fri, 14 Feb 2014 10:23:25 +0000 (12:23 +0200)]
osdmaptool: add tests for --pool option

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
11 years agoosdmaptool: add --pool option for --test-map-pgs mode to usage()
Ilya Dryomov [Thu, 13 Feb 2014 17:38:11 +0000 (19:38 +0200)]
osdmaptool: add --pool option for --test-map-pgs mode to usage()

--test-map-pgs mode allows to map all pgs from either all pools or just
one pool.  Mention it in usage output.

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
11 years agoosdmaptool: fix --pool option for --test-map-object mode
Ilya Dryomov [Thu, 13 Feb 2014 17:38:10 +0000 (19:38 +0200)]
osdmaptool: fix --pool option for --test-map-object mode

Commit 7f1b12f2ef97 ("osdmaptool: add --test-map-pgs mode") broke
--pool for --test-map-object mode.  Fix it, and improve --pool option
handling for both modes while at it (report strict_strtol() errors,
check if specified pool exists).

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
11 years agotest: fix signed/unsigned warnings in TestCrushWrapper.cc
Greg Farnum [Fri, 14 Feb 2014 01:28:42 +0000 (17:28 -0800)]
test: fix signed/unsigned warnings in TestCrushWrapper.cc

Irritatingly, using 0 binds to int and generates warnings
if the thing we're checking is unsigned, so we have to be
explicit.

Signed-off-by: Greg Farnum <greg@inktank.com>
Reviewed-by: Sam Just <sam.just@inktank.com>
11 years agomon: ceph hashpspool false clears the flag 1237/head
Loic Dachary [Thu, 13 Feb 2014 17:18:43 +0000 (18:18 +0100)]
mon: ceph hashpspool false clears the flag

instead of toggling it.

Signed-off-by: Loic Dachary <loic@dachary.org>
11 years agoMerge pull request #1231 from dachary/wip-mon-create-simple
Sage Weil [Thu, 13 Feb 2014 15:00:18 +0000 (07:00 -0800)]
Merge pull request #1231 from dachary/wip-mon-create-simple

mon: do not goto reply if a ruleset exists in pending

Reviewed-by: Sage Weil <sage@inktank.com>
11 years agoMerge pull request #1216 from ceph/wip-null-xattr
Sage Weil [Thu, 13 Feb 2014 14:59:15 +0000 (06:59 -0800)]
Merge pull request #1216 from ceph/wip-null-xattr

mds: remove xattr when null value is given to setxattr()

Reviewed-by: Sage Weil <sage@inktank.com>
11 years agoMerge branch 'wip-libcephfs-firefly-rb' of https://github.com/linuxbox2/linuxbox...
Sage Weil [Thu, 13 Feb 2014 14:51:37 +0000 (06:51 -0800)]
Merge branch 'wip-libcephfs-firefly-rb' of https://github.com/linuxbox2/linuxbox-ceph

Reviewed-by: Sage Weil <sage@inktank.com>
This went through the fs suite and passed:

http://pulpito.ceph.com/sage-2014-02-12_13:38:53-fs-wip-libcephfs-testing-basic-plana

11 years agomon: do not goto reply if a ruleset exists in pending 1231/head
Loic Dachary [Thu, 13 Feb 2014 14:40:30 +0000 (15:40 +0100)]
mon: do not goto reply if a ruleset exists in pending

If the crush ruleset is found in pending, do not goto reply because it
does not exist yet. Wait for the pending proposal (and the ruleset) to
be accepted and then only return that it exists.

revert 4b687ba673574bcd3b77b0f79a07d5c74cdcedc2

Signed-off-by: Loic Dachary <loic@dachary.org>
11 years agoMerge pull request #1202 from dachary/wip-mon-create-simple
Loic Dachary [Thu, 13 Feb 2014 14:06:27 +0000 (15:06 +0100)]
Merge pull request #1202 from dachary/wip-mon-create-simple

mon: create simple should goto reply when it exists in pending

Reviewed-By: Christophe Courtaut <christophe.courtaut@gmail.com>
11 years agomon: osd crush rule create-simple functional tests 1202/head
Loic Dachary [Thu, 13 Feb 2014 12:54:49 +0000 (13:54 +0100)]
mon: osd crush rule create-simple functional tests

Basic tests and a test that create the conditions where an OSDMap
is pending with a ruleset that is not yet in the OSDMap. An attempt to
create a rule by the same name will return success and not create it again.

Signed-off-by: Loic Dachary <loic@dachary.org>
11 years agomon: osd crush rule functional tests
Loic Dachary [Sun, 9 Feb 2014 21:44:25 +0000 (22:44 +0100)]
mon: osd crush rule functional tests

* A set of test for the simplest operations
* A test covering all cases of osd crush rule

Signed-off-by: Loic Dachary <loic@dachary.org>
11 years agoMerge pull request #1230 from ceph/wip-open-truncate
Sage Weil [Thu, 13 Feb 2014 13:00:17 +0000 (05:00 -0800)]
Merge pull request #1230 from ceph/wip-open-truncate

mds: properly replay dentry trace for open truncate.

Reviewed-by: Sage Weil <sage@inktank.com>
11 years agomon: add ruleset name to crush rule dump
Loic Dachary [Tue, 11 Feb 2014 17:25:51 +0000 (18:25 +0100)]
mon: add ruleset name to crush rule dump

The crush rule name is made an optional first argument. If not provided, it
defaults to dumping all rules.

Signed-off-by: Loic Dachary <loic@dachary.org>
11 years agomon: add missing format argument to crush dump
Loic Dachary [Sun, 9 Feb 2014 19:31:44 +0000 (20:31 +0100)]
mon: add missing format argument to crush dump

Signed-off-by: Loic Dachary <loic@dachary.org>
11 years agomon: add missing format argument to crush rule dump
Loic Dachary [Sun, 9 Feb 2014 19:30:33 +0000 (20:30 +0100)]
mon: add missing format argument to crush rule dump

Signed-off-by: Loic Dachary <loic@dachary.org>
11 years agomon: osd create pool test refactor
Loic Dachary [Thu, 13 Feb 2014 09:23:28 +0000 (10:23 +0100)]
mon: osd create pool test refactor

* Use test-helpers.sh instead of duplicating it
* Isolate each test in a separate function for clarity

Signed-off-by: Loic Dachary <loic@dachary.org>
11 years agomon: minor improvement to test-helpers.sh
Loic Dachary [Sun, 9 Feb 2014 17:26:57 +0000 (18:26 +0100)]
mon: minor improvement to test-helpers.sh

* kill -9 daemons to better cope with stuck daemons
* reduce paxos propose interval to speedup tests
* look for erasure code plugins from the sources directory

Signed-off-by: Loic Dachary <loic@dachary.org>
11 years agomon: if crush rule create-simple exists return
Loic Dachary [Sun, 9 Feb 2014 11:31:30 +0000 (12:31 +0100)]
mon: if crush rule create-simple exists return

And it is consistent with the above. Also use a slightly different
string to allow the caller to differentiate between the two cases.

Signed-off-by: Loic Dachary <loic@dachary.org>
11 years agocrush: display item name in CrushWrapper::dump_rule()
Loic Dachary [Sun, 9 Feb 2014 20:40:08 +0000 (21:40 +0100)]
crush: display item name in CrushWrapper::dump_rule()

When an item name is available used it instead of displaying the number.

Signed-off-by: Loic Dachary <loic@dachary.org>
11 years agocrush: cosmetic changes to CrushWrapper::dump_rule()
Loic Dachary [Sun, 9 Feb 2014 20:21:23 +0000 (21:21 +0100)]
crush: cosmetic changes to CrushWrapper::dump_rule()

Signed-off-by: Loic Dachary <loic@dachary.org>
11 years agocrush: add the dump_rule(int ruleset) method
Loic Dachary [Sun, 9 Feb 2014 20:18:45 +0000 (21:18 +0100)]
crush: add the dump_rule(int ruleset) method

And implement dump_rules() using dump_rule(). The indentiation and
variable names are intentionaly left as is to not confuse code being
moved around and the code changes.

Signed-off-by: Loic Dachary <loic@dachary.org>
11 years agocrush: add CrushWrapper::dump_rules() unit test
Loic Dachary [Sun, 9 Feb 2014 20:17:31 +0000 (21:17 +0100)]
crush: add CrushWrapper::dump_rules() unit test

Signed-off-by: Loic Dachary <loic@dachary.org>
11 years agocrush: fix leaks in TestCrushWrapper.cc
Loic Dachary [Sun, 9 Feb 2014 20:11:09 +0000 (21:11 +0100)]
crush: fix leaks in TestCrushWrapper.cc

To get a meaningfull valgrind output.

Signed-off-by: Loic Dachary <loic@dachary.org>
11 years agoMerge pull request #1222 from dachary/wip-pending-osdmap
Loic Dachary [Thu, 13 Feb 2014 09:16:40 +0000 (10:16 +0100)]
Merge pull request #1222 from dachary/wip-pending-osdmap

mon: control pending OSDMap for testing

Reviewed-by: Joao Eduardo Luis <joao@inktank.com>
Reviewed-by: Greg Farnum <greg@inktank.com>
11 years agomon: remove racy tests from osd-pool-create.sh 1222/head
Loic Dachary [Wed, 12 Feb 2014 15:58:23 +0000 (16:58 +0100)]
mon: remove racy tests from osd-pool-create.sh

Use the admin socket to create the conditions by which a pool creation
is made to wait for the next paxos proposal because the required crush
ruleset is pending.

It replaces a fragile time sensitive workaround that could fail because
of race conditions. It also has the benefit of increase the speed of the
test because there is no need to wait for a long time just to accomodate
the slowest machines.

Signed-off-by: Loic Dachary <loic@dachary.org>
11 years agomon: add osdmonitor_prepare_command to the admin socket
Loic Dachary [Wed, 12 Feb 2014 15:49:32 +0000 (16:49 +0100)]
mon: add osdmonitor_prepare_command to the admin socket

It provides a developer path allowing functional tests to modify the
pending OSDMap without triggering a PaxosProposal.

It can be used as follows:

   echo '{"prefix":"osdmonitor_prepare_command","prepare":"osd crush tunables","profile":"bobtail"}' | nc -U out/mon.a.asok

It will transform the command into:

  {"prefix":"osd crush tunables","profile":"bobtail"}

and feed it to OSDMonitor::prepare_command_impl(). The pending OSDMap won't
be proposed because it short circuit PaxosService::dispatch. It will,
however, be proposed next time PaxosService::dispatch() gets a chance.

It cannot be used via the ceph command line.

Signed-off-by: Loic Dachary <loic@dachary.org>
11 years agomon: add --mon-advanced-debug-mode
Loic Dachary [Wed, 12 Feb 2014 17:49:50 +0000 (18:49 +0100)]
mon: add --mon-advanced-debug-mode

When this flag is true, the mon is expected to provide functionalities
that are for developer oriented debug purposes only. It is meant to
be used by the developer and not the system administrator, because it
would allow a non-developer to break things in ways that would be very
difficult to diagnose. It should probably not be documented.

Signed-off-by: Loic Dachary <loic@dachary.org>
11 years agomon: Monitor::send_reply gracefully handles no connection
Loic Dachary [Wed, 12 Feb 2014 15:48:04 +0000 (16:48 +0100)]
mon: Monitor::send_reply gracefully handles no connection

If req->get_connection() returns a null pointer, drop the reply instead
of crashing the monitor.

Signed-off-by: Loic Dachary <loic@dachary.org>
11 years agomon: split prepare_command in two
Loic Dachary [Wed, 12 Feb 2014 15:45:40 +0000 (16:45 +0100)]
mon: split prepare_command in two

So that it is possible to call prepare_command without a session
established and a cmdmap that has already been parsed.

Signed-off-by: Loic Dachary <loic@dachary.org>
11 years agomds: remove xattr when null value is given to setxattr() 1216/head
Yan, Zheng [Tue, 11 Feb 2014 05:32:23 +0000 (13:32 +0800)]
mds: remove xattr when null value is given to setxattr()

setxattr() should remove xattr if parameter 'value' is NULL. To
distinguish it from the zero-length value case, introduce a new
flag CEPH_XATTR_REMOVE for the setxattr request.

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
11 years agomds: properly replay dentry trace for open truncate. 1230/head
Yan, Zheng [Thu, 13 Feb 2014 02:28:49 +0000 (10:28 +0800)]
mds: properly replay dentry trace for open truncate.

Open request created by ceph_atomic_open() wants dentry trace. But
the corresponding code is missing in Server::do_open_truncate().

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
11 years agodoc/release-notes: do not downgrade from v0.67.6
Sage Weil [Thu, 13 Feb 2014 02:02:58 +0000 (18:02 -0800)]
doc/release-notes: do not downgrade from v0.67.6

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agodoc/release-notes: note about dumpling xattr backport
Sage Weil [Thu, 13 Feb 2014 01:55:50 +0000 (17:55 -0800)]
doc/release-notes: note about dumpling xattr backport

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoPendingReleaseNotes: note about cephfs backtrace updates
Sage Weil [Thu, 13 Feb 2014 01:42:16 +0000 (17:42 -0800)]
PendingReleaseNotes: note about cephfs backtrace updates

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoMerge pull request #1219 from ceph/wip-update-backtrace
Sage Weil [Thu, 13 Feb 2014 01:37:07 +0000 (17:37 -0800)]
Merge pull request #1219 from ceph/wip-update-backtrace

mds: force update backtraces for previously created FS

Reviewed-by: Sage Weil <sage@inktank.com>
11 years agoosd/OSDMap: pass pps value out from _pg_to_osds
Sage Weil [Tue, 11 Feb 2014 17:31:20 +0000 (09:31 -0800)]
osd/OSDMap: pass pps value out from _pg_to_osds

The primary affinity code needs a seed to determine it's pseudo-random
behavior.  Pass pps (optionally) out of _pg_to_osds() for this purpose.

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoosd/OSDMap: fix _raw_to_up_osds for EC pools
Sage Weil [Tue, 11 Feb 2014 17:24:29 +0000 (09:24 -0800)]
osd/OSDMap: fix _raw_to_up_osds for EC pools

When filtering down OSDs out of the result set (i.e., raw -> up), we can
shift positions for replicated pools but need to preserve position for
EC pools.

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agomon/OSDMonitor: add 'osd primary-affinity ...' command
Sage Weil [Mon, 23 Dec 2013 19:30:13 +0000 (11:30 -0800)]
mon/OSDMonitor: add 'osd primary-affinity ...' command

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoosd/OSDMap: add osd_primary_affinity fields, accessors, encoding
Sage Weil [Tue, 11 Feb 2014 17:27:32 +0000 (09:27 -0800)]
osd/OSDMap: add osd_primary_affinity fields, accessors, encoding

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agomon/OSDMonitor: fix legacy tunables warning
Sage Weil [Wed, 12 Feb 2014 21:18:04 +0000 (13:18 -0800)]
mon/OSDMonitor: fix legacy tunables warning

Warn on legacy tunables, not on non-optimal tunables.  Optimal is a moving
target, but it is really the legacy defaults that we want to push people
off of.

Fixes: #7399
Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoMerge pull request #1224 from kdreyer-inktank/packaging-libdir
Sage Weil [Wed, 12 Feb 2014 18:35:07 +0000 (10:35 -0800)]
Merge pull request #1224 from kdreyer-inktank/packaging-libdir

packaging: do not package libdir/ceph recursively

11 years agopackaging: do not package libdir/ceph recursively 1224/head
Alexandre Oliva [Wed, 12 Feb 2014 17:46:50 +0000 (15:46 -0200)]
packaging: do not package libdir/ceph recursively

Package libdir/ceph non-recursively, to avoid duplicates, and
package libdir/ceph/ceph_common.sh explicitly.

Signed-off-by: Alexandre Oliva <oliva@gnu.org>
Signed-off-by: Ken Dreyer <ken.dreyer@inktank.com>
11 years agoMerge pull request #1215 from ceph/wip-7385
Sage Weil [Wed, 12 Feb 2014 17:54:30 +0000 (09:54 -0800)]
Merge pull request #1215 from ceph/wip-7385

Remove the max cached objects restriction for librbd

Reviewed-by: Sage Weil <sage@inktank.com>
11 years agoMerge pull request #1199 from ceph/wip-doc-librados-intro
Loic Dachary [Wed, 12 Feb 2014 16:25:42 +0000 (17:25 +0100)]
Merge pull request #1199 from ceph/wip-doc-librados-intro

Wip doc librados intro

Reviewed-by: Dan Mick <dan.mick@inktank.com>
Reviewed-by: Loic Dachary <loic@dachary.org>
11 years agoMerge pull request #1221 from dachary/wip-filestore
Loic Dachary [Wed, 12 Feb 2014 11:52:02 +0000 (12:52 +0100)]
Merge pull request #1221 from dachary/wip-filestore

tests: fix packaging for s/filestore/objectstore/

Reviewed-by: Haomai Wang <haomaiwang@gmail.com>
11 years agotests: fix packaging for s/filestore/objectstore/ 1221/head
Loic Dachary [Wed, 12 Feb 2014 11:44:21 +0000 (12:44 +0100)]
tests: fix packaging for s/filestore/objectstore/

The binaries file name have changed and need to be updated in the
packaging files for deb and rpm. Fix a few leftovers as well.

Fixing 1a588f18ba0e57df64f8a48c1393a4bc65019571

Signed-off-by: Loic Dachary <loic@dachary.org>
11 years agoMerge pull request #1220 from dachary/wip-filestore
Kri5 [Wed, 12 Feb 2014 11:26:28 +0000 (12:26 +0100)]
Merge pull request #1220 from dachary/wip-filestore

tests: fix objectstore tests