Sage Weil [Fri, 15 Nov 2019 15:31:50 +0000 (09:31 -0600)]
osd: add osd_fast_shutdown option (default true)
If we get a SIGINT or SIGTERM or are deleted from the OSDMap, do a fast
shutdown by exiting immediately. This has a few important benefits:
- We immediately stop responding (binding) to any sockets, which means
other OSDs will immediately decide we are down (and dead!). This
minimizes IO interruption.
- We avoid the complex "clean" shutdown process, which is historically a
source of bugs.
In reality, the only purpose of the "clean" shutdown is to try to tear down
everything in memory so we can do memory leak checking with valgrind. Set
this option to false for valgrind QA runs so we can still do that.
Not that with the new read leases in octopus, we rely on the default
behavior that a ECONNREFUSED is taken to mean that the OSD is fully dead,
so that we don't have to wait for any leases to time out. This works in
sane environments with normal IP networks, but that behavior could
conceivably be a bad idea if there are some weird network shenanigans
going on. If osd_fast_fail_on_connection_refused were disabled, then this
fast shutdown procedure might be *worse* than the clean shutdown because
we would have to wait for the heartbeat timeout.
Sage Weil [Thu, 14 Nov 2019 16:33:24 +0000 (10:33 -0600)]
Merge PR #31584 into master
* refs/pull/31584/head:
common/options: osd_crush_chooseleaf_type is CLUSTER_CREATE
mon/ConfigMonitor: do not assimilate CLUSTER_CREATE options
common/ceph_context: observe container_image so we don't get warnings
Patrick Donnelly [Thu, 14 Nov 2019 14:14:11 +0000 (06:14 -0800)]
Merge PR #30754 into master
* refs/pull/30754/head:
doc/cephfs: merge fstab doc with respective mount docs
doc: add systemd unit part for FUSE mounts in fstab doc
doc: update and improve "mount using kernel driver" doc
doc: update and improve "mount using FUSE" doc
Reviewed-by: Jeff Layton <jlayton@redhat.com> Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Rishabh Dave [Wed, 13 Nov 2019 13:22:18 +0000 (18:52 +0530)]
test_cephfs_shell: initialize stderr for run_cephfs_shell_cmd()
Since teuthology initializes stderr to None by default, absence of this
breaks the tests accessing stderr of commands executed within the test
when the execution is using teuthology.
Fixes: https://tracker.ceph.com/issues/42806 Signed-off-by: Rishabh Dave <ridave@redhat.com>
Patrick Donnelly [Tue, 12 Nov 2019 22:50:52 +0000 (14:50 -0800)]
global: disable THP for Ceph daemons
Ceph is known to suffer from memory fragmentation due to transparent
huge pages (THP). This is indicated by RSS usage above configured memory
targets and is only observable when the distribution default for THP is
"always", which is the default in the upstream kernel if
CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is unset.
For now, enabling THP is currently discouraged until selective use of
THP by Ceph is implemented via madvise. We will need to consider both
defaults for THP so madvise calls to both enable and disable THP will
need implemented.
All credit to Mark Nelson for doing the legwork identifying this issue
and potential solutions.
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com> Signed-off-by: Mark Nelson <mnelson@redhat.com>
Kefu Chai [Wed, 13 Nov 2019 12:41:05 +0000 (20:41 +0800)]
install-deps.sh: remove the cleanup for kitware repo
it was used for removing the kitware repo, and in 7265b55d094a639be50a567d3be92fba94c04786, we switched to a rebuilt
version hosted in chacra, and it was more than two months ago,
presumably, none builder has kitware repo anymore. so, let's remove
the cleanup code.
the source deb package comes from
http://ppa.launchpad.net/jonathonf/binutils/ubuntu
i tried to use the binutils 2.30 source package from bionic,
but it has build dependency of dpkg-dev (>= 1.19.0.5) which cannot be
fulfilled on xenial. so without more changes, we cannot get
binutils 2.30 built on xenial using this source package.
Jan Fajerski [Wed, 13 Nov 2019 09:13:01 +0000 (10:13 +0100)]
ceph-volume: assume msgrV1 for all branches containing mimic
With nautilus and newer OSDs listen on v1 ports and v2 ports. Assume
that if mimic (or luminous) occur in the branch name, the OSDs are
running msgrv1 only.
Fixes: https://tracker.ceph.com/issues/42791 Signed-off-by: Jan Fajerski <jfajerski@suse.com>
Yingxin Cheng [Wed, 6 Nov 2019 09:34:32 +0000 (17:34 +0800)]
crimson: build seastar dpdk from src/seastar/dpdk
src/spdk/dpdk and src/seastar/dpdk are both at their private branches
with project-specific modifications, so select proper dpdk source
directory according to flags WITH_SPDK and Seastar_DPDK.
Rishabh Dave [Mon, 4 Nov 2019 14:05:29 +0000 (19:35 +0530)]
doc: add systemd unit part for FUSE mounts in fstab doc
To make FUSE-mounted CephFS persist across reboots, user also needs to
start and enable the systemd units. Add that part to the document for
fstab, instead of mentioning it in "Mount CephFS using FUSE" doc. Also,
wrap few lines and rename mountpoint to /mnt/mycephfs in examples to
keep them same across docs.
Fixes: https://tracker.ceph.com/issues/42298 Signed-off-by: Rishabh Dave <ridave@redhat.com>
Rishabh Dave [Tue, 8 Oct 2019 06:59:56 +0000 (12:29 +0530)]
doc: update and improve "mount using kernel driver" doc
Move the examples of mount command for Ceph cluster with CephX enabled
to the top of page, since it is enabled by default, improve explanation
around Ceph with multiple FSs, get rid of hash symbols before every
command (without them it's clear that the text is command and with them
the reader cannot use the commands directly), link fstab page, add how
mount in general looks, add prerequisites required for kernel mounts and
expand explanation wherever possible.
Fixes: https://tracker.ceph.com/issues/42220 Signed-off-by: Rishabh Dave <ridave@redhat.com>
Rishabh Dave [Mon, 7 Oct 2019 07:27:29 +0000 (12:57 +0530)]
doc: update and improve "mount using FUSE" doc
Recommend keyring permission to be 600 instead of 644, show examples
for `-k`, `-r`, `-m` and `--client_mds_namespace` options, move
references to the bottom of the page, show how to unmount FUSE-mounted
CephFS, copy the tip about unmounting from "mount using kernel" page to
"mount using FUSE" page, correct commands for automating FUSE mounts,
add sub-headings to the document and add how ceph-fuse command looks in
general.
Fixes: https://tracker.ceph.com/issues/42205 Signed-off-by: Rishabh Dave <ridave@redhat.com>
Sage Weil [Tue, 12 Nov 2019 23:47:51 +0000 (17:47 -0600)]
common/ceph_context: observe container_image so we don't get warnings
This gets rid of messages like
2019-11-12T23:46:28.578+0000 7f9ab2b70700 -1 set_mon_vals failed to set container_image = cephci/daemon-base:wip-sage2-testing-2019-11-11-1737-4ea2bc7-centos-7-x86_64-devel: Configuration option 'container_image' may not be modified at runtime
Sage Weil [Tue, 12 Nov 2019 00:09:29 +0000 (18:09 -0600)]
Merge PR #31501 into master
* refs/pull/31501/head:
ceph-mon: bind to public_addrv if set (before public_addr or public_network)
common/options: add public_addrv
common/options: fix ADDRVEC parsing
ceph-daemon: support --mon-addrv for deploy subcommand