Sage Weil [Sun, 24 Nov 2019 02:30:28 +0000 (20:30 -0600)]
Merge PR #31778 into master
* refs/pull/31778/head:
os/bluestore: pin onodes as they are added to the cache
Revert "Revert "Merge pull request #30964 from markhpc/wip-bs-cache-trim-pinned""
Reviewed-by: Mark Nelson <mnelson@redhat.com> Reviewed-by: Sage Weil <sage@redhat.com>
Sage Weil [Sat, 23 Nov 2019 14:48:32 +0000 (08:48 -0600)]
Merge PR #31796 into master
* refs/pull/31796/head:
PendingReleaseNotes: note about the removal of 'nvme' class
common/blkdev: drop is_nvme() method
os/bluestore/KernelDevice: get rid of 'nvme' type
Sage Weil [Fri, 22 Nov 2019 21:28:17 +0000 (15:28 -0600)]
Merge PR #31502 into master
* refs/pull/31502/head:
qa/tasks/ceph2: get ceph-daemon from same place as ceph
qa/tasks/ceph2: use safe_while
qa/tasks/ceph2: pull image using sha1
qa/tasks/ceph2: docker needs quay.io/ prefix for image name
qa/workunits/rados/test_python: make sure rbd pool exists
qa/suites/rados/ssh: new tests!
qa/tasks/ceph2: pull ceph-ci/ceph:$branch
qa/tasks/ceph2: register_daemons after pods start
qa/tasks/ceph2: fix conf
qa/tasks/ceph2: add restart
qa/tasks/ceph2: pass ceph-daemon path to DaemonState
qa/tasks/ceph2: tolerate no mdss or 1 mgr
qa/tasks/ceph: replace wait_for_osds_up with manager.wait_for_all_osds_up
qa/tasks/ceph: wait-until-healthy
qa/tasks/ceph2: set up managers
qa/tasks/ceph2: use seed ceph.conf
qa/tasks/ceph: healthy: use manager helpers (instead of teuthology/misc ones)
qa/tasks/ceph2: name mds daemons
qa/tasks/ceph2: fix osd ordering
qa/tasks/ceph2: start up mdss
qa/tasks/ceph2: set up daemon handles and use them to stop
qa/tasks/ceph2: make it multicluster-aware
qa/tasks/ceph2: can bring up mon, mgr, osds!
qa/tasks/ceph2: basic task to bring up cluster with ceph-daemon and ssh
These are unused since 1d29722f801c ("switch monc, daemons to use new
msgr2 auth frame exchange"). As they default to false, a confused user
might flip them to true and think that their client <-> OSD traffic is
encrypted.
The new set of options was added in c7ee66c3e54b
("auth,msg/async/ProtocolV2: negotiate connection modes").
Sage Weil [Fri, 22 Nov 2019 14:50:52 +0000 (08:50 -0600)]
Merge PR #31798 into master
* refs/pull/31798/head:
ceph-daemon: ceph-volume works without an fsid
ceph-daemon: several commands that can infer fsids still require them
ceph-daemon: fix fsid inference
Tim Serong [Fri, 22 Nov 2019 09:25:19 +0000 (20:25 +1100)]
mgr/PyModule: correctly remove config options
Previously, incorrect parameters were being passed to "config rm",
causing it to do nothing. This commit also ensures the correct
error message is shown for both the set and remove failure cases.
I've also moved the update of the in-memory config map to *after*
the value is persisted, to ensure the config map actually reflects
what's stored.
Fixes: https://tracker.ceph.com/issues/42958 Signed-off-by: Tim Serong <tserong@suse.com>
Sage Weil [Thu, 21 Nov 2019 22:19:17 +0000 (16:19 -0600)]
os/bluestore/KernelDevice: get rid of 'nvme' type
We are either 'hdd' or 'ssd' based on the rotational flag. Previously,
we would try to distinguish between an nvme vs SATA/SAS ssd and set the
class to 'nvme'. This was misguided--the interface is not important and
has no direct bearing on the device performance. Moreover, the HDD
manufacturers are planning to produce rotation HDDs that use the nvme
interface instead of SATA/SAS.
So, drop this.
This may be somewhat disruptive to clusters where we were detecting
nvme but now are not. However, the good news is that this doesn't seem
to trigger for real deployments because LVM breaks the is_nvme()
method.
Patrick Donnelly [Thu, 21 Nov 2019 18:09:39 +0000 (10:09 -0800)]
mds: release free heap pages after trim
MDS free heap space can grow to large for some workloads (like smallfile
and recursive deletes). This can cause the MDS mapped memory to grow
well beyond memory targets.
When we finally use the PriorityCache in the MDS, this will not be
necessary anymore as the PriorityCache already does this.
Fixes: https://tracker.ceph.com/issues/42938 Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
Sage Weil [Mon, 18 Nov 2019 01:45:36 +0000 (19:45 -0600)]
mgr/ssh: add mode option
Set the mgr/ssh/mode option to ceph-daemon-package to switch to a mode
where we assume ceph-daemon is installed on the remote host and we can
ssh as user cephdaemon.
Sage Weil [Fri, 8 Nov 2019 22:39:00 +0000 (22:39 +0000)]
qa/tasks/ceph2: basic task to bring up cluster with ceph-daemon and ssh
This is pretty minimal at this point, but it works so far (or will, once a few open PRs merge).
Main problematic area right now is that the multi-cluster stuff isn't right. We should fix that before continuing, since ceph-daemon for once can do multiple clusters well.
Ricardo Dias [Thu, 21 Nov 2019 15:01:31 +0000 (15:01 +0000)]
ceph-daemon: append newline before public key string
Sometimes, `authorized_keys` file does not end with a newline and
therefore the public key generated by ceph-daemon gets appended to
the same line of the previous key. Therefore we need to append a
newline before our key to guarantee that the above case does not
happen.
Sage Weil [Thu, 21 Nov 2019 15:04:23 +0000 (09:04 -0600)]
Merge PR #31748 into master
* refs/pull/31748/head:
qa/standalone/test_ceph_daemon.sh: remove old vg before creating
qa/standalone/test_ceph_daemon.sh: sudo for untar
qa/standalone/test_ceph_daemon.sh: sudo for losetup etc
qa/standalone/test_ceph_daemon.sh: fix overwrites of temp files
Josh Durgin [Thu, 21 Nov 2019 04:50:38 +0000 (23:50 -0500)]
os/bluestore: pin onodes as they are added to the cache
When onodes are added to the cache, they may have more than one
reference already. Due to the implicit nature of boost::intrusive, in
the common case of creating a new Onode, they have 3 references at
this point.
Since they haven't been added to the cache yet, Onode::get() could not
pin them when they went from 1->2 references. Instead, take care of it
when they do get added to the cache. The pinning in get() is still
needed in case they get unpinned and then referenced again while still
cached.
This lack of pinning meant that newly created onodes were immediately
removed from the cache, since the last step of adding a new onode is
trimming the cache. In tests that read the object just after queueing
a write to it, the read got ENOENT, when it should have read the onode
from cache.