zfs/cmd/zed/zed.d
Don Brady 976246fadd Add illumos FMD ZFS logic to ZED -- phase 2
The phase 2 work primarily entails the Diagnosis Engine and
the Retire Agent modules. It also includes infrastructure
to support a crude FMD environment to host these modules.

The Diagnosis Engine consumes I/O and checksum ereports and
feeds them into a SERD engine which will generate a corres-
ponding fault diagnosis when the SERD engine fires. All the
diagnosis state data is collected into cases, one case per
vdev being tracked.

The Retire Agent responds to diagnosed faults by isolating
the faulty VDEV. It will notify the ZFS kernel module of
the new VDEV state (degraded or faulted). This agent is
also responsible for managing hot spares across pools.
When it encounters a device fault or a device removal it
replaces the device with an appropriate spare if available.

Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Don Brady <don.brady@intel.com>
Closes #5343
2016-11-07 15:01:38 -08:00
..
README Cleanup ZEDLETs 2015-04-27 12:08:01 -07:00
all-debug.sh Cleanup ZEDLETs 2015-04-27 12:08:01 -07:00
all-syslog.sh Bring over illumos ZFS FMA logic -- phase 1 2016-09-01 11:39:45 -07:00
checksum-notify.sh Replace "email" ZEDLETs with "notify" ZEDLETs 2015-04-27 12:08:07 -07:00
data-notify.sh Combine data-notify.sh with io-notify.sh 2015-04-27 12:08:08 -07:00
generic-notify.sh Replace "email" ZEDLETs with "notify" ZEDLETs 2015-04-27 12:08:07 -07:00
io-notify.sh Combine data-notify.sh with io-notify.sh 2015-04-27 12:08:08 -07:00
resilver_finish-notify.sh OpenZFS 5997 - FRU field not set during pool creation and never updated 2016-08-12 13:06:48 -07:00
scrub_finish-notify.sh OpenZFS 5997 - FRU field not set during pool creation and never updated 2016-08-12 13:06:48 -07:00
statechange-led.sh Fix statechange-led.sh & unnecessary libdevmapper warning 2016-10-25 11:05:30 -07:00
vdev_attach-led.sh Fix statechange-led.sh & unnecessary libdevmapper warning 2016-10-25 11:05:30 -07:00
vdev_clear-led.sh Multipath autoreplace, control enclosure LEDs, event rate limiting 2016-10-19 12:55:59 -07:00
zed-functions.sh Rework zed_notify_email for configurable PROG/OPTS 2015-07-30 11:52:56 -07:00
zed.rc Multipath autoreplace, control enclosure LEDs, event rate limiting 2016-10-19 12:55:59 -07:00

README

Shell scripts are the recommended choice for ZEDLETs that mostly call
other utilities and do relatively little data manipulation.

Shell scripts MUST work on both bash and dash.

Shell scripts MUST run cleanly through ShellCheck:
  http://www.shellcheck.net/

General functions reside in "zed-functions.sh".  Use them where applicable.

Additional references that may be of use:

  Google Shell Style Guide
  https://google-styleguide.googlecode.com/svn/trunk/shell.xml

  Dash as /bin/sh
  https://wiki.ubuntu.com/DashAsBinSh

  Common shell script mistakes
  http://www.pixelbeat.org/programming/shell_script_mistakes.html

  Filenames and Pathnames in Shell: How to do it Correctly
  http://www.dwheeler.com/essays/filenames-in-shell.html

  Autoconf: Portable Shell Programming
  https://www.gnu.org/software/autoconf/manual/autoconf.html#Portable-Shell

Please BE CONSISTENT with the existing style, check for errors,
minimize dependencies where possible, try to be portable,
and comment anything non-obvious.  Festina lente.