Tim Serong [Tue, 12 Mar 2019 09:07:49 +0000 (20:07 +1100)]
mgr/deepsea: always use 'password' parameter for salt-api auth
Prior to https://github.com/saltstack/salt/commit/71d5601507, the
salt-api expected the password to be sent using the 'sharedsecret'
parameter if using shared secrets, and the 'password' parameter
for other authentication types. The above commit unifies this so
that we always only need to use the 'password' parameter.
Sage Weil [Mon, 11 Mar 2019 20:01:15 +0000 (15:01 -0500)]
Merge PR #26856 into master
* refs/pull/26856/head:
os/bluestore: make osd_memory_limit default to .8x the cgroup limit
os/bluestore: observe osd_memory_target config options
common/config: set osd_memory_target based on POD_MEMORY_REQUEST
common/util: include group limit in daemon metadata
common/util: get_cgroup_memory_limit() helper
common/config: pass entity_type down into parse_env()
Sage Weil [Fri, 8 Mar 2019 14:48:39 +0000 (08:48 -0600)]
mgr: push localized config handling into BaseMgr*Module
We need both (1) the raw key name (in order to look up the correct option
name and transform the result into the correct type) and (2) the optional
prefix (in order to look up both possible keys). This simplifies the
mgr_module implementation.
There is a weird mismatch between the way that BaseMgrModule and
BaseMgrStandbyModule implement this method. I suspect they could be
unified to work the same, but I'll leave that for another day.
Ernesto Puerta [Mon, 11 Mar 2019 12:38:02 +0000 (13:38 +0100)]
mgr/dashboard: Change 'Client Recovery' title
Rename 'Client Recovery' info-card title to 'Recovery Throughput' as:
- 'Client' is a misleading concept there, as long as all recovery is
server-side driven.
- No indication of the kind of metric (e.g.: IOPS, throughput, etc).
Jason Dillaman [Sun, 10 Mar 2019 19:49:15 +0000 (15:49 -0400)]
librbd: bypass pool validation if "rbd_validate_pool" is false
This config option is already used by the create image state
machine. This should address a broken test case when validating
pool vs self-managed snapshots.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Jason Dillaman [Thu, 28 Feb 2019 21:43:27 +0000 (16:43 -0500)]
librbd: improve object map performance under high IOPS workloads
Do not zero-fill the BitVector's bitset prior to decoding the data.
Additionally, only read-update-modify the portions of the footer
that are potentially affected by the updated state.
Fixes: http://tracker.ceph.com/issues/38538 Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Andrew Schoen [Fri, 8 Mar 2019 15:53:08 +0000 (09:53 -0600)]
ceph-volume: make systemctl.get_running_osds resilient to garbage output
Makes systemd.systemctl.get_running_osds more resilient to output
that doesn't match what we're expecting to parse. This also handles
the case of a nonzero exit status by retuning an empty list.
Andrew Schoen [Thu, 7 Mar 2019 17:57:03 +0000 (11:57 -0600)]
ceph-volume: use `simple scan` and `simple activate --all` in tests
In a couple of the functional tests for simple we should run `simple
scan` without any arguments and `simple activate --all` to increase
the test coverage. We want to test pointing at a diretory and scanning
all running OSDs.
Clang 8 complains about missing dtor, and this circumvents this problem.
```
/home/jenkins/workspace/ceph-master/src/librbd/io/ImageDispatchSpec.cc:136:48:
error: temporary of type 'boost::static_visitor<bool>' has protected
destructor
return boost::apply_visitor(IsWriteOpVisitor{}, m_request);
^
/home/jenkins/workspace/ceph-master/src/librbd/io/ImageDispatchSpec.cc:152:28:
note: in instantiation of member function
'librbd::io::ImageDispatchSpec<librbd::ImageCtx>::is_write_op' requested
here
template class librbd::io::ImageDispatchSpec<librbd::ImageCtx>;
^
/usr/local/include/boost/variant/static_visitor.hpp:53:5: note: declared
protected here
~static_visitor() = default;
^
1 error generated.
gmake[2]: *** [src/librbd/CMakeFiles/rbd_internal.dir/build.make:895:
src/librbd/CMakeFiles/rbd_internal.dir/io/ImageDispatchSpec.cc.o] Error 1
```
xie xingguo [Fri, 8 Mar 2019 07:47:56 +0000 (15:47 +0800)]
mgr/pg_autoscaler: drop undefined variable 'cr_name'
```
a/pg_autoscaler/module.py:359: error: Name 'cr_name' is not defined
```
Actually _get_pool_status should have prevented any pool
with a zero-ed capacity from going this far, so it is safe
to simply drop the obviously redundant check here.
Sage Weil [Fri, 8 Mar 2019 04:12:52 +0000 (22:12 -0600)]
Merge PR #26794 into master
* refs/pull/26794/head:
mon/MgrMonitor: only try to update always_on_modules if >= NAUTILUS
qa/standalone/mon/msgr-v2-transition: add some tests for enabling msgr v2
mon/MonmapMonitor: add 'ceph mon set-addrs <name> <addrvec>' command
Revert "mon/MonClient: disable ms_bind_msgr2 if NAUTILUS feature not set"
mon/OSDMonitor: use legacy_equals to compare osd addrs
msg/msg_types: make legacy_equals() symmetrical
mon/MDSMonitor: stop using get_orig_source_inst()
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com> Reviewed-by: Neha Ojha <nojha@redhat.com>
That behavior complicated the process of moving to v1 -> v2+v1 (extra
daemon restart, for example). Also, it wasn't sufficient: there are lots
of other reasons besides the mon version that could lead to a mismatch
between what we bind to locally and what is published in the cluster
maps. Better to embrace that reality and address those other issues.
Sage Weil [Wed, 6 Mar 2019 17:22:18 +0000 (11:22 -0600)]
mon/OSDMonitor: use legacy_equals to compare osd addrs
The OSDs may bind to v2+v1 due to ms_bind_msgr2, but we may only use the
v1 address in the OSDMap due to
- the osd->mon connection being v1 (mon isn't using v2 yet)
- the osd require_osd_release < nautilus
- ???
Conversely, the OSD may end up with a v2+v1 address in the osdmap, but
may connect to the current monitor via v1 only, due to the mon only being
bound to a v1 address.
If/when this happens, make sure we are doing a loose comparison of the
osdmap addrs vs the osd's addr they are connecting from.
Fixes: http://tracker.ceph.com/issues/38598 Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Wed, 6 Mar 2019 17:05:07 +0000 (11:05 -0600)]
msg/msg_types: make legacy_equals() symmetrical
The prior version would return true for
[v2,v1] vs [v2,v1]
[v2,v1] vs [v1]
but not
[v1] vs [v2,v1]
Now that final case is also true, which means a.legacy_equals(b) ==
b.legacy_equals(a) for any combination. This is what you would expect
for an equality operator... even a fuzzy one.
Ilya Dryomov [Wed, 6 Mar 2019 14:43:12 +0000 (15:43 +0100)]
librbd: don't do create+truncate for discards with copyup
With copyup, create is unnecessary because the object will be created
as a result of the copyup. create's place will be taken by assert_exists
from write_object().
Ilya Dryomov [Wed, 6 Mar 2019 14:43:12 +0000 (15:43 +0100)]
test/librbd: observe the object map interaction in DiscardRemoveTruncate
Undo the fixup made in merge commit a7351ce449bb ("Merge pull request
#20809 from idryomov/wip-librbd-discard-create-truncate"). We do want
to observe the object map interaction here -- specific changes towards
that were made in commits 513baf92ef01 ("test/librbd: clone with parent
features in DiscardRemoveTruncate") and 9d6ee9a64986 ("test/librbd:
expect_object_may_exist(..., false) in DiscardRemoveTruncate").