aboutsummaryrefslogtreecommitdiff
path: root/etc/devd
diff options
context:
space:
mode:
authorSepherosa Ziehau <sephe@FreeBSD.org>2016-11-15 02:36:12 +0000
committerSepherosa Ziehau <sephe@FreeBSD.org>2016-11-15 02:36:12 +0000
commit168fce73b59d6023cab45d063a452551a1f2103e (patch)
tree91c618511d1add8ec8d6330790266410dba10b04 /etc/devd
parentf8a67728f3b657f7f45a402e6841bee1736862eb (diff)
downloadsrc-168fce73b59d6023cab45d063a452551a1f2103e.tar.gz
src-168fce73b59d6023cab45d063a452551a1f2103e.zip
hyperv/vss: Add driver and tools for VSS
VSS stands for "Volume Shadow Copy Service". Unlike virtual machine snapshot, it only takes snapshot for the virtual disks, so both filesystem and applications have to aware of it, and cooperate the whole VSS process. This driver exposes two device files to the userland: /dev/hv_fsvss_dev Normally userland programs should _not_ mess with this device file. It is currently used by the hv_vss_daemon(8), which freezes and thaws the filesystem. NOTE: currently only UFS is supported, if the system mounts _any_ other filesystems, the hv_vss_daemon(8) will veto the VSS process. If hv_vss_daemon(8) was disabled, then this device file must be opened, and proper ioctls must be issued to keep the VSS working. /dev/hv_appvss_dev Userland application can opened this device file to receive the VSS freeze notification, hold the VSS for a while (mainly to flush application data to filesystem), release the VSS process, and receive the VSS thaw notification i.e. applications can run again. The VSS will still work, even if this device file is not opened. However, only filesystem consistency is promised, if this device file is not opened or is not operated properly. hv_vss_daemon(8) is started by devd(8) by default. It can be disabled by editting /etc/devd/hyperv.conf. Submitted by: Hongjiang Zhang <honzhan microsoft com> Reviewed by: kib, mckusick MFC after: 3 weeks Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D8224
Notes
Notes: svn path=/head/; revision=308664
Diffstat (limited to 'etc/devd')
-rw-r--r--etc/devd/hyperv.conf16
1 files changed, 16 insertions, 0 deletions
diff --git a/etc/devd/hyperv.conf b/etc/devd/hyperv.conf
index bed7383d0816..0abf284a9ce0 100644
--- a/etc/devd/hyperv.conf
+++ b/etc/devd/hyperv.conf
@@ -17,3 +17,19 @@ notify 10 {
match "cdev" "hv_kvp_dev";
action "pkill -x hv_kvp_daemon";
};
+
+notify 11 {
+ match "system" "DEVFS";
+ match "subsystem" "CDEV";
+ match "type" "CREATE";
+ match "cdev" "hv_fsvss_dev";
+ action "/usr/sbin/hv_vss_daemon";
+};
+
+notify 11 {
+ match "system" "DEVFS";
+ match "subsystem" "CDEV";
+ match "type" "DESTROY";
+ match "cdev" "hv_fsvss_dev";
+ action "pkill -x hv_vss_daemon";
+};