SAS 与 SATA 的性能差异?

SAS 与 SATA 的性能差异?

似乎在任何地方都找不到它。

在其他所有条件相同的情况下,在访问高度并行的存储后端场景(如 SAN、虚拟化主机存储等)中,SAS 和 SATA 之间的预期性能差异是什么?

我认为这是由于 NCQ(32 个命令限制)对 SAS 磁盘更高的突出命令限制的影响造成的。

我们正在考虑更换一些磁盘,并有机会使用 SAS 或 SATA - 其余一切都已准备就绪 - 我正在从性能角度寻找评估。请忽略所有其他问题(可靠性等) - 我只是想知道 SAS 对类似规格的磁盘(RPM 等相同)的影响。我们考虑的磁盘可以同时订购两个连接器 - 这里有使用 SATA 的想法,以便以后重新利用。价格差异并不大,但它让我对性能影响感到疑惑...

答案1

是的,SCSI 的广泛命令集是使用 SATA 的一大优势。来自 SAS'维基百科

SATA 使用基于并行 ATA 命令集的命令集,然后扩展至该命令集,包括本机命令队列、热插拔和 TRIM 等功能。SAS 使用 SCSI 命令集,其中包括错误恢复、预留和块回收等更广泛的功能。基本 ATA 仅具有用于直接访问存储的命令。但是,对于 CD/DVD 驱动器等设备,SCSI 命令可以通过 ATAPI[2] 进行隧道传输。

错误恢复命令和块回收命令对于数据完整性至关重要,SMART 确实适用于消费级设备。

此外,SAS 使用更高的信号电压,因此与 SATA 相比,可以使用更长的电缆。当尝试将额外的存储连接到现有的 SAN 时,这一点很重要。

您提到了 NCQ,但 SCSI 使用的是 TCQ,它可以在三种不同的模式下使用,但我认为,并行设置的最大优势在于能够在队列填满之前发送最多 2^64 个命令。iSCSI 和光纤通道等协议目前对此有所限制,但这种能力可供将来使用。

我只能回答这部分,因为我不知道使用 SAS 配置几个新磁盘是否能带来与纯 SAS 设置相同的好处。

答案2

这是一个迟来的回答,但我还是想补充一下我的看法。

从纯速度角度来看,近线驱动器(如 OP 所考虑的)在使用 SATA 接口或 SAS 接口时的性能几乎相同。尽管 NCQ 的深度要低得多(31 项由于 TCQ 64K 是单个 IOPS,因此当与更深的基于软件的 IO 队列一起增强时,这个有限的硬件队列就足以提取与使用基于 SAS 的 TCQ 几乎相同的 IOPS。

无论如何,这并不意味着 SAS 没有实际优势:

  • 更好地支持扩展器
  • 支持双链路接口
  • 全双工操作
  • 最大信号传输速率更快 (12 Gb/s vs 6 Gb/s)

然而,单从性能角度考虑,现实情况是机械磁盘的随机IOPS值非常低,接口几乎没有影响,但大型磁盘阵列除外,因为有时限制顺序 IO 传输速率。由于它考虑了旋转延迟(对操作系统来说是隐藏的),杀手级性能增强功能是 NCQ/TCQ,SATA 实现在这方面已经足够好了。

当考虑更高端的 SAS 磁盘时,会出现一些更显著的差异,它们不仅提供更高 RPM 的磁盘(10K 和 15K),而且还具有一些有趣的写入合并技术(即:HGST 媒体缓存技术),顺便说一句,这些技术也正在慢慢渗透到企业级 SATA 驱动器中。

1 https://ata.wiki.kernel.org/index.php/Libata_FAQ

但是,ATA 标准存在设计缺陷。NCQ 标签被假定为 32 位位图(32 位双字)。如果所有 32 个标签都有效,则会产生一个值 (0xffffffff),该值与硬件热拔出或发生重大故障后读取硬件寄存器所返回的值相同。因此,为了区分这种情况,libata 人为地将所有 NCQ 配置限制为 31 个标签,而不是 32 个。

答案3

旧帖,但我想更新一下,因为我从未看到有人提到性能方面最重要的区别,即 SATA 仅为半双工。在重负载下,混合读写时性能会有巨大差异。在我看来,绝对不适合 SAN 或虚拟化。

当然,如上所述,SAS 还有其他优势。如今,​​NL-SAS 磁盘的价格并不比 SATA 贵多少。

相关内容