一种磁盘锁管理方法及装置与流程

文档序号:17662013发布日期:2019-05-15 22:26阅读:285来源:国知局
一种磁盘锁管理方法及装置与流程

本发明涉及数据处理技术领域,具体而言,涉及一种磁盘锁管理方法及装置。



背景技术:

共享文件系统是指多个节点组成一个集群,访问同一块存储空间,在任意节点上读写文件,在其他节点上也仍可以访问该文件,节点间通过分布式锁协商读写权限。

磁盘锁是分布式锁的一种实现形式,拥有磁盘锁的节点用于访问磁盘锁对应资源的权限,节点通过光纤存储区域网络(fiberchannelstorageareanetwork,fcsan)或互联网协议存储区域网络(internetprotocolstorageareanetwork,ipsan)以小型计算机系统接口(smallcomputersysteminterface,scsi)命令的形式将加锁、解锁的消息写入磁盘,或者通过fc-san或ip-san以scsi命令的形式从磁盘读出锁的状态,从而决定是否加锁或解锁。

现有技术中,持有目标磁盘锁的节点不会对接收到的解锁请求加以分辨,导致持有目标磁盘锁的节点即使接收到过期的解锁请求,也会直接对解锁请求包含的逻辑块地址所对应的磁盘锁进行解锁操作;而若在持有目标磁盘锁的节点在接收到该解锁请求之前,便已经将该目标磁盘锁对应的资源删除,此时持有目标磁盘锁的节点会对新建的、且与该解锁请求包含的逻辑块地址相同的磁盘锁进行解锁操作,这会导致发起解锁请求实际获取的资源与其目标资源不一致,并引发文件系统只读或服务器宕机等问题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种磁盘锁管理方法及装置,以避免因为处理过期消息而导致的数据不一致、文件系统只读或服务器宕机等问题。

为了实现上述目的,本发明实施例采用的技术方案如下:

第一方面,本发明实施例提供了一种磁盘锁管理方法,应用于共享文件系统的第一节点,所述第一节点与所述共享文件系统的第二节点通信连接,所述磁盘锁管理方法包括:

接收第二节点传输的基于目标磁盘锁的逻辑块地址以及所述目标磁盘锁对应的资源的第一身份标识生成的解锁请求;

对所述解锁请求进行解析,获得所述逻辑块地址以及所述第一身份标识;

当查找到与所述逻辑块地址对应的实际磁盘锁时,读取所述实际磁盘锁对应的资源的第二身份标识;

当所述第一身份标识与所述第二身份标识一致时,对所述目标磁盘锁进行解锁操作以使所述第二节点对所述目标磁盘锁进行加锁操作。

第二方面,本发明实施例还提供了一种磁盘锁管理方法,应用于共享文件系统的第二节点,所述第二节点与所述共享文件系统的至少一个第一节点通信连接,所述磁盘锁管理方法包括:

向所述至少一个第一节点中持有目标磁盘锁的目标节点发送基于所述目标磁盘锁的逻辑块地址以及所述目标磁盘锁对应的资源的第一身份标识生成的解锁请求,以便所述目标节点依据所述解锁请求查找到与所述逻辑块地址对应的实际磁盘锁时读取所述实际磁盘锁对应的资源的第二身份标识,并在所述第一身份标识与所述第二身份标识一致时,对所述目标磁盘锁进行解锁操作;

当所述目标磁盘锁未被所述目标节点持有时,对所述目标磁盘锁进行加锁操作。

第三方面,本发明实施例还提供了一种磁盘锁管理装置,应用于共享文件系统的第一节点,所述第一节点与所述共享文件系统的第二节点通信连接,所述磁盘锁管理装置包括信息接收单元、解析单元、读取单元及磁盘锁管理单元。其中信息接收单元用于接收第二节点传输的基于目标磁盘锁的逻辑块地址以及所述目标磁盘锁对应的资源的第一身份标识生成的解锁请求;解析单元用于对所述解锁请求进行解析,获得所述逻辑块地址以及所述第一身份标识;读取单元用于当查找到与所述逻辑块地址对应的实际磁盘锁时,读取所述实际磁盘锁对应的资源的第二身份标识;磁盘锁管理单元用于当所述第一身份标识与所述第二身份标识一致时,对所述目标磁盘锁进行解锁操作以使所述第二节点对所述目标磁盘锁进行加锁操作。

第四方面,本发明实施例还提供了一种磁盘锁管理装置,应用于共享文件系统的第二节点,所述第二节点与所述共享文件系统的至少一个第一节点通信连接,所述磁盘锁管理装置包括信息发送单元以及磁盘锁管理单元。其中,信息发送单元用于向所述至少一个第一节点中持有目标磁盘锁的目标节点发送基于所述目标磁盘锁的逻辑块地址以及所述目标磁盘锁对应的资源的第一身份标识生成的解锁请求,以便所述目标节点依据所述解锁请求查找到与所述逻辑块地址对应的实际磁盘锁时读取所述实际磁盘锁对应的资源的第二身份标识,并在所述第一身份标识与所述第二身份标识一致时,对所述目标磁盘锁进行解锁操作;磁盘锁管理单元用于当所述目标磁盘锁未被所述目标节点持有时,对所述目标磁盘锁进行加锁操作。

本发明实施例提供的磁盘锁管理方法及装置,通过接收第二节点传输的基于目标磁盘锁的逻辑块地址以及第一身份标识生成的解锁请求,并对解锁请求进行解析,获得逻辑块地址以及第一身份标识,在查找到与逻辑块地址对应的实际磁盘锁时,读取实际磁盘锁的第二身份标识,并在第一身份标识与第二身份标识一致时,对目标磁盘锁进行解锁操作以使第二节点对目标磁盘锁进行加锁操作。通过判断目标磁盘锁的第一身份标识与实际磁盘锁的第二身份标识是否一致,当第一身份标识与第二身份标识一致时,表明目标磁盘锁所对应的资源与实际磁盘锁所对应的资源实际上是同一个资源,第二节点传输的解锁请求并非过期消息,从而确保第二节点所获取的资源确实是目标资源,从而避免了文件系统只读或服务器宕机等问题。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本发明实施例提供的共享文件系统的逻辑结构示意图。

图2示出了本发明实施例提供的一种节点的方框示意图。

图3示出了存储于共享存储设备内的资源的结构示意图。

图4示出了本发明第一实施例提供的磁盘锁管理方法的流程图。

图5示出了一种资源的具体的结构示意图。

图6示出了本发明第二实施例提供的磁盘锁管理方法的流程图。

图7示出了本发明第三实施例提供的磁盘锁管理装置的功能模块框图。

图8示出了本发明第四实施例提供的磁盘锁管理装置的功能模块框图。

图标:100-共享文件系统;110-节点;120-共享存储设备;122-资源;1222-磁盘锁;1224-元数据;130-存储网络;140-管理网络;111-存储器;112-处理器;113-通信单元;200-磁盘锁管理装置;210-信息接收单元;220-解析单元;230-读取单元;240-判断单元;250-磁盘锁管理单元;260-解锁请求生成单元;270-信息发送单元。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

在共享文件系统中,不同的节点可对同一存储设备进行访问。而当节点需要访问某一资源时,需要向存储该资源的存储设备申请该资源对应的磁盘锁,如若该磁盘锁未被任何节点持有,则访问该资源的节点便能直接读取该资源,同时对该资源对应的磁盘锁进行加锁操作,成为该磁盘锁的持有节点;若该磁盘锁被一节点持有,则访问该资源的节点需要向持有该磁盘锁的节点发起解锁请求,其中,解锁请求包括该磁盘锁的逻辑块地址,在持有该磁盘锁的节点接收到解锁请求后,会直接对解锁请求包含的逻辑块地址所对应的磁盘锁进行解锁操作,并不会对解锁请求加以区分,而若在持有该磁盘锁的节点在接收到该解锁请求之前,便已经将该磁盘锁对应的资源删除,此时持有磁盘锁的节点同样会对新建的、且与该解锁请求包含的逻辑块地址相同的磁盘锁进行解锁操作,这会导致发起解锁请求实际获取的资源与其目标资源不一致,并引发文件系统只读或服务器宕机等问题。

请参阅图1,为本发明实施例提供的一种共享文件系统100的逻辑结构示意图。该共享文件系统100包括多个节点110、共享存储设备120、存储网络130以及管理网络140,每个节点110均通过存储网络130与共享存储设备120通信连接,每个节点110之间通过管理网络140进行通信连接。

其中,每个节点110均为服务器。每个节点110均可通过存储网络130访问存储于共享存储设备120内的资源122;同时,不同的节点110之间可通过管理网络140进行通信,例如收/发解锁请求等等。

在一种可选的实施例中,管理网络140包括以传输控制协议(transmissioncontrolprotocol,tcp)实现的管理网络140。

在一种可选的实施例中,存储网络130可以是光纤存储区域网络(fiberchannelstorageareanetwork,fcsan)或互联网协议存储区域网络(internetprotocolstorageareanetwork,ipsan)等。

请参阅图2,为本发明实施例提供的一种节点110的方框示意图。所述服务器包括磁盘锁管理装置200、处理器112、存储器111及通信单元113。

所述存储器111、处理器112以及通信单元113各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述磁盘锁管理装置200包括至少一个可以软件或固件(firmware)的形式存储于所述存储器111中或固化在所述服务器的操作系统(operatingsystem,os)中的软件功能模块。所述处理器112用于执行所述存储器111中存储的可执行模块,例如所述磁盘锁管理装置200所包括的软件功能模块及计算机程序等。

其中,所述存储器111可以是,但不限于,随机存取存储器(randomaccessmemory,ram),只读存储器(readonlymemory,rom),可编程只读存储器(programmableread-onlymemory,prom),可擦除只读存储器(erasableprogrammableread-onlymemory,eprom),电可擦除只读存储器(electricerasableprogrammableread-onlymemory,eeprom)等。其中,存储器111用于存储程序或者数据。

所述通信单元113用于通过所述网络建立所述节点110与其它通信终端之间的通信连接,并用于通过所述网络收发数据。

共享存储设备120上存储有数据,且存储于该共享存储设备120上的数据以共享文件系统100所支持的形式被访问和存储。例如,存储在共享存储设备120中的数据可以被组织为文件的形式被不同的节点110共享。

在一种可选的实施例中,共享存储设备120将数据分为多个资源122,且每个资源122被组织为文件的形式。请参阅图3,为资源122的结构示意图。每个资源122均包括磁盘锁1222以及元数据1224。元数据1224存储有该资源122唯一的逻辑块地址(logicblockaddress,lba)、唯一的身份标识等信息,通过逻辑块地址可以查找到该逻辑块地址对应的磁盘锁1222以及资源122的身份标识。同时,每个磁盘锁1222包含持有信息等,其中,持有信息用于表征该磁盘锁1222是否被某一节点110持有,具体地,若某一磁盘锁1222被一节点110持有,则该持有信息则包含持有该磁盘锁1222的节点110的标识。

在一种可选的实施例中,身份标识为创建资源122时,共享存储设备120为该资源122创建的序列号。

第一实施例

本发明实施例提供了一种磁盘锁管理方法,应用于共享文件系统100的第一节点,第一节点与共享文件系统100的第二节点通信连接,用于避免因为处理过期消息而导致的数据不一致、文件系统只读或服务器宕机等问题。

需要说明的是,本实施例的第二节点是向共享文件系统100的某一资源122发起访问请求的节点110,而第一节点则为持有该资源122所对应的磁盘锁1222的节点110。

还需要说明的是,在其他实施例中,第二节点可以为持有该资源122所对应的磁盘锁1222的节点110,第一节点可以为向共享文件系统100的某一资源122发起访问请求的节点110,即每个节点110既可以是向共享文件系统100的某一资源122发起访问请求的节点110,也可以是持有某一资源122所对应的磁盘锁1222的节点110。

请参阅图4,为本发明实施例提供的磁盘锁管理方法的流程图。该磁盘锁管理方法包括:

步骤s401:接收第二节点传输的基于目标磁盘锁的逻辑块地址以及目标磁盘锁对应的第一身份标识生成的解锁请求。

具体地,第一节点通过管理网络140接收第二节点传输的解锁请求。其中,该解锁请求用于对所述目标磁盘锁进行解锁操作。

在第一节点接收到第二节点传输的解锁请求之前,第二节点通过读取目标磁盘锁的持有信息,以确定目标磁盘锁被第一节点持有,同时,第二节点还需读取该目标磁盘锁对应的资源122的第一身份标识,然后基于逻辑块地址以及第一身份标识并生成解锁请求。

例如,如图5所示的资源122,其逻辑块地址为2179ed38a5c9671b,该逻辑块地址为共64比特并以16进制数表示的随机码,第二节点依据逻辑块地址2179ed38a5c9671b对该资源122发起访问请求时,读取目标磁盘锁的持有信息为02,而02为第一节点的节点标识,从而确定目标磁盘锁被第一节点持有。同时读取元数据1224中的身份标识,确定目标磁盘锁对应的资源122的身份标识为421f89bd352a4c16,同样地,该身份标识也是为共64比特并以16进制数表示的随机码;然后基于逻辑块地址2179ed38a5c9671b以及第一身份标识421f89bd352a4c16生成解锁请求。

其中,某一磁盘锁1222所属的资源122,即为与该磁盘锁1222对应的资源122。同时,需要说明的是,虽然同一逻辑块地址可以在不同的时间点存储不同的资源122,但每个资源122都具有唯一的身份标识,以区域别于其他不同的资源122,该第一身份标识即为目标磁盘锁所对应的资源122的身份标识。

步骤s402:对解锁请求进行解析,获得逻辑块地址以及第一身份标识。

即为从第二节点传输的解锁请求中,获取逻辑块地址以及第一身份标识。

步骤s403:当查找到与逻辑块地址对应的实际磁盘锁时,读取实际磁盘锁对应的资源122的第二身份标识。

由于同一逻辑块地址可以在不同的时间点存储不同的资源122,若第一节点在接收到该解锁请求前,已经将目标磁盘锁对应的资源122(后文称之为旧资源)删除,并在旧资源所在的逻辑块地址上新建了一个资源122(后文称之为新资源)时,旧资源与新资源具备相同的逻辑块地址,此时第二节点可以根据解锁请求携带的逻辑块地址查找到新资源的磁盘锁1222,此时若直接对新资源的磁盘锁1222进行解锁操作,那么第二节点实际访问的是新资源,并非是作为其目标资源的旧资源,这会导致发起解锁请求实际获取的资源122与其目标资源不一致,并引发文件系统只读或服务器宕机等问题。

因此,在查找到与逻辑块地址对应的实际磁盘锁时,首先读取该实际磁盘锁对应的资源122的第二身份标识,以确定该逻辑块地址对应的资源122是否为作为第二节点目标资源的旧资源。

步骤s404:判断第一身份标识与第二身份标识是否一致,如果是,则执行步骤s405;如果否,则执行步骤s406。

由于每个资源122都具备唯一的身份标识,因此通过判断第一身份标识与第二身份标识是否一致便能确定实际磁盘锁所对应的资源122是否为目标磁盘锁对应的资源122。

例如,当第二身份标识为421f89bd352a4c16时,则判断第一身份标识与第二身份标识一致,反之,则判断第一身份标识与第二身份标识不一致。

步骤s405:对目标磁盘锁进行解锁操作以使第二节点对目标磁盘锁进行加锁操作。

当第一身份标识与第二身份标识一致时,实际磁盘锁所对应的资源122即为目标磁盘锁对应的资源122,实际磁盘锁即为目标磁盘锁,该解锁请求并非为过期消息,因此对目标磁盘锁进行解锁操作。

同时,在第一节点对目标磁盘进行解锁操作以后,第二节点便能对目标磁盘锁进行加锁操作,从而访问该目标磁盘锁对应的资源122。

在一种可选的实施例中,第一节点在判断第一身份标识与第二身份标识一致后,可以在当前没有正在进行的对该资源122的访问操作时或在当前正在进行的对该资源122的访问操作结束时,对该目标磁盘锁进行解锁操作。

步骤s406:保持目标磁盘锁的锁定状态。

当第一身份标识与第二身份标识不一致时,实际磁盘锁所对应的资源122并非为目标磁盘锁对应的资源122,该解锁请求失效,第一节点丢弃该解锁请求并保持目标磁盘锁的锁定状态,从而避免了由于第二节点实际获取的资源122与目标资源不一致导致的文件系统只读或服务器宕机等问题。

第二实施例

本发明实施例提供了一种磁盘锁管理方法,应用于共享文件系统100的第二节点,第二节点与共享文件系统100的至少一个第一节点通信连接,用于避免因为处理过期消息而导致的数据不一致、文件系统只读或服务器宕机等问题。

需要说明的是,本实施例的第二节点是向共享文件系统100的某一资源122发起访问请求的节点110,而至少一个第一节点则为与第二节点挂载于同一个共享文件系统100的节点110,即属于同一集群的节点110。此外,至少一个第一节点可能中可能存在持有该资源122对应的目标磁盘锁的节点110,也可能不存在持有该资源122对应的目标磁盘锁的节点110。

请参阅图6,为本发明实施例提供的磁盘锁管理方法的流程图。该磁盘锁管理方法包括:

步骤s601:根据获取的逻辑块地址读取对应的目标磁盘锁。

当第二节点根据获取的逻辑块地址对目标资源发起访问请求时,需要首先根据该目标资源的目标磁盘锁。

例如,根据逻辑块地址2179ed38a5c9671b读取如图5所示资源的磁盘锁1222。

步骤s602:判断目标磁盘锁是否被至少一个第一节点持有,如果是,则执行步骤s603;如果否,则执行步骤s607。

具体地,通过读取目标磁盘锁包含的持有信息即可判断该目标磁盘锁是否被至少一个第一节点持有。

例如,持有信息不包含任何一个第一节点的节点标识,即持有信息为空时,该目标磁盘锁不被至少一个第一节点中的任何一个第一节点持有。反之,当持有信息包含如图5所示的节点标识时,则表明该目标磁盘锁被该节点标识为02的第一节点所持有,并将节点标识为02的第一节点作为目标节点。

步骤s603:当目标磁盘锁被至少一个第一节点中的目标节点持有时,读取目标磁盘锁对应的资源122的第一身份标识。

通过读取目标磁盘锁对应的资源122的第一身份标识,可作为后续目标节点判断解锁请求是否过期的基准。

步骤s604:基于目标磁盘锁的逻辑块地址以及目标磁盘锁对应的资源122的第一身份标识生成解锁请求。

通过将目标磁盘锁对应的资源122的第一身份标识加入解锁请求,使得目标节点便能够依据接收到的解锁请求分析出第一身份标识,从而作为后续判断解锁请求是否过期的基准。

例如,当第二节点对如图5所示的资源122发起访问请求,需要基于逻辑块地址2179ed38a5c9671b以及第一身份标识421f89bd352a4c16并生成解锁请求。

步骤s605:向至少一个第一节点中持有目标磁盘锁的目标节点发送基于目标磁盘锁的逻辑块地址以及目标磁盘锁对应的资源122的第一身份标识生成的解锁请求,以便目标节点依据解锁请求查找到与逻辑块地址对应的实际磁盘锁时读取实际磁盘锁对应的资源122的第二身份标识,并在第一身份标识与第二身份标识一致时,对目标磁盘锁进行解锁操作。

步骤s606:判断目标磁盘锁是否被目标节点持有,如果是,则重新执行步骤s601;如果否,则执行步骤s607。

在第二节点向目标节点发送解锁请求后,便判断目标磁盘锁是否被目标节点持有,以确定是否能继续进行加锁操作。

当所述目标磁盘锁仍然被所述目标节点持有时,便重新执行步骤s604,以便于第二节点能第一时间得知目标节点对目标磁盘锁成功进行了解锁操作后。

在一种可选的实施例中,第二节点可在向至少一个第一节点中持有目标磁盘锁的目标节点发送解锁请求后,便读取目标磁盘锁的持有信息,确定该目标磁盘锁是否仍然被目标节点持有。

在另一种可选的实施例中,目标节点在成功对目标磁盘锁进行解锁操作后,便向第二节点发送解锁成功的消息,而当第二节点接收到目标节点发送的解锁成功的消息时,便能确定该目标磁盘锁不再被目标节点持有。

步骤s607:对目标磁盘锁进行加锁操作。

可以理解地,当目标磁盘锁未被至少一个第一节点中的任何一个第一节点持有时,第二节点对目标磁盘锁进行加锁操作。

此外,若目标磁盘锁未被目标节点持有,则表明目标节点已经依据解锁请求查找到与逻辑块地址对应的实际磁盘锁时读取实际磁盘锁对应的资源122的第二身份标识,并在第一身份标识与第二身份标识一致时对目标磁盘锁进行解锁操作,从而目标磁盘锁此时同样未被至少一个第一节点中的任何一个第一节点持有,因此此时第二节点同样可以对目标磁盘锁进行加锁操作。

可以理解地,在对目标磁盘锁进行加锁操作后,该目标磁盘锁的持有信息被写入第二节点的节点标识。

第三实施例

本发明实施例提供了一种磁盘锁管理装置200,需要说明的是,本实施例所提供的磁盘锁管理装置200,其基本原理及产生的技术效果和第一实施例相同,为简要描述,本实施例部分未提及之处,可参考第一实施例中相应内容。请参阅图7,为本发明实施例提供的磁盘锁管理装置200的功能模块框图,该磁盘锁管理装置200包括:信息接收单元210、解析单元220、读取单元230、判断单元240以及磁盘锁管理单元250。

信息接收单元210用于接收第二节点传输的基于目标磁盘锁的逻辑块地址以及目标磁盘锁对应的资源122的第一身份标识生成的解锁请求。

可以理解地,在一种优选的实施例中,该信息接收单元210可用于执行步骤s401。

解析单元220用于对解锁请求进行解析,获得逻辑块地址以及第一身份标识。

可以理解地,在一种优选的实施例中,该解析单元220可用于执行步骤s402。

读取单元230用于当查找到与逻辑块地址对应的实际磁盘锁时,读取实际磁盘锁对应的资源122的第二身份标识。

可以理解地,在一种优选的实施例中,该读取单元230可用于执行步骤s403。

判断单元240用于判断第一身份标识与第二身份标识是否一致。

可以理解地,在一种优选的实施例中,该判断单元240可用于执行步骤s404。

磁盘锁管理单元250用于当第一身份标识与第二身份标识一致时,对目标磁盘锁进行解锁操作以使第二节点对目标磁盘锁进行加锁操作。

磁盘锁管理单元250还用于当第一身份标识与第二身份标识不一致时,保持目标磁盘锁的锁定状态。

可以理解地,在一种优选的实施例中,该磁盘锁管理单元250可用于执行步骤s405及步骤s406。

第四实施例

本发明实施例提供了一种磁盘锁管理装置200,需要说明的是,本实施例所提供的磁盘锁管理装置200,其基本原理及产生的技术效果和第二实施例相同,为简要描述,本实施例部分未提及之处,可参考第二实施例中相应内容。请参阅图8,为本发明实施例提供的磁盘锁管理装置200的功能模块框图,该磁盘锁管理装置200包括:读取单元230、判断单元240、解锁请求生成单元260、信息发送单元270以及磁盘锁管理单元250。

读取单元230用于根据获取的逻辑块地址读取对应的目标磁盘锁。

可以理解地,在一种优选的实施例中,该读取单元230可用于执行步骤s601。

判断单元240用于判断目标磁盘锁是否被至少一个第一节点持有。

可以理解地,在一种优选的实施例中,该判断单元240可用于执行步骤s602。

读取单元230还用于当目标磁盘锁被至少一个第一节点中的目标节点持有时,读取目标磁盘锁对应的资源122的第一身份标识。

可以理解地,在一种优选的实施例中,该读取单元230可用于执行步骤s603。

解锁请求生成单元260用于基于目标磁盘锁的逻辑块地址以及目标磁盘锁对应的资源122的第一身份标识生成解锁请求。

可以理解地,在一种优选的实施例中,该解锁请求生成单元260可用于执行步骤s604。

信息发送单元270用于向至少一个第一节点中持有目标磁盘锁的目标节点发送基于目标磁盘锁的逻辑块地址以及目标磁盘锁对应的资源122的第一身份标识生成的解锁请求,以便目标节点依据解锁请求查找到与逻辑块地址对应的实际磁盘锁时读取实际磁盘锁对应的资源122的第二身份标识,并在第一身份标识与第二身份标识一致时,对目标磁盘锁进行解锁操作。

可以理解地,在一种优选的实施例中,该信息发送单元270可用于执行步骤s605。

判断单元240还用于判断目标磁盘锁是否被目标节点持有。

可以理解地,在一种优选的实施例中,该判断单元240可用于执行步骤s606。

磁盘锁管理单元250用于当目标磁盘锁是否被至少一个第一节点中的任何一个第一节点持有时或用于目标磁盘锁未被目标节点持有,对目标磁盘锁进行加锁操作。

可以理解地,在一种优选的实施例中,该磁盘锁管理单元250可用于执行步骤s607。

综上所述,本发明实施例提供的磁盘锁管理方法及装置,通过接收第二节点传输的基于目标磁盘锁的逻辑块地址以及第一身份标识生成的解锁请求,并对解锁请求进行解析,获得逻辑块地址以及第一身份标识,在查找到与逻辑块地址对应的实际磁盘锁时,读取实际磁盘锁的第二身份标识,并在第一身份标识与第二身份标识一致时,对目标磁盘锁进行解锁操作以使第二节点对目标磁盘锁进行加锁操作。通过判断目标磁盘锁的第一身份标识与实际磁盘锁的第二身份标识是否一致,当第一身份标识与第二身份标识一致时,表明目标磁盘锁所对应的资源与实际磁盘锁所对应的资源实际上是同一个资源,第二节点传输的解锁请求并非过期消息,从而确保第二节点所获取的资源确实是目标资源,从而避免了文件系统只读或服务器宕机等问题。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1