diff options
author | asomers <asomers@FreeBSD.org> | 2016-05-28 17:43:40 +0000 |
---|---|---|
committer | asomers <asomers@FreeBSD.org> | 2016-05-28 17:43:40 +0000 |
commit | 442baa51845cf38dbcfdc44bd8493defdaad630a (patch) | |
tree | b276df22690bfddec70e75c8b9f2f7c8df80cbc6 /etc | |
parent | da1a7cbaba7d56d77911e9c80b3f82d515ef5e78 (diff) | |
download | FreeBSD-src-442baa51845cf38dbcfdc44bd8493defdaad630a.zip FreeBSD-src-442baa51845cf38dbcfdc44bd8493defdaad630a.tar.gz |
zfsd(8), the ZFS fault management daemon
Add zfsd, which deals with hard drive faults in ZFS pools. It manages
hotspares and replements in drive slots that publish physical paths.
cddl/usr.sbin/zfsd
Add zfsd(8) and its unit tests
cddl/usr.sbin/Makefile
Add zfsd to the build
lib/libdevdctl
A C++ library that helps devd clients process events
lib/Makefile
share/mk/bsd.libnames.mk
share/mk/src.libnames.mk
Add libdevdctl to the build. It's a private library, unusable by
out-of-tree software.
etc/defaults/rc.conf
By default, set zfsd_enable to NO
etc/mtree/BSD.include.dist
Add a directory for libdevdctl's include files
etc/mtree/BSD.tests.dist
Add a directory for zfsd's unit tests
etc/mtree/BSD.var.dist
Add /var/db/zfsd/cases, where zfsd stores case files while it's shut
down.
etc/rc.d/Makefile
etc/rc.d/zfsd
Add zfsd's rc script
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c
Fix the resource.fs.zfs.statechange message. It had a number of
problems:
It was only being emitted on a transition to the HEALTHY state.
That made it impossible for zfsd to take actions based on drives
getting sicker.
It compared the new state to vdev_prevstate, which is the state that
the vdev had the last time it was opened. That doesn't make sense,
because a vdev can change state multiple times without being
reopened.
vdev_set_state contains logic that will change the device's new
state based on various conditions. However, the statechange event
was being posted _before_ that logic took effect. Now it's being
posted after.
Submitted by: gibbs, asomers, mav, allanjude
Reviewed by: mav, delphij
Relnotes: yes
Sponsored by: Spectra Logic Corp, iX Systems
Differential Revision: https://reviews.freebsd.org/D6564
Diffstat (limited to 'etc')
-rw-r--r-- | etc/defaults/rc.conf | 4 | ||||
-rw-r--r-- | etc/mtree/BSD.include.dist | 2 | ||||
-rw-r--r-- | etc/mtree/BSD.tests.dist | 6 | ||||
-rw-r--r-- | etc/mtree/BSD.var.dist | 4 | ||||
-rw-r--r-- | etc/rc.d/Makefile | 3 | ||||
-rw-r--r-- | etc/rc.d/zfsd | 17 |
6 files changed, 33 insertions, 3 deletions
diff --git a/etc/defaults/rc.conf b/etc/defaults/rc.conf index 74125d1..80061d1 100644 --- a/etc/defaults/rc.conf +++ b/etc/defaults/rc.conf @@ -60,6 +60,10 @@ rc_conf_files="/etc/rc.conf /etc/rc.conf.local" # ZFS support zfs_enable="NO" # Set to YES to automatically mount ZFS file systems +# ZFSD support +zfsd_enable="NO" # Set to YES to automatically start the ZFS fault + # management daemon. + gptboot_enable="YES" # GPT boot success/failure reporting. # Experimental - test before enabling diff --git a/etc/mtree/BSD.include.dist b/etc/mtree/BSD.include.dist index a9baa7e..42980d0 100644 --- a/etc/mtree/BSD.include.dist +++ b/etc/mtree/BSD.include.dist @@ -155,6 +155,8 @@ wi .. .. + devdctl + .. edit readline .. diff --git a/etc/mtree/BSD.tests.dist b/etc/mtree/BSD.tests.dist index f18091d..21959c4 100644 --- a/etc/mtree/BSD.tests.dist +++ b/etc/mtree/BSD.tests.dist @@ -48,8 +48,6 @@ cddl lib .. - sbin - .. usr.bin .. usr.sbin @@ -215,6 +213,8 @@ .. .. .. + zfsd + .. .. .. etc @@ -308,6 +308,8 @@ .. libcrypt .. + libdevdctl + .. libmp .. libnv diff --git a/etc/mtree/BSD.var.dist b/etc/mtree/BSD.var.dist index 46b8dcd..e6dfa50 100644 --- a/etc/mtree/BSD.var.dist +++ b/etc/mtree/BSD.var.dist @@ -54,6 +54,10 @@ .. portsnap .. + zfsd + cases + .. + .. .. empty mode=0555 flags=schg .. diff --git a/etc/rc.d/Makefile b/etc/rc.d/Makefile index 89d2baf..e5f15e7 100644 --- a/etc/rc.d/Makefile +++ b/etc/rc.d/Makefile @@ -123,7 +123,7 @@ FILES= DAEMON \ ypserv \ ypset \ ypupdated \ - ypxfrd \ + ypxfrd .if ${MK_ACCT} != "no" FILESGROUPS+= ACCT @@ -308,6 +308,7 @@ FILES+= wpa_supplicant .if ${MK_ZFS} != "no" FILESGROUPS+= ZFS ZFS+= zfs +ZFS+= zfsd ZFS+= zvol ZFSPACKAGE= zfs .endif diff --git a/etc/rc.d/zfsd b/etc/rc.d/zfsd new file mode 100644 index 0000000..edf259b --- /dev/null +++ b/etc/rc.d/zfsd @@ -0,0 +1,17 @@ +#!/bin/sh +# +# $FreeBSD$ +# + +# PROVIDE: zfsd +# REQUIRE: devd zfs +# KEYWORD: nojail shutdown + +. /etc/rc.subr + +name="zfsd" +rcvar="zfsd_enable" +command="/usr/sbin/${name}" + +load_rc_config $name +run_rc_command "$1" |