[ovirt-users] VM has been paused due to storage I/O problem

Benjamin Marzinski bmarzins at redhat.com
Fri Feb 3 17:20:58 UTC 2017


On Fri, Feb 03, 2017 at 12:31:49AM +0100, Gianluca Cecchi wrote:
>    On Thu, Feb 2, 2017 at 10:53 PM, Benjamin Marzinski
>    <[1]bmarzins at redhat.com> wrote:
> 
>      > > I'm trying to mitigate inserting a timeout for my SAN devices but
>      I'm not
>      > > sure of its effectiveness as CentOS 7 behavior  of "multipathd -k"
>      and then
>      > > "show config" seems different from CentOS 6.x
>      > > In fact my attempt for multipath.conf is this
> 
>      There was a significant change in how multipath deals with merging
>      device configurations between RHEL6 and RHEL7.  The short answer is, as
>      long as you copy the entire existing configuration, and just change what
>      you want changed (like you did), you can ignore the change.  Also,
>      multipath doesn't care if you quote numbers.
> 
>      If you want to verify that no_path_retry is being set as intented, you
>      can run:
> 
>      # multipath -r -v3 | grep no_path_retry
> 
>    Hi Benjamin,
>    thank you very much for the explanations, especially the long one ;-)
>    I tried and confirmed that I has no_path_retry = 4 as expected
>    The regex matching is only for merge, correct?

No. Both RHEL6 and RHEL7 use regex matching to determine which
device configuration to use with your device, otherwise

product "^1814"

would never match any device, since there is no array with a literal
product string of "^1814". RHEL7 also uses the same regex matching to
determine which builtin device configuration a user-supplied device
configuration should modify. RHEL6 uses string matching for this. 

>    So in your example if in RH EL 7 I put this
>            device {
>                    vendor "IBM"
>                    product "^1814"
>                    no_path_retry 12
>            }
>    It would not match for merging, but it would match for applying to my
>    device (because it is put at the end of config read backwards).

correct.  The confusing point is that in the merging case, "^1814" in
the user-supplied configuration is being treaded as a string that needs
to regex match the regular expression "^1814" in the builtin
configuration. These don't match. For matching the device configuration
to the device, "^1814" in the user-supplied configuration is being
treated as a regular expression that needs to regex match the actual
product string of the device.

>    And it would apply only the no_path_retry setting, while all other ones
>    would not be picked from builtin configuration for device, but from
>    defaults in general.
>    So for example it would set path_checker not this way:
>    path_checker "rdac"
>    but this way:
>    path_checker "directio"
>    that is default..
>    correct?

exactly.

-Ben
 
> References
> 
>    Visible links
>    1. mailto:bmarzins at redhat.com


More information about the Users mailing list