From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id 0C3F962461; Wed, 16 Sep 2020 14:14:43 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id E593E23BCA; Wed, 16 Sep 2020 14:14:42 +0200 (CEST) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [212.186.127.180]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS id E721E23B6B; Wed, 16 Sep 2020 14:14:37 +0200 (CEST) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id B1B7444B6A; Wed, 16 Sep 2020 14:14:37 +0200 (CEST) From: Stoiko Ivanov To: pve-devel@lists.proxmox.com, pbs-devel@lists.proxmox.com Date: Wed, 16 Sep 2020 14:14:17 +0200 Message-Id: <20200916121419.3997-2-s.ivanov@proxmox.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200916121419.3997-1-s.ivanov@proxmox.com> References: <20200916121419.3997-1-s.ivanov@proxmox.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL 0.014 Adjusted score from AWL reputation of From: address KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment RCVD_IN_DNSWL_MED -2.3 Sender listed at https://www.dnswl.org/, medium trust SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [multipathd.target, preset.in, service.in, zfs-import.target, cryptsetup.target, makefile.am, target.in] Subject: [pve-devel] [RFC zfsonlinux 1/1] Add systemd-unit for importing specific pools X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Sep 2020 12:14:43 -0000 This patch addresses the problems some users experience when some zpools are created/imported with cachefile (which then causes other pools not to get imported during boot) - when our tooling creates a pool we explictly instantiate the service with the pool's name, ensuring that it will get imported by scanning. Suggested-by: Fabian Grünbichler Signed-off-by: Stoiko Ivanov --- ...md-unit-for-importing-specific-pools.patch | 75 +++++++++++++++++++ debian/patches/series | 1 + debian/zfsutils-linux.install | 1 + 3 files changed, 77 insertions(+) create mode 100644 debian/patches/0008-Add-systemd-unit-for-importing-specific-pools.patch diff --git a/debian/patches/0008-Add-systemd-unit-for-importing-specific-pools.patch b/debian/patches/0008-Add-systemd-unit-for-importing-specific-pools.patch new file mode 100644 index 00000000..61c4e94a --- /dev/null +++ b/debian/patches/0008-Add-systemd-unit-for-importing-specific-pools.patch @@ -0,0 +1,75 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Stoiko Ivanov +Date: Tue, 15 Sep 2020 19:07:24 +0200 +Subject: [PATCH] Add systemd-unit for importing specific pools + +The unit can be instantiated with a specific poolname, which will get imported +by scanning /dev/disk/by-id, irrespective of the existence and content of +/etc/zfs/zpool.cache. + +the instance name is used unescaped (see systemd.unit(5)), since zpool names +can contain characters which will be escaped by systemd. + +Signed-off-by: Stoiko Ivanov +--- + etc/systemd/system/50-zfs.preset.in | 1 + + etc/systemd/system/Makefile.am | 2 ++ + etc/systemd/system/zfs-import@.service.in | 17 +++++++++++++++++ + 3 files changed, 20 insertions(+) + create mode 100644 etc/systemd/system/zfs-import@.service.in + +diff --git a/etc/systemd/system/50-zfs.preset.in b/etc/systemd/system/50-zfs.preset.in +index e4056a92c..030611419 100644 +--- a/etc/systemd/system/50-zfs.preset.in ++++ b/etc/systemd/system/50-zfs.preset.in +@@ -1,6 +1,7 @@ + # ZFS is enabled by default + enable zfs-import-cache.service + disable zfs-import-scan.service ++enable zfs-import@.service + enable zfs-import.target + enable zfs-mount.service + enable zfs-share.service +diff --git a/etc/systemd/system/Makefile.am b/etc/systemd/system/Makefile.am +index 4e14467a0..ae72102af 100644 +--- a/etc/systemd/system/Makefile.am ++++ b/etc/systemd/system/Makefile.am +@@ -5,6 +5,7 @@ systemdunit_DATA = \ + zfs-zed.service \ + zfs-import-cache.service \ + zfs-import-scan.service \ ++ zfs-import@.service \ + zfs-mount.service \ + zfs-share.service \ + zfs-volume-wait.service \ +@@ -16,6 +17,7 @@ EXTRA_DIST = \ + $(top_srcdir)/etc/systemd/system/zfs-zed.service.in \ + $(top_srcdir)/etc/systemd/system/zfs-import-cache.service.in \ + $(top_srcdir)/etc/systemd/system/zfs-import-scan.service.in \ ++ $(top_srcdir)/etc/systemd/system/zfs-import@.service.in \ + $(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 \ +diff --git a/etc/systemd/system/zfs-import@.service.in b/etc/systemd/system/zfs-import@.service.in +new file mode 100644 +index 000000000..2db9fdaab +--- /dev/null ++++ b/etc/systemd/system/zfs-import@.service.in +@@ -0,0 +1,17 @@ ++[Unit] ++Description=Import ZFS pool %i ++Documentation=man:zpool(8) ++DefaultDependencies=no ++Requires=systemd-udev-settle.service ++After=systemd-udev-settle.service ++After=cryptsetup.target ++After=multipathd.target ++Before=zfs-import.target ++ ++[Service] ++Type=oneshot ++RemainAfterExit=yes ++ExecStart=@sbindir@/zpool import -N -d /dev/disk/by-id -o cachefile=none %I ++ ++[Install] ++WantedBy=zfs-import.target diff --git a/debian/patches/series b/debian/patches/series index 33a76ef1..e1d7c485 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -5,3 +5,4 @@ 0005-Enable-zed-emails.patch 0006-dont-symlink-zed-scripts.patch 0007-Use-installed-python3.patch +0008-Add-systemd-unit-for-importing-specific-pools.patch diff --git a/debian/zfsutils-linux.install b/debian/zfsutils-linux.install index aa62d505..229ff2ea 100644 --- a/debian/zfsutils-linux.install +++ b/debian/zfsutils-linux.install @@ -5,6 +5,7 @@ etc/zfs/zpool.d/ lib/systemd/system-preset/ lib/systemd/system/zfs-import-cache.service lib/systemd/system/zfs-import-scan.service +lib/systemd/system/zfs-import@.service lib/systemd/system/zfs-import.target lib/systemd/system/zfs-import.service lib/systemd/system/zfs-mount.service -- 2.20.1