Lenz Grimmer [Tue, 19 Feb 2019 11:43:40 +0000 (12:43 +0100)]
Merge pull request #25233 from p-na/wip-pna-qos-pr
mgr/dashboard: Add support for managing RBD QoS
Reviewed-by: Alfonso Martínez <almartin@redhat.com> Reviewed-by: Laura Paduano <lpaduano@suse.com> Reviewed-by: Ricardo Dias <rdias@suse.com> Reviewed-by: Stephan Müller <smueller@suse.com> Reviewed-by: Tatjana Dehler <tdehler@suse.com>
Kefu Chai [Thu, 14 Feb 2019 09:27:57 +0000 (17:27 +0800)]
cmake: add PGMap.cc to crimson-common
otherwise we have failures like:
/usr/bin/ld: ../../../lib/libcrimson-common.a(Message.cc.o): in function
`PGMapDigest::~PGMapDigest()':
/var/ssd/ceph/src/mon/PGMap.h:37: undefined reference to `vtable for
PGMapDigest'
/usr/bin/ld: ../../../lib/libcrimson-common.a(Message.cc.o): in function
`PGMapDigest::~PGMapDigest()':
Sage Weil [Sun, 17 Feb 2019 14:18:06 +0000 (08:18 -0600)]
Merge PR #24805 into master
* refs/pull/24805/head:
qa/suite: add dedup test
src/tools: fix compile error (master version issue)
src/tools: add stats (fixed objects,total objects)
src/tools: make room for cdc
src/tools: make enhacned stats and interface class
src/tools: set timelimit and add signal handler to check progress
src/tools: use the slice thing and make parallel (chunk_scrub)
src/test: add max-thread test in test_dedup_tool.sh
src/tools: use the slice thing and make parallel
src/test: add chunk-scrub test in test_dedup_tool.sh
src/tools: add chunk-scrub op in dedup tool
src/cls/cas: add has_chunk op
src/test: add test_dedup_tool.sh
src/tools: initial works for dedup tool
Sage Weil [Sat, 16 Feb 2019 00:14:05 +0000 (18:14 -0600)]
Merge PR #26455 into master
* refs/pull/26455/head:
qa/suites/upgrade/mimic-x/stress-split: drop pglog_hardlimit test
qa/suites/upgrade/mimic-x/stress-split: update for msgr2
qa/suites/upgrade/mimic-x/parallel: update for msgr v2
Sage Weil [Fri, 15 Feb 2019 22:22:14 +0000 (16:22 -0600)]
Merge PR #26448 into master
* refs/pull/26448/head:
osd: do not send peers really old maps
osd: build_incremental_map_msg: recover if we are missing an incremental
osd: build_incremental_map_msg: behave if we have latest full but not incremental
Sage Weil [Fri, 15 Feb 2019 22:08:55 +0000 (16:08 -0600)]
Merge PR #26345 into master
* refs/pull/26345/head:
ceph-osd: be helpful about upgrade gate
mon: record 'min_mon_release' file and prevent startup if it's too old
mon/Monitor: do not join cluster that is >2 releases old
mon/Elector: respect monmap min_mon_release
mon: check min_mon_release during probe
mon/MonmapMonitor: increase min_mon_release when full quorum is upgraded
mon: maintain quorum_min_mon_release
mon/MonMapMonitor: set initial min_mon_release
monmaptool: add --set-min-mon-release
monmaptool: don't spew usage on any error
mon/MonMap: add min_mon_release field
Sage Weil [Fri, 15 Feb 2019 14:43:23 +0000 (08:43 -0600)]
osd: do not send peers really old maps
We may receive a message that sat in a queue for a while with a low
priority and is tagged with an older epoch. Don't send a bunch of old
maps that we have already sent the peer.
Sage Weil [Fri, 15 Feb 2019 00:21:38 +0000 (18:21 -0600)]
mgr: hold GIL while generating a typed option value
Drop the GIL while looking up the module and option value. Retake
it before calling get_typed_option_value(), where we generate the
Python objects for the value.
Fixes: http://tracker.ceph.com/issues/38123 Fixes: http://tracker.ceph.com/issues/38204 Fixes: http://tracker.ceph.com/issues/38292 Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Thu, 14 Feb 2019 19:44:43 +0000 (13:44 -0600)]
msg/async/ProtocolV2: assume peer has SERVER_NAUTILUS for encoding v2 frame
The v2 frames may contain entity_addr_t and entity_addrvec_t. Those have
been understood since the MSG_ADDR2 feature, but with nautilus we've
additionally added the TYPE_ANY, and we encode TYPE_ANY addrs as
TYPE_LEGACY when the peer lacks SERVER_NAUTILUS.
For the purposes of the v2 protocol, we assume the peer understands
TYPE_ANY.
No other complex types are used in the v2 frame protocol, so this has no
effect on, e.g., what features we assume the peer has for the purposes
of encoding actual messages.
xie xingguo [Tue, 12 Feb 2019 04:07:42 +0000 (20:07 -0800)]
osd: Fix the problem by rechecking backfill status each time
a RemoteReservationRevoked message is received, so we can
restart the backfill process in a more safe and less-likely raced way.
This original fix handled the race by accepting the RecoveryDone
while in RepWaitBackfillReserved by going to RepNotRecovering.
Once we weren't crashing OSDs, none of the tests at the time
detected that backfill was actually hung.
Jianpeng Ma [Thu, 22 Nov 2018 08:25:20 +0000 (16:25 +0800)]
crimson/common: added templated LRU cache
the implementation is modeled after src/common/shared_cache.hpp, with
following changes/improvements
* split the implementation into two parts:
- simple_lru.h: for the basic LRU cache. which tracks the least recently
used (LRU) cache using a list, and uses a map for lookup. in
future, we could use boost's multiple-index-container to replace
this combination.
- shared_lru.h: for the improved version of LRU cache, it also tries
to track the evcited but still alive objects using a customized
deleter of shared_ptr, and it keeps a map of weak_ptr pointing to
these objects. the customized deleter will remove the tracked
item in weak_ptr map once all shared_ptrs are destroyed.
* specialize LRUCache for ordered and non-ordered lookup. in existing
OSD, `SimpleLRU` is used for caching the encoded osdmaps, and we
don't use `lower_bound()`, `upper_bound()` or `get_next()` accessors
for accessing these maps, so no need to store them with `std::map`.
and in crimson-osd, it would be great if we can ditch `SimpleLRU`,
and reuse `LRUCache` directly if `SharedLRU` is overkill. so let's
prepare for this by specializing for the `unordered_map<>`.
* remove (not yet) unused methods from SharedLRU, like `purge()`,
dump_weak_refs()
* change some function signatures to resemble those in `std::map`,
for instance,
- change `lookup()` to `find()`
- change `lookup_or_create()` to `operator[]()`
* add comment to document `SharedLRU` class
* add test for SharedLRU
Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com> Signed-off-by: Kefu Chai <kchai@redhat.com>
alfonsomthd [Thu, 14 Feb 2019 15:15:58 +0000 (16:15 +0100)]
mgr/dashboard: fix: toast notifications hiding utility menu
* Fixed margin-top taking into account responsiveness.
* dropdown-menu class: set z-index to avoid notification
hiding dropdown menus when menu item clicked.
Fixes: https://tracker.ceph.com/issues/38313 Signed-off-by: Alfonso Martínez <almartin@redhat.com>