Commit Graph

1255 Commits

Author SHA1 Message Date
Adam C. Emerson
5429f10c47 dpkg: Remove use of no-longer-existing WITH_BOOST_CONTEXT option
Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
2020-10-23 11:21:53 -04:00
Venky Shankar
7523aef6e8 mgr/stats: mds performance stats module
Signed-off-by: Venky Shankar <vshankar@redhat.com>
2020-10-12 07:34:51 -04:00
Johannes M. Scheuermann
868e708c9e debian: Add missing Python dependency for ceph-mgr
The file mgr/volumes/fs/operations/pin_util.py imports distutils.util for using
strtobool and thus the python package is required.

Signed-off-by: Johannes M. Scheuermann <joh.scheuer@gmail.com>
2020-09-24 12:10:53 +02:00
Yaarit Hatuka
d5528a7e8e ceph.spec.in, debian/control: add smartmontools and nvme-cli dependencies
These packages are needed in order to scrape device health metrics from
devices used by OSD and MON daemons.

smartmontools' smartctl is what we use in order to scrape devices' SMART
attributes and general health metrics.
In addition, we use nvme-cli tool on NVMe devices, which fetches
vendor specific NVMe related health metrics.

Ceph rely on these tools for proper functioning of the underlying layers
of devicehealth mgr module, and other mgr modules which use devicehealth
functionality (such as diskprediction_local, telemetry, dashboard).

Essentially, most of devicehealth commands rely on proper functioning of
smartctl, otherwise they lack the device health metrics.

For example, in case smartctl is missing, the commands:
    ceph device scrape-daemon-health-metrics <who>
    ceph device scrape-health-metrics [<devid>]
will not be able to scrape health metrics, and the command:
    ceph device predict-life-expectancy <devid>
will not provide any meaningful output (since there are no metrics).

In short, when we scrape a device by its daemon (be it an OSD or a MON):
  ceph device scrape-daemon-health-metrics <who>
The devicehealth module command eventually invokes a
block_device_get_metrics() call in either osd/OSD.cc or mon/Monitor.cc,
which wraps calls to both
    block_device_run_smartctl()       (spawns smartctl)
    block_device_run_vendor_nvme()    (spawns nvme)
in common/blkdev.cc.

Minimum version requirements:
'smartmontools' is the package name, which contains two utility
programs: 'smartd' and 'smartctl'. Ceph uses the latter.

Version 6.7 of smartctl first introduced the --json option (beta), which
allows to output the metrics in a JSON format. Since then a few
adjustments were made and the feature officially launched in smartctl
version 7.0.
Since we rely on the JSON format to process the metrics, we must have
smartmontools' smartctl version >= 7.

That said, we choose not to specify smartmontools version here on
purpose, since there might be a scenario where:
We specified smartmontools version to be >= 7.
smartmontools 7 is not available yet in rhel 8 / centos 8.
A user installs via rpm ceph-osd, for example.
smartmontools will not be installed (since version >= 7 is not available
in this repo yet).
Then the user upgrades to 8.3 (which should have smartmontools >= 7),
but smartmontools will not get upgraded (since it's not installed).
In the scenario where we do not specify a version, smartmontools 6.6
will be installed, but it will be upgraded to >= 7 when a user upgrades
(and if it's a fresh installation - version >= 7 would be installed
anyway).

nvme-cli does not have a minimum version.

We use 'Recommends' for both rpm and deb packages since we do not want
the installation to fail in case of conflicts. 'Recommends' weakens the
dependency to be installed in case possible, but ignores it in cases of
conflicts with other dependencies.

It's worth mentioning that smartmontools and nvme-cli dependencies exist
in ceph-container builds.
We add them here for the cases of bare metal installations.

In the future we will add a separate package (with smartmontools and
nvme-cli dependencies) that can be installed on any node (running
rbd-mirror, rgw, mds, mgr, etc.), in order to be able to collect the
health metrics of its devices and offer their life expectancy
prediction.

Fixes: https://tracker.ceph.com/issues/47479
Signed-off-by: Yaarit Hatuka <yaarit@redhat.com>
2020-09-18 03:25:56 +00:00
Kefu Chai
bc4255ba2c
Merge pull request #36972 from smithfarm/wip-47112
rpm,deb: drop /etc/sudoers.d/cephadm

Reviewed-by: Sebastian Wagner <sebastian.wagner@suse.com>
Reviewed-by: David Disseldorp <ddiss@suse.de>
Reviewed-by: Kefu Chai <kchai@redhat.com>
2020-09-07 14:44:44 +08:00
Nathan Cutler
c1783d3d8f rpm,deb: drop /etc/sudoers.d/cephadm
Current behavior (without this patch) is:

1. cephadm package installs cephadm at /usr/sbin/cephadm
2. cephadm package installs /etc/sudoers.d/cephadm
3. !!! BUT this file refers to a non-existent executable (/usr/bin/cephadm) !!!
4. the PR that introduced this sudoers file (and this discrepancy) was merged in 2019
5. nobody noticed the discrepancy until now

My conclusion: the file /etc/sudoers.d/cephadm is not needed for cephadm to
work.

Fixes: https://tracker.ceph.com/issues/47112
Signed-off-by: Nathan Cutler <ncutler@suse.com>
2020-09-03 16:31:30 +02:00
Sebastian Wagner
7f21e1ee02
Merge pull request #36949 from sebastian-philipp/mgr-re-add_osd_support
Revert "mgr/osd_support: remove module and all traces"

Reviewed-by: Yuri Weinstein <yweinste@redhat.com>
2020-09-03 14:41:25 +02:00
Sebastian Wagner
43f1bdb6ef Revert "mgr/osd_support: remove module and all traces"
This reverts commit a55c1dd0fa.

Kept to keep upgrades from older point releases working.
This module can be removed as soon as we no longer
support upgrades from old octopus point releases.

Revert "build/debian: remove osd_support"

This reverts commit 8ff2824beb.

Fixes: https://tracker.ceph.com/issues/47109
Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
2020-09-02 16:07:49 +02:00
Venky Shankar
ad4e611924 ceph.spec, debian: changes for building cephfs-mirror daemon
Signed-off-by: Venky Shankar <vshankar@redhat.com>
2020-09-02 06:50:08 -04:00
Venky Shankar
29a6f72131 spec: include snap_schedule in ceph spec file
Signed-off-by: Venky Shankar <vshankar@redhat.com>
2020-08-27 15:55:45 +02:00
Kefu Chai
2644766d0f pybind/mgr/diskprediction_cloud: remove mgr-diskprediction-cloud
the service offered by https://www.diskprophet.com is not accessible
anymore. before we have a replacement of it, let's drop
mgr-diskprediction-cloud. and remove its packaging.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-08-19 11:08:38 +08:00
Joshua Schmid
8ff2824beb build/debian: remove osd_support
Signed-off-by: Joshua Schmid <jschmid@suse.de>
2020-07-31 10:23:59 +02:00
Kefu Chai
3902a5eede rpm,deb: drop python3-six dependency
it's not used anymore.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-07-22 11:55:50 +08:00
Jason Dillaman
74a3b4c312 rbd-nbd: quisce hook should be installed to /usr/libexec/...
The rbd-nbd daemon expects the rbd-nbd_quiesce script to be installed
in the libexec directory on all distros.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2020-07-14 12:09:39 -04:00
wangyunqing
1340e37e8c debian: update cmake version to meet cmake_minimum_required
Signed-off-by: wangyunqing <wangyunqing@inspur.com>
2020-06-19 17:34:43 +08:00
Neal Gompa
79d4bf5b2f debian: Use /usr/libexec for libexecdir
Debian has adopted FHS 3.0 with Debian Policy Standard version 4.4.0,
and now defaults to /usr/libexec for libexecdir as well. This is
present in Ubuntu 20.04 LTS, for example.

Signed-off-by: Neal Gompa <ngompa13@gmail.com>
2020-06-08 13:15:04 -04:00
Sebastian Wagner
e0bbb05f56
Merge pull request #35271 from bk201/refactor-template-cephadm
mgr/cephadm: use jinja2 to render templates

Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
Reviewed-by: Sebastian Wagner <sebastian.wagner@suse.com>
2020-06-04 19:50:58 +02:00
Kiefer Chang
64bb27f2f6 mgr/cephadm: add template engine Jinja2
Signed-off-by: Kiefer Chang <kiefer.chang@suse.com>
2020-06-04 16:23:39 +08:00
Venky Shankar
c669de12e0 client: new message type for providing client side metrics
Signed-off-by: Venky Shankar <vshankar@redhat.com>
2020-06-01 04:04:08 -04:00
Jason Dillaman
5938d55e8c rpm,deb: package librbd parent cache plugin with librbd
The librbd parent cache is an initial testbed for librbd plugin
support. The shared library will be packaged with librbd for the
time being.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2020-05-21 14:50:33 -04:00
Patrick Donnelly
356c64a3ff
Merge PR #34596 into master
* refs/pull/34596/head:
	test: add a new program for testing ino_release_cb
	client: add a new inode release request callback
	client: expose ceph_ll_register_callbacks via libcephfs
	client: move callback typedefs and arg struct into ceph_ll_client.h
	client: rename ceph_statx.h to ceph_ll_client.h
	client: make client_dentry_callback_t more friendly for C
	client: only override umask_cb with non-NULL values

Reviewed-by: Xiubo Li <xiubli@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Reviewed-by: Zheng Yan <zyan@redhat.com>
Reviewed-by: Greg Farnum <gfarnum@redhat.com>
2020-05-18 15:07:43 -07:00
Jason Dillaman
7f1df0d18a
Merge pull request #34789 from trociny/wip-rbd-nbd-quiesce
rbd-nbd: add quiesce/unquiesce hooks

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
2020-05-15 11:12:50 -04:00
Mykola Golub
8b6e38a6bf rpm,deb: add quiesce hook script to rbd-nbd package
Signed-off-by: Mykola Golub <mgolub@suse.com>
2020-05-09 16:36:49 +01:00
Kefu Chai
90699f6e48
Merge pull request #34820 from sebastian-philipp/akamac-cephadm-fix-typo-in-postinst
debian: fix typo in cephadm user gecos

Reviewed-by: Michael Fritch <mfritch@suse.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
2020-05-07 19:31:35 +08:00
Alexey Miasoedov
7577b6385d debian: fix typo in cephadm user gecos
Signed-off-by: Alexey Miasoedov <alexey.miasoedov@gmail.com>
2020-05-07 12:07:06 +02:00
J. Eric Ivancich
9d5e9c3031 doc/rgw: add docs for rgw-orphan-list and ceph-diff-sorted
Add man pages and documentation for both tools.

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
2020-05-04 13:33:56 -04:00
J. Eric Ivancich
e396064d9a rgw: add rgw-orphan-list tool & radosgw-admin bucket radoslist ...
Adds a `radosgw-admin` subcommand and walks the associated bucket
indices and manifests to generate the list of rados objects that
represent the rgw objects in the bucket(s).

Also adds a tool named `rgw-orphan-list`, which uses the radoslist
subcommand, that produces a list in a local file of what appear to be
rgw orphans.

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
2020-05-04 13:20:08 -04:00
Jeff Layton
4436f27a04 client: rename ceph_statx.h to ceph_ll_client.h
...so we can use it to include other definitions and types that need to
be shared with in-tree code that doesn't want to include libcephfs.h.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
2020-04-30 16:20:01 -04:00
Kefu Chai
f0a4fc14f0
Merge pull request #34090 from trociny/wip-ceph-erasure-code-tool
tools/erasure-code: new tool to encode/decode files

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
2020-04-27 11:37:00 +08:00
Sebastian Wagner
9f13c126f6 doc/man: add cephadm
Fixes: https://tracker.ceph.com/issues/44971

Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
2020-04-23 13:01:02 +02:00
Mykola Golub
56aaaf8a97 test/erasure-code: remove ceph_erasure_code
Its functionality is moved to ceph-erasure-code-tool.

Signed-off-by: Mykola Golub <mgolub@suse.com>
2020-04-13 18:25:09 +01:00
Mykola Golub
53c75eebbd rpm,deb: add ceph-erasure-code-tool to ceph-osd package
Signed-off-by: Mykola Golub <mgolub@suse.com>
2020-04-13 18:25:09 +01:00
Casey Bodley
c89b59428e rgw: remove unused librgw_admin_user
unused and not worth the effort to maintain

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2020-03-25 14:12:55 -04:00
Sage Weil
01015f8ca3 debian: add ceph-grafana-dashboards package
Signed-off-by: Sage Weil <sage@redhat.com>
2020-03-23 20:13:19 -05:00
Jenkins Build Slave User
dc6a0b5c3c 15.2.0 2020-03-23 17:47:45 +00:00
Jenkins Build Slave User
4536217610 15.1.1 2020-03-13 17:05:38 +00:00
Mykola Golub
62620fc7d3 rpm,deb: fix python dateutil module dependency
(needed for mgr/rbd_support)

Signed-off-by: Mykola Golub <mgolub@suse.com>
2020-02-28 16:29:26 +00:00
Patrick Seidensal
c0c7f7dacc rpm,deb: poke Python OpenSSL dependencies
to ceph-mgr-modules-core package.

Fixes: https://tracker.ceph.com/issues/44306

Signed-off-by: Patrick Seidensal <pseidensal@suse.com>
2020-02-26 15:48:57 +01:00
Kefu Chai
d61c96f4b3 debian: modules-core replaces and breaks older ceph-mgr
in 589626464d, the core modules are moved
into ceph-mgr-modules-core. but the upgrade path from older ceph-mgr was
broken by this change.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-02-24 12:48:34 +08:00
Sage Weil
ac8215c123 debian: fix ceph-mgr-modules-core files
Remove the files from ceph-mgr that are added to ceph-mgr-modules-core.

2020-02-21T17:59:56.031 INFO:teuthology.orchestra.run.smithi060.stdout:dpkg: error processing archive /tmp/apt-dpkg-install-YpwLHV/044-ceph-mgr_15.1.0-1037-ga6b324b-1bionic_amd64.deb (--unpack):
2020-02-21T17:59:56.031 INFO:teuthology.orchestra.run.smithi060.stdout: trying to overwrite '/usr/share/ceph/mgr/alerts/__init__.py', which is also in package ceph-mgr-modules-core 15.1.0-1037-ga6b324b-1bionic

Broken by 589626464d

Signed-off-by: Sage Weil <sage@redhat.com>
2020-02-21 12:16:34 -06:00
Kefu Chai
659b09a04d
Merge pull request #33435 from tchaikov/wip-viva-la-module
deb,rpm,doc: s/plugin/module/

Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
Reviewed-by: Sebastian Wagner <swagner@suse.com>
Reviewed-by: Neha Ojha <nojha@redhat.com>
Reviewed-by: Laura Paduano <lpaduano@suse.com>
2020-02-21 19:38:33 +08:00
Kefu Chai
44df72357c rpm,deb: s/plugin/module/
Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-02-20 22:15:54 +08:00
Kefu Chai
589626464d rpm,deb: package always-enabled plugins in a separated package
ceph-mgr depends on it in the sense that these plugins are
a hard dependency of ceph-mgr. like cmake depends on cmake-data,
even if the later cannot function on its own without the former.

the reason why we need a separated package is that mgr modules
are written in python, and should be arch independent. this change
helps the downstream to understand this and help to minimize the
divergence between upstream and downstream, because distros like
debian and its derivatives encourage splitting architecture independent
data into its own package.
see
https://www.debian.org/doc/manuals/developers-reference/best-pkging-practices.html#architecture-independent-data

also, the python related runtime dependencies are also moved into
ceph-mgr-modules-core.

if a python dependency is shared by another ceph-mgr-* package and
ceph-mgr-modules-core. it's only added to ceph-mgr-modules-core for
simplicity and consistency. as the name of dependency might vary
on different distros, so it's tedious and error-prone to repeat
these conditons and checks.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-02-20 22:00:37 +08:00
Joshua Schmid
acc05bf06d
build/ops: make/install osd_support package
Signed-off-by: Joshua Schmid <jschmid@suse.de>
2020-02-19 10:33:26 +01:00
Sebastian Wagner
36a5890fb7 debian,spec: Rename orchestrator_cli to orchestrator
Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
2020-02-17 10:24:01 +01:00
Sebastian Wagner
80a799a30f debian: add python3-jsonpatch as dependency
Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
2020-02-14 09:43:32 +01:00
Sage Weil
f0c92ab584 debian/control: make cephadm recommend (but not require) docker
Signed-off-by: Sage Weil <sage@redhat.com>
2020-02-11 18:15:36 -06:00
Sage Weil
2e3ed251a6 mgr/deepsea: remove
Signed-off-by: Sage Weil <sage@redhat.com>
2020-02-09 09:45:36 -06:00
Sage Weil
01c36d9db7 mgr/ansible: remove
Signed-off-by: Sage Weil <sage@redhat.com>
2020-02-07 09:45:12 -06:00
Jenkins Build Slave User
49b0421165 15.1.0 2020-01-29 22:10:24 +00:00