New service that waits on zvol links to be created

The zfs-volume-wait.service scans existing zvols and waits for their
links under /dev to be created. Any service that depends on zvol
links to be there should add a dependency on zfs-volumes.target.
By default, this target is not enabled.

Reviewed-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Reviewed-by: Antonio Russo <antonio.e.russo@gmail.com>
Reviewed-by: Richard Laager <rlaager@wiktel.com>
Reviewed-by: loli10K <ezomori.nozomu@gmail.com>
Reviewed-by: John Gallagher <john.gallagher@delphix.com>
Reviewed-by: George Wilson <gwilson@delphix.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Pavel Zakharov <pzakharov@delphix.com>
Closes #8975
This commit is contained in:
Pavel Zakharov
2019-07-17 18:33:05 -04:00
committed by Brian Behlendorf
parent d64dd3b62a
commit 26b6047469
11 changed files with 145 additions and 3 deletions
+1
View File
@@ -5,4 +5,5 @@ enable zfs-import.target
enable zfs-mount.service
enable zfs-share.service
enable zfs-zed.service
enable zfs-volume-wait.service
enable zfs.target
+4
View File
@@ -7,7 +7,9 @@ systemdunit_DATA = \
zfs-import-scan.service \
zfs-mount.service \
zfs-share.service \
zfs-volume-wait.service \
zfs-import.target \
zfs-volumes.target \
zfs.target
EXTRA_DIST = \
@@ -17,6 +19,8 @@ EXTRA_DIST = \
$(top_srcdir)/etc/systemd/system/zfs-mount.service.in \
$(top_srcdir)/etc/systemd/system/zfs-share.service.in \
$(top_srcdir)/etc/systemd/system/zfs-import.target.in \
$(top_srcdir)/etc/systemd/system/zfs-volume-wait.service.in \
$(top_srcdir)/etc/systemd/system/zfs-volumes.target.in \
$(top_srcdir)/etc/systemd/system/zfs.target.in \
$(top_srcdir)/etc/systemd/system/50-zfs.preset.in
@@ -0,0 +1,13 @@
[Unit]
Description=Wait for ZFS Volume (zvol) links in /dev
DefaultDependencies=no
After=systemd-udev-settle.service
After=zfs-import.target
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=@bindir@/zvol_wait
[Install]
WantedBy=zfs-volumes.target
+7
View File
@@ -0,0 +1,7 @@
[Unit]
Description=ZFS volumes are ready
After=zfs-volume-wait.service
Requires=zfs-volume-wait.service
[Install]
WantedBy=zfs.target