System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于文件系统定位查点,涉及一种文件系统的定位检查点的方法,尤其是一种用于国产化系统的文件系统定位检查点方法。
技术介绍
1、日志式文件系统即将文件的元数据和内容组织为日志式的结构,在文件追加、修改文件内容等文件系统操作像记录日志一样,在基本以顺序的形式写入磁盘介质。而当日志式文件系统启动时,要求驱动程序从磁盘海量的介质中较快地找到关闭文件系统前最后的“检查点(checkpoint)”,即恢复最后的现场。
2、日志式文件系统的特征是,对数据的组织像日志一样,对文件系统的改动(增、删、改文件或目录等)都以写日志的方式记录追加在线性的磁盘介质上。通常(也必然),日志式文件系统要写“日志”的同时(一定间隔地)生成检查点。程序可通过检查点快速生成文件系统的界面,即可访问所有文件内容的一种数据结构。
3、由此可见,如果文件系统突然中止,失去当前内存,如何通过磁盘上已经写入的数据快速恢复到最后检查点的状态,提供可继续访问和操作的界面,这便是所谓日志式文件系统的定位检查点的方法。
4、现有的日志式文件系统在定位检查点的方法有两类,一是以f2fs和linlogfs为典型的非日志式管理整体元数据的方法,二是以nilfs为典型的持续修改超级块(superblock)的方法。
5、第一种方法(非日志式管理整体元数据的方法)中,整体元数据并不是采用日志式组织的,只有文件数据和文件元数据是日志式组织的。所以,磁盘所存储的数据分割为二个区域,一个是以一般形式组织的整体元数据,一个是日志式组织的文件元数
6、第二种方法(持续修改超级块)中,整体元数据和文件元数据、文件数据均以日志式组织,但在固定于开始扇区的超级块需要不断改写,以指向最新的检查点。如生成第一个检查点,将此检查点地址写入超级块的字段,之后生成第二个,也将其地址写入超级块中。超级块虽使用不断修改到最后的检查点地址。当重新启动文件系统时,程序读出超级块的内容,得到最后检查点的地址。
7、上述两种的方式都存在如下缺陷:超级块在固定扇区,频繁改动容易造成超级块介质损坏。
8、经检索,未发现与本专利技术相同或相似的现有技术的文献。
技术实现思路
1、本专利技术的目的在于克服现有技术的不足,提出一种用于国产化系统的文件系统定位检查点方法,能够解决超级块或全局元数据区不能循环使用的技术问题。
2、本专利技术解决其现实问题是采取以下技术方案实现的:
3、一种用于国产化系统的文件系统定位检查点方法,包括以下步骤:
4、步骤1、对日志式文件系统的磁盘布局进行改进,获得改进后的日志式文件系统的磁盘布局;
5、步骤2、基于步骤1所获得的改进后的日志式文件系统的磁盘布局,在数据库区的若干连续的扇区中,进行日志式文件系统的定位检查点;
6、而且,所述步骤1的改进后的日志式文件系统的磁盘布局包括:超级块、数据库区和段数据区;
7、而且,所述步骤1的具体方法为:
8、将从零号扇区开始到一个块作为超级块,该超级块在格式化时改动一次后设置为仅可读,所述超级块用于提供文件系统的基本信息,包括:逻辑块的字节数、生成检查点的空间间隔和时间间隔、段的大小和总数量。
9、在所述超级块之后,设置一个由若干连续扇区组成的存储区,作为数据库区,用于存储最后检查点地址;
10、在所述数据库区之后,设置一个分割为若干个段的海量存储区,作为段数据区,用于存储文件元数据、数据和检查点数据。
11、而且,所述步骤2的具体步骤包括:
12、(1)在数据库区的每个扇区中存储一条记录;
13、其记录的内容包括:
14、uuid是在格式化文件系统时生成的补重复的128位的标识,用于避免脏扇区的影响;
15、cp_no是检查点的序号,日志式文件系统启动时,得到上次运行的最后产生的检查点的值;并生成新的检查点,每次都增1。
16、cp_addr是这个检查点的地址,即相对磁盘零号扇区起始位置的偏移值;
17、number是计数,表示记录的序号,在数据库每增加一条记录,number会增1;
18、(2)设置扇区布局为:前部为struct dbsec结构体、中间为补零,最后为64位哈希摘要;
19、(3)验证扇区有效性:根据uuid和哈希摘要,验证一个扇区的有效性,仅当uuid与当前文件系统一致,且扇区内容符合哈希摘要时,验证扇区为有效扇区;
20、(4)找出上次关闭文件系统时的最后的检查点的地址,即找出number最大的扇区;
21、(5)当文件系统生成新的检查点时,将当前的number值增1,并在当前number最大的扇区的后一个扇区写入新的struct dbsec结构体,如果当前number最大的扇区已经是数据库扇区的最后一个,则从数据库扇区的第零个写入,即循环地利用数据库扇区。
22、(6)考虑内存限制和每次读取磁盘的效率,则从数据库扇区搜索出number最大的扇区,即找出存储最后检查点地址的扇区;
23、而且,所述步骤2第(6)步的具体步骤包括:
24、①在内存分配512个扇区大小的空间;
25、②设当前最大的number的扇区副本是全零;
26、③从首个数据库扇区开始,读入512个扇区到内存,如果不足,仅读入余下的扇区;
27、④在内存中遍历所有扇区,如果扇区内容合法且存在number比当前扇区副本大的,则将它的内容复制到当前扇区副本;
28、⑤判断是否已经处理所有数据库扇区;
29、⑥若已经处理所有数据库扇区,则清除内存512个扇区的空间,将当前扇区副本即为number最大扇区的内容,进而找到number最大的数据库扇区。
30、本专利技术的优点和有益效果:
31、本专利技术提出一种用于国产化系统的文件系统定位检查点方法,提供了可循环利用一个较大的区域记录检查点的地址。相较于
技术介绍
中提及的单一超级块或使用乒乓记录检查点地址的方式,可靠性显著提高。例如:日志式文件系统生成了1024次检查点,单一超级块方案对超级块扇区的改写即达到1024次,使用乒乓记录检查点地址的方式达到512次。如果使用512kb的本专利技术提出的数据库区,假设扇区是512字节,则生成1024次检查点,数据库区的每个扇区仅改写1次。一般来说,超级块损坏将导致文件系统本文档来自技高网...
【技术保护点】
1.一种用于国产化系统的文件系统定位检查点方法,其特征在于:包括以下步骤:
2.根据权利要求1所述的一种用于国产化系统的文件系统定位检查点方法,其特征在于:所述步骤1的改进后的日志式文件系统的磁盘布局包括:超级块、数据库区和段数据区。
3.根据权利要求1所述的一种用于国产化系统的文件系统定位检查点方法,其特征在于:所述步骤1的具体方法为:
4.根据权利要求1所述的一种用于国产化系统的文件系统定位检查点方法,其特征在于:所述步骤2的具体步骤包括:
5.根据权利要求4所述的一种用于国产化系统的文件系统定位检查点方法,其特征在于:所述步骤2第(6)步的具体步骤包括:
【技术特征摘要】
1.一种用于国产化系统的文件系统定位检查点方法,其特征在于:包括以下步骤:
2.根据权利要求1所述的一种用于国产化系统的文件系统定位检查点方法,其特征在于:所述步骤1的改进后的日志式文件系统的磁盘布局包括:超级块、数据库区和段数据区。
3.根据权利要求1所述的一种用于国产化系统的文件...
【专利技术属性】
技术研发人员:于宏志,董承恩,王洪涛,薛超,王朝昕,陈澎祥,
申请(专利权)人:天地伟业技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。