Systemd configuration fixes
* Disable zfs-import-scan.service by default. This ensures that pools will not be automatically imported unless they appear in the cache file. When this service is explicitly enabled pools will be imported with the "cachefile=none" property set. This prevents the creation of, or update to, an existing cache file. $ systemctl list-unit-files | grep zfs zfs-import-cache.service enabled zfs-import-scan.service disabled zfs-mount.service enabled zfs-share.service enabled zfs-zed.service enabled zfs.target enabled * Change services to dynamic from static by adding an [Install] section and adding 'WantedBy' tags in favor of 'Requires' tags. This allows for easier customization of the boot behavior. * Start the zfs-import-cache.service after the root pivot so the cache file is available in the standard location. * Start the zfs-mount.service after the systemd-remount-fs.service to ensure the root fs is writeable and the ZFS filesystems can create their mount points. * Change the default behavior to only load the ZFS kernel modules in zfs-import-*.service or when blkid(8) detects a pool. Users who wish to unconditionally load the kernel modules must uncomment the list of modules in /lib/modules-load.d/zfs.conf. Reviewed-by: Richard Laager <rlaager@wiktel.com> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Closes #4325 Closes #4496 Closes #4658 Closes #4699
This commit is contained in:
parent
26ef0cc7db
commit
92547bc45c
|
@ -1 +1,3 @@
|
||||||
zfs
|
# Always load kernel modules at boot. The default behavior is to load the
|
||||||
|
# kernel modules in the zfs-import-*.service or when blkid(8) detects a pool.
|
||||||
|
#zfs
|
||||||
|
|
|
@ -1,2 +1,7 @@
|
||||||
# ZFS is enabled by default
|
# ZFS is enabled by default
|
||||||
enable zfs.*
|
enable zfs-import-cache.service
|
||||||
|
disable zfs-import-scan.service
|
||||||
|
enable zfs-mount.service
|
||||||
|
enable zfs-share.service
|
||||||
|
enable zfs-zed.service
|
||||||
|
enable zfs.target
|
||||||
|
|
|
@ -4,6 +4,7 @@ DefaultDependencies=no
|
||||||
Requires=systemd-udev-settle.service
|
Requires=systemd-udev-settle.service
|
||||||
After=systemd-udev-settle.service
|
After=systemd-udev-settle.service
|
||||||
After=cryptsetup.target
|
After=cryptsetup.target
|
||||||
|
After=systemd-remount-fs.service
|
||||||
Before=dracut-mount.service
|
Before=dracut-mount.service
|
||||||
ConditionPathExists=@sysconfdir@/zfs/zpool.cache
|
ConditionPathExists=@sysconfdir@/zfs/zpool.cache
|
||||||
|
|
||||||
|
@ -12,3 +13,7 @@ Type=oneshot
|
||||||
RemainAfterExit=yes
|
RemainAfterExit=yes
|
||||||
ExecStartPre=/sbin/modprobe zfs
|
ExecStartPre=/sbin/modprobe zfs
|
||||||
ExecStart=@sbindir@/zpool import -c @sysconfdir@/zfs/zpool.cache -aN
|
ExecStart=@sbindir@/zpool import -c @sysconfdir@/zfs/zpool.cache -aN
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=zfs-mount.service
|
||||||
|
WantedBy=zfs.target
|
||||||
|
|
|
@ -11,4 +11,8 @@ ConditionPathExists=!@sysconfdir@/zfs/zpool.cache
|
||||||
Type=oneshot
|
Type=oneshot
|
||||||
RemainAfterExit=yes
|
RemainAfterExit=yes
|
||||||
ExecStartPre=/sbin/modprobe zfs
|
ExecStartPre=/sbin/modprobe zfs
|
||||||
ExecStart=@sbindir@/zpool import -d /dev/disk/by-id -aN
|
ExecStart=@sbindir@/zpool import -aN -o cachefile=none
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=zfs-mount.service
|
||||||
|
WantedBy=zfs.target
|
||||||
|
|
|
@ -1,15 +1,17 @@
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Mount ZFS filesystems
|
Description=Mount ZFS filesystems
|
||||||
DefaultDependencies=no
|
DefaultDependencies=no
|
||||||
Wants=zfs-import-cache.service
|
|
||||||
Wants=zfs-import-scan.service
|
|
||||||
Requires=systemd-udev-settle.service
|
|
||||||
After=systemd-udev-settle.service
|
After=systemd-udev-settle.service
|
||||||
After=zfs-import-cache.service
|
After=zfs-import-cache.service
|
||||||
After=zfs-import-scan.service
|
After=zfs-import-scan.service
|
||||||
|
After=systemd-remount-fs.service
|
||||||
Before=local-fs.target
|
Before=local-fs.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=oneshot
|
Type=oneshot
|
||||||
RemainAfterExit=yes
|
RemainAfterExit=yes
|
||||||
ExecStart=@sbindir@/zfs mount -a
|
ExecStart=@sbindir@/zfs mount -a
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=zfs-share.service
|
||||||
|
WantedBy=zfs.target
|
||||||
|
|
|
@ -3,12 +3,14 @@ Description=ZFS file system shares
|
||||||
After=nfs-server.service nfs-kernel-server.service
|
After=nfs-server.service nfs-kernel-server.service
|
||||||
After=smb.service
|
After=smb.service
|
||||||
After=zfs-mount.service
|
After=zfs-mount.service
|
||||||
Requires=zfs-mount.service
|
|
||||||
PartOf=nfs-server.service nfs-kernel-server.service
|
PartOf=nfs-server.service nfs-kernel-server.service
|
||||||
PartOf=smb.service
|
PartOf=smb.service
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=oneshot
|
Type=oneshot
|
||||||
RemainAfterExit=yes
|
RemainAfterExit=yes
|
||||||
ExecStartPre=-@bindir@/rm /etc/dfs/sharetab
|
ExecStartPre=-@bindir@/rm -f /etc/dfs/sharetab
|
||||||
ExecStart=@sbindir@/zfs share -a
|
ExecStart=@sbindir@/zfs share -a
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=zfs.target
|
||||||
|
|
|
@ -10,3 +10,4 @@ Restart=on-abort
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
Alias=zed.service
|
Alias=zed.service
|
||||||
|
WantedBy=zfs.target
|
||||||
|
|
|
@ -1,8 +1,5 @@
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=ZFS startup target
|
Description=ZFS startup target
|
||||||
Requires=zfs-mount.service
|
|
||||||
Requires=zfs-share.service
|
|
||||||
Wants=zfs-zed.service
|
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
|
|
Loading…
Reference in New Issue