一种文件系统内实现独立磁盘冗余阵列保护的方法及装置的制作方法

文档序号:6341091阅读:221来源:国知局
专利名称:一种文件系统内实现独立磁盘冗余阵列保护的方法及装置的制作方法
技术领域
本发明涉及通信技术领域,特别涉及一种文件系统内实现独立磁盘冗余阵列保 护的方法及装置。
背景技术
文件系统是用来管理和存储文件信息的文件管理系统,文件系统可以通过逻 辑单元(LUN)的虚拟块设备,向独立磁盘冗余阵列(Redunchnt Array oflndependent Disk, RAID)模块读写数据。其中RAID模块中可以包括一个或多个数据存储块(记为 RAIDn),每个数据存储块包括多个硬盘,数据存储在这些硬盘中,并带有附加的冗余信 肩、ο
在进行数据读写时,当文件系统接收到数据读写请求即输入输出(IO)请求,对 该数据读写请求进行解析后储存到LUN虚拟块设备中相应位置;而RAID模块就会从 LUN虚拟块设备中读取了数据读写请求,并对数据读写请求解析后,采用RAID的数据 保护方法对请求的数据进行处理,比如将数据存储到硬盘中,或从硬盘中读取数据。其 中RAID的数据保护方法即为RAID模块进行数据读写时所采用的方法,包括多种类型, 即RAIDnCn =1,2....)的数据保护方法。现有对文件数据处理时,RAID模块是随机向 硬盘读写数据的,数据存储的可靠性较低。发明内容
本发明实施例提供文件系统内实现独立磁盘冗余阵列保护的方法及装置,提高 数据存储的可靠性,且简化了文件处理过程。
本发明实施例提供一种文件系统内实现独立磁盘冗余阵列保护的方法,包括
接收文件操作请求,确定所述文件操作请求所请求操作的文件类型,所述文件 类型包括文件元数据,和/或文件数据;
根据所述确定的文件类型选择相应的文件操作方法,所述文件操作方法为独立 磁盘冗余阵列RAID的数据保护方法;
根据所述选择的文件操作方法向硬盘进行文件操作。
本发明实施例提供一种文件系统内实现独立磁盘冗余阵列保护的装置,包括 类型确定模块和操作模块;
所述类型确定模块,用于接收文件操作请求,确定所述文件操作请求所请求操 作的文件类型,所述文件类型包括文件元数据,和/或文件数据;
所述操作模块,用于根据所述类型确定模块确定的文件类型选择相应的文件操 作方法,所述文件操作方法为独立磁盘冗余阵列RAID的数据保护方法;并根据所述选 择的文件操作方法向硬盘进行文件操作。
本发明实施例中文件系统在接收到文件操作请求后,需要确定该文件操作请 求所请求操作的文件类型,并根据确定的文件类型对应的文件操作方法即独立磁盘冗余阵列RAID的数据保护方法,直接向文件系统的硬盘进行文件操作。使得在进行文件操作 时,就可以根据文件类型的不同采用适当的操作方法进行文件操作,这样可以对比较重 要的文件类型的数据重点保护,比如可以将重要的数据写到文件系统的每个硬盘上等, 从而提高了数据存储的可靠性;
且本发明实施例中的方法不需要经过文件系统和RAID模块分别对文件操作请求 进行解析后,再由RAID模块向硬盘进行文件操作,而是直接由文件系统采用RAID的数 据保护方法访问系统的硬盘,从而简化了文件处理的过程,且提高系统的可靠性。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或 现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅 是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提 下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种文件系统内实现独立磁盘冗余阵列保护的方法 的流程图2是本发明实施例提供的一种存储数据的结构示意图3是本发明实施例提供的一种文件系统内实现独立磁盘冗余阵列保护的装置 的结构示意图4是本发明实施例中文件系统与上层应用系统之间的关系结构示意图5是本发明实施例提供的另一种文件系统内实现独立磁盘冗余阵列保护的装 置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、 完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施 例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得 的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种文件系统内实现独立磁盘冗余阵列保护的方法,本发明 实施例的文件操作方法是文件系统所执行的方法,流程图如图1所示,包括
101,接收文件操作请求,确定文件操作请求所请求操作的文件类型,文件类型 包括文件元数据,和/或文件数据;
这里文件操作请求可以为文件读/写请求即IO请求等。而文件元数据是指文 件系统中的属性数据,比如文件格式、文件大小等数据;文件数据是指文件的内容数 据。
102,根据确定的文件类型选择相应的文件操作方法;
文件操作方法是指对进行文件操作时使用的方法,可以是传统的任一类型的 RAID数据保护方法,且可以对于不同文件类型需要采用不同的方法。比如对于一些文件 类型的数据比较重要,可以选用RAIDl的多份镜像冗余算法;而一些类型的数据可以根 据应用场景需要,选择RAID1,RAID5, RAID6等保护方法。5
其中RAIDn是一个数据存储块,每个数据存储块的数据保护方法的类型都不 同例如RAIDl是数据多份镜像冗余的保护方法;而RAID5将数据存储在数据条带中, 且每个数据条带中的任一分片数据都可以通过该数据条带中的检验块和其他分片数据计 算出,其中一个数据条带中的分片数据储存在不同的硬盘上。
这里由文件系统根据获知的文件类型需要采用不同的RAID数据保护方法直接访 问硬盘,并进行文件操作,可以提高数据存储的可靠性。
103,根据步骤102中选择的文件操作方法向文件系统的硬盘进行文件操作。
本发明实施例中,文件系统中的数据都存储在多个硬盘中,这些硬盘不会组成 独立磁盘冗余阵列,文件系统可以直接对这些硬盘进行文件操作,比如可以直接向硬盘 写数据或读数据等。其中这里的硬盘可以是任何非易失性存储介质,比如传统硬盘,固 态硬盘,磁带,或可擦写光盘等。
例如如果文件操作方法是RAIDl的多份镜像冗余保护方法,则文件系统在 进行写文件时,需要将文件备份成多份并分别存储到多个硬盘中;如果文件操作方法是 RAID5的数据保护方法,则文件系统在写文件时,按照RAID5数据保护方法,将文件存 储到硬盘中的数据条带中。
本发明实施例中文件系统在接收到文件操作请求后,需要确定该文件操作请 求所请求操作的文件类型,并根据确定的文件类型对应的文件操作方法即RAID数据保护 方法,直接向文件系统中的硬盘进行文件操作。使得在进行文件操作时,就可以根据文 件类型的不同采用适当的操作方法进行相应的文件操作,这样可以对比较重要的文件类 型的数据重点保护,比如可以将重要的数据写到系统的每个硬盘上等,从而提高了数据 存储的可靠性;
且本发明实施例中的方法不需要经过文件系统和RAID模块分别对文件操作请求 进行解析后,再由RAID模块向硬盘进行文件操作,而是由文件系统采用RAID的数据保 护方法直接访问系统的硬盘,简化了文件处理的过程,且提高系统的可靠性。
在一个具体的实施例中,如果步骤101接收的文件操作请求是文件写请求,且 确定的文件类型包括文件元数据,则步骤102中选择的文件操作方法为多份镜像冗余算 法,在步骤103中向硬盘进行文件操作时,可以通过如下方法来实现按照多份镜像冗 余算法,将文件元数据备份成多份并分别存储到至少两个硬盘中。
这里的多份镜像冗余算法即将元数据备份成多份的算法,可以理解,由于文件 元数据比较重要,是文件系统进行基本运行的数据,因此,需要将文件元数据写成多 份,且分别存储到多个硬盘中。
如果确定的文件类型包括文件数据,则步骤103中向硬盘进行文件操作时,可 以通过如下步骤来实现
Al:根据文件写请求中文件数据的偏移位置,确定文件数据在文件系统中的数 据条带位置;
数据条带是一些RAID类型的数据保护方法中存储数据的单位。在文件写请求 中,都会包含有文件数据相对于初始存储数据的偏移位置,文件系统可以根据这个偏移 位置来确定文件数据应该存储在哪个数据条带,及在数据条带中的位置,从而可以确定 该文件数据应该存储在哪个硬盘上。6
以将文件数据按照RAID5的数据保护方法进行存储为例,参考图2所示,数据 储存到10个硬盘中,每个硬盘上有多个分片数据,图中只画出硬盘上的11个分片数据, 其中斜线填充的部分存储有校验块P,每个数据条带中包含有横向分布的9个分片数据和 1个校验块P,且校验块P可以通过下述公式(1)得到
P = Dl xor D2 xor D3...xor Dn (1)
其中Dl,D2,D3...Dn表示一个数据条带中的分片数据,P为校验块,xor为异或运算。
假设文件写请求中文件数据的偏移位置为11,而初始存储数据的位置为硬盘2 的分片数据D1,则该文件数据应该存储到数据条带1上的D12位置,从而可以确定将文 件数据存储到硬盘4中。
A2根据确定的位置将文件数据写到相应的硬盘中。
可以理解,在每个硬盘上都会有个单盘文件系统,在单盘文件系统上建立有至 少两个分片文件,在步骤103执行文件的写操作时,可以将文件元数据和/或文件数据分 布到这些分片文件中,这样一个文件操作请求对应的文件就可以分布在至少两个硬盘上 单盘文件系统的分片文件中,且组成RAID的数据保护关系。
在另一个具体的实施例中,如果步骤101接收的文件操作请求是文件读请求, 且确定的文件类型包括文件元数据,则步骤103中在向硬盘进行文件操作时,可以通过 如下方法来实现向存储有文件元数据的任一硬盘读取文件元数据。
由于在文件元数据的写操作时,是按照多份镜像冗余算法将文件元数据备份成 多份分别存储到至少两个硬盘上的,则在这至少两个硬盘上的文件元数据组成了 RAID的 数据保护方法,因此在进行文件元数据的读取时,可以在这至少两个硬盘的任一硬盘上 进行读取。
如果确定的文件类型包括文件数据,则步骤103中向硬盘进行文件操作时,可 以通过如下步骤来实现
Bi:根据文件读请求中文件数据的偏移位置,确定文件数据在文件系统中的数 据条带位置;
同样在文件读请求中,都会包含有文件数据相对于初始存储数据的偏移位置, 文件系统可以根据这个偏移位置来确定文件数据存储在哪个数据条带,及在数据条带中 的位置,从而可以确定该文件数据存储在哪个硬盘上。
B2 向文件系统中相应的硬盘读取文件数据。
且如果在读文件数据失败时,可以根据文件数据所在的数据条带中其它分片数 据和校验块,计算丢失的文件数据。
以将文件数据按照RAID5数据保护方法进行存储为例,参考图2所示,假设文 件读请求中文件数据的偏移位置为13,而初始存储数据的位置为硬盘2的分片数据D1, 则该文件数据是存储在数据条带1上的D14位置,从而可以确定从硬盘6中读取文件数 据。如果D14中的文件数据读取失败,可以根据条带1上其他数据即DlO到D13和D15 到D18,校验块,及公式(1)计算丢失的文件数据。
在其它的具体实施例中,本发明实施例的方法还包括检测文件系统中数据条 带的状态,当有数据条带的数据丢失,则重构丢失的数据。重构丢失的数据的方法如现有RAID模块重构数据的方法一致,在此不进行赘述。
本发明实施例提供一种文件系统内实现独立磁盘冗余阵列保护的装置,结构示 意图如图3所示,包括类型确定模块10和操作模块20,其中
类型确定模块10,用于接收文件操作请求,确定文件操作请求所请求操作的文 件类型,文件类型包括文件元数据,和/或文件数据;
操作模块20,用于根据类型确定模块10确定的文件类型选择相应的文件操作方 法,文件操作方法为独立磁盘冗余阵列RAID的数据保护方法;并根据选择的文件操作 方法向硬盘进行相应的文件操作。
参考图4所示,本发明实施例中的装置可以是设备在执行应用程序过程中对文 件进行的操作装置,该装置中可以包括用户文件系统,该装置可以向硬盘进行数据操 作,每个硬盘中有一个单盘文件系统。上层应用系统是面对用户的接口,当上层应用系 统接收到文件操作请求后会发送给用户文件系统,而用户文件系统会根据采用RAID的数 据保护方法直接访问硬盘,使得文件分布在多个硬盘上单盘文件系统中的分片文件中, 并组成RAID保护关系。
本发明实施例的文件系统内实现独立磁盘冗余阵列保护的装置中类型确定模 块10在接收到文件操作请求后,需要确定该文件操作请求所请求操作的文件类型,并由 操作模块20根据确定的文件类型对应的文件操作方法即RAID的数据保护方法,直接向 硬盘30进行文件操作。使得文件系统在进行文件操作时,就可以根据文件类型的不同采 用适当的操作方法进行相应的文件操作,这样可以对比较重要的文件类型的数据重点保 护,比如可以将重要的数据写到每个硬盘30上等,从而提高了数据存储的可靠性;
且本发明实施例中的方法不需要经过文件系统和RAID模块分别对文件操作请求 进行解析后,再由RAID模块向硬盘进行文件操作,而是直接由文件系统采用RAID的数 据保护方法访问系统的硬盘,从而简化了文件处理的过程,且提高系统的可靠性。
参考图5所示,在一个具体的实施例中,文件系统内实现独立磁盘冗余阵列保 护的装置还可以包括硬盘检测模块50和重构模块40,且操作模块20可以包括元数据处理 模块201和文件数据处理模块202,其中
元数据处理模块201,用于当文件操作请求为文件读写请求,且类型确定模块 10确定文件类型包括文件元数据,按照多份镜像冗余算法,将文件元数据备份成多份并 存储到至少两个硬盘30中,或向存储有文件元数据的任一硬盘30中读取文件元数据;
文件数据处理模块202,用于当文件操作请求为文件读写请求,且类型确定模块 10确定文件类型包括文件数据,根据文件读写请求中文件数据的偏移位置,确定文件数 据在文件系统中的数据条带位置;并向文件系统中相应的硬盘30读写文件数据。
且文件数据处理模块202还可以用于当文件数据丢失时,根据文件数据所在的 数据条带中其它分片数据和校验块,计算丢失的文件数据。
重构模块40,用于检测文件系统中数据条带的状态,当有数据条带丢失数据, 则重构丢失的数据。
硬盘检测模块50,用于检测文件系统中硬盘30的状态,如果有硬盘发生故障或 有新硬盘插入时,将硬盘状态上报给重构模块40。
可以理解,本实施例中文件系统的类型确定模块10接收到的文件操作请求如果8是文件读写请求,且确定文件类型包括文件元数据,则由元数据处理模块201对元数据 进行相应处理,如果确定文件类型中包括文件数据,则由文件数据处理模块202对文件 数据进行相应处理。且重构模块40会检测文件系统中硬盘30存储数据的数据条带的状 态,发现有数据条带丢失数据时,则重构丢失的数据;而硬盘检测模块50会检测硬盘30 的状态,并将硬盘的状态上报给重构模块40,由重构模块40根据硬盘的状态进行重构 和/或回拷文件。例如有硬盘发生故障,则重构该故障硬盘上的数据;故障硬盘恢复正 常,则将热备盘上的数据回拷到恢复正常的硬盘等。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可 以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存 储介质可以包括只读存储器(ROM)、随机存取存储器(RAM)、磁盘或光盘等。
以上对本发明实施例所提供的文件系统内实现独立磁盘冗余阵列保护的方法及 装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐 述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本 领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之 处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种文件系统内实现独立磁盘冗余阵列保护的方法,其特征在于,包括接收文件操作请求,确定所述文件操作请求所请求操作的文件类型,所述文件类型包括文件元数据,和/或文件数据;根据所述确定的文件类型选择相应的文件操作方法;所述文件操作方法为独立磁盘 冗余阵列RAID的数据保护方法;根据所述选择的文件操作方法向硬盘进行文件操作。
2.如权利要求1所述的方法,其特征在于,若所述文件操作请求为文件写请求,且如 果确定所述文件类型包括文件元数据,则选择的文件操作方法为多份镜像冗余算法,则 向硬盘进行文件操作具体包括将所述文件元数据备份成多份并分别存储到至少两个硬 盘中;如果确定所述文件类型包括文件数据,则向硬盘进行文件操作具体包括根据所述 文件写请求中文件数据的偏移位置,确定所述文件数据在文件系统中的数据条带位置; 并根据所述确定的位置将所述文件数据写到相应的硬盘中。
3.如权利要求2所述的方法,其特征在于,所述文件操作请求为文件读请求,且如果 确定所述文件类型包括文件元数据,则向硬盘进行文件操作具体包括向所述存储有文 件元数据的任一硬盘读取所述文件元数据;如果确定所述文件类型包括文件数据,则向硬盘进行文件操作具体包括根据所述 文件读请求中文件数据的偏移位置,确定所述文件数据在文件系统中的数据条带位置; 并向所述文件系统中相应的硬盘读取所述文件数据。
4.如权利要求2或3所述的方法,其特征在于,所述硬盘的单盘文件系统上建立有至 少两个分片文件,所述文件操作请求对应的文件分布在至少两个硬盘上单盘文件系统的 分片文件中,且组成RAID的数据保护关系。
5.如权利要求2或3所述的方法,其特征在于,所述方法还包括当所述文件数据丢失时,根据所述文件数据所在的数据条带中其它分片数据和校验 块,计算丢失的文件数据。
6.如权利要求2或3所述的方法,其特征在于,所述方法还包括检测所述文件系统中数据条带的状态,当有数据条带丢失数据时,则重构所述丢失 的数据。
7.—种文件系统内实现独立磁盘冗余阵列保护的装置,其特征在于,包括类型确 定模块和操作模块;所述类型确定模块,用于接收文件操作请求,确定所述文件操作请求所请求操作的 文件类型,所述文件类型包括文件元数据,和/或文件数据;所述操作模块,用于根据所述类型确定模块确定的文件类型选择相应的文件操作方 法,所述文件操作方法为独立磁盘冗余阵列RAID的数据保护方法;并根据所述选择的 文件操作方法向硬盘进行文件操作。
8.如权利要求7所述的装置,其特征在于,所述操作模块包括元数据处理模块,用于当所述文件操作请求为文件读写请求,且所述类型确定模块 确定所述文件类型包括文件元数据,按照多份镜像冗余算法,将所述文件元数据备份成 多份并存储到至少两个硬盘中,或向存储有文件元数据的任一硬盘中读取所述文件元数据。
9.如权利要求8所述的装置,其特征在于,所述操作模块还包括文件数据处理模块,用于当所述文件操作请求为文件读写请求,且所述类型确定模 块确定所述文件类型包括文件数据,根据所述文件读写请求中文件数据的偏移位置,确 定所述文件数据在文件系统中的数据条带位置;并向所述文件系统中相应的硬盘读写所 述文件数据。
10.如权利要求9所述的装置,其特征在于,所述文件数据处理模块还用于当所述文 件数据丢失时,根据所述文件数据所在的数据条带中其它分片数据和校验块,计算丢失 的文件数据。
11.如权利要求8至10任一项所述的装置,其特征在于,还包括重构模块,用于检 测所述文件系统中数据条带的状态,当有数据条带丢失数据,则重构所述丢失的数据。
全文摘要
本发明实施例公开了文件系统内实现独立磁盘冗余阵列保护的方法及装置,应用于通信技术领域。本发明实施例中文件系统在接收到文件操作请求后,需要确定该文件操作请求所请求操作的文件类型,并根据确定的文件类型对应的文件操作方法即独立磁盘冗余阵列RAID的数据保护方法,直接向文件系统的硬盘进行文件操作。使得在进行文件操作时,就可以根据文件类型的不同采用适当的操作方法进行相应的文件操作,这样可以对比较重要的文件类型的数据重点保护,从而提高了数据存储的可靠性。
文档编号G06F3/06GK102024059SQ20101061996
公开日2011年4月20日 申请日期2010年12月31日 优先权日2010年12月31日
发明者张巍, 魏明昌 申请人:成都市华为赛门铁克科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1