一种高速抗掉电大容量文件系统及抗掉电方法与流程

未命名 08-07 阅读:109 评论:0


1.本发明属于文件系统技术领域,具体为一种高速抗掉电大容量文件系统及抗掉电方法。


背景技术:

2.在大容量存储系统中,文件长度通常以gb为存储单位,且对文件系统的启动速度、目录和文件遍历速度都有极高要求。对于随时可能关机和掉电的设备来说,为了保证文件系统的完整性和可靠性,抗掉电更是一个必备功能。现有文件系统由于设计初衷是为了通用,在设计的时候做了很多平衡和妥协,再加上历史兼容问题更是导致了设计的复杂和不合理性。面对大容量存储系统,现有文件系统存在以下问题:
3.1、由于最小存储单元过小且不连续。现有文件系统长期写入后,特别是多线程长期大数据量写入后,会出现很多文件系统碎片,造成读写速度下降,最终导致读写性能不符合大容量存储系统要求。
4.2、目录和文件的核心数据(元数据)离散分布在存储介质中,在存储容量、文件数目和目录数目很大的情况下,遍历文件和目录由于需要大量多次随机性访问磁盘,消耗时间非常长。
5.3、现有主流文件系统通过两种方式支持抗掉电,两种方式对于大容量存储设备都有相应的缺点:一种日志结构式文件系统,典型代表yaffs,这种设计启动需要扫描整个磁盘,启动时间慢。一种通过记录日志实现抗掉电功能,典型代表ext4,此设计会在写入数据前先把数据写入日志区域,备份写入的方式会显著降低读写速度,元数据离散化也造成了启动时恢复日志耗时较长。
6.4、现有文件系统由于要满足各种通用需求,设计往往过于复杂,设计的复杂性导致很难对代码做单元测试和逻辑覆盖测试,无法满足高可靠性需求行业的设计要求。


技术实现要素:

7.本发明的目的在于提供一种高速抗掉电大容量文件系统及抗掉电方法,以解决背景技术中提出的现有技术中,存在最小存储单元过小且不连续、目录和文件的核心数据离散分布、抗掉电启动时间慢、恢复复杂以及通用性差的问题。
8.为解决上述技术问题,本发明所采用的技术方案是:
9.一种高速抗掉电大容量文件系统,包括存储磁盘,存储磁盘包括头部数据区域和其余数据区域;其中,头部数据区域设置在磁盘头部,用于存储元数据,其余数据区域用于存储磁盘数据;
10.元数据包括空闲块管理和目录文件索引块;空闲块管理用于管理磁盘所有数据块;目录文件索引块用于检索、查找磁盘内的数据;目录文件索引块的存储结构包括文件属性、文件名以及文件索引树。
11.根据上述技术方案,空闲块管理和目录文件索引块的存储结构均包括类型、长度
和数据。
12.根据上述技术方案,空闲块管理采用位图或者红黑树算法中的一种来管理。
13.根据上述技术方案,文件属性的存储结构包括数据类型、id、父id、文件预分配长度、时间信息以及索引树偏移。
14.根据上述技术方案,文件索引树的索引具体为:每级索引有32个槽位,可以存储32个二级索引指针或者逻辑块索引;当文件系统长度小于32个逻辑块时,索引树可以直接索引逻辑块,当超过32个逻辑块时需要2级索引,索引层级随着文件增大而增大。
15.一种高速抗掉电大容量文件系统的抗掉电方法,抗掉电包括以下步骤:
16.步骤s1,元数据采用日志结构式存储并采取异步写入,
17.步骤s2,在进行异步写入的时,添加crc校验、时间戳和序列号;其中,时间戳标识添加元数据的utc时间;序列号为当前元数据序列号,也是最大序列号加1;
18.步骤s3,生成整个元数据结构的crc校验;
19.步骤s4,在发生掉电后,在随后的一次上电启动中,会使用crc校验通过并且序列号最新、数字最大、时间戳最新的元数据作为当前元数据,用于保证文件的正常运行。
20.与现有技术相比,本发明具有以下有益效果:
21.本发明提出的一种高速抗掉电大容量文件系统,经过重新设计解决了现有文件系统的不足,充分利用了大容量存储设备的顺序读写性能佳、写入放大效应和垃圾回收原理。
22.超大的数据逻辑单元和预分配功能的实现使得数据能连续的存储在大容量介质中,解决了现有文件系统在多线程长期大数据写入后,会出现很多文件系统碎片,造成读写性能下降的问题。
23.目录和元数据的集中式设计,减少了文件系统碎片,提高了读写性能;由于每次挂载文件系统后,集中存储的元数据会从磁盘一次性拷贝到内存,而内存的数据又远远高于磁盘,且可以随机访问,遍历文件和目录的速度得到了提高,解决了现有文件系统遍历目录和文件耗时长的问题。
24.通过元数据的日志结构式分布和异步写入,文件系统的抗掉电性和可靠性得到了有效保证。同时由于元数据的集中式分布、大容量存储的高性能读特性,在挂载文件系统的过程中,不需要遍历整个存储介质,只需要遍历元数据部分即可回放整个文件系统。实现了极快的启动速度。
附图说明
25.图1为本发明磁盘结构图;
26.图2为本发明元数据的基本存储结构图;
27.图3为本发明位图管理结构图;
28.图4为本发明红黑树内存管理结构图;
29.图5为本发明红黑树磁盘存储管理结构图;
30.图6为本发明目录文件索引块磁盘存储结构图;
31.图7为本发明文件索引树磁盘存储结构图;
32.图8为本发明文件索引树内存存储结构图;
33.图9为本发明目录和文件层次关系图;
34.图10为本发明节点数据结构图;
35.图11为本发明元数据节点结构图。
具体实施方式
36.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
37.实施例一
38.如图1至图3所示,一种高速抗掉电大容量文件系统,包括存储磁盘,存储磁盘包括头部数据区域和其余数据区域;其中,头部数据区域设置在磁盘头部,用于存储元数据,其余数据区域用于存储磁盘数据;
39.如图1所示,元数据包括空闲块管理和目录文件索引块;空闲块管理用于管理磁盘所有数据块;目录文件索引块用于检索、查找磁盘内的数据;目录文件索引块的存储结构包括文件属性、文件名以及文件索引树。
40.本发明提出的一种高速抗掉电大容量文件系统,经过重新设计解决了现有文件系统的不足,充分利用了大容量存储设备的顺序读写性能佳、写入放大效应和垃圾回收原理。
41.超大的数据逻辑单元和预分配功能的实现使得数据能连续的存储在大容量介质中,解决了现有文件系统在多线程长期大数据写入后,会出现很多文件系统碎片,造成读写性能下降的问题。
42.目录和元数据的集中式设计,减少了文件系统碎片,提高了读写性能;由于每次挂载文件系统后,集中存储的元数据会从磁盘一次性拷贝到内存,而内存的数据又远远高于磁盘,且可以随机访问,遍历文件和目录的速度得到了提高,解决了现有文件系统遍历目录和文件耗时长的问题。
43.通过元数据的日志结构式分布和异步写入,文件系统的抗掉电性和可靠性得到了有效保证。同时由于元数据的集中式分布、大容量存储的高性能读特性,在挂载文件系统的过程中,不需要遍历整个存储介质,只需要遍历元数据部分即可回放整个文件系统。实现了极快的启动速度。
44.实施例二
45.本实施例为实施例一的进一步细化。
46.如图2所示,空闲块管理和目录文件索引块的存储结构均包括类型、长度和数据。
47.其中,类型用于区分为超级快、空闲块管理和目录文件索引。长度用于表示数据长度。数据用于存放不同对象的数据。
48.空闲块管理采用位图或者红黑树算法中的一种来管理。
49.空闲块管理采用位图管理时,位图算具体为:
50.如图3所示,当使用位图时,内存数据结构和磁盘存储的数据结构是一致的。使用位图算法时,在文件系统挂载过程中读取磁盘位图信息到内存,当有需要写入新数据时,需要遍历位图查找空闲块(位图中为0的块)并返回块的逻辑块号(逻辑块号为位图编号)用于新数据写入,并且置相应位为1,标识该逻辑块已经被使用。写入过程循环执行上述过程直
到文件数据全部写入。
51.空闲块管理采用红黑树管理时,红黑树算法具体为:
52.如图4和图5所示,使用红黑树时,红黑树的key为连续空间的大小,单位为逻辑块。使用红黑树管理空闲块时,内存中使用红黑树表示存储数据结构。
53.当使用红黑树算法时,在文件系统挂载过程中利用磁盘元数据中的空闲块管理信息建立内存空闲块管理红黑树。当需要写入新的文件数据时,利用写入数据的需求大小作为搜索关键字在内存空闲块管理红黑树查找连续的空闲空间。如果查到匹配的空间(空闲空间的key》需要写入的数据量)则选中该块区域,随后把剩余空间(key-需要写入的数据)重新插入红黑树;如果没有查到则返回红黑树key最大的空间。写入过程循环执行上述过程直到文件数据全部写入。
54.文件属性的存储结构包括数据类型、id、父id、文件预分配长度、时间信息以及索引树偏移。
55.如图6、图7以及图8所示,文件索引树的索引具体为:每级索引有32个槽位,可以存储32个二级索引指针或者逻辑块索引;当文件系统长度小于32个逻辑块时,索引树可以直接索引逻辑块,当超过32个逻辑块时需要2级索引,索引层级随着文件增大而增大。
56.如图9所示,在文件系统启动后,会通过磁盘存储的索引树建立内存索引树。在元数据存储到磁盘时又会由内存结构导出为磁盘存储结构。
57.每个目录和文件在内存中以节点方式存储,节点数据结构如下:
58.如图10所示,节点数据结构包括:类型:标识目录或文件;名称:目录名或文件名;名称hash:名称的hash值用于文件和目录的快速查找。hash函数算法使用累加除余法;父节点指针:指向上级目录;兄弟指针:指向同级目录;权限:目录和文件读写修改权限;索引树根节点:指向文件的索引树根指针。
59.通过父节点指针和兄弟节点指针可以在内存中建立目录和文件层次关系,实现文件和目录的查询、添加以及删除。
60.实施例三
61.如图11所示,一种高速抗掉电大容量文件系统的抗掉电方法,抗掉电包括以下步骤:
62.步骤s1,元数据采用日志结构式存储并采取异步写入,
63.步骤s2,在进行异步写入的时,添加crc校验、时间戳和序列号;其中,时间戳标识添加元数据的utc时间;序列号为当前元数据序列号,也是最大序列号加1;
64.步骤s3,生成整个元数据结构的crc校验;
65.步骤s4,在发生掉电后,在随后的一次上电启动中,会使用crc校验通过并且序列号最新、数字最大、时间戳最新的元数据作为当前元数据,用于保证文件的正常运行。
66.元数据的写入采取异步写入,每次会在新的位置写入新的元数据。这样新的写入不会破坏老元数据。在写入的时候会添加crc校验、时间戳和序列号。
67.其中时间戳标识添加元数据的utc时间;序列号为当前元数据序列号也是最大序列号加1;随后会生成整个元数据结构的crc校验。
68.在任何时候掉电,在随后的一次上电启动中,会使用crc校验通过并且序列号最新(数字最大)、时间戳最新的元数据最为当前元数据。掉电发生在新元数据的写入过程中,则
crc校验不过,使用之前最新元数据,保证文件系统的正常;如果掉电发生在新元数据写入后,新元数据的序列号最大,时间戳最新,使用最新的元数据,文件系统亦可以正常运行。
69.当元数据存储空间不足时,回收最老的元数据空间作为后续写入空间。
70.使用了异步写入和每次使用最新有效的元数据(通过crc、时间戳和序列号确定新有效元数据),文件系统的抗掉电性和可靠性都得到了有效保证。
71.元数据的保存具体为:
72.当文件或目录发生变化时,会实时更新内存中的元数据。后台程序会周期性刷新元数据到磁盘默认时间为1秒。前台程序也可以通过标准的文件系统接口fsync,执行元数据到磁盘的刷新操作。
73.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
74.最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

技术特征:
1.一种高速抗掉电大容量文件系统,包括存储磁盘,其特征在于:存储磁盘包括头部数据区域和其余数据区域;其中,头部数据区域设置在磁盘头部,用于存储元数据,其余数据区域用于存储磁盘数据;元数据包括空闲块管理和目录文件索引块;空闲块管理用于管理磁盘所有数据块;目录文件索引块用于检索、查找磁盘内的数据;目录文件索引块的存储结构包括文件属性、文件名以及文件索引树。2.根据权利要求1所述的一种高速抗掉电大容量文件系统,其特征在于:空闲块管理和目录文件索引块的存储结构均包括类型、长度和数据。3.根据权利要求1所述的一种高速抗掉电大容量文件系统,其特征在于:空闲块管理采用位图或者红黑树算法中的一种来管理。4.根据权利要求1所述的一种高速抗掉电大容量文件系统,其特征在于:文件属性的存储结构包括数据类型、id、父id、文件预分配长度、时间信息以及索引树偏移。5.根据权利要求1所述的一种高速抗掉电大容量文件系统,其特征在于:文件索引树的索引具体为:每级索引有32个槽位,可以存储32个二级索引指针或者逻辑块索引;当文件系统长度小于32个逻辑块时,索引树可以直接索引逻辑块,当超过32个逻辑块时需要2级索引,索引层级随着文件增大而增大。6.一种高速抗掉电大容量文件系统的抗掉电方法,其特征在于:采用权1至权5所述的任意一项的文件系统,抗掉电包括以下步骤:步骤s1,元数据采用日志结构式存储并采取异步写入,步骤s2,在进行异步写入的时,添加crc校验、时间戳和序列号;其中,时间戳标识添加元数据的utc时间;序列号为当前元数据序列号,也是最大序列号加1;步骤s3,生成整个元数据结构的crc校验;步骤s4,在发生掉电后,在随后的一次上电启动中,会使用crc校验通过并且序列号最新、数字最大、时间戳最新的元数据作为当前元数据,用于保证文件的正常运行。

技术总结
本发明公开了一种高速抗掉电大容量文件系统及抗掉电方法,包括存储磁盘,存储磁盘包括头部数据区域和其余数据区域;头部数据区域用于存储元数据,其余数据区域用于存储磁盘数据;元数据包括空闲块管理和目录文件索引块;目录文件索引块用于检索、查找磁盘内的数据;目录文件索引块的存储结构包括文件属性、文件名以及文件索引树;本发明提出的一种高速抗掉电大容量文件系统,解决了现有文件系统在多线程长期大数据写入后,会出现很多文件系统碎片,造成读写性能下降的问题。目录和元数据的集中式设计,减少了文件系统碎片,提高了读写性能。通过元数据的日志结构式分布和异步写入,文件系统的抗掉电性和可靠性得到了有效保证。证。证。


技术研发人员:林青
受保护的技术使用者:成都智明达电子股份有限公司
技术研发日:2023.05.09
技术公布日:2023/8/6
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐