取消
搜索历史
热搜词
原创
活动
创新2.0
I T
产业
当前位置:首页 >互联网•IT > 存储 > 闪存 > 正文
如何看待闪存特性与文件系统应用?
来源:IT168信息化频道  :阿明 2015-04-24 16:59:53
闪存存储的性能与传统磁盘的差异,是众所周知的事情。但是,闪存颗粒在物理层面可靠性和稳定性的问题往往被有意或无意地忽视。那么,针对闪存存储的性能优势和持久性劣势应该采取什么样的解决机制?当前文件系统设计与闪存存储结合存在哪些问题?同时闪存存储在不同的文件系统中具备哪些应用模式和特点 ?这些问题一直困扰着关注闪存与文件系统应用的朋友。

闪存存储的性能与传统磁盘的差异,是众所周知的事情。但是,闪存颗粒在物理层面可靠性和稳定性的问题往往被有意或无意地忽视。那么,针对闪存存储的性能优势和持久性劣势应该采取什么样的解决机制?当前文件系统设计与闪存存储结合存在哪些问题?同时闪存存储在不同的文件系统中具备哪些应用模式和特点 ?这些问题一直困扰着关注闪存与文件系统应用的朋友。

作为DTCC本年度的白金赞助商之一,闪存领域领导性厂商Greenliant亚太营销副总裁李炫辉分析指出,在过去,闪存与文件系统这两个方面是不搭界的事情。因为闪存存储更关注物理介质以及集成电路与底层访问控制,文件系统更关注对上层的应用提供存储的功能和特性。但是,正如CPU多核技术带来操作系统和应用采用多线程/进程并发机制提升性能一样,闪存介质的出现也对文件系统应用有所影响和变化。因此,首先需要从了解闪存存储的底层特性、实现机制以及优劣势,扬长避短,利用现有文件系统和闪存优化的文件系统,充分发挥闪存存储的优点,一步一步地解决现在面临的问题。

你所知道的闪存特性和架构是什么样子?

在回答这个问题之前,我们必须搞清楚一个常识问题:现在谈论闪存和固态硬盘的概念实际上不太一样,凡是使用Flash Memory的都叫闪存,实际上后者只是一个封装的状态,固态硬盘可以封装Flash Memory也可以是非Flash Memory,目前大部分闪存厂商采用的都是Flash Memory的固态盘, 一般都把固态盘叫闪存,闪存也叫固态盘,所以也统称闪存。

除了闪存以外,还有其它多种快速存储技术,如DRAM ,NVRAM, MRAM and Spin-Torque(自旋力矩磁阻式随机存取内存), Carbon Nanotube( 碳纳米管 ), Phase Change Memory(相变内存), Memristor ( 忆阻器 )等等。

决定快速存储大规模应用的主要因素是量产规模、稳定性以及经济性,有量产规模才能提供可能,有了量产规模才能对闪存稳定性和性能进行验证, 再就是经济性如何体现,这些因素决定了快速存储大规模应用。当前,闪存主要用于IO性能加速环境,如数据库加速、虚拟化、延时敏感型应用、Server SAN或SDS、大数据处理等等方面,也是从2010年左右,闪存才开始大规模应用。

那么闪存物理特性的优劣表现在哪些方面呢?

从闪存物理性来看,闪存谈论最多的就是SLC,MLC,它们分别是Single-Level Cell 单层单元和Multi-Level Cell多层单元的缩写,Cell就是一个物理单元,有固定隔离栅和浮动隔离栅,进行计数时候,是电子打到浮动隔离栅产生电位,电位变化形成数据00、01、11、10等,当进行操作,就是要电子进行击穿,在进行改变的时候,将电子通过引槽流出Cell,并产生变化。

\

 

闪存为什么有擦写次数限制呢?当进行数据擦写,电子流出时候,物理隔离栅就会变薄,变薄到一定程度就没有绝缘的机制了,电子进入就会漏掉,那么就会坏掉,就出现闪存擦写次数的问题。

当前NAND Flash面临的挑战主要是耐久性、数据保持性、读写干扰、制造工艺缺陷,耐久性受制于闪存颗粒的擦写次数,同时数据保持性是指闪存将数据存在一个Cell中,仍然存在电子泄漏和电子辐射造成数据丢失情况。读写干扰是指对一个Cell进行读写操作时对临近的Cell也会产生干扰。制造工艺也存在不同的品质。另外,SLC比MLC品质要好,Cell都一样,但前者只有两个状态位,后者有4个状态位,那么后者读写数据的擦写次数要增加,寿命自然会缩短。

当前SSD主要使用NAND Flash,属于非易失性存储介质,成本比较低。物理特性不容易改变,那么如何优化显得很重要。

有一个情况需要指出,对于半导体厂商而言,在不断降低制程,密度越来越高,工艺控制难度增加,造成NAND Flash可靠性随制造工艺减小而降低,如擦写次数降低,大容量闪存里面就更容易出现错误。这也就是当前闪存厂商开始更专注 3D NAND 制程工艺的原因。

明白了闪存的物理特性之后,你们清楚闪存与磁盘到底存在哪些区别呢?

闪存的性能与磁盘系统的对比毋庸置疑,前者是电子驱动,后者是机械驱动,闪存的性能是磁盘的几十倍到上百倍,但是在可靠性和稳定性层面,闪存和磁盘却有很大的差异,例如磁盘性能随时间变化不会有变动,15000转硬盘十年以后还是15000转,而闪存存储则随时间和数据擦写量增长存在波动和衰减;闪存在擦写次数方面有限制,但磁盘没有限制;在MTBF方面磁盘可以到200万小时,而闪存则与擦写次数密切相关。当前阻碍闪存大规模应用于企业级应用的主要问题不是性能,而是闪存设备的可靠性,如何在闪存产品的生命周期内保证山村的可靠和性能无衰减是关键。

\

如何提升闪存可靠性和保障性能无衰减,则需要在闪存设备的架构设计方面下功夫。闪存控制器是闪存设备的核心,是联系主机和NAND Flash的桥梁,闪存控制器的管理功能包括了: Error-correcting code (ECC校验)、RAID保护机制、Wear leveling(磨损平衡)、Bad block mapping(坏块管理)、Read/write disturb management(读写干扰管理)、Garbage collection(垃圾收集)等。

与此同时,闪存控制器也有其它定制化功能,如加密、安全擦除或自毁、压缩或去重方面。

由于NAND Flash的工艺不能保证NAND的Memory Array在其生命周期中的可靠性,因此在NAND的生产中及使用过程中会产生坏块。为了检测数据的可靠性,在应用NAND Flash的系统中一般都会采用一定的坏区管理策略,而管理坏区的前提是能比较可靠的进行坏区检测。

NAND ECC校验机制比较复杂,由行校验、列校验 组合而成,当出现多位错误时候,可以通过ECC 校验恢复。常用的ECC算法有Hamming、Reed-Solomon码、BCH、LDPC等,和使用颗粒类型相关。SLC一般采用Hamming校验,MLC一般采用Reed-Solomon码或BCH可以实现多位纠错,LDPC一般针对3D NAND校验。

\

常见的闪存卡ECC模块设计,采用集中式ECC引擎设计,即在板卡的闪存控制器中集成1个或2个ECC引擎处理ECC校验。当数据写入NAND Flash时,会由ECC引擎生成ECC校验码,然后和数据一起写入后端的闪存颗粒。当读取时候,系统从颗粒里面读出数据和ECC校验码,如果验证一致就送出数据,如果发现数据和ECC校验码不一致,则需要通过ECC校验获得正确数据,然后写回后送出数据。这种架构设计比较简单,成本比较低,但是我们知道,当Flash设备随着使用时间和数据量的增长,坏块会逐渐增加,会产生大量的ECC Error,这时候由于ECC引擎成为系统瓶颈,设备性能和可靠性会大幅度下降,对应用性能和数据安全带来影响。

\

如何消除性能衰减和可靠性下降的问题,这就需要在架构设计方面进行创新。Greenliant在闪存设备架构上实现了分布式ECC 设计架构, 在每一个NAND Package中都封装一个闪存控制器里面。这样就避免了前面所讲的性能衰减和可靠性下降的问题。同时为了防止闪存颗粒故障造成数据丢失,在架构上还实现了板载硬件RAID的功能。

还有一个需要注意的区别:闪存与磁盘系统的物理地址映射有很大不同。

在磁盘里面逻辑块地址LBA和物理块地址PBA是一一对应的,磁盘只要写的是这个LBA那么磁盘就一直会访问这个地址,那么就存在热点;对于闪存盘来说,由于存在擦写次数的限制,则会通过磨损平衡算法,尽可能让每个块擦写次数相同增加闪存设备的寿命,因此同一个LBA在不同的时间会指向不同的物理地址,因此文件系统需要闪存的这种特性做优化。

磨损平衡如何改变逻辑块地址和物理地址对应?磨损平衡分为动态和静态磨损平衡以及全局磨损平衡。动态磨损平衡写一个文件时候,永远写在一个空白块,空白块写完之后再写回到之前的那些数据被删除块上,这样循环地写。但是当一个文件写到闪存上就不很少被访问,而其他块被写了几十上百次,在这种情况下块与块的擦写次数就不再一致,动态磨损平衡算法就失效了,因此我们又采用静态磨损平衡算法,就是当一个块擦写次数和临近块次数超过一定阀值时我们就作一个数据存储交换,这样保证擦写平衡。这样有利于改善闪存耐久性,会优化闪存的性能。另外我们在颗粒级别会有全局磨损平衡算法,这样进一步提升设备的可靠性。

可见,闪存可靠性通过闪存算法、控制器管理可以来优化。那么如何采用闪存存储优化系统性能?

业界目前采用闪存存储优化系统性能的方式主要包括三种:一是所有数据都放闪存存储;二是混合模式一部分热数据放闪存存储;三是缓存架构如缓存热数据在闪存存储,如分层存储将冷热数据进行存储分层。

这三种方式,都需要文件系统支持,由文件系统提供底层设备访问。从几个文件系统特点来展开分析,首先Linux Storage Stack Diagram version 3.17方面。

\

从这个图中,我们可以看到从文件系统到底层设备,路径很长,可见,文件系统是一个比较复杂的东西。这么长的访问路径会影响到闪存性能和延时优势的发挥。针对这个问题,2012年英特

编辑:赵明飞
关键字:     闪存  文件系统  存储 
活动 直播间  | CIO智行社

分享到微信 ×

打开微信,点击底部的“发现”,
使用“扫一扫”即可将网页分享至朋友圈。