编辑
2023-01-02
知识库
00
请注意,本文编写于 421 天前,最后修改于 329 天前,其中某些信息可能已经过时。

目录

前言
闪存的定义
固态硬盘
SSD 一定是闪存设备吗?
相关技术解析
NAND Flash
主控
FTL
接口与协议
缓存
DRAM Cache
SLC Cache
3D XPoint
更高的可靠性
RAID 阵列卡
分布式存储
全闪存阵列
要怎么选择 SSD

前言

「本文面向企业科普/市场提供」

闪存的定义

闪存是一种固态技术,使用闪存芯片写入和存储数据,它使用非易失性存储器,这意味着当电源关闭时数据不会丢失。

与传统的机械硬盘(HDD)相比,由于没有机械硬盘(HDD)由机械结构引起的固有延迟,因此闪存存储技术能够在拥有非常快的响应时间(微秒延迟)的同时,还能拥有更少的能耗以及更少的体积占用。

闪存的解决方案范围从随身设备到企业级阵列。

固态硬盘

固态硬盘(Solid-State Drive,SSD)是一种使用集成电路设计制作的存储设备。由控制单元和存储单元构成,对于特别的 SSD 产品,可能还会有缓存单元。

SSD 一定是闪存设备吗?

答案是否定的。

尽管目前的固态硬盘市场中,NAND Flash(闪存介质的一种)是最被广泛采用的(包括 Intel),甚至在一定程度上固态硬盘充当了闪存存储的代名词。然而 SSD 存储单元中使用的存储介质才是判断它究竟是不是一个闪存设备的唯一标准。

常见的存储介质有三种:

  • 闪存(特别是 NAND Flash)
  • DRAM(是一种易失性存储)
  • 3D XPoint(现在是 Intel 独有)

相关技术解析

NAND Flash

NAND Flash 是一种在写入速度,生产成本和容量上有很大优势的闪存介质。

尽管 NAND Flash 在可靠性和读取速度上有所不及 NOR Flash,由于上述的原因,NAND Flash 依旧是目前闪存市场中最为广泛采用的 Flash。

此外,根据每个单元内可以存储多少 Bit 数据的不同,NAND Flash 又可以分为五种不同的 NAND Flash 类型:

  • SLC(Single-Level Cell,单层单元)
  • MLC(Multi-Level Cell,双层单元)
  • TLC(Triple-Level Cell,三层单元)
  • QLC(Quad-Level Cell,四层单元)
  • PLC(Penta-Level Cell,五层单元)
Flash 类型SLCMLCTLCQLCPLC
每个单元的 bit 数12345
写入速度★★★★★★★★☆☆★★☆☆☆★★☆☆☆★★☆☆☆
使用寿命★★★★★★★★☆☆★★☆☆☆★★☆☆☆★☆☆☆☆
价格★★★★★★★★☆☆★★☆☆☆★☆☆☆☆☆☆☆☆☆

从 SLC 到 PLC,单元存储的数据越多,单位面积容量就越高,成本也就越低。然而,像鱼和熊掌不可兼得一样,在其他条件同等的情况下,SLC 到 PLC 的性能和寿命也是在下降的。对于单一的存储技术来说,空间,性能,可靠性以及成本,一定是永远无法兼顾的。

主控

主控,即闪存控制器(Flash Memory Controller),它本质上是一颗 Processor, 基于 ARM/RISC 架构实现。因此 PC 上的 CPU 有多重要,主控就有多重要。它主要干了两件事:管理存储在闪存中的数据,连接闪存芯片和外部接口。

FTL

FTL(Flash Translation Layer)通过地址转换将用户的写请求转换到实际的闪存芯片上,是主控中最核心的部分。

为什么说 FTL 是主控中最核心的部分呢?

这是由于 NAND Flash 中每个闪存块的寿命是有限的,如果不进行管理,可能会有几块闪存块由于频繁的读写操作很快坏掉,我们肯定不希望这样的事情发生。因此 FTL 会进行磨损均衡(Weal Leveling)来尽可能让所有闪存块磨损的程度相近,以延长 SSD 的使用寿命。此外,对于损坏的闪存块,FTL 还需要发现这些坏块,并且利用 NAND Flash 中的空闲块 OP (Over Provisioning) 进行替换处理。

因此 FTL 算法的优劣与否,直接决定了 SSD 在可靠性与耐用性上的表现。基于这样重要的意义,主控芯片的技术门槛较高,所以相对的品牌也就比较少。

当然 FTL 还有很多其他的功能,比如 TRIM,GC,以及健康监控方面,这里暂时不做过多介绍了,感兴趣的话可以后面自己了解。

接口与协议

2007 年 IBM 在 BladeCenter® HS21 XM 上面部署了 SanDisk SATA 5000 2.5 的 SSD,从此 SSD 的需求开始被主流所承认。

SanDisk SATA 5000 2.5 使用了 SATA I 接口,最大读取速度 67MB/s,最大写入速度 47MB/s,平均延迟 0.11ms,IOPS 达到了 7430。这些数据即便放在现在也能够完胜任何机械硬盘,但是这远远不是 NAND Flash 的极限。

究其原因,SATA I 成为了最大的限制。于是 2004 推出的 SATA II,2009 推出的 SATA III 都在不断的刷新 SSD 的全面性能指标。可是,还是不够。

  • 2009 年 Intel 开始着手寻找 SATA 的替代方案。
  • 2011 年,使用 PCI-E 接口的 NVMe 1.0 协议正式发布
  • 2013 年,三星发布了全球首款基于 NVMe 协议的 SSD : Samsung's XS1715 enterprise drive

Samsung's XS1715 enterprise drive 的表现几乎是爆炸级的。也是这一天起,NVMe SSD 开始成为市场上的新宠。

  • AHCI 与 SATA

    • SATA(Serial Advanced Technology Attachment)串行 ATA 技术,在 2000 年推出,对当时的 PATA 技术进行了改进,拥有最高 550MB/s 传输速率。

    • AHCI(Advanced Host Controller Interface)高级主机控制器接口, 是在 2004 年前后推出的一种通信模式,用于改善由 SATA 连接的存储设备的性能和利用率。它专为机械硬盘设计,支持 1 个命令队列,深度最高达到 32 条命令, IOPS 最高可达 10万,这意味着机械硬盘可以实现更高的吞吐率和性能。

      对于任何机械硬盘(HDD),SATA + AHCI 的组合足够使用,然而对于使用了 NAND Flash 的 SSD 来说,SATA 与 AHCI 的组合就成为了性能瓶颈。

      常见的基于 SATA 协议实现的接口形式包括 SATA、mSATA、M.2

  • NVMe 与 PCI-E

    • PCI-E(Peripheral Component Interconnect Express)高速串行计算机扩展总线标准,PCI-E 4.0 提供多达 32 个通道,理论上数据传输速度高达 64000MB/s。

    • NVMe(Non-Volatile Memory Express ) 技术在 2011 年推出,NVMe 专为 SSD 设计,利用 PCIe 总线,支持 65535 个命令队列,每个队列深度最高达到 65536 条命令,IOPS 超过 100万。

      现在,基于 NAND Flash 实现的 SSD 能够起飞了。

      常见的基于 NVMe 协议实现的接口形式包括 U.2、U.3、M.2

为什么 SATA + AHCI 以及 NVMe + PCI-E 这两种 SSD 都有 M.2 的接口形式?

在存储技术领域,当我们讨论 M.2 时,通常是指固态硬盘的外形尺寸,它并不与 SATA 或是 NVMe 这样的协议有绑定关系。SATA M.2 与 NVMe M.2 的外观相似,但是他们在性能方面有着十分巨大的差别,固态硬盘的性能水平取决于通信驱动程序是 SATA 还是 NVMe,而不是接口形式

哪一种接口最好呢?

不同的接口都有不同的使用场景,由于 M.2 具有体积优势,常常被广泛用在笔记本电脑或是台式机,服务器的内部以节省空间利用,要使用 NVMe M.2 还是 SATA M.2 则是主板所决定的。mSATA 同样是在 M.2 出来之前比较合适用于内置的接口形态。此外,在对性能要求不高的场景,SATA SSD 由于其扩展性(M.2 这类内置的 SSD 十分不利于替换和扩展)和相关基础设施的成本较低,依旧有着用武之地。而 U.2 和 U.3 则在使用了 NVMe 协议保证性能的同时,还在扩展方面上保持了和 SATA 同样的水平,不过这种接口目前只能在企业级产品上见到,可以说这是专为数据中心设计的产品。因此,采用哪种接口应该具体问题具体分析,没有一种接口能满足所有需求。

缓存

DRAM Cache

实质: 利用 DRAM 的高速特性,将一部分数据暂时写入到 DRAM 中,再由 FTL 无感知的将数据写入到 NAND Flash。

SLC Cache

实质: 在 NAND Flash 中划分出部分空间用来模拟 SLC 的写入方式以进行提速。

两种办法都能在一定程度上提高数据的写入速度,现在用 SLC Cache 的方案要多一些,这是由于 DRAM 的易失性需要额外的措施来进行处理。

由于缓存设计的存在,这也是为什么在拷贝文件时会发现开始很快,后面就慢下来的原因之一。

3D XPoint

3D XPoint 是英特尔和美光合作的非易失性存储技术,后来美光放弃了对此技术的继续研发。

「傲腾持久内存,重塑内存和存储模式」

Intel 将其形容为 25 年来,内存和存储领域的首次重大突破。

是吗?

是的,Optane(傲腾)的特点是比 NAND Flash 快,比 DRAM 便宜、容量不低和非易失

带宽延迟服务器典型容量持久化
SATA SSD500 MB/s200 us16 TB
NVMe SSD(PCI-E 4.0)3.9 GB/s100 us16 TB
Optane50 GB/s1 us3 TB
DDR4100 GB/s100 ns512 GB

从参数看起来,Optane 能极大的优化延迟,并且能极大的提升 I/O 吞吐量。

但是有一个问题:Optane 只能工作在 Intel 平台上,且对服务器硬件有一定的要求,此外作为持久化存储,如果考虑单位容量成本,又高于 NVMe SSD

所以,截至到目前来看,Optane 确实美好,但是需要使用 Optane 的场景是很有限的。

更高的可靠性

再次说明:对于单一的存储技术来说,空间,性能,可靠性以及成本,一定是永远无法兼顾的

因此类似 RAID 的存储技术一定会被数据中心所采用,以通过技术手段降低存储的成本的同时提高可用性。这部分内容很多,且不是 SSD 相关的主要内容,本文只做简单介绍。

RAID 阵列卡

在数据中心,阵列卡使用 RAID 技术来对抗单一硬盘的损坏的风险。这是一种硬件设备,通常在企业级产品里面才能看到。

分布式存储

分布式存储,是一种软件定义存储,在软件层面上实现类似 RAID 一样的技术来对抗单一硬盘的损坏的风险。比如 Ceph,GlusterFS,BeeGFS 等等。

全闪存阵列

全闪存阵列,一种融合了阵列卡和软件定义存储的商业化解决方案。诸如 Dell EMC、NetAPP 这样的产品。

要怎么选择 SSD

该关注什么指标?

  • 成本

    使用了 MLC 的固态固然在性能和稳定性上具有更大的优势,不过 TLC 的成本优势是企业用户无法忽略的事实。

  • 性能

    传输速率,IOPS,延迟,对于特定的业务场景(数据库,搜索,消息队列)来说,使用高级的 SSD 能够显著的提升用户体验。

  • 可扩展性

    M.2 的最大问题就是很难完成替换和扩展。因此对于数据中心用户来说,在关注性能和扩展性的情况下,U.2/U.3 接口形式的 SSD 将成为首选。

  • 耐久度

    由于维保政策和对抗 SSD 损坏的技术的存在,实际上企业用户对 SSD 的使用寿命没有十分严格的苛求,不过 TLC 依旧是起码的要求。

本文作者:XiaFan

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!