用于协调访问本地和远程输出文件系统的方法和系统的制作方法

文档序号:6461626阅读:156来源:国知局
专利名称:用于协调访问本地和远程输出文件系统的方法和系统的制作方法
技术领域
本发明总体上涉及文件访问,特别是协调文件系统访问。
技术背景在通用计算机系统环境中,应用可以通过一组包括文件系统的操作系统 服务访问存储在磁盘驱动器上的数据。文件系统包括磁盘上的文件集和维持 该文件集的程序工具。控制对象物理表示的文件系统,例如目录和文件,被认为是物理文件系统(PFS)。同样包含在通用计算机系统环境中的是执行基本功能(诸如分配硬件) 的内核。内核在大多数计算机系统中是中心部分并管理系统的资源和在硬件 和软件部件之间的通信。作为操作系统的基本部件,内核为硬件提供抽象层 以允许硬件和软件的通信。逻辑文件系统(LFS)是其中用户能使用系统呼叫以请求文件操作的文 件系统层。LFS提供内核,带有多重物理文件系统和多重文件系统实现的一 致视图。文件系统实现的一致性视图可能是由虚拟文件系统(VFS)产生的。该 虚拟文件系统是物理文件系统实现的抽象。它提供了到多个文件系统的一致 性接口,包括本地的和远程的。该接口允许内核中的LFS代码操作而无需关 心^t访问的文件系统的类型。每次文件被打开或变得可访问,文件系统创建称为"vnode"的数据结构, 该结构链接到VFS。 vnode是活动库存(activefile)的抽象表现,并提供了在其 代表的实际文件上操作的 一 般方法,而不考虑其常驻的文件系统。在分布式计算环境中,多个计算机系统能够通过通信网络互连并通过分 布式文件系统共享文件。分布式计算机系统的一个例子是服务器-客户端系 统,在其中一个或多个远程客户端设备被一个或多个服务器设备来服务。服 务器设备控制由客户设备对包括文件系统数据的磁盘的访问。运行于服务器上的文件输出者向(和它相连接的)远程客户端提供数据。对本地输出文件系统数据的访问被称为本地访问,而对远程输出文件系统数 据的访问称为远程访问。当文件服务器获得数据来满足远程客户端的数据请 求时,在文件服务器核心中的高速缓存的管理器处理高速緩存数据的副本。 只要数据没有改变,本地高速緩存的副本保持对远程客户端的可用。只有当 另一处理改变数据时才检索新的副本。相对于在外部但是连接到分布式文件系统的远程客户端,还存在作为部 分分布式文件系统的应用。与来自远程客户端的请求不同地处理应用的数据 请求。为了 了解如何处理应用的数据请求,考虑系统综合体(sysplex),它是多 个大型机(mainframe)共同作用为分布式文件系统的系统。在传统的系统综合 体中,由LFS来接收应用请求,以及LFS向拥有文件服务器的PFS转发对远 程拥有的输出文件系统的请求。在这类系统中,服务类型文件输出器在服务 器上提供程序"G"来控制对它的输出文件系统的本地访问。该程序用来同 步文件改变并由LFS调用。LFS不区别文件系统的类型,无论是本地的、远 程的或严格逻辑的。"G"程序在每个vnode操作(也就是,每次文件打开或 变得可访问,并创建vnode)之前和之后被LFS调用。在每个vnode操作之前 和之后,文件改变的协调由取得和撤回使用G程序的标记来执行。每个文件 服务器的文件输出器分配标记(token)来允许代表远程客户端从文件服务器访 问数据或者允许LFS访问PFS数据。文件输出器使用标记来管理对数据和元 数据的访问。标记保证向访问同样的数据的远程客户端和应用提供数据的最 近版本,并且该多个用户端不以沖突的方式访问同样的数据。至于远程客户端,当远程客户端希望访问或改变由文件输出器管理的文 件或目录时,它首先从文件输出器请求适当的数据标记。文件输出器对于客 户端的请求的响应取决于客户端想要操作的数据、客户端希望对数据执行的 操作、和其他客户端当前是否有了数据的标记。如果LFS和其他客户端都没有数据标记,那么文件输出器可向远程客户 端发出适当的标记。如果数据的显著标记存在,则文件输出器可授予请求(如 果在请求和显著标记之间没有冲突出现)、撤回现有标记授予请求、或者考虑 未决的请求直到它能够授予。在某些情形下,文件输出器简单地拒绝准予请 求。如果文件输出器给客户端必要的标记,则客户端依次可以请求的的方式 从文件输出器访问数据。在传统的系统综合体中,文件服务器仅仅该输出文件服务器在其上允许 的系统综合体所拥有的文件系统,也就是,该输出文件服务器具有到其直接 访问的文件系统。在该类文件系统中,举例来说, 一组Z/0S系统通过某些多系统硬件和软件组件而互相通信和协作,来处理用户工作量。当G程序在本 地系统取得调用时,它与文件服务器通信来由LFS和远程客户端协调访问。当PFS作为知道系统综合体(sysplex-aware)运行时,也就是说,PFS 允许文件系统在系统综合体的所有成员上本地^L访问时,因为LFS未向拥有 文件系统输出器的文件服务器(即,具有到文件系统的直接访问和负责协调 对文件系统的访问的文件服务器)转发对远程拥有玩具系统的文件访问请求, 所以该模型失败。因此,G程序不被调用,并且文件输出器没有办法知道数 据何时改变或者何时刷新/更新高速緩存。作为代替,PFS处理本地的或远程 的请求,并执行它自身的高速緩存。因为不能有效的协调访问远程拥有的文 件系统,所以文件输出器的高速緩存数据可能是不准确的。因此有必要提高现有的分布式文件系统访问模式来向文件输出器提供输 出本地拥有的文件系统和远程拥有的文件系统并且还保持高速缓存的 一致性 的能力。发明内容依照示例性实施例,提供了一种方法,计算机程序产品和系统用于协调 对本地和远程输出文件系统的访问。响应于对文件系统访问的应用请求,调 用程序来确定请求是否和本地输出文件系统或远程输出文件系统相关联。如 果请求和本地输出文件系统相关联,则调用本地访问例程以获得对本地输出 文件系统的访问许可。如果请求和远程输出文件系统相关联,则调用远程访通信来获得对远程输出文件系统的访问许可。当查看以下附图和详细描述时,根据实施例的其他系统,方法,和/或计 算机程序产品对本领域技术人员是明显的。意图将所有这样的附加系统、方 法和/或计算机程序产品都包括在本说明书之内、在当前申请的范围之内、被 附带的权利要求所保护。


被视为本申请的主题是在说明书的总结的权利要求中特别指出和清楚要 求的。通过以下结合附图的具体描述,本申请的前面所述的和其它目的、特 征和优点是明显的。附图1 A和1B根据示例性实施例图解了用于协调访问本地和远程输出文 件系统的系统。附图2根据示例性实施例图解了用于协调访问本地和远程输出文件系统 的方法。作为示例、通过参考附图,详细的描述解释了本发明的示例性实施例, 以及优点和特征。
具体实施方式
根据示例性实施例,向文件输出器服务器提供不考虑所有权而输出知道 系统综合体的PFS,并且仍然协调来自任意系统综合体成员的本地访问的能 力。根据一个实施例,这通过向LFS提供具有附加例程的程序模块以调用远 程拥有的文件系统来实现。依照实施例,为了程序模块"G"向每一个系统综合体成员提供两个例 程,在此称为"G1" , "G2"。可在登记时提供包含这两个例程的模块。Gl 例程可与上述"g"程序相似,被lfs调用用于访问本地输出文件系统。如 果系统综合体成员不拥有输出文件系统,也就是,如果系统综合体成员不具 有文件系统输出,则包含在"G"模块中的G2例程可为新的例程,其加载系 统综合体的所有成员和在系统综合体成员的每个vnode操作之前和之后由 LFS调用。G2例程在拥有输出文件系统(也就是,有输出的文件系统)的文 件服务器中和Gl通信来在系统综合体上协调访问。这样就允许单独的文件 输出器输出所有知道系统综合体的文件系统。这可通过参考图1A和1B来理解,所述图1A和1B图解了根据本发明 的实施例分别用于协调对本地和远程输出文件系统的访问的示例系统100a和 100b。参考图1A,系统100a包括系统综合体成员110和120。每个系统综合体 成员可以通过例如z/OS系统实现。每个系统综合体包括LFS层、PFS层和一 个或多个应用。在图1A中,由数据库140在物理层和系统综合体成员110 和120中的逻辑层表示PFS。根据示例性实施例,如参考系统综合体成员110所示,可在系统综合体成员上运行例如分布式文件服务服务器消息块(SMB服务器)的文件服务器。 SMB服务器包括内核(标记为DFSKERN以表示分布式文件系统内核)。在 系统综合体成员120中,不运行SMB服务器。图1B中所示的系统和图1A 中所示的相似,除了它还包括具有运行的SMB服务器的附加系统综合体成员 115。虽然为了说明简便图1A中仅仅示出了两个系统综合体成员而图1B中 示出了三个系统综合体成员,但是应当理解可以包括任意数量的系统综合体 成员。正如在图1A和图1B中PFS之间的箭头所示,PFS, s表示"知道系统 综合体",表示它们互相通信,来为LFS, s获得数据。在该类型系统中,LFS 向本地PFS询问数据,如果存在数据,则PFS从它的高速緩存获得数据。否 则从磁盘获得数据。在系统100a和100b中,向每个系统综合体成员提供包含两个访问例程 G1和G2的模块G。例如,注册文件服务器时可以加载该包含两个例程的模 块。如可替换的,可以作为分开的模块加载例程G1和G2。根据示例性实施例,可由LFS调用G模块以使用Gl例程协调取得和撤 回用于访问本地输出文件系统的标记,而G2例程提供获得访问远程输出文 件系统的机制。每个G模块知道系统综合体中的所有输出和哪个系统拥有该 输出。可以更新文件输出器来允许输出远程拥有的文件系统。当收到对远程 拥有的文件系统的请求时,可更新为Gl例程调用G模块的现有LFS代码以 使用G2例程。现有LFS系统综合体通信可用于一个系统综合体成员中的G2 例程来和其它具有运行的文件服务器的另一个系统综合体成员中的Gl例程 的通信,以获得对远程输出文件系统的访问许可。依照实施例,Gl例程和 G2例程能够经由跨系统耦合功能(XCF)通信。前置/后置操作使LFS能够 获得对文件系统访问的适当允许。前置操作请求访问的许可,而后置操作释 放访问,也就是,让适当的G程序的例程获知LFS不再访问文件系统。在文件服务器不运行的系统综合体成员中,例如系统综合体成员120, 包括例程Gl和G2的程序G可以-故加载,但是唯一被使用的例程是G2例程。 这是因为由于SMB服务器需要运行本地输出,所以在系统综合体成员120 上不能本地输出的文件系统。在系统综合体成员120中,可发出应用请求以 请求到由系统综合体中的任意文件服务器输出的任意文件系统的访问。在此情景下,系统综合体成员120中的LFS调用G程序,并且G2例程向输出器 拥有者发送标记请求,无论所述输出器拥有者为系统综合体成员110或是系 统综合体成员115。然后拥有输出的SMB服务器可协调访问文件系统,因此 保持为满足远程客户端请求的高速緩存。在系统100a中,系统综合体成员110可连接到远程客户端130a、 130b 和130c,并且在系统100b中,系统综合体成员115可连接到远程客户端130d。 可经由例如TCPIP连接来连接远程客户端。虽然为了简单说明只示出四个远 程客户端,但将理解可将任意数量的远程客户端连接到系统综合体110和115 上。系统综合体成员110和115可向远程客户端提供对存储和高速緩存在他 们各自的PFS上的数据的访问。在系统综合体110和115中也可有访问文件 系统的应用。这些应用可以包含在系统综合体成员110和115中,或者例如 系统综合体成员120的其它系统综合体成员中。如果应用请求访问文件系统,则在包含该应用的系统综合体成员中的 LFS将调用G程序。做出是对本地输出文件系统还是远程输出文件系统的请 求的确定。如果是对本地输出文件系统的请求,则Gl例程将与系统综合体 成员中的DFSKERN通信以适当的产生标记、撤销标记或者拒绝标记。拥有 文件系统的文件服务器中的Gl例程知晓是否已存在对文件系统的访问并且 知晓是否存在沖突的请求。如果存在冲突的请求,则Gl例程可撤销现有的 标记并发布新的标记来允许访问、拒绝提供标记或者保持请求待决。 一旦获 得标记,LFS从本地系统上的PFS中检索数据并将它返还到请求应用。只要 LFS保持标记,SMB服务器就获知不使用高速緩存数据满足远程客户端的对 同样文件的请求。如果应用的请求是远程输出文件系统,则调用G2例程以转发请求,该 请求是对于到在拥有远程输出文件系统的系统综合体成员中的Gl例程的访 问。根据实施例,在不拥有输出的系统综合体成员上的每个vnode操作之前 和之后可在每个系统综合体成员中调用G2例程,来保持任意高速緩存的数 据是最新的。当拥有远程输出文件系统的系统综合体成员中的Gl例程收到 访问请求时,它与拥有远程输出文件系统的系统综合体成员中的DFSKERN 通信、生成适当的标记、并且将生成的标记返还到请求系统综合体成员的G2 例程,以允许PFS中的数据被检索并经由跨系统耦合功能(XCF)被返回到请 求应用。由拥有远程输出文件系统的系统综合体成员的LFS持有标记,并且只要LFS持有标记,系统综合体成员中的SMB服务器就将得知不使用高速 緩存数据来满足远程客户端的同样文件的请求。图2图解了用于协调对本地和远程拥有的文件系统的访问的方法。在步 骤200,接收对文件系统访问的请求。根据实施例,在多节点系统综合体成 员中的G程序接收请求。在步骤210, G程序做出是对本地输出文件系统的 请求还是对远程输出文件系统的请求的确定。请求可以由应用产生或者从远 程客户端接收。远程客户端只能访问本地输出文件系统,而应用能够访问本 地或者远程输出文件系统。如果在步骤210确定是对本地输出文件系统的请 求,则在步骤220调用本地访问例程(Gl)以获得对本地输出文件系统数据 的访问许可。如杲在步骤210确定是对远程输出文件系统的请求,则在步骤 230调用远程访问例程(G2)。在步骤240,远程访问例程与拥有输出的文件 服务器(也就是,负责协调对远程输出文件系统的访问的文件服务器)中的本地 访问例程(Gl)通信,以获得对远程输出文件系统的访问。如上所述,可以计算机实现的处理和用于实行这些处理的设备的形式实 现实施例。在具体实现中,本申请以由一个或多个网络元件执行的计算机程 序代码实现。实施例包括包含在有形介质中实现的指令的计算机程序代码, 所述有形介质例如软盘、CD-ROM、硬盘驱动器或者任何其它计算机读取的 存储介质,在其中,当计算机加载并执行计算机程序代码时,计算机成为实 现本申请的装置。实施例包括计算机程序代码,例如,无论存储在存储介质 中、由计算机执行加载和/或执行,还是通过传输介质传输,例如在电线或电 缆上、通过光纤或者经由电磁发射物,其中,当计算机加载和执行计算机程 序代码时,计算机成为执行本申请的装置。当在通用微处理器上执行时,计 算机程序代码段配置微处理器创建特定逻辑电路。虽然参照示例性实施例描述了本申请,但是本领域技术人员应理解可做 出各种改变并且元件可由等价物替代而不脱离本申请的范围。此外可做出许 多修改以使特定情况或材料适于本发明的教导,而不脱离其实质范围。因此,本申请并不意于限定于描述为预期实现本发明的最佳模式的特定实施例,但 是本申请将包括所有落入所附权利要求范围之内的实施例。而且,使用的术语第一,第二等不代表任何顺序或重要性,而是术语第一、第二等用于将一 个元素与另一个区分。此外,使用的术语一、 一个、等等,不代表数量的限 定,而表示所指示项目的至少一个。
权利要求
1、一种用于协调对本地和远程输出文件系统的访问的方法,包括响应于对文件系统访问的请求,判断请求涉及本地输出文件系统还是远程输出文件系统;如果请求涉及本地输出文件系统,则调用本地访问例程以获得对本地输出文件系统的访问许可;以及如果请求涉及远程输出文件系统,则调用远程访问例程以获得对远程输出文件系统的访问许可;
2、 如权利要求l所述的方法,其中,所述远程访问例程与文件服务器中 的本地访问例程通信来获得对远程输出文件系统的访问许可,其中所述文件 服务器负责协调对远程输出文件系统的访问。
3、 如权利要求1所述的方法,其中由用于获得对远程输出文件系统的访 问许可的应用执行所述调用远程访问例程的步骤。
4、 如权利要求1所述的方法,其中在系统综合体的多个文件服务器中的 一个接收对文件系统访问的请求,所述系统综合体包括知道系统综合体的物 理文件系统。
5、 如权利要求1所述的方法,还包括高速緩存文件系统的数据并当文件 系统改变时更新该高速緩存的数据。
6、 如权利要求1所述的方法,其中所述本地访问例程提供标记来允许对 本地输出文件系统的访问许可。
7、 如权利要求2所述的方法,其中负责协调对远程输出文件系统访问的 文件服务器的本地访问例程提供标记来允许对远程输出文件系统的访问许 可。
8、 一种用于协调对本地和远程输出文件系统的访问的系统,包括用于确定收到的对文件系统的访问请求关于本地输出文件系统还是远程 输出文件系统的程序;本地访问例程,用于获得对本地输出文件系统的访问; 远程访问例程,用于获得对远程输出文件系统的访问许可,其中,如果 所述程序确定请求关于本地输出文件系统,则程序调用本地访问例程以获得 对本地输出文件系统的访问许可,而如果程序确定请求关于远程输出文件系统,则所述程序调用远程访问例程以获得对远程输出文件系统的访问许可。
9、 如权利要求8所述的系统,其中,所述远程访问例程与文件服务器中 的本地访问例程通信来获得对远程输出文件系统的访问许可,其中所述文件 服务器负责协调对远程输出文件系统的访问。
10、 如权利要求8所述的系统,其中应用调用远程访问例程来获得对远 程输出文件系统的访问许可。
11、 如权利要求8所述的系统,其中在系统综合体的多个文件服务器中 的一个接收对文件系统访问的请求,所述系统综合体包括知道系统综合体的 物理文件系统。
12、 如权利要求8所述的系统,还包括从文件系统获得高速緩存数据的 高速缓存,其中当文件系统改变时更新该高速緩存的数据。
13、 如权利要求8所述的系统,其中,所述本地访问例程提供标记以允 许对本地输出文件系统的访问许可。
14、 如权利要求9所述的系统,其中负责协调对远程输出文件系统访问 的文件服务器的本地访问例程提供标记来允许对远程输出文件系统的访问许 可。
全文摘要
远程客户端协调对本地和远程输出文件系统应用访问来允许高速缓存的输出文件系统数据的访问。响应文件系统访问请求,判断请求是关于本地输出文件系统还是远程输出文件系统。如果请求是关于本地输出文件系统,则调用本地访问例程来获得对本地输出文件系统的访问许可。如果请求是关于远程输出文件系统,则调用远程访问和负责协调对远程输出文件系统访问的文件服务器中的本地访问例程通信来获得对远程输出文件系统的访问许可。
文档编号G06F17/30GK101236570SQ20081008566
公开日2008年8月6日 申请日期2008年1月3日 优先权日2007年1月3日
发明者威廉·J·舍恩, 戴维·A·怀斯, 约翰·L·布鲁克斯, 詹姆斯·M·肖沃尔特, 里纳塔·R·麦克法登 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1