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

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

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

即使多年来尝试了大量变量,我仍然得到了完全相同的结果:

  • 许多 Linux 版本(RHEL5、Fedora 9、11、13、16)及其所包含的所有内核。
  • 两种类型的机柜(均为低端 100 美元 4 盘型号),总共四个机柜。
  • 两种 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 Black 2TB、Seagate Barracuda XT 3TB)。
  • 三台计算机(当我制作第一个 e-sata 阵列时是 Athlon 3ghz+1GB RAM,然后是 Core 2 Duo+4GB,现在是 Core i5 750+8GB)。

多年前,当我制作第一个 eSATA 机箱时,我以为速度慢与使用 PCI(33MHz)卡、不成熟的 SATA 驱动程序或 SATA-1.5Gbps 5400 RPM 驱动器有关。但现在有了 x1 6Gbps 控制器、3.0 内核和 6Gbps 7200rpm HDDS,仍然没有任何变化。在将其移动到单个 SATA 连接之前,我仍然会获得相同的 30 MiB/s 速度。

这是所有端口倍增实现的根本限制吗?

答案1

是的。表现不佳是意料之中的事。

ATA 协议从未打算将数据传输到多个驱动器(它实际上基于 ISA 总线,将通信通道扩展到存储驱动器)。IDE 接口通过为“主”和“从”设备传输数据来绕过此限制。然而,SATA 没有等效机制,因为它只打算通过电缆连接为单个设备提供服务。

eSATA 端口倍增器可用作 ATA 目标,可选择多个物理介质(因此一次只能寻址一个物理设备,切换到其他设备时会有轻微的延迟)。您可以将其与旧的光盘库进行比较。

这与内置扩展器和启动器/目标路由的 SAS 截然不同(SAS 2.0+ 的功能有点像交换式以太网)。SAS 还能够将多条线路绑定到中继线中,从而允许跨多条中继线同时访问多个设备。

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

答案2

你确定你尝试过控制器吗端口倍增器支持FIS(框架信息结构)端口倍增?

据我所知,只有 Silicon Image 控制器和乘法器 (SiI3726) 支持此功能,但性能与同速度的 SAS 相似(80-90% 链路饱和度)。

相关内容