写点什么

高寿命 NVMe SSD 应用场景探讨

用户头像
怀瑾握瑜
关注
发布于: 刚刚
高寿命NVMe SSD应用场景探讨

概述                                                  

无论 OEM 还是系统集成商,在根据 NVMe SSD 寿命选型是需要考虑业务场景是读密集型、写密集型,还是读写混合型。对于读密集型业务负载,如搜索业务,较低寿命的 SSD 可以满足需求,但对于写入密集型应用,如缓存系统,读写混合型负载,如 OLTP SQL 数据库,SSD 选型就要考虑高寿命产品。

什么是 SSD 寿命?

SSD 寿命是指在生命周期内允许的数据写入量。按照 JEDEC 固态技术协会制定的标准 JESD218 中定义,企业级 SSD 在到达标称寿命临界值前,必须满足以下条件:

  • SSD 标称寿命(建议使用 JESD219 定义的寿命测试工作负载)

  • SSD 的用户容量保持恒定(保证 OP 不变)

  • 在正常寿命使用期内,不可修复错误率(UBER,Uncorrectable Bit Error Rate)≤ 10E-16

  • FFR ≤ 3%(对应 AFR 是 0.6%,MTBF ≥ 150 万小时)

  • SSD 关机后,40℃的室温下,数据可以保持 3 个月

因为 SSD 使用 NAND 做为存储介质,SSD 的寿命本质上受限于 NAND 的寿命。NAND 寿命的量化指标叫 P/E Cycles,也就是写入/擦除(program / erase)次数,因为 NAND 是以页(page)为单位写入数据,以块(block)为单位擦除,对于已经写入数据的 block,必须将原有数据进行搬移,SSD 是通过“垃圾回收”(Garbage Collection,GC)的机制来回收被无效数据占用的空闲空间,GC 额外搬移的数据需要用到 SSD 的 OP(Over-provisioning)预留空间。对整个 block 的数据擦除后才能允许新数据写入。一写一擦就会消耗 NAND 一个 P/E。在 NAND 还是 2D 平面时代,TLC NAND PE 只有 500~1000,但在 NAND 进入 3D 堆叠时代后,用于企业级 SSD 的 3D eTLC 可以达到 5000~10,000 PE。



如何计算 SSD 寿命?

SSD 寿命的单位有两种,PBW(或 TBW)和 DWPD。

  • PBW/TBW:全称是 Petabytes/Terabytes Written,也就是在 SSD 的生命周期内允许的主机端数据写入量。1PBW = 1000TBW

  • DWPD:全称是 Drive Writes Per Day。也就是在生命周期内(一般为 5 年),SSD 每天允许全盘写入的次数。DWPD 和 PBW/TBW 可以相互换算,公式如下:

如果用户或 OEM 厂商知道业务场景下每天的数据写入量是需要对整盘容量写几遍,就可以根据寿命指标,如 0.8,1 或 3 DWPD 选型 SSD。如果知道工作负载的数据总写入量,就可以根据 PBW 的寿命指标进行选型。

DWPD 的计算和几年生命周期有关,一般生命周期也是产品保修期。以 PBlaze5 926 系列为例,每天 3.4 DWPD 写入量对应 5 年更长的生命周期,但如果每天有 5.7 DWPD 的写入量,生命周期就会减短到 3 年。Memblaze PBlaze 系列 SSD DWPD 和 PBW 寿命标称均是 JESD219 工作负载下测试得出。


不同工作负载对 SSD 寿命的影响

企业应用的工作负载千差万别,而不同工作负载对固态硬盘的寿命有着巨大的影响,其中顺序、纯 4K 随机和 JESD219 中定义的 IO 模型(IO pattern)是三种比较典型的工作负载。而不同工作负载因为数据分布的不同触发“垃圾回收”(GC)的粒度不同。GC 在进行无效数据的搬移时会引入额外的系统数据写入,带来写放大 WA(Write Amplification),也就是实际用户写一笔数据,真正写入到 SSD 的可能需要 2-3 笔。写放大因子(Write Amplification Factor,简称 WAF)是 NAND 总写量除以用户预期的数据写入量的比率,通过 WAF 可以对 WA 引入的多余写入量进行量化。



从上表也可以清晰看出,不同工作负载测试下 SSD WAF 不同。WAF=1 是最理想状态,但实际的业务场景很少有纯顺序工作负载。因此 JESD219 对企业级 SSD 寿命测试工作负载进行了统一,包含从 512 bytes 到 64K,不同权重 IO 分布的组合,以小块 4K IO 为主,占有 67%的访问,512 bytes 占了 4%,1K、18K、16K、32K 等 IO 大小都有一定权重。JESD219 根据企业级 IO 模型的特点,还定义了 50%的访问集中在前 5%的有效空间(热数据),30%的访问集中在接下来 15%的有效空间(温数据),20%的访问集中在剩 70%的有效空间(冷数据),从这一点也说明企业级的数据冷热度有差异。

从 IO 分布看,JESD219 相比 4K 纯随机工作负载差异并不是很大,因为 JESD219 定义的 IO 模型 4K 占比有 67%,但由于 JESD219 中有 70%是冷数据,因此会触发磨损均衡(Wear-leveling),针对冷数据的静态磨损均衡(Static Wear-leveling)会引入额外数据搬移,也是 JESD219 WA 会比纯 4K 随机负载下略高的原因。不同工作负载影响不同 WAF,因此也会影响 SSD 寿命参数的标称。


SSD 寿命如何查看?

S.M.A.R.T 是 Self-Monitoring, Analysis and Reporting Technology 的缩写,提供 NVMe 标准和厂商自定义的 SMART 信息,用于监控 SSD 的健康状况,并根据设定的阈值提供预警。SSD 寿命可以通过标准 nvmecli 工具获取 SMART 信息读取。同样以 PBlaze5 920 3.84TB 系列为例,寿命相关 SMART 参数输出如下:

# nvme smart-log /dev/nvme0n1percentage_used         ,0%        data_units_written       : 1,287,205  // 单位是1000 * 512bytes,换算GB为1287205*1000*512bytes /1000/1000/1000 = 659.04896 GB
复制代码

其中 data_units_written 可以推算出已经有 659.04896 GB 用户数据写入 SSD,用户容量 3.84TB 的寿命总写入量是 10.52 PBW,所以 659 GB 的数据写入太毛毛雨,percentage_used 显示设备已使用寿命占比仍然为 0%,100%代表设备寿命消耗完。

消费级 SSD 和企业级 SSD 的寿命有什么不同?

消费级 SSD 主要定位个人用户,采用消费级 NAND,一般 PE 在 3000,OP 空间预留较小,寿命标称是 TBW 级别(后面会对这个参数做详细介绍)。企业级 SSD 主要定位数据中心批量部署, NAND 采用企业级标准,一般 NAND PE 在 7000~10,000,OP 空间更大,寿命标称是 PBW 级别。



除了寿命的差异,消费级 SSD 定位个人用户,工作负载压力轻,技术门槛始终,侧重成本和容量,OP 空间小,在 7%左右,且以中小容量为主,用户对于数据安全和性能一致性要求一般。而企业级 SSD 适用于企业级数据中心批量部署,研发和质量验证成本高,技术门槛高,在实际应用中,工作负载大,用户对数据安全及产品性能一致性极度严苛的需求。

也来谈谈最近大火的硬盘挖矿

最近 IT 圈内最火的事莫过于出道即巅峰的 Chia 虚拟货币了,传说中的硬盘挖矿方案直接导致了各大平台的机械硬盘,不但价格翻倍,且全线断货。疯狂的同时,也引来了 CCTV2 财经频道的点名,提醒投资者 Chia 局势尚不明朗,需谨慎入场。那么,Chia 币背后的原理是什么呢?抛开跌宕的市场看技术,Chia 应用负载特点以及对 SSD 的要求。

与比特币(BTC)、以太坊(ETH)采用工作量证明(POW)不同的是,Chia 采用“空间和时间证明”(Proof of Space and Time),利用存储设备中的剩余存储空间进行挖矿。在开始挖矿之前需要在存储设备空间进行播种(plot),plot 过程是用处理器或者显卡通过特有算法将存储设备写满加密的哈希数据,这个过程在行业里就被叫做 Plot 盘,可以简单称之为 P 盘。然后农民(farmer)在已经播种好的 P 盘文件(plots files)上寻找最佳答案。所以 P 盘文件总容量相对于全网容量占比越高,越容易“中奖”,对应的挖矿收益也越高。

播种的过程需要占用 CPU、内存(每个 P 盘线程默认需要约 4G 内存空间)和临时空间(生成 K = 32 规格的播种文件大概需要占用 332GiB 临时空间)。因此,想要更高效地完成挖矿,抢占第一批 Chia 币发放名额,使用大容量、高带宽、高寿命的企业级固态硬盘无疑是上上之选。

Memblaze 企业级 NVMe SSD 采用企业级 TLC 中最高规格等级的颗粒,通过 4K LDPC 引擎和多项保护算法保证,实现了全盘 1 万次的闪存擦写相较于一般常见的企业级 SSD 而言,能够提供超出 40%的磨损寿命。 以 PBlaze5 920 系列 7680 GB 为例,可以最高支持 21 个 K = 32 规格并发 plot,而一组 21 个并发临时文件写入量就约为 21 x 356.5 GB = 7488.6 GB,若一天按照 3 组 21 个并发计算,总体写入量就高达 22.5 TBW,相当于极端写入情况下,每天 7680 GB 全盘写近乎 3 遍,能够写满 931 天。



除了高寿命和大容量,持续性高带宽也是 “挖矿专家”选购存储设备的关注参数。以 Chia 币为例,根据官网介绍,生成 K = 32 规格的播种文件大约需占用 356.5GB 的临时空间与最终 108.8GiB 的 plot 文件(GiB 以 1024 计算),“挖矿专家”一般在 4~5 小时完成整个 plot 过程,大多数选手在 9~12 小时。


我们通过实际测试,尝试找到“挖矿专家”plot 过程仅需 4~5 小时的秘密。

测试环境:

x86 服务器:CPU: Intel Xeon Gold 6132 @ 2.60GHz

OS:CentOS Linux release 8.3.2011

企业级 NVMe SSD:PBlaze5 920 系列 3.84TB 用于存储临时文件

HDD:用于存储最终 plot 文件存储


分别设置 K = 32 并发量为 1 和 8 时,使用默认参数,测试得到单 plot 最大写入速度和 P 盘耗时如下,这离“挖矿专家”4~5 小时的 P 盘时间已经非常接近:



进一步分析 8 个 plot 并发测试场景数据显示,在 p 盘的过程中对 NVMe SSD 写入压力较大,写带宽峰值超过 3GB/s。


对写 IO 块大小的监控显示,P 盘过程产生的临时文件块大小主要为 128KB,所以使用大带宽 NVMe SSD 做缓存设备的性能表现出色。



综合上述测试数据与 Chia 官方推荐信息,使用读写带宽更出色,容量更大和寿命更高的企业级 NVMe SSD 产品。挖矿也是技术密集型行业,所以真实的挖矿场景在设备选型、软件架构、运维管理等等方面,和文章中的测试方案可能不同。


总结

DWPD 和 PBW 是 NVMe SSD 两个重要的寿命指标,反应 SSD 在生命周期内允许的用户写入量,特别是 JESD219 负载下的寿命标称,可以帮助 NVMe SSD 寿命选型。

文件币 Filecoin、Chia 等等区块链项目,采用 NVMe SSD 挖矿,就是在 SSD 里预先存进去“彩票”,再由区块链钱包隔一段时间发布“抽奖”,SSD 在内部读取“彩票”数据,谁的 SSD 内有最佳答案,就获得区块链的货币奖励,如果想在挖矿中赢得更高中奖概率,采用企业级 NVMe SSD,提供高一致稳定带宽、大容量、高寿命,快速提高“彩票”(加密文件)总容量相对于全网容量占比,也就能提高挖矿收益。


原文链接

发布于: 刚刚阅读数: 2
用户头像

怀瑾握瑜

关注

小跑步跟上IT圈儿技术的无尽迭代 2021.06.16 加入

6年+闪存存储行业Technical Communication,在结合文学、设计、信息技术的跨学科TC行业深耕

评论

发布
暂无评论
高寿命NVMe SSD应用场景探讨