On 08/03/2010 09:12 AM, Frank Jansen wrote:
Hi,

During the testing that I am doing, I run into a bottleneck when I run
I/O to more than 1 device at the same time.

In my current test configuration, I have the following setup:

Target server has MegaRaid with 2 RAID 1E devices, which are mapped
through lvm into large and small LUNs. 4 LUNs are made available for
each RAID 1E devices through 2 instances of tgtd.  Small LUNs are on
control-port 0 and large LUNs on control-port 1, which are mapped to
separate nic ports (10GbE each).

Initiator server had no problem discovery each of the portals and is
running I/O to 1 large LUN and 1 small LUN, which should separate all
traffic.  I'm using iozone to generate the traffic on both LUNs.

What I am seeing is that I/O starts on 1 LUN and appears to wait until
the data file has been completely written and read on that LUN before
starting on the next.  Is it possible that this is really happening in
this manner?


It is possible. It depends on the order that the block and scsi layer sends the IO. If the device and session q depth is 16 and the block layer sends 16 requests then it will all go to the one device and one device will sit idle until IO starts to complete. There scsi layer will check if devices could be starved and so when those commands complete it will make sure the next device is used first.

You can either:
1. Make sure the device's queue depth is lower than the session q depth so that IO can be sent to all devices at the same time.
2. Do a target per lun.

--
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/open-iscsi?hl=en.

Reply via email to