We wish to be able to scrape SMART and NVMe metrics from OSD and MON
nodes. For this we require / recommend smartmontools and nvme-cli
dependencies for both the ceph-osd and ceph-mon packages. However, the
sudoers file (which is required for invoking `smartctl` by user 'ceph')
was installed only in the ceph-osd package. Since different packages
cannot own the same file, and because we want to be able to scrape from
every daemon, we move the dependencies and the sudoers installation to
ceph-base. For generalization, we rename:
sudoers.d/ceph-osd-smartctl -> sudoers.d/ceph-smartctl
Fixes: https://tracker.ceph.com/issues/50657
Signed-off-by: Yaarit Hatuka <yaarit@redhat.com>
Call smartctl with -x instead of -a:
-a, --all
Prints all SMART information about the disk, or TapeAlert infor‐
mation about the tape drive or changer. For ATA devices this is
equivalent to
'-H -i -c -A -l error -l selftest -l selective'
and for SCSI, this is equivalent to
'-H -i -A -l error -l selftest'.
For NVMe, this is equivalent to
'-H -i -c -A -l error'.
Note that for ATA disks this does not enable the non-SMART
options and the SMART options which require support for 48-bit
ATA commands.
vs
-x, --xall
Prints all SMART and non-SMART information about the device. For
ATA devices this is equivalent to
'-H -i -g all -g wcreorder -c -A -f brief -l xerror,error -l
xselftest,selftest -l selective -l directory -l scttemp -l scterc
-l devstat -l defects -l sataphy'.
and for SCSI, this is equivalent to
'-H -i -g all -A -l error -l selftest -l background -l sasphy'.
For NVMe, this is equivalent to
'-H -i -c -A -l error'.
Signed-off-by: Sage Weil <sage@newdream.net>
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>
Add nvme addition data into the deveh health data. That use nvme tool
and command syntax "nvme <vendor> smart-log-add <dev> -json". The nvme
json output append in the dev smart "nvme_smart_health_information_add_log".
- made run_smartctl static/private
- changed get_metrics to take a const string, not c str
Signed-off-by: Rick Chen <rick.chen@prophetstor.com>
Signed-off-by: Sage Weil <sage@redhat.com>