gmultipath HA over iscsi/iser

Max Gurtovoy maxg at mellanox.com
Sun Jun 14 21:50:37 UTC 2015


Hello,
lately I was testing HA using gmultipath utility over iSCSI/iSER devices.
I'm working on 11-current code base.
I created 1 LUN on the target side and connected via 2 different 
physical ports from the initiator side.
On the initiator side I see see /dev/da0 and /dev/da1.
I created multipath device using:
gmultipath label dm0 /dev/da0 /dev/da1.
Now I have new device /dev/multipath/dm0.
I set kern.iscsi.fail_on_disconnection=1 (to fail IO fast).

Issue 1:
-------------
I can't run simple fio/dd traffice over /dev/da0 nor /dev/da1.
The only traffic that possible is using the multipath device dm0.
Is this by design ?
In the linux implementation we can run traffic on both block devices and 
multipath devices.

Issue 2:
--------------
I run some fio traffic utility over multipath device dm0 on initiator 
side with port toggling in a loop

Port 1 down --> sleep 2 mins (iSCSI/ISER device reconnecting meanwhile 
with no success) --> port 1 up --> sleep 5 mins (iSCSI/ISER device 
reconnecting successecfully)
Port 2 down --> sleep 2 mins (iSCSI/ISER device reconnecting meanwhile 
with no success) --> port 2 up --> sleep 5 mins (iSCSI/ISER device 
reconnecting successecfully)

The expected result is that when the port N is down than the traffic 
moves to the available port and continue succesfully.
I run this test for many hours and traffic FAILED (even though there was 
at least 1 suitable path between initiator and target).

log:

# gmultipath status

Name   Status  Components

multipath/dm_tcp  OPTIMAL  da0 (ACTIVE)

da1 (PASSIVE)

multipath/dm_iser  OPTIMAL  da2 (ACTIVE)

da3 (PASSIVE)


# fio ..... (over /dev/multipath/dm_iser or /dev/multipath/dm_tcp)


fio: this platform does not support process shared mutexes, forcing use 
of threads. Use the 'thread' option to get rid of this warning.

task1: (g=0): rw=randrw, bs=4K-4K/4K-4K/4K-4K, ioengine=psync, iodepth=8

...

task1: (g=0): rw=randrw, bs=4K-4K/4K-4K/4K-4K, ioengine=psync, iodepth=8

fio-2.1.3

Starting 8 threads

fio: pid=101071, err=6/file:filesetup.c:575, 
func=open(/dev/multipath/dm_tcp),error=Device not configured

task1: (groupid=0, jobs=8): err= 6 (file:filesetup.c:575, 
func=open(/dev/multipath/dm_tcp), error=Device not configured): 
pid=101071: Thu Jun 11 17:25:47 2015

   read : io=296400MB, bw=32122KB/s, iops=8030, runt=9448911msec

     clat (usec): min=131, max=5541.8K, avg=504.40, stdev=5660.23

      lat (usec): min=132, max=5541.8K, avg=504.55, stdev=5660.23

     clat percentiles (usec):

      |  1.00th=[  251], 5.00th=[  298], 10.00th=[  330], 20.00th=[  370],

      | 30.00th=[  406], 40.00th=[  446], 50.00th=[  478], 60.00th=[  510],

      | 70.00th=[  540], 80.00th=[ 580], 90.00th=[  644], 95.00th=[  700],

      | 99.00th=[ 1448], 99.50th=[ 1704], 99.90th=[ 1976], 99.95th=[ 2064],

      | 99.99th=[ 2256]

     bw (KB  /s): min= 2, max= 5576, per=12.64%, avg=4060.97, stdev=352.37

   write: io=295596MB, bw=32034KB/s, iops=8008, runt=9448911msec

     clat (usec): min=125, max=5541.8K, avg=490.13, stdev=5143.96

      lat (usec): min=125, max=5541.8K, avg=490.41, stdev=5143.96

     clat percentiles (usec):

      |  1.00th=[  239], 5.00th=[  282], 10.00th=[  310], 20.00th=[  354],

      | 30.00th=[  390], 40.00th=[  426], 50.00th=[  466], 60.00th=[  502],

      | 70.00th=[  532], 80.00th=[  572], 90.00th=[  628], 95.00th=[  692],

      | 99.00th=[ 1432], 99.50th=[ 1688], 99.90th=[ 1960], 99.95th=[ 2040],

      | 99.99th=[ 2256]

     bw (KB  /s): min= 3, max= 5512, per=12.64%, avg=4049.74, stdev=355.11

     lat (usec) : 250=1.29%, 500=56.84%, 750=38.78%, 1000=0.94%

     lat (msec) : 2=2.08%, 4=0.07%, 10=0.01%, 20=0.01%, 50=0.01%

     lat (msec) : 100=0.01%, >=2000=0.01%

   cpu : usr=0.61%, sys=4.33%, ctx=151634083, majf=0, minf=3

   IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, 
 >=64=0.0%

      submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, 
 >=64=0.0%

      complete  : 0=0.1%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, 
 >=64=0.0%

      issued    : total=r=75878522/w=75672554/d=0, short=r=0/w=0/d=0

Run status group 0 (all jobs):

    READ: io=296400MB, aggrb=32121KB/s, minb=32121KB/s, maxb=32121KB/s, 
mint=9448911msec, maxt=9448911msec

   WRITE: io=295596MB, aggrb=32034KB/s, minb=32034KB/s, maxb=32034KB/s, 
mint=9448911msec, maxt=9448911msec


# gmultipath status

Name    Status  Components

multipath/dm_tcp  DEGRADED  da1 (ACTIVE)

multipath/dm_iser  DEGRADED  da3 (ACTIVE)


We can see that there is Active paths to multipath device but still 
traffice failed.
Any suggestions ? Anyone saw this before ?

Thanks,
Max Gurtovoy.
Mellanox Technologies.









More information about the freebsd-scsi mailing list