linux-nvme.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [LSF/MM TOPIC] nvme multipath parity with dm-multipath
@ 2018-01-25 18:37 Hannes Reinecke
  2018-01-26 14:09 ` Christoph Hellwig
  0 siblings, 1 reply; 2+ messages in thread
From: Hannes Reinecke @ 2018-01-25 18:37 UTC (permalink / raw)


Hi all,

Native NVMe multipathing is missing some features which are required to
achieve full parity with dm-multipath:

- Auto discovery (which already will be discussed in another topic)
- Failover handling in an all-paths-down scenario: dm-multiath goes to
  great lengths to ensure that failover _can_ happen; with nvme native
  multipathing this is only guaranteed if the reconnection timer is
  still running. Once that expired and the controller is being torn down
  we have to use userspace interaction to get the connection back, which
  is not going to work with an all-paths-down scenario
- The infamous queue_if_no_path setting is missing. Currently we will
  hold on to every I/O until the connection is re-established, ie
  the equivalent of queue_if_no_path enabled with dm-multipath.
  However, for clustered environs we need to transport the I/O error
  back to the application so that the cluster can failover to another
  node.
- FC has a fast_io_fail_tmo, which allows the transport to terminate
  the I/O earlier; we need to check if a similar mechanism is required
  for nvme.

I would like to discuss how these points can be addressed to achieve
full parity with dm-multipathing.

Cheers,

Hannes
-- 
Dr. Hannes Reinecke		   Teamlead Storage & Networking
hare at suse.de			               +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 N?rnberg
GF: F. Imend?rffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG N?rnberg)

^ permalink raw reply	[flat|nested] 2+ messages in thread

* [LSF/MM TOPIC] nvme multipath parity with dm-multipath
  2018-01-25 18:37 [LSF/MM TOPIC] nvme multipath parity with dm-multipath Hannes Reinecke
@ 2018-01-26 14:09 ` Christoph Hellwig
  0 siblings, 0 replies; 2+ messages in thread
From: Christoph Hellwig @ 2018-01-26 14:09 UTC (permalink / raw)


On Thu, Jan 25, 2018@07:37:58PM +0100, Hannes Reinecke wrote:
> Hi all,
> 
> Native NVMe multipathing is missing some features which are required to
> achieve full parity with dm-multipath:
> 
> - Auto discovery (which already will be discussed in another topic)

Doesn't sound like a multi-path topic to me.

> - Failover handling in an all-paths-down scenario: dm-multiath goes to
>   great lengths to ensure that failover _can_ happen; with nvme native
>   multipathing this is only guaranteed if the reconnection timer is
>   still running. Once that expired and the controller is being torn down
>   we have to use userspace interaction to get the connection back, which
>   is not going to work with an all-paths-down scenario

So extend the timer to infinite if you worry about userspace
interactions.

> - The infamous queue_if_no_path setting is missing. Currently we will
>   hold on to every I/O until the connection is re-established, ie
>   the equivalent of queue_if_no_path enabled with dm-multipath.
>   However, for clustered environs we need to transport the I/O error
>   back to the application so that the cluster can failover to another
>   node.

Please send a patch.

> - FC has a fast_io_fail_tmo, which allows the transport to terminate
>   the I/O earlier; we need to check if a similar mechanism is required
>   for nvme.

I already asked for it to be made generic.  Help on implementing it
is welcome.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2018-01-26 14:09 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-01-25 18:37 [LSF/MM TOPIC] nvme multipath parity with dm-multipath Hannes Reinecke
2018-01-26 14:09 ` Christoph Hellwig

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).