Commit Graph

31232 Commits

Author SHA1 Message Date
Sage Weil
0389f1d62d mon/OSDMonitor: encode full OSDMap with same feature bits as the Incremental
Each monitor is independently encoding the full OSDMap and storing it in
its local store.  Sometime this happens when we do not have a valid value
for quorum_features (for example, it can happen during sync).

Instead, use the feature bits the Incremental was encoded with for the full
OSDMap so that they always match.

Note that this conveniently the *only* place in the mon where we encode
the full OSDMap, so we're capturing all paths.  Yay!

Signed-off-by: Sage Weil <sage@inktank.com>
2014-01-30 15:13:05 -08:00
Sage Weil
b9208b4774 OSDMap: note encoding features in Incremental encoding
The monitor will need to know what features the incremental was encoded
with so that it can encode the OSDMap using the same bits.  Introduce a
member that is set during decode.  During encode, encoding the value passed
in by the caller.

Signed-off-by: Sage Weil <sage@inktank.com>
2014-01-30 15:09:58 -08:00
Josh Durgin
ab649919f2 Merge pull request #1170 from ceph/wip-pybind-enverr
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2014-01-30 13:10:37 -08:00
Ilya Dryomov
e4dd1beae5 pybind: improve EnvironmentError output
Follow 70c7c9e600 ("pybind/rados.py: improve error output") and
improve EnvironmentError output for librbd and libcephfs too.

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
2014-01-30 23:04:12 +02:00
Yehuda Sadeh
754ddb16cb rgw: fix build on centos
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
2014-01-30 12:17:20 -08:00
Loic Dachary
d11d1880a7 Merge pull request #1145 from dachary/wip-mailmap
mailmap: organization affiliations

Reviewed-By: Christophe Courtaut <christophe.courtaut@gmail.com>
2014-01-30 12:15:21 -08:00
Loic Dachary
1628423036 mailmap: Rutger ter Borg affiliation
Reviewed-by: Rutger ter Borg <rutger@terborg.net>
Signed-off-by: Loic Dachary <loic@dachary.org>
2014-01-30 21:13:07 +01:00
Loic Dachary
3a1a8c3e8a mailmap: Laurent Barbe affiliation
Reviewed-by: Laurent Barbe <laurent@ksperis.com>
Signed-off-by: Loic Dachary <loic@dachary.org>
2014-01-30 21:13:07 +01:00
Loic Dachary
5b5bc0bc3e mailmap: anonymous contributions are unaffiliated
there only are a few of them

Signed-off-by: Loic Dachary <loic@dachary.org>
2014-01-30 21:13:07 +01:00
Loic Dachary
b0fe2a944b mailmap: Andras Elso affiliation
Signed-off-by: Loic Dachary <loic@dachary.org>
2014-01-30 21:13:07 +01:00
Loic Dachary
93a62d73b7 mailmap: Ma Jianpeng affiliation
and name normalization

Signed-off-by: Loic Dachary <loic@dachary.org>
2014-01-30 21:13:07 +01:00
Loic Dachary
74d5bf506b mailmap: Simon Leinen is with SWITCH
Signed-off-by: Loic Dachary <loic@dachary.org>
2014-01-30 21:13:07 +01:00
Loic Dachary
f9132e0a9a mailmap: John Spray is with Inktank
Signed-off-by: Loic Dachary <loic@dachary.org>
2014-01-30 21:13:07 +01:00
Loic Dachary
49842db15b mailmap: Alan Somers affiliation
Reviewed-by: Alan Somers <asomers@gmail.com>
Signed-off-by: Loic Dachary <loic@dachary.org>
2014-01-30 21:13:07 +01:00
Loic Dachary
79563e1905 mailmap: Jonathan Dieter affiliation
Reviewed-by: Jonathan Dieter <jdieter@lesbg.com>
Signed-off-by: Loic Dachary <loic@dachary.org>
2014-01-30 21:13:07 +01:00
Loic Dachary
a28f1fa243 mailmap: Christian Marie affiliation
and name normalization

Reviewed-by: Christian Marie <pingu@anchor.net.au>
Signed-off-by: Loic Dachary <loic@dachary.org>
2014-01-30 21:13:07 +01:00
Loic Dachary
aa7fc3bbb1 mailmap: Dan Chai is unaffiliated
and name normalization

Reviewed-by: Dan Chai <tengweicai@gmail.com>
Signed-off-by: Loic Dachary <loic@dachary.org>
2014-01-30 21:13:06 +01:00
Loic Dachary
cb9792eeec mailmap: Kai Zhang affiliation
Reviewed-by: Kai Zhang <zakir.exe@gmail.com>
Signed-off-by: Loic Dachary <loic@dachary.org>
2014-01-30 21:12:48 +01:00
Loic Dachary
30f4969f07 mailmap: Ron Allred name normalization
Signed-off-by: Loic Dachary <loic@dachary.org>
2014-01-30 21:12:24 +01:00
Loic Dachary
b5d22eb89e mailmap: Thomas Bechtold affiliation
and canonical name. Also fix the name "Deutsche Telekom"

Reviewed-by: Thomas Bechtold <t.bechtold@telekom.de>
Signed-off-by: Loic Dachary <loic@dachary.org>
2014-01-30 21:12:24 +01:00
Loic Dachary
c8c103b71f mailmap: Xihui He affiliation
Signed-off-by: Loic Dachary <loic@dachary.org>
2014-01-30 21:12:24 +01:00
Loic Dachary
f7b000e537 mailmap: Adam Twardowski affiliation
Signed-off-by: Loic Dachary <loic@dachary.org>
2014-01-30 21:12:24 +01:00
Loic Dachary
47a5122e41 mailmap: Huang Jun is unaffiliated
and name normalization

Reviewed-by: Huang Jun <hjwsm1989@gmail.com>
Signed-off-by: Loic Dachary <loic@dachary.org>
2014-01-30 21:12:24 +01:00
Loic Dachary
0dbf44ff71 mailmap: Kun Huang affiliation
As found at https://github.com/pyKun

Signed-off-by: Loic Dachary <loic@dachary.org>
2014-01-30 21:12:24 +01:00
Loic Dachary
ad515bfec3 ceph-disk: support and test the absence of PATH
Although this is not exactly the context in which ceph-disk is run when
invoked by udev, it makes sure there is at least one sensible way of
using it when PATH is undefined.

Also make src/ceph.in not fail if PATH is not defined.

Signed-off-by: Loic Dachary <loic@dachary.org>
2014-01-30 20:11:02 +01:00
Loic Dachary
3f5e4f5250 ceph-disk: larger timeout in the test script
Otherwise slow machines may timeout just because they are slow and not
because the process is blocked by an actual problem.

Signed-off-by: Loic Dachary <loic@dachary.org>
2014-01-30 20:11:02 +01:00
Haomai Wang
d70efe9889 FileStore: avoid leveldb check for xattr when possible
Maintain an internal xattr called "spill_out" that indicates whether we
(may) have xattrs stored in omap.  If attribute is set, it will indicate
that we should or should not look in omap.  If the attribute is not
present, then we do not know and will also need to check.

For new stores, this will avoid the overhead of consulting omap in the
general case until a particular objects gets enough (or big) xattrs and
spills over.

For old stores, we will effectively fall back to the previous behavior
of always checking.

Implements #7059

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Samuel Just <sam.just@inktank.com>
2014-01-30 11:01:33 -08:00
Josh Durgin
7b179119b2 Merge pull request #1159 from ceph/wip-rbd-rm-watchers
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2014-01-30 10:52:50 -08:00
Sage Weil
15c0dd02b6 Merge remote-tracking branch 'gh/next' 2014-01-30 09:19:59 -08:00
Sage Weil
6d1daeae08 unittest_striper: fix warning
In file included from test/test_striper.cc:1:0:
../src/gtest/include/gtest/gtest.h: In function ‘testing::AssertionResult testing::internal::CmpHelperEQ(const char*, const char*, const T1&, const T2&) [with T1 = int, T2 = unsigned int]’:
../src/gtest/include/gtest/gtest.h:1300:30: instantiated from ‘static testing::AssertionResult testing::internal::EqHelper::Compare(const char*, const char*, const T1&, const T2&) [with T1 = int, T2 = unsigned int, bool lhs_is_null_literal = false]’
test/test_striper.cc:57:223: instantiated from here
warning: ../src/gtest/include/gtest/gtest.h:1263:3: comparison between signed and unsigned integer expressions [-Wsign-compare]

Signed-off-by: Sage Weil <sage@inktank.com>
2014-01-30 09:13:30 -08:00
Loic Dachary
83db8b0427 Merge pull request #1167 from mourgaya/master
doc: cls moved to subdirectory

Reviewed-By: Christophe Courtaut <christophe.courtaut@gmail.com>
2014-01-30 07:42:04 -08:00
Eric Mourgaya
f9071a7713 doc: cls moved to subdirectory
Signed-off-by: Eric Mourgaya <eric.mourgaya@gmail.com>
2014-01-30 15:26:04 +01:00
Ilya Dryomov
e78f7564b7 run-rbd-tests: run remove_with_watcher test
Bug #2533 has been fixed for a while now, start running
remove_with_watcher test.

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
2014-01-30 14:47:45 +02:00
Ilya Dryomov
4ebc32f37a rbd: don't forget to call close_image() if remove_child() fails
close_image() among other things unregisters a watcher that's been
registered by open_image().  Even though it'll timeout in 30 or so
seconds, it's not nice now that we check for watchers before starting
the removal process.

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
2014-01-30 14:47:45 +02:00
Ilya Dryomov
0a553cfa81 rbd: check for watchers before trimming an image on 'rbd rm'
Check for watchers before trimming image data to try to avoid getting
into the following situation:

  - user does 'rbd rm' on a mapped image with an fs mounted from it
  - 'rbd rm' trims (removes) all image data, only header is left
  - 'rbd rm' tries to remove a header and fails because krbd has a
    watcher registered on the header
  - at this point image cannot be unmapped because of the mounted fs
  - fs cannot be unmounted because all its data and metadata is gone

Unfortunately, this fix doesn't make it impossible to happen (the
required atomicity isn't there), but it's a big improvement over the
status quo.

Fixes: http://tracker.ceph.com/issues/7076

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
2014-01-30 14:47:45 +02:00
Ilya Dryomov
dcbe872e06 pybind: work around find_library() not searching LD_LIBRARY_PATH
Commit b28b64a0b6 ("pybind: use find_library for libcephfs and
librbd") switched us to find_library(), but this function doesn't seem
to respect LD_LIBRARY_PATH.  There are numerous python tickets, dating
back several years, but alas.  Work around it by using the soname as
a fallback.  (rados.py has been fixed by commit e46d2ca067 ("fix the
bug  ctypes.util.find_library to search for librados failed on
Centos6.4.")

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
2014-01-30 13:48:22 +02:00
Dan Mick
1a1f53d2e9 Merge pull request #1163 from ceph/wip-7264
pybind/rados.py: improve error output

Reviewed-by: Dan Mick <dan.mick@inktank.com>
2014-01-29 16:17:05 -08:00
Yehuda Sadeh
70c7c9e600 pybind/rados.py: improve error output
Fixes: 7264

When failing to load librados, output the exception.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2014-01-29 16:20:55 -08:00
John Wilkins
456c727ea5 doc: Removed extraneous character from path.
Signed-off-by: John Wilkins <john.wilkins@inktank.com>
2014-01-29 14:14:29 -08:00
Sage Weil
f32bfa5a37 ceph_test_object_map: fix build
Signed-off-by: Sage Weil <sage@inktank.com>
2014-01-29 08:30:39 -08:00
Alfredo Deza
3a39f363ef Merge pull request #1156 from ceph/wip-ceph-disk
ceph-disk: run the right executables from udev
2014-01-29 07:25:07 -08:00
Sage Weil
75da9f1086 Merge pull request #1148 from ceph/wip-7215-quorum-features
Add monitor quorum features

Reviewed-by: Sage Weil <sage@inktank.com>
2014-01-29 07:22:19 -08:00
Sage Weil
a4d1927b53 Merge remote-tracking branch 'gh/next' 2014-01-29 06:59:23 -08:00
Sage Weil
5476b4b6eb keyvaluestore: name to keyvaluetore-dev for now
This helps warn the user that the ondisk format may be subject to change.

Signed-off-by: Sage Weil <sage@inktank.com>
2014-01-29 06:40:29 -08:00
Sage Weil
e1349df450 Merge pull request #1158 from yuyuyu101/keyvaluestore-dev
Keyvaluestore Support

Reviewed-by: Sage Weil <sage@inktank.com>
2014-01-29 06:38:03 -08:00
Haomai Wang
cfdfb98ad3 Make ObjectStore unit tests shared with KeyValueStore
Via gtest's value-parameterized feature, let the successors of
ObjectStore share the same unit tests.

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
2014-01-29 21:50:29 +08:00
Haomai Wang
972d4b24c4 Add KeyValueStore implementation
KeyValueStore is another ObjectStore implementation with FileStore. It
uses KV store wrapper(StripObjectMap) which inherited GenericObjectMap
to implement ObjectStore APIs.

Each object has a header key in KV backend, which encapsulated the metadata
of object such as size, the status of keys. A complete object data maybe spread
around multi keys. The CRUD operation of object need to access the header key
of object to know the details, then the actual data keys will be get.

Now the actual KV backend of KeyValueStore is only LevelDB, more KV backend
(RocksDB, NVM API) will be introduced in the near future.

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
2014-01-29 21:50:15 +08:00
Wido den Hollander
03da035f76 docs: Typo in CloudStack user creation 2014-01-29 12:16:05 +01:00
Wido den Hollander
f0f4b8df81 docs: Improve CloudStack documentation.
Add a section about creating a CephX user for CloudStack.
2014-01-29 11:08:08 +01:00
Haomai Wang
8fb366f089 Add a new KV wrapper GenericObjectMap
Now we already have DBObjectMap which implement ObjectMap and other
interfaces, and ObjectMap.h implied that ObjectMap is used to encapsulates
the FileStore key value store. There exists limitation in current DBObjectMap
implementation, such as lacking of "coll_t" in "key", complicated prefix
hard-coded and inflexible extending.

So in order to provide a more flexible API and clear implementation to wrap KV
store, I copy the origin DBObjectMap and redesign the partial implementation.
Adding "coll_t" argument to all API and export "prefix" to callers. Prefixes
are divided into two parts "INTERN" and "USER". "INTERN" keys used by self to
manage and "USER" keys are managed by callers. Besides above, misc fixes are
imported such as more clear member function name and extendible header
structure.

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
2014-01-29 17:46:00 +08:00