Redesigning multipath

This proposal has been rejected.


One Line Summary

Redesigning multipath taking into account modern kernel features and new technologies


Multipath has evolved over the years, from a simple daemon to a complex multi-threaded program interacting closely with in-kernel modules like device-mapper and SCSI device handlers.

However, due to the inherent design of the multipath daemon there are quite some scalability issues, which are hard to solve with the current code base.
At the same time, most problems the current implementation tries to solve have now been standardized:

  • Topology detection is not basically done via ALUA
  • Device identification has been standardized

So with modern kernels multipath can leverage the already provided information, dropping or obsoleting quite some complexity from the daemon.

And with NVMe the question is if the current multipath implementation is actually required, or shouldn’t be obsoleted anyway.

In this talk I will be giving an overview on how multipath can be redesigned, partially relying on existing features and partially implement new functionality into the kernel.
Main goal here is to have a usable multipath setup where the daemon will only be invoked for topology changes, but doesn’t need to run for normal operations.

I will also discuss a possible long-term goal of re-implementing multipath inside the block-layer, obsoleting the need for a device-mapper setup.


device-mapper, udev, multipath, nvme


  • Hannes Reinecke

    SUSE Linux GmbH


    Studied Physics with main focus image processing in Heidelberg from 1990 until 1997, followed by a PhD in Edinburgh’s Heriot-Watt University in 2000. Worked as sysadmin during the studies, mainly in the Mathematical Institute in Heidelberg. Started at SUSE doing architecture maintenance on Mainframe. Now working as Teamlead at SUSE Labs for storage and network.
    Principal contact point for storage related issues on SLES.

    Linux addict since the earliest days (0.95); various patches to get Linux up and running. Main points of interest are storage, (i)SCSI, FC/FCoE, and multipathing. And NVMe, but only if it’s over Fabrics. Plus S/390, naturally.

    I’m active on the Linux SCSI mailing list, reviewing patches and dusting out murky corners in the SCSI stack.