freebsd-dev/cmd
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
..
arcstat sighandler() should take 2 arguments 2014-03-20 11:03:46 -07:00
dbufstat Python 3 fixes 2013-11-08 14:30:29 -08:00
fsck_zfs Add /sbin/fsck.zfs helper 2013-01-09 16:54:58 -08:00
mount_zfs Add full SELinux support 2013-12-19 10:37:31 -08:00
vdev_id vdev_id: support per-channel slot mappings 2014-01-17 11:17:54 -08:00
zdb cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
zed Add automatic hot spare functionality 2014-04-02 13:10:08 -07:00
zfs Enable /etc/mtab cache to improve performance 2014-01-07 09:48:09 -08:00
zhack Add missing libzfs_core to Makefiles 2013-11-20 15:44:15 -08:00
zinject Make command line guid parsing more tolerant 2014-04-02 13:10:08 -07:00
zpios Fix error message in zpios 2014-01-29 15:11:56 -08:00
zpool Add missing DATA_TYPE_STRING_ARRAY output 2014-04-02 13:10:08 -07:00
zstreamdump Add missing libzfs_core to Makefiles 2013-11-20 15:44:15 -08:00
ztest Switch ztest mmap(2) ASSERTs to VERIFYs 2014-03-12 09:05:00 -07:00
zvol_id cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
Makefile.am Initial implementation of zed (ZFS Event Daemon) 2014-04-02 13:10:03 -07:00