多协议统一文件锁定的制作方法

文档序号:6416625阅读:173来源:国知局

专利名称::多协议统一文件锁定的制作方法
技术领域
:本发明涉及多协议文件服务器中的锁定。在一个综合计算机网络中,需要多个客户设备共享文件。一种公知的方法是提供一台用以存储文件的网络文件服务器,它能够接收和响应来自那些客户设备的文件服务器请求。利用一个为文件服务器和客户设备所识别和坚持的文件服务器协议来产生这些文件服务器请求。由于文件被存储在文件服务器中,故多个客户设备具有了同时访问文件的机会。现有技术中的一个问题是存在多种不同的文件服务器协议,对于文件操作来说,每一种协议都具有不同的语义关系。提供一台能够识别多种文件服务器协议的文件服务器是公知的,但这在很多文件服务器协议在文件锁定和文件共享方面具有不同和不相兼容的语义关系的情况下是非常困难的。不兼容的锁定语义关系在将一个单一的文件系统提供给多个不同的客户设备方面存在困难。如果第一客户设备遵从第一文件服务器协议(具有第一文件锁定语义关系),则利用第二文件服务器协议(具有不同的文件锁定语义关系)的第二客户设备将会导致第一客户设备的应用严重失败。每种文件服务器协议的正确操作依赖于其它所有文件服务器协议与其文件锁定语义关系的兼容性。例如,一种通常用于利用了Unix操作系统(或其变型)的设备的协议息NFS(“网络文件系统”)协议。通过实施“PCNFS”,利用Windows操作系统(或其变型)的设备也利用NFS协议。NFS协议被设计成无国籍的,从而不为相对于共享而被锁定或以其它形式被限定于一台客户设备的文件提供任可语义关系。反之,一种通常用于利用了Windows操作系统的设备的协议是CIFS(“公用因特网文件系统”)协议。CIFS协议具有广泛强制性的文件锁定语义关系,这种语义关系是CIFS客户设备所遵从和坚持的。在公知的系统中,NFS协议已被增加了一个附加的文件锁定协议NLM(“网络锁定管理器”),但是NFS协议仅将NLM锁定视为咨询。在这种方法达到了向那些利用它的NFS应用提供文件锁定语义关系的目的的同时,并不会防止NFS应用忽视那些文件锁定语义关系,也不会允许客户设备遵从多种不同文件服务器协议的文件锁定语义关系。因此,最好提供一种用于在利用多种不同文件服务器协议的客户设备中强制实施文件锁定语义关系的方法和系统。本发明的一个实施例能够实现这种效果,其中一组统一的文件锁定语义关系被装入一个多协议文件服务器的内核并强制利用了该服务器所识别的任一种不同文件服务器协议的客户设备执行。在最佳实施例中,为了在客户访问一个驻留在网络文件服务器中的共享文件系统的过程中保护数据的完整性,执行CIFS协议的特定文件锁定语义关系以便允许NFS客户设备与CIFS客户设备互用。本发明提供了一种多种不同文件服务器协议的正确互用方法和系统。一个识别多种不同文件服务器协议的文件服务器提供了一种强制所有客户设备和所有被识别的文件服务器协议实施的统一多协议锁定管理系统(包括一种统一的文件锁定语义关系)。在最佳实施例中,第一文件服务器协议(如CIFS)强制实施文件打开和文件锁定语义关系和一种机会(opportunistic)文件锁定技术,而第二文件服务器协议(如NFS和附加协议NLM)则缺少文件打开语义关系而只为咨询字节范围(advisorybyte-range)提供了文件锁定语义关系。统一文件锁定语义关系使文件服务器在允许任何客户设备读或写数据或获得一个新的文件锁定或字节范围锁定之前确定是否与用于那些现有锁定的始发客户设备和始发文件服务器协议或文件锁定协议无关的现有锁定不一致。在CIFS客户设备试图读或写数据的情况下,当客户设备打开文件时,文件服务器执行该检查。在CIFS客户设备请求一个字节范围锁定的情况下,当客户设备请求字节范围锁定时,文件服务器执行此检查。对于NFS客户设备,当客户设备实际发送读或写请求,或当NFS客户设备请求一个指示读或写该字节范围的NLM字节范围锁定时,文件服务器执行此检查。实施文件锁定语义关系保护文件数据免受NFS客户设备引起的讹误。在本发明的第二方面,一个CIFS客户设备在打开一个文件的同时,能够获得一个“oplock”(机会锁定),一个只允许一个客户读或写该文件的独占文件锁定。当一个客户设备为被机会锁定的文件发送一个非CIFS(即NFS或NLM)协议请求时,文件服务器向CIFS客户设备发送一个机会锁定中断消息,同时给CIFS客户设备清洗任何被缓存的写操作和可能关闭该文件的机会。允许NFS和NLM请求中断机会锁定确保了在保护文件数据完整性的同时保持文件数据对NFS客户设备的可用性。在本发明的第三方面,一个CIFS客户设备能够获得对文件系统中的一个目录的“变更监测”锁定,以便于文件服务器通知何时对该目录进行变更(对一个目录的变更包括在该目录内生成、删除或重命名文件,或将文件移入或移出该目录)。文件服务器记录下CIFS客户设备和非CIFS客户设备对目录的变更,并将那些变更的“变更监测”锁定通知给那些CIFS客户设备。图1示出了包括一个多协议文件服务器的系统的第一方框图。图2示出了包括一个多协议文件服务器的系统的第二方框图。图3示出了操作一个多协议文件服务器的方法的流程图。图4示出了操作一个多协议文件服务器中的交叉协议锁定管理器的方法的流程图。图5示出了操作一个多协议文件服务器中的机会锁定管理器的方法的流程图。图6示出了操作一个多协议文件服务器中的变更通知管理器的方法的流程图。在下面的说明中,将参照最佳的过程步骤和数据结构来描述本发明的最佳实施例。所属领域的技术人员在研读了本申请之后将认识到利用通用处理器或专用处理器或其它适用于这里所述的特定过程步骤和数据结构的电路即可实施本发明的实施例,并且实施这里所述的过程步骤和数据结构并不需要特殊的实验或进一步的发明。系统结构(客户/服务器)图1示出了包括一个多协议文件服务器的系统的第一方框图。一个系统100包括一个文件服务器110,一个计算机网络120和多个客户设备130。文件服务器110包括一个处理器111和海量存储器112。海量存储器112能够存储和检索一组具有用于存储和检索的数据的文件113。处理器111能够从网络120接收一系列请求消息121,将那些消息作为命令和数据进行语法分析,处理海量存储器112上的文件113并根据那些命令和数据发送响应消息。文件服务器110和客户设备130与网络120连接并利用在网络120上传送的消息121进行通信。消息121包括客户设备130向文件服务器110发送的文件系统请求和文件服务器110向客户设备130发送的文件系统响应。系统结构(文件锁定语义关系)图2示出了包括一个多协议文件服务器的系统的第二方框图。系统100包括一组客户设备130,其中包括Unix客户设备201、PCNFSWindows客户设备202和CIFSWindows客户设备203。Unix客户设备201执行Unix操作系统和利用Unix/NFS文件服务器协议。PCNFSWindows客户设备202执行Windows操作系统和利用PCNFS文件服务器协议。CIFSWindows客户设备203执行Windows操作系统和利用CIFS文件服务器协议。Unix客户设备201和PCNFSWindows客户设备202利用NFS文件服务器协议与文件服务器110进行通信,在该文件服务器110中由一个NFS文件服务器协议分析程序211来确认该协议。CIFSWindows客户设备203利用CIFS文件服务器协议与文件服务器110进行通言,在该文件服务器110中由一个CIFS文件服务器协议分析程序212来确认该协议。处理器111对利用了NFS文件服务器协议或CIFS文件服务器协议的消息进行语法分析并由一个机会锁定管理器220来进行处理。机会锁定管理器220访问具有CIFS机会锁定的文件113。以后将参照图3和图5详细描述其操作。机会锁定管理器元件220与一个交叉协议锁定管理器230连接。交叉协议锁定管理器230管理着文件服务器110的文件锁定语义关系。它处理和记录与下述四种类型的锁定相关的信息——CIFS字节范围锁定241、CIFS文件锁定242、PCNFS(NLM)文件锁定243和NLM字节范围锁定244。以后将参照图3和图4详细描述其操作。不同的文件锁定语义关系如图2所示,能够从Unix客户设备201、PCNFSWindows客户设备202或CIFSWindows客户设备203接收文件服务器请求消息140,并能够使用NFS文件服务器协议或CIFS文件服务器协议。除了使用不同的文件服务器协议之外,每种类型的客户设备130还具有由文件服务器110提供的不同文件锁定模型。特别是,NFS文件服务器协议用于执行不具有任何形式的文件打开或文件关闭语义关系的文件系统操作。这些NFS文件系统操作包括对文件数据或文件系统处理的读或写操作(即,对目录的读和写操作)。文件系统处理包括创建文件或目录、重命名文件或目录、将文件从一个目录移到另一个目录或从文件系统中取消(删除)文件或目录。NLM附加协议用于获得和解除文件的字节范围锁定。这些字节范围锁定可被“读锁定”,它抑制其它随从(compliant)应用程序(例如在其它客户设备130中)向特定的字节范围进行写操作。这些字节范围锁定也可以被“写锁定”,它抑制其它随从应用程序从或向特定的字节范围进行读或写操作。CIFS文件服务器协议用于在试图对那些文件113中的数据进行任可读或写操作之前,执行文件打开操作并获得关于将被打开的文件113的文件锁定。在打开文件时,一个CIFS客户设备130能够规定所需的访问模式(只读、只写或读-写)以及用以对试图打开同一文件113的其它客户设备130产生影响的所需拒绝模式(不拒绝、读拒绝、写拒绝或全部拒绝)。然后,CIFS文件系统操作只需要对获得的文件打开的访问模式进行检查。一个CIFS客户设备130还能够规定对一个由客户设备130打开的文件中的字节范围的字节范围锁定。字节范围锁定或者是一个也被称为“写锁定”的独占锁定(具有读-写访问模式和全部拒绝拒绝模式),或者是一个也被称为“读锁定”的非独占锁定(具有只读访问模式和写拒绝拒绝模式)。文件服务器110确定组合了访问模式和拒绝模式的锁定模式。如这里所使用的,短语“锁定模式”是指一种由文件服务器110产生的统一锁定模式,它组合了一种访问模式和一种拒绝模式。在打开文件时,CIFS客户设备130还能够获得一个oplock(机会锁定),它使打开文件的CIFS客户设备130具有对该文件的独占访问,只要另一个客户设备130没有试图使用该文件。从客户设备130的需要上说,oplock提供了对该文件更高程度的独占性,并且通过另一个客户设备130的访问,能够中断oplock的独占。文件服务器110为利用NFS(具有或不具有附加协议NLM)或CIFS而在客户设备130之间进行正确的互用作准备。为了提供正确的互用,文件服务器110提供了一种统一的文件锁定语义关系。在最佳实施例中,统一的文件锁定语义关系具有下述效果文件服务器110防止Unix客户设备201执行将覆盖已被打开和正被具有写拒绝或全部拒绝的拒绝模式的CIFS客户使用的文件113中的数据的NFS写操作。文件服务器110防止Unix客户设备201和PCNFSWindows客户设备02执行将导致取消或重命名一个已被打开并正被一个CIFS客户使用的文件113的NFS文件系统操作。当Unix客户设备201或PCNFSWindows客户设备202产生一个对被一个CIFS客户机会锁定的文件113进行取消、重命名或写数据的NFS请求时,文件服务器110将对文件113实行CIFS机会锁定语义关系。文件服务器110向保持机会锁定的客户设备130发送一个机会锁定中断消息140,并从该客户设备130接收一个响应信息。如果该客户设备130关闭了该文件113,则NFS请求能够继续并且得到文件服务器110的允许。当Unix客户设备201或PCNFSWindows客户设备202产生一个从正被一个CIFS客户机会锁定的文件113中读数据的NFS请求时,文件服务器110将对文件113实行CIFS机会锁定语义关系。文件服务器110向保持机会锁定的客户设备130发送一个机会锁定中断消息140,并从该客户设备130接收一个响应信息。如果该客户设备130关闭了该文件113或将其写缓冲区刷新成文件服务器110,则NFS请求能够继续并且得到文件服务器110的允许。文件服务器110测试来自CIFSWindows客户设备203的文件打开请求与来自PCNFSWindows客户设备202的NLM文件锁定请求关于它们特定的锁定模式的相互兼容性。这里用短语NLM“文件锁定”取代公知短语NLM“共享锁定”,该短语在下述文献中予以描述“X/OpenCAESpecificationProtocolsforX/OpenInterworkingXNFS,Issue4(X/OpenDocumentNumberC218)”,这里将此文献作为参考文献。文件服务器110通过组合所请求的访问模式和拒绝模式来确定特定的锁定模式。为了提供这些效果,文件服务器110执行下述锁定管理操作在接收一个CIFS文件打开请求消息140的同时,文件服务器110测试与现有的CIFS和NLM文件锁定冲突以及与现有的NLM字节范围锁定冲突的文件打开请求。为了达到与新请求的文件锁定相比较的目的,文件服务器110将现有的NLM字节范围锁定视为具有非拒绝拒绝模式且具有只读访问模式的非独占锁定和读-写访问模式的独占锁定。在接收一个CIFS字节范围锁定请求消息140的同时,文件服务器110测试与现有的CIFS和NLM字节范围锁定冲突的字节范围锁定请求。在接收一个NLM字节范围锁定请求消息140的同时,文件服务器110测试与现有的CIFS和NLM字节范围锁定冲突以及与现有的CIFS文件锁定冲突的字节范围锁定请求。在从一个PCNFS客户设备130接收一个NLM文件锁定请求消息140(用于模拟一个文件打开请求消息140)的同时,文件服务器110测试与现有的CIFS和NLM文件锁定冲突以及与现有的NLM字节范围锁定冲突的NLM文件锁定请求。为了达到与新请求的NLM文件锁定相比较的目的,文件服务器110将现有的NLM字节范围锁定视为具有非拒绝拒绝模式且具有只读访问模式的非独占锁定和读-写访问模式的独占锁定。操作方法(多协议文件服务器)图3示出了操作一个多协议文件服务器的方法流程图。操作一个多协议文件服务器的方法300包括一组由文件服务器110协同至少一个客户设备130执行的过程步骤和流点(flowpoint)。在流点310,文件服务器110准备接收文件服务器请求消息140。在步骤311,文件服务器110接收并分析文件服务器请求消息140。文件服务器110确定文件服务器请求消息140利用了NFS文件服务器协议、NLM文件锁定协议还是CIFS文件服务器协议。如果该文件服务器请求消息140使用了NFS文件服务器协议或NLM文件锁定协议,则方法300继续到步骤312。如果该文件服务器请求消息140使用了CIFS文件服务器协议,则方法300继续到步骤313。在步骤312,文件服务器110确定请求消息140是否包括一个用以执行一个文件系统操作(如读或写数据,或修改目录)的NFS文件服务器请求。可替换地,文件服务器110确定请求消息140是否包括一个用以获得一个NLM字节范围锁定的NLM文件锁定请求。在任一种情况下,方法300继续到流点320。在步骤313,文件服务器110确定文件服务器请求消息140是用于执行一个CIFS读或写操作以获得一个CIFS字节范围锁定,还是用于执行一个CIFS文件打开操作。在文件服务器请求消息140是用于获得一个CIFS字节范围锁定或用于执行一个CIFS文件打开操作的情况下,方法300继续到流点320。如果文件服务器请求消息140用于执行一个CIFS读或写操作,则方法继续到流点330。土改该文件服务器请求消息140是一个CIFS“变更通知”请求,则方法继续到流点350(将参照图6对变更通知请求进行进一步的说明)。在流点320,文件服务器110准备将文件服务器请求消息140所请求的操作与文件113的文件锁定状态进行比较。文件113的文件锁定状态包括文件113的现有文件锁定和字节范围锁定。在步骤321,文件服务器110确定文件113是文件服务器请求消息140的主题并确定该文件113是否被机会锁定。如果文件113被机会锁定,则方法300继续到步骤322。如果文件113没有被机会锁定,则方法300继续到步骤323。在步骤322,文件服务器110中断机会锁定,如这里所述。以后将参照图5进一步描述步骤322的执行。中断机会锁定能够导致文件113的文件锁定状态发生变化。在步骤323,文件服务器110利用一种统一的文件锁定语义关系,将所请求的操作与文件113的文件锁定状态进行比较。在这一步骤中,所请求的操作可能是一个NFS读或写操作、一个NFS或CIFS目录修改操作、一次获得NLM文件锁定或字节范围锁定的尝试或一个CIFS文件打开操作。以后将参照图4进一步描述步骤323的执行和统一的文件锁定语义关系。如果比较结果显示所请求的操作是允许的,则方法300继续到步骤324。如果所请求的操作是不允许的,则方法300继续到步骤325。在步骤324,文件服务器110执行所请求的操作。方法300继续到流点340。在步骤325,文件服务器110拒绝执行所请求的操作并向客户设备130响应一个错误消息。方法300继续到流点340。在流点330,文件服务器110准备将文件服务器请求消息140所请求的操作与文件113的文件锁定状态进行比较。在流点350,文件服务器110准备执行变更通知操作,如这里所述。在步骤351,第一CIFS客户设备130为一个目录请求一个文件锁定(利用一个文件系统请求消息140来打开该目录),并将该目录的文件锁定转变为对该目录的变更监视锁定。以后将参照图6进一步描述此步骤351的执行。在流点340,文件服务器110已对文件服务器请求消息140作出响应,关于该文件服务器请求消息140的方法300被完成。操作方法(交叉协议锁定管理器)图4示出了操作一个多协议文件服务器中的交叉协议锁定管理器的方法流程图。操作一个多协议文件服务器中的交叉协议锁定管理器的方法400包括一组后述的由文件服务器110协同至少一个客户设备130执行的过程步骤和流点。在流点410,文件服务器110准备将在文件服务器请求消息140中所请求的操作与文件113的文件锁定状态相比较。文件服务器110利用一种统一的文件锁定语义关系,以便以同样的方式模拟来自任一种文件服务器协议的任意请求操作的文件锁定。该统一文件锁定语义关系标识了一个统一的文件锁定集,每种文件锁定包括一种用于请求客户设备130的访问模式和一种用于所有其它客户设备130的拒绝模式。在最佳实施例中,访问模式可以是下列三种可能之——只读、只写或读-写。同样地,在最佳实施例中,拒绝模式可以是下列四种可能之一——非拒绝、读拒绝、写拒绝或全部拒绝。在第一客户设备130获得了对一个文件113的文件锁定之后,如果由将被第二客户设备130请求的文件服务器110所确定的锁定模式与文件113的文件锁定状态一致,则第二客户设备130只能够访问该文件113。例如,第一客户设备130获得对一个文件113的拒绝模式为写拒绝的文件锁定。第二NFS客户设备130能够试图对文件113进行写操作或第二CIFS客户设备130能够以一种包括写访问的访问模式来试图打开文件113。在任一种情况下(如果对该文件113的文件锁定不是一个机会锁定,如后所述),文件服务器110将拒绝第二客户设备130的请求。如所述,文件服务器110根据第二客户设备130所使用的文件服务器协议,在不同的时候执行文件锁定与第二客户设备130所请求的访问的比较如果第二客户设备130使用CIFS文件服务器协议来打开文件113,则文件服务器110在打开文件的时候检查文件113的文件锁定状态。如果第二客户设备130使用NFS文件服务器协议来对文件113进行读或写,则文件服务器110在进行实际文件系统操作时检查文件113的文件锁定状态。这也适用于具有从第一客户设备130上消除该文件的效果的文件系统操作,例如移动、消除或重命名文件113的操作。如果第二客户设备130使用CIFS文件服务器协议来请求一个字节范围锁定,则文件服务器110在请求字节范围锁定的时候检查与其它CIFS或NLM字节范围锁定冲突的文件113的文件锁定状态。文件服务器110在请求字节范围锁定的时候不检查与其它CIFS文件锁定的冲突,因为在打开文件的时候进行了检查。如果第二客户设备130使用NLM协议来请求一个字节范围锁定,则文件服务器110在请求字节范围锁定的时候,检查与现有的CIFS或NLM字节范围锁定冲突以及与现有的CIFS文件锁定冲突的文件113的文件锁定状态。在步骤421,文件服务器110确定是否已经存在一种以上与文件113相关的文件锁定。如果是,则方法400继续到步骤422。如果不是,则方法继续到步骤411。在步骤422,文件服务器110将已经与文件113相关的文件锁定组合到一个与文件113相关的等效文件锁定中。为了执行此步骤422,文件服务器110在表1中交叉检索一个包括每种先存文件锁定的累积文件锁定,直到所有的先存文件锁定已被累积在一起。表1示出了一个具有统一文件锁定语义关系的多协议文件服务器中的锁定变换表。</tables>表1锁定变换矩阵A-访问模式(R=读,W=写,RW=读-写,Any=R或W或RW中的任一种)D-拒绝模式(DN=非拒绝,DR=读拒绝,DW=写拒绝,DA=全部拒绝)在步骤411,文件服务器110确定文件服务器请求消息140中所请求的操作的性质。如果所请求的操作是一个CIFS文件打开操作,则方法400继续到步骤423。如果所请求的操作是一个NFS文件服务器操作,则方法400继续到步骤431。如果所请求的操作是一个对字节范围锁定的CIFS请求或NLM请求,则文件系统110继续到步骤441。在步骤423,文件服务器110将已经与文件113相关的文件锁定与第二客户设备130所请求的文件打开进行比较。为了执行此步骤423,文件服务器110在表2中交叉检索先存文件锁定和所请求的新访问模式及拒绝模式,并根据表中的相关项来允许或拒绝所请求的新访问模式和拒绝模式。如果文件服务器110允许所请求的新访问模式和拒绝模式,则方法400执行步骤424。如果文件服务器110拒绝所请求的新访问模式和拒绝模式,则方法400不执行步骤424。表2示出了在具有统一文件锁定语义关系的多协议文件服务器中的尝试文件锁定的交叉索引。表2多协议锁定兼容性矩阵A=访问模式D=拒绝模式√-新请求将被授权×-新请求将被拒绝如表2所示,每对先存文件锁定和所请求的新访问模式及拒绝模式具有一种相关的判定关系以允许或拒绝所请求的新访问模式和拒绝模式。如果文件服务器110正在检查一个现有CIFS文件锁定与一个执行文件打开操作的新请求之间的冲突,则对在新文件打开请求中所请求的访问模式和拒绝模式交叉检索现有的CIFS文件锁定。如果文件服务器110正在检查现有的文件锁定与一个用以执行文件读或写操作的新NFS请求之间的冲突,则对所请求的访问模式交叉检索合计的锁定模式(现有文件锁定的组合)以执行新的请求。如果文件服务器110正在检查现有的文件锁定或字节范围锁定与一个对NLM字节范围锁定的新请求之间的冲突,则对一种等效于新NLM字节范围锁定请求的锁定模式交叉检索现有的文件锁定和字节范围锁定。为了与现有的文件锁定进行比较,文件服务器110将新请求的NLM字节范围锁定视为非拒绝拒绝模式,并视为具有只读访问模式的非独占锁定(也称为“读锁定”)和具有读-写访问模式的独占锁定(也称为“写锁定”)。为了与现有的字节范围锁定进行比较,文件服务器110将新请求的NLM字节范围锁定视为具有只读访问模式和写拒绝拒绝模式的读锁定,并视为具有读写访问模式和全部拒绝拒绝模式的写锁定。然后方法400继续到流点450。在步骤431,文件服务器110比较文件113的文件锁定状态和由第二客户设备130请求的操作。为了执行此步骤431,文件服服务器110比较该文件锁定的拒绝模式和所请求的操作,并根据比较结果允许或拒绝所请求的操作。然后方法400继续到流点450。在步骤44l,文件服务器110比较文件113的文件锁定状态和由第二客户设备130请求的NLM字节范围锁定。在最佳实施例中,只对字节范围锁定检查CIFS字节范围锁定请求,因为它们需要一个以前的已经检查过现有文件锁定的CIFS文件打开操作。为了执行此步骤441,文件服务器110在表3中交叉检索先存的文件锁定状态和所请求的字节范围锁定,并根据表中的相关项允许或拒绝所请求的字节范围锁定。如果文件服务器110允许所请求的新NLM字节范围锁定,则方法400执行步骤442。如果文件服务器ll0拒绝所请求的新字节范围锁定,则方法400不执行步骤442。表3示出了具有统一文件锁定语义关系的多协议文件服务器中的现有文件锁定和新请求的NLM字节范围锁定的交叉索引。表3新NLM字节范围锁定与现有文件锁定的兼容性A=访问模式,D=拒绝模式√=新的NLM字节范围锁定请求将被授权×=新的NLM字节范围锁定请求将被拒绝如表3所示,每一对现有文件锁定和新请求的NLM字节范围锁定都具有允许或拒绝所请求的新字节范围锁定的相关判定关系。在步骤442,文件服务器110使所请求的新字节范围锁定作为一个新的附加字节范围锁定而与文件113发生联系。方法400继续到流点450。在流点450,文件服务器110比较了文件服务器请求消息140中所请求的操作和文件113的文件锁定状态,并允许或拒绝所请求的操作。操作方法(机会锁定管理器)图5示出了操作一个多协议文件服务器中的机会锁定管理器的方法流程图。操作一个多协议文件服务器中的机会锁定管理器的方法500包括一组后述的由文件服务器110协同至少一个客户设备130执行的过程步骤和流点。在Windows操作系统环境下的文件锁定领域中,机会锁定是公知技术。该技术在关于包括了例如CIFSIETF规定的“WindowsNT4.0”操作系统的文献中进行了详细描述,可以通过位于主ftpmicrosoft.com、directory/developr/drg/CIFS、文件cifs6.doc或cifs6.txt中的FTP协议,从位于Washington,Redmond的微软公司得到该文献,本文中将其作为参考文献。在流点510,文件服务器110准备从一个CIFS第一客户设备130接收一个打开文件113的请求。在步骤511,文件服务器110从一个CIFS第一客户设备130接收一个对文件113的文件打开请求。该文件打开请求指定了一种访问模式和一种拒绝模式。在步骤512,文件服务器110确定应当允许该请求,并以所指定的访问模式和拒绝模式向第一客户设备130授权一个文件锁定。在步骤513,如果该客户设备130已经在文件打开请求中请求了机会锁定,则文件服务器110以高于第一客户设备130实际需要的可能性将机会锁定授权给第一客户设备130。例如,当一个CIFS第一客户设备130以只读访问模式和写拒绝拒绝模式打开一个文件113时,文件服务器110使那种类型的文件锁定与文件113发生联系。文件服务器110还使具有读-写访问模式和全部拒绝拒绝模式的机会锁定与文件113发生联系。在流点520,文件服务器110对来自CIFS第一客户设备130的、对文件113进行文件锁定的请求作出响应。在流点530,第二客户设备130试图打开文件113。在步骤531,文件服务器110或者从第二CIFS客户设备130接收一个文件打开请求,或者从一个PCNFS客户设备130接收一个NLM文件锁定请求。作为执行此步骤531的一部分,在由第二客户设备130请求的执行中断了机会锁定并从该机会锁定的占有人、第一客户设备130处得到响应的同时,文件服务器110挂起由第二客户设备130请求的执行。在步骤532,文件服务器110通过向CIFS第一客户设备130发送一个“机会锁定中断”消息140来中断机会锁定。当第二客户设备130是一个CIFS客户设备130时,这已经在意料之中。当第二客户设备130是一个NFS客户设备130时,文件服务器110延迟其对NFS(或NLM)协议请求消息140的响应,直到CIFS第一客户设备130对“机会锁定中断”消息140作出响应为止。在步骤533,CIFS第一客户设备130接收“机会锁定中断”消息140并能够以下述两种方式之一对消息140作出响应CIFS第一客户设备130能够关闭文件113(从而取消与文件打开相关的文件锁定)或CIFS第一客户设备130能够清洗对文件113的所有未决CIFS写和字节范围锁定请求,这些请求在客户设备130中被局部缓存(即,它能够向文件服务器110传递那些文件系统操作的结果),并删除已经获得的文件113的预读数据。由于第二客户设备130可能接着向文件中写入新的数据而使预读数据无效,因而应当删除预读数据。在步骤534,文件服务器110从CIFS第一客户设备130接收响应。在步骤535,文件服务器110确定CIFS第一客户设备130是否保持文件113打开,如果是,则将第二客户设备130所请求的隐含锁定模式与文件113的新的文件锁定状态进行比较。如果文件服务器110确定允许继续进行第二客户设备130的请求,则方法继续到流点540。如果文件服务器110确定不允许继续进行了第二客户设备130的请求,拒绝该请求。在流点540,文件服务器110准备允许在步骤531中提及的来自第二客户设备130的请求。操作方法(变更通知管理器)图6示出了操作多协议文件服务器中的一个变更通知管理器的方法流程图。操作多协议文件服务器中的一个变更通知管理器的了方法600包括一组由文件服务器110协同至少一个客户设备130执行的过程步骤和流点。在流点610,文件服务器110准备接收文件服务器请求消息140。在步骤611,文件服务器110从第一CIFS客户设备130接收一个文件打开请求消息140,同时在文件服务器110上指定一个目录。文件服务器110确定应当允许该文件打开请求并向第一CIFS客户设备130授权对该目录的CIFS文件锁定。在步骤612,文件服务器110从第一CIFS客户设备130接收一个参照被打开的目录的变更通知请求消息以将对打开目录的文件锁定转换成变更监视锁定。在步骤613,文件服务器110将对打开目录的文件锁定转换成对指定目录的变更监视锁定。在流点620,“变更监视”锁定已经与指定目录建立联系,并且准备向第一CIFS客户设备130通知对该目录的变更。在步骤621,文件服务器110从第二客户设备130接收一个文件服务器请求消息140,请求对指定目录的变更,从而引发向第一客户设备130通知变更(变更类型包括文件生成、文件删除、文件重命名、目录之间的文件移动、文件属性变更以及文件修改时间变更)。来自第二客户设备130的文件服务器请求消息140可以是CIFS或NFS。第二客户设备130可以是UnixNFS客户设备201、PCNFS客户设备202或CIFSWindows客户设备203中的任一个。在步骤622,文件服务器110通知占有对步骤621中所述的变更的“变更监视”锁定的第一客户设备130,可能包括多项,其中每一项都规定了所监视的目录中被变更的文件或子目录的名称和变更类型。如果这样的第一客户设备130存在一个以上,则文件服务器110通知所有的第一客户设备。在WindowsNT操作系统环境下的文件锁定领域中,变更通知是公知技术。该技术在关于包括了例如CIFSIETF规定的“WindowsNT4.0”操作系统的文献中进行了详细描述,可以通过位于主ftpmicrosoft.com、directory/developr/drg/CIFS、文件cifs6.doc或cifs6.txt中的FTP协议,从位于Washington,Redmond的微软公司得到该文献,本文中将其作为参考文献。在流点630,文件服务器110已经将对指定目录的变更通知了第一CIFS客户设备130并为下一个消息140作准备。替换实施例尽管公开了最佳实施例,但是作出仍属于本发明范围和构思的各种改进是可能的,并且在研读了本说明书之后,这些改进对于所述
技术领域
的技术人员来说是清楚易懂的。技术附录关于本发明的其他和进一步的信息包括在本申请所附的一份技术附录中。该技术附录包括30页(包括附图)并在此作为参考文献而引用。权利要求1.一种操作一个文件服务器的方法,所述方法包括在一组使用多种不同文件服务器或文件锁定协议的客户设备中强制实施一种统一文件锁定语义关系的步骤。2.如权利要求1所述的方法,其特征在于所述统一文件锁定语义关系包括具有如下功能的机会锁定由第一客户设备使用第一协议进行请求;以及由使用不同于所述第一协议的第二协议的第二客户设备引发所述机会锁定的中断。3.如权利要求2所述的方法,其特征在于所述第一协议包括CIFS。4.如权利要求2所述的方法,其特征在于所述第二协议包括NFS或NLM。5.如权利要求1所述的方法,其特征在于所述统一文件锁定语义关系包括步骤根据一个使用第一所述协议的第一消息,将对一个选定文件的机会锁定授权给第一所述客户设备;以及根据一个使用第二所述协议的第二消息,中断所述机会锁定。6.如权利要求5所述的方法,其特征在于所述中断步骤包括步骤根据所述第二消息,向所述第一客户设备发送一个机会锁定中断消息;延迟所述第二消息所指示的文件系统请求的执行;从所述第一客户设备接收对所述机会锁定中断消息的响应;以及在所述接收步骤之后处理和响应所述第二消息。7.如权利要求1所述的方法,其特征在于所述统一文件锁定语义关系包括具有下述功能的变更监视锁定类型由第一客户设备使用第一协议进行请求;以及由使用不同于所述第一协议的第二协议的第二客户设备引发一次变更通知。8.如权利要求7所述的方法,其特征在于所述第一协议包括CIFS。9.如权利要求7所述的方法,其特征在于所述第二协议包括NFS。10.如权利要求1所述的方法,其特征在于所述统一文件锁定语义关系包括步骤根据使用第一所述协议的第一消息,将对一个选定目录的变更监视锁定授权给第一所述客户设备;以及根据使用第二所述协议并关于所述选定目录的第二消息,向所述第一客户设备发送一个变更通知消息。11.如权利要求1所述的方法,其特征在于所述强制实施步骤包括识别多种不同协议;根据使用了至少一种所述协议的消息,提供一种统一文件锁定语义关系;以及强制所有所述客户设备实施所述统一文件锁定语义关系。12.如权利要求11所述的方法,其特征在于所述统一文件锁定语义关系包括根据使用第一所述协议的第一消息,将对一个机会锁定授权给第一所述客户设备;以及根据使用第二所述协议的第二消息,中断所述机会锁定。13.如权利要求12所述的方法,其特征在于所述中断步骤包括根据所述第二消息向所述第一客户设备发送一个机会锁定中断消息;延迟执行由所述第二消息指示的一个文件系统请求;从所述第一客户设备接收对所述机会锁定中断消息的响应;以及在接收步骤之后处理和响应所述第二消息。14.如权利要求11所述的方法,其特征在于所述强制实施所述统一文件锁定语义关系的步骤包括根据来自第一客户设备且使用所述第一协议的第一消息而授权变更监视锁定;以及根据使用所述第二协议的第二消息向所述第一客户设备发送一个变更通知消息。15.如权利要求11所述的方法,其特征在于所述强制实施所述统一文件锁定语义关系的步骤包括识别违反所述统一文件锁定语义关系的一个选定消息;以及对所述选定消息作出对应于与所述选定消息相关的协议的一个错误响应。16.如权利要求11所述的方法,其特征在于所述强制实施所述统一文件锁定语义关系的步骤包括识别用于获得对一个按照所述选定协议的文件的字节范围锁定的一个选定消息,所述字节范围锁定具有一种锁定类型;以及测试所得到的所述字节范围锁定是否与由使用同一种或其它协议的消息所生成的现有锁定相冲突。17.如权利要求11所述的方法,其特征在于所述强制实施所述统一文件锁定语义关系的步骤包括识别用于打开一个按照所述选定协议的文件的一个选定消息,所述选定消息包括一种请求访问模式;以及测试利用所述请求访问模式打开所述文件是否与由使用同一种或其它协议的消息所生成的现有锁定相冲突。18.如权利要求17所述的方法,其特征在于所述选定消息包括一种请求拒绝模式;以及包括测试利用所述请求拒绝模式打开所述文件是否与由使用同一种或其它协议的消息所生成的现有锁定相冲突的步骤。19.如权利要求11所述的方法,其特征在于所述强制实施所述统一文件锁定语义关系的步骤包括识别用于对一个按照所述选定协议的文件进行读或写的一个选定消息,所述选定消息包括一种请求访问模式;以及测试对所述文件的读或写是否与由使用同一种或其它协议的消息所生成的现有锁定相冲突。20.如权利要求1所述的方法,其特征在于所述强制实施步骤包括接收使用第一协议的第一消息,所述第一消息可用于锁定一个选定文件的至少一部分;接收使用第二协议的第二消息,所述第二消息可用于请求对所述部分的访问;比较所述第二消息所请求的所述访问和所述锁定,并且如果所述锁定被禁止,则拒绝所述访问。21.如权利要求20所述的方法,其特征在于所述第一协议包括CIFS。22.如权利要求20所述的方法,其特征在于所述第一协议或所述第二协议包括NLM。23.如权利要求20所述的方法,其特征在于所述第二协议包括NFS。24.如权利要求20所述的方法,其特征在于所述接收所述第二消息的步骤包括用于识别用于获得对一个按照所述第二协议的文件的字节范围锁定的一个第二消息的步骤,所述字节范围锁定具有一种锁定类型;以及所述比较步骤包括用于测试所得到的具有所述锁定类型的所述字节范围锁定是否与由使用同一种或其它协议的消息所生成的现有锁定相冲突的步骤。25.如权利要求24所述的方法,其特征在于所述测试步骤对应于用于所述第二消息的协议。26.如权利要求24所述的方法,其特征在于所述测试步骤在文件打开时刻工作于所述第一协议之下,而在访问时刻则工作于所述第二协议之下。27.如权利要求24所述的方法,其特征在于所述测试步骤在文件打开时刻工作于所述第一协议之下,而在锁定请求时刻则工作于所述第二协议之下。28.如权利要求20所述的方法,其特征在于所述接收所述第二消息的步骤包括用于识别用于打开一个按照所述第二协议的文件的一个第二消息的步骤,所述第二消息包括一种请求访问模式;以及所述比较步骤包括用于测试利用所述请求访问模式访问所述文件是否与由使用同一种或其它协议的消息所生成的现有锁定相冲突的步骤。29.如权利要求20所述的方法,其特征在于所述接收所述第二消息的步骤包括用于识别用于对一个按照所述第二协议的文件进行读或写的一个第二消息的步骤;以及所述比较步骤包括用于测试通过所述第二消息访问所述文件是否与由使用同一种或其它协议的消息所生成的现有锁定相冲突的步骤。30.如权利要求20所述的方法,其特征在于所述接收所述第一消息的步骤包括用于根据所述第一消息而授权机会锁定的步骤;以及所述比较步骤包括根据所述第二消息中断所述机会锁定的步骤。31.如权利要求30所述的方法,其特征在于所述中断步骤包括根据所述第二消息向所述第一客户设备发送一个机会锁定中断消息;延迟执行由所述第二消息指示的一个文件系统请求;从所述第一客户设备接收对所述机会锁定中断消息的响应;以及在接收步骤之后处理和响应所述第二消息。32.如权利要求31所述的方法,其特征在于对所述机会锁定中断消息的所述响应包括一个机会锁定中断确认消息或一个文件关闭消息。33.如权利要求1所述的万法,其特征在于所述文件锁定语义关系包括按照由使用第一协议的第一客户设备所请求的访问模式和拒绝模式而确定的一个锁定模式。34.如权利要求1所述的方法,其特征在于所述文件锁定语义关系包括按照由使用第一协议的第一客户设备所请求的访问模式和拒绝模式而确定的第一锁定模式;根据来自使用不同于所述第一协议的第二协议的第二客户设备的消息而确定的第二锁定模式;其中所述文件服务器比较所述第一锁定模式和所述第二锁定模式。35.如权利要求34所述的方法,其特征在于所述比较包括一个锁定兼容性矩阵。36.如权利要求34所述的方法,其特征在于所述比较包括一个锁定变换矩阵。37.如权利要求34所述的方法,其特征在于所述第二锁定模式响应于一个字节范围锁定请求。38.如权利要求34所述的方法,其特征在于所述第二锁定模式响应于一个NLM文件锁定请求。全文摘要本发明提供了一种使用提议多协议锁定管理系统而使多个不同文件服务器或文件锁定协议正确互用的方法和系统。文件服务器在允许任何客户设备访问数据或获得锁定之前都要确定是否与用于那些现有锁定的始发客户设备和始发文件服务器协议或文件锁定协议无关的现有锁定不一致。CIFS客户设备能够获得对文件系统中的一个目录的“变更监测”锁定。文件服务器记录下CIFS客户设备和非CIFS客户设备对目录的变更,并将变更的“变更监测”锁定通知给CIFS客户设备。文档编号G06F15/00GK1276568SQ99109498公开日2000年12月13日申请日期1999年6月4日优先权日1999年6月4日发明者A·波尔申请人:网络装置公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1