freebsd-dev/module/zfs
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
..
arc.c Illumos #4089 NULL pointer dereference in arc_read() 2014-03-24 11:06:57 -07:00
bplist.c Illumos #3464 2013-09-04 16:01:24 -07:00
bpobj.c Illumos #3603, #3604: bobj improvements 2013-10-31 14:57:51 -07:00
bptree.c 26126 panic system rather than corrupting pool if we hit bug 26100 2013-11-05 13:18:26 -08:00
dbuf_stats.c cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
dbuf.c cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
ddt_zap.c cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
ddt.c Add ddt, ddt_entry, and l2arc_hdr caches 2014-01-07 10:33:11 -08:00
dmu_diff.c Illumos #3598 2013-10-31 14:58:04 -07:00
dmu_object.c Illumos #3598 2013-10-31 14:58:04 -07:00
dmu_objset.c cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
dmu_send.c Add zfs_send_corrupt_data module option 2013-12-18 16:46:35 -08:00
dmu_traverse.c Illumos 4504 traverse_visitbp: visit group before user 2014-01-29 15:50:49 -08:00
dmu_tx.c Improve reporting of tx assignment wait times 2014-03-04 12:22:24 -08:00
dmu_zfetch.c Use enum type(zfetch_dirn_t) instead 2014-01-23 12:56:33 -08:00
dmu.c cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
dnode_sync.c Illumos #3742 2013-11-04 10:55:25 -08:00
dnode.c Illumos #4045 write throttle & i/o scheduler performance work 2013-12-06 09:32:43 -08:00
dsl_dataset.c Illumos #4574 get_clones_stat does not call zap_count in non-debug kernel 2014-03-04 11:50:13 -08:00
dsl_deadlist.c Illumos #3104: eliminate empty bpobjs 2013-01-08 10:35:43 -08:00
dsl_deleg.c cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
dsl_destroy.c cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
dsl_dir.c dmu_tx kstat cleanup 2014-03-04 12:22:24 -08:00
dsl_pool.c cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
dsl_prop.c Illumos #3742 2013-11-04 10:55:25 -08:00
dsl_scan.c Add erratum for issue #2094 2014-02-21 12:10:40 -08:00
dsl_synctask.c Export symbols dsl_sync_task{_nowait} 2014-03-07 10:01:36 -08:00
dsl_userhold.c Some nvlist allocations in hold processing need to use KM_PUSHPAGE. 2013-12-02 14:02:46 -08:00
fm.c Add zpool_events_seek() functionality 2014-03-31 16:10:57 -07:00
gzip.c cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
lz4.c Force LZ4_FORCE_SW_BITCOUNT for Sparc 2014-01-09 15:54:03 -08:00
lzjb.c cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
Makefile.in Add visibility in to cached dbufs 2013-10-25 13:59:40 -07:00
metaslab.c cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
refcount.c Illumos #3464 2013-09-04 16:01:24 -07:00
rrwlock.c Fix several new KM_SLEEP warnings 2013-09-25 15:44:22 -07:00
sa.c Properly handle updates of variably-sized SA entries. 2013-12-20 13:52:33 -08:00
sha256.c Add linux sha2 support 2010-08-31 13:41:59 -07:00
spa_boot.c Add linux kernel module support 2010-08-31 13:41:58 -07:00
spa_config.c Implement -t option to zpool import for temporary pool names 2014-03-20 12:05:30 -07:00
spa_errlog.c Illumos #3743 2013-11-04 10:55:25 -08:00
spa_history.c cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
spa_misc.c Use KM_PUSHPAGE in spa_add() for spa_label_features. 2014-03-10 09:09:30 -07:00
spa_stats.c replace nreserved with ndirty in txgs kstat 2014-03-04 12:22:24 -08:00
spa.c Add automatic hot spare functionality 2014-04-02 13:10:08 -07:00
space_map.c Illumos #3464 2013-09-04 16:01:24 -07:00
txg.c replace nreserved with ndirty in txgs kstat 2014-03-04 12:22:24 -08:00
uberblock.c Illumos #3598 2013-10-31 14:58:04 -07:00
unique.c Switch KM_SLEEP to KM_PUSHPAGE 2012-08-27 12:01:37 -07:00
vdev_cache.c cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
vdev_disk.c Invalidate Linux buffer cache on vdevs upon each flush 2014-03-04 12:22:03 -08:00
vdev_file.c vdev_file_io_start() to use taskq_dispatch(TQ_PUSHPAGE) 2014-01-23 09:58:07 -08:00
vdev_label.c cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
vdev_mirror.c Illumos #4045 write throttle & i/o scheduler performance work 2013-12-06 09:32:43 -08:00
vdev_missing.c Illumos #3598 2013-10-31 14:58:04 -07:00
vdev_queue.c cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
vdev_raidz.c Illumos #4045 write throttle & i/o scheduler performance work 2013-12-06 09:32:43 -08:00
vdev_root.c Illumos #3598 2013-10-31 14:58:04 -07:00
vdev.c Illumos #4045 write throttle & i/o scheduler performance work 2013-12-06 09:32:43 -08:00
zap_leaf.c Illumos #3598 2013-10-31 14:58:04 -07:00
zap_micro.c cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
zap.c Illumos #3743 2013-11-04 10:55:25 -08:00
zfeature_common.c Illumos #3035 LZ4 compression support in ZFS and GRUB 2013-01-29 09:28:20 -08:00
zfeature.c Fix zap_lookup() in feature_is_supported(). 2014-03-04 11:44:44 -08:00
zfs_acl.c Allow chown/chgrp when no ACL SAs exist. 2014-01-23 11:07:29 -08:00
zfs_byteswap.c Add linux kernel module support 2010-08-31 13:41:58 -07:00
zfs_ctldir.c cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
zfs_debug.c cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
zfs_dir.c Illumos #4347 ZPL can use dmu_tx_assign(TXG_WAIT) 2013-12-06 09:30:51 -08:00
zfs_fm.c Add automatic hot spare functionality 2014-04-02 13:10:08 -07:00
zfs_fuid.c Illumos #3522 2013-10-30 14:51:27 -07:00
zfs_ioctl.c Clarify zpool_events_next() comment 2014-03-31 16:11:08 -07:00
zfs_log.c Only commit the ZIL once in zpl_writepages() (msync() case). 2013-11-23 15:08:29 -08:00
zfs_onexit.c Illumos #3598 2013-10-31 14:58:04 -07:00
zfs_replay.c Illumos #3598 2013-10-31 14:58:04 -07:00
zfs_rlock.c cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
zfs_sa.c cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
zfs_vfsops.c Propagate errors when registering "relatime" property callback. 2014-02-12 09:38:28 -08:00
zfs_vnops.c Fix zfs_getattr_fast types 2014-01-09 15:50:23 -08:00
zfs_znode.c Implement relatime. 2014-01-29 15:50:44 -08:00
zil.c cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
zio_checksum.c Illumos #3598 2013-10-31 14:58:04 -07:00
zio_compress.c Illumos #3598 2013-10-31 14:58:04 -07:00
zio_inject.c Illumos #3598 2013-10-31 14:58:04 -07:00
zio.c cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
zle.c Update core ZFS code from build 121 to build 141. 2010-05-28 13:45:14 -07:00
zpl_ctldir.c cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
zpl_export.c cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
zpl_file.c cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
zpl_inode.c cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
zpl_super.c Prune metadata from ghost lists in arc_adjust_meta 2014-02-21 16:10:49 -08:00
zpl_xattr.c cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
zrlock.c Export ZFS symbols needed by Lustre. 2010-09-17 16:24:15 -07:00
zvol.c Use long holds in zvol_set_volsize() 2014-01-14 14:46:12 -08:00