From: Sage Weil Date: Mon, 8 Feb 2021 18:53:24 +0000 (-0600) Subject: common/blkdev: collect non-SMART data too X-Git-Tag: v16.2.0~152^2~4 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=a5ee1b175b1017b2683f67b4cf61eca5c2f0630a;p=ceph.git common/blkdev: collect non-SMART data too 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 (cherry picked from commit 176bb54da90e404646c0e80e0c3ea804bb8a58d6) --- diff --git a/src/common/blkdev.cc b/src/common/blkdev.cc index 8c76a90b6bb..b32fbd4cfaf 100644 --- a/src/common/blkdev.cc +++ b/src/common/blkdev.cc @@ -700,8 +700,8 @@ static int block_device_run_smartctl(const string& devname, int timeout, timeout); smartctl.add_cmd_args( "smartctl", - "-a", - //"-x", + //"-a", // all SMART info + "-x", // all SMART and non-SMART info "--json=o", device.c_str(), NULL); diff --git a/sudoers.d/ceph-osd-smartctl b/sudoers.d/ceph-osd-smartctl index 882e8b68121..f53f6af9bc0 100644 --- a/sudoers.d/ceph-osd-smartctl +++ b/sudoers.d/ceph-osd-smartctl @@ -1,4 +1,4 @@ ## allow ceph-osd (which runs as user ceph) to collect device health metrics -ceph ALL=NOPASSWD: /usr/sbin/smartctl -a --json=o /dev/* +ceph ALL=NOPASSWD: /usr/sbin/smartctl -x --json=o /dev/* ceph ALL=NOPASSWD: /usr/sbin/nvme * smart-log-add --json /dev/*