Commit Graph

86 Commits

Author SHA1 Message Date
Sage Weil
4951244726 Merge remote-tracking branch 'gh/next' 2014-06-02 22:24:48 -07:00
Joao Eduardo Luis
38405d3554 qa/workunits/cephtool: test setting options using SI units
Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
2014-05-30 22:09:23 +01:00
Loic Dachary
c2225f874d mon: fix set cache_target_full_ratio
It was a noop because it was incorrectly using the variable n. Add a
test to protect against regression.

http://tracker.ceph.com/issues/8440 Fixes: #8440

Reported-by: Geoffrey Hartz <hartz.geoffrey@gmail.com>
Signed-off-by: Loic Dachary <loic@dachary.org>
2014-05-27 10:24:18 +02:00
Joao Eduardo Luis
fd970bbc95 mon: OSDMonitor: disallow nonsensical cache-mode transitions
Fixes: 8155

Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
2014-05-03 03:42:19 +01:00
Loic Dachary
aae16ab355 mon: add ceph osd pool set <pool> auid
When a pool is created with ceph osd pool create, the auid is not
inferred from the session auid and is set to zero. Add the

  ceph osd pool set <pool> auid <int>

command to set it after it is created, and the matching get:

  ceph osd pool get <pool> auid

Signed-off-by: Loic Dachary <loic@dachary.org>
2014-04-23 22:20:42 +02:00
Sage Weil
2cb0bac697 qa/workunits/cephtool/test.sh: make set pg_num test non-racy
Loop while the pool is creating.

Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Greg Farnum <greg@inktank.com>
2014-04-21 14:18:21 -07:00
Greg Farnum
82edda23aa test: handle the create-pg delay when testing cache split syntax
Signed-off-by: Greg Farnum <greg@inktank.com>
Reviewed-by: Samuel Just <sam.just@inktank.com>
2014-04-18 13:41:00 -07:00
Sage Weil
015df934af mon/OSDMonitor: require force argument to split a cache pool
There are several perils when splitting a cache pool:

 - split invalidstes pg stats, which disables the agent
 - a scrub must be manually triggered post-split to rebuild stats
 - the pool may fill the OSDs during that period.
 - or, the pool may end up beyond the 'full' mark and once scrub does
   complete and the agent activate we may block IO for a long time while
   we catch up with flush/evict

Make it a bit harder for users to shoot themselves in the foot.

Fixes: #8043
Signed-off-by: Sage Weil <sage@inktank.com>
2014-04-15 13:57:21 -07:00
Sage Weil
e44f85ce18 qa/workunits/cephtool/test.sh: test 'osd pg-temp ...'
Signed-off-by: Sage Weil <sage@inktank.com>
2014-03-31 14:12:51 -07:00
Sage Weil
8c761c4797 mon: make 'ceph osd erasure-code-profile set ...' idempotent
Signed-off-by: Sage Weil <sage@inktank.com>
2014-03-31 10:01:43 -07:00
Loic Dachary
b273011874 osd,mon: use profile instead of properties
The qa and functional tests are adapted to the new command prototype
requiring a profile instead of a list of properties. When possible the
implicit ruleset creation is used to simplify the test setup.

Signed-off-by: Loic Dachary <loic@dachary.org>
2014-03-18 00:23:42 +01:00
Sage Weil
b70db7e735 Merge remote-tracking branch 'gh/firefly' 2014-03-11 19:20:27 -07:00
Sage Weil
2fbd77206c qa/workunits/cephtool/test.sh: fix thrash (more)
If I have to touch this again I will remove it.  Ugh.  This time,

ubuntu@teuthology:/var/lib/teuthworker/archive/teuthology-2014-03-11_02:30:01-rados-firefly-distro-basic-plana/125922

hit NXIO a few lines down because one of the OSDs was still down.

Signed-off-by: Sage Weil <sage@inktank.com>
2014-03-11 17:03:23 -07:00
Sage Weil
1c8c61897d qa/workunits/cephtool/test.sh: fix 'osd thrash' test
- fix the wait check for osds to come back up
- make sure they get marked back in, too

Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Dan Mick <dan.mick@inktank.com>
2014-03-07 15:21:38 -08:00
Sage Weil
0fd636c488 Merge remote-tracking branch 'gh/firefly'
Conflicts:
	README
2014-03-07 08:19:20 -08:00
Sage Weil
b436930779 qa/workunits/rest/test.py: do not test 'osd thrash'
This wreaks havoc on our QA because it marks osds up and down and then
immediately after that we try to scrub and some osds are still down.

Adjust the CLI test to wait for all OSDs to come back up after thrashing.

Signed-off-by: Sage Weil <sage@inktank.com>
2014-03-06 13:46:10 -08:00
Gregory Farnum
b642e3884c Merge pull request #1343 from ceph/wip-cache-warn-full
mon: warn when cache tier is full

Reviewed-by: Loic Dachary <loic@dachary.org>
Reviewed-by: Greg Farnum <greg@inktank.com>
2014-03-05 14:22:34 -08:00
Sage Weil
b093958a11 Merge pull request #1351 from ceph/wip-7248
osd: OSD: limit the value of 'size' and 'count' on 'osd bench'

Reviewed-by: Sage Weil <sage@inktank.com>
2014-03-05 14:18:28 -08:00
Sage Weil
0592368070 mon: warn when pool nears target max objects/bytes
The cache pools will throttle when they reach the target max size, so it
is important to make the administrator aware when they approach that point.
Unfortunately it is not particularly easy to efficiently keep track of
which PGs have hit their limit and use that for reporting.  However, it
is easy to raise a flag when we start to approach the target for the
entire pool, and that sort of early warning is arguably more useful
anyway.

Trigger the warning based on the target full ratio.  Not when we hit the
target, but when we are 2/3 between it and completely full.

Implements: #7442
Signed-off-by: Sage Weil <sage@inktank.com>
2014-03-05 11:59:07 -08:00
Sage Weil
c029c2fbf1 mon/OSDMonitor: add 'osd tier add-cache <pool> <size>' command
This is a friendlier interface for setting up a cache tier with some
reasonable defaults (defined via config options).  This will simplify
the user experience and documentation.

Signed-off-by: Sage Weil <sage@inktank.com>
2014-03-03 21:16:24 -08:00
Sage Weil
08efb45889 OSDMonitor: do not add non-empty tier pool unless forced
In general, users should not use non-empty pools as new tiers or else
things can behave strangely:

 - the data sets are unrelated behavior will be... strange.
 - if the cache pool is not "new" and does not do the OMAP flag, the OSD
   will not know not to flush omap objects to an EC base tier
 - probably other random stuff I'm forgetting

Allow a user to shoot themselves in the foot with --force-nonempty.

Implements: #7457
Signed-off-by: Sage Weil <sage@inktank.com>
2014-03-03 21:11:17 -08:00
Joao Eduardo Luis
aca6ac343e qa: workunits: cephtool: test 'osd bench' limits
Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
2014-03-03 15:28:04 +00:00
Kai Zhang
dc20c7d674 OSDMonitor: enable getting hit set parameters
We would like to get the hit set parameters: hit_set_type |
hit_set_period | hit_set_count | hit_set_fpp via OSDMonitor

Signed-off-by: Kai Zhang <zakir.exe@gmail.com>
2014-03-01 00:22:14 -08:00
Loic Dachary
1340b360b5 erasure-code: test that changing the pool size is not allowed
http://tracker.ceph.com/issues/7360 fixes #7360

Signed-off-by: Loic Dachary <loic@dachary.org>
2014-02-23 07:52:59 -08:00
Sage Weil
dcf20b9bf3 osd: add 'notieragent' flag to OSDMap
This will pause tiering agent work.

Signed-off-by: Sage Weil <sage@inktank.com>
2014-02-15 22:09:38 -08:00
Loic Dachary
199bdb1ba8 mon: test dirty stats in ceph df detail
Signed-off-by: Loic Dachary <loic@dachary.org>
2014-02-15 22:09:38 -08:00
Sage Weil
95f25ce092 mon/OSDMonitor: allow new pool policy fields to be set
Signed-off-by: Sage Weil <sage@inktank.com>
2014-02-15 22:08:12 -08:00
Sage Weil
af848d4a4a 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>
2014-02-15 16:59:35 -08:00
Loic Dachary
d921d9b383 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>
2014-02-16 00:53:13 +01:00
Sage Weil
7e9f03b18e 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>
2014-02-15 10:08:45 -08:00
Sage Weil
1cc8c258b9 mon/OSDMonitor: add 'osd primary-affinity ...' command
Signed-off-by: Sage Weil <sage@inktank.com>
2014-02-12 13:38:12 -08:00
Sage Weil
d136eb4cbd mon: allow firefly crush tunables to be selected
Signed-off-by: Sage Weil <sage@inktank.com>
2014-02-11 11:12:56 -08:00
Sage Weil
bb6d3f81a7 rest/test.py: use larger max_file_size for mds set test
Current min is 64k.

Signed-off-by: Sage Weil <sage@inktank.com>
2014-02-07 06:11:57 -08:00
Loic Dachary
302fc924fe mon: s/ENOSYS/ENOTSUP/
On Linux ENOTSUP is remapped
/usr/include/x86_64-linux-gnu/bits/errno.h

    /* Linux has no ENOTSUP error code.  */
    # define ENOTSUP EOPNOTSUPP

and should have different values on other operating systems. On Ubuntu
precise the string returned when translating the error value of ENOTSUP
or EOPNOTSUPP is always EOPNOTSUPP but on Ubuntu saucy it is always
ENOTSUP.

Replace ENOSYS with ENOTSUP because the expected semantic is very
similar and modify the test to not check on the string translation of
the error.

Rework the check_response shell function to optionaly check the return
code. The erasure coded pool size change test verifies the error message
only but not the error code.

Signed-off-by: Loic Dachary <loic@dachary.org>
2014-02-07 12:41:42 +01:00
David Zafman
42a64e19b7 Revert test case of "mon: OSDMonitor: do not allow changing an erasure-coded pool's size"
This reverts part of commit c8c4cc6e81.

Fixes: #7355

Signed-off-by: David Zafman <david.zafman@inktank.com>
2014-02-06 19:13:20 -08:00
Joao Eduardo Luis
c8c4cc6e81 mon: OSDMonitor: do not allow changing an erasure-coded pool's size
Fixes: 7277

Reviewed-by: Loic Dachary <loic@dachary.org>
Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
2014-02-04 10:22:48 +01:00
Sage Weil
eb9ffd5a79 mon: use 'mds set inline_data ...' for enable/disable of inline data
This makes the management interface a bit more consistent.

Signed-off-by: Sage Weil <sage@inktank.com>
2014-02-03 17:50:32 -08:00
Sage Weil
408b0c8e75 mon: fix 'mds set allow_new_snaps'
We had already added this as a flag (set/unset) when I generalized the
'mds set_max_mds' to be 'ceph mds set <var> <val>'.  Switch the snaps
flag to be a key/value to with true/false (similar to the hashpspool
pool flag) since there are fewer users and the var/val approach is more
general.

Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Greg Farnum <greg@inktank.com>
2014-02-03 17:50:18 -08:00
Loic Dachary
08c17b7c5c qa: cleanup cephtool/test.sh tmp files
When run in a shared environment ( as opposed as a machine created for
the purpose of running this test only ), it is important to cleanup
leftovers to avoid poluting the /tmp space. Create a common temporary
directory for all tmp files.

Signed-off-by: Loic Dachary <loic@dachary.org>
2014-01-14 17:31:04 +01:00
Sage Weil
ca9acb9634 mon: implement 'mds set max_mds|max_file_size'
First, add the ability to modify max_file_size.  While we are at it, move
to a more sensible interface for adjusting max_mds too.

Signed-off-by: Sage Weil <sage@inktank.com>
2014-01-09 04:31:41 -08:00
Loic Dachary
a10fc025d7 osd: build_simple creates a single rule
The three rules created by build_simple are identical. They are replaced
by a single rule named replicated_rule which is set to be used by the
data, rbd and metadata pools.

Instead of hardcoding the ruleset number to zero, it is read from
osd_pool_default_crush_ruleset which defaults to zero.

The CEPH_DEFAULT_CRUSH_REPLICATED_RULESET enum is moved from osd_type.h to
config.h because it may be needed when osd_type.h is not included.

Signed-off-by: Loic Dachary <loic@dachary.org>
2013-12-27 00:13:47 +01:00
Loic Dachary
5cf2cdc073 qa: remove osd pool create erasure tests
Creating an erasure pool will crash the OSD because OSD::_make_pg
asserts if the type is not replicated. The tests related to erasure
coded pool creation are removed from qa/workunits/cephtool/test.sh.

The osd-create-pool.sh unit test covers the cases removed from test.sh
more extensively. The intent is to check the interactions with the MON
only, therefore it does not run an OSD and the absence of erasure code
placement group backend implementation is not an issue.

Signed-off-by: Loic Dachary <loic@dachary.org>
2013-12-26 10:01:19 +01:00
Loic Dachary
df0d038d7b mon: osd create pool must fail on incompatible type
When osd create pool is called twice on the same pool, it will succeed
because the pool already exists. However, if a different type is
specified, it must fail.

Signed-off-by: Loic Dachary <loic@dachary.org>
2013-12-22 23:43:50 +01:00
Loic Dachary
a0d1521ddb replace pool type REP with REPLICATED
Signed-off-by: Loic Dachary <loic@dachary.org>
2013-12-22 08:15:24 +01:00
Loic Dachary
1e238e6f95 mon: pool create will not fail if the type differs
It looked like it worked because the wrapper hide the error. The failing
tests are commented out so that the other tests can be used.

Signed-off-by: Loic Dachary <loic@dachary.org>
2013-12-20 22:00:31 +01:00
Joao Eduardo Luis
b3ee598f50 qa: workunit: cephtool: test osd pool create with erasure type
Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
2013-12-19 02:21:05 +00:00
Sage Weil
1bb46c0ec9 Merge pull request #955 from ceph/wip-crush-2
crush: make set_chooseleaf_tries work with firstn chooseleaf, too

Reviewed-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Loic Dachary <loic@dachary.com>
2013-12-18 10:00:55 -08:00
Sage Weil
7e0c84b84d mon/OSDMonitor: 'osd crush show-tunables'
Signed-off-by: Sage Weil <sage@inktank.com>
2013-12-18 08:35:25 -08:00
Sage Weil
0d217cf9e9 qa/workunits/cephtool/test.sh: clean up our client.xx.keyring
Signed-off-by: Sage Weil <sage@inktank.com>
2013-12-17 18:18:46 -08:00
Sage Weil
58d68995c4 Merge pull request #947 from dachary/wip-6824
mon: set ceph osd (down|out|in|rm) error code on failure

Reviewed-by: Sage Weil <sage@inktank.com>
2013-12-15 21:16:48 -08:00