当前位置: 首页 > news >正文

NVMe FDP会被广泛使用吗?

图片

文章开头,我们需要先了解固态硬盘的读写机制。我们知道,固态硬盘的存储单元是由闪存颗粒组成的,无法实现物理性的数据覆盖,只能擦除然后写入,重复这一过程。因而,我们可以想象得到,在实际读写过程中,数据的读写势必会在闪存颗粒上进行多次的擦除写入,特别是当某些区块已经完全被塞满的情况下。

这些多次的操作,增加的写入数量和原始需要写入的数量的比值,就是所谓的写入放大。所以说,写入放大数值高,会损耗固态硬盘寿命。(固态硬盘闪存颗粒有着额定的P/E值,即最大的读写次数,写入放大高,P/E损耗快,寿命低。)在QLC介质中,WAF的影响更加致命。

图片

举个例子,最坏情况下的,假如我要写入一个4KB的数据Z覆盖A,并恰好目标块没有空余的页区,需要进行GC回收。这个时候就需要把B、C、D、E、F五分数据都搬走,然后擦除整个数据块,擦除完成后再整体写入6个数据页。这个整个过程,Host虽然只写了4KB的数据,但实际过程中,由于GC的问题,NAND最终写入了24KB。那么写放大WAF=24KB/4KB=6.

图片


影响WAF的因素有很多:

  • SSD FTL算法的设计会影响写入放大的大小

  • Wear Leveling,WL磨损均衡:这一机制主要是通过均衡所有的闪存颗粒,从而延长整体的使用寿命,然而依旧是增加整体的写放大

  • Over-Provisioning,OP冗余空间:也会影响NAND写入的比例,最终影响写放大

  • Garbage Collection,GC垃圾回收:比如上面的例子,就是GC垃圾回收搬迁数据,擦除数据块后写入带来了整体写放大提升。

  • 业务读写的数据模型:随机写和顺序写对NAND的写入比例有非常大的影响,直接影响写放大的系数

  • 系统层的TRIM操作:会影响invalid无效数据是否在GC过程中搬迁,对写放大影响也有重要的作用。

写放大WAF是NAND-based SSD寿命消耗的关键参数,WAF越大,寿命消耗越快,越接近1,则寿命消耗越慢,也是最理想的情况。

扩展阅读:SSD写放大的优化策略要统一标准了吗?

NVME FDP(Flexible Data Placement)的出现,就是通过灵活的数据放置使主机服务器能够更好地控制数据在 SSD 中的位置。目标是减少写入放大以提高性能。谷歌和Meta向NVME协议组织提交了Flexible Direct Placement TP4146提案,小编在nvme spec 2.0c还没查到,根据最新消息,预计在NVME spec 2.5正式合入

图片

通过示意图,来看看FDP的作用。如下图,来自应用程序 A、B 和 C 的混合数据被写入介质中可用的“超级块”。然后,应用程序 A的数据被删除,删除后会触发盘内的GC垃圾回收。完成后,将测量两个模型的写放大 WAF。

图片

图片

  • 在传统SSD中,每个应用写的数据是散乱分布不同的Die/Block,需要盘预留空间OP完成垃圾回收数据搬迁,垃圾回收过程中,还有可能会影响前端IO性能。

  • 在FDP SSD中,不同的应用程序写入了特定的物理空间,即使某个程序的数据删除,可以针对指定的物理空间执行擦除,减少了不必要的垃圾回收,降低了写放大,同时也避免了对前端IO的影响。

Meta在跟韩国的一家SSD控制器厂商FADU合作中,FDP的功能已被验证可以有效降低写放大,减少了设备磨损,并提高了性能和 QoS。

图片

上图中数据显示:

  • 蓝色线是64K随机写,随着盘运行时间的增加,写放大也会不断增加,最后WAF超过3.

  • 黄色线是通过软件优化的方式调整数据落盘的方式“Log Structured 8 Writers 64KB”,写放大突增到2-2.4,之后保持正常波动,不再上升。

  • 红色线是“Log Structured 8 Writers 64KB with FDP”,在黄色线的基础上,打开FDP,写放大接近1.

图片

如上图,因为写放大的原因,对性能也产生了很大的影响。写放大的变化趋势和性能的变化趋势,基本成反比

此外,谷歌也在大力推进FDP的落地。根据谷歌公布的数据中心案例数据,基于4K随机写+OP 28%,在使能FDP功能下,写放大从2.5下降到1.25.

图片

谷歌这个案例可以看到FDP带给数据中心的好处有很多:

  • 节省OP空间,可以释放更多的存储容量,节省18%的成本。

  • 写放大的降低,也会提升盘的使用寿命,让SSD可以使用更长的时间,这部分也会有35%的成本节省。

  • 写放大降低后,也相应可以提升盘的性能。同样使能更多盘容量空间。

支持 FDP 的系统架构的前景,其中 WAF ~1 是新常态,应该足以引起任何超大规模运营商的注意。此外,FDP非常容易实现。它与旧主机向后兼容,因此无需升级基础架构。设备读取和其他行为不会更改。

扩展阅读:NVMe SSD:ZNS与FDP对决,你选谁?

读到这里,不知道大家是否有一个疑问,既然FDP这么优秀,会被广泛使用吗?

基于目前小编对FDP的认知,FDP在大型数据中心中应用可能会比较顺畅,Meta/Google也都在全力推进,并已经有突破的进展,但是并不会得到市场广泛应用。主要原因是FDP的实现,是需要对应用负载有清晰的了解,并有一定的软件开发适配。这部分开发适配的代价与使能FDP的收益,估计只有大规模数据中心可以最大化的平衡。

http://www.lryc.cn/news/220776.html

相关文章:

  • [黑马程序员Pandas教程]——Pandas数据结构
  • AI 绘画 | Stable Diffusion 提示词
  • tomcat默认最大线程数、等待队列长度、连接超时时间
  • 本地部署 CogVLM
  • bff层解决了什么痛点
  • 面试经典150题——Day33
  • 再谈Android重要组件——Handler(Native篇)
  • Javaweb之javascript的详细解析
  • Linux常用命令——cd命令
  • VHDL基础知识笔记(1)
  • volatile-日常使用场景
  • 策略模式在数据接收和发送场景的应用
  • 学习LevelDB架构的检索技术
  • Docker Swarm实现容器的复制均衡及动态管理:详细过程版
  • Proteus仿真--1602LCD显示仿手机键盘按键字符(仿真文件+程序)
  • Rust语言和curl库编写程序
  • FSDiffReg:心脏图像的特征和分数扩散引导无监督形变图像配准
  • 音视频技术开发周刊 | 318
  • asp.net docker-compose添加sql server
  • uniapp 微信小程序 uni-file-picker上传图片报错 chooseAndUploadFile
  • 《向量数据库指南》——用 Milvus Cloud和 NVIDIA Merlin 搭建高效推荐系统结论
  • 致:CSGO游戏搬砖人的一封信
  • MuLogin浏览器如何在一台设备上安全登录和管理多个LinkedIn账户?
  • STM32_project:led_beep
  • [go 反射] 入门
  • 【计算机网络】数据链路层-MAC和ARP协议
  • 本周三商店更新:多款套装下线,四款升级武器带异色皮肤返厂
  • WindowsServer2019-搭建FTP服务器
  • 国际阿里云服务器买哪种好用点?
  • 2023NOIP A层联测25 总结