一种远程目录分支点维护系统及其方法

文档序号:6526543阅读:167来源:国知局
一种远程目录分支点维护系统及其方法
【专利摘要】本发明公开了一种远程目录分支点维护系统,包括:元数据服务器集群和客户端,元数据服务器集群进一步包括:主元数据服务器和多个远程元数据服务器,其中,主元数据服务器用于将所有新建的目录的索引节点inode记录在父目录中,并且在索引节点inode中嵌入远程元数据服务器的位置信息,对远程元数据服务器的位置信息进行记录和维护,远程元数据服务器用于创建远程子目录,以实现远程子目录的元数据访问,客户端用于根据维护的元数据服务器集群的定位信息,确定目标元数据服务器,建立与目标元数据服务器的连接,并对目标元数据服务器发送访问请求。本发明还公开了一种远程目录分支点维护方法。
【专利说明】一种远程目录分支点维护系统及其方法
【技术领域】
[0001]本发明涉及集群文件系统的元数据集群技术,特别涉及一种基于元数据集群中跨越多个服务器的远程目录分支点的维护方法。
【背景技术】
[0002]在大规模集群文件系统中,元数据与数据服务分离已经成为了一种趋势。一方面,数据访问不必通过元数据服务器,而是采用带外方式直接访问存储设备,从而获取较高的数据访问性能;另一方面,元数据服务器专门提供元数据服务,卸载了数据访问负载,从而单台元数据服务器可以支持更高的客户端访问性能,管理更多的存储设备,支持更大的系统规模扩展。然而,随着系统规模的不断扩大,单台元数据服务器逐渐成为制约系统扩展的瓶颈。为了进一步提升集群文件系统的扩展能力,通常采用多台元数据服务器构成元数据服务器集群,以分散元数据负载,支持通过增加元数据服务器数量达到集群文件系统的横向扩展。
[0003]以目录为粒度、把一些子目录的负载转移到其他元数据服务器是元数据负载分散的一种常用方法,被Lustre、pNFS、BWFS等集群文件系统所采用。元数据负载的分布是在子目录的创建过程中,以创建远程子目录的方式将子目录元数据负载转移到其他的元数据服务器,即选择父目录所在的元数据服务器之外的元数据服务器进行子目录创建,该子目录称为远程目录分支点。远程目录分支点的存储和访问涉及到父目录所在的元数据服务器、分支点实际所在的元数据服务器以及客户端,增加了系统实现复杂度,尤其对远程目录分支点的创建、访问和删除产生较大的影响。
[0004]现有的pNFS通过目录的位置属性(fsjocations)将位于不同服务器上多个子文件系统的名字空间整合起来,从而实现多服务器名字空间。在具体实现中,PNFS在父目录所在的服务器和负载转移的目标服务器上分别创建目录索引节点,并为父目录所在的服务器上相应目录索引节点的fsjocations属性设置上目标服务器的位置信息。客户端访问远程目录分支点时得到NFS4ERR_M0VED错误,然后通过Get_fslocations操作进一步获取远程目录分支点实际所在的目标服务器的位置,之后才能访问位于目标服务器上的远程目录分支点。
[0005]pNFS中每个目录分支点需要在父目录所在的元数据服务器上创建一个额外的索引节点来辅助完成中转,客户端需要额外的操作请求来获取远程目录分支点所在的元数据服务器位置。同时由于目录位于不同的文件系统中,且索引节点号没有得到统一的管理,导致pNFS不支持跨元数据服务器的目录元数据操作,比如跨元数据服务器的目录重命名(rename)、硬链接(hardlink)操作。

【发明内容】

[0006]本发明要解决的技术问题在于现有技术中集群文件系统在多台元数据服务器间分配负载过程中远程目录分支点维护空间利用率不高、操作复杂的问题,提供了一种新的远程目录分支点维护方法,以提高空间利用率,降低操作复杂度。
[0007]为了达到以上目的,本发明提供了一种远程目录分支点维护系统,其特征在于,所述系统包括:
[0008]一元数据服务器集群,所述元数据服务器集群进一步包括:一主元数据服务器和多个远程元数据服务器,其中,所述主元数据服务器用于将所有新建的目录的索引节点inode记录在父目录中,并且在所述索引节点inode中嵌入所述远程元数据服务器的位置信息,对所述远程元数据服务器的位置信息进行记录和维护,所述远程元数据服务器用于创建远程子目录,以实现所述远程子目录的元数据访问;
[0009]一客户端,用于根据维护的所述元数据服务器集群的定位信息,确定目标元数据服务器,建立与所述目标元数据服务器的连接,并对所述目标元数据服务器发送访问请求。
[0010]上述远程目录分支点维护系统,其特征在于,所述索引节点inode的索引号ino包含:标识索引节点inode所在元数据服务器的序号seqid和独立文件系统内局部索引节点号。
[0011 ] 上述远程目录分支点维护系统,其特征在于,所述主元数据服务器和每个所述远程元数据服务器都进一步包括:
[0012]目录 服务模块:用于接收所述客户端的请求,并构建和解析文件标识filehandle。
[0013]索引节点维护模块:用于索引节点号ino的维护,将所述远程元数据服务器的位置信息嵌入到所述索引节点号ino中。
[0014]上述远程目录分支点维护系统,其特征在于,所述文件标识filehandle包含--文件系统编号fsid、索引节点号ino、所述索引节点inode版本号generation域。
[0015]上述远程目录分支点维护系统,其特征在于,所述主元数据服务器还包括:
[0016]目录项维护模块:用于添加和删除目录项,并将新建的所述索引节点inode的信息添加到父目录中,并将待删除的所述索引节点inode的信息从所述父目录中删除。
[0017]上述远程目录分支点维护系统,其特征在于,所述客户端还包括:
[0018]元数据服务器地址映射模块:用于通过所述元数据服务器集群的位置信息映射表,根据标识索引节点inode所在元数据服务器的序号seqid查询所述索引节点inode所在的所述目标元数据服务器的位置;
[0019]目录请求模块:用于通过所述元数据服务器地址映射模块查询所述目标元数据服务器的位置,建立与所述目标元数据服务器的连接并发送请求。
[0020]本发明还提供了一种远程目录分支点维护方法应用于所述的远程目录分支点维护系统,其特征在于,所述方法包括:
[0021]目录项添加步骤:用于在所述元数据服务器集群中添加目录项;
[0022]目录项访问步骤:用于完成所述元数据服务器集群的访问。
[0023]上述远程目录分支点维护方法,其特征在于,所述目录项添加步骤还包括:
[0024]申请本地索引节点步骤:用于在所述索引节点维护模块分配本地索引节点inode,将所述索引节点号ino和所述generation域,传送到所述主元数据服务器;
[0025]添加序号步骤:用于所述主元数据服务器通过所述索引节点维护模块将传送来的所述索引节点号ino中添加所述远程元数据服务器的序号seqid进行标识;[0026]序号判断步骤:用于如果所述索引节点号ino中的seqid为0,则目标目录为本地目录,按照系统原有目录项添加方式添加目标目录的目录项,如果所述seqid为非0,则所述目标目录为远程目录,在原有目录项的基础上增加所述generation域;
[0027]文件标识创建步骤:用于根据所述索引节点号ino和所述generation域构建所述文件标识filehandle,并将构建好的所述filehandle返回给所述客户端进行保存。
[0028]上述远程目录分支点维护方法,其特征在于,所述目录项访问步骤还包括:
[0029]客户端请求发送步骤:用于通过所述元数据服务器地址映射模块查询所述目标元数据服务器的位置信息,所述客户端向所述目标元数据服务器发送请求;
[0030]元数据服务器端请求接收步骤:用于所述目标元数据服务器解析和处理所述客户端发出的请求。
[0031]上述远程目录分支点维护方法,其特征在于,所述元数据服务器端请求接收步骤还包括:
[0032]请求解析步骤:用于所述目标元数据服务器通过所述目录服务模块接收所述客户端发来的所述请求后,进行解析所述文件标识filehandle ;
[0033]请求处理步骤:将所述请求解析步骤获取的所述文件标识filehandle,依据对所述请求位于所述主元数据服务器或所述远程元数据服务器的判断,完成所述文件标识filehandle的处理,并将结果反馈给所述客户端。
[0034]上述远程目录分支点维护方法,其特征在于,所述请求解析步骤还包括:
[0035]Lookup请求解析步骤:收到所述客户端发送来的所述请求后,解析传送过来的所述父目录的filehandle,查询所述父目录的索引节点号ino,读取所述父目录的目录项文件获取目标文件的目录项;
[0036]Getattr请求解析步骤:从所述客户端发送的请求中获取所述filehandle,并解析所述索引节点号ino中的所述seqid,将所述seqid与本地seqid进行比较。
[0037]上述远程目录分支点维护方法,其特征在于,所述请求处理步骤还包括:
[0038]Lookup请求处理步骤:所述目录服务模块根据所述Lookup请求解析步骤中获取到的目录项中所述索引节点号ino和所述generation域构建filehandle,并将所述filehandle返回给所述客户端;
[0039]Getattr请求处理步骤:将获取到的所述seqid转化为本地seqid,构建本地索引节点号ino,并使用所述本地索引节点号ino从本地读取所述索引节点inode及其属性信
肩、O
[0040]与现有技术相比,本发明的有益效果在于,通过增加目录项信息,扩展目录索引节点含义,消除索引节点浪费,消除新增分支点引起的额外操作,降低跨元数据服务器操作的实现复杂度。
【专利附图】

【附图说明】
[0041]图1为本发明远程目录分支点维护系统的结构示意图;
[0042]图2为本发明的索引节点号结构不意图;
[0043]图3为本发明远程目录分支点维护方法的流程示意图;
[0044]图4为本发明一实施例远程目录分支点创建步骤示意图;[0045]图5为本发明的目录项具体记录方式;
[0046]图6为本发明一实施例远程目录分支点访问步骤示意图;
[0047]图7为本发明另一实施例远程目录分支点访问步骤示意图。
[0048]其中,附图标记:
[0049]I元数据服务器集群2客户端
[0050]11主元数据服务器12远程元数据服务器
[0051]111目录服务模块112目录项维护模块
[0052]113索引点维护模块121目录服务模块
[0053]122索引点维护模块
[0054]21元数据服务器地址映射模块22目录请求模块
[0055]SI ~S2、Sll ~S14、S300 ~S303、S310 ~S312、S321 ~S324:本发明各实施例的施行步骤
【具体实施方式】
[0056]下面给出本发明的【具体实施方式】,结合图示对本发明做出了详细描述。
[0057]本发明提出了一种新的元数据集群中远程目录分支点维护方法,将分支点的存储和记录分离,在父目录所在的元数据服务器中记录分支点的索引节点号(ino)和索引节点版本号(generation),无需增加系统空间开销。而且,在索引节点号中嵌入元数据服务器的位置信息,无需客户端额外获取远程目录分支点所在目标元数据服务器位置的操作,并能有效降低跨元数据服务器操作实现的复杂度。
[0058]图1为本发明远程目录分支点维护系统的结构示意图。如图1所示,本发明提供的一种远程目录分支点维护系统,包括:
[0059]元数据服务器集群1,元数据服务器集群I进一步包括:主元数据服务器11和多个远程元数据服务器12,其中,主元数据服务器11用于将所有新建的目录的索引节点inode记录在父目录中,并且在索引节点inode中嵌入远程元数据服务器12的位置信息,对远程元数据服务器12的位置信息进行记录和维护,远程元数据服务器12用于创建远程子目录,以实现远程子目录的元数据访问;
[0060]客户端2用于根据维护的元数据服务器集群I的定位信息,确定目标元数据服务器,建立与目标元数据服务器的连接,并对目标元数据服务器发送访问请求。
[0061]本发明的系统至少包含两个元数据服务器(MDS)端和一个客户端。为叙述方便将父目录所在的元数据服务器记为主元数据服务器,MMDS (Master MDS),远程目录分支点所在的元数据服务器记为远程元数据服务器,RMDS (Remote MDS)。其中,在必要时主元数据服务器和远程元数据服务器可互换角色,即原本的远程元数据服务器,也可将子目录创建到原本的主元数据服务器上,以分散负载。
[0062]主元数据服务器11还包括:
[0063]目录服务模块111:用于接收客户端2的请求,并构建和解析文件标识filehandle。
[0064]目录服务模块111用于接收客户端的请求,构建、解析filehandle。filehandle是唯一代表系统中的一个文件的标识,文件标识filehandle包含:文件系统编号fsid、索引节点号ino和inode版本号generation域。本模块使用inode结构中的ino号和generation构建filehandle。其中,索引节点inode包含:索引节点号ino和标识索引节点版本号generation域。图2为本发明的索引节点号结构示意图,如图2所示,索引节点号ino包含:标识索引节点inode所在元数据服务器的序号seqid和独立文件系统内局部索引节点号。对于远程inode,可直接使用其ino (含RMDS的seqid)及其generation以构建filehandle ;对于本地inode则需为其ino添加上inode所在的MDS的seqid,并且在MDS元数据磁盘读取本地inode的generation,之后使用其ino及其generation以构建filehandle。即filehandle中的ino始终包含inode真正所在的MDS的seqid。通过使用统一包含seqid的ino来构建filehanle,使得filehandle在MMDS和RMDS端都能被解析,并且不需要在MMDS端额外分配inode与RMDS上的inode对应来辅助完成负载转移。解析filehandle时,在获取inode的ino和generation后,将ino传送到inode维护模块进一步处理,如果ino中的seqid与本MDS的seqid相同,贝U表示为本地ino,否则表示为远程目录分支点ino。
[0065]目录项维护模块112:用于添加和删除目录项,并将新建的索引节点inode的信息添加到父目录中,并将待删除的索引节点inode的信息从父目录中删除。
[0066]目录项维护模块112用于添加和删除目录项,本模块在创建目录或文件时,将新建的inode的信息添加到其父目录的目录项文件中;在删除目录或文件时,将待删除的inode的信息从其父目录的目录项文件中删除。系统中远程目录分支点的目录项添加到位于MMDS上的父目录的目录项文件中,并且在包含远程目录索引节点号(ino)的基础上增加generation域的记录,使得MMDS端的目录服务模块可独立构建filehandle,而不必与RMDS交互;而本地目录则继续保持原有系统的目录项维护机制。
[0067]索引节点维护模块113:用于索引节点号ino的维护,将远程元数据服务器12的位置信息嵌入到索引节点号ino中。
[0068]索引节点inode维护模块113用于ino号维护。本发明把MDS定位信息嵌入索引节点号ino,避免了使用扩展属性来标识inode位置的开销。ino号分为seqid域和独立的文件系统内局部索引节点号域,其中seqid域占用ino号中的前N位。如果是远程inode,贝丨J seqid标识inode实际所在MDS的序号(seqid);如果是本地inode,则seqid被清0,本地inode仍旧按照系统原有的资源管理方式进行组织。通过在ino号中嵌入MDS的定位信息,客户端无需使用额外的Get_fslocations操作来获取远程目录分支点实际所在的位置,便可直接定位并发起访问请求。
[0069]远程元数据服务器12包含远程元数据服务器1、远程元数据服务器2...远程元数据服务器η-1、远程元数据服务器n,每个远程元数据服务器12还包括:
[0070]目录服务模块121:用于接收客户端2的请求,并构建和解析文件标识filehandle。
[0071]索引节点维护模块122:用于索引节点号ino的维护,将远程元数据服务器12的位置信息嵌入到索引节点号ino中。
[0072]其中,客户端2还包括:
[0073]元数据服务器地址映射模块21:用于通过元数据服务器集群I的位置信息映射表,根据标识索引节点inode所在元数据服务器的序号seqid查询索引节点inode所在的目标元数据服务器的位置;
[0074]元数据服务器地址映射模块21,即mdsmap模块,维护系统内所有MDS的seqid与MDS具体位置的映射表,根据序号查询某个inode真正所在的MDS。
[0075]目录请求模块22:用于通过元数据服务器地址映射模块21查询目标元数据服务器的位置,建立与所述目标元数据服务器的连接并发送请求。
[0076]目录请求模块22调用mdsmap模块21查询目标MDS的位置,建立与目标MDS的连接,并将请求发送到目标MDS。
[0077]请参见图3,图3为本发明一种远程目录分支点维护方法的流程示意图,如图3所示,该方法包括:
[0078]目录项添加步骤S1:用于在元数据服务器集群中添加目录项;
[0079]目录项访问步骤S2:用于完成元数据服务器集群的访问。
[0080]其中,目录项添加步骤SI还包括:
[0081]申请本地索引节点步骤Sll:用于在索引节点维护模块分配本地索引节点inode,将索引节点号ino和generation域,传送到主元数据服务器;
[0082]添加序号步骤S12:用于主元数据服务器通过索引节点维护模块将传送来的索引节点号ino中添加远程元数据服务器序号seqid进行标识;
[0083]序号判断步骤S13:用于如果ino中的seqid为0,则目标目录为本地目录,按照系统原有目录项添加方式添加目标目录的目录项,如果seqid为非0,则目标目录为远程目录,在在原有目录项的基础上增加generation域;
[0084]文件标识创建步骤S14:用于根据seqid和generation域构建文件标识filehandle,并将构建好的filehandle返回给客户端进行保存。
[0085]其中,目录项访问步骤S2还包括:
[0086]客户端请求发送步骤S21:用于通过元数据服务器地址映射模块查询目标元数据服务器的位置信息,客户端向目标元数据服务器发送请求;
[0087]元数据服务器端请求接收步骤S22:用于目标元数据服务器解析和处理客户端发出的请求。
[0088]其中,元数据服务器端请求接收步骤S22还包括:
[0089]请求解析步骤S221:用于目标元数据服务器通过目录服务模块接收客户端发来的请求后,进行解析文件标识filehandle ;
[0090]请求处理步骤S222:将请求解析步骤S221获取的文件标识filehandle,依据对请求位于主元数据服务器或远程元数据服务器的判断,完成文件标识filehandle的处理,并将结果反馈给客户端2。
[0091]其中,请求解析步骤S221还包括:
[0092]Lookup请求解析步骤S2211:收到客户端发送来的请求后,解析传送过来的父目录的filehandle,查询父目录的索引节点号ino,并通过解析判断父目录的ino中的seqid是否为O,建立本地索引节点inode或远程索引节点inode,读取父目录的目录项文件,并获取目标文件的目录项。
[0093]Getattr请求解析步骤S2212:从客户端发送的请求中获取filehandle,并解析索引节点号ino中的seqid,将seqid与本地seqid进行比较。[0094]其中,请求处理步骤S222还包括:
[0095]Lookup请求处理步骤S2221:目录服务模块根据Lookup请求解析步骤中获取到的目录项中的ino和generation域构建filehandle,并将filehandle返回给客户端;
[0096]Getattr请求处理步骤S2222:将获取到的seqid转化为本地seqid,构建本地索引节点号ino,并使用本地索引节点号ino从本地读取索引节点inode及其属性信息。
[0097]以下结合图示,对本发明的具体实施例进行说明,本发明主要包括目录项添加步骤和客户端访问步骤。
[0098]图4为本发明一实施例远程目录分支点创建步骤示意图,如图4所示,本发明的一具体实施例远程目录分支点创建操作,说明目录项的添加过程。
[0099]RMDS申请本地inode步骤S300:RMDS上的inode维护模块分配本地inode,将ino和generation传送到MMDS。其中的ino是RMDS端本地的ino, ino的前N位(seqid)清O0
[0100]添加标识seqid步骤S301 =MMDS上的inode维护模块为RMDS传送过来的ino添加标识RMDS的序号seqid,并建立MMDS端的inode结构。通过在ino中嵌入seqid, MMDS可区分本地inode和远程inde ;客户端在获取ino后可提取其中包含的seqid,从而定位到RMDS,无需再使用Get_fslocations操作来获取RMDS的位置;同时,系统内所有的inode被统一标识,可简化跨元数据服务器的操作(如跨元数据服务器的rename、hardlink)的实现。
[0101]添加目录项步骤S302 =MMDS端的目录项维护模块添加目录项。如果待添加目录项的目录ino中seqid等于0,则说明该目录为本地目录,只需按照系统原有的目录项结构进行添加。否则,如果ino中的seqid不为0,则说明该目录为远程目录分支点,为其目录项增加标识inode的generation的igen域,并将igen域放置在目录项结构的末尾以减少对本地目录维护流程的影响。为远程目录分支点的目录项增加generation域可以使MMDS端能独立为远程目录分支点构建filehandle,而无需和RMDS端交互。图5为本发明的目录项具体记录方式,请参见图5所示目录项具体记录方式。
[0102]构建filehandle步骤S303:MMDS的目录服务模块使用包含seqid的远程ino和generation构建filehandle。如果上述的目录是远程目录分支点,则目录inode中的ino已经包含了标识目录真正所在的RMDS的seqid ;如果是本地目录inode,则需要为其ino手动添加当前MDS的seqid。随后,目录服务模块将构建好的filehandle返回给客户端。
[0103]图6为本发明一实施例远程目录分支点访问步骤示意图,如图6所示,本发明的一具体实施例远程目录分支点lookup操作,说明目录项的访问过程。
[0104]Lookup:本实施例以目录的文件名为参数,目的是获取目录的filehandle。
[0105]客户端请求发送步骤S310:客户端的目录请求模块获取父目录inode的ino。调用mdsmap模块查询ino中的seqid对应的MDS的位置。随后,目录请求模块将请求发送到MDS。如果目标目录是远程目录分支点,请求将被发送到父目录所在的MMDS。
[0106]MDS请求解析步骤S311 =MDS端的目录服务模块收到请求后,解析父目录的filehandle。读取父目录的目录项文件,查询文件名为name的文件的ino,并分析其中的seqid。如果ino中的seqid不为0,则说明该子目录为远程目录分支点,继续读取目录项中标识远程inode的generation的igen域,将获取到的ino和generation记录到为远程目录分支点建立的inode结构中;否则,如果ino中的seqid等于O,则说明该目录是本地目录,无需读取igen域,利用ino读取本地物理存储中相应的inode,建立完整的inode结构,包括 generation。
[0107]MDS请求处理步骤S312:目录服务模块使用包含seqid的ino以及generation构建filehandle,并将filehandle返回给客户端。在远程目录分支点的filehandle构建过程中,可直接使用inode结构中的ino ;对于本地目录,应首先为其ino添加标识所在MDS位置的seqid,之后再进行filehandle构建。
[0108]图7为本发明另一实施例远程目录分支点访问步骤示意图,如图7所示,本发明的另一具体实施例远程目录分支点Getattr操作,说明目录项的访问过程。
[0109]Getattr:本示例以目录的filehandle为参数,目的是获取目录的属性。
[0110]客户端请求发送步骤S321:客户端的目录请求模块获取目标目录的inode,取出其中的ino。调用mdsmap模块查询ino包含的seqid对应的MDS的位置。随后,目录请求模块将请求发送到MDS。如果目标目录为远程目录分支点,请求将被发送到目标目录所在的RMDS0
[0111]MDS请求解析步骤S322 =MDS从客户端传送过来的filehandle中获取ino并提取其中的seqid,将seqid与本服务器的seqid进行比较。如果两者相等,说明目标目录为本地目录;否则,即两者不相等,说明对应的目录为远程目录分支点。
[0112]MDS请求处理步骤S323:如果目标目录为本地目录,将获取到的ino清除seqid相应的位,转化为本地ino。使用修改后的ino,从物理存储中获取inode及其属性信息,包括generation。在将属性返回给客户端时,为其中的ino重新添加上标识本服务器位置的seqid。否则,如果判断目标目录为远程目录分支点,则为客户端返回定位出错。
[0113]返回步骤S324:客户端目录请求模块在请求返回后,根据MDS返回的属性更新本地inode的属性(其中ino中包含seqid信息)。
[0114]当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
【权利要求】
1.一种远程目录分支点维护系统,其特征在于,所述系统包括: 一元数据服务器集群,所述元数据服务器集群进一步包括:一主元数据服务器和多个远程元数据服务器,其中,所述主元数据服务器用于将所有新建的目录的索引节点inode记录在父目录中,并且在所述索引节点inode中嵌入所述远程元数据服务器的位置信息,对所述远程元数据服务器的位置信息进行记录和维护,所述远程元数据服务器用于创建远程子目录,以实现所述远程子目录的元数据访问; 一客户端,用于根据维护的所述元数据服务器集群的定位信息,确定目标元数据服务器,建立与所述目标元数据服务器的连接,并对所述目标元数据服务器发送访问请求。
2.根据权利要求1所述的远程目录分支点维护系统,其特征在于,所述索引节点inode的索引号ino包含:标识索引节点inode所在元数据服务器的序号seqid和独立文件系统内局部索引节点号。
3.根据权利要求1所述的远程目录分支点维护系统,其特征在于,所述主元数据服务器和每个所述远程元数据服务器都进一步包括: 目录服务模块:用于接收所述客户端的请求,并构建和解析文件标识filehandle。 索引节点维护模块:用于索引节点号ino的维护,将所述远程元数据服务器的位置信息嵌入到所述索引节点号ino中。
4.根据权利要求3所述的远程目录分支点维护系统,其特征在于,所述文件标识filehandle包含:文件系统编号fsid、索引节点号ino、所述索引节点inode版本号generation 域。
5.根据权利要求1所述的远程目录分支点维护系统,其特征在于,所述主元数据服务器还包括: 目录项维护模块:用于添加和删除目录项,并将新建的所述索引节点inode的信息添加到父目录中,并将待删除的所述索引节点inode的信息从所述父目录中删除。
6.根据权利要求1所述的远程目录分支点维护系统,其特征在于,所述客户端还包括: 元数据服务器地址映射模块:用于通过所述元数据服务器集群的位置信息映射表,根据标识索引节点inode所在元数据服务器的序号seqid查询所述索引节点inode所在的所述目标元数据服务器的位置; 目录请求模块:用于通过所述元数据服务器地址映射模块查询所述目标元数据服务器的位置,建立与所述目标元数据服务器的连接并发送请求。
7.—种远程目录分支点维护方法,应用于如权利要求1-6中任一项所述的远程目录分支点维护系统,其特征在于,所述方法包括: 目录项添加步骤:用于在所述元数据服务器集群中添加目录项; 目录项访问步骤:用于完成所述元数据服务器集群的访问。
8.根据权利要求7所述的远程目录分支点维护方法,其特征在于,所述目录项添加步骤还包括: 申请本地索引节点步骤:用于在所述索引节点维护模块分配本地索引节点inode,将所述索引节点号ino和所述generation域,传送到所述主元数据服务器; 添加序号步骤:用于所述主元数据服务器通过所述索引节点维护模块将传送来的所述索引节点号ino中添加所述远程元数据服务器的序号seqid进行标识;序号判断步骤:用于如果所述索引节点号ino中的seqid为0,则目标目录为本地目录,按照系统原有目录项添加方式添加目标目录的目录项,如果所述seqid为非0,则所述目标目录为远程目录,在原有目录项的基础上增加所述generation域; 文件标识创建步骤:用于根据所述索引节点号ino和所述generation域构建所述文件标识filehandle,并将构建好的所述filehandle返回给所述客户端进行保存。
9.根据权利要求7所述的远程目录分支点维护方法,其特征在于,所述目录项访问步骤还包括: 客户端请求发送步骤:用于通过所述元数据服务器地址映射模块查询所述目标元数据服务器的位置信息,所述客户端向所述目标元数据服务器发送请求; 元数据服务器端请求接收步骤:用于所述目标元数据服务器解析和处理所述客户端发出的请求。
10.根据权利要求9所述的远程目录分支点维护方法,其特征在于,所述元数据服务器端请求接收步骤还包括: 请求解析步骤:用于所述目标元数据服务器通过所述目录服务模块接收所述客户端发来的所述请求后,进行解析所述文件标识filehandle ; 请求处理步骤:将所述请求解析步骤获取的所述文件标识filehandle,依据对所述请求位于所述主元数据服务器或所述远程元数据服务器的判断,完成所述文件标识filehandle的处理,并将结果反馈给所述客户端。
11.根据权利要求 10所述的远程目录分支点维护方法,其特征在于,所述请求解析步骤还包括: Lookup请求解析步骤:收到所述客户端发送来的所述请求后,解析传送过来的所述父目录的filehandle,查询所述父目录的索引节点号ino,读取所述父目录的目录项文件获取目标文件的目录项;Getattr请求解析步骤:从所述客户端发送的请求中获取所述filehandle,并解析所述索引节点号ino中的所述seqid,将所述seqid与本地seqid进行比较。
12.根据权利要求10所述的远程目录分支点维护方法,其特征在于,所述请求处理步骤还包括: Lookup请求处理步骤:所述目录服务模块根据所述Lookup请求解析步骤中获取到的目录项中所述索引节点号ino和所述generation域构建filehandle,并将所述filehandle返回给所述客户端; Getattr请求处理步骤:将获取到的所述seqid转化为本地seqid,构建本地索引节点号ino,并使用所述本地索引节点号ino从本地读取所述索引节点inode及其属性信息。
【文档编号】G06F17/30GK103761256SQ201310743906
【公开日】2014年4月30日 申请日期:2013年12月30日 优先权日:2013年12月30日
【发明者】郑彩平, 张军伟, 邵冰清, 刘振军, 张 浩 申请人:中国科学院计算技术研究所, 天津中科蓝鲸信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1