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

我们刚刚购买了戴尔(12)7200 RPM SATA驱动器,运行RAID 10和(4)千兆networking接口卡的戴尔存储服务器。 另外还有一个PERC H700控制器卡,带有512MB的板载caching。 我们将虚拟机pipe理程序附加到将存储虚拟机的dell服务器(块级存储)。

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

实际上每秒125兆字节实际上有点慢,因为我们有12个主轴并运行着RAID 10。除了光纤通道来消除networking瓶颈之外,还有什么其他的select? 我们知道启用巨型帧,并会给出一个尝试,其他任何东西。 对于每个虚拟机pipe理程序使用一个千兆位连接,我们应该期望什么样的性能?

我会说你会很幸运的打破100MB /秒。 从理论上说,是的,你可以传输1000Mbps或125MB / s,但是在不同的开销层之间(以太网和IP头,iSCSI本身,在数据包之间花费一些时间的事实),你永远不会看到。

此外,不要忘记,你会看到125MB / s(或更less)飞出NAS盒子; 必须在所有VM服务器之间共享。 因此,不要期望看到每个虚拟机服务器。

为了加快速度,或者去10Gbps的networking(不便宜),或者使用Etherchannel / channel bonding / LACP /无论你的特定供应商喜欢怎样称呼它,并将多个1Gbps链接粘合在一起形成一个更大的pipe道。 如果这不是一个选项(我见过的1RU服务器有一个扩展端口),那么你可能要考虑一个替代协议 – 个人而言,我认为以太网ATA是一个可悲的被忽视的select,如果你正在寻找一个好的SAN(而不是NAS)协议。

此外,请注意,7200RPM SATA硬盘真的性能差,特别是随机I / O,可能更重要的是,往往有相当恼人的问题,包括error handling(即使所谓的“企业” d在高性能SAN环境中调用“足够”)。 我已经pipe理了一个使用这种驱动器的SAN,坦率地说,如果我要再做一次的话,我会把更多的钱花在体面的驱动器上。

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

最简单的方法是增加存储服务器和pipe理程序中的更多网卡,并使用端口聚合。

老问题,但这里的细节。

1000Mbit / s是最大比特率。 你可能会认为这= 125MBytes / s。
不,不。 您看到1000Mbit / s是链路层的物理比特率。 首先是协议开销。 TCP + IP。

有了TCP / IP之后,只有95%的1000Mbps的实际带宽可用。 基于1500字节的MTU,没有VLAN和IPv4。

请参阅: 协议开销

现在,添加iSCSI。 看起来iSCSI添加了一个48字节的标题。
所以用MTU 1500,剩下的是1412(1500-40-48)个字节。 因此,我们的吞吐量将下降到最大值的91%。 ((1500年至1588年)/(38 + 1500))

所以,如果不使用巨型帧,预计会看到114MB / s的绝对最大值。 假设在整个帧被填满并且没有丢包的情况下完美传输。

实际上,如果其他用户正在击中目标机器,我希望你能够低于这个水平。

笔记:

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

LACP不会帮助。 当多个ESX主机访问一个iSCSI目标时,它会受益,但是它不会为一对一的情况增加带宽。 MPIO是增加带宽的唯一途径。