[dm-devel] no_path_retry configurable per device basis?

Bryn M. Reeves bmr at redhat.com
Wed May 13 18:08:30 UTC 2009


On Wed, 2009-05-13 at 19:35 +0200, Gianluca Cecchi wrote:
> Thanks for answering.
> why will I still see queue if_if_no_path?

Because that's how retries are implemented; we enable queuing in the
device-mapper target and setup a counter. Every time the I/O fails we
decrement the counter by one. When it hits zero queuing is disabled in
the kernel and the queued I/Os are permitted to fail. This is different
to "no_path_retry queue" or "features '1 queue_if_no_path'" because with
those options queuing will never be disabled. We keep the I/O in memory
indefinitely until the paths return (or the host is rebooted).

> Ok for the kb... it was the same I referred to in my qyestion... ;-)

Sorry, didn't spot that ;)

> And what about having a multipath.conf like this?
> 
> blacklist {
>       devnode "^cciss!c[0-9]d[0-9]*"
> }
> 

I'd put "no_path_retry queue" in your defaults block since you want it
for all but one device on this storage:

> defaults {
>       user_friendly_names yes
>       polling_interval 30
>       rr_min_io 100
> }

The device section must be inside a devices { /*...*/ } block or it
won't get parsed/recognised:

>       device {
>               vendor                  "IBM"
>               product                 "1750500"
>               getuid_callout          "/sbin/scsi_id -g -u -s /block/%n"
>               prio_callout            "/sbin/mpath_prio_alua %d"
>               hardware_handler        "0"
>               path_grouping_policy    group_by_prio
>               failback                immediate
>               rr_weight               uniform
>               path_checker            tur

Since you only want this behavior for one LUN, why not set it at the
multipath level?

>               no_path_retry 3
>       }

> multipaths {
>       multipath {
>               wwid                    3600507630efe0b0c0000000000000600
>               alias                   mpath0

You can probably put this line in your defaults block and only override
it for the LUN on which you want a max of three retries:

>               no_path_retry      queue
>       }
>       multipath {
>               wwid                    3600507630efe0b0c0000000000000601
>               alias                   mpath1
>               no_path_retry      queue
>       }
>      [snip]
>       multipath {

I'd probably put the "no_path_retry 3" here:

>               wwid                    3600507630efe0b0c0000000000000610
>               alias                   mpath6
>       }
>     [snip]
> }
> 
> what would I see with multipath -l?
> 
> As in defaults for this device there is
> features 1 queue_if_no_path
> and there is no other option configurable per "features" key in device
> section....
> what would be the effect?
> Or in other words, can I disable the "features" key for a device....?
> For example setting fir it the no_path_retry that semms applicable to
> the device section itself...?

You'll need to remove that features option from the device block as you
have above, or specify an empty features property like:

features        "0"

Regards,
Bryn.





More information about the dm-devel mailing list