似乎在任何地方都找不到。
在 SAS 和 SATA 之间的访问(如 SAN、虚拟化主机存储等)高度并行化的存储后端场景中,预期的性能差异是什么,所有其他条件都相同?
我认为这归结于 NCQ(32 个命令限制)对 SAS 磁盘的更高的未执行命令限制的影响。
我们正在考虑更换一些磁盘,并有机会选择 SAS 或 SATA——其余的都已就位——我希望从性能角度进行评估。请忽略所有其他问题(可靠性等) - 我纯粹想知道 SAS 对类似规格的光盘(RPM 等相同)的影响。我们想到的光盘可以同时订购两个连接器,并且这里有一个想法是使用 SATA 以便以后可能重新调整用途。价格差异不是很大,但它让我怀疑对性能的影响......
MDM*_*313 11
是的,与 SATA 相比,SCSI 的广泛命令集是一个很大的好处。来自 SAS 的Wiki:
SATA 使用一个基于并行 ATA 命令集的命令集,然后扩展到该集之外以包括本机命令队列、热插拔和 TRIM 等功能。SAS 使用 SCSI 命令集,其中包括更广泛的功能,如错误恢复、保留和块回收。基本 ATA 仅具有用于直接访问存储的命令。但是,对于诸如 CD/DVD 驱动器之类的设备,SCSI 命令可以通过 ATAPI[2] 隧道传输。
错误恢复命令和块回收命令对数据完整性至关重要,SMART 真正适用于消费级设备。
此外,SAS 使用更高的信号电压,与 SATA 相比,可以使用更长的电缆。在尝试将额外存储连接到现有 SAN 时,这一点很重要。
您提到了 NCQ,但 SCSI 使用 TCQ,它可以在三种不同的模式下使用,但是在并行设置方面更大的好处是能够在填充队列之前发送多达 2^64 个命令。像 iSCSI 和光纤通道这样的协议现在限制了这一点,但未来可以使用这种能力。
我只能回答那部分,因为我不知道为几个新磁盘使用 SAS 是否会给您带来与纯 SAS 设置相同的好处。
这是一个迟来的答案,但我想补充一下我的意见。
从纯粹的速度角度来看,近线驱动器(如 OP 所考虑的那样)在使用 SATA 接口或 SAS 接口时几乎具有相同的性能。尽管 NCQ 深度较低(31 个条目,而不是 TCQ 64K),但当使用更深的基于软件的 IO 队列进行扩充时,这种有限的硬件队列足以提取与使用基于 SAS 的 TCQ 可以获得的几乎相同的 IOPS 。
无论如何,这并不意味着 SAS 没有实际优势:
然而,当单独考虑性能时,可悲的现实是机械盘的随机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 个。