SSD主要由控制单元和存储单元组成,控制单元包括SSD控制器、主机接口、DRAM等,存储单元主要是NAND FLASH颗粒。NAND FLASH内部存储读写的基本单元为Block和Page。● Block:能够执行擦除操作的最小单元,通常由多个Page组成;
● Page:能够执行编程和读操作的最小单元,通常大小为16KB。对NAND FLASH读写数据的操作主要涉及擦除(Erase)、编程(Program)和读(Read),其中编程和读的基本操作单位是Page,擦除的基本操作单位是Block。在写入一个Page之前,必须要擦除这个Page所在的整个Block。因此在写入某个Page时,需要把Block中其他有效的数据拷贝到新的存储空间,从而把原先的整个Block擦除,这一过程称为垃圾回收(Garbage Collection,简称GC)。每一次对Block的编程写入和擦除称为一次P/E(Program/Erase)。不同于机械硬盘HDD,SSD盘中对每个Block的擦写次数是有限制的。如果某些Block的擦写次数太多,将会导致该Block不可用。SSD领域涉及到较多的专业术语,为了更深入地了解SSD技术,本文对常用SSD术语进行简要的说明和介绍。磨损均衡是指SSD控制器通过对NAND Flash中Block的P/E次数进行监控,通过一定的软件算法使所有Block的P/E次数比较平均,防止单个Block因过度擦写而导致失效,延长NAND FLASH整体的使用寿命。动态磨损均衡是指在主机数据写入的时候,优先挑选磨损较小的Block使用,这样保证P/E消耗平均分布;静态磨损均衡是指盘片定期在整个盘片的范围内寻找P/E消耗较少的Block并回收其上的有效数据,从而使得保存冷数据的Block也参与到磨损均衡的循环中。HSSD通过这2种方案的结合来保证全盘磨损均衡。NAND FLASH芯片在制造和使用过程中会逐渐出现一些不符合要求的存储单元,此类Block将被标志为坏块。如果出现坏块,则通过NAND FLASH间XOR冗余校验数据来计算出坏块上的数据,并将数据恢复到新的可用Block上。在一个SSD生命周期内,盘片会出现坏块,SSD在盘片内部预留了空间用作坏块替换,确保在生命周期内可能出现的坏块可以及时被替换,保障SSD上的数据安全可靠。由于SSD在使用过程中可能会出现数据位翻转和跳变,数据在SSD的DRAM中使用了ECC和CRC校验来防止数据跳变和篡改;数据在NAND FLASH中使用了LDPC和CRC校验来保护Page上的数据;而在不同的NAND FLASH之间则采用了XOR冗余进行保护以防止颗粒失效导致的数据丢失。LDPC即低密度奇偶校验码(Low Density Parity Check Code),是通过校验矩阵定义的一类线性码,主要用于数据校验和纠错,广泛应用于无线通信、卫星数字传输等领域。在数据写入NAND FLASH的Page时,计算出数据的LDPC校验信息一起写入到Page中;在从Page中读取数据的时候通过LDPC进行校验和纠错。NAND FLASH上的数据会由于存放时间过长,读干扰、写干扰、随机失效等原因导致数据发生错误。HSSD会周期性的读取NAND FLASH上的数据,识别数据跳变情况,对于出现高比特位跳变的数据及时读取并写入到新的Page。通过这一后台巡检过程可以提前识别出现的风险并进行处理,能有效防止这些错误导致的数据丢失,提高数据的安全性和可靠性。命名空间,是 NVMe 协议中一个基本的逻辑空间的概念。简单地说,命名空间将 NVMe SSD 的用户空间进行逻辑划分,每个命名空间拥有自身的 NAND 颗粒,可以独立地进行格式化和加密等操作。Over-provisioning,一般称为预留空间,它是指 SSD 保留一部分闪存空间留作他用,这部分空间用户不可操作,容量大小一般是由主控决定的,一般不建议用户自行修改。OP 空间在垃圾回收(Garbage Collection, GC)、耗损平衡(Wear Leveling, WL)、减少写入放大(Write Amplification, WA)等多个方面都有作用,具体如何应用要取决于 SSD 主控算法。OP 的使用情况对于磁盘的健康状态是有影响的。Diskful Writes Per Day,每日整盘写入次数,是指在预期寿命内可每日完整写入 SSD 固态硬盘所有容量的次数。这个参数一般会作为参考 NMVe SSD 寿命和性能的重要评测数据。由于 SSD 的实现是基于电气原理的,每个 NAND 颗粒的擦写(P/E)次数是有限制的,一般厂家都会标定一个寿命期限。OP 所实现的 WL 对于维护磁盘的使用寿命具有很重要的意义。
Mean Time Between Failures,平均无故障工作时间,或相邻两次故障之间的平均工作时间,是衡量一个产品的可靠性指标,单位为“小时”。MTBF主要通过实证法采用加速应力方式来证明产品长期可靠度,主要通过高温加速测试计算评估,从测试深度、广度、持久度三个方向进行测验。Protection Information,保护信息。完整的端到端数据保护支持由Host端生成PI,提供从Host直至SSD内部的完整端到端数据路径保护。在数据生成时,通过对数据添加PI,并将其作为元数据始终伴随用户数据一同传输和校验,借此降低静默错误的发生;同时,借助ECC(如BCH、LDPC)、Die间RAID5等手段,对检测到的错误数据加以修正,提升整个端到端数据传输过程中的可靠性。PI也可以通过SSD Controller生成,提供SSD盘内的数据保护,通常,后者称为“数据路径保护”技术。PI与用户数据通常是连续存放。这要求SSD在提供标准的用户数据存储空间(如512字节或4096字节)之外,额外提供PI作为元数据的存储区域。Viable Sector Size,可变Sector Size,也叫活性扇区大小。它允许SSD在保存用户数据的同时,保存该数据的元数据,也就是对PI的存储。它是全闪存阵列实现NVMe端到端数据保护,降低静默错误发生的必要前提。在保证一致性能前提下,进一步保证存储系统和分布式文件系统对数据可靠性的高要求。PI 的具体实现包括 DIF 和 DIX 两种方式,这两种数据保护机制的主要区别是 PI 信息的位置不同。具体选择哪种格式,要根据应用场景的需求。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的高性能。Physical Region Page,物理(内存)区域页,主机侧用于通知SSD数据所在的内存位置的一种方式。NVMe把Host的内存分为页的集合,页的大小在CC寄存器中配置,可以是4K、8K…128MB,PRP Entry是一个64位的内存物理地址指针,描述的是一段连续的物理内存的起始地址,PRP list中每个PRP Entry都描述一个物理页。每个NVME 命令有两个域,PRP1和PRP2,Host通过这两个域告诉SSD数据在内存中的位置或数据需要写入的地址。Scatter Gather List,散列聚集列表,是另一种索引内存的数据结构。用以描述一段数据空间,该空间可以是数据源所在空间,也可以是数据目标空间,SGL由若干个SGL segment组成,每个segment又由若干个SGL descriptor组成。与PRP描述物理页不同,SGL可以描述任意大小的内存空间,更为灵活。多流写,该技术可以使SSD根据主机端提供的Stream ID,将具有相同或相似生命周期的数据写入到相同的擦除单元中去,大大提高GC时的效率,减少写放大,使得SSD的性能和寿命都有较大的提升。Zoned Name Spaces,分区命名空间。ZNS将一个Namespace的逻辑地址空间切分成单个zone(一种固定大小的子区间),每个zone都有一段LBA(Logical Block Address, 逻辑地址空间)区间,这段区间只能顺序写,而且如果要覆盖写,则必须进行一次擦除操作。这样,namespace就可以把NAND内部结构的边界透露给外界。NVMe SSD也就能够将地址映射表等内部管理工作交由host去处理,从而减少写放大、选择合适的GC时机。ZNS驱动器减少了用于过度配置的额外闪存,因为它们不希望频繁写入,因此成本更低。通过了解这些术语,我们可以更好地理解SSD技术的原理和性能特点,并在选择、使用和优化SSD时做出更明智的决策。更多关于NVMe技术细节,请参考文章“NVMe SSD性能影响因素一探究竟(上)”,“NVMe SSD性能影响因素一探究竟(下)”,“一文掌握RDMA、NVMe和NVMe-oF”,“收藏:NVMe协议基础原理介绍”,“漫谈NVMe、NoF和RDMA技术”,“NVMe over Fabric网络技术介绍”,“基于RDMA/NVMe低时延存储系统设计”,“NVMe over Fabric存储网络技术分析”,“收藏:NVMe协议基础原理知识”,“NVMe技术基础知识”,“深入剖析NVMe Over Fabrics”,“NVMe over RoCEv2网络技术要求和测试规范”等等。
免责申明:本号聚焦相关技术分享,内容观点不代表本号立场,可追溯内容均注明来源,发布文章若存在版权等问题,请留言联系删除,谢谢。更多架构相关技术知识总结请参考“架构师全店铺技术资料打包(全)”相关电子书(41本技术资料打包汇总详情可通过“阅读原文”获取)。温馨提示:
扫描二维码关注公众号,点击阅读原文链接获取“架构师技术全店资料打包汇总(全)”电子书资料详情。