zfs/include/sys
Brian Behlendorf 904ea2763e Add automatic hot spare functionality
When a vdev starts getting I/O or checksum errors it is now
possible to automatically rebuild to a hot spare device.

To cleanly support this functionality in a shell script some
additional information was added to all zevent ereports which
include a vdev.  This covers both io and checksum zevents but
may be used but other scripts.

In the Illumos FMA solution the same information is required
but it is retrieved through the libzfs library interface.
Specifically the following members were added:

  vdev_spare_paths  - List of vdev paths for all hot spares.
  vdev_spare_guids  - List of vdev guids for all hot spares.
  vdev_read_errors  - Read errors for the problematic vdev
  vdev_write_errors - Write errors for the problematic vdev
  vdev_cksum_errors - Checksum errors for the problematic vdev.

By default the required hot spare scripts are installed but this
functionality is disabled.  To enable hot sparing uncomment the
ZED_SPARE_ON_IO_ERRORS and ZED_SPARE_ON_CHECKSUM_ERRORS in the
/etc/zfs/zed.d/zed.rc configuration file.

These scripts do no add support for the autoexpand property. At
a minimum this requires adding a new udev rule to detect when
a new device is added to the system.  It also requires that the
autoexpand policy be ported from Illumos, see:

  https://github.com/illumos/illumos-gate/blob/master/usr/src/cmd/syseventd/modules/zfs_mod/zfs_mod.c

Support for detecting the correct name of a vdev when it's not
a whole disk was added by Turbo Fredriksson.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Chris Dunlap <cdunlap@llnl.gov>
Signed-off-by: Turbo Fredriksson <turbo@bayour.com>
Issue #2
2014-04-02 13:10:08 -07:00
..
fm Add automatic hot spare functionality 2014-04-02 13:10:08 -07:00
fs Add zpool_events_seek() functionality 2014-03-31 16:10:57 -07:00
Makefile.am Illumos #4045 write throttle & i/o scheduler performance work 2013-12-06 09:32:43 -08:00
arc.h Split "data_size" into "meta" and "data" 2014-02-21 16:10:49 -08:00
avl.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
avl_impl.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
bplist.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
bpobj.h Illumos #3104: eliminate empty bpobjs 2013-01-08 10:35:43 -08:00
bptree.h Illumos #2619 and #2747 2013-01-08 10:35:35 -08:00
dbuf.h Illumos #4045 write throttle & i/o scheduler performance work 2013-12-06 09:32:43 -08:00
ddt.h Add ddt, ddt_entry, and l2arc_hdr caches 2014-01-07 10:33:11 -08:00
dmu.h Illumos #4045 write throttle & i/o scheduler performance work 2013-12-06 09:32:43 -08:00
dmu_impl.h Illumos #3834 2013-11-05 12:15:00 -08:00
dmu_objset.h Illumos #3875 2013-11-04 11:27:41 -08:00
dmu_send.h Illumos #3834 2013-11-05 12:15:00 -08:00
dmu_traverse.h Illumos #3498 panic in arc_read() 2013-07-02 13:34:31 -07:00
dmu_tx.h dmu_tx kstat cleanup 2014-03-04 12:22:24 -08:00
dmu_zfetch.h Fix zstream_t incorrect type 2013-12-10 10:09:27 -08:00
dnode.h Illumos #4047 2013-11-05 12:23:35 -08:00
dsl_dataset.h Illumos #3996 2013-11-05 12:23:11 -08:00
dsl_deadlist.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
dsl_deleg.h Illumos #2882, #2883, #2900 2013-09-04 15:49:00 -07:00
dsl_destroy.h Illumos #3888 2013-11-04 11:18:14 -08:00
dsl_dir.h Illumos #4045 write throttle & i/o scheduler performance work 2013-12-06 09:32:43 -08:00
dsl_pool.h Illumos #4045 write throttle & i/o scheduler performance work 2013-12-06 09:32:43 -08:00
dsl_prop.h Illumos #3464 2013-09-04 16:01:24 -07:00
dsl_scan.h Add erratum for issue #2094 2014-02-21 12:10:40 -08:00
dsl_synctask.h Illumos #3464 2013-09-04 16:01:24 -07:00
dsl_userhold.h Illumos #3740 2013-11-04 11:17:48 -08:00
efi_partition.h Move partition scanning from userspace to module. 2012-07-17 09:17:31 -07:00
metaslab.h Illumos #3464 2013-09-04 16:01:24 -07:00
metaslab_impl.h Illumos #3954, #4080, #4081 2013-11-05 12:25:01 -08:00
nvpair.h Illumos #3464 2013-09-04 16:01:24 -07:00
nvpair_impl.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
refcount.h Illumos #3464 2013-09-04 16:01:24 -07:00
rrwlock.h Illumos #3464 2013-09-04 16:01:24 -07:00
sa.h Add sa_spill_rele() interface 2012-03-07 16:28:00 -08:00
sa_impl.h Illumos #4045 write throttle & i/o scheduler performance work 2013-12-06 09:32:43 -08:00
spa.h replace nreserved with ndirty in txgs kstat 2014-03-04 12:22:24 -08:00
spa_boot.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
spa_impl.h Add generic errata infrastructure 2014-02-21 12:10:40 -08:00
space_map.h Illumos #3742 2013-11-04 10:55:25 -08:00
txg.h Illumos #4045 write throttle & i/o scheduler performance work 2013-12-06 09:32:43 -08:00
txg_impl.h Illumos #4045 write throttle & i/o scheduler performance work 2013-12-06 09:32:43 -08:00
u8_textprep.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
u8_textprep_data.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
uberblock.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
uberblock_impl.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
uio_impl.h Add basic uio support 2011-02-10 09:21:43 -08:00
unique.h Illumos #3742 2013-11-04 10:55:25 -08:00
uuid.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
vdev.h 3246 ZFS I/O deadman thread 2013-05-01 17:05:52 -07:00
vdev_disk.h cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
vdev_file.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
vdev_impl.h Illumos #4045 write throttle & i/o scheduler performance work 2013-12-06 09:32:43 -08:00
xvattr.h Add xvattr support 2011-03-02 11:43:50 -08:00
zap.h Illumos #3742 2013-11-04 10:55:25 -08:00
zap_impl.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
zap_leaf.h Illumos #3742 2013-11-04 10:55:25 -08:00
zfeature.h Illumos #3464 2013-09-04 16:01:24 -07:00
zfs_acl.h Illumos #3742 2013-11-04 10:55:25 -08:00
zfs_context.h cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
zfs_ctldir.h Linux 3.7 compat, schedule_delayed_work() 2012-12-12 10:47:05 -08:00
zfs_debug.h cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
zfs_delay.h cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
zfs_dir.h Prototype/structure update for Linux 2011-02-10 09:27:21 -08:00
zfs_fuid.h Prototype/structure update for Linux 2011-02-10 09:27:21 -08:00
zfs_ioctl.h Replace zpool_events_next() "block" parm w/ "flags" 2014-03-31 16:11:21 -07:00
zfs_onexit.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
zfs_rlock.h Illumos #3742 2013-11-04 10:55:25 -08:00
zfs_sa.h cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
zfs_stat.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
zfs_vfsops.h Implement relatime. 2014-01-29 15:50:44 -08:00
zfs_vnops.h Linux 3.11 compat: fops->iterate() 2013-08-15 16:19:07 -07:00
zfs_znode.h Use local variable to read zp->z_mode 2014-01-09 15:50:11 -08:00
zil.h cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
zil_impl.h cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
zio.h Revert changes to zbookmark_t 2014-02-21 12:10:39 -08:00
zio_checksum.h Constify structures containing function pointers 2013-03-04 08:49:32 -08:00
zio_compress.h Illumos #3742 2013-11-04 10:55:25 -08:00
zio_impl.h Illumos #3836 2013-11-05 12:14:56 -08:00
zpl.h cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
zrlock.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
zvol.h Remove ZFC_IOC_*_MINOR ioctl()s 2013-12-16 09:15:57 -08:00