ceph/debian
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
..
source
.gitignore
ceph-base.dirs
ceph-base.docs
ceph-base.install debian: Use /usr/libexec for libexecdir 2020-06-08 13:15:04 -04:00
ceph-base.lintian-overrides
ceph-base.maintscript
ceph-base.postinst
ceph-base.prerm
ceph-common.dirs
ceph-common.install
ceph-common.postinst
ceph-common.postrm
ceph-fuse.install
ceph-grafana-dashboards.install debian: add ceph-grafana-dashboards package 2020-03-23 20:13:19 -05:00
ceph-immutable-object-cache.install
ceph-mds.dirs
ceph-mds.install
ceph-mds.postinst
ceph-mds.prerm
ceph-mgr-cephadm.install mgr/ssh -> mgr/cephadm 2019-12-11 19:14:24 -06:00
ceph-mgr-cephadm.postinst mgr/ssh -> mgr/cephadm 2019-12-11 19:14:24 -06:00
ceph-mgr-cephadm.prerm mgr/ssh -> mgr/cephadm 2019-12-11 19:14:24 -06:00
ceph-mgr-dashboard.install
ceph-mgr-dashboard.postinst
ceph-mgr-dashboard.prerm
ceph-mgr-diskprediction-cloud.prerm
ceph-mgr-diskprediction-local.install
ceph-mgr-diskprediction-local.postinst
ceph-mgr-diskprediction-local.prerm
ceph-mgr-modules-core.install Revert "mgr/osd_support: remove module and all traces" 2020-09-02 16:07:49 +02:00
ceph-mgr-rook.install
ceph-mgr-rook.postinst
ceph-mgr-rook.prerm
ceph-mgr.dirs
ceph-mgr.install debian: fix ceph-mgr-modules-core files 2020-02-21 12:16:34 -06:00
ceph-mgr.postinst
ceph-mgr.prerm
ceph-mon.dirs
ceph-mon.install
ceph-mon.postinst
ceph-mon.prerm
ceph-osd.dirs
ceph-osd.install debian: Use /usr/libexec for libexecdir 2020-06-08 13:15:04 -04:00
ceph-osd.postinst
ceph-osd.prerm
ceph-prometheus-alerts.install debian: add ceph-grafana-dashboards package 2020-03-23 20:13:19 -05:00
ceph-resource-agents.install
ceph-test.install test/erasure-code: remove ceph_erasure_code 2020-04-13 18:25:09 +01:00
cephadm.install rpm,deb: drop /etc/sudoers.d/cephadm 2020-09-03 16:31:30 +02:00
cephadm.postinst debian: fix typo in cephadm user gecos 2020-05-07 12:07:06 +02:00
cephadm.postrm
cephfs-mirror.install ceph.spec, debian: changes for building cephfs-mirror daemon 2020-09-02 06:50:08 -04:00
cephfs-shell.install
changelog 15.2.0 2020-03-23 17:47:45 +00:00
compat
control ceph.spec.in, debian/control: add smartmontools and nvme-cli dependencies 2020-09-18 03:25:56 +00:00
copyright
libcephfs-dev.install client: new message type for providing client side metrics 2020-06-01 04:04:08 -04:00
libcephfs-java.jlibs
libcephfs-jni.install
libcephfs2.install
librados-dev.install
librados2.install
libradospp-dev.install
libradosstriper-dev.install
libradosstriper1.install
librbd-dev.install
librbd1.install rpm,deb: package librbd parent cache plugin with librbd 2020-05-21 14:50:33 -04:00
librgw-dev.install rgw: remove unused librgw_admin_user 2020-03-25 14:12:55 -04:00
librgw2.install rgw: remove unused librgw_admin_user 2020-03-25 14:12:55 -04:00
py3dist-overrides
python3-ceph-argparse.install
python3-ceph-common.install
python3-cephfs.install
python3-rados.install
python3-rbd.install
python3-rgw.install
rados-objclass-dev.install
radosgw.dirs
radosgw.install doc/rgw: add docs for `rgw-orphan-list` and `ceph-diff-sorted` 2020-05-04 13:33:56 -04:00
radosgw.postinst
radosgw.prerm
rbd-fuse.install
rbd-mirror.install
rbd-nbd.install rbd-nbd: quisce hook should be installed to /usr/libexec/... 2020-07-14 12:09:39 -04:00
rules rpm,deb: drop /etc/sudoers.d/cephadm 2020-09-03 16:31:30 +02:00
watch