Commit Graph

30251 Commits

Author SHA1 Message Date
Sage Weil
4b6d721434 osd: enable HASHPSPOOL by default
Much like the CRUSH tunables, this first appears in kernel v3.9.

Unlike the CRUSH tunables, it does not appear in Ceph until v0.64
(post cuttlefish, pre dumpling).

Signed-off-by: Sage Weil <sage@inktank.com>
2013-12-11 11:19:37 -08:00
Greg Farnum
fb47d54044 mon: if we're the leader, don't validate command matching
Classic-format commands never match our leader command set!

Signed-off-by: Greg Farnum <greg@inktank.com>
2013-12-11 10:12:56 -08:00
Greg Farnum
2bfd34ac95 mon: by default, warn if some members of the quorum are "classic"
Signed-off-by: Greg Farnum <greg@inktank.com>
2013-12-11 10:12:56 -08:00
Kai Zhang
e620057822 add apt-get install pkg-config for ubuntu server
Signed-off-by: Kai Zhang <kaizh.pub@gmail.com>
2013-12-10 18:28:48 -08:00
Greg Farnum
b8884e01a0 MemStore: update for the new ObjectStore interface
68fdcfa1cc249af859400a2ce4590fefbb2f525b changed the ObjectStore
interface in the 'next' branch, which was merged into master by
e5a02c33e23e4fbdc7bf0f16a5bbff61f4e37186. Unfortunately the
Memstore (added via the master branch) was not corrected for this
interface change.

Signed-off-by: Greg Farnum <greg@inktank.com>
Reviewed-by: David Zafman <david.zafman@inktank.com>
2013-12-10 17:08:21 -08:00
Gary Lowell
e5a02c33e2 Merge branch 'next' 2013-12-10 21:00:14 +00:00
Gregory Farnum
b66902b64e Merge pull request #927 from dachary/wip-crush-test
crush: remove crushtool test leftover
2013-12-10 12:25:07 -08:00
Loic Dachary
8ac1da8e35 crush: remove crushtool test leftover
Signed-off-by: Loic Dachary <loic@dachary.org>
2013-12-10 20:35:34 +01:00
Sage Weil
6bd63a1ec1 Merge pull request #920 from dachary/wip-man
man: Ceph is also an object store

Reviewed-by: Sage Weil <sage@inktank.com>
2013-12-10 11:10:41 -08:00
Greg Farnum
ec609cacde Elector: use monitor's encoded command sets instead of our own
Signed-off-by: Greg Farnum <greg@inktank.com>
2013-12-10 10:23:03 -08:00
scuttlemonkey
85a024a6bd Merge pull request #865 from ceph/wip-doc-build-cluster
Wip doc build cluster
2013-12-10 10:14:59 -08:00
Greg Farnum
e223e5348d Monitor: encode and expose mon command sets
Signed-off-by: Greg Farnum <greg@inktank.com>
2013-12-10 10:09:24 -08:00
Loic Dachary
420a2f15a5 man: update man/ from doc/man/8
As explained in admin/manpage-howto.txt

Signed-off-by: Loic Dachary <loic@dachary.org>
2013-12-10 18:34:16 +01:00
Loic Dachary
8d60cd1ac2 man: Ceph is also an object store
Replace

   Ceph distributed file system

with

   Ceph distributed storage system

to help reduce the idea that Ceph is just a file system.

Signed-off-by: Loic Dachary <loic@dachary.org>
2013-12-10 18:33:05 +01:00
Sage Weil
d650474059 Merge pull request #923 from dachary/wip-crush-test
CrushTester patches and documentation

Reviewed-by: Sage Weil <sage@inktank.com>
2013-12-10 09:06:31 -08:00
Sage Weil
faaf546303 os/MemStore: do on_apply_sync callback synchronously
We can easily deadlock if we put this in the Finisher thread behind other
work; do it synchronously!

Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
2013-12-10 08:56:35 -08:00
Gary Lowell
d8ad51ee8a v0.73 2013-12-10 04:55:36 +00:00
Sage Weil
990b2b5df8 ceph_test_rados_api_tier: make HitSetWrite handle pg splits
Signed-off-by: Sage Weil <sage@inktank.com>
2013-12-09 20:53:07 -08:00
Greg Farnum
a6f4d71c65 Elector: keep a list of classic mons instead of each mon's commands
We aren't actually using the sets, so don't bother keeping them.

Signed-off-by: Greg Farnum <greg@inktank.com>
2013-12-09 15:34:34 -08:00
Loic Dachary
a888a57f79 crush: implement --show-bad-mappings for indep
Support the presence of ITEM_NONE device numbers in the indep mapping as
proof of a bad mapping. Implement the associated unit tests.

Signed-off-by: Loic Dachary <loic@dachary.org>
2013-12-09 21:10:29 +01:00
Loic Dachary
20263dd30e crush: add unitest for crushtool --show-bad-mappings
Signed-off-by: Loic Dachary <loic@dachary.org>
2013-12-09 21:10:29 +01:00
Loic Dachary
fbc4f99080 crush: remove scary message string
The string is no longer used and can be removed.

Signed-off-by: Loic Dachary <loic@dachary.org>
2013-12-09 21:10:29 +01:00
Loic Dachary
472f495e40 crush: document the --test mode of operations
Signed-off-by: Loic Dachary <loic@dachary.org>
2013-12-09 21:10:23 +01:00
Greg Farnum
ea86444fb3 Monitor: Elector: share the classic command set if we have a classic mon
The leader now checks to see if any monitors did not provide their
command set, and if so, shares the list of "classic" commands instead
of his own set. This will prevent users from seeing different commands
(depending on whether they connect to an old or new mon) while
performing upgrades, and will make it really obvious if they forgot
to upgrade one of the monitors!

Signed-off-by: Greg Farnum <greg@inktank.com>
2013-12-09 11:26:04 -08:00
Greg Farnum
f1ccdb418b Elector: share local command set when deferring
We're about to use this at a basic level, to identify when we have
"classic" monitors in-quorum, but could also do something more
sophisticated like a set intersection on the commands.

Signed-off-by: Greg Farnum <greg@inktank.com>
2013-12-09 11:26:04 -08:00
Greg Farnum
ba673be3e6 Monitor: import MonCommands.h from original Dumpling and expose it
If the Elector doesn't receive a set of commands from the elected leader, it
assumes the monitor is "classic" and uses the Dumpling command set as
the leader set.

Signed-off-by: Greg Farnum <greg@inktank.com>
2013-12-09 11:26:04 -08:00
Greg Farnum
3cb58f7406 Monitor: validate incoming commands against the leader's set too
Then check against our own, and forward if we don't recognize it
or for some reason don't match.

Signed-off-by: Greg Farnum <greg@inktank.com>
2013-12-09 11:26:04 -08:00
Greg Farnum
cb51b1ed1a Monitor: disseminate leader's command set instead of our own
Signed-off-by: Greg Farnum <greg@inktank.com>
2013-12-09 11:26:04 -08:00
Greg Farnum
d33df28c2b Elector: transmit local api on election win, accept leader's on loss
If we're the leader, just point to our local set. Disseminating these
will let peons advertise the full command set supported by the leader.
INCOMPLETE: does not yet handle winning Electors who do not send a command set.

Signed-off-by: Greg Farnum <greg@inktank.com>
2013-12-09 11:26:04 -08:00
Greg Farnum
8025fb33ad messages: make room for passing supported monitor commands in MMonElection
We're going to use this space to let leader tell everybody what
commands it supports.

Signed-off-by: Greg Farnum <greg@inktank.com>
2013-12-09 11:26:03 -08:00
Greg Farnum
f932903646 Monitor: pull command mapping out of _allowed_command()
We want to be able to validate commands against both the leader and
local command sets, so make that functionality generic.

Signed-off-by: Greg Farnum <greg@inktank.com>
2013-12-09 11:26:03 -08:00
Sage Weil
7d000e3411 Merge pull request #918 from ceph/port/misc
Misc portability patches

Reviewed-by: Sage Weil <sage@inktank.com>
2013-12-09 11:16:49 -08:00
Sage Weil
4c5f7ba8ba Merge pull request #922 from dachary/wip-crush-choose-tries
crush: fix map->choose_tries boundary test

Reviewed-by: Sage Weil <sage@inktank.com>
2013-12-09 08:28:43 -08:00
Loic Dachary
b8bdbd92d0 doc: update erasure code development doc
With a link to the tracker issue implementing the new indep mode.

Signed-off-by: Loic Dachary <loic@dachary.org>
2013-12-09 15:19:19 +01:00
Loic Dachary
41152a6317 crush: --show-utilization* implies --show-statistics
--show-utilization* outputs only if --show-statistics is set, which is
confusing. Instead of failing, set --show-statistics to avoid the
confusion.

Signed-off-by: Loic Dachary <loic@dachary.org>
2013-12-09 10:57:17 +01:00
Greg Farnum
dcb0a4f3bb Monitor: add a separate leader_supported_commands
This isn't used yet, but will be shortly.

Signed-off-by: Greg Farnum <greg@inktank.com>
2013-12-08 22:21:41 -08:00
Greg Farnum
4cd5c3bf3f Monitor: expose local monitor commands to other compilation units
Signed-off-by: Greg Farnum <greg@inktank.com>
2013-12-08 22:21:41 -08:00
Greg Farnum
dca5383f2e MonCommand: add operator== and operator!=
Signed-off-by: Greg Farnum <greg@inktank.com>
2013-12-08 22:21:41 -08:00
Greg Farnum
ac69a0122b MonCommand: support encode/decode
Signed-off-by: Greg Farnum <greg@inktank.com>
2013-12-08 22:21:41 -08:00
Greg Farnum
3dcbf460d1 encoding: fix [encode|decode]_array_nohead
We want to actually encode each element and keep it, rather than
writing each one at the position after the array end!

Signed-off-by: Greg Farnum <greg@inktank.com>
2013-12-08 22:21:41 -08:00
Loic Dachary
7482d62f24 crush: add CrushTester accessors
Signed-off-by: Loic Dachary <loic@dachary.org>
2013-12-08 22:17:26 +01:00
Loic Dachary
c928f077f7 crush: output --show-bad-mappings on err
Instead of using stdout so that it displays well when used in
conjunction with --show-statistics

Signed-off-by: Loic Dachary <loic@dachary.org>
2013-12-08 22:17:26 +01:00
Loic Dachary
5e0722fab5 crush: fix map->choose_tries boundary test
CrushWrapper::start_choose_profile allocates map->choose_tries with
choose_total_tries elements. When crush_choose_firstn sets a value, it
tests against map->choose_local_tries which could lead to memory
corruption if map->choose_total_tries is smaller than
map->choose_local_tries.

Another indesirable but non fatal side effect is that the output crushtool
--show-choose-tries will be truncated to choose_local_tries which is
set to a lower value than choose_total_tries by the default tuneables.

Signed-off-by: Loic Dachary <loic@dachary.org>
2013-12-08 17:00:54 +01:00
Sage Weil
94da2153d1 Merge pull request #869 from ceph/wip-crush
crush changes for erasure coding

Reviewed-by: Loic Dachary <loic@dachary.org>
Reviewed-by: Samuel Just <sam.just@inktank.com>
2013-12-07 20:59:22 -08:00
Noah Watkins
ef4061f0ad librbd: remove unused private variable
Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
2013-12-07 18:07:03 -08:00
Noah Watkins
ad3825c608 TrackedOp: remove unused private variable
Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
2013-12-07 18:07:03 -08:00
Noah Watkins
3b39a8a9f1 librbd: rename howmany to avoid conflict
A howmany macro exists on some platforms in standard headers, but there
really isn't any sort of standard that I've found. We just avoid the
conflict entirely this way.

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
2013-12-07 18:07:03 -08:00
Sage Weil
096f9b3268 Merge pull request #917 from ceph/port/compat
compat: define replacement TEMP_FAILURE_RETRY

Reviewed-by: Sage Weil <sage@inktank.com>
2013-12-07 14:01:14 -08:00
Sage Weil
96068bfad6 Merge pull request #919 from ceph/port/fdatasync
wbthrottle: use feature check for fdatasync

Reviewed-by: Sage Weil <sage@inktank.com>
2013-12-07 14:00:40 -08:00
Noah Watkins
539fe26109 wbthrottle: use feature check for fdatasync
Checking for fdatasync uses the same approach as the qemu configure
script. The relevant commit is d1722a27f552a22561104210e0afad4577878e53.
Here is a copy of the commit message which explains the check:

Under Darwin, a symbol exists for the fdatasync() function, so that our
link test succeeds. However _POSIX_SYNCHRONIZED_IO is set to '-1'.

According to POSIX:2008, a value of -1 means the feature is not
supported.
A value of 0 means supported at compilation time, and a value greater 0
means supported at both compilation and run time.

Enable fdatasync() only if _POSIX_SYNCHRONIZED_IO is '>0'.

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
2013-12-07 10:37:00 -08:00