使用标准千兆网络的 iSCSI 传输速率

使用标准千兆网络的 iSCSI 传输速率

我们刚刚购买了一台戴尔存储服务器,该服务器配有 (12) 个运行 RAID 10 的 7200 RPM SATA 驱动器和 (4) 个千兆位网络接口卡。此外,它还配有一个 PERC H700 控制器卡,板载缓存为 512MB。我们将把虚拟机管理程序连接到戴尔服务器(块级存储),用于存储虚拟机。

我们的问题是,使用 iSCSI 以及每个虚拟机管理程序和戴尔存储服务器之间的单个千兆位连接,每个虚拟机管理程序的最大理论传输速率是否为每秒 1000 兆位 / 8 = 125 兆字节?或者,我完全错了,iSCSI 进行了某种压缩,能够实现更高的 I/O 吞吐率。

每秒 125 兆字节实际上有点慢,因为我们有 12 个主轴并运行 RAID 10。除了光纤通道之外,还有哪些替代方案可以消除网络瓶颈?我们知道启用巨型帧,并将尝试其他任何方法。使用每个虚拟机管理程序的单个千兆位连接,我们应该期望什么样的性能?

答案1

我认为你能突破 100MB/s 就算走运了。理论上,你可以传输 1000Mbps 或 125MB/s,但由于存在各种开销层(以太网和 IP 报头、iSCSI 本身以及数据包之间需要花费一些时间),你永远无法真正实现这一点。

另外,不要忘记,NAS 盒中的数据流速度为 125MB/s(或更低);这必须由所有 VM 服务器共享。因此,不要指望每个 VM 服务器都能达到这个速度。

为了加快速度,要么使用 10Gbps 网络(不便宜),要么使用以太网通道/通道绑定/LACP/无论您的特定供应商喜欢如何称呼它,并将多个 1Gbps 链路粘合在一起以形成更大的管道。如果这不是一个选项(我见过的 1RU 服务器有一个扩展端口),那么您可能需要考虑替代协议——就我个人而言,我认为如果您正在寻找一个好的 SAN(而不是 NAS)协议,那么以太网上的 ATA 是一个被忽视的选择。

另外,请注意,7200RPM SATA 驱动器的性能确实很差,尤其是在随机 I/O 上,而且可能更重要的是,在错误处理方面往往会出现相当烦人的问题(即使是所谓的“企业”驱动器在高性能 SAN 环境中也不是我所说的“足够好”的)。我管理过一个使用此类驱动器的 SAN,坦率地说,如果我要再次这样做,我会花额外的钱购买不错的驱动器。

答案2

iSCSI 没有压缩,当考虑到(以太网、IP 和 iSCSI)协议开销时,预期的传输速率会更低。

增加这一点的最简单方法可能是在存储服务器和虚拟机管理程序中放置更多的 NIC,并使用端口聚合。

答案3

这是一个老问题,但这是详细信息。

1000Mbit/s 是最大比特率。您可能认为这因此 = 125MBytes/s。
事实并非如此。您会看到 1000Mbit/s 是链路级别的物理比特率。首先,存在协议开销。TCP + IP。

拥有 TCP/IP 后,实际可用带宽(1000Mbit/s)略低于 95%。基于 1500 字节 MTU,无 VLAN 和 IPv4。

看:协议开销

现在,添加 iSCSI。看来 iSCSI 也添加了 48 字节标头。
因此,对于 MTU 1500,剩下的是 1412 (1500-40-48) 字节。因此,我们的吞吐量将下降到最大值的 ~91%。((1500-88)/(38+1500))

因此,如果不使用巨型帧,则绝对最大值预计为 114MB/s。这假设传输完美,整个帧都已填满且没有丢包。

实际上,我希望您能降低到该水平,尤其是当其他用户正在访问目标机器时。

笔记:

  • iSCSI 不添加任何压缩。
  • LACP 可能会有很大帮助。
  • 启用巨型帧可能会有所帮助,因为它可以降低与实际数据相比的帧/开销。

答案4

LACP 不会有帮助。当多个 ESX 主机访问一个 iSCSI 目标时,它会很有用,但它不会为一对一的情况增加带宽。MPIO 是增加带宽的唯一方法。

相关内容