e-SATA端口倍增的预期性能?

对于某些读/写工作负载,我使用esata端口倍增从4磁盘arrays中获得30 MiB / s。 当我将完全相同的arrays移动到四个单独的sata连接时,我获得90 MiB / s的工作量。 这是乘数的预期性能影响? 如果不是的话,我该如何缩小软件,控制器或机箱之间的问题?

即使在多年来尝试了大量variables之后,我也得到了完全相同的结果:

  • 许多Linux版本(RHEL5,Fedora 9,11,13,16)以及所有的内核。
  • 两种types的机箱(包括低端的$ 100 4个硬盘型号),共四个机箱。
  • 两种types的SATA控制器芯片组(Marvell 88SE91xx和Silicon Image 3132)
  • 四个SATA控制器(约30-60美元的PCI-X1接口卡和一个PCI,所有基于FIS的交换)。
  • 三个SATA速度(1.5,3.0和6.0 Gbps)
  • (三星Spinpoint F1 1TB,WD Caviar黑色2TB,希捷Barracuda XT 3TB)四种types。
  • 三台电脑(Athlon 3ghz + 1GB RAM,当我做第一个e-sataarrays,然后Core 2 Duo + 4GB,现在是Core i5 750 + 8GB)。

当我多年前做了我的第一个eSATA机箱时,我认为速度慢的原因与使用PCI(33mhz)卡,不成熟的SATA驱动程序或者SATA-1.5Gbps 5400 RPM驱动器有关。 但是现在用x1 6Gbps控制器,3.0内核和6Gbps 7200rpm HDDS,仍然没有任何改变。 我仍然得到相同的30 MiB / s的特定工作量,直到我将它移动到单独的SATA连接。

这是所有端口乘法实现的基本限制吗?

是。 performance不佳。

ATA协议从来不打算将数据传送到多个驱动器(它实际上是基于ISA总线,将通信通道扩展到存储驱动器)。 IDE接口通过传输“主”和“从”设备的数据来欺骗这个限制。 然而,SATA没有等效的机制,因为它仅用于每个电缆连接的单个设备。

eSATA端口倍增器可用作可select多个物理介质的ATA目标(因此,一次只能寻址一个物理设备,并且在切换到其他设备时会有一些延迟)。 你可以把它比作旧的光学库。

这与使用扩展器和内置启动器/目标路由(SAS 2.0+函数有点像交换式以太网networking)构build的SAS截然不同。 SAS还能够将多条线路粘接到中继线上,从而允许通过多条中继线同时接入多个设备。

更新:
显然有更新的控制器支持FIS,允许多个驱动器同时“活动”。 这应该使性能比上面描述的要高得多。 显然在这个时候只有一个制造商生产这些芯片。 我仍然强烈build议在服务器环境中从SATA开始。 如果您必须使用SATA驱动器,请考虑使用SAS控制器和扩展器。

您确定您尝试过支持FIS(帧信息结构)端口倍增的控制器端口倍增器吗?

AFAIK仅支持Silicon Image控制器和乘法器(SiI3726),但性能与相同速度的SAS(80-90%链路饱和)相似。