分布式文件系统快速路径解析的方法

文档序号:6604255阅读:219来源:国知局
专利名称:分布式文件系统快速路径解析的方法
技术领域
本发明提出了加速分布式文件系统中路径解析过程的方法。
背景技术
随着计算机的发展,存储系统已经成为计算机系统尤其是大型计算机系统中的瓶颈。分布式文件系统使我们可以方便有效的管理存储系统,并充分发挥存储子系统的性能。附图1给出了分布式文件系统的典型结构,分布式文件系统由多个服务器和多个客户端组成。按照功能,从逻辑上可以将服务器划分为元数据服务器和存储服务器。研究人员发现,在一些应用中,元数据操作的数量远远大于普通的文件读写数量,元数据处理性能直接影响了这些应用的性能,这其中文件名路径解析操作占了较大的比例。在分布式文件系统中如何优化元数据的处理性能有重要的意义。
目前,分布式文件系统在客户端的实现通常是通过在客户端操作系统提供的VFS(虚拟文件系统)层添加相应的模块实现的,但是操作系统中VFS(虚拟文件系统)层中的一些设计使得对一个文件的查找需要分解成多次的查找(LOOKUP)操作才能完成,对于分布式文件系统而言需要多次的网络传输,使得路径解析的效率不高。一般LOOKUP接口需要两个参数,分别是父目录的i节点以及本对象的名字,也就是路径名。在许多操作系统上(如AIX、Linux及FreeBSD等),传递给VFS层LOOKUP接口的文件名字并非整个路径名,而是要分多次将每个路径分量依次送交给底层文件系统的接口。对于open(“/x/y/z/a/b/c”),即打开目录“/x/y/z/a/b”下的文件c这个调用,一般VFS层需要对“/x”,“y”,“z”,“a”,“b”,“c”调用六次底层文件系统的LOOKUP接口才能最终获得对象c的元数据,对于通过VFS层扩充实现的分布式文件系统,由于需要频繁地穿越连接网络而引入严重的网络访问延迟,这种LOOKUP操作的开销将随分布式文件系统目录层次深度的增加线性上升,因此这种实现方式将严重地影响系统中元数据操作性能。
为了优化分布式文件系统的LOOKUP操作,并且不用重新编译操作系统,我们提出了如下的方法FPLS(全路径名解析策略)。在该方法中,通过对元数据服务器按照一定结构进行组织,并利用计算机系统提供的向内部存储器核心空间装载二进制代码的指令,将实现了新LOOKUP操作的模块植入内存的核心空间中,使该分布式文件系统可以完成全路径解析。

发明内容
本发明的目的在于,提供一种分布式文件系统快速路径解析的方法,该方法通过对元数据服务器按照一定结构进行组织,并利用计算机系统提供的向内部存储器核心空间装载二进制代码的指令,将实现了新LOOKUP操作的模块植入内存的核心空间中,使该分布式文件系统可以完成全路径解析。
本发明一种分布式文件系统快速路径解析的方法,其特征在于,包括如下步骤1)首先构造一个全路径名解析的二进制模块;2)用计算机系统提供的向内部存储器核心空间装载二进制代码的指令将具有全路径解析功能的模块植入客户端计算机系统内部存储器的核心空间;3)用该模块中具有全路径名解析功能的函数替换原操作系统中的路径名解析函数,在全路径名解析函数中,对于没有提供全路径名解析的文件系统,仍按原函数的流程执行;4)对于提供全路径名解析的分布式文件系统,获取需要解析的文件的全路径名,作为参数提供给分布式文件系统的客户端核心模块;5)分布式文件系统的客户端核心模块将路径解析请求和全路径名发给服务器进行处理,并对服务器返回解析的结果进行处理;6)在分布式文件系统服务器端,相应地提供全路径名解析的函数,可以使用全路径名查找文件并返回结果,提供本方法适用于所有基于客户—服务器模型的分布式文件系统。
其中步骤2)中的装载是利用操作系统提供的动态扩展核心手段,不需要修改、重新编译操作系统代码,通过装载具有全路径名解析功能的核心模块替换操作系统VFS层中的路径名解析函数使分布式文件系统实现全路径名解析功能。
其中步骤4)中的提供全路径名解析的分布式文件系统在客户端核心模块中增加了对实现全路径名查找的支持,使得客户端的VFS层在发现是对该分布式文件系统的路径名查找时,按新增加的全路径名查找方式调用该分布式文件系统的路径名查找方法。
其中步骤2)中的装载和卸载具有全路径解析功能模块的过程,利用了操作系统提供的动态扩展核心的手段;装载后客户端中原有的文件系统不受影响,对其它文件系统的路径名查找不会改变或受影响,仍按它们原来的方式进行。卸载后的内部存储器上核心空间内的代码与安装核心模块之前一样。


为进一步说明本发明的技术特征,以下结合实施例及附图详细说明于后,其中图1是典型分布式文件系统结构图;图2是支持全路径名解析的分布式文件系统中路径解析过程图;图3是具有快速路径解析功能的分布式文件系客户端模块的装载过程图。
具体实施例方式
a、一个全路径名解析函数本方法首先要实现一个具有全路径名解析功能的函数,该函数用于替换原操作系统中的路径名解析函数。在UNIX操作系统核心中各个文件系统通过VFS层集成在系统中。VFS层实现与具体文件系统无关的操作,而与具体文件系统相关的操作由各个文件系统自己去实现。VFS层就象是一个多路开关,通过VFS接口并根据文件系统类型去调用特定文件系统自己的操作。对于路径名解析,在VFS层中有路径名解析(LOOKUP)函数,例如linux-2.2.x中的lookup_dentry(),或linux-2.4.x中的path_walk()。各个文件系统要实现的VFS接口中包含一个文件系统相关的路径名解析函数,通常是xxfs_lookup(),如ext2_lookup()或nfs_lookup()。VFS层的路径名解析函数以构成路径名的各个分量为参数调用各个文件系统实现的VFS层接口中的路径名解析函数,因此,各个文件系统的路径名解析函数是一次解析一个路径分量。
本方法首先需要实现全路径名解析函数,用它替换操作系统VFS层中原来的路径名解析函数。在全路径名解析函数中,对于没有提供全路径名解析的文件系统,仍按原路径名解析函数的流程执行;而对于提供全路径名解析的分布式文件系统,获取需要解析的文件的全路径名,作为参数提供给分布式文件系统客户端核心模块的路径名解析函数。图2给出支持全路径名解析的分布式文件系统中路径解析过程。
b、分布式文件系统客户端核心模块提供对全路径名的支持在分布式文件系统的核心模块的路径名解析函数中,把需要查找的文件的全路径名作为LOOKUP请求的参数传送给服务器,而不是一次只传路径名的一个分量。服务器返回的结果应包含要查找文件的元数据信息和路径上相关目录的元数据信息。分布式文件系统的核心模块的路径名解析函数把服务器返回的要查找文件的元数据信息返回给全路径名解析函数。
c、分布式文件系统服务器提供对全路径名的支持在分布式文件系统的服务器端,相应地实现全路径名解析功能,用全路径名作为参数,一次查找到所需的文件并将该文件的属性(即元数据)和路径上相关目录的元数据返回给客户端。
图1给出典型分布式文件系统结构。在分布式文件系统中,逻辑上可以分为客户端节点、元数据服务器和存储服务器,它们之间通过网络连接起来。客户端节点给用户提供文件系统的接口,这样用户可以对分布式文件系统中的文件进行访问;元数据服务器管理分布式文件系统的目录、文件属性等信息;而存储服务器则管理文件的数据。
图2给出全路径名解析方法的流程图。在客户端节点,用户空间的应用程序通过文件系统接口进入核心空间的VFS层中的全路径解析函数,该函数根据文件所属的文件系统选择路径解析的流程(1)如果该文件所属文件系统不支持全路径名解析功能,那么按原来VFS的路径名解析函数的流程执行,仍是每次传输一个路径名分量给原有文件系统的LOOKUP处理函数;(2)如果该文件所属的分布式文件系统支持全路径名解析功能,则获取文件的全路径名作为参数传给分布式文件系统的LOOKUP处理函数,由该函数把全路径名通过网络传给元数据服务器处理。
图3给出具有快速路径解析功能的分布式文件系客户端模块的装载过程。
本方法具体的实施过程如下1.实现全路径解析的分布式文件系统该分布式文件系统包括一个客户端核心模块和服务器端模块。客户端核心模块主要包含全路径名解析函数和完成操作系统VFS(虚拟文件系统)层中定义的各种函数,如LOOKUP函数等。全路径解析函数可以一次把全路径名传给底层的分布式文件系统客户端核心模块,分布式文件系统客户端核心模块的LOOKUP函数将全路径名作为LOOKUP请求的参数,发送给服务器。服务器端模块实现分布式文件系统的元数据管理和数据管理。特别地,服务器端模块要相应地实现全路径解析功能,对客户端发来的全路径名进行解析,将要查找文件的元数据和路径上相关目录的元数据返回给客户端。
2.装载如附图3所示,当用户需要使用分布式文件系统时,可利用操作系统提供的模块装载命令将分布式文件系统的客户端核心模块装载到内存的核心空间中。装载以后的模块通过修改操作系统核心符号表来用重写的函数覆盖原先的路径解析函数,使每次LOOKUP操作都是用全路径名进行查找,而不是每次一个分量。
3.运行装载了分布式文件系统客户端核心模块后,对于在客户端上运行的其他文件系统,例如各种本地文件系统或NFS,由于我们在新实现的路径解析函数中没有对其进行特殊处理,所以他们的处理流程并不受影响,如附图3中黑色箭头所示。而对于实现了全路径解析的分布式文件系统则按新的流程处理,如附图3中蓝色箭头所示。
4.卸载当使用者不再使用该分布式文件系统时,可以使用操作系统提供的模块卸载命令卸载分布式文件系统客户端核心模块。卸载后,内存核心空间中的系统服务恢复成原来的样子,不会有任何改动的痕迹。
权利要求
1.一种分布式文件系统快速路径解析的方法,其特征在于,包括如下步骤1)首先构造一个全路径名解析的二进制模块;2)用计算机系统提供的向内部存储器核心空间装载二进制代码的指令将具有全路径解析功能的模块植入客户端计算机系统内部存储器的核心空间;3)用该模块中具有全路径名解析功能的函数替换原操作系统中的路径名解析函数,在全路径名解析函数中,对于没有提供全路径名解析的文件系统,仍按原函数的流程执行;4)对于提供全路径名解析的分布式文件系统,获取需要解析的文件的全路径名,作为参数提供给分布式文件系统的客户端核心模块;5)分布式文件系统的客户端核心模块将路径解析请求和全路径名发给服务器进行处理,并对服务器返回解析的结果进行处理;6)在分布式文件系统服务器端,相应地提供全路径名解析的函数,可以使用全路径名查找文件并返回结果,提供本方法适用于所有基于客户—服务器模型的分布式文件系统。
2.如权利要求1所述的分布式文件系统快速路径解析的方法,其特征在于,其中步骤2)中的装载是利用操作系统提供的动态扩展核心手段,不需要修改、重新编译操作系统代码,通过装载具有全路径名解析功能的核心模块替换操作系统VFS层中的路径名解析函数使分布式文件系统实现全路径名解析功能。
3.如权利要求1所述的分布式文件系统快速路径解析的方法,其特征在于,其中步骤4)中的提供全路径名解析的分布式文件系统在客户端核心模块中增加了对实现全路径名查找的支持,使得客户端的VFS层在发现是对该分布式文件系统的路径名查找时,按新增加的全路径名查找方式调用该分布式文件系统的路径名查找方法。
4.如权利要求1所述的分布式文件系统快速路径解析的方法,其特征在于,其中步骤2)中的装载和卸载具有全路径解析功能模块的过程,利用了操作系统提供的动态扩展核心的手段;装载后客户端中原有的文件系统不受影响,对其它文件系统的路径名查找不会改变或受影响,仍按它们原来的方式进行。卸载后的内部存储器上核心空间内的代码与安装核心模块之前一样。
全文摘要
一种分布式文件系统快速路径解析的方法,包括1)首先构造一个全路径名解析的二进制模块;2)用计算机系统提供的向内部存储器核心空间装载二进制代码的指令将具有全路径解析功能的模块植入客户端计算机系统内部存储器的核心空间;3)用该模块中具有全路径名解析功能的函数替换原操作系统中的路径名解析函数,在全路径名解析函数中;4)对于提供全路径名解析的分布式文件系统,获取需要解析的文件的全路径名;5)分布式文件系统的客户端核心模块将路径解析请求和全路径名发给服务器进行处理;6)在分布式文件系统服务器端,相应地提供全路径名解析的函数,可以使用全路径名查找文件并返回结果。
文档编号G06F13/14GK1508680SQ02157880
公开日2004年6月30日 申请日期2002年12月20日 优先权日2002年12月20日
发明者吴思宁, 熊劲, 贺劲 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1