分享

企业级SSD固态硬盘SATA/SAS/PCIe接口性能和兼容性比较

 张问骅 2022-08-30 发布于甘肃
图片
在谈企业级SSD之前,我们先来了解一下什么是SSD。

SSD是Solid State Drives(固态硬盘)的缩写,是用固态电子存储芯片阵列制成的硬盘产品,可广泛应用于移动终端、笔记本电脑、台式机、服务器和数据中心等场合。

下载链接:
企业级SSD技术和行业发展(汇总) 
1、面向当下与未来的高端企业级SSD.pdf 
2、2021年中国企业级SSD行业发展洞察.pdf 
3、图解数据中心PCIe总线和NVMe SSD测试.pdf 
4、SSD与HDD混合RAID解决方案.pdf
数据中心产业图谱研究报告(2022)

SSD一般由硬件组件与固件两大部分组成,硬件组件包括主控芯片、存储芯片(DRAM、NAND Flash),其中主控芯片承担数据的读取、写入。存储芯片中,NAND Flash即闪存颗粒,是数据存储的核心介质,也是数据存储的载体,DRAM即动态随机存取存储器,主要作为缓存用以降低SSD的读写延迟,提升SSD的读写性能。

如果将SSD比作电脑,固件则可以看作是包含核心操作系统和应用软件的集合体,它担任着一个系统最基础最底层工作,是影响硬件设备的功能及性能的重要因素之一。

按照不同用途,SSD可以分为消费级、企业级及其他行业级产品。近年,随着云计算、大数据等新兴技术快速发展,互联网服务加速普及,企业加快数字化转型,数据呈现井喷状态,企业级SSD市场需求与规模不断攀升。

企业级SSD主要应用于互联网、云服务、金融和电信等客户的数据中心,与消费级SSD相比,企业级SSD具备更快传输速度、更大单盘容量、更高使用寿命以及更高的可靠性要求。

按照总线通道技术,SSD又可以分为SATA、SAS、PCIe等接口类别;按照传输层协议不同,又可以分为SCSI、ATA、NVMe。由于PCIe支持速率更高,NVMe协议针对NAND进行了优化,具备更高的效率,“PCle接口+NVMe协议” 逐渐成为企业级SSD的发展趋势。

目前企业级SSD以PCIe3.0 、PCIe4.0为主流。为了应对日益增长的高性能计算、高性能存储等快速发展的需求,PCIe 5.0技术兴起,该技术传输速率可达32GT/s,是PCIe4.0的两倍,带宽可达128GB/s,并具有向下兼容性,未来在主流CPU厂商支持下,PCIe 5.0有望在企业级SSD领域大规模商用。

本文重点介绍了SATA、SAS、PCIe接口,并且对所遇到的各种性能和兼容性权衡进行了比较。

SATA 接口
SATA 是为点到点连接设计的一种低成本接口,可以通过线缆或者印刷线路板 (PCB) 走线实现。主机连接面向高级主机控制器接口 (AHCI),常驻留于主机芯片集上面,如同主机适配器位于 PCIe 总线上面。

这个接口有几个设计问题,可能使得每个指令产生 1μs 或更多总线开销。对于一个 4KB 传输需要 10μs 的 HDDs 来说,这不是主要的问题,但是 SSD 能够在 2μs 或者更少之内传输 4KB 数据——因而这个开销变得更值得注意,SATA 接口无兴趣成为一个高性能海量存储接口。

SATA 仍然适合用作低成本 SSD 接口,在这里,成本而非性能是主要的决定因素。SATA 架构也可以合并到一个管理 SATA 指令集的主机适配器中,并不会真正包含物理的 SATA 接口 (PHY) (图 1)。

图片

SAS接口
SAS 也是一个串联接口,通过一个主机适配器添加到主机中,但是也有明显的区别,使其成为一个适当的 SSD 接口:
· 更少的硬件开销
· 更快的传输速率
· 宽端口
· 有效的硬盘控制器接口

另外,SAS 包括 SATA 所不具备的功能,这些功能能够提升连接到接口的设备的可靠性和可用性
· 健壮的串口协议
· 支持多主机
· 端到端数据整合
· 双端口容量
· 高度并发和聚合

SAS 没有一个可等同于 SATA AHCI 控制器的通用主机接口。相反,SAS 主机适配器市场中有多个供应商相互竞争,在这里性能是主要的决定因素——并不仅仅是对于单个的 HDDs 接口,也面向不同的 RAID 系统,在这些系统中多个 HDD主轴的传输速率将会聚合到一起,从而提高传输速率。另外,SAS 主机适配器是为管理高性能SSD 和 HDDs 而设计(例如短击15K-RPM 硬盘)。因为硬件主机适配器和管理该主机适配器的硬盘被设计为一个系统,为 SSD 设计的产品经过优化,开始变得可用,并且进一步提升了传输速率以及 IPOS。

宽端口是 SAS 架构固有的理念——多个连接被聚合到一起,从而允许一个或多个主机与设备之间存在多个同步路径。目前的 SAS 设备连接器为设备定义两个端口。作为一种设计选择,目前的 HDDs 不支持宽端口——只有双端口,每个端口拥有不同的 SAS 地址,阻止其配置成为一个宽端口。

接受的SAS-3(12Gb/秒)协议允许硬盘上面的端口增加到 4 个,所有这些都连接到相同的域,或者成对连接到不同的域。非常受限的 SSD 数量可能在双端口设备上面支持宽端口(除了双端口以外)。

SAS 串口协议为串行传输者和接收者提供训练。通过对信道长度、阻抗失配和信号间干扰进行补偿,提升了线缆或者背板上面的信号质量。SAS 串口协议也管理硬件级别的错误检测和重传。从而使得间断信号可以迅速得到恢复。

SAS 目标设备支持双端口操作。这样能够创建两个故障域,并提供更高的可用性。即使故障发生在一个连接到端口的路径,并且该端口阻止通过该路径访问,还是可以通过第二个端口访问该设备。

从历史的观点来说,希捷从市场中采购硬盘接口。希捷与 SCSI (STA) 同业公会以及其他行业领导者合作,充分利用已经广泛部署的 SAS 基础设施(图 2)。表 1 显示了 12Gb/秒 SAS 和多链接为系统构建者和最终用户组织带来的好处。

图片

PCI Express接口
PCI Express (PCIe) 是连接外围设备和主机处理器的主要接口,通过存储控制器连接到系统中的存储架构。SATA 和之前讨论的 SAS 接口都是通过PCIe 接口(或者主机适配器)连接到主机处理器和内存中。

图片

PCIe 接口是原始的 PCI 接口的串行实现,该原始接口在外围设备和主机处理器/内存之间提供并行的地址/数据连接。PCIe 接口通信是通过一条或者多条线路实现的,每条线路具有一个传输和接收串行接口。最多可以使用 32 条线路来连接主机和设备。每条线路上面的串行数据速率取决于所采用的 PCIe 标准的版本,当前的版本是3.0,数据速率大约为 1GB/s。

对于一个 1U 用户,PCIe 接口设计为,使用一个(客户)母板上面的单一连接器,或(服务器)母板上面的两个连接器,直角适配器。布线系统也是可用的(尽管很少使用)。一个 2U、4U 或7U 服务器具有多个 PCIe 插槽,类似于客户端应用。PCIe 规格也采用传输端(及接收端)训练以适应配置的阻抗变化,但是它目标是作为比SAS 更短的传输信道。

PCIe 开关支持单根 I/O 虚拟化 (SR-IOV) 和多根I/O 虚拟化 (MR-IOV)——这些方法用于提升虚拟系统(管理程序)中的控制器性能。这些虚拟带有单主机或多主机。SR-IOV 刚刚在适配器中开始成为普遍可用的;不过,VMware 可能还没有充分利用它的优势。MR-IOV 在适配器上面通常是不被支持的。

图片
使用 PCIe 接口连接的存储设备通过直接注册器连接,或者通过主机适配器连接,该主机适配器接下来通过额外的线缆或者背板型接口连接到设备。

目前,这两种架构都有很多不同的实现。SATA 在系统芯片集(南桥)中使用主机总线适配器实现—— Intel 或 AMD AHCI——需要不同的 AHCI,但是映射到兼容的 IDE 遗产实现。这些接口也应用不同的 RAID 管理功能。

SAS 具有多个 HBAs 供应商,具有额外的扩展卡和可用的 RAID 控制器,所有这些都使用专有的设备驱动器和 BIOS 以满足不同的性能和配置需求。

PCIe 驱动控制器接口通过 NVM Express 规格和推荐的 SCSI over PCIe (SOP) 规格实现。SATA 合并下文中描述的架构,是 PCIe 直接注册器连接的又一个实例。

SOP 和 NVMe 两种方法的架构是类似的。不过,NVMe 正在由一个产业工作组开发,而SOP 是由公认的开放式标准论坛开发。NVMe仅仅以非易失内存设备的应用为目标,而 SOP也以使用主机总线适配器和 RAID 控制器(带有不同的 SOP 设备之间的桥接功能)为宗旨。

另外,SOP 着重体现现有的产业架构和功能,而 NVMe 使用一个新的受限制的指令集和排队接口。

上述的每一种存储架构都具有各自的优势,也存在一定的问题。取决于总体的系统设计,使用特定架构的好处可能比该架构带来的问题更加明显,因此,需要仔细分析才能做出适当的决定。

这个决定也必须考虑兼容现有的系统设计。例如,使用 SSD 升级一个具有 2.5-inch SATAHDD 的笔记本电脑,并且该 SSD 具有相同的物理大小和相同的(或更新)SATA 接口。在这种情况下,对于 SSD 速度有多快将会有一个限制;超出现有主机 SATA 接口速度则不会提升系统的性能。

在一个类似的情境中,一台使用短击 15K-RPM SAS HDD 存储数据索引的企业级服务器可以进行升级,使用 SAS SSD,从而提升系统的整体性能,但是只能达到其他系统因素成为新的瓶颈的程度(CPU、内存、网络、适配器等)。

在一个新的系统架构中,增加固态存储能够明显提高系统性能,但是最多只能达到系统架构的其他部分能够支持的数据速率和带宽。SSD 中的快速数据传输速率也需要有更多的电能提供给设备,并且还有更多的热量被消耗,不管 SSD 安装在哪里。

图片
图片

在探讨什么因素造成延迟,以及在真实环境下如何影响应用性能这些问题时,存在很多误解。当考虑这方面的问题时,聚集于整体状况是相当重要的,而不仅仅是其中的一部分。

在 SSD 中,大部分延迟是由 flash 部分本身造成的。SLC 访问时间是 25µs+;MLC 访问时间是50µs+,两者均假设没有访问竞争。随着队列深度增加,争夺 flash 部分的访问资源可能导致延迟明显增加。

一但一个 flash 部分开始访问,其他请求相同部分的则必须等待。多达 8 个 flash die 共享一条公用的总线,这样使得 die 一直等待,直到轮到该 die 使用总线。家务活动增加了额外的延迟(地址转换、垃圾收集、损耗平衡等)。

另外一个方面是操作系统,它添加了延迟,无论访问协议和互连如何。这些包括文件系统、卷管理器、类驱动器和上下文交换开销。协议和互连差异对延迟的影响非常有限,应用程序可以忽略此影响。

‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧  END  ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多