分区存储管理程序模拟_天生分好区的固态硬盘?NVMe进化的下一步:ZNS分区命名空间...

如今固态硬盘已经在电脑当中得到普及,但是固态硬盘在电脑中其实过的并不如意,因为它必须把自己变成机械盘的样子去活着。

669d56794e81346ebad618daad45c4fd.png

固态硬盘模拟机械盘的三策:

操作系统的文件系统不大可能为了照顾固态硬盘而专门为固态硬盘新开一扇窗,所以固态硬盘必须遵守过去由机械硬盘时代建立起来的一套工作方式。一个人要装成另外一个人去生活是很累的,而且固态硬盘一装就是一辈子,还不能出纰漏。

7d9006b7f46982543d3ddfba8e3223e3.png

固态硬盘要想和机械硬盘一样工作,实现方式有上、中、下三策,下策是让固态硬盘完全去模拟机械硬盘的工作方式,比如对外表明自己是一颗512字节扇区的硬盘(闪存Page页的大小通常为16KB),而把各种模拟带来的额外负担留给自己,这也是当代大多数固态硬盘所走的路线。下图所示为Sector扇区映射,当代固态硬盘主要采用的是Page页映射。为了实现模拟,复杂的FTL闪存映射层必不可少,而大多数固态硬盘变砖都和FTL损坏有关。

a5bed1734120b87b1044c1d3286c53ff.png

上策是OpenChannel标准所提倡的,将固态硬盘当中的闪存等底层信息公开给软件,包括FTL、闪存磨损均衡等原本由固态硬盘主控/固件执行的工作都将交给软件接手进行管理,以期达到最高效率。代价是软件架构必须重新设计,成本很高,一些对性能有极高要求的企业级应用会重点考虑,而消费级领域由于闪存类型繁多,实际上很难在短时间内应用。下图所示为Open Channel SSD原理,允许驱动程序直接访问SSD中的物理闪存Page页。

c0de74a81066a976c2f632581ec6c945.png

上策太急,下策太缓,幸好我们还有中策,也就是本文将重点讨论的NVMe 2.0路线:通过新的"ZNS分区命名空间"让软件层有机会了解固态硬盘内的闪存配置并加以合理利用,提高固态硬盘的工作效率。ZNS是一个可选功能,如果软件层没有对此进行重新编程,不认识这些新特性,也不会影响到固态硬盘的可用性。ZNS预计可带来减少8倍的DRAM缓存容量需求,并减少约10倍的OP预留空间需求。既降低了DRAM缓存配置成本,又提高了用户可用容量,可谓是开源节流双管齐下,对大容量的企业级固态硬盘非常有吸引力。

dfeb46c9d95caae156acad6fcac88f13.png

ZNS分区命令空间:

我们平时给硬盘分区,是在文件系统层面,由于FTL闪存映射表这个中间层的存在,逻辑分区和实际闪存地址并不是固定的对应关系,起不到在数据分类存放的作用。不同的数据最终会混杂地存储在一起(下图左):

1fc221dd7c87bdcb092560a472f03b99.png

而支持ZNS分区(Zone)命名空间的固态硬盘可以根据数据类型的不同选择单独的存放位置,从而降低因垃圾回收带来的写入放大(减少对闪存磨损)。此外,ZNS的一个Zone区域可以定义为一个或多个Block闪存块的大小(一个Block通常为16MB),在Zone区域内只支持顺序写入(但支持随机读取),这样就可以达到降低写放大的目的。

5ba0242088cb172e6b48098a866397ca.png

ZNS在一定程度上是受到了SMR机械硬盘的启发,闪存和SMR叠瓦磁记录机械盘有一定的相同之处:前者的最小擦除和读取/写入单位大小不同,后者由于原理的限制不支持对单一磁道直接覆盖写入(会破坏到相邻磁道的内容)。在引入分区命名空间之后,可以优化固态硬盘的性能以及写放大表现。

745bb23a08eae277baa2922b01a8e195.png

ZNS分区命名空间还能减少对DRAM缓存容量的需求。传统上的4K扇区映射需要按照1GB:1MB的比例去配备DRAM缓存,才能确保良好的存取性能。而在采用ZNS分区之后,每个映射分区的容量在十几兆乃至几百兆,而不是过去的4KB。对于1TB以下的家用固态硬盘来说,1GB的缓存可能无所谓,但对于几十TB容量的大容量企业级固态硬盘,ZNS对于DRAM缓存容量需求的降低是非常有利的。

0d596291e112ade9e1e8a603690a2289.png

ZNS分区命名空间将作为NVMe 2.0标准的一部分提供,并且已被最新的Linux内核所支持。不过短期内应该不会和我们常用的家用固态硬盘产生太多联系。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值