summaryrefslogtreecommitdiffstats
path: root/cmd/zed
diff options
context:
space:
mode:
authorTony Hutter <[email protected]>2016-11-29 13:45:38 -0800
committerBrian Behlendorf <[email protected]>2016-11-29 14:45:38 -0700
commit8720e9e7482fa2dce4f34c56d3c7451833413d7d (patch)
tree2475bb498ab7bc8e5fb016dbca1a337d10f257c5 /cmd/zed
parent2f71caf2d926249920d1b9162550c56715cc6461 (diff)
Add -c to zpool iostat & status to run command
This patch adds a command (-c) option to zpool status and zpool iostat. The -c option allows you to run an arbitrary command on each vdev and display the first line of output in zpool status/iostat. The environment vars VDEV_PATH and VDEV_UPATH are set to the vdev's path and "underlying path" before running the command. For device mapper, multipath, or partitioned vdevs, VDEV_UPATH is the actual underlying /dev/sd* disk. This can be useful if the command you're running requires a /dev/sd* device. The patch also uses /sys/block/<dev>/slaves/ to lookup the underlying device instead of using libdevmapper. This not only removes the libdevmapper requirement at build time, but also allows you to resolve device mapper devices without being root. This means that UDEV_UPATH get set correctly when running zpool status/iostat as an unprivileged user. Example: $ zpool status -c 'echo I am $VDEV_PATH, $VDEV_UPATH' NAME STATE READ WRITE CKSUM mypool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 mpatha ONLINE 0 0 0 I am /dev/mapper/mpatha, /dev/sdc sdb ONLINE 0 0 0 I am /dev/sdb1, /dev/sdb Reviewed-by: Giuseppe Di Natale <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Tony Hutter <[email protected]> Closes #5368
Diffstat (limited to 'cmd/zed')
-rw-r--r--cmd/zed/agents/zfs_mod.c2
-rwxr-xr-xcmd/zed/zed.d/statechange-led.sh2
2 files changed, 0 insertions, 4 deletions
diff --git a/cmd/zed/agents/zfs_mod.c b/cmd/zed/agents/zfs_mod.c
index 053312e9e..ca18ccf1a 100644
--- a/cmd/zed/agents/zfs_mod.c
+++ b/cmd/zed/agents/zfs_mod.c
@@ -215,9 +215,7 @@ zfs_process_add(zpool_handle_t *zhp, nvlist_t *vdev, boolean_t labeled)
if (offline)
return; /* don't intervene if it was taken offline */
-#ifdef HAVE_LIBDEVMAPPER
is_dm = zfs_dev_is_dm(path);
-#endif
zed_log_msg(LOG_INFO, "zfs_process_add: pool '%s' vdev '%s', phys '%s'"
" wholedisk %d, dm %d (%llu)", zpool_get_name(zhp), path,
physpath ? physpath : "NULL", wholedisk, is_dm,
diff --git a/cmd/zed/zed.d/statechange-led.sh b/cmd/zed/zed.d/statechange-led.sh
index 257e4a8a0..d9f7c89f7 100755
--- a/cmd/zed/zed.d/statechange-led.sh
+++ b/cmd/zed/zed.d/statechange-led.sh
@@ -12,8 +12,6 @@
# Linux SCSI enclosure services (ses) driver. The script will do nothing
# if you have no enclosure, or if your enclosure isn't supported.
#
-# This script also requires ZFS to be built with libdevmapper support.
-#
# Exit codes:
# 0: enclosure led successfully set
# 1: enclosure leds not not available