更可靠、更强悍,NVMe 1.4规范深度解读( 五 )

在NVMe 1.4版本下,驱动器可以报告命名空间首选写入对齐和命名空间首选的写入粒度,这些值只对NAND页面的一部分应用最小化的“读取—修改—写入”周期。同样的,命名空间首选的存储单元重分配对齐和命名空间首选的存储单元重分配粒度也适用于NVME的存储单元重分配命令,这个命令与ATA TRIM命令类似。

更可靠、更强悍,NVMe 1.4规范深度解读

▲过小的写入数据可能会引发一个完整的“读取——修改——写入”周期,从而影响性能。

对SSD来说,如果不增加写入放大,就很难处理覆盖小数据范围或大数据范围但没有对齐部分的存储单元重分配命令,否则这将会损害性能并增加写入放大。支持NVMe 1.4的Streams功能的驱动器还可以在使用Streams功能时,提供首选写入和取消分配粒度的提示,这些值通常是上述提示的倍数。

充分利用这些信息的责任现在将会落在操作系统和文件系统上,可以根据此信息设置RAID的条带大小和文件系统块的大小。对数据库之类的应用也需要注意到这一点,因为这类应用往往会试图绕过操作系统的大部分存储堆栈,然后自主优化存储性能,这一点在NVMe 1.4部署后需要进行调整。

推荐阅读