本发明属于文件系统,具体为一种高速抗掉电大容量文件系统及抗掉电方法。
背景技术:
1、在大容量存储系统中,文件长度通常以gb为存储单位,且对文件系统的启动速度、目录和文件遍历速度都有极高要求。对于随时可能关机和掉电的设备来说,为了保证文件系统的完整性和可靠性,抗掉电更是一个必备功能。现有文件系统由于设计初衷是为了通用,在设计的时候做了很多平衡和妥协,再加上历史兼容问题更是导致了设计的复杂和不合理性。面对大容量存储系统,现有文件系统存在以下问题:
2、1、由于最小存储单元过小且不连续。现有文件系统长期写入后,特别是多线程长期大数据量写入后,会出现很多文件系统碎片,造成读写速度下降,最终导致读写性能不符合大容量存储系统要求。
3、2、目录和文件的核心数据(元数据)离散分布在存储介质中,在存储容量、文件数目和目录数目很大的情况下,遍历文件和目录由于需要大量多次随机性访问磁盘,消耗时间非常长。
4、3、现有主流文件系统通过两种方式支持抗掉电,两种方式对于大容量存储设备都有相应的缺点:一种日志结构式文件系统,典型代表yaffs,这种设计启动需要扫描整个磁盘,启动时间慢。一种通过记录日志实现抗掉电功能,典型代表ext4,此设计会在写入数据前先把数据写入日志区域,备份写入的方式会显著降低读写速度,元数据离散化也造成了启动时恢复日志耗时较长。
5、4、现有文件系统由于要满足各种通用需求,设计往往过于复杂,设计的复杂性导致很难对代码做单元测试和逻辑覆盖测试,无法满足高可靠性需求行业的设计要求。
技术实现思路
1、本发明的目的在于提供一种高速抗掉电大容量文件系统及抗掉电方法,以解决背景技术中提出的现有技术中,存在最小存储单元过小且不连续、目录和文件的核心数据离散分布、抗掉电启动时间慢、恢复复杂以及通用性差的问题。
2、为解决上述技术问题,本发明所采用的技术方案是:
3、一种高速抗掉电大容量文件系统,包括存储磁盘,存储磁盘包括头部数据区域和其余数据区域;其中,头部数据区域设置在磁盘头部,用于存储元数据,其余数据区域用于存储磁盘数据;
4、元数据包括空闲块管理和目录文件索引块;空闲块管理用于管理磁盘所有数据块;目录文件索引块用于检索、查找磁盘内的数据;目录文件索引块的存储结构包括文件属性、文件名以及文件索引树。
5、根据上述技术方案,空闲块管理和目录文件索引块的存储结构均包括类型、长度和数据。
6、根据上述技术方案,空闲块管理采用位图或者红黑树算法中的一种来管理。
7、根据上述技术方案,文件属性的存储结构包括数据类型、id、父id、文件预分配长度、时间信息以及索引树偏移。
8、根据上述技术方案,文件索引树的索引具体为:每级索引有32个槽位,可以存储32个二级索引指针或者逻辑块索引;当文件系统长度小于32个逻辑块时,索引树可以直接索引逻辑块,当超过32个逻辑块时需要2级索引,索引层级随着文件增大而增大。
9、一种高速抗掉电大容量文件系统的抗掉电方法,抗掉电包括以下步骤:
10、步骤s1,元数据采用日志结构式存储并采取异步写入,
11、步骤s2,在进行异步写入的时,添加crc校验、时间戳和序列号;其中,时间戳标识添加元数据的utc时间;序列号为当前元数据序列号,也是最大序列号加1;
12、步骤s3,生成整个元数据结构的crc校验;
13、步骤s4,在发生掉电后,在随后的一次上电启动中,会使用crc校验通过并且序列号最新、数字最大、时间戳最新的元数据作为当前元数据,用于保证文件的正常运行。
14、与现有技术相比,本发明具有以下有益效果:
15、本发明提出的一种高速抗掉电大容量文件系统,经过重新设计解决了现有文件系统的不足,充分利用了大容量存储设备的顺序读写性能佳、写入放大效应和垃圾回收原理。
16、超大的数据逻辑单元和预分配功能的实现使得数据能连续的存储在大容量介质中,解决了现有文件系统在多线程长期大数据写入后,会出现很多文件系统碎片,造成读写性能下降的问题。
17、目录和元数据的集中式设计,减少了文件系统碎片,提高了读写性能;由于每次挂载文件系统后,集中存储的元数据会从磁盘一次性拷贝到内存,而内存的数据又远远高于磁盘,且可以随机访问,遍历文件和目录的速度得到了提高,解决了现有文件系统遍历目录和文件耗时长的问题。
18、通过元数据的日志结构式分布和异步写入,文件系统的抗掉电性和可靠性得到了有效保证。同时由于元数据的集中式分布、大容量存储的高性能读特性,在挂载文件系统的过程中,不需要遍历整个存储介质,只需要遍历元数据部分即可回放整个文件系统。实现了极快的启动速度。
1.一种高速抗掉电大容量文件系统,包括存储磁盘,其特征在于:存储磁盘包括头部数据区域和其余数据区域;其中,头部数据区域设置在磁盘头部,用于存储元数据,其余数据区域用于存储磁盘数据;
2.根据权利要求1所述的一种高速抗掉电大容量文件系统,其特征在于:空闲块管理和目录文件索引块的存储结构均包括类型、长度和数据。
3.根据权利要求1所述的一种高速抗掉电大容量文件系统,其特征在于:空闲块管理采用位图或者红黑树算法中的一种来管理。
4.根据权利要求1所述的一种高速抗掉电大容量文件系统,其特征在于:文件属性的存储结构包括数据类型、id、父id、文件预分配长度、时间信息以及索引树偏移。
5.根据权利要求1所述的一种高速抗掉电大容量文件系统,其特征在于:文件索引树的索引具体为:每级索引有32个槽位,可以存储32个二级索引指针或者逻辑块索引;当文件系统长度小于32个逻辑块时,索引树可以直接索引逻辑块,当超过32个逻辑块时需要2级索引,索引层级随着文件增大而增大。
6.一种高速抗掉电大容量文件系统的抗掉电方法,其特征在于:采用权1至权5所述的任意一项的文件系统,抗掉电包括以下步骤: