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:
The Target:
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):
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