SSD领域涉及到较多的专业术语,为了更深入地了解SSD技术,本文对常用SSD术语进行简要的说明和介绍。
Namespace
命名空间,是 NVMe 协议中一个基本的逻辑空间的概念。简单地说,命名空间将 NVMe SSD 的用户空间进行逻辑划分,每个命名空间拥有自身的 NAND 颗粒,可以独立地进行格式化和加密等操作。
OP
Over-provisioning,一般称为预留空间,它是指 SSD 保留一部分闪存空间留作他用,这部分空间用户不可操作,容量大小一般是由主控决定的,一般不建议用户自行修改。OP 空间在垃圾回收(Garbage Collection, GC)、耗损平衡(Wear Leveling, WL)、减少写入放大(Write Amplification, WA)等多个方面都有作用,具体如何应用要取决于 SSD 主控算法。OP 的使用情况对于磁盘的健康状态是有影响的。
DWPD
Diskful Writes Per Day,每日整盘写入次数,是指在预期寿命内可每日完整写入 SSD 固态硬盘所有容量的次数。这个参数一般会作为参考 NMVe SSD 寿命和性能的重要评测数据。由于 SSD 的实现是基于电气原理的,每个 NAND 颗粒的擦写(P/E)次数是有限制的,一般厂家都会标定一个寿命期限。OP 所实现的 WL 对于维护磁盘的使用寿命具有很重要的意义。
MTBF
Mean Time Between Failures,平均无故障工作时间,或相邻两次故障之间的平均工作时间,是衡量一个产品的可靠性指标,单位为“小时”。MTBF主要通过实证法采用加速应力方式来证明产品长期可靠度,主要通过高温加速测试计算评估,从测试深度、广度、持久度三个方向进行测验。
PI
Protection Information,保护信息。完整的端到端数据保护支持由Host端生成PI,提供从Host直至SSD内部的完整端到端数据路径保护。在数据生成时,通过对数据添加PI,并将其作为元数据始终伴随用户数据一同传输和校验,借此降低静默错误的发生;同时,借助ECC(如BCH、LDPC)、Die间RAID5等手段,对检测到的错误数据加以修正,提升整个端到端数据传输过程中的可靠性。PI也可以通过SSD Controller生成,提供SSD盘内的数据保护,通常,后者称为“数据路径保护”技术。
PI与用户数据通常是连续存放。这要求SSD在提供标准的用户数据存储空间(如512字节或4096字节)之外,额外提供PI作为元数据的存储区域。
VSS
Viable Sector Size,可变Sector Size,也叫活性扇区大小。它允许SSD在保存用户数据的同时,保存该数据的元数据,也就是对PI的存储。它是全闪存阵列实现NVMe端到端数据保护,降低静默错误发生的必要前提。在保证一致性能前提下,进一步保证存储系统和分布式文件系统对数据可靠性的高要求。
DIF/DIX
PI 的具体实现包括 DIF 和 DIX 两种方式,这两种数据保护机制的主要区别是 PI 信息的位置不同。具体选择哪种格式,要根据应用场景的需求。
Data Integrity Field (DIF),即元数据与用户数据(LBA Data)连续存放。
Data Integrity Extension (DIX),元数据与用户数据单独存放。
SR-IOV
Single-Root I/O Virtualization,单根 I/O虚拟化。是一种基于硬件的虚拟化解决方案,通过利用PF和VF的属性,将一个设备虚拟出多个PCIe设备,利于虚拟机操作,从而大大减轻宿主机的CPU负荷,提高性能和可伸缩性,帮助系统解决虚拟机SSD盘的QoS问题,可支持更多数量的虚拟机业务。VM可直接与VF通信,不需要Hypervisor接入IO处理,节约 vCPU资源,实现性能隔离。
SR-IOV可实现多个虚拟机共享物理资源,且bypass Hypervisor(或者VMM)软件层,使得虚拟机可使用到NVMe SSD的高性能。
PRP
Physical Region Page,物理(内存)区域页,主机侧用于通知SSD数据所在的内存位置的一种方式。NVMe把Host的内存分为页的集合,页的大小在CC寄存器中配置,可以是4K、8K…128MB,PRP Entry是一个64位的内存物理地址指针,描述的是一段连续的物理内存的起始地址,PRP list中每个PRP Entry都描述一个物理页。每个NVME 命令有两个域,PRP1和PRP2,Host通过这两个域告诉SSD数据在内存中的位置或数据需要写入的地址。
SGL
Scatter Gather List,散列聚集列表,是另一种索引内存的数据结构。用以描述一段数据空间,该空间可以是数据源所在空间,也可以是数据目标空间,SGL由若干个SGL segment组成,每个segment又由若干个SGL descriptor组成。与PRP描述物理页不同,SGL可以描述任意大小的内存空间,更为灵活。
Multi-stream write
多流写,该技术可以使SSD根据主机端提供的Stream ID,将具有相同或相似生命周期的数据写入到相同的擦除单元中去,大大提高GC时的效率,减少写放大,使得SSD的性能和寿命都有较大的提升。
ZNS
Zoned Name Spaces,分区命名空间。ZNS将一个Namespace的逻辑地址空间切分成单个zone(一种固定大小的子区间),每个zone都有一段LBA(Logical Block Address, 逻辑地址空间)区间,这段区间只能顺序写,而且如果要覆盖写,则必须进行一次擦除操作。这样,namespace就可以把NAND内部结构的边界透露给外界。NVMe SSD也就能够将地址映射表等内部管理工作交由host去处理,从而减少写放大、选择合适的GC时机。ZNS驱动器减少了用于过度配置的额外闪存,因为它们不希望频繁写入,因此成本更低。
通过了解这些术语,我们可以更好地理解SSD技术的原理和性能特点,并在选择、使用和优化SSD时做出更明智的决策。