关于jffs2文件系统如何掉电保护

因为jffs2文件系统可以掉电保护,看了下大概原理,原因:
它提供的垃圾回收机制,使得我们不需要马上对擦写越界的块进行擦写,而只需要将其设置一个标志,标明为脏块。当可用的块数不足时,垃圾回收机制才开始回收这些节点。同时,由于JFFS2 基于日志结构,在意外掉电 后仍然可以保持数据的完整性,而不会丢失数据。

 

JFFS2 是将节点信息保存在内存中

 

Flash上日志型文件系统的资料,了解到传统的基于闪存转换层(FLT)的文件系统存在的主要问题:
1. 效率低。因为每次都要把要修改的数据所在擦写块放入内存,产生了许多不必要的读操作;写入时,要将原来的擦写块擦除,然后再将内存中修改的数据写入该擦写块。这样就造成了数据带宽的严重浪费。
2. 降低了Flash的寿命。因为有大量无用的擦写动作,使得许多不需要擦除的块被擦除重写,这导致了整个Flash使用寿命的降低。
3. 没有提供磨损平衡,也会降低Flash的寿命。因为只要一个擦写块坏了,整块Flash也就不能用了,而那些频繁修改的块将会比其它块更快地成为坏块。
4. 不安全。如果在擦写过程中突然 掉电 ,那么整个擦写块的数据将可能丢失。

日志型文件系统(LogFS)就是为解决以上问题而产生的,它将对文件的修改描述成日志,从而减少对Flash的擦写。只有当擦写请求超过一个擦写块的边界时,文件系统才会对Flash进行擦写。这种更新方式也叫out-of-place。
JFFS2 就是Flash上应用最广的一个日志结构的文件系统。它提供的垃圾回收机制,使得我们不需要马上对擦写越界的块进行擦写,而只需要将其设置一个标志,标明为脏块。当可用的块数不足时,垃圾回收机制才开始回收这些节点。同时,由于JFFS2 基于日志结构,在意外掉电 后仍然可以保持数据的完整性,而不会丢失数据。

然而,JFFS2 仍然有其缺点,这也是人们提出JFFS3的原因。
因为挂载时需要扫描整块Flash,来确定节点的合法性以及建立必要的数据结构,这使得JFFS2 挂载时间比较长。
又由于JFFS2 是将节点信息保存在内存中的,使得它所占用的内存量和节点数目成正比。
另外,由于JFFS2 是通过随机方式来实现磨损平衡的,它不能保证磨损平衡的确定性。

 

 

 

日志式文件系统在强调数据完整性的企业级服务器中有着重要的需求,是文件系统发展的方向。日志式文件系统的思想来自于如Oracle等大型数据库。数据库操作往往是由多个相关的、相互依赖的子操作组成,任何一个子操作的失败都意味着整个操作的无效性,对数据库数据的任何修改都要回复到操作以前的状态。日志式文件系统采用了类似的技术。  

  在分区中保存有一个日志记录文件,文件系统写操作首先是对记录文件进行操作,若整个写操作由于某种原因(如系统掉电)而中断,则在下次系统启动时就会读日志记录文件的内容来恢复没有完成的写操作。而这个过程一般只需要几秒钟到几分钟,而不是ext2文件系统的fsck那样在大型服务器情况下可能需要几个小时来完成扫描。 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PetaLinux是一个基于嵌入式Linux的开发工具链,用于构建嵌入式系统。它提供了许多可定制的组件和功能,其中包括对JFFS2文件系统的支持。 JFFS2(Journaling Flash File System 2)是一种针对闪存存储设备设计的文件系统。它具有很好的压缩率和高度可靠性,适用于嵌入式系统。在嵌入式系统中,闪存是一种常见的存储设备,它通常具有较小的存储容量和有限的周期寿命。因此,选择合适的文件系统对于确保系统的可靠性和性能至关重要。 使用PetaLinux时选择使用JFFS2文件系统有几个优点。首先,JFFS2具有较好的压缩率,可以节省存储空间。这在嵌入式系统中特别重要,因为闪存的容量通常有限。其次,JFFS2采用了日志技术,可以确保数据的完整性和一致性。它可以通过将修改的数据写入日志中,然后再写入闪存中来提供数据持久性。这有助于防止数据损坏和错误。 另外,PetaLinux提供了对JFFS2文件系统的内建支持和集成工具。这些工具使得在构建嵌入式系统时轻松地添加和配置JFFS2文件系统成为可能。开发人员可以使用PetaLinux提供的命令和选项设置文件系统的参数和属性,以满足特定的需求。 综上所述,使用PetaLinux来构建嵌入式系统并选择JFFS2文件系统能够提供较好的存储空间利用率和数据的可靠性。这使得嵌入式系统在具有有限存储容量和闪存设备的情况下,能够更好地运行和维护。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值