CN101329681A - 管理共享文件系统的方法和系统 - Google Patents

管理共享文件系统的方法和系统 Download PDF

Info

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
Application number
CNA2008101102172A
Other languages
English (en)
Inventor
S·D·库克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101329681A publication Critical patent/CN101329681A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • G06F16/1767Concurrency control, e.g. optimistic or pessimistic approaches
    • G06F16/1774Locking methods, e.g. locking methods for file systems allowing shared and concurrent access to files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1858Parallel file systems, i.e. file systems supporting multiple processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols 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)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Data Mining & Analysis (AREA)
  • Automation & Control Theory (AREA)
  • Computing Systems (AREA)
  • Library & Information Science (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及一种管理共享文件系统的方法和系统。提供了一种用于协调对简单计算机系统中的共享对象的访问的方法和装置,所述简单计算机系统具有在共享文件系统上分层的无共享操作系统。使用至少一个主令牌作为工具来在简单系统中协调一个或多个共享对象的所有权。将创建和使用辅助令牌以协调一个或多个共享对象的所有权。在有限的情况下,例如当主令牌的所有者停止与主令牌的一个或多个请求方通信时,将创建和使用辅助令牌。

Description

管理共享文件系统的方法和系统
技术领域
本发明涉及通过借助共享文件系统对无共享操作系统进行分层而创建的简单计算机系统。更具体地说,本发明涉及协调对简单计算机系统中的共享对象的访问。
背景技术
无共享多处理器是这样的环境:其中各处理器相互连接,但每个处理器具有其自己的存储器、高速缓存和盘。此类多处理环境也称为纯群集。无共享环境中的每个处理器都是完全独立的机器并运行操作系统的副本。当此类处理器通过局域网连接时,各处理器松散地连接。类似地,当此类处理器通过交换机连接时,各处理器紧密地连接。在上述每种连接情况下,各处理器之间的通信通过消息传递协议实现。不能同时对无共享操作系统中的每个处理器资源(即,存储器、存储装置、文件系统、IP地址等)进行访问、使用或共享-一次只有一个处理器可以拥有或使用所述资源。Microsoft
Figure A20081011021700041
操作系统是无共享操作系统的一个实例。
与无共享多处理器环境相比,共享文件系统允许所有互连的处理器及关联服务器共享和使用同一文件系统。这包括使用不同操作系统的服务器。共享文件系统的实例包括形式为分布式文件系统的网络文件系统,所述网络文件系统支持访问位于远程计算机的文件和目录,并将这些文件和目录视为本地文件和目录。更具体地说,可以使用操作系统命令来创建、删除、读取、写入和设置远程文件和目录的文件属性。
本领域公知的是,使用无共享操作系统运行的计算机通常不会与共享文件系统一起工作。但是,无共享环境可以与共享文件系统共存。无共享协议与共享内容协议共存的一个实例是使用无共享协议安装高可用性选项。高可用性选项是在给定测量期间内确保某种绝对程度的运行连续性的系统设计协议和实现。此形式的共存为共享文件系统增加了无共享功能。更具体地说,此类分层环境中的所有处理器都有权访问共享文件系统,但是一次只有一个处理器可以拥有或使用文件系统。这反映了共享数据环境不知道无共享操作系统。相应地,需要增强对共存环境内共享文件系统中的对象的访问和共享,例如用于支持在分层环境中拥有和使用共享文件系统的多个服务器的工具。
发明内容
本发明包括一种用于仲裁对计算环境中的共享对象的访问的方法和系统,在所述环境中,将借助共享文件系统对无共享操作系统进行分层。
在本发明的一个方面中,提供了一种用于管理与使用无共享操作系统运行的服务器共存的共享文件系统的方法。在计算机系统中建立主令牌作为工具来控制对所述文件系统中的一个或多个共享对象的访问。处理器从所述主令牌的先前所有者处请求所述主令牌的所有权,或者如果没有当前所有者,则处理器获取所述主令牌的所有权。响应于从所述主令牌的先前所有者处接收到静默、非预期或预期否定响应,将创建辅助令牌。所述辅助令牌用于获取所述文件系统中由所述主令牌保护的所述对象的所有权。
在本发明的另一个方面中,提供了一种计算机系统,所述计算机系统具有共享文件系统以及运行与所述共享文件系统通信的无共享操作系统的处理器。提供了主令牌作为用于控制对所述文件系统中共享对象的访问的元素。此外,提供了管理器以便于处理器从所述主令牌的先前所有者处请求所述主令牌的所有权。当所述管理器从所述主令牌的先前所有者处接收到静默、非预期或预期否定响应时,将发出辅助令牌。所述辅助令牌用于获取所述文件系统中由所述主令牌保护的所述对象的所有权。
在本发明的另一个方面中,提供了一种具有包括计算机程序指令的有形计算机可读载体的制品,所述指令配置为管理与无共享操作系统共存的共享文件系统。提供了指令以便在计算机系统中建立主令牌作为元素来控制对文件系统中作为共享资源的对象的访问。提供了指令以便从请求服务器向拥有服务器发出主令牌所有权请求。此外,提供了指令以便发出辅助令牌,以响应从所述主令牌的先前所有者处接收到静默、非预期或预期否定响应。所述辅助令牌用于获取所述文件系统中由所述主令牌保护的所述对象的所有权。
在本发明的另一个方面中,提供了一种用于管理与使用无共享操作系统运行的服务器共存的共享文件系统的方法。在计算机系统中建立主令牌作为工具来控制对所述文件系统中的一个或多个共享对象的访问。处理器从所述主令牌的先前所有者处请求所述主令牌的所有权,或者如果没有当前所有者,则处理器获取所述主令牌的所有权。如果从所述主令牌的先前所有者处接收到否定响应,将创建辅助令牌。所述辅助令牌用于获取所述文件系统中由所述主令牌保护的所述对象的所有权。
从以下结合附图的对本发明的当前优选实施例的详细说明,本发明的其他特征和优点将变得显而易见。
附图说明
图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中所述的方法,其中从包括以下项的组来选择所述否定响应:静默、非预期和预期否定。
CNA2008101102172A 2007-06-20 2008-06-18 管理共享文件系统的方法和系统 Pending CN101329681A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/765,912 US8990954B2 (en) 2007-06-20 2007-06-20 Distributed lock manager for file system objects in a shared file system
US11/765,912 2007-06-20

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 杭州华为数字技术有限公司 基于分布式系统的数据访问方法和装置
BR112017011541B1 (pt) 2015-12-30 2023-09-26 Huawei Technologies Co., Ltd Método para processar uma solicitação de bloqueio, aparelho de gerenciamento de solicitação de bloqueio e servidor

Family Cites Families (32)

* Cited by examiner, † Cited by third party
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

Cited By (13)

* Cited by examiner, † Cited by third party
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
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
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
US11449241B2 (en) Customizable lock management for distributed resources
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
US10740320B2 (en) Systems and methods of operation lock management and system catalog overrides in database systems

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