您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。 [ODCC]:2024年FDP SSD技术与应用白皮书 - 发现报告

2024年FDP SSD技术与应用白皮书

信息技术 2024-09-30 - ODCC 健康🧧
报告封面

[编号ODCC-2024-0500B] FDPSSD技术与应用报告 版权声明 ODCC(开放数据中心委员会)发布的各项成果,受《著作权法》保护,编制单位共同享有著作权。 转载、摘编或利用其它方式使用ODCC成果中的文字或者观点的,应注明来源:“开放数据中心委员会ODCC”。 对于未经著作权人书面同意而实施的剽窃、复制、修改、销售、改编、汇编和翻译出版等侵权行为,ODCC及有关单位将追究其法律责任,感谢各单位的配合与支持。 编写组 项目经理: 齐辉三星电子 工作组长: 郭亮中国信息通信研究院 贡献专家: 目录 一、数据放置SSD介绍.........................................................................1 (一)数据放置SSD的背景...........................................................1(二)数据放置SSD的发展历程...................................................2 (一)概述.........................................................................................5(二)FDPSSD中的术语................................................................5(三)查看FDPSSD中的日志信息.............................................10(四)Linux中的软件生态对FDPSSD的支持..........................13(五)系统应用适配FDPSSD......................................................15 三、浪潮信息服务器NF5280M7与三星FDPSSD兼容性验证.....16 (一)服务器配置...........................................................................16(二)测试项目...............................................................................17(三)测试内容...............................................................................171.基本信息识别..........................................................................172.性能测试..................................................................................183.压力测试..................................................................................204.重启测试..................................................................................215.热拔插测试..............................................................................22 (一)验证环境说明.......................................................................23 (二)FIO场景验证.......................................................................231.FIO中FDP选项说明..............................................................242.基于裸盘的验证......................................................................243.基于内核文件系统的验证.....................................................25(三)Filebench场景验证..............................................................27(四)数据库场景验证...................................................................291.基于RocksDB的写放大验证................................................292.基于MySQL的写放大验证..................................................31 五、总结.................................................................................................33 前言 主机端数据放置技术一直是超大规模数据中心关注的话题,因为它影响所部署的SSD的总体拥有成本(TotalCostofOwnership)。尽管Open-ChannelSSD和ZNSSSD等主机端数据放置技术都具有相应的使用场景和参与客户群体,但这些解决方案不可避免的导致软件生态系统的碎片化,从而使代码变得臃肿且增加开发和维护成本。 FlexibleDataPlacement(FDP)是2022年批准的NVMe规范(TP4146),由三星,Meta和谷歌推动,旨在减少写放大的同时,简化整个软件生态系统的集成。FDPSSD支持FDP功能开启和关闭两种模式,在关闭FDP功能时,可以兼容传统SSD,无需对现有的软件生态做任何改动,便可直接使用;开启FDP功能后,只需要投入少量的开发资源便可享受FDPSSD特性所带来的优化效果,且这些改动并不会过多的增加现有软件生态的复杂性和运维成本。 本文介绍了FDPSSD的特性和使用方法,以帮助研发人员更好地理解和使用FDPSSD。 由于时间仓促,水平所限,错误和不足之处在所难免,欢迎各位读者批评指正。如有意见或建议请联系编写组。 FDPSSD技术与应用报告 一、数据放置SSD介绍 (一)数据放置SSD的背景 SSD的写放大一直是业内持续关注的问题。写放大就是NAND的实际写入量比主机端的写入量多。在标准SSD中,由控制器决定数据的放置位置。因此,不同应用的数据混合分布在同一个物理闪存块上,其中一部分数据失效,无法直接擦除该闪存块,需要垃圾回收(GarbageCollection)而导致写放大。写放大带来的多余写入量不仅占用盘内的带宽资源,影响整体性能和时延。同时因为有额外的写操作,还会缩短NAND的使用寿命。 数据放置SSD是一种新型的存储技术,其核心在于主机端直接参与SSD中数据的放置和管理,通过增强主机端与存储设备端之间的合作,实现更高效、更灵活的数据管理。数据放置SSD可以给主机端提供接口,使不同系统应用的数据写入特定的物理空间,对数据放置的位置加以控制。当某个系统应用的数据删除时,可以对指定的物理空间执行擦除,减少不必要的垃圾回收而降低写放大,同时延长了SSD的寿命并减少对主机端应用I/O性能的影响。 (二)数据放置SSD的发展历程 Open-ChannelSSD是将SSD内部的物理通道等拓扑信息告知主机端,由主机端来决定数据放置。其核心思想是将SSD内置的FTL功能搬移到主机端,主机端直接负责数据存入的具体物理地址。由于FTL由主机端接管,所以FTL可以根据实际业务的负载特点,实现一定程度的定制,Open-ChannelSSD的优势如下: 主机端控制权:由于FTL由最懂数据的主机端接管,所以FTL可以根据业务数据的读写行为及运行负载的特点去优化数据放置,减少写放大。 I/O隔离:Open-ChannelSSD里面的每个并行单元(ParallelUnit)作为NAND操作的基本单元,可以做到在物理上隔离,以减少访问不同业务数据的干扰。 延迟可预测:由于主机端控制所有读写命令,并知道每一个并行单元上正在执行的NAND操作,所以对读写命令的时延有准确的把握。 但是Open-ChannelSSD的缺点也很明显: Open-Channel规范只定义了最为通用的部分,而不同厂商的SSD产品规格不同,难以统一。 需要主机端软件层面的支持,或者重新增加一个软件层来匹配原有的软件栈。目前软件生态并未完善,上层应用需要做较大改动。 主机端开发人员需要透彻地了解SSD内部原理,并根据不同业务的不同需求,实现定制的FTL。 ZonedNamespace(ZNS)SSD的出现弥补了Open-ChannelSSD的不足,既允许主机端自由放置数据,同时有标准的软件生态,是在Open-Channel基 础 上 更 加 标 准 化 和 商 业 化 的 实 现 。ZNS将 一个Namespace的逻辑地址空间分成多个固定大小的zone,每个zone都是一段连续的逻辑地址区域。zone内只支持顺序写,如果要覆盖写,必须先执行擦除操作。Namespace通过将NAND结构的边界和地址映射表等内部管理工作交给主机端处理,使得能够选择合理的垃圾回收时机以减少对整体性能的影响。 ZNSSSD具有以下优势: 标准化接口:目前ZNS规范和命令集已经合入NVMe规范2.0中。 I/O隔离:不同业务的数据可以放置在不同的zone中从而做到数据隔离,减少相互干扰。 更低的写放大系数:由于zone内部只接受顺序写,所以控制器不需要对zone进行垃圾回收,设备内部的写放大系数接近于1。 更低的成本:ZNS的架构特点使得SSD内部只需要管理zone相关信息,无需很大的盘内内存。由于盘内没有垃圾回收,所以也不需要很高的预留空间,因此与传统SSD相比,有更多的用户容量。 延迟可预测:ZNS执行读写操作的时机由主机端控制,由于没有设备端的垃圾回收,不仅提高了主机端的写入带宽,同时也降低了垃圾回收引入的时延。 但是ZNSSSD也有缺点,由于zone内部有严格的顺序写限制,依然要求主机端软件栈做较大改动来适配新的zone接口规范。 为了解决Open-ChannelSSD和ZNSSSD的问题,NVMe发布了新的技术提案FlexibleDataPlacement(TP4146),由三星,Meta和谷歌共同推动,定义了一种新的数据放置方案,旨在减少写放大的同时简化整个软件生态系统的集成。核心思想是通过其对不同类型的数据进行分流来实现的。原理是主机端根据数据的特点,对数据进行分类,将相同类型的数据,即生命周期相似的数据,放置在同一个数据流的存储单元中。这样,当生命周期结束的时候,这些数据同时失效,那么存储单元就可以被回收,减小垃圾回收而引入的写放大。 该方案既不像Open-ChannelSSD需要重新实现高度复杂的FTL,也不像ZNSSSD要求zone内部有严格的顺序写制约。更重要的是,无需像Open-ChannelSSD和ZNSSSD需要改变整个软件栈的数据组织方式。FDPSSD的接口适配简单,只需要少量工程量的投入便可以获得FDPSSD带来的收益。 二、FDP SSD介绍 (一)