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

Hannes Reinecke hare at suse.de
Thu Jan 25 10:37:58 PST 2018


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)



More information about the Linux-nvme mailing list