Go to file
Tony Hutter 8720e9e748 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 <dinatale2@llnl.gov>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Tony Hutter <hutter2@llnl.gov>
Closes #5368
2016-11-29 14:45:38 -07:00
cmd Add -c to zpool iostat & status to run command 2016-11-29 14:45:38 -07:00
config Add -c to zpool iostat & status to run command 2016-11-29 14:45:38 -07:00
contrib Update .gitignore 2016-10-19 14:29:33 -07:00
etc Change /etc/mtab to /proc/self/mounts 2016-09-20 10:07:58 -07:00
include Add -c to zpool iostat & status to run command 2016-11-29 14:45:38 -07:00
lib Add -c to zpool iostat & status to run command 2016-11-29 14:45:38 -07:00
man Add -c to zpool iostat & status to run command 2016-11-29 14:45:38 -07:00
module Kernel 4.9 compat: file_operations->aio_fsync removal 2016-11-15 09:20:46 -08:00
rpm Add -c to zpool iostat & status to run command 2016-11-29 14:45:38 -07:00
scripts Add paxcheck make lint target 2016-10-28 16:10:00 -07:00
tests Add -c to zpool iostat & status to run command 2016-11-29 14:45:38 -07:00
udev Allow partition aliases in vdev_id.conf (#5266) 2016-10-14 16:11:16 -07:00
.gitignore Update .gitignore 2016-10-19 14:29:33 -07:00
.gitmodules Add zimport.sh compatibility test script 2014-02-21 12:10:31 -08:00
AUTHORS Add a missing > to AUTHORS 2014-09-02 14:18:53 -07:00
autogen.sh build: do not call boilerplate ourself 2013-04-02 10:55:20 -07:00
configure.ac Add -c to zpool iostat & status to run command 2016-11-29 14:45:38 -07:00
copy-builtin Illumos Crypto Port module added to enable native encryption in zfs 2016-07-20 10:43:30 -07:00
COPYRIGHT Update ZED copyright boilerplate 2015-05-11 15:07:00 -07:00
DISCLAIMER Fix minor typos and update marketing copy. 2013-03-21 12:51:06 -07:00
Makefile.am Add paxcheck make lint target 2016-10-28 16:10:00 -07:00
META Tag 0.7.0-rc2 2016-10-26 10:36:33 -07:00
OPENSOLARIS.LICENSE Add CDDL license file 2008-12-01 14:49:34 -08:00
README.markdown Fix minor typos and update marketing copy. 2013-03-21 12:51:06 -07:00
TEST Skip test suites on 32-bit TEST builders 2016-11-08 13:57:17 -08:00
zfs-script-config.sh.in Introduce tests for python scripts 2016-10-06 13:11:57 -07:00
zfs.release.in Move zfs.release generation to configure step 2012-07-12 12:22:51 -07:00

Native ZFS for Linux!

ZFS is an advanced file system and volume manager which was originally developed for Solaris and is now maintained by the Illumos community.

ZFS on Linux, which is also known as ZoL, is currently feature complete. It includes fully functional and stable SPA, DMU, ZVOL, and ZPL layers.

Full documentation for installing ZoL on your favorite Linux distribution can be found at: http://zfsonlinux.org