Red Hat Bugzilla – Bug 1593459
RFE: Make multipath able to blacklist by protocol/transport
Last modified: 2018-10-30 07:28:14 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)" }
(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?
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.
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
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.
Thanks Ben, it makes sense. I hope that all this info will be in multipath.conf manual.
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
Ben, Two questions please: Could this be backported to RHEL 7.5? Could this be pushed to Fedora 28?
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?
*** Bug 1600672 has been marked as a duplicate of this bug. ***
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