今天我玩了一下 ISCSI、MPIO 并进行了一些测试。有些测试结果符合预期,有些测试结果我无法解释。
测试环境是 2 台虚拟机,分别名为A
和B
。两台虚拟机都分配有 2 个 NICS,我们将它们称为、 和A-1
,A-2
以明确哪台主机使用了哪些 IP 地址。B-3
B-4
我将每个网卡限制为 100 Mbps,以便有足够的时间观察结果。
在主机上B
,我创建了 2 个虚拟磁盘,并将它们分配给同一个 ISCSI 目标。
首次测试:单逻辑单元,单会话
A
当我在和之间建立 ISCSI 连接时,B
有一个单个会话。
结果符合预期:传输速度约为12 MB/s。
第二次测试:单个逻辑单元,两个不同的会话
在本次测试中,我创建了 2 个 ISCSI 会话,分别是(A-1
,B-3
)和(A-2
,B-4
)
结果正如预期:
- 常规传输速度约为 24 MB/s
- 在任何设备上传输时禁用任何 NIC 都会再次将传输速度降低到 12 MB/s,而每个虚拟机仅为剩余文件部分使用一个 NIC。
第三次测试:单 LU,四会话(Full Join)
创建会话(A-1
,B-3
)、(A-1
,B-4
)、(A-2
,B-3
)和(A-2
,B-4
)后,结果符合预期:
- 常规传输速度约为 24 MB/s
- 禁用任何发送网卡,会导致剩余网卡的速度为 100 Mbps,每个接收网卡的速度为 50 Mbps。-> 12 MB/s
- 禁用任何接收网卡,会导致剩余网卡的速度为 100 Mbps,每个发送网卡的速度为 50 MBps。-> 12 MB/s
第四次测试:两个 LU(相同的 ISCSI-Target),四个会话(Full Join)
这是失败的测试 – 甚至在我开始测试故障转移场景之前。
- 不同文件传输到任意磁盘均按预期工作。(200 Mbps)
- 但是,当我启动另一个到第二个 LU 的传输时,当第一个传输正在运行时 - 第一个传输下降到 0 Mbps 直到第二个传输完成......?
这是设计使然,导致会话无法容纳 2 个不同的对话 - 或者这只是在同一个 Hyper-V 主机上运行所有内容虚拟化的一些“奇怪”的效果?
发起者:
目标:
提到的 2 个并发传输的“复制问题”(屏幕截图是使用 nics @ 200 Mbps 制作的 - 认为 100 对于测试来说可能太小了):
答案1
您应该在主机上而不是虚拟机上设置 iSCSI 目标。
为什么?因为这样做的话,你就等于取消了主办方给予的所有奖金;
如果您在虚拟机中使用 Microsoft 的 iSCSI 启动器,则无法在虚拟机上执行快照操作,因为它不受支持。有关详细信息,请参见适用于您的 ESX 版本的《SAN 系统设计和部署指南》中的“在虚拟机中运行第三方 iSCSI 启动器”。(https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1009073)
或者如果你使用 vReplicator,那就会有问题(如果你想获取 san 之外的数据)
已编辑:评论太长