饿想她超市和GRE单词
我之前用饿想她超市的例子介绍了EXT4文件系统,SSDFans的不少读者从事技术研发,功力深厚,觉得这样写显得太业余了:还不如直接看技术文档爽快!有个读者回复让我们直接改名叫SSD业余粉丝o(^▽^)o
我先不直接说明原因,来说说GRE单词吧。不少人可能背过俞敏洪的GRE红宝书,为了帮助背单词,俞敏洪把很多单词进行了拆分联想,帮助记忆。比如Vulnerable这个单词,可以读音理解成汉语的温拿(winner),温拿过得比较舒服,温室里的花朵,很脆弱,所以就想到了单词的意思:脆弱的,容易受伤害的。还有一种记忆法是重复,不断重复背诵,再难的也记住了。我们工作中大部分记忆都是后者,为什么大家对自己的专业领域如此精通?就是通过一遍遍工作中的重复劳动牢牢掌握了这些技能,用的时候信手拈来。
对于不了解文件系统的人,工作中也不会大量接触,就没办法通过重复法记住,那只能通过联想法了,这就是我用饿想她超市来类比文件系统的原因:不了解文件系统的人,只要记住文件系统是个超市,文件是货物,放在盒子block里面,inode是货物的标签,记录了货物的盒子位置,就掌握了文件系统的精髓。如果只是看看技术文档,估计过不了一个月就忘得一干二净了。
适合SSD的文件系统最需要什么?
其实最需要的就是文件的inode映射表和SSD内部的FTL映射表统一成一个表,这样就解决了大部分问题。可以参考本站的从此,SSD不用再伪装成HDD(http://www.ssdfans.com/?p=832)一文,这样做有几个优点:
- 文件查询快,FTL的查询效率是很高的。
- SSD通过文件知道数据的相关性,可以最高效的分布一个文件到每个chip上,提高读写速度。
- 只需要在SSD做垃圾回收,整合磁盘整理。
- SSD知道哪些文件被删除了,这些删除的数据不用再占用空间,因此垃圾回收的速度变快了。
- 复制操作很简单:复制映射表就可以了。为什么机械硬盘不能这么做?机械硬盘如果两个文件对应到同样的一组LBA,其中一个修改就很麻烦,需要把改动的LBA重新映射到新的LBA上,维护一个重定向表。其实很多存储系统的snapshot就是这么做的,弄一个增量表。而对SSD而言,修改就是新的写操作,需要写到新的物理地址,必然要更新映射表,所以天然的实现了重定向。
适合SSD的文件系统在哪里?
这样看来,目前并没有免费开放的SSD专用文件系统,因为大部分SSD为了适应HDD的框架,都是把LBA作为基本单位,文件系统来访问LBA,机械硬盘时代发明的LBA隔断了SSD和文件系统的联系。就像上图,SSD是那个铁路和火车,但是悲哀的是没有火车头,车都是马来拉的,速度自然提不上去了。
SSD没有一个通用的协议来开放内部数据通道给上层软件,如果有这样一个开放的接口,那么诞生可以融合SSD内部FTL的文件系统也是自然的事 。
引用:
https://krisliu77.tuchong.com/1149491/#image865421