面向航电应用的FLASH文件系统分析

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:yourice
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:当前航空电子系统的大容量存储设备一般选用NAND Flash作为存储介质,需使用具有高可用性和高可靠性的Flash文件系统,针对现有主流Flash文件系统,如Reliance、JFFS2、YAFFS2等,面向航电应用深入对比分析各自工作原理,给出航空电子系统选用Flash文件系统的建议。
  关键词:航空电子系统;大容量存储;NAND flash;文件系统
  中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)35-8081-03
  1 概述
  NAND Flash是一种具有高存储密度、低功耗、非易失、大容量、优异的稳定性的存储介质,非常适用于体积小、功耗低、环境恶劣、可靠性要求高的系统,当前已被航空电子系统的大容量存储设备广泛采用。[1]随着技术的发展,航空电子系统中普遍需要通过文件系统来管理大容量存储设备。机载环境的特殊性对文件系统提出了诸多可用性和可靠性方面的需求,例如崩溃恢复、快速启动、损耗均衡、垃圾回收和高实时性等。
  现有很多Flash文件系统,例如Reliance、JFFS2、YAFFS2等,都具有上述功能。该文基于机载嵌入式文件系统的需求,对现有的部分文件系统的工作原理和特点进行对比分析,对机载嵌入式Flash文件系统进行评估并给出相关选用建议。[2]
  2 机载嵌入式文件系统需求
  航电系统对大容量存储设备提出了抗恶劣环境、高可用、高可靠和高安全的要求。其中抗恶劣环境、高安全主要采取硬件手段实现,而高可用、高可靠需软硬件结合保证。因此,对于机载嵌入式文件系统来说,具体需求包括:
  1) 可用性:可用性是指在机载领域嵌入式系统中系统资源受限的应用情景下,文件系统能够充分考虑系统资源,保证实时性,并能够高效的完成擦除、读写等操作。同时,文件系统能够根据基于NAND Flash的大容量存储器的操作特点,做相应针对性设计,具有NAND Flash的基本管理功能,如根据NANF Flash的异地更新(out-of-place)、有限的擦写次数等特征,提供垃圾回收、损耗均衡等。
  2) 可靠性:机载大容量存储设备的工作环境恶劣,工作电源不稳定和突发性断电等状况极易导致存储设备中数据的灾难性损坏。因此,机载嵌入式文件系统的可靠性包含两方面的内容:一是Flash文件系统能够在程序崩溃或系统掉电时,保证文件系统的一致性和完整性不受影响,即具备崩溃恢复能力;二是能够通过灵活的校验机制与坏损管理,维护数据正确性,确保现存储单元的可靠管理,以保证数据的一致性和延长物理存储硬件的使用寿命。
  3 典型Flash文件系统的实现方法
  典型的Flash文件系统的实现方法有两种:
  一是基于转译层(Flash Translation Layer, FTL)的文件系统。从系统层看来,转译层将Flash设备被转变为一个可覆写的块设备,从而可应用传统的磁盘文件系统。FTL把块设备上的文件系统直接应用到闪存上,直观而方便的隐藏Flash的诸多限制。但转译层往往涉及产权保护,从而阻碍了Flash文件系统的发展和推广,同时,影响了工作效率。
  另一类是Flash专用文件系统。针对传统文件系统的问题,从实施掉电保护,确保数据可靠性、完整性的角度,针对Flash的特点设计了一些专用文件系统。Flash专用文件系统可分为两大类,一类是通用Flash文件系统,既可用于NOR Flash,也可在NAND Flash上运行;二是专门针对NAND Flash设计的Flash文件系统。
  此外,用于Flash大容量存储器的具有高崩溃恢复能力的文件系统的工作机制还分为日志型和事务型两种。
  日志型文件系统基于日志模型,会详细记录元数据中的操作和所修改的文件数据信息。每当修改文件的访问权限或者所有权,则新建一个结点将新元数据信息储存于日志最后。若是更新文件内容,不会用新数据直接覆盖旧数据,而会在Flash上合适的区域中存储新建的数据结点,并用version属性值将新旧数据结点加以区分。一旦系统发生故障,比如突然掉电或程序崩溃,由于旧数据还在,只需重放日志,即可将文件系统恢复到故障前状态。[3]
  由于记录日志既需要将数据写入日志又需要写入外存,造成一些额外的开销,学术界开始慢慢的转入对事务型管理模式的研究上。事务型文件系统具有较高的可靠性,且不要求更快的CPU或是更大的存储空间。该类文件系统保护措施的理念类似于银行事务的思想,保留原始数据直到新数据写成功并且文件事务完成。在文件事务中,所有的文件系统修改,包括目录、文件、的修改,都将保存在介质中某个空闲并且不含活跃数据的区域。由于新事务的数据被写入到介质的空闲区域,从而消除了错误发生的可能性。写入到介质的空闲区域,可保持文件系统的状态。因此,之前事务的有效数据将一直有效。当写入操作期间发生系统错误时,如掉电,事务型文件系统总能提供有效的文件系统数据。
  4 典型文件系统原理分析
  由于基于转移层的文件系统如EXT2、FAT等对程序崩溃或系统掉电时的崩溃恢复能力较差,该文主要分析JFFS2、YAFFS2、Reliance三种常用的Flash文件系统。
  根据NANF Flash的异地更新策略,以页为单位进行读写,以块为单位进行擦除;更新Flash中数据时,仅是将原有数据页标记为无效,在空闲页写入更新的数据;这样,一段时间后需擦除无效页较多的块以回收存储资源,该过程称为垃圾回收。同时,每一个块的擦写次数有限,为平衡设备中每一块的擦出次数以达到最大的设备寿命,还需引入损耗均衡的思想。下面对三种文件系统的实现原理和各自针对性设计的技术策略进行简要分析。
  4.1 JFFS2
  JFFS2是一种日志型的专用Flash文件系统。JFFS 最初由Axis Communications 公司专门为NOR Flash 开发,后由RedHat对其进行改进,产生了支持NAND Flash 的JFFS2。   JFFS2的数据操作全部按照日志方式保存在Flash设备中,完全按照日志进行管理。JFFS2 的基本结构为一长列的节点,每个节点包含了文件的实际数据或者关于文件的其他一些信息。[4]
  以垃圾回收为基础,JFFS2具有简单的损耗均衡算法,也为垃圾回收的处理机制。JFFS2将闪存上所有擦除块分为三个队列,分别为干净块链表(clean_list)、脏块链表(dirty_list)和空闲块链表(free_list),基于这些链表来完成垃圾回收操作。JFFS2文件系统基于概率算法来选定垃圾回收操作的目标链表。系统定义全局变量jiffies,表示系统时钟;当jiffies模100不为0时,系统对脏块链表中某一块进行回收操作;当jiffies模100为0时,系统对干净块链表中某一块进行回收。[5]
  尽管JFFS2 解决了Flash存储器文件系统的一些问题,但是随着Flash存储器的容量越来越大,它也表现出一些严重的缺陷。首先,JFFS2 的挂载时间比较长;其次,随着容量的增加,其内存消耗增大;最后,它不能保证损耗平衡的确定性。
  4.2 YAFFS2
  YAFFS2是一种日志型的专用Flash文件系统。YAFFS文件系统由Aleph One公司开发,专为NAND Flash存储器设计的嵌入式文件系统,适用于大容量的存储设备。YAFFS2是YAFFS的第二个版本。
  YAFFS2中,文件是以固定大小的数据块进行存储的。这种实现依赖于它能够将一个数据块头和每个数据块关联起来。每个文件(包括目录)都有一个数据块头与之相对应,数据块头中保存了ECC和文件系统的组织信息,用于错误检测和坏块处理。[6]YAFFS2把这个数据块头存储在Flash的备用空间中,充分考虑了NAND Flash的特点。当文件系统被挂载时,只须扫描存储器的备用空间就能将文件系统信息读入内存,并且驻留在内存中,不仅加快了文件系统的加载速度,也提高了文件的访问速度。
  YAFFS2也提供损耗均衡和垃圾回收功能。在YAFFS2文件系统中设立Blockstate结构用于表示擦除块的各种状态,如空、满、已损坏和分配等状态。另有B1ockInfo结构,用于描述块属性,记录块内剩余空闲页数、块的状态等信息。YAFFS2采用数组管理所有块,分配空间时,按顺序对存储空间进行分配,从而实现损耗均衡。YAFFS2采用综合垃圾回收策略,具有两个垃圾回收线程,分别负责在不同情况下完成垃圾回收任务。[7]一个线程具有最低优先级,只在系统空闲时才会启动,该线程采用贪心算法,针对具有最多无效数据的擦除块,这样可以一次回收尽可能多的存储空间。另一个线程具有最高优先级,当系统负载较大,需要很多存储区空间时,启动该线程,它最先适应算法以便提高执行速度。
  但是上述繁复的日志操作会增加一定的内存消耗,也会增加系统的加载时间。
  4.3 Reliance
  Reliance是Datalight公司开发的事务型文件系统,结合Flash FX转译层可用于管理Flash设备。[8]
  Reliance基于事务模型来保护文件系统并且维护数据完整性。Reliance可以不必进行数据恢复操作,保留原始数据直到新数据写成功并且文件事务完成,如果数据写入期间发生中断,文件系统的原始状态还保存在介质中,使得文件系统总能处于有效状态。
  Reliance的垃圾回收功能由FTL层的Flash FX组件完成。在Flash FX中,将大量无效块划入擦除区域并请求回收操作。在垃圾回收过程中,先复制擦出区域的有效数据到空闲备用擦除区,然后擦除旧区域并将其作为新的备用擦除区。Flash FX的损耗均衡包含动态损耗均衡和动态损耗均衡两部分操作。动态损耗均衡算法针对频繁更新的数据和较少使用的存储空间。当更新数据或者写入新数据缺乏足够空间时,则会触发动态垃圾回收。该算法将从当前可用块中确定一个擦除次数最少的块作为目标块,并将有效数据写入该目标块。每次都对使用次数最少的可用块进行操作,一定程度上达到均衡利用频繁更新或较少损耗的设备块。然而,一些数据写入数据块后,基本不会再更新(比如地图信息),这些块称为冷数据块。这些冷数据块无法被动态损耗均衡算法顾及,导致其使用频率很低。作为补充,静态损耗均衡算法能够有效地解决该问题。静态损耗均衡算法,会比较擦除次数最多的块和次数最少的块,二者擦除次数的差超过一定阈值时,交换二者所存储的数据,目的是在满足损耗均衡的同时,尽可能减少存储器总的擦除次数。
  基于事务型理念,Reliance文件系统在大容量介质中可快速启动,并可长时间保持有效状态,系统初始化不需要执行存储介质检测或扫描从而减少加载时间。
  5 测试结果与理论分析
  文件系统应针对NAND Flash的特点,提供高效的损耗均衡和垃圾回收机制的同时,尽可能提高加载速度和读写性能,满足实时性。基于广泛的资料收集和实验验证,我们对上述三种文件系统对比分析。
  在加载时间方面,Flash文件系统的加载时间已经为系统启动延迟的最重要的原因,当Flash容量和存储数据大小都很庞大时其影响更为明显。文件大小的改变、整个分区的利用率,都将影响到文件系统的加载时间。我们很容易通过加载指令来测量加载时间。
  由于基于事务结构的Relaince在加载速度上比日志型的JFFS2和YAFFS2文件系统存在明显的优势。
  在读写性能方面,影响Flash文件系统读写性能的因素非常复杂,涉及映射机制、垃圾回收算法、Flash结构、压缩算法等等。文件系统标准检测程序Benchmark可以用于直接测试读写性能。由此,Relaince的读写性能优于JFFS2和YAFFS2。
  由图可知,由于日志型文件系统在系统启动和读写操作过程中加入一些日志记录操作,从而增加了加载时间,降低了读写数据的速度,而在事务型文件系统中,通过事务型操作改善了前者的问题。上述测试结果符合原理分析。   6 结束语
  本文针对航电需求,分析了典型Flash文件系统的实现方法和工作原理,对JFFS2、YAFFS2和Reliance进行了分析比较,认为针对NAND Flash的专用文件系统JFFS2和YAFFS2的功能完备、原理简单高效,而通用文件系统Reliance的工作机制更为复杂;但基于事务模型的Reliance相比于基于日志型的JFFS2和YAFFS2,具有相近的可靠性的同时,可以保证更高的性能,对航空电子系统中Flash文件系统的选择具有重要意义。
  参考文献:
  [1] 陈智育.嵌入式系统中的Flash文件系统[J].单片机和嵌入式系统应用,2002(2):5-8.
  [2] Chin-Hsien Wu, Tei-Wei Kuo, Li-Pin Chang. Efficient initialization and crash recovery for Log-based file systems over flash ACM symposium on Applied computing, 2006:837-863.
  [3] MMCA Technique Committee[C]. The Multimedia Card System Specification. US: Multimedia card association,2003.
  [4] Li-Pin Chang. On efficient wear-leveling for large-scale flash memory storage systems. Proceedings of the 2007 ACM symposium on Applied computing, 2007: 1126-1130.
  [5] 张小平.嵌入式系统中NAND Flash文件系统的研究[D].太原:太原理工大学,2010:17.
  [6]CHEN TIANZHOU, HU WEI. Smart File System: Embedded File System Based on Nand Flash[C]. IEEE Computer Society, 2006, 14(4):65-66.
  [7] 张磊.基于闪存的嵌入式文件系统的研究与实现[D].成都:电子科技大学,2005:1-2.
  [8] Datalight Reliance? Developers Guide for Wind River VxWorks. Datalight, 2006.
其他文献
一、让背单词不再是负担:金山背单词  学英语,背单词是最基础的,同时背单词也是最枯燥的。金山背单词,全面融合艾宾浩斯记忆曲线强化记忆,做好学习计划,你甚至可以每天利用零碎时间完成背单词的任务,是您最贴心的单词小助手!  1.设置学习任务  运行金山背单词,首先需要设置学习任务,其中包括词库选择、完成日期、每日进度、学习提醒等。金山背单词号称江湖上最全的词表,提供CET4、CET6、托福、GRE、小
随着我国综合国力的不断提升,中国文化在世界上的影响力也不斷增强。近年来,热衷中国文化、学习汉语的外国人越来越多,与之相关的对外汉语教学一时间暴露出一些问题。首先,汉语所根植的东方文化与西方文化在形式和本质上都存在着巨大差异;其次,对外汉语教学缺乏一套针对外国人,特别是在西方国家里开展汉语教学的成熟模式。这些问题已经引起了专家学者的注意,他们积极地进行了相应的研究和探索。由杜迎洁著、世界图书出版公司
摘要:电子技术课程是电气信息类的专业基础课,该课程的实验教学对培养学生创新思维、动手能力具有重要的、不可替代的作用。该文重点讨论了实验教学内容的整合与优化、问题式实验教学、实验中问题排除和实验项目库的构建。  关键词:电子技术课程;实验教学  中图分类号:TP3 文献标识码:A 文章编号:1009-3044(2014)03-0601-02  电子技术课程是电气信息类专业极为重要的技术基础课,该课程
作为当今互联网应用的主要载体,笔记本与平板电脑都是大家平时必备工具。而且随着办公与娱乐在跨平台、跨设备上的互通应用,我们经常要在两个设备之间共享数据。平板电脑从笔记本中获取资料,笔记本管理平板电脑上的数据,这些应用操作如果通过USB数据线来传输显得极为繁琐,为了让两个设备之间的共享更自由,我们可以借助无线网络来实现。  一、安卓平板与本本互联互通  移动终端越来越普及,大家都同时拥有手机和平板。而
摘要:大数据具有数据量巨大、数据形式多样化等特点,大数据时代为教育和学习提供了丰富的信息资源,但也给教育模式和人才培养带来挑战。首先具体说明大数据时代的特点及对高校人才培养的影响,分析大数据时代对信息系统及相应人才的要求,结合教学实践研究大数据背景下信息系统专业的人才培养模式。  关键词:大数据时代;人才培养模式;信息系统专业  中图分类号:TP393 文献标识码:A 文章编号:1009-3044
摘要:作为世界教育发达国家, 新加坡高度重视职业技术教育,拥有创新的教学方法和成熟的改革模式;与政府企业的密切合作,更加突出了职业技术教育为国家经济发展服务的本位职责。该文结合当前我国职业教育的现状和新加坡培训过程中考察内容和学习经历,提出关于教学模式、教师再培训等方面的建议,对加快学校全国骨干校建设,推进课程改革,进而提高教学质量起到一定的作用。  关键词:教育“市场化”;技能大赛;校企合作  
摘要:以联通公司与学校联建现代化通信实验室为例,阐述了学校如何有效利用企业资源,建立高效的产学研平台。其中包括如何进行校企双向结合,提高实验人员的整体素质,提高学生探索和解决工程实际的能力,浅谈了如何优化资源配置,促进交叉学科的研究。  关键词:产学研平台;校企双向结合;资源配置  中图分类号:TP3 文献标识码:A 文章编号:1009-3044(2013)09-2189-02  21世纪高等教育
摘要:该文在对中小企业网站问题调查研究的基础上,从企业网站的管理者和企业网站的开发者两个角度出发,提出了“站内优化、站外推广”的解决方案,使中小企业网站能够真正的为企业的宣传营销起到重要的作用。  关键词:企业网站;网站优化;网站推广  中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2014)31-7276-03  Abstract: Based on the invest
摘要:“教学练战”一体化教学模式是将理论教学与实践教学融为一体, 以实战需要主导整个教学过程。包括一体化教学目标、一体化教学条件、一体化教学实施。基于“教学练战”教学模式本文创新提出了四式一体化教学法基本模型,并将此应用于《数据库应用技术》课程的实践教学,从课程教学方法建设上进行探索和研究。  关键词:教学练战; 数据库应用技术;四式一体化教学法  中图分类号:G642 文献标识码:A 文章编号:
摘要:根据科研机构中,科研项目管理的特点对科研项目管理系统的需求进行了研究,提出了采用微软公司的Active Server Pages结合SQL Server数据库系统的解决方案。该解决方案采用Browser/Server结构,浏览器的客户端无需安装任何组件,就可以使用本系统的所有功能;探讨了该解决方案的需求分析、程序设计、程序测试的全过程,系统总结了建立高效率科研项目管理系统的方法。  关键词: