From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <s.ivanov@proxmox.com>
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 <s.ivanov@proxmox.com>
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 <pve-devel.lists.proxmox.com>
List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=unsubscribe>
List-Archive: <http://lists.proxmox.com/pipermail/pve-devel/>
List-Post: <mailto:pve-devel@lists.proxmox.com>
List-Help: <mailto:pve-devel-request@lists.proxmox.com?subject=help>
List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=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 <f.gruenbichler@proxmox.com>
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
---
 ...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 <s.ivanov@proxmox.com>
+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 <s.ivanov@proxmox.com>
+---
+ 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





From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <s.ivanov@proxmox.com>
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 <s.ivanov@proxmox.com>
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: [pbs-devel] [RFC zfsonlinux 1/1] Add systemd-unit for importing
 specific pools
X-BeenThere: pbs-devel@lists.proxmox.com
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Proxmox Backup Server development discussion
 <pbs-devel.lists.proxmox.com>
List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pbs-devel>, 
 <mailto:pbs-devel-request@lists.proxmox.com?subject=unsubscribe>
List-Archive: <http://lists.proxmox.com/pipermail/pbs-devel/>
List-Post: <mailto:pbs-devel@lists.proxmox.com>
List-Help: <mailto:pbs-devel-request@lists.proxmox.com?subject=help>
List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel>, 
 <mailto:pbs-devel-request@lists.proxmox.com?subject=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 <f.gruenbichler@proxmox.com>
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
---
 ...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 <s.ivanov@proxmox.com>
+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 <s.ivanov@proxmox.com>
+---
+ 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