FDPSSD技术与应用报告总结
一、数据放置SSD介绍
- 背景:SSD的写放大问题一直备受关注,导致性能下降、寿命缩短和资源浪费。
- 发展历程:
- Open-Channel SSD:主机端控制数据放置,减少写放大,但软件生态碎片化严重,开发和维护成本高。
- ZNS SSD:标准化接口,实现数据隔离和低写放大,但要求主机端软件栈较大改动。
- FDP SSD:通过数据分流减少写放大,简化软件生态集成,无需大量开发工作。
二、FDPSSD介绍
- 概述:FDPSSD提供设备配置信息和数据分类放置接口,使主机端能够将用户数据放置在最合适的位置,减少垃圾回收和写放大。
- 术语:
- Endurance Group:SSD中只有一个,NAND块磨损相同。
- Reclaim Group:可存储不同系统应用的数据,实现数据隔离。
- Reclaim Unit:垃圾回收的基本单元,主机端可执行随机写操作。
- Reclaim Unit Handle (RUH):管理主机端要写入Reclaim Unit中的数据。
- 数据分流:通过不同的RUH将不同类型的数据放置在不同的Reclaim Unit中。
- 数据放置指令 (Data Placement Directive):允许主机端指定Reclaim Unit放置用户数据。
- 放置句柄 (Placement Handle):Namespace中可访问的RUH的索引号。
- FDP模式:支持开启或关闭FDP功能,关闭时兼容传统SSD,开启时通过数据分流减少写放大。
- 日志信息:主机端可查询设备配置信息、RUH使用信息、设备统计信息和事件信息。
- Linux软件生态支持:内核自v6.2开始支持I/OPass-through接口访问FDPSSD,SPDK自v23.05开始支持FDP功能,FIO、QEMU、RocksDB、MySQL等工具和系统应用已支持FDP功能。
- 系统应用适配FDPSSD:可通过IOCTL接口、I/OPass-through接口、SPDK接口和内核文件系统使用FDPSSD的分流功能。
三、浪潮信息服务器NF5280M7与三星FDPSSD兼容性验证
- 测试项目:基本信息识别、性能测试、压力测试、重启测试、热拔插测试。
- 测试结论:三星PM9D3a在浪潮信息服务器NF5280M7上通过兼容性验证,除单盘写性能略有降低外,其它方面无兼容性问题。
四、FDPSSD在多种场景下的写放大收益验证
- 验证环境:使用三星PM9D3a SSD和Ubuntu 22.04操作系统。
- FIO场景验证:
- 裸盘:FDP模式下,两种数据类型的写放大几乎消失。
- 内核文件系统:FDP模式下,ext4和XFS文件系统写放大分别降低40%和41%。
- Filebench场景验证:FDP模式下,ext4和XFS文件系统在varmail负载下写放大分别降低17.28%和8.23%。
- 数据库场景验证:
- RocksDB:FDP模式下写放大系数降低52.2%。
- MySQL:FDP模式下写放大下降12.5%。
五、总结
FDPSSD使用简单,收益明显,易于集成到现有软件生态中,能够有效减少写放大,延长SSD寿命,并提升性能,适用于大规模数据中心。