灵活数据放置(Flexible Data Placement)技术赋予主机服务器更多控制 SSD 中数据存储位置的能力。其目标是减少写入放大以提升性能。Meta 公司分享的基准测试表明,该技术确实能达到这一目标。
在 Stenfort 先生的第一个基准图表中,他绘制了三个 SSD 的写入放大随时间的变化关系。尽管 Meta 的图表并未在其水平轴上显示实际时间,但本文后面其他图表将表明整个图表涵盖了可能长达一整天的长时间段。
写入放大因子(WAF)为1.0表示每次服务器写入只会导致 SSD 内部的 NAND 闪存进行一次写入。这是理想的,因为 SSD 中的闪存会在大量写入后磨损,因此我们希望尽可能减少写入次数。当 WAF 大于1时,意味着 SSD 的内部维护操作(如垃圾回收)除了主机服务器请求的写入外,还会产生额外的 NAND 写入流量。FDP 技术旨在显著降低 SSD 的 WAF。
图表中的蓝色线条代表了一个接受无尽64KB随机写入的标准 SSD。可以看出,随着 SSD 接受此工作负载的时间增加,WAF 逐渐增大,接近略高于3的数值。此时,每次主机写入会导致 SSD 对内部 NAND 闪存进行三次写入,从而将闪存芯片的寿命缩短到正常值的三分之一。
图表展示了在写入放大因子(WAF)与时间图表上绘制的三条线。时间轴上没有标签,WAF垂直轴从0-4。靠近垂直轴的蓝色箭头在底部表示“更好”,在顶部表示“更差”。三条线中的第一条(蓝色)代表经历64kB随机写入的标准 SSD,起始值为1,然后在左侧快速上升,然后逐渐变细,接近略高于3的 WAF 渐近线。一条标记为“Log Structured 8 Writers 64KB”的黄色线条更早、更快(非常突然)地升至2.4的 WAF,然后在图表剩余部分在该水平附近波动。最后,一条标记为“Log Structured 8 Writers 64KB with FDP”的红色线条起始值也为1,并在图表剩余部分保持在这个值。
针对这个问题最常见的解决方案是在 SSD 内添加更多的 NAND 闪存,并使额外的闪存对用户不可见。这被称为过度配置,自然会增加 SSD 的成本。是否可以在不提高价格的情况下降低 SSD 的 WAF?
他表示,一些聪明的设计者可能会尝试通过将工作负载转换为更适合 SSD 的形式来改善写入放大。这可以通过修改软件,将工作负载转换为多个流并使用更快的数据结构来实现。这在黄色线条中体现出来,该线条展示了采用日志结构的8个串行写入器的方法的数据。虽然在这种情况下 WAF 提升得更早、更快,但它达到2.2-2.3的水平后就保持在那里,这比蓝色线条达到的3.0水平要好得多。
你可能没有注意到,图表底部有一条沿着1.0 WAF 线延伸的红色线条。这是将相同的日志结构8写入器方法与 FDP 结合使用的 WAF 结果。这样做的结果是 SSD 额外写入次数大大减少,能够在显著减少过度配置的同时提供出色的性能,并允许 NAND 芯片几乎将全部磨损预算提供给主机服务器。
这对于减少磨损非常有利,同时保持 SSD 的低成本,但是这对性能意味着什么呢?
性能也会提升
Stenfort 先生的下一张图表展示了使用相同配色方案的相同测试的写入吞吐量。不出所料,标准 SSD 的蓝色线条提供了最差的长期性能,从超过3,000MB/s缓慢衰减到接近1,000MB/s的渐近线。这是有道理的:如果每次主机写入触发三次内部 NAND 写入,那么 SSD 的速度确实应该减慢到其原始速度的三分之一。
该图在写入吞吐量(MB/s)与时间图表上绘制了类似的三条线。时间轴上同样没有标签,垂直 MB/s 轴从0-3,000。蓝色线条(标准 SSD)起始值略高于3,000,然后逐渐变细,接近1,000的渐近线。黄色线条显示“Log Structured 8 Writers 64KB”起始值为3,000,然后更早、更快(非常突然)地下降至图表剩余部分在1,500-2,000之间快速且嘈杂的水平。最后,红色线条“Log Structured 8 Writers 64KB with FDP”起始值为3,000,并在图表剩余部分保持在这个值。
考虑到这一点,软件方法的黄色线条比蓝色线条下降得更快也就不足为奇了,但从长远来看,写入速度在1,500-2,000MB/s之间随机跳跃,这远优于蓝色线条的1,000MB/s水平!
最后,我们看到红色线条。与 FDP 相关的额外处理似乎相比其他两条线在起始带宽上产生了非常小的惩罚,但性能在整个图表时间段内都非常稳定地保持在3,000MB/s。在带宽是最重要的参数的系统中,这意味着一个 FDP SSD 可以完成三个标准 SSD 的工作,这应该会带来非常显著的成本节省。
Stenfort 表示,带宽并不是唯一的故事,服务质量(QOS)和功率消耗也会得到改善。这是有道理的,因为写入放大经常导致停滞,这是一个 QOS 问题,而性能降低意味着 SSD 在完成相同工作量时会消耗更多功率。黄色线条中的噪声可能是 QOS 问题的一个可能指示符。