From: Joaquin Varela <joaquinvarela@neatech.ar>
To: pve-devel@lists.proxmox.com
Cc: Joaquin Varela <joaquinvarela@neatech.ar>
Subject: [PATCH docs v2 5/5] zfsnvme: document host ACL and cloud-init prerequisites
Date: Sun, 2 Aug 2026 00:36:30 -0300 [thread overview]
Message-ID: <66df01fad4474cd63c8cf3e1c6331a90124faf71.1785636981.git.joaquinvarela@neatech.ar> (raw)
In-Reply-To: <cover.1785636981.git.joaquinvarela@neatech.ar>
Document the complete Host NQN allow-list required for atomic target
reconstruction. Warn dedicated targets to disable guest cloud-init
datasource discovery so a cidata ZVOL cannot be mistaken for host
provisioning media.
Signed-off-by: Joaquin Varela <joaquinvarela@neatech.ar>
---
pve-storage-zfsnvme.adoc | 25 +++++++++++++++++++++++--
1 file changed, 23 insertions(+), 2 deletions(-)
diff --git a/pve-storage-zfsnvme.adoc b/pve-storage-zfsnvme.adoc
index edfb938..9d2c2f0 100644
--- a/pve-storage-zfsnvme.adoc
+++ b/pve-storage-zfsnvme.adoc
@@ -38,8 +38,20 @@ target using systemd, load the transport at boot and verify the configfs mount:
The target configuration below configfs is derived state. It does not need a
separate persistence service: after the module and ZFS pool are available, the
-backend reconstructs subsystems, namespaces, UUIDs, ACLs, and ports from the
-ZFS user properties during activation.
+backend reconstructs namespaces and UUIDs from ZFS user properties, and
+reconstructs the subsystem, host ACLs, and ports from the shared storage
+configuration during activation.
+
+Do not leave cloud-init device discovery enabled on a dedicated Linux target.
+A guest cloud-init ZVOL contains a `cidata` filesystem and can otherwise be
+mistaken for the target host's own NoCloud datasource during boot. After the
+target host is provisioned, remove cloud-init or disable it according to the
+distribution's documentation. For distributions supporting the standard
+disable marker, use:
+
+----
+# touch /etc/cloud/cloud-init.disabled
+----
Each {pve} node needs `nvme-cli`, the `nvme-tcp` module, native NVMe multipath,
a unique `/etc/nvme/hostnqn`, and `/etc/nvme/hostid`. Interface names listed in
@@ -76,6 +88,14 @@ explicit interface prevents a failed data path from reconnecting over the
management network. Activation fails before changing target state if any
configured interface is missing on the local node.
+nvme-host-nqns::
+
+Comma-separated contents of `/etc/nvme/hostnqn` from every cluster node that
+may activate the storage. The complete allow-list lets any one node restore all
+host ACLs before publishing the subsystem after a target reboot. Activation
+fails if the local node's Host NQN is absent. Update this property before
+enabling the storage on a newly added cluster node.
+
dhchap-key::
NVMe DH-HMAC-CHAP secret in `DHHC-1` representation. The value is handled as a
@@ -127,6 +147,7 @@ zfsnvme: nvme-shared
subsysnqn nqn.2026-07.example:pve-nvme
nvme-portals 10.10.1.10:4420,10.10.2.10:4420
nvme-host-ifaces ens20,ens21
+ nvme-host-nqns nqn.2014-08.org.nvmexpress:uuid:11111111-1111-1111-1111-111111111111,nqn.2014-08.org.nvmexpress:uuid:22222222-2222-2222-2222-222222222222
blocksize 16k
sparse 1
nvme-iopolicy round-robin
--
2.54.0.windows.1
prev parent reply other threads:[~2026-08-02 3:37 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-02 3:36 [PATCH docs v2 0/5] document ZFS over NVMe/TCP storage Joaquin Varela
2026-08-02 3:36 ` [PATCH docs v2 1/5] storage: document ZFS over NVMe/TCP backend Joaquin Varela
2026-08-02 3:36 ` [PATCH docs v2 2/5] storage: harden ZFS over NVMe/TCP guidance Joaquin Varela
2026-08-02 3:36 ` [PATCH docs v2 3/5] storage: document NVMe all-path loss policy Joaquin Varela
2026-08-02 3:36 ` [PATCH docs v2 4/5] zfsnvme: document target reboot prerequisites Joaquin Varela
2026-08-02 3:36 ` Joaquin Varela [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=66df01fad4474cd63c8cf3e1c6331a90124faf71.1785636981.git.joaquinvarela@neatech.ar \
--to=joaquinvarela@neatech.ar \
--cc=pve-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.