[dm-devel] Failover between two paths to one LU doesn't work onlinux-iscsi

Michael Lyulko michaell at voltaire.com
Wed Oct 18 18:55:24 UTC 2006


David Wysochanski wrote:
> On Thu, 2006-10-12 at 20:49 +0200, Michael Lyulko wrote:
>   
>> Dave Wysochanski wrote:
>>     
>>>> I ran iozone benchmark and manually failed one of two paths. There was 
>>>> no failover to second path.
>>>> The iSCSI initiator retried to reconnect to the first path - 
>>>> unsuccessfully. When I restored the first
>>>> path - the initiator reconnected to the target via the first path.
>>>>
>>>> Thanks!
>>>>
>>>> ------------- INFO -------------
>>>> Versions:
>>>> device-mapper-1.01.01-1.6
>>>> multipath-tools-0.4.5-0.11
>>>>
>>>> Machine:
>>>> 2.6.5-7.244-smp; x86_64; SLES9 sp3
>>>>
>>>>     
>>>>         
>>> Did you set ConnFailTimeout to a non-zero value?  This sounds like it's
>>> still at default (reconnect indefinately).  You also need to set the
>>> Multipath variable, but it sounds like you may have done that already.
>>>
>>>
>>>
>>> --
>>> dm-devel mailing list
>>> dm-devel at redhat.com
>>> https://www.redhat.com/mailman/listinfo/dm-devel
>>>   
>>>       
>> Thanks! Now I set ConnFailTimeout=30 and when one of the paths failed a 
>> fail-over to
>> second path occurred (I had Multipath=portal). But after the first path 
>> is back (iSCSI session
>> is established and I can read from the device) multipath -l shows:
>> <snip>
>> \_ round-robin 0 [enabled]
>>  \_ 0:0:6:0 sda 8:0  [failed][ready]            //   still "failed" - 
>> Michael
>> \_ round-robin 0 [active]
>>  \_ 0:1:6:0 sdb 8:16 [active][ready]
>>
>> 1. How can I configure the DM to automatically detect that a path is 
>> active again?
>>     
>
> you probably want "failback immediate"
> there's also been some bugs with failback - not sure about your version
> - your mileage may vary
>
>   
"failback immediate" didn't help on both SLES9 sp3 and SLES10. The 
device mapper doesn't
rescan automatically the paths, so when the failed path is back to life, 
it is still "failed"
in multipath -l output.
Issuing "multipath -p failover" helps to return the path back to 
"active". I need an automatic "rescan".
>> 2. I don't have a multipath.conf in /etc. Is 
>> /usr/share/doc/packages/multipath-tools/
>> the right place to take it from?
>>     
>
> Yes, you can start with this.  I think there may be a problem with some
> of the examples - make sure the "blacklist" keyword is correct - at some
> point it changed from "devnode_blacklist" to "blacklist" (not sure which
> one is in your version but example may be wrong).
>
>   
>> 3. What params in multipath.conf are a must in this case of fail-over 
>> setup regarding question no.1?
>>
>>     
>
> You might also want to look at no_path_retry and/or queue_if_no_path
> options.
>   
SLES9 sp3: both parameters are not in default multipath.conf, so I 
suppose they are not supported yet in this distribution.
SLES10:   no_path_retry doesn't help. queue_if_no_path is not in the 
default multipath.conf.

Here is my configuration:

SLES9 sp3: multipath.conf:
defaults {
        failback        immediate
}

SLES10: multipath.conf:
defaults {
        polling_interval 10
        failback        immediate
        no_path_retry  fail
}


Here is "multipath -l" output during the test:

SLES9 sp3:
before the path failed:
# multipath -l
dm names   N
dm table 3600d02300063ccc60000006215c0b501  N
dm table 3600d02300063ccc60000006215c0b501  N
dm status 3600d02300063ccc60000006215c0b501  N
dm info 3600d02300063ccc60000006215c0b501  O
3600d02300063ccc60000006215c0b501
[size=87 GB][features="0"][hwhandler="0"]
\_ round-robin 0 [active]
 \_ 0:0:6:0 sda 8:0  [active][ready]
\_ round-robin 0 [enabled]
 \_ 0:1:6:0 sdb 8:16 [active][ready]


after the path is back again:
# multipath -l
dm names   N
dm table 3600d02300063ccc60000006215c0b501  N
dm table 3600d02300063ccc60000006215c0b501  N
dm status 3600d02300063ccc60000006215c0b501  N
dm info 3600d02300063ccc60000006215c0b501  O
3600d02300063ccc60000006215c0b501
[size=87 GB][features="0"][hwhandler="0"]
\_ round-robin 0 [enabled]
 \_ 0:0:6:0 sda 8:0  [failed][ready]
\_ round-robin 0 [active]
 \_ 0:1:6:0 sdb 8:16 [active][ready]


SLES10:
before the path failed:
# multipath -l
320000004cffb0995SEAGATE,ST336607FC
[size=34G][features=0][hwhandler=0]
\_ round-robin 0 [prio=0][active]
 \_ 0:0:0:0 sda 8:0   [active][undef]
\_ round-robin 0 [prio=0][enabled]
 \_ 1:0:0:0 sdb 8:16  [active][undef]
#

after the path is back again:
# multipath -l
320000004cffb0995SEAGATE,ST336607FC
[size=34G][features=0][hwhandler=0]
\_ round-robin 0 [prio=0][enabled]
 \_ 0:0:0:0 sda 8:0   [failed][undef]
\_ round-robin 0 [prio=0][active]
 \_ 1:0:0:0 sdb 8:16  [active][undef]
#












More information about the dm-devel mailing list