All of lore.kernel.org
 help / color / mirror / Atom feed
From: Randy Jennings <randyj@purestorage.com>
To: Christoph Hellwig <hch@lst.de>
Cc: Christoph Hellwig <hch@lst.de>, Keith Busch <kbusch@kernel.org>,
	linux-nvme@lists.infradead.org,
	Prabhath Sajeepa <psajeepa@purestorage.com>,
	Jens Axboe <axboe@fb.com>, Sagi Grimberg <sagi@grimberg.me>,
	Uday Shankar <ushankar@purestorage.com>
Subject: Re: Native multipath across multiple subsystem NQNs
Date: Thu, 24 Feb 2022 17:53:06 -0700	[thread overview]
Message-ID: <20220225005306.GA904231@dev-randyj2.dev.purestorage.com> (raw)
In-Reply-To: <20220225001547.GA3454995@dev-ushankar.dev.purestorage.com>

> The fact that NVMe with ANA required namespaces
> to be be attached to the same subsystem is good and important.
> TPE 4034 is retrograde and completely broken in this respect and should
> have never been ratifier.  Please fix your storage system to export
> virtual subsystems like everyone else and don't break the nice NVMe
> architecture.
Supposing we did implement virtual subsystems to handle exposing
namespaces on multiple arrays.

In addition to other considerations, migrating a namespace with hot data
from a different storage vendor array nondisruptive to client i/o would
be difficult to do without having a namespace exist under multiple NQNs.
One approach that has been used for SCSI is by multipathing to both
targets & a proxy mirroring writes; on cut-over, the other path
disconnects.  If the filehandle has to change, that is disruptive to the
client software.

Unifying different storage arrays behind the same NQN/virtual subsystem
requires coordination of nvme ctrl_ids at least, and doing that between
different storage vendor arrays is unlikely.  Having a mechanism to
migrate between different JBOF devices non-disruptively would be helpful
regardless of the source/destination vendors.  Such devices will
probably not have the option of virtual subsystems.

Additionally, the granularity at which NQNs/subsystems are exposed to
hosts affects how many connections the host creates with the controller.
Each connection has a cost in hardware & software.

In other words, even with implementing virtual subsystems, we still have
use for non-disruptively moving a namespace between subsystems.  How
will this usecase be supported on Linux?

Sincerely,
Randy Jennings


  reply	other threads:[~2022-02-25  0:53 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-11 22:07 Native multipath across multiple subsystem NQNs Uday Shankar
2022-02-12  6:34 ` Christoph Hellwig
2022-02-12 21:22   ` Keith Busch
2022-02-14  8:12     ` Christoph Hellwig
2022-02-25  0:15       ` Uday Shankar
2022-02-25  0:53         ` Randy Jennings [this message]
2022-03-01 11:08           ` Christoph Hellwig
     [not found]             ` <2A0F911A-7900-401F-B75B-7D0C2866C33A@netapp.com>
2022-03-03 10:41               ` Christoph Hellwig
2022-03-03 11:04             ` Adurthi, Prashanth
2022-03-03 11:13               ` Christoph Hellwig

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=20220225005306.GA904231@dev-randyj2.dev.purestorage.com \
    --to=randyj@purestorage.com \
    --cc=axboe@fb.com \
    --cc=hch@lst.de \
    --cc=kbusch@kernel.org \
    --cc=linux-nvme@lists.infradead.org \
    --cc=psajeepa@purestorage.com \
    --cc=sagi@grimberg.me \
    --cc=ushankar@purestorage.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.