Today I played around with ISCSI, MPIO and performed some tests. Some went as expected, someothers delivered results I cannot explain.

The Test-Environment was 2 virtual machines, named A and B. Both VMs have been assigned with 2 NICS, let's call them A-1, A-2, B-3 and B-4, to make it clear which Host was utilizing which IP Adresses.

I limited each Nic to 100 Mbps to have enough time to observe results.

On Host B, I created 2 virtual Disks, assigned them both to the same ISCSI-Target.

First Test: Single LU , Single Session

When I established the ISCSI Connection between A and B with a single session.

The result was as expected: about 12 MB/s Transfer Speed.

Second Test: Single LU , Two distinct Sessions

In this test, I created 2 ISCSI Sessions, namely (A-1, B-3) and (A-2, B-4)

The results were as expected:

  • Regular Transfer showed around 24 MB/s
  • Disabling any of the NICs during transfer on any device lowered the transferspeed to 12 MB/s again, while every vm only utilizes one nic for the remaining file part.

Third Test: Single LU , Four Sessions (Full Join)

After creating the sessions (A-1, B-3), (A-1, B-4), (A-2, B-3) and (A-2, B-4), the result was as expected:

  • Regular Transfer showed around 24 MB/s
  • Disabling any of the SENDING nics, leads to 100 Mbps on the remaining nic, and 50 Mbps on each receiving nic. -> 12 MB/s
  • Disabling any of the RECEIVING nics, leads to 100 Mbps on the remaining nic, and 50 MBps on each sending nic. -> 12 MB/s

Fourth Test: Two LU (same ISCSI-Target), Four Sessions (Full Join)

This is the test that failed - even before I could start to test the fail-over Szenarios.

  • Distinct File Transfer to any disk worked as expected. (200 Mbps)
  • However, when I initiated another Transfer to the SECOND LU, while the first Transfer was running - the first Transfer dropped to 0 Mbps until the second Transfer finished... ?

Is this by design, cause the session cannot hold 2 different conversations - or is this just some "strange" effect of running everything virtualized on the same Hyper-V host?

The Initiator:

enter image description here

The Target:

enter image description here

The Mentioned "copy-problem" with 2 concurrent Transfers (Screenshot was made with nics @ 200 Mbps - thought maybe 100 is just to Little for the tests):

enter image description here


You should the iSCSI target on the host, not the VM.

Why ? because by dooing so you scrap all the bonus the host give, like that;

If you are using Microsoft's iSCSI initiator within the virtual machine, you cannot perform snapshot operations on the virtual machine because it is not supported. For more information, see Running a Third-Party iSCSI initiator in the Virtual Machine in the SAN System Design and Deployment Guide for your version of ESX. (https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1009073)

or if you use vReplicator, it would be a problem (if you want to get the data outside of the san)

Edited: too long for a comment

  • Running everything virtualized was just for testing purpose. For production purpose every Vnic, Vswitch and VServer will be a physical one. However I'm not using ESX, but Hyperv. – dognose Feb 29 '16 at 0:54
  • @dognose Same fact apply on hyperv for the snapshot, but if for testing its all right! – yagmoth555 Feb 29 '16 at 0:57
  • I'm aware of this. But this was just a "lab" Setup. But thanks for pointing this out anyway. – dognose Feb 29 '16 at 0:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.