]> granicus.if.org Git - zfs/commit
Initial implementation of zed (ZFS Event Daemon)
authorChris Dunlap <cdunlap@llnl.gov>
Tue, 21 Jan 2014 21:30:03 +0000 (13:30 -0800)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Wed, 2 Apr 2014 20:10:03 +0000 (13:10 -0700)
commit9e246ac3d8ef9ff8aed86ecf277eea2cae3a79d3
tree9ae68bdb5b532dd2d5fbb2bc0fcaf684fd78ea50
parent8c7aa0cfc47578d1d38f80ecb7c66eed7cde5c59
Initial implementation of zed (ZFS Event Daemon)

zed monitors ZFS events.  When a zevent is posted, zed will run any
scripts that have been enabled for the corresponding zevent class.
Multiple scripts may be invoked for a given zevent.  The zevent
nvpairs are passed to the scripts as environment variables.

Events are processed synchronously by the single thread, and there is
no maximum timeout for script execution.  Consequently, a misbehaving
script can delay (or forever block) the processing of subsequent
zevents.  Plans are to address this in future commits.

Initial scripts have been developed to log events to syslog
and send email in response to checksum/data/io errors and
resilver.finish/scrub.finish events.  By default, email will only
be sent if the ZED_EMAIL variable is configured in zed.rc (which is
serving as a config file of sorts until a proper configuration file
is implemented).

Signed-off-by: Chris Dunlap <cdunlap@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue #2
34 files changed:
cmd/Makefile.am
cmd/zed/.gitignore [new file with mode: 0644]
cmd/zed/Makefile.am [new file with mode: 0644]
cmd/zed/zed.c [new file with mode: 0644]
cmd/zed/zed.d/all-debug.sh [new file with mode: 0755]
cmd/zed/zed.d/all-syslog.sh [new file with mode: 0755]
cmd/zed/zed.d/checksum-email.sh [new symlink]
cmd/zed/zed.d/data-email.sh [new file with mode: 0755]
cmd/zed/zed.d/generic-email.sh [new file with mode: 0755]
cmd/zed/zed.d/io-email.sh [new file with mode: 0755]
cmd/zed/zed.d/resilver.finish-email.sh [new symlink]
cmd/zed/zed.d/scrub.finish-email.sh [new file with mode: 0755]
cmd/zed/zed.d/zed.rc [new file with mode: 0644]
cmd/zed/zed.h [new file with mode: 0644]
cmd/zed/zed_conf.c [new file with mode: 0644]
cmd/zed/zed_conf.h [new file with mode: 0644]
cmd/zed/zed_event.c [new file with mode: 0644]
cmd/zed/zed_event.h [new file with mode: 0644]
cmd/zed/zed_exec.c [new file with mode: 0644]
cmd/zed/zed_exec.h [new file with mode: 0644]
cmd/zed/zed_file.c [new file with mode: 0644]
cmd/zed/zed_file.h [new file with mode: 0644]
cmd/zed/zed_log.c [new file with mode: 0644]
cmd/zed/zed_log.h [new file with mode: 0644]
cmd/zed/zed_strings.c [new file with mode: 0644]
cmd/zed/zed_strings.h [new file with mode: 0644]
configure.ac
man/man8/.gitignore [new file with mode: 0644]
man/man8/Makefile.am
man/man8/zed.8.in [new file with mode: 0644]
rpm/generic/zfs.spec.in
scripts/common.sh.in
scripts/zfs.sh
zfs-script-config.sh.in