lingguang
作者lingguang·2022-03-20 21:46
系统工程师·浪潮商用机器有限公司

SSD盘相关知识简介 及K1 Power Linux服务器上使用建议(1)

字数 2530阅读 963评论 0赞 0

SSD盘相关知识简介

程续,系统工程师,浪潮商用机器

因为 SSD 使用 NAND 做为存储介质, SSD 的寿命本质上受限 NAND 的寿命。 NAND 闪存存储单元是一个可以存储电荷的浮栅场效应管,编程 ( 写 ) 操作将电子聚集到浮栅,擦除操作则将电子拉离浮栅。一个写入 / 擦除 (p/e) 周期就是电子束的一次 往返移动,电子通过量子遂穿效应穿过隧道氧化层,耐用性之所以有限正是因为电子的往返移动会逐渐对隧道氧化层造成损伤。

NAND 寿命的量化指标叫 P/E Cycles ,也就是写入 / 擦除( program / erase )次数,因为 NAND 是以页( page )为单位写入数据,以块( block )为单位擦除,对于已经写入数据的 block ,必须将原有数据进行搬移, SSD 是通过“垃圾回收”( Garbage Collection , GC )的机制来回收被无效数据占用的空闲空间, GC 额外搬移的数据需要用到 SSD 的 OP ( Over-provisioning )预留空间。对整个 block 的数据擦除后才能允许新数据写入。一写一擦就会消耗 NAND 一个 P/E 。

# SSD寿命是什么?

SSD寿命 是指在生命周期内允许的数据写入量。

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

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

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

什么是垃圾回收?

垃圾回收, Garbage collection ,业界多称之为 GC 机制。可以简单的理解为固态硬盘里的磁盘整理机制,它的具体工作是将混杂着“有效”和“无效”数据的闪存颗粒中,把含有“有效”数据的 block 合并在一起形成大的“有效”块,而将“无效”的 block 进行完全性的擦除,以留出大量空白的块。

这样做的好处主要有二种,一是能够整合可用数据块,让数据寻址更容易,减少主控压力;另一方面,也是更重要的,可以为磨损均衡提供更多空白数据块,从而提升闪存颗粒的寿命和固态硬盘的使用寿命。

下图中, Block x 上面有效数据为 A,B,C , Block y 上面有效数据为 D,E,F,G ,红色方块为无效数据。垃圾回收机制就是先找一个未写过的可用 Block z ,然后把 Block x 和 Block y 的有效数据搬移到 Block z 上面去,这样 Block x 和 Block y 上面就没有任何有效数据,可以擦除变成两个可用的 Block 。

什么是 OP (预留空间)?

OP ,全称 Over-Provisioning ,中文名字叫做 “ 预留空间 ” 。

当一块 SSD 的数据写满时,需要额外的空间在启动垃圾回收之前接受新写入的数据,这块额外的空间,我们就称为预留空间。

1) 由于标称容量与 NAND 闪存计算差异造成的本征预留空间 OP1 。市场上 SSD 标称的容量是按照千进制( 1000 )来计算的,但是 NAND 闪存的容量是按照 1024 计算的。我们简单列个式子计算一下:
市场 SSD 标称 1GB(GigaByte)= 1000MB= 10001000KB= 100010001000Byte= 10^9Byte (1,000,000,000Byte).

NAND 闪存 1GB(GibiByte)= 1024MB= 10241024KB =102410241024Byte =2^30Byte (1,073,741,824Byte).
这两个计算方式之间正好相差 7.37% 。所以说 SSD 本征的预留空间就有 7.37% 。
2 ) SSD 由于性能要求而预留空间 OP2 ,这部分也是标称 OP 。
这个部分预留空间主要用于垃圾回收 GC ,存储 SSD 主控的固件( Firmware ),备用数据块( Spare Blocks) 等。
标称预留空间 OP= ( SSD 物理总容量 - 用户数据空间) / 用户数据空间

预留空间 OP 有什么好处:

1 )提高写入性能
由于有预留空间的存在,写入数据时并不需要经常做垃圾回收,加快了写入速度。

2 )降低写放大( WA, Write Amplification)

3 )增加闪存使用寿命
减少数据的搬迁,就是减少 NAND 闪存的读写次数,增加使用寿命。

不同工作负载对 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 大小都有一定权重。

下次会继续介绍在K1 Power Linux上如何监控SSD盘的寿命和使用建议。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关问题

X社区推广