CN101329681A - 管理共享文件***的方法和*** - Google Patents
管理共享文件***的方法和*** Download PDFInfo
- Publication number
- CN101329681A CN101329681A CNA2008101102172A CN200810110217A CN101329681A CN 101329681 A CN101329681 A CN 101329681A CN A2008101102172 A CNA2008101102172 A CN A2008101102172A CN 200810110217 A CN200810110217 A CN 200810110217A CN 101329681 A CN101329681 A CN 101329681A
- Authority
- CN
- China
- Prior art keywords
- token
- file system
- shared
- main token
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
- G06F16/1767—Concurrency control, e.g. optimistic or pessimistic approaches
- G06F16/1774—Locking methods, e.g. locking methods for file systems allowing shared and concurrent access to files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1435—Saving, restoring, recovering or retrying at system level using file system or storage system metadata
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1858—Parallel file systems, i.e. file systems supporting multiple processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/465—Distributed object oriented systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Library & Information Science (AREA)
- Quality & Reliability (AREA)
- Automation & Control Theory (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及一种管理共享文件***的方法和***。提供了一种用于协调对简单计算机***中的共享对象的访问的方法和装置,所述简单计算机***具有在共享文件***上分层的无共享操作***。使用至少一个主令牌作为工具来在简单***中协调一个或多个共享对象的所有权。将创建和使用辅助令牌以协调一个或多个共享对象的所有权。在有限的情况下,例如当主令牌的所有者停止与主令牌的一个或多个请求方通信时,将创建和使用辅助令牌。
Description
技术领域
本发明涉及通过借助共享文件***对无共享操作***进行分层而创建的简单计算机***。更具体地说,本发明涉及协调对简单计算机***中的共享对象的访问。
背景技术
无共享多处理器是这样的环境:其中各处理器相互连接,但每个处理器具有其自己的存储器、高速缓存和盘。此类多处理环境也称为纯群集。无共享环境中的每个处理器都是完全独立的机器并运行操作***的副本。当此类处理器通过局域网连接时,各处理器松散地连接。类似地,当此类处理器通过交换机连接时,各处理器紧密地连接。在上述每种连接情况下,各处理器之间的通信通过消息传递协议实现。不能同时对无共享操作***中的每个处理器资源(即,存储器、存储装置、文件***、IP地址等)进行访问、使用或共享-一次只有一个处理器可以拥有或使用所述资源。Microsoft操作***是无共享操作***的一个实例。
与无共享多处理器环境相比,共享文件***允许所有互连的处理器及关联服务器共享和使用同一文件***。这包括使用不同操作***的服务器。共享文件***的实例包括形式为分布式文件***的网络文件***,所述网络文件***支持访问位于远程计算机的文件和目录,并将这些文件和目录视为本地文件和目录。更具体地说,可以使用操作***命令来创建、删除、读取、写入和设置远程文件和目录的文件属性。
本领域公知的是,使用无共享操作***运行的计算机通常不会与共享文件***一起工作。但是,无共享环境可以与共享文件***共存。无共享协议与共享内容协议共存的一个实例是使用无共享协议安装高可用性选项。高可用性选项是在给定测量期间内确保某种绝对程度的运行连续性的***设计协议和实现。此形式的共存为共享文件***增加了无共享功能。更具体地说,此类分层环境中的所有处理器都有权访问共享文件***,但是一次只有一个处理器可以拥有或使用文件***。这反映了共享数据环境不知道无共享操作***。相应地,需要增强对共存环境内共享文件***中的对象的访问和共享,例如用于支持在分层环境中拥有和使用共享文件***的多个服务器的工具。
发明内容
本发明包括一种用于仲裁对计算环境中的共享对象的访问的方法和***,在所述环境中,将借助共享文件***对无共享操作***进行分层。
在本发明的一个方面中,提供了一种用于管理与使用无共享操作***运行的服务器共存的共享文件***的方法。在计算机***中建立主令牌作为工具来控制对所述文件***中的一个或多个共享对象的访问。处理器从所述主令牌的先前所有者处请求所述主令牌的所有权,或者如果没有当前所有者,则处理器获取所述主令牌的所有权。响应于从所述主令牌的先前所有者处接收到静默、非预期或预期否定响应,将创建辅助令牌。所述辅助令牌用于获取所述文件***中由所述主令牌保护的所述对象的所有权。
在本发明的另一个方面中,提供了一种计算机***,所述计算机***具有共享文件***以及运行与所述共享文件***通信的无共享操作***的处理器。提供了主令牌作为用于控制对所述文件***中共享对象的访问的元素。此外,提供了管理器以便于处理器从所述主令牌的先前所有者处请求所述主令牌的所有权。当所述管理器从所述主令牌的先前所有者处接收到静默、非预期或预期否定响应时,将发出辅助令牌。所述辅助令牌用于获取所述文件***中由所述主令牌保护的所述对象的所有权。
在本发明的另一个方面中,提供了一种具有包括计算机程序指令的有形计算机可读载体的制品,所述指令配置为管理与无共享操作***共存的共享文件***。提供了指令以便在计算机***中建立主令牌作为元素来控制对文件***中作为共享资源的对象的访问。提供了指令以便从请求服务器向拥有服务器发出主令牌所有权请求。此外,提供了指令以便发出辅助令牌,以响应从所述主令牌的先前所有者处接收到静默、非预期或预期否定响应。所述辅助令牌用于获取所述文件***中由所述主令牌保护的所述对象的所有权。
在本发明的另一个方面中,提供了一种用于管理与使用无共享操作***运行的服务器共存的共享文件***的方法。在计算机***中建立主令牌作为工具来控制对所述文件***中的一个或多个共享对象的访问。处理器从所述主令牌的先前所有者处请求所述主令牌的所有权,或者如果没有当前所有者,则处理器获取所述主令牌的所有权。如果从所述主令牌的先前所有者处接收到否定响应,将创建辅助令牌。所述辅助令牌用于获取所述文件***中由所述主令牌保护的所述对象的所有权。
从以下结合附图的对本发明的当前优选实施例的详细说明,本发明的其他特征和优点将变得显而易见。
附图说明
图1是具有锁定机制的简单***的方块图;
图2是示出了用于协调对简单***中共享对象的访问的方法的流程图;
图3A和3B是示出了根据本发明优选实施例的用于仲裁令牌所有权的方法的流程图;
图4是示出了用于更新令牌所有权的方法的流程图;以及
图5是嵌入计算机***的文件***锁定工具的方块图。
具体实施方式
概述
不知道共享文件***或数据环境的操作***被视为是简单的。不知道或无法处理和保护无共享操作***要求的共享文件***对象也被视为是简单的。此类简单***需要工具以便在无共享操作***和共享文件***之间协助和管理从对象读取以及向对象写入,从而识别、映射和调整这些简单***的不同层。
技术细节
图1是示出了对计算机***进行分层以创建简单***的一个实例的方块图(100)。如示出的,存在至少两个操作***OS1(10)和OS2(20)。每个操作***OS1(10)和OS2(20)都是无共享操作***。示出的OS1(10)具有两个运行于***内的应用(12)和(14),而示出的OS2(20)具有两个运行于***内的应用(22)和(24)。在一个实施例中,可以存在更少的运行于文件***内的应用或更多的运行于文件***内的应用。本发明不应限于在此所示的操作***或应用的数量。每个操作***OS1(10)和OS2(20)都与共享数据硬件环境(40)上的共享访问文件***(30)层通信。分别为每个操作***OS1(10)和OS2(20)提供了文件***锁定机制(50a)、(50b),以便在共享文件***(30)与无共享操作***OS1(10)及OS2(20)之间协助和协调对象的共享。如在此所示出的,文件***锁定机制(50a)和(50b)是过滤器。但是,机制(50a)、(50b)不应限于使用过滤器,而可以是任何能够提供必要功能的机制。在一个实施例中,文件***锁定机制(50a)、(50b)可以采取驱动器或SCSI协议的形式。锁定机制调整操作***、文件***和数据环境的不同锁定层。下面的图2-4详细说明了文件***锁定机制的功能。在一个实施例中,文件***锁定机制作为管理器运行,以协助将文件***中对象的临时所有权转给请求此对象所有权的应用。相应地,提供了工具以协助对共享文件***中对象的访问,从而支持在简单***中进行分层。
图2是示出了服务器运行无共享操作***以临时访问与服务器通信的共享文件***环境中的对象,同时满足无共享操作***的无共享预期的方法的流程图(200)。初始地,运行无共享操作***的服务器将查找共享文件***(202)。在一个实施例中,查找共享文件***的过程可以在引导服务器时,加载驱动程序、文件等期间,或者在服务器查找共享文件***的任何时刻进行。在步骤(202)之后,服务器与共享文件***通信并且可以访问文件***中的对象。当服务器请求访问文件***中的对象时,文件***锁定机制将在文件***中搜索被请求对象的所有权令牌(204)。所有权令牌是文件***中的一种管理装置,其可允许多个服务器和操作***有权访问同一存储介质或文件***,同时为与文件***通信的服务器提供此文件***中一个或多个对象的临时所有权。在一个实施例中,所有权令牌可以是文件、目录、元数据等。当文件***锁定机制完成其搜索时,文件***锁定机制判定请求服务器是否拥有所有权令牌(206)。服务器可能从崩溃或其他形式的停机中返回。由于服务器是简单文件***的一部分,因此它不知道令牌。在一个实施例中,令牌所有权被嵌入在令牌中。例如,令牌所有权可以采取嵌入在令牌中的服务器标识符的形式。这使得文件***锁定机制能够通过令牌本身确定服务器所有权。如果对步骤(206)的判定的响应是肯定的,则请求服务器临时拥有由令牌标识的被请求对象。拥有令牌的请求服务器可以访问被请求对象,例如读取和/或写入与令牌关联的对象(208)。在一个实施例中,被请求对象可以包括被请求文件的目录内容。相反,如果对步骤(206)的判定的响应是否定的,则文件***锁定机制可以尝试代表请求服务器获取关联令牌的被请求对象的所有权(210)。在步骤(210)之后,文件***锁定机制判定文件***锁定机制是否为请求服务器成功拥有了所有权令牌(212)。如果对步骤(212)的判定的响应是肯定的,则文件***锁定机制将令牌转移给请求服务器,并且拥有令牌的请求服务器可以访问由该令牌标识的被请求对象(208)。相反,如果对步骤(212)的判定的响应是否定的,这表示与被请求对象关联的令牌不可用。文件***锁定机制将向服务器返回仲裁错误(214)。文件***锁定机制可以根据服务器的访问需要在稍后的时间请求令牌。在简单文件***中拥有令牌为拥有令牌的服务器提供了临时所有权或者共享文件***中的一个或多个共享对象。相应地,使用无共享操作***运行并与共享文件***通信的服务器可以通过文件***锁定机制来访问和临时拥有共享文件***中的一个或多个共享对象。
如上所述,令牌用于为运行与共享文件***通信的简单操作***的服务器授予对象的临时访问权限。令牌的授权是针对临时所有权,并且当服务器已完成与被请求对象关联的任务(例如读取和/或写入)时,必须将令牌交给下一个请求服务器。如果没有服务器请求令牌,则令牌的现有所有者可以在结束使用资源后释放令牌。但是,在多个服务器与共享文件***通信的某些情况下,令牌的先前所有者可能停止与下一个请求服务器通信,并且因此可能无法转移令牌的所有权。图3A和3B是示出了用于在与共享文件***通信的服务器之间出现通信错误时仲裁令牌所有权并访问共享对象的过程的流程图(300)。初始地,服务器Server1将请求访问文件***对象。但是,由于服务器是简单计算机***的一部分,因此服务器假定被请求对象不是共享对象。与服务器Server1通信的文件***锁定机制请求将形式为主令牌的所有权令牌转移给请求服务器,以便请求服务器获取文件***中一个或多个对象的临时所有权(302)。在(302)服务器请求之后,文件***锁定机制在文件***中搜索被请求对象的主令牌(304)。主令牌是文件***中的一种管理装置,其可允许多个服务器和操作***有权访问同一存储介质或文件***,同时为与文件***通信的服务器提供此文件***中一个或多个对象的临时所有权。在一个实施例中,主令牌可以是文件、目录、元数据等。当文件***锁定机制完成其搜索时,文件***锁定机制判定请求服务器Server1是否拥有被请求的主令牌(306)。服务器可能从崩溃或其他形式的停机中返回。由于服务器是简单文件***的一部分,因此它不知道令牌。如果对步骤(306)的判定的响应是肯定的,则请求服务器Server1临时拥有由主令牌标识的被请求对象。拥有主令牌的请求服务器Server1可以访问与主令牌关联的被请求对象(308)。在一个实施例中,被请求对象可以包括被请求文件的目录内容。相反,如果对步骤(306)的判定的响应是否定的,则文件***锁定机制可以尝试代表请求服务器获取关联主令牌的所有权(310)。在步骤(310)之后,将判定文件***锁定机制是否为请求服务器Server1成功获取了主令牌的所有权(312)。如果对步骤(312)的判定的响应是肯定的,则文件***锁定机制将令牌转移给请求服务器Server1,并且拥有主令牌的请求服务器Server1可以访问由主令牌标识的被请求对象(308)。相反,如果对步骤(312)的判定的响应是否定的,这表示与被请求对象关联的主令牌不可用。此后,将判定最近是否已更新被请求的主令牌(314)。下面的图4示出了如何更新令牌的一个实施例。对步骤(314)的判定的肯定响应表示主令牌的先前所有者正在继续访问共享对象并且已通过继续使用主令牌断言其访问权限。在一个实施例中,文件***锁定机制通过仲裁错误消息通知请求服务器Server1主令牌继续由其他服务器使用(316)。相应地,正在由其他服务器有效使用的主令牌可以继续由此服务器有效拥有。
但是,如果对步骤(314)的判定的响应是否定的,这表示主令牌的先前所有者可能继续保持拥有主令牌但未使用主令牌。为确定主令牌的状态和所有者,必须判定拥有服务器是否与文件***和/或网络中的其他服务器通信(318)。在一个实施例中,将使用心跳消息协议进行此类判定。在群集环境中,定期在群集的成员之间传送心跳消息,并且文件***锁定机制可以监视定期心跳以判定拥有服务器是否与文件***通信。同样,在一个实施例中,文件***锁定机制可以向拥有服务器发出心跳消息或类似通信协议,其中所述消息或通信协议包括对来自接收方的返回答复的请求。无论使用何种通信协议,文件***锁定机制都会启动通信协议,因为文件***锁定机制将判定它是否获取令牌的所有权。如果对步骤(318)的判定的响应是肯定的,这表示拥有主令牌的服务器与文件***通信并保持拥有主令牌(320)。但是,如果对步骤(318)的判定的响应是否定的,这表示拥有主令牌的服务器已临时或永久停止与网络中的其他服务器通信(322)。在一个实施例中,代表请求服务器请求主令牌的文件***锁定机制可以接收是非预期响应的响应,并且没有提及拥有服务器是否与文件***和/或网络中的其他服务器通信。此类响应被视为不适当的(例如非预期的),因为它没有提及主令牌的可用性。不适当响应的实例可以包括既未授予令牌也未拒绝令牌请求的响应。在另一个实例中,拥有主令牌的服务器可能没有使用主令牌,但同时可能因为通信临时或永久停止而无法将主令牌返回文件***。
文件***锁定机制可以继续代表请求服务器Server1获取被请求对象的令牌。第一步是假定拥有主令牌的服务器以某种方式与文件***分离(322)。文件***锁定机制代表请求服务器Server1向与文件***通信的所有服务器广播一则消息,所述消息说明拥有令牌的服务器不可用并且由此服务器持有的主令牌无效(324)。此后,文件***锁定机制代表请求服务器Server1获取新令牌的所有权(326)。新令牌在下文被称为辅助令牌。辅助令牌的类型及其位置可以预先定义并存储在文件***内的固定位置(例如Windows注册表或Unix config文件),或可以根据需要重新创建辅助令牌,然后可以从创建服务器向所有文件***锁定机制广播令牌信息。在辅助令牌的所有权之后,将判定文件***锁定机制在步骤(326)代表Server1获取所有权是否成功(328)。如果对步骤(328)的判定的响应是肯定 的,则拥有辅助令牌的请求服务器可以访问由令牌标识的被请求对象(330)。相反,如果对步骤(328)的判定的响应是否定的,这表示与被请求对象关联的辅助令牌不可用。将向与请求服务器关联的文件***锁定机制返回仲裁错误,并且文件***锁定机制将令牌的访问拒绝传送到请求服务器(332)。服务器可以在稍后的时间请求访问文件***对象,此该时间,文件***锁定机制将再次根据服务器的访问需要仲裁关联令牌的处理。在一个实施例中,可以一直使用辅助令牌直到原有令牌再次变得可用于文件***,并且此时辅助令牌可以被释放并被无效,以防止指定对象的两个有效令牌之间发生冲突。相应地,使用无共享操作***运行并与共享文件***通信的服务器可以在有限的情况下访问辅助令牌,以便访问和临时拥有共享文件***中的共享对象。
如上所示,在有限的情况下,拥有主令牌的服务器可能停止与文件***通信,并且此服务器拥有的主令牌可以被其他请求服务器无效。在一个实施例中,将在文件***中定期更新令牌所有权以防止尝试使拥有和活动的主令牌无效。图4是示出了用于定期在文件***中更新令牌所有权的过程的流程图(400)。拥有主令牌的服务器启动令牌更新过程(402)。服务器(多个)请求访问文件***中的对象,并且文件***锁定机制将访问请求转换为对令牌所有权的请求。在一个实施例中,文件***可以具有多个可用的主令牌,且每个主令牌被指定用于文件***中的不同对象。将文件***中所拥有的令牌总数赋予变量Ntotal(404),并且变量N被赋值整数1(406)。变量N是用于对文件***中所拥有的令牌数进行计数的计数变量。将指定所拥有的令牌TokenN(408),并且判定TokenN是否是响应于无响应服务器拥有主令牌而创建的辅助令牌(410)。如果判定TokenN是主令牌,则与拥有TokenN的服务器通信的文件***锁定机制可以将TokenN更新到文件***(412)。在一个实施例中,令牌更新可以采取传送到每个服务器上的文件***锁定机制的消息的形式,所述服务器是与由拥有服务器继续使用的TokenN的文件***通信的服务器。但是,如果判定TokenN不是主令牌,则随后判定主令牌是否可用(414)。对步骤(414)的判定的否定响应导致与拥有TokenN的服务器通信的文件***锁定机制将TokenN更新到文件***(412)。但是,如果在步骤(414)判定主令牌可用,则与拥有辅助替换令牌的服务器通信的文件***锁定机制将代表关联的服务器仲裁主令牌以重新获取主令牌的所有权(416)。在步骤(416)之后,将判定用于拥有替换辅助令牌的服务器的文件***锁定机制是否成功仲裁主令牌(418)。如果判定与请求服务器关联的文件***锁定机制没有成功仲裁主令牌,则请求服务器可以将TokenN更新到文件***(412)。但是,如果判定文件***锁定机制代表请求服务器成功仲裁了主令牌,则文件***锁定机制将代表请求服务器广播主令牌并使辅助替换令牌无效(420)。在步骤(412)和(420)之后,变量N将递增(422)以继续评估文件***中的下一个令牌。但是,在评估下一个令牌之前,将判定是否还有待评估的令牌(424)。在一个实施例中,步骤(424)的判定可以是将递增的计数器与变量Ntotal相比较。如果在步骤(424)判定至少有一个待评估的令牌,则所述过程返回步骤(408)。相反,如果在步骤(424)判定已评估所有令牌,则所述过程完成。在一个实施例中,令牌更新过程的完成可以包括在重新开始令牌更新过程之前等待预设的时间间隔(426)。相应地,在此所述的过程当主令牌再次变得可用时将释放替换辅助令牌并使其无效。
在一个实施例中,本发明以软件实现,所述软件包括但不限于固件、驻留软件、微代码等。本发明可以采取可从计算机可用或计算机可读介质访问的计算机程序产品的形式,所述计算机可用或计算机可读介质提供了可以被计算机或任何指令执行***使用或与计算机或任何指令执行***结合的程序代码。出于此描述的目的,计算机可用或计算机可读介质可以是任何能够包含、存储、传送、传播或传输由指令执行***、装置或设备使用或与所述指令执行***、装置或设备结合的程序的装置。
图5是示出了文件***锁定工具在计算机***中的布置的方块图(500)。此图示出了具有处理器(504)、存储器(506)并与共享文件***(520)和共享存储介质(525)通信的服务器(502)。如图1所示,服务器(502)可以在无共享操作***(508)中运行一个或多个应用(514)和(516)。形式为管理器(540)的文件***锁定工具示为驻留在服务器(502)的存储器(506)中。管理器(540),也称为文件***锁定机制,将协调和协助共享对象的锁定,以支持无共享操作***与共享文件***的共存,如上面的图2-4中详细说明的那样。管理器(540)可以使用计算机可读介质中的指令,以便在无共享操作***和共享文件***之间协调对共享对象的读取和写入。在一个实施例中,管理器(540)使用令牌(未示出)作为工具来帮助协调。令牌可以采取文件、目录、元数据、文件***属性,以及文件***中的对象的形式。同样,在一个实施例中,管理器(540)可以作为硬件工具驻留在存储器(506)的外部,或它可以作为硬件和软件的组合实现。相应地,管理器(540)可以作为软件工具或硬件工具实现,以协助在使用共享文件***分层的无共享操作***之间协调共享对象。
本发明范围内的实施例还包括制品,所述制品包括其中编码有程序代码的程序存储装置。此类程序存储装置可以是任何能够由通用或专用计算机访问的可用介质。作为实例而不是限制,此类程序存储装置可以包括RAM、ROM、EEPROM、CD-ROM,或其他光盘存储装置、磁盘存储装置或其他磁存储设备,或任何其他可用于存储所需程序代码装置以及可由通用或专用计算机访问的介质。上述内容的组合也应包括在所述程序存储装置的范围中。
所述介质可以是电、磁、光、电磁、红外线或半导体***(或装置或设备)或传播介质。计算机可读介质的实例包括半导体或固态存储器、磁带、可移动计算机盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘的当前实例包括光盘-只读存储器(CD-ROM)、光盘-读/写(CR-R/W)和DVD。
适合于存储和/或执行程序代码的数据处理***将包括至少一个通过***总线直接或间接连接到存储器元件的处理器。所述存储器元件可以包括在程序代码的实际执行期间采用的本地存储器、大容量存储装置以及提供至少某些程序代码的临时存储以减少必须在执行期间从大容量存储装置检索代码的次数的高速缓冲存储器。
输入/输出或I/O设备(包括但不限于键盘、显示器、指点设备等)可以直接或通过中间I/O控制器与***相连。网络适配器也可以被连接到***以使所述数据处理***能够通过中间专用或公共网络变得与其他数据处理***或远程打印机或存储设备相连。
软件实施方式可采取可从计算机可用或计算机可读介质访问的计算机程序产品的形式,所述计算机可用或计算机可读介质提供了可以被计算机或任何指令执行***使用或与计算机或任何指令执行***结合的程序代码。
较之现有技术的优点
使用共享文件***对无共享操作***分层产生了一种包括两个***的优点的环境。文件***锁定机制是一种管理工具,用于支持、协调和/或协助组合环境中存在的共享对象的读取和写入,以支持在文件***级别进行协调。运行于简单环境中的服务器请求访问一个或多个共享对象,并且与此服务器关联的文件***锁定机制将此请求转换为对所有权令牌的请求。文件***中可以存在主令牌和/或辅助令牌。以这样的方式使用主令牌和辅助令牌:支持访问一个或多个共享对象而不违反无共享操作***或共享文件***的协议。
备选实施例
将理解的是,虽然在此出于说明目的描述了本发明的特定实施例,但是可以做出各种修改而不偏离本发明的精神和范围。具体地说,在有限的情况下,使用主令牌和辅助令牌以提供对简单环境中共享对象的访问。辅助令牌可以采取与主令牌相同或不同的形式。例如,如果主令牌是文件,则辅助令牌也可以是文件、文件***的属性等。同样,如果主令牌是目录,则辅助令牌也可以是目录、文件、文件***的属性等。如果主令牌和辅助令牌采取相同的形式,它们将是相同形式的不同元素(例如不同文件或不同目录),因为主令牌和辅助令牌需要具有单独的标识以支持相关功能。相应地,本发明的保护范围仅由以下权利要求及其等同物来限定。
Claims (14)
1.一种用于管理共享文件***的方法,所述方法包括:
在计算机***中建立主令牌作为控制对共享文件***中对象的访问的元素,其中所述计算机***包括运行在与共享文件***共存的无共享环境中的处理器;
所述处理器从所述主令牌的先前所有者处请求所述主令牌的所有权;
接收来自所述主令牌的所述先前所有者的响应,其中从包括以下项的组来选择所述响应:静默、非预期和预期否定;以及
创建辅助令牌以响应接收到所述响应,其中所述辅助令牌用于获取所述文件***中由所述主令牌保护的所述对象的所有权。
2.如权利要求1中所述的方法,还包括向每个有权访问所述文件***的服务器广播主令牌无效信息。
3.如权利要求2中所述的方法,还包括当所述主令牌变得可用时返回使用所述主令牌。
4.如权利要求3中所述的方法,还包括当返回所述主令牌时,向所有有权访问所述文件***的服务器释放所述辅助令牌并使其无效。
5.如权利要求1中所述的方法,其中从所述先前所有者请求所述主令牌的步骤包括:向所述主令牌的所述所有者发出心跳以确定所述先前所有者是否与请求所述主令牌的服务器通信。
6.如权利要求1中所述的方法,其中从包括以下项的组来选择所述令牌:文件、目录、元数据、所述文件***的属性,以及所述文件***中的对象。
7.一种计算机***,包括:
共享文件***;
处理器,其运行与所述共享文件***通信的无共享操作***;
管理器,其从主令牌的先前所有者处请求所述主令牌的所有权,所述主令牌提供对所述文件***中作为共享资源的对象的访问控制;
所述管理器接收来自所述主令牌的所述先前所有者的否定响应,其中从包括以下项的组来选择所述响应:静默、非预期和预期否定;
所述管理器发出辅助令牌以响应接收到来自所述先前所有者的所述否定响应,其中所述辅助令牌用于获取所述文件***中由所述主令牌保护的所述对象的所有权。
8.如权利要求7中所述的***,还包括所述管理器向每个有权访问所述文件***的服务器广播主令牌无效信息。
9.如权利要求8中所述的***,还包括当所述主令牌变得可用时返回使用所述主令牌。
10.如权利要求9中所述的***,还包括当返回所述主令牌时,所述管理器向所有有权访问所述文件***的服务器释放所述辅助令牌并使其无效。
11.如权利要求7中所述的***,其中从所述先前所有者请求所述主令牌包括:向所述主令牌的所述所有者发出心跳以确定所述先前所有者是否与请求所述主令牌的服务器通信。
12.如权利要求7中所述的***,其中从包括以下项的组来选择所述令牌:文件、目录、元数据、所述文件***的属性,以及所述文件***中的对象。
13.一种用于管理共享文件***的方法,所述方法包括:
在计算机***中建立主令牌作为控制对共享文件***中对象的访问的元素,其中所述计算机***包括运行在与共享文件***共存的无共享环境中的处理器;
从所述主令牌的先前所有者处请求所述主令牌的所有权;以及
在所述***中创建辅助令牌以响应接收到来自所述先前所有者的否定响应,其中所述辅助令牌用于获取所述文件***中由所述主令牌保护的所述对象的所有权。
14.如权利要求13中所述的方法,其中从包括以下项的组来选择所述否定响应:静默、非预期和预期否定。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/765,912 | 2007-06-20 | ||
US11/765,912 US8990954B2 (en) | 2007-06-20 | 2007-06-20 | Distributed lock manager for file system objects in a shared file system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101329681A true CN101329681A (zh) | 2008-12-24 |
Family
ID=40137577
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008101102172A Pending CN101329681A (zh) | 2007-06-20 | 2008-06-18 | 管理共享文件***的方法和*** |
Country Status (2)
Country | Link |
---|---|
US (1) | US8990954B2 (zh) |
CN (1) | CN101329681A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102142032A (zh) * | 2011-03-28 | 2011-08-03 | 中国人民解放军国防科学技术大学 | 一种分布式文件***的数据读写方法及*** |
WO2012140671A2 (en) * | 2011-04-11 | 2012-10-18 | Ineda Systems Pvt. Ltd | File system sharing |
WO2016173303A1 (zh) * | 2015-04-29 | 2016-11-03 | 中兴通讯股份有限公司 | 一种处理共享文件的方法及装置 |
CN107122410A (zh) * | 2017-03-29 | 2017-09-01 | 武汉斗鱼网络科技有限公司 | 一种缓存更新方法及装置 |
CN108023939A (zh) * | 2014-11-12 | 2018-05-11 | 华为技术有限公司 | 分布式***中锁服务器故障的处理方法及其*** |
CN110334063A (zh) * | 2019-07-15 | 2019-10-15 | 深圳前海微众银行股份有限公司 | 文件***的操作方法、装置、设备及计算机可读存储介质 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0908041D0 (en) * | 2009-05-11 | 2009-06-24 | True Blue Logic Ltd | Improvements in and relating to replicated file servers |
US20120102314A1 (en) * | 2010-04-01 | 2012-04-26 | Huizhou TCL Mobile Communications Co., Ltd. | Smart phone system and booting method thereof |
KR101755421B1 (ko) * | 2011-01-10 | 2017-07-10 | 삼성전자주식회사 | 클라이언트 장치를 이용한 호스트 장치의 파일 정보 시스템 편집 방법 및 시스템 |
US8533796B1 (en) * | 2011-03-16 | 2013-09-10 | Google Inc. | Providing application programs with access to secured resources |
US8924370B2 (en) | 2011-05-31 | 2014-12-30 | Ori Software Development Ltd. | Efficient distributed lock manager |
US9507800B2 (en) | 2013-10-23 | 2016-11-29 | Netapp, Inc. | Data management in distributed file systems |
US9575974B2 (en) * | 2013-10-23 | 2017-02-21 | Netapp, Inc. | Distributed file system gateway |
US10296469B1 (en) | 2014-07-24 | 2019-05-21 | Pure Storage, Inc. | Access control in a flash storage system |
CN106713250B (zh) * | 2015-11-18 | 2019-08-20 | 杭州华为数字技术有限公司 | 基于分布式***的数据访问方法和装置 |
CN107466456B (zh) | 2015-12-30 | 2020-01-17 | 华为技术有限公司 | 加锁请求的处理方法及服务器 |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5202971A (en) * | 1987-02-13 | 1993-04-13 | International Business Machines Corporation | System for file and record locking between nodes in a distributed data processing environment maintaining one copy of each file lock |
JP2575543B2 (ja) | 1990-04-04 | 1997-01-29 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 同時アクセス管理方法 |
JPH0619771A (ja) * | 1992-04-20 | 1994-01-28 | Internatl Business Mach Corp <Ibm> | 異種のクライアントによる共用ファイルのファイル管理機構 |
US5454108A (en) * | 1994-01-26 | 1995-09-26 | International Business Machines Corporation | Distributed lock manager using a passive, state-full control-server |
US5566297A (en) * | 1994-06-16 | 1996-10-15 | International Business Machines Corporation | Non-disruptive recovery from file server failure in a highly available file system for clustered computing environments |
US5634122A (en) * | 1994-12-30 | 1997-05-27 | International Business Machines Corporation | System and method for multi-level token management for distributed file systems |
JP3746826B2 (ja) | 1996-02-19 | 2006-02-15 | 富士通株式会社 | 資源ロック制御機構 |
US6041383A (en) * | 1996-07-22 | 2000-03-21 | Cabletron Systems, Inc. | Establishing control of lock token for shared objects upon approval messages from all other processes |
US6032216A (en) * | 1997-07-11 | 2000-02-29 | International Business Machines Corporation | Parallel file system with method using tokens for locking modes |
US6023706A (en) * | 1997-07-11 | 2000-02-08 | International Business Machines Corporation | Parallel file system and method for multiple node file access |
US5893086A (en) * | 1997-07-11 | 1999-04-06 | International Business Machines Corporation | Parallel file system and method with extensible hashing |
JP2000020324A (ja) | 1998-06-30 | 2000-01-21 | Yokogawa Electric Corp | 分散エージェントシステム |
US6539446B1 (en) * | 1999-05-07 | 2003-03-25 | Oracle Corporation | Resource locking approach |
US6389420B1 (en) | 1999-09-30 | 2002-05-14 | Emc Corporation | File manager providing distributed locking and metadata management for shared data access by clients relinquishing locks after time period expiration |
US7596563B1 (en) * | 1999-10-28 | 2009-09-29 | Hewlett-Packard Development Company, L.P. | Computerized file system and method |
US7475199B1 (en) * | 2000-10-19 | 2009-01-06 | Emc Corporation | Scalable network file system |
US6708175B2 (en) * | 2001-06-06 | 2004-03-16 | International Business Machines Corporation | Program support for disk fencing in a shared disk parallel file system across storage area network |
US7325064B2 (en) | 2001-07-17 | 2008-01-29 | International Business Machines Corporation | Distributed locking protocol with asynchronous token prefetch and relinquish |
US6748470B2 (en) * | 2001-11-13 | 2004-06-08 | Microsoft Corporation | Method and system for locking multiple resources in a distributed environment |
US7418500B1 (en) * | 2002-03-25 | 2008-08-26 | Network Appliance, Inc. | Mechanism for controlled sharing of files in a clustered application environment |
US7239605B2 (en) * | 2002-09-23 | 2007-07-03 | Sun Microsystems, Inc. | Item and method for performing a cluster topology self-healing process in a distributed data system cluster |
US7281050B2 (en) * | 2003-04-08 | 2007-10-09 | Sun Microsystems, Inc. | Distributed token manager with transactional properties |
US7409389B2 (en) * | 2003-04-29 | 2008-08-05 | International Business Machines Corporation | Managing access to objects of a computing environment |
US7493513B2 (en) * | 2003-04-29 | 2009-02-17 | International Business Machines Corporation | Automatically freezing functionality of a computing entity responsive to an error |
US8560747B1 (en) * | 2007-02-16 | 2013-10-15 | Vmware, Inc. | Associating heartbeat data with access to shared resources of a computer system |
JP2007526573A (ja) * | 2004-03-04 | 2007-09-13 | アクサルト・エス・アー | リトリーブ可能なトークン(例えば、スマートカード)内の独立した実行環境におけるアプリケーション間のセキュリティで保護されたリソース共有 |
US7330910B2 (en) * | 2004-05-20 | 2008-02-12 | International Business Machines Corporation | Fencing of resources allocated to non-cooperative client computers |
US7788716B2 (en) * | 2004-05-21 | 2010-08-31 | Bea Systems, Inc. | Token handler API |
US7698708B1 (en) * | 2004-07-30 | 2010-04-13 | Symantec Operating Corporation | Method and system for persistent, recoverable user-level locks |
US8495266B2 (en) * | 2004-12-10 | 2013-07-23 | Hewlett-Packard Development Company, L.P. | Distributed lock |
US7580933B2 (en) * | 2005-07-28 | 2009-08-25 | Microsoft Corporation | Resource handling for taking permissions |
US7509448B2 (en) * | 2007-01-05 | 2009-03-24 | Isilon Systems, Inc. | Systems and methods for managing semantic locks |
-
2007
- 2007-06-20 US US11/765,912 patent/US8990954B2/en not_active Expired - Fee Related
-
2008
- 2008-06-18 CN CNA2008101102172A patent/CN101329681A/zh active Pending
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102142032B (zh) * | 2011-03-28 | 2013-03-20 | 中国人民解放军国防科学技术大学 | 一种分布式文件***的数据读写方法及*** |
CN102142032A (zh) * | 2011-03-28 | 2011-08-03 | 中国人民解放军国防科学技术大学 | 一种分布式文件***的数据读写方法及*** |
WO2012140671A2 (en) * | 2011-04-11 | 2012-10-18 | Ineda Systems Pvt. Ltd | File system sharing |
WO2012140671A3 (en) * | 2011-04-11 | 2013-01-03 | Ineda Systems Pvt. Ltd | File system sharing |
US9836478B2 (en) | 2011-04-11 | 2017-12-05 | Ineda Systems Inc. | File system sharing |
CN108023939B (zh) * | 2014-11-12 | 2021-02-05 | 华为技术有限公司 | 分布式***中锁服务器故障的处理方法及其*** |
CN108023939A (zh) * | 2014-11-12 | 2018-05-11 | 华为技术有限公司 | 分布式***中锁服务器故障的处理方法及其*** |
WO2016173303A1 (zh) * | 2015-04-29 | 2016-11-03 | 中兴通讯股份有限公司 | 一种处理共享文件的方法及装置 |
CN106202074A (zh) * | 2015-04-29 | 2016-12-07 | 中兴通讯股份有限公司 | 一种处理共享文件的方法及装置 |
CN106202074B (zh) * | 2015-04-29 | 2021-02-23 | 中兴通讯股份有限公司 | 一种处理共享文件的方法及装置 |
CN107122410A (zh) * | 2017-03-29 | 2017-09-01 | 武汉斗鱼网络科技有限公司 | 一种缓存更新方法及装置 |
CN110334063A (zh) * | 2019-07-15 | 2019-10-15 | 深圳前海微众银行股份有限公司 | 文件***的操作方法、装置、设备及计算机可读存储介质 |
CN110334063B (zh) * | 2019-07-15 | 2024-05-14 | 深圳前海微众银行股份有限公司 | 文件***的操作方法、装置、设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20080319996A1 (en) | 2008-12-25 |
US8990954B2 (en) | 2015-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101329681A (zh) | 管理共享文件***的方法和*** | |
CN100339847C (zh) | 虚拟化的分布式网络存储*** | |
US7584222B1 (en) | Methods and apparatus facilitating access to shared storage among multiple computers | |
US6457098B1 (en) | Methods and apparatus for coordinating shared multiple raid controller access to common storage devices | |
EP0972240B1 (en) | An agent-implemented locking mechanism | |
JP2948496B2 (ja) | データ処理システム内で複写データ一貫性を維持するためのシステムおよび方法 | |
US8560524B2 (en) | Allocating priorities to prevent deadlocks in a storage system | |
US8495131B2 (en) | Method, system, and program for managing locks enabling access to a shared resource | |
US8595184B2 (en) | Scaleable fault-tolerant metadata service | |
US9652346B2 (en) | Data consistency control method and software for a distributed replicated database system | |
CN109979606B (zh) | 一种基于容器化构建微服务化医疗影像云及云胶片的方法 | |
US7958200B2 (en) | Methods, computer program products, and apparatuses for providing remote client access to exported file systems | |
US6601070B2 (en) | Distribution of physical file systems | |
KR100450400B1 (ko) | 안전 기억 장치가 없는 환경을 위한 이중화 구조의 주 메모리 상주 데이터베이스 관리시스템 및 그 데이터 일치성 제어방법 | |
US20120059808A1 (en) | Accessing data entities | |
WO1998028685A1 (en) | Coordinating shared access to common storage | |
US11449241B2 (en) | Customizable lock management for distributed resources | |
US7996421B2 (en) | Method, computer program product, and system for coordinating access to locally and remotely exported file systems | |
JP2812045B2 (ja) | 高信頼型分散処理システム | |
CN1703891A (zh) | 对n路共享存储***中快闪副本的高效锁管理 | |
US8473709B2 (en) | Virtual volume allocating unit and method which allocate a new virtual volume to adequately-sized unused volume areas | |
US7536422B2 (en) | Method for process substitution on a database management system | |
US7185223B2 (en) | Logical partitioning in redundant systems | |
US10055139B1 (en) | Optimized layout in a two tier storage | |
US20100057741A1 (en) | Software resource access utilizing multiple lock tables |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20081224 |