一种联合文件系统故障自恢复方法及装置与流程

文档序号:16627741发布日期:2019-01-16 06:16阅读:151来源:国知局
一种联合文件系统故障自恢复方法及装置与流程

本公开涉及计算机领域,具体涉及一种联合文件系统故障自恢复方法及装置。



背景技术:

联合文件系统是一种虚拟的文件系统,它并不具备真正的实体,而是通过将多个实体的文件系统聚合在一起,形成一个层级,构成的一个虚拟的文件系统,对这个文件系统的读写,将会映射到层级聚合的实体文件系统中。联合文件系统(unionfs)是一种轻量级的高性能分层文件系统,它支持将文件系统中的修改信息作为一次提交,并层层叠加,同时可以将不同目录挂载到同一个虚拟文件系统下,应用看到的是挂载的最终结果。

联合文件系统是一种linux系统中常见的文件系统,这种文件系统的核心结构是将多个不同的目录挂载成一个独立的文件目录,在这个独立的文件目录中,文件分层级的存储在多个组成的目录中,上层的文件将遮盖下层的文件,当发生文件写入的时候,可以选择多种策略将文件分散在各个层级目录中。

联合文件系统中出现的问题主要是文件更新写入的性能比较低下,文件的写入并没有进行冗余来对数据进行保护,同时对层级中的目录故障的时候缺乏有效的发现和隔离机制,并且不能在故障层级目录恢复的时候将故障目录自动加入到整体的文件服务之中。



技术实现要素:

本公开提供一种联合文件系统故障自恢复方法及装置,在联合文件系统的多个层级目录中进行故障自恢复,使得联合文件系统具有自动恢复的能力。

为了实现上述目的,根据本公开的一方面,提供一种联合文件系统故障自恢复方法,所述方法包括以下步骤:

步骤1,在联合文件系统的层级目录出现故障时进行故障隔离;

步骤2,为故障层级目录生成文件恢复计数器;

步骤3,往故障层级目录中写入一个随机生成的文件;

步骤4,若写入成功,则将恢复计数器加一,若写入失败,则将恢复计数器复位为零;

步骤5,判断恢复计数器是否已经超过了预设的阈值,若超过阈值则将层级目录标记为已恢复并转到步骤6,若没有超过阈值则转到步骤3;

步骤6,执行层级目录的io恢复程序。

进一步地,在步骤1中,所述联合文件系统包括至少一个层级目录,每个层级目录都有唯一的层级id,所述层级目录包括定时器、文件恢复计数器、文件更新程序、io恢复程序,所述文件恢复计数器在层级出现故障时生成,所述定时器用于定时循环启动恢复检测程序。

进一步地,在步骤1中,在联合文件系统的层级目录出现故障时进行故障隔离的方法包括以下子步骤:

步骤1.1,将出现故障的层级目录的文件更新队列映射到上一个层级目录的文件更新队列中;

步骤1.2,将出现故障的层级目录的文件更新程序映射为下一个层级目录的文件更新程序;

步骤1.3,将出现故障的层级目录的文件io重定向到上一个层级目录的文件io;

如果出现故障的是最后一层目录,则将第一层目录作为最后一层目录的下一层;如果出现故障的是第一层目录,则将最后一层目录作为第一层目录的上一层,所有的层级目录构造组织成一个环型结构,实现循环层级的故障隔离。

进一步地,在步骤3中,所述随机生成的文件大小随机,随机大小的范围为大于1mb少于100mb,以随机的内容填充。

进一步地,在步骤5中,所述阈值为人工设置,设置标准为每100g容量至少n次写入成功,n为可配置值,n取值范围为大于0的正整数,阈值计算方法为容量/100*n。

进一步地,在步骤6中,执行层级目录的io恢复程序包括以下子步骤:

步骤6.1,将已恢复层级目录的文件更新队列的读写重新映射回本层级目录的文件更新队列;

步骤6.2,将已恢复的层级目录的文件更新程序,重新映射为本层级目录的文件更新程序;

步骤6.3,将已恢复的层级目录的io请求恢复到本层级目录中执行。

本发明还提供了一种联合文件系统故障自恢复装置,所述装置包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序运行在以下装置的单元中:

故障隔离单元,用于在联合文件系统的层级目录出现故障时进行故障隔离;

计数器生成单元,用于为故障层级目录生成文件恢复计数器;

随机写入单元,用于往故障层级目录中写入一个随机生成的文件;

恢复计数单元,用于判断若写入成功,则将恢复计数器加一,若写入失败,则将恢复计数器复位为零;

阈值判断单元,用于判断恢复计数器是否已经超过了预设的阈值,若超过阈值则将层级目录标记为已恢复并转到恢复执行单元,若没有超过阈值则转到随机写入单元;

恢复执行单元,用于执行层级目录的io恢复程序。

本公开的有益效果为:本发明提供一种联合文件系统故障自恢复方法及装置,在联合文件系统的多个层级目录中进行故障自恢复,使得联合文件系统具有自动恢复的能力,在保证整个联合文件系统业务正常的情况下,能够自动将已经恢复的故障层级,加入到层级中继续服务,大大的提升了联合文件系统的业务可持续能力。

附图说明

通过对结合附图所示出的实施方式进行详细说明,本公开的上述以及其他特征将更加明显,本公开附图中相同的参考标号表示相同或相似的元素,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,在附图中:

图1所示为一种联合文件系统故障自恢复方法的流程图;

图2所示为一种联合文件系统故障自恢复装置图。

具体实施方式

以下将结合实施例和附图对本公开的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本公开的目的、方案和效果。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

如图1所示为根据本公开的一种联合文件系统故障自恢复方法的流程图,下面结合图1来阐述根据本公开的实施方式的一种联合文件系统故障自恢复方法。

本公开提出一种联合文件系统故障自恢复方法,具体包括以下步骤:

步骤1,在联合文件系统的层级目录出现故障时进行故障隔离;

步骤2,为故障层级目录生成文件恢复计数器;

步骤3,往故障层级目录中写入一个随机生成的文件;

步骤4,若写入成功,则将恢复计数器加一,若写入失败,则将恢复计数器复位为零;

步骤5,判断恢复计数器是否已经超过了预设的阈值,若超过阈值则将层级目录标记为已恢复并转到步骤6,若没有超过阈值则转到步骤3;

步骤6,执行层级目录的io恢复程序。

进一步地,在步骤1中,所述联合文件系统包括至少一个层级目录,每个层级目录都有唯一的层级id,所述层级目录包括定时器、文件恢复计数器、文件更新程序、io恢复程序,所述文件恢复计数器在层级出现故障时生成,所述定时器用于定时循环启动恢复检测程序。

进一步地,在步骤1中,在联合文件系统的层级目录出现故障时进行故障隔离的方法包括以下子步骤:

步骤1.1,将出现故障的层级目录的文件更新队列映射到上一个层级目录的文件更新队列中;

步骤1.2,将出现故障的层级目录的文件更新程序映射为下一个层级目录的文件更新程序;

步骤1.3,将出现故障的层级目录的文件io重定向到上一个层级目录的文件io;

如果出现故障的是最后一层目录,则将第一层目录作为最后一层目录的下一层;如果出现故障的是第一层目录,则将最后一层目录作为第一层目录的上一层,所有的层级目录构造组织成一个环型结构,实现循环层级的故障隔离。

进一步地,在步骤3中,所述随机生成的文件大小随机,随机大小的范围为大于1mb少于100mb,以随机的内容填充。

进一步地,在步骤5中,所述阈值为人工设置,设置标准为每100g容量至少n次写入成功,n为可配置值,n取值范围为大于0的正整数,阈值计算方法为容量/100*n。

进一步地,在步骤6中,执行层级目录的io恢复程序包括以下子步骤:

步骤6.1,将已恢复层级目录的文件更新队列的读写重新映射回本层级目录的文件更新队列;

步骤6.2,将已恢复的层级目录的文件更新程序,重新映射为本层级目录的文件更新程序;

步骤6.3,将已恢复的层级目录的io请求恢复到本层级目录中执行。

本公开的实施例提供的一种联合文件系统故障自恢复装置,如图2所示为本公开的一种联合文件系统故障自恢复装置图,该实施例的一种联合文件系统故障自恢复装置包括:处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述一种联合文件系统故障自恢复装置实施例中的步骤。

所述装置包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序运行在以下装置的单元中:

故障隔离单元,用于在联合文件系统的层级目录出现故障时进行故障隔离;

计数器生成单元,用于为故障层级目录生成文件恢复计数器;

随机写入单元,用于往故障层级目录中写入一个随机生成的文件;

恢复计数单元,用于判断若写入成功,则将恢复计数器加一,若写入失败,则将恢复计数器复位为零;

阈值判断单元,用于判断恢复计数器是否已经超过了预设的阈值,若超过阈值则将层级目录标记为已恢复并转到恢复执行单元,若没有超过阈值则转到随机写入单元;

恢复执行单元,用于执行层级目录的io恢复程序。

所述一种联合文件系统故障自恢复装置可以运行于桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备中。所述一种联合文件系统故障自恢复装置,可运行的装置可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述例子仅仅是一种联合文件系统故障自恢复装置的示例,并不构成对一种联合文件系统故障自恢复装置的限定,可以包括比例子更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述一种联合文件系统故障自恢复装置还可以包括输入输出设备、网络接入设备、总线等。

所称处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述一种联合文件系统故障自恢复装置运行装置的控制中心,利用各种接口和线路连接整个一种联合文件系统故障自恢复装置可运行装置的各个部分。

所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述一种联合文件系统故障自恢复装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

尽管本公开的描述已经相当详尽且特别对几个所述实施例进行了描述,但其并非旨在局限于任何这些细节或实施例或任何特殊实施例,而是应当将其视作是通过参考所附权利要求考虑到现有技术为这些权利要求提供广义的可能性解释,从而有效地涵盖本公开的预定范围。此外,上文以发明人可预见的实施例对本公开进行描述,其目的是为了提供有用的描述,而那些目前尚未预见的对本公开的非实质性改动仍可代表本公开的等效改动。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1