summaryrefslogtreecommitdiffstats
path: root/etc
diff options
context:
space:
mode:
authorasomers <asomers@FreeBSD.org>2016-05-28 17:43:40 +0000
committerasomers <asomers@FreeBSD.org>2016-05-28 17:43:40 +0000
commit442baa51845cf38dbcfdc44bd8493defdaad630a (patch)
treeb276df22690bfddec70e75c8b9f2f7c8df80cbc6 /etc
parentda1a7cbaba7d56d77911e9c80b3f82d515ef5e78 (diff)
downloadFreeBSD-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.conf4
-rw-r--r--etc/mtree/BSD.include.dist2
-rw-r--r--etc/mtree/BSD.tests.dist6
-rw-r--r--etc/mtree/BSD.var.dist4
-rw-r--r--etc/rc.d/Makefile3
-rw-r--r--etc/rc.d/zfsd17
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"
OpenPOWER on IntegriCloud