CN103678537A - 基于集群的元数据修改方法、装置及节点设备 - Google Patents
基于集群的元数据修改方法、装置及节点设备 Download PDFInfo
- Publication number
- CN103678537A CN103678537A CN201310637339.8A CN201310637339A CN103678537A CN 103678537 A CN103678537 A CN 103678537A CN 201310637339 A CN201310637339 A CN 201310637339A CN 103678537 A CN103678537 A CN 103678537A
- Authority
- CN
- China
- Prior art keywords
- metadata
- storage unit
- storage space
- information
- storage
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
-
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
- G06F16/1827—Management specifically adapted to NAS
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种基于集群的元数据修改方法、装置及节点设备,该方法包括:根据获取到的元数据修改请求确定需要修改元数据的LUN,将获取到的元数据修改请求存储在位于确定出的LUN包含的第二存储空间、且与所述当前节点设备的ID信息对应的存储单元中;在第一存储空间中竞争集群锁信息,以及轮询每个所述第二存储空间的存储单元;若竞争到集群锁信息、且轮询到的存储单元中存储有元数据修改请求,则获取并执行存储的元数据修改请求后,将得到的元数据修改结果存储在获取对应的元数据修改请求的存储单元中;若轮询到的存储单元存储元数据修改结果,获取存储的元数据修改结果。该方案可以确保元数据修改的正确性。
Description
技术领域
本发明涉及通信技术领域,尤指一种基于集群的元数据修改方法、装置及节点设备。
背景技术
存储区域网络(Storage Array Network,SAN)是一种高速网络或子网络,SAN提供的共享存储以逻辑单元(Logical Unit Number,LUN)的形式向集群中的节点设备呈现。
在共享存储场景下,卷管理的元数据存放在LUN上,由于多个节点设备可以同时修改LUN中的元数据,因此必须保证各个节点设备修改元数据的操作是顺序进行的,这就需要在一个节点设备修改元数据时对元数据进行加锁保护,在某一时刻只有获取到集群锁的节点设备才能修改元数据,从而保证同一时刻不会存在两个或者两个以上的节点设备同时修改元数据。
目前常用的卷管理方式有两种:分布式卷管理和集中式卷管理。如图1所示为分布式卷管理方式的示意图,当节点设备要修改卷元数据时,首先获取集群锁,然后修改元数据,完成后再释放集群锁,其它节点设备可以继续获取集群锁来修改元数据。如图2所示为集中式卷管理方式的示意图,首先要选取一个节点设备作为主节点设备,其它节点设备需要修改元数据时,会发送元数据修改请求给主节点设备,由主节点设备来顺序执行元数据修改请求。
上述两种元数据修改方法中集群的节点设备之间是基于控制面进行通信的,节点设备必须与其它节点设备网络相通,一旦出现网络故障,节点设备之间的网络中断,就不能保证元数据修改的正确性。
发明内容
本发明实施例提供一种基于集群的元数据修改方法、装置及节点设备,用以解决现有的元数据修改方法中一旦网络出现故障无法保证元数据修改的正确性的问题。
第一方面,本发明实施例提供一种基于集群的元数据修改方法,所述集群包括至少两个节点设备,所述集群与存储区域网络SAN连接,所述SAN包括至少一个逻辑单元LUN,每个所述LUN包含第一存储空间和第二存储空间,针对每个所述节点设备,所述方法包括:
当前节点设备根据获取到的元数据修改请求确定需要修改元数据的LUN,将获取到的元数据修改请求存储在位于确定出的LUN包含的第二存储空间、且与所述当前节点设备的标识ID信息对应的存储单元中;
所述当前节点设备在所述第一存储空间中竞争集群锁信息,以及轮询每个所述第二存储空间的存储单元;
若所述当前节点设备竞争到所述集群锁信息、且轮询到的存储单元中存储有元数据修改请求,则获取并执行存储的元数据修改请求后,将得到的元数据修改结果存储在获取对应的元数据修改请求的存储单元中;
若所述当前节点设备轮询到的存储单元存储元数据修改结果,获取存储的元数据修改结果。
结合第一方面,在第一种可能的实现方式中,所述当前节点设备获取所述当前节点设备的ID信息,具体包括:
所述当前节点设备启动后,从一个所述第一存储空间包含的空闲的存储单元中选取任意一个存储单元、地址最小的存储单元或者地址最大的存储单元;
将选取的存储单元的ID信息作为所述当前节点设备的ID信息。
结合第一方面或者第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第二存储空间的每个存储单元包括接收子单元和发送子单元;
所述当前节点设备将获取到的元数据修改请求存储在位于确定出的LUN包含的第二存储空间、且与所述ID信息对应的存储单元的接收子单元中;
所述当前节点设备在所述第一存储空间中竞争集群锁信息,以及轮询每个所述第二存储空间的存储单元中的接收子单元;
若所述当前节点设备竞争到所述集群锁信息、且轮询到的接收子单元中存储有元数据修改请求,则获取并执行存储的元数据修改请求后,将得到的元数据修改结果存储在获取对应的元数据修改请求的存储单元的发送子单元中。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述当前节点设备轮询每个所述第二存储空间的存储单元的发送子单元;
若轮询到的发送子单元存储有元数据修改结果,获取存储的元数据修改结果。
结合第一方面、第一方面的第一种可能的实现方式、第一方面的第二种可能的实现方式或第一方面的第三种可能的实现方式,在第四种可能的实现方式中,还包括:
所述当前节点设备将所述当前节点设备的心跳信息存储在位于每个所述第一存储空间、且与所述ID信息对应的存储单元中;
所述当前节点设备在所述第一存储空间中竞争集群锁信息,具体包括:
所述当前节点设备轮询每个所述第一存储空间的存储单元,并查看轮询到的存储单元中是否存储所述集群锁信息;
若轮询到的存储单元中未存储所述集群锁信息,则竞争到所述集群锁信息,并存储在所述ID信息对应的所述第一存储空间的存储单元中;
若轮询到的存储空间中存储有所述集群锁信息,查看轮询到的存储空间中存储的心跳信息是否超时,若超时,则竞争到所述集群锁信息,并存储在所述ID信息对应的所述第一存储空间的存储单元中;若未超时,则未竞争到所述集群锁信息。
第二方面,一种元数据修改装置,应用于集群包括的至少两个节点设备中,所述集群与存储区域网络SAN连接,所述SAN包括至少一个逻辑单元LUN,每个所述LUN包含第一存储空间和第二存储空间,所述装置包括:
存储模块,用于根据获取到的元数据修改请求确定需要修改元数据的LUN,将获取到的元数据修改请求存储在位于确定出的LUN包含的第二存储空间、且与自身所在的节点设备的标识ID信息对应的存储单元中;
处理模块,用于在所述第一存储空间中竞争所述集群锁信息,以及轮询每个所述第二存储空间的存储单元;若竞争到集群锁信息、且轮询到的存储单元中存储有元数据修改请求,则获取并执行存储的元数据修改请求后,将得到的元数据修改结果存储在获取对应的元数据修改请求的存储单元中;若所述轮询模块轮询到的存储单元存储元数据修改结果,获取存储的元数据修改结果。
结合第二方面,在第一种可能的实现方式中,所述存储模块,具体用于:
所述节点设备启动后,从一个所述第一存储空间包含的空闲的存储单元中选取任意一个存储单元、地址最小的存储单元或者地址最大的存储单元;
将选取的存储单元的ID信息作为所述节点设备的ID信息。
结合第二方面或者第一方面的第二种可能的实现方式,在第二种可能的实现方式中,所述第二存储空间的每个存储单元包括接收子单元和发送子单元;
所述存储模块,具体用于将获取到的元数据修改请求存储在位于确定出的LUN包含的第二存储空间、且与所述ID信息对应的存储单元的接收子单元中;
所述处理模块,具体用于在所述第一存储空间中竞争集群锁信息,以及轮询每个所述第二存储空间的存储单元中的接收子单元;若竞争到所述集群锁信息、且轮询到的接收子单元中存储有元数据修改请求,则获取并执行存储的元数据修改请求后,将得到的元数据修改结果存储在获取对应的元数据修改请求的存储单元的发送子单元中。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述处理模块,具体用于轮询每个所述第二存储空间的存储单元的发送子单元;若轮询到的发送子单元存储有元数据修改结果,获取存储的元数据修改结果。
结合第二方面、第二方面的第一种可能的实现方式、第二方面的第二种可能的实现方式或第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述存储模块,还用于将所述节点设备的心跳信息存储在位于每个所述第一存储空间、且与所述ID信息对应的存储单元中;
所述处理模块,具体用于:
轮询每个所述第一存储空间的存储单元,并查看轮询到的存储单元中是否存储所述集群锁信息;
若轮询到的存储单元中未存储所述集群锁信息,则竞争到所述集群锁信息,并存储在所述ID信息对应的所述第一存储空间的存储单元中;
若轮询到的存储空间中存储有所述集群锁信息,查看轮询到的存储空间中存储的心跳信息是否超时,若超时,则竞争到所述集群锁信息,并存储在所述ID信息对应的所述第一存储空间的存储单元中;若未超时,则未竞争到所述集群锁信息。
第三方面,一种节点设备,应用于集群中,所述集群包括至少两个所述节点设备,所述集群与存储区域网络SAN连接,所述SAN包括至少一个逻辑单元LUN,每个所述LUN包含第一存储空间和第二存储空间,每个所述节点设备包括:
存储器,用于根据获取到的元数据修改请求确定需要修改元数据的LUN,将获取到的元数据修改请求存储在位于确定出的LUN包含的第二存储空间、且与自身所在的节点设备的标识ID信息对应的存储单元中;
处理器,用于在所述第一存储空间中竞争所述集群锁信息,以及轮询每个所述第二存储空间的存储单元;若竞争到所述集群锁信息、且轮询到的存储单元中存储有元数据修改请求,则获取并执行存储的元数据修改请求后,将得到的元数据修改结果存储在获取对应的元数据修改请求的存储单元中;若轮询到的存储单元存储元数据修改结果,获取存储的元数据修改结果。
结合第三方面,在第一种可能的实现方式中,所述存储器,具体用于:
所述节点设备启动后,从一个所述第一存储空间包含的空闲的存储单元中选取任意一个存储单元、地址最小的存储单元或者地址最大的存储单元;
将选取的存储单元的ID信息作为所述节点设备的ID信息。
结合第三方面或者第三方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第二存储空间的每个存储单元包括接收子单元和发送子单元;
所述存储器,具体用于将获取到的元数据修改请求存储在位于确定出的LUN包含的第二存储空间、且与所述ID信息对应的存储单元的接收子单元中;
所述处理器,具体用于在所述第一存储空间中竞争集群锁信息,以及轮询每个所述第二存储空间的存储单元中的接收子单元;若竞争到所述集群锁信息、且轮询到的接收子单元中存储有元数据修改请求,则获取并执行存储的元数据修改请求后,将得到的元数据修改结果存储在获取对应的元数据修改请求的存储单元的发送子单元中。
结合第三方面的第二种可能的实现方式,在第三种可能的实现方式中,所述处理器,具体用于轮询每个所述第二存储空间的存储单元的发送子单元;若轮询到的发送子单元存储有元数据修改结果,获取存储的元数据修改结果。
结合第三方面、第三方面的第一种可能的实现方式、第三方面的第二种可能的实现方式或第三方面的第三种可能的实现方式,在第四种可能的实现方式中,所述存储器,还用于将所述节点设备的心跳信息存储在位于每个所述第一存储空间、且与所述ID信息对应的存储单元中;
所述处理器,具体用于:
轮询每个所述第一存储空间的存储单元,并查看轮询到的存储单元中是否存储所述集群锁信息;
若轮询到的存储单元中未存储所述集群锁信息,则竞争到所述集群锁信息,并存储在所述ID信息对应的所述第一存储空间的存储单元中;
若轮询到的存储空间中存储有所述集群锁信息,查看轮询到的存储空间中存储的心跳信息是否超时,若超时,则竞争到所述集群锁信息,并存储在所述ID信息对应的所述第一存储空间的存储单元中;若未超时,则未竞争到所述集群锁信息。
根据第一方面提供的基于集群的元数据修改方法、第二方面提供的元数据修改装置或者第三方面提供的节点设备,集群中的每个节点设备都可以获取元数据修改请求,将获取到的元数据修改请求存储在第二存储空间对应的存储单元中;还可以在第一存储空间中竞争集群锁信息,以及轮询第二存储空间的存储单元,若竞争到集群锁信息、且轮询到的存储单元中存储有元数据修改请求,则可以获取元数据修改请求并执行,再将得到的元数据修改结果存储在第二存储空间对应的存储单元中,若轮询到的存储单元存储有元数据修改结果,获取存储的元数据修改结果;可见,集群中节点设备之间的通信不再是基于控制面进行的,而是通过LUN中的第一存储空间和第二存储空间实现的,集群中节点设备之间在竞争集群锁时是基于LUN中的第一存储空间进行通信的,最终获取到的集群锁也是存储在LUN中的第一存储空间的,集群中节点设备之间在进行元数据修改时是基于LUN中的第二存储空间进行通信的,元数据修改请求以及元数据修改结果都是存储在LUN中的第二存储空间的,即使集群中节点设备之间的网络出现故障,集群中节点设备之间不能通过网络通信,仍可以通过LUN中的第一存储空间和第二存储空间正常通信,从而可以确保元数据修改的正确性。
附图说明
图1为现有技术中第一种卷管理方式的示意图;
图2为现有技术中第二种卷管理方式的示意图;
图3为本发明实施例中基于集群的元数据修改方法的应用场景的示意图;
图4为本发明实施例中基于集群的元数据修改方法的流程图;
图5为本发明实施例中第二存储空间的每个存储单元的结构示意图;
图6为本发明实施例中基于集群的元数据装置的结构示意图;
图7为本发明实施例中节点设备的结构示意图。
具体实施方式
针对现有的元数据修改方法中一旦网络出现故障无法保证元数据修改的正确性的问题,发明人经研究发现,出现该问题的原因是,一旦出现网络故障,节点之间无法进行通信,从而影响元数据修改的正确性。因此,本发明实施例提供一种基于集群的元数据修改方法,如图3所示,集群包括至少两个节点设备,集群与SAN连接,SAN包括至少一个LUN,每个LUN包含第一存储空间和第二存储空间,针对每个节点设备,该方法的流程如图4所示,执行步骤如下:
S40:根据获取到的元数据修改请求确定需要修改元数据的LUN,将获取到的元数据修改请求存储在位于确定出的LUN包含的第二存储空间、且与当前节点设备的标识(Identification,ID)信息对应的存储单元中。
基于集群的卷管理中涉及到元数据修改的操作有创建卷、删除卷、扩容卷、减容卷等。
当前节点设备可以在自身产生元数据修改请求,也可以从设备接口接收到元数据修改请求。获取到元数据修改请求之后,根据其中携带的需要修改元数据的LUN的信息就可以确定需要修改元数据的LUN,将该元数据修改请求存储在位于确定出的LUN包含的第二存储空间、且与当前节点设备的ID信息对应的存储单元中。
其中,第二存储空间是LUN上的一段区域,可以将第二存储空间等分后得到存储单元,这样当前节点设备只要根据ID信息和每个存储单元的大小就可以计算在第二存储空间中的偏移量,从而找到对应的存储单元。
S41:在第一存储空间中竞争集群锁信息,以及轮询每个第二存储空间的存储单元。
S40与S41并没有严格的先后执行顺序,可以同时执行,也可以先执行S40,再执行S41,当然也可以先执行S41,再执行S40。
S42:若竞争到集群锁信息、且轮询到的存储单元中存储有元数据修改请求,获取并执行存储的元数据修改请求后,将得到的元数据修改结果存储在获取对应的元数据修改请求的存储单元中。
当前节点设备在获取到集群锁信息后,一旦轮询到存储单元中存储有元数据修改请求,就可以获取并执行该元数据修改请求了。
第一存储空间是LUN上的一段区域,可以将第一存储空间进行等分后得到存储单元,这样当前节点设备只要根据预先获取的ID信息和每个存储单元的大小就可以计算在第一存储空间中的偏移量,从而找到对应的存储单元。
S43:若轮询到的存储单元存储有元数据修改结果,获取存储的元数据修改结果。
当前节点设备轮询到与接收到的元数据修改请求对应的元数据修改结果时,获取该元数据修改结果,这样就完成了处理一个元数据修改请求的流程。
S42与S43并没有严格的先后执行顺序,可以同时执行,也可以先执行S42,再执行S43,当然也可以先执行S43,再执行S42。
该方案中,集群中节点设备之间的通信不再是基于控制面进行的,而是通过LUN中的第一存储空间和第二存储空间实现的,集群中节点设备之间在竞争集群锁时是基于LUN中的第一存储空间进行通信的,最终获取到的集群锁也是存储在LUN中的第一存储空间的,集群中节点设备之间在进行元数据修改时是基于LUN中的第二存储空间进行通信的,元数据修改请求以及元数据修改结果都是存储在LUN中的第二存储空间的,即使集群中节点设备之间的网络出现故障,集群中节点设备之间不能通过网络通信,仍可以通过LUN中的第一存储空间和第二存储空间正常通信,从而可以确保元数据修改的正确性。
具体的,上述S40中的当前节点设备获取当前节点设备的ID信息,具体包括:
当前节点设备启动后,从一个第一存储空间包含的空闲的存储单元中选取任意一个存储单元、地址最小的存储单元或者地址最大的存储单元;
将选取的存储单元的ID信息作为当前节点设备的ID信息。
如图5所示,第二存储空间的每个存储单元包括接收子单元和发送子单元,并且接收子单元和发送子单元大小相等。
具体的,上述S40中的当前节点设备将获取到的元数据修改请求存储在位于确定出的LUN包含的第二存储空间、且与当前节点设备的ID信息对应的存储单元中,具体包括:当前节点设备将获取到的元数据修改请求存储在位于确定出的LUN包含的第二存储空间、且与ID信息对应的存储单元的接收子单元中。
具体的,上述S41中的当前节点设备在第一存储空间中竞争集群锁信息,以及轮询每个第二存储空间的存储单元中的接收子单元;
若当前节点设备竞争到集群锁信息、且轮询到的接收子单元中存储有元数据修改请求,则获取并执行存储的元数据修改请求后,将得到的元数据修改结果存储在获取对应的元数据修改请求的存储单元的发送子单元中。
具体的,上述S41中可以是当前节点设备轮询每个第二存储空间的存储单元的发送子单元;
若轮询到的发送子单元存储有元数据修改结果,获取存储的元数据修改结果。
可选的,上述基于集群的元数据修改方法还包括:当前节点设备将当前节点设备的心跳信息存储在位于每个第一存储空间、且与ID信息对应的存储单元中。
当前节点设备启动后,可以一定的时间周期将自身的心跳信息存储在位于每个第一存储空间、与前节点设备的ID信息对应的存储单元中,心跳信息中会携带时间信息,来表明该心跳信息生成的时间。
上述S41中的当前节点设备在第一存储空间中竞争集群锁信息,具体包括:
当前节点设备轮询每个第一存储空间的存储单元,并查看轮询到的存储单元中是否存储集群锁信息;
若轮询到的存储单元中未存储集群锁信息,则竞争到集群锁信息,并存储在ID信息对应的第一存储空间的存储单元中;
若轮询到的存储空间中存储有集群锁信息,查看轮询到的存储空间中存储的心跳信息是否超时,若超时,则竞争到集群锁信息,并存储在ID信息对应的第一存储空间的存储单元中;若未超时,则未竞争到集群锁信息。
当前节点设备可以去竞争集群锁,竞争到集群锁后可以执行元数据修改请求,并将得到的元数据修改结果存储在相应第二存储空间的存储单元中。在竞争集群锁的过程中,若轮询到的第一存储空间的存储单元中存储了集群锁,就可以去查看该存储单元中的心跳信息,根据心跳信息中携带的时间信息与当前时间信息的差值来确定心跳信息是否超时,若超时就可以获取到该集群锁信息。
由于集群锁只有一个,所以只有获取到集群锁的节点设备才能执行元数据修改请求,这样就可以保证元数据修改的正确性,同时由于每个节点设备都会轮询每个第一存储空间的存储单元,一旦获取到集群锁的节点设备故障后,其他的节点设备可以获取到集群锁,继续执行元数据修改请求,完成元数据修改请。
可以对第一存储空间、第二存储空间命名以及第二存储空间的存储单元中的发送子单元和接收子单元命名,例如,将第一存储空间命名为租约(Lease)文件、第二存储空间命名为邮箱(Mailbox)文件、第二存储空间的存储单元中的发送子单元命名为收件箱(Inbox)文件、第二存储空间的存储单元中的接收子单元命名为发件箱(Outbox)文件。
由于Mailbox文件中的Inbox文件和Outbox文件大小相等,所以节点设备可以根据ID信息和Inbox文件(或者Outbox文件)的大小计算偏移量找到对应的Inbox文件和Outbox文件。为了提高节点设备并行处理的元数据修改请求的个数,Inbox文件和Outbox文件中可以存放多条元数据修改请求。
节点设备既可以将获取到的元数据修改请求放入对应的Inbox中,还可以到对应的Outbox中获取元数据处理结果,从而完成一次元数据修改的流程。
基于同一发明构思,本发明实施例提供一种基于集群的元数据修改装置,应用于如图3所示的集群包括的至少两个节点设备中,该装置的结构如图6所示,包括:
存储模块60,用于根据获取到的元数据修改请求确定需要修改元数据的LUN,将获取到的元数据修改请求存储在位于确定出的LUN包含的第二存储空间、且与自身所在的节点设备的ID信息对应的存储单元中。
处理模块61,用于第一存储空间中竞争集群锁信息,以及轮询每个第二存储空间的存储单元;若竞争到集群锁信息、且轮询到的存储单元中存储有元数据修改请求,则获取并执行存储的元数据修改请求后,将得到的元数据修改结果存储在获取对应的元数据修改请求的存储单元中;若轮询模块轮询到的存储单元存储元数据修改结果,获取存储的元数据修改结果。
具体的,上述存储模块60,具体用于:
节点设备启动后,从一个第一存储空间包含的空闲的存储单元中选取任意一个存储单元、地址最小的存储单元或者地址最大的存储单元;
将选取的存储单元的ID信息作为节点设备的ID信息。
具体的,第二存储空间的每个存储单元包括接收子单元和发送子单元;
上述存储模块60,具体用于将获取到的元数据修改请求存储在位于确定出的LUN包含的第二存储空间、且与ID信息对应的存储单元的接收子单元中.
上述处理模块61,具体用于第一存储空间中竞争集群锁信息,以及轮询每个第二存储空间的存储单元中的接收子单元;若竞争到集群锁信息、且轮询到的接收子单元中存储有元数据修改请求,则获取并执行存储的元数据修改请求后,将得到的元数据修改结果存储在获取对应的元数据修改请求的存储单元的发送子单元中。
具体的,上述处理模块61,具体用于轮询每个第二存储空间的存储单元的发送子单元;若轮询到的发送子单元存储有元数据修改结果,获取存储的元数据修改结果。
可选的,上述存储模块60,还用于将节点设备的心跳信息存储在位于每个第一存储空间、且与ID信息对应的存储单元中。
处理模块61,具体用于轮询每个第一存储空间的存储单元,并查看轮询到的存储单元中是否存储集群锁信息;
若轮询到的存储单元中未存储集群锁信息,则竞争到集群锁信息,并存储在ID信息对应的第一存储空间的存储单元中;
若轮询到的存储空间中存储有集群锁信息,查看轮询到的存储空间中存储的心跳信息是否超时,若超时,则竞争到集群锁信息,并存储在ID信息对应的第一存储空间的存储单元中;若未超时,则未竞争到集群锁信息。
基于同一发明构思,本发明实施例提供一种节点设备,应用于如图3所示的集群中,该节点设备的结构如图7所示,包括:
存储器70,用于根据获取到的元数据修改请求确定需要修改元数据的LUN,将获取到的元数据修改请求存储在位于确定出的LUN包含的第二存储空间、且与自身所在的节点设备的ID信息对应的存储单元中。
处理器71,用于第一存储空间中竞争集群锁信息,以及轮询每个第二存储空间的存储单元;若进行到集群锁信息、且轮询到的存储单元中存储有元数据修改请求,则获取并执行存储的元数据修改请求后,将得到的元数据修改结果存储在获取对应的元数据修改请求的存储单元中;若轮询到的存储单元存储元数据修改结果,获取存储的元数据修改结果。
存储器70与处理器71之间通过总线连接。
具体的,上述存储器70,具体用于:
节点设备启动后,从一个第一存储空间包含的空闲的存储单元中选取任意一个存储单元、地址最小的存储单元或者地址最大的存储单元;
将选取的存储单元的ID信息作为节点设备的ID信息。
具体的,第二存储空间的每个存储单元包括接收子单元和发送子单元。
上述存储器70,具体用于将获取到的元数据修改请求存储在位于确定出的LUN包含的第二存储空间、且与ID信息对应的存储单元的接收子单元中。
上述处理器71,具体用于第一存储空间中竞争集群锁信息,以及轮询每个第二存储空间的存储单元中的接收子单元;若竞争到集群锁信息、且轮询到的接收子单元中存储有元数据修改请求,则获取并执行存储的元数据修改请求后,将得到的元数据修改结果存储在获取对应的元数据修改请求的存储单元的发送子单元中。
具体的,上述处理器71,具体用于轮询每个第二存储空间的存储单元的发送子单元;若轮询到的发送子单元存储有元数据修改结果,获取存储的元数据修改结果。
可选的,上述存储器70,还用于将节点设备的心跳信息存储在位于每个第一存储空间、且与ID信息对应的存储单元中。
上述处理器71,具体用于:轮询每个第一存储空间的存储单元,并查看轮询到的存储单元中是否存储集群锁信息;
若轮询到的存储单元中未存储集群锁信息,则竞争到集群锁信息,并存储在ID信息对应的第一存储空间的存储单元中;
若轮询到的存储空间中存储有集群锁信息,查看轮询到的存储空间中存储的心跳信息是否超时,若超时,则竞争到集群锁信息,并存储在ID信息对应的第一存储空间的存储单元中;若未超时,则未竞争到集群锁信息。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的可选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括可选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (15)
1.一种基于集群的元数据修改方法,所述集群包括至少两个节点设备,所述集群与存储区域网络SAN连接,所述SAN包括至少一个逻辑单元LUN,其特征在于,每个所述LUN包含第一存储空间和第二存储空间,针对每个所述节点设备,所述方法包括:
当前节点设备根据获取到的元数据修改请求确定需要修改元数据的LUN,将获取到的元数据修改请求存储在位于确定出的LUN包含的第二存储空间、且与所述当前节点设备的标识ID信息对应的存储单元中;
所述当前节点设备在所述第一存储空间中竞争集群锁信息,以及轮询每个所述第二存储空间的存储单元;
若所述当前节点设备竞争到所述集群锁信息、且轮询到的存储单元中存储有元数据修改请求,则获取并执行存储的元数据修改请求后,将得到的元数据修改结果存储在获取对应的元数据修改请求的存储单元中;
若所述当前节点设备轮询到的存储单元存储元数据修改结果,获取存储的元数据修改结果。
2.如权利要求1所述的方法,其特征在于,所述当前节点设备获取所述当前节点设备的ID信息,具体包括:
所述当前节点设备启动后,从一个所述第一存储空间包含的空闲的存储单元中选取任意一个存储单元、地址最小的存储单元或者地址最大的存储单元;
将选取的存储单元的ID信息作为所述当前节点设备的ID信息。
3.如权利要求1-2任一所述的方法,其特征在于,所述第二存储空间的每个存储单元包括接收子单元和发送子单元;
所述当前节点设备将获取到的元数据修改请求存储在位于确定出的LUN包含的第二存储空间、且与所述ID信息对应的存储单元的接收子单元中;
所述当前节点设备在所述第一存储空间中竞争集群锁信息,以及轮询每个所述第二存储空间的存储单元中的接收子单元;
若所述当前节点设备竞争到所述集群锁信息、且轮询到的接收子单元中存储有元数据修改请求,则获取并执行存储的元数据修改请求后,将得到的元数据修改结果存储在获取对应的元数据修改请求的存储单元的发送子单元中。
4.如权利要求3所述的方法,其特征在于,所述当前节点设备轮询每个所述第二存储空间的存储单元的发送子单元;
若轮询到的发送子单元存储有元数据修改结果,获取存储的元数据修改结果。
5.如权利要求1-4任一所述的方法,其特征在于,还包括:
所述当前节点设备将所述当前节点设备的心跳信息存储在位于每个所述第一存储空间、且与所述ID信息对应的存储单元中;
所述当前节点设备在所述第一存储空间中竞争集群锁信息,具体包括:
所述当前节点设备轮询每个所述第一存储空间的存储单元,并查看轮询到的存储单元中是否存储所述集群锁信息;
若轮询到的存储单元中未存储所述集群锁信息,则竞争到所述集群锁信息,并存储在所述ID信息对应的所述第一存储空间的存储单元中;
若轮询到的存储空间中存储有所述集群锁信息,查看轮询到的存储空间中存储的心跳信息是否超时,若超时,则竞争到所述集群锁信息,并存储在所述ID信息对应的所述第一存储空间的存储单元中;若未超时,则未竞争到所述集群锁信息。
6.一种元数据修改装置,应用于集群包括的至少两个节点设备中,所述集群与存储区域网络SAN连接,所述SAN包括至少一个逻辑单元LUN,其特征在于,每个所述LUN包含第一存储空间和第二存储空间,所述装置包括:
存储模块,用于根据获取到的元数据修改请求确定需要修改元数据的LUN,将获取到的元数据修改请求存储在位于确定出的LUN包含的第二存储空间、且与自身所在的节点设备的标识ID信息对应的存储单元中;
处理模块,用于在所述第一存储空间中竞争所述集群锁信息,以及轮询每个所述第二存储空间的存储单元;若竞争到集群锁信息、且轮询到的存储单元中存储有元数据修改请求,则获取并执行存储的元数据修改请求后,将得到的元数据修改结果存储在获取对应的元数据修改请求的存储单元中;若所述轮询模块轮询到的存储单元存储元数据修改结果,获取存储的元数据修改结果。
7.如权利要求6所述的装置,其特征在于,所述存储模块,具体用于:
所述节点设备启动后,从一个所述第一存储空间包含的空闲的存储单元中选取任意一个存储单元、地址最小的存储单元或者地址最大的存储单元;
将选取的存储单元的ID信息作为所述节点设备的ID信息。
8.如权利要求6-7任一所述的装置,其特征在于,所述第二存储空间的每个存储单元包括接收子单元和发送子单元;
所述存储模块,具体用于将获取到的元数据修改请求存储在位于确定出的LUN包含的第二存储空间、且与所述ID信息对应的存储单元的接收子单元中;
所述处理模块,具体用于在所述第一存储空间中竞争集群锁信息,以及轮询每个所述第二存储空间的存储单元中的接收子单元;若竞争到所述集群锁信息、且轮询到的接收子单元中存储有元数据修改请求,则获取并执行存储的元数据修改请求后,将得到的元数据修改结果存储在获取对应的元数据修改请求的存储单元的发送子单元中。
9.如权利要求8所述的装置,其特征在于,所述处理模块,具体用于轮询每个所述第二存储空间的存储单元的发送子单元;若轮询到的发送子单元存储有元数据修改结果,获取存储的元数据修改结果。
10.如权利要求6-9任一所述的装置,其特征在于,所述存储模块,还用于将所述节点设备的心跳信息存储在位于每个所述第一存储空间、且与所述ID信息对应的存储单元中;
所述处理模块,具体用于:
轮询每个所述第一存储空间的存储单元,并查看轮询到的存储单元中是否存储所述集群锁信息;
若轮询到的存储单元中未存储所述集群锁信息,则竞争到所述集群锁信息,并存储在所述ID信息对应的所述第一存储空间的存储单元中;
若轮询到的存储空间中存储有所述集群锁信息,查看轮询到的存储空间中存储的心跳信息是否超时,若超时,则竞争到所述集群锁信息,并存储在所述ID信息对应的所述第一存储空间的存储单元中;若未超时,则未竞争到所述集群锁信息。
11.一种节点设备,应用于集群中,所述集群包括至少两个所述节点设备,所述集群与存储区域网络SAN连接,所述SAN包括至少一个逻辑单元LUN,其特征在于,每个所述LUN包含第一存储空间和第二存储空间,每个所述节点设备包括:
存储器,用于根据获取到的元数据修改请求确定需要修改元数据的LUN,将获取到的元数据修改请求存储在位于确定出的LUN包含的第二存储空间、且与自身所在的节点设备的标识ID信息对应的存储单元中;
处理器,用于在所述第一存储空间中竞争所述集群锁信息,以及轮询每个所述第二存储空间的存储单元;若竞争到所述集群锁信息、且轮询到的存储单元中存储有元数据修改请求,则获取并执行存储的元数据修改请求后,将得到的元数据修改结果存储在获取对应的元数据修改请求的存储单元中;若轮询到的存储单元存储元数据修改结果,获取存储的元数据修改结果。
12.如权利要求11所述的节点设备,其特征在于,所述存储器,具体用于:
所述节点设备启动后,从一个所述第一存储空间包含的空闲的存储单元中选取任意一个存储单元、地址最小的存储单元或者地址最大的存储单元;
将选取的存储单元的ID信息作为所述节点设备的ID信息。
13.如权利要求11-12任一所述的节点设备,其特征在于,所述第二存储空间的每个存储单元包括接收子单元和发送子单元;
所述存储器,具体用于将获取到的元数据修改请求存储在位于确定出的LUN包含的第二存储空间、且与所述ID信息对应的存储单元的接收子单元中;
所述处理器,具体用于在所述第一存储空间中竞争集群锁信息,以及轮询每个所述第二存储空间的存储单元中的接收子单元;若竞争到所述集群锁信息、且轮询到的接收子单元中存储有元数据修改请求,则获取并执行存储的元数据修改请求后,将得到的元数据修改结果存储在获取对应的元数据修改请求的存储单元的发送子单元中。
14.如权利要求13所述的节点设备,其特征在于,所述处理器,具体用于轮询每个所述第二存储空间的存储单元的发送子单元;若轮询到的发送子单元存储有元数据修改结果,获取存储的元数据修改结果。
15.如权利要求11-14任一所述的节点设备,其特征在于,所述存储器,还用于将所述节点设备的心跳信息存储在位于每个所述第一存储空间、且与所述ID信息对应的存储单元中;
所述处理器,具体用于:
轮询每个所述第一存储空间的存储单元,并查看轮询到的存储单元中是否存储所述集群锁信息;
若轮询到的存储单元中未存储所述集群锁信息,则竞争到所述集群锁信息,并存储在所述ID信息对应的所述第一存储空间的存储单元中;
若轮询到的存储空间中存储有所述集群锁信息,查看轮询到的存储空间中存储的心跳信息是否超时,若超时,则竞争到所述集群锁信息,并存储在所述ID信息对应的所述第一存储空间的存储单元中;若未超时,则未竞争到所述集群锁信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310637339.8A CN103678537B (zh) | 2013-12-02 | 2013-12-02 | 基于集群的元数据修改方法、装置及节点设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310637339.8A CN103678537B (zh) | 2013-12-02 | 2013-12-02 | 基于集群的元数据修改方法、装置及节点设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103678537A true CN103678537A (zh) | 2014-03-26 |
CN103678537B CN103678537B (zh) | 2017-06-20 |
Family
ID=50316082
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310637339.8A Active CN103678537B (zh) | 2013-12-02 | 2013-12-02 | 基于集群的元数据修改方法、装置及节点设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103678537B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106570091A (zh) * | 2016-10-20 | 2017-04-19 | 北京鲸鲨软件科技有限公司 | 一种增强分布式集群文件系统的高可用性的方法 |
CN106909599A (zh) * | 2016-07-04 | 2017-06-30 | 阿里巴巴集团控股有限公司 | 一种集群系统、消息处理方法及装置 |
CN113055476A (zh) * | 2021-03-12 | 2021-06-29 | 杭州网易再顾科技有限公司 | 一种集群式服务系统、方法、介质和计算设备 |
CN117390078A (zh) * | 2023-12-13 | 2024-01-12 | 中国对外经济贸易信托有限公司 | 数据处理方法、装置、存储介质和计算机设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7660783B2 (en) * | 2006-09-27 | 2010-02-09 | Buzzmetrics, Inc. | System and method of ad-hoc analysis of data |
CN101354726B (zh) * | 2008-09-17 | 2010-09-29 | 中国科学院计算技术研究所 | 一种机群文件系统的内存元数据管理方法 |
KR101625913B1 (ko) * | 2009-12-21 | 2016-05-31 | 한국전자통신연구원 | 비대칭 클러스터 파일시스템의 메타데이터 관리 장치 및 방법 |
CN102567342A (zh) * | 2010-12-15 | 2012-07-11 | 沈阳新邮通信设备有限公司 | 一种音乐随声听搜索信息处理方法 |
-
2013
- 2013-12-02 CN CN201310637339.8A patent/CN103678537B/zh active Active
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106909599A (zh) * | 2016-07-04 | 2017-06-30 | 阿里巴巴集团控股有限公司 | 一种集群系统、消息处理方法及装置 |
CN106570091A (zh) * | 2016-10-20 | 2017-04-19 | 北京鲸鲨软件科技有限公司 | 一种增强分布式集群文件系统的高可用性的方法 |
CN113055476A (zh) * | 2021-03-12 | 2021-06-29 | 杭州网易再顾科技有限公司 | 一种集群式服务系统、方法、介质和计算设备 |
CN113055476B (zh) * | 2021-03-12 | 2022-07-26 | 杭州网易再顾科技有限公司 | 一种集群式服务系统、方法、介质和计算设备 |
CN117390078A (zh) * | 2023-12-13 | 2024-01-12 | 中国对外经济贸易信托有限公司 | 数据处理方法、装置、存储介质和计算机设备 |
CN117390078B (zh) * | 2023-12-13 | 2024-02-09 | 中国对外经济贸易信托有限公司 | 数据处理方法、装置、存储介质和计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN103678537B (zh) | 2017-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107944566B (zh) | 一种机器学习方法、主节点、工作节点及系统 | |
CN111694649A (zh) | 资源调度方法、装置、计算机设备和存储介质 | |
CN103678537A (zh) | 基于集群的元数据修改方法、装置及节点设备 | |
CN108733459A (zh) | 一种分布式定时的方法、服务器以及系统 | |
CN106385377B (zh) | 一种信息处理方法和系统 | |
CN112905314A (zh) | 异步处理方法、装置、电子设备、存储介质、及路侧设备 | |
CN106412088B (zh) | 一种数据同步方法及终端 | |
CN109992415B (zh) | 一种容器调度方法及调度系统 | |
CN113032093B (zh) | 分布式计算方法、装置及平台 | |
CN113727429A (zh) | 跨网络组的时钟同步方法、装置、存储介质和终端 | |
CN113032092B (zh) | 分布式计算方法、装置及平台 | |
CN112817992B (zh) | 执行更改任务的方法、装置、电子设备以及可读存储介质 | |
US9239720B2 (en) | Device and method for generating application model based on layered structure | |
CN108076029B (zh) | 排班管理系统的搭建方法及装置 | |
CN114662777A (zh) | 光伏组件串线排布确定方法、装置、电子设备及存储介质 | |
CN114579311A (zh) | 执行分布式计算任务的方法、装置、设备以及存储介质 | |
CN113504981A (zh) | 任务调度方法和装置、存储介质及电子设备 | |
CN106776035B (zh) | 实现跨系统多单据算法的对接方法、系统及请求异构系统 | |
CN108234615B (zh) | 表项处理方法、主板及主网络设备 | |
CN103220187A (zh) | 一种三层端口状态的检测方法和装置 | |
CN109032774A (zh) | 应用程序恢复方法与装置 | |
CN109039971A (zh) | 一种数据发送方法及装置 | |
CN109308327A (zh) | 基于子图模型兼容点中心模型的图计算方法装置介质设备 | |
CN103051528A (zh) | 一种用于总线的报文快速分发方法及装置 | |
US20230376339A1 (en) | Methods and apparatus for managing task timeouts within distributed computing networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |