Bugzilla will be upgraded to version 5.0 on a still to be determined date in the near future. The original upgrade date has been delayed.
Bug 1593459 - RFE: Make multipath able to blacklist by protocol/transport
RFE: Make multipath able to blacklist by protocol/transport
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: device-mapper-multipath (Show other bugs)
7.6
Unspecified Unspecified
high Severity unspecified
: rc
: ---
Assigned To: Ben Marzinski
Lin Li
Marek Suchanek
: FutureFeature, ZStream
: 1600672 (view as bug list)
Depends On:
Blocks: 1016535 1600672 1607749
  Show dependency treegraph
 
Reported: 2018-06-20 18:00 EDT by Ben Marzinski
Modified: 2018-10-30 07:28 EDT (History)
10 users (show)

See Also:
Fixed In Version: device-mapper-multipath-0.4.9-121.el7
Doc Type: Release Note
Doc Text:
DM Multipath now enables blacklisting or whitelisting paths by protocol Device Mapper Multipath (DM Multipath) now supports the "protocol" configuration option in the `blacklist` and `blacklist_exceptions` configuration sections. This enables you to blacklist or whitelist paths based on the protocol they use, such as `scsi` or `nvme`. For SCSI devices, you can also specify the transport: for example `scsi:fcp` or `scsi:iscsi`.
Story Points: ---
Clone Of:
: 1607749 (view as bug list)
Environment:
Last Closed: 2018-10-30 07:27:36 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)


External Trackers
Tracker ID Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2018:3236 None None None 2018-10-30 07:28 EDT

  None (edit)
Description Ben Marzinski 2018-06-20 18:00:43 EDT
Description of problem:
Right now, there is no way to easily tell multipath that you want to blacklist or whitelist devices based on what protocol and transport method that they are using. You can't easily (for instance) blacklist all devices except scsi devices using Fibre Channel or iSCSI. To solve this multipath needs a new blacklist/blacklist_exceptions type, "protocol". This will allow you to do things like

blacklist {
        protocol ".*"
}

blacklist_exceptions {
        protocol "(scsi:fcp|scsi:iscsi)"
}
Comment 2 Nir Soffer 2018-06-20 18:30:11 EDT
(In reply to Ben Marzinski from comment #0)
> blacklist_exceptions {
>         protocol "(scsi:fcp|scsi:iscsi)"
> }

Ben, can you explain why "scsi:fcp" or "scsi:iscsi" is needed, instead of "fcp"
os "iscsi"?

What is the advantage of the longer version?
Comment 3 Ben Marzinski 2018-06-20 19:12:33 EDT
You can also blacklist other protocols like "nvme" or "dasd". Right now, only "scsi" has multiple transport methods, but in the future multipath will likely need to distinguish between different "nvme" transports as well. This makes it easier to specify exactly what you want to blacklist.  It also maps onto how multipath internally distinguishes between device types.
Comment 4 Ben Marzinski 2018-06-20 19:23:32 EDT
The full list of protocol/transports that multipath recognizes and are available for blacklisting is:

scsi:fcp
scsi:spi
scsi:ssa
scsi:sbp
scsi:srp
scsi:iscsi
scsi:sas
scsi:adt
scsi:ata
ccw
cciss
nvme
Comment 5 Ben Marzinski 2018-06-20 19:29:19 EDT
oops. There's also "scsi:unspec" for scsi devices that don't have a detected transport (like scsi_debug) and "undef" for devices that don't have a detected protocol at all. Mostly, these are already caught by devnode or property blacklisting, but it is valid to run multipath on devices that don't have a detected procotol. Multipath just doesn't do any protocol specific actions on them.
Comment 6 Nir Soffer 2018-06-21 11:14:12 EDT
Thanks Ben, it makes sense. I hope that all this info will be in multipath.conf
manual.
Comment 7 Ben Marzinski 2018-06-22 14:00:45 EDT
Hopefully, this should work for you. Here's the information from the manpage:

blacklist section:

       protocol         Regular expression of the protocol to be excluded. See
                        below for a list of recognized protocols


       The  protocol strings that multipath recognizes are scsi:fcp, scsi:spi,
       scsi:ssa, scsi:sbp, scsi:srp, scsi:iscsi, scsi:sas, scsi:adt, scsi:ata,
       scsi:unspec,  ccw, cciss, nvme, and undef.  The protocol that a path is
       using can be viewed by running 'multipathd show paths format "%d %P"'


blacklist_exceptions section:

       protocol         Regular expression of the protocol to be  whitelisted.
                        See  the  blacklist  section  for a list of recognized
                        protocols
Comment 9 Ala Hino 2018-07-09 01:43:05 EDT
Ben,

Two questions please:
Could this be backported to RHEL 7.5?
Could this be pushed to Fedora 28?
Comment 10 Ben Marzinski 2018-07-12 14:07:38 EDT
Yeah. I think so. The change is pretty self contained. Obviously, the 7.5 change would need to get approved as a zstream. Could you open bugzillas for this?
Comment 12 Steve Almy 2018-07-23 12:48:28 EDT
*** Bug 1600672 has been marked as a duplicate of this bug. ***
Comment 26 errata-xmlrpc 2018-10-30 07:27:36 EDT
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2018:3236

Note You need to log in before you can comment on or make changes to this bug.