IDC 预测,2010 年至 2015 年,全球固态硬盘出货量预计将以 52% 的复合年增长率增长。 企业服务器和存储采用率的相应激增意味着对媒体管理等关键组件的更深入了解以及新驱动器与旧驱动器的使用可以帮助管理员更好地管理存储资源。
IDC 预测,2010 年至 2015 年,全球固态硬盘出货量预计将以 52% 的复合年增长率增长。 企业服务器和存储采用率的相应激增意味着对媒体管理等关键组件的更深入了解以及新驱动器与旧驱动器的使用可以帮助管理员更好地管理存储资源。
SSD 可能看起来与传统的旋转硬盘驱动器非常相似,但相似之处只是表面上的。 对 SSD 内部工作原理的检查表明,SSD 实际上与传统驱动器的共同点很少。 一个关键示例是每种类型的驱动器覆盖现有数据的方式不同——旋转驱动器只需一步即可覆盖,而基于 NAND 闪存的 SSD 则需要额外的步骤。 本简介检查了 SSD 的“多步写入过程”。
背景:SSD 设计基础
要了解 SSD 如何覆盖数据,首先要了解 SSD 的构造方式。 任何 SSD 都具有以下基本组件:
- 主机接口
- 印刷电路板
- 与非控制器
- NAND闪存
写入过程差异
日期写入 NAND 与写入旋转硬盘驱动器不同——包含数据(无论有效还是无效)的 NAND 必须首先被擦除; 只有这样它才能写入新数据。 简而言之,擦除过程首先擦除整个块; 只有这样,该块中的页面才能写入新数据。
因为已经有数据的 NAND 在写入新数据之前必须先擦除,所以满设备(没有空/已擦除页面)的写入顺序与空设备(或有足够的空/擦除页面来吸收传入的写入流量)。
可用的空白/已擦除页面
假设我们能够确保随时准备好空白/已擦除的页面。 当写入进入 SSD 时,流程看起来类似于旋转驱动器:
- 数据从主机接口进入 SSD,导致写入请求(最终将写入 NAND)。
- “是否有任何空白/已擦除的页面”(即准备写入的页面)? 在图 1 中,可以使用空白/已擦除的页面。
- 将数据写入可用页面。
这个写入过程是一步完成的,就像旋转驱动器一样。 通常,这比写入没有空白/已擦除页面的 SSD 快得多(如图 2 所示)。
可用的空白/擦除页面不足
假设现在我们有一个 SSD 的空页/擦除页不足。 当新数据写入 SSD 时,需要在写入发生之前立即擦除单元格:
- 数据从主机接口进入 SSD,导致写入请求(最终将写入 NAND)。
- “是否有足够的空/擦除页面”(即准备写入的页面)? 在图 2 中,可用的空白/擦除页面不足。
- 找到一个数据已失效或其有效数据可以移动的块,使其成为一个很好的擦除候选者,然后调用垃圾收集例程(请参阅下面的新驱动器与旧驱动器部分)以启用该块以进行擦除.
- 擦除此块。 (根据需要重复以将数据存储在写入请求中。)
- 将数据写入新擦除/空页。
第 4 步完成起来可能会很慢,因为擦除 NAND 比写入 NAND 需要更长的时间——任何 NAND 擦除周期都很“慢”(通常,写入 MLC 单元需要 250 微秒 [µs],但擦除它需要 1500µs)。
新驱动器与旧驱动器
如果您使用的是全新的 SSD,写入过程与图 1 相同。新 SSD 是空的; 它的所有页面都将是空的并准备好接收新数据,因此在写入数据时很少执行擦除步骤。 但是,随着驱动器填满,这些空白/已擦除页面的数量会减少并最终被消耗掉。
SSD 中有一个后台进程可以释放数据已失效的页面,使它们成为被擦除的理想候选者。 这个后台进程称为“垃圾收集”。
结语
如果基于 NAND 的 SSD 已满,向其写入新数据与向空 SSD 写入数据的过程截然不同。 如果驱动器是空的,写入过程与旋转驱动器非常相似。 但是,如果 SSD 已经包含数据,则需要额外的步骤:
- SSD 必须确定是否有足够的可用空间来接受数据。
- 如果不是,它会调用其垃圾收集例程来分组和移动有效数据,以便可以擦除整个块(以便块中的页面可以接收新数据)。
- 该块被擦除。
- 数据已写入。
这些额外的步骤都由 SSD 控制器处理,无需主机干预,但会导致性能差异。
请参阅“SSD 性能状态” Micron.com 上的白皮书以获取更多信息。
道格·罗林斯 (美光科技企业级固态硬盘高级应用工程师)
Doug Rollins 于 2009 年加入美光,担任企业 SSD 产品组的应用工程师。 在加入 Micron 之前,Rollins 先生在服务器系统、网络设备和存储平台/数据保护设计和制造以及固态存储领域工作了 17 年。 罗林斯先生是 13 项美国专利的指定发明人,并因其杰出的技术成就而获得存储网络行业协会 (SNIA) 和英特尔公司的认可。 Rollins 先生在洪堡州立大学获得数学学士学位。