From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============7623828359877740213==" MIME-Version: 1.0 From: Jonas Pfefferle Subject: [SPDK] NVMf namespace masking 2nd Date: Tue, 05 Oct 2021 09:33:32 +0200 Message-ID: In-Reply-To: ximss-178893120@switchplus-mail.ch List-ID: To: spdk@lists.01.org --===============7623828359877740213== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi all, I updated the NVMf namespace masking PR: https://review.spdk.io/gerrit/c/spdk/spdk/+/7821 Changes to RFC: - Address concerns of overhead of checking on IO path. If a namepsace is active is only checked where needed and validity checks for NSID is only done once. - Allow to hot and cold attach/detach - It is no longer possible to call the new RPCs without hostNQN. The auto attach bevahior cannot be changed after add_ns. We might add an additional RPC for this later. - identify ns now correctly response with zeros for inactive namespace - Address concurrency concerns: attaching/detaching now pauses the subsystem for changes - ns change log is updated on attach/detach - tests I would be happy to get some feeedback. Thanks, Jonas On Sat, 08 May 2021 15:37:09 +0200 "Jonas Pfefferle" wrote: > Hi all, > = > I would be happy to get some feedback on my NVMf target namespace = >masking implementation using attach/detach: > https://review.spdk.io/gerrit/c/spdk/spdk/+/7821 > = > The patch introduces namespace masking for NVMe-over-fabrics > targets by allowing to (dynamically) attach and detach > controllers to/from namespaces, cf. NVMe spec 1.4 - section 6.1.4. > Since SPDK only supports the dynamic controller model a new > controller is allocated on every fabric connect command. > This allows to attach/detach controllers of a specific > host NQN to/from a namespace. A host can only perform > operations to an active namespace. Inactive namespaces can > be listed (not supported by SPDK) but no additional > information can be retrieved: > "Unless otherwise noted, specifying an inactive NSID in a > command that uses the Namespace Identifier (NSID) field shall > cause the controller to abort the command with status > Invalid Field in Command" - NVMe spec 1.4 - section 6.1.5 > Note that this patch does not implement the NVMe namespace > attachment command but allows to attach/detach via RPCs only. > To preserve current behavior all controllers are auto attached. > To not not auto attach controllers the nvmf_subsystem_add_ns > shall be called with "--no-auto-attach". We introduce two new > RPC calls: > - nvmf_ns_attach_ctrlr [--host ] > - nvmf_ns_detach_ctrlr [--host ] > If no host NQN is specified all controllers > (new and currently connected) will attach/detach to/from the > namespace specified. > The list in spdk_nvmf_ns is used to keep track of hostNQNs > which controllers should be attached on connect. > The active_ns array in spdk_nvmf_ctrlr is used for fast lookup > to check whether a NSID is active/inactive on command execution. > = > Thanks, > Jonas > _______________________________________________ > SPDK mailing list -- spdk(a)lists.01.org > To unsubscribe send an email to spdk-leave(a)lists.01.org --===============7623828359877740213==--