前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >聊聊基于Flash芯片的SSD的问题

聊聊基于Flash芯片的SSD的问题

作者头像
用户4700054
发布2022-08-17 13:02:12
6500
发布2022-08-17 13:02:12
举报
文章被收录于专栏:存储内核技术交流

基于Flash的SSD

  • 基于Flash芯片的SSD中从整体到局部的分层为Nand Flash => Chip => Plane => Block => Page几个层次。其中BlockNand Flash擦除的最小单位;Page是读写操作的基本单位
Erase Before OverWrite问题
  • 基于Flash芯片的SSD往某个block写数据的过程中,不论原来的Block是什么,必须先擦除(Erase)整个Block为1,然后在往这个Block写入新数据,这个擦除操作增加了覆盖写的开销。如果是更改某个Block中的Page,操作还是和之前一致,必须擦除整个Block然后在写入新的Page.在擦除操作之前必须将需要更改的Block全部读入到内存中,然后擦除相关的Block,然后将新Page数据覆盖写到内存Block中Page的位置,最后将内存中的Block写入到Flash芯片中,整个更改Page操作就完成了。
  • SSD首次格式化后,SSD中将会被写入的Block尾椎都会被记录下来,记录一份位图中,每个BIt对应一个Block.文件系统中删除文件的操作仅仅是更改文件系统中元数据对应的存储介质对应区域,并没有因为删除而获得更多的空闲空间,所以针对SSD自身,空闲空间越来越小,最后会导致没有空闲空间,如果是这样每次写都会到来写放大(读取一些包含无效数据的Block,读入然后擦除在写入),写性能会越来越差。Block中Page是必须按照一个方向进行数据写入,例如一个Block 512K,包含了128个Page,当这个Block被擦除后,SSD控制器可以先向这个Block写入32个Page,经过一段时间,在往其中追加剩余的Page而不用再次擦除这个Block,这是因为SSD控制器记录每个Block中最大连续空闲空间,每次Block中Page写不能跳跃的追加,写完063个Page后,在写64127个Page.SSD控制器尽量一次性写满整个Block来避免额外的开销。
Wear Off问题
  • 如果基于Flash 的SSD存储介质,其中的Flash中的Cell中的绝缘体被击穿一定次数(SLC为10万次,MLC为1万次)后,失去了绝缘的功能无法保证有足够的电荷,此时Cell就损坏了(Wear Off问题)。写放大会加加速Wear Off问题,本质是增加了很多不必要的擦除。

解决问题之道

  • 厂商wiper工具:基于Flash的SSD中内部的空闲空间决定了SSD的寿命和写入性能。要保持SSD内部更多的空闲空间就必须让文件系统通知SSD哪些未被文件或者文件元数据占用空间,可以被擦除。目前很多SSD的厂商会提供Wiper工具,这个工具会扫描文件系统中哪些哪些无效或者未被使用的逻辑地址,并且告诉SSD进行擦除然后回收到空闲空间。如果业务系统是频繁删除和写入文件,建议定期运行来回收空间。
  • TRIMTRIMATA标准指令集其中的指令,这个指令可以让文件系统的删除文件操作实时的通知到SSD回收对应的Block,然后放回到空闲空间。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 存储内核技术交流 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基于Flash的SSD
    • Erase Before OverWrite问题
      • Wear Off问题
        • 解决问题之道
        相关产品与服务
        对象存储
        对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档