[LSF/MM TOPIC] nvme multipath parity with dm-multipath

Christoph Hellwig hch at infradead.org
Fri Jan 26 06:09:40 PST 2018


On Thu, Jan 25, 2018 at 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.



More information about the Linux-nvme mailing list