CN103916467B - 一种元数据集群中负载转移方法及系统 - Google Patents
一种元数据集群中负载转移方法及系统 Download PDFInfo
- Publication number
- CN103916467B CN103916467B CN201410114579.4A CN201410114579A CN103916467B CN 103916467 B CN103916467 B CN 103916467B CN 201410114579 A CN201410114579 A CN 201410114579A CN 103916467 B CN103916467 B CN 103916467B
- Authority
- CN
- China
- Prior art keywords
- long
- range
- subdirectory
- meta data
- module
- 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.)
- Expired - Fee Related
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种元数据集群中负载转移方法及系统,涉及一种元数据集群中多个服务器之间元数据负载转移方法。该方法包括:建立至少两个元数据服务器,用于建立负载均衡模块、远程子目录预申请模块、远程子目录创建模块、远程子目录初始化模块、远程子目录删除模块、远程子目录异步释放模块、远程子目录对象回收模块;建立一个客户端,将目录创建请求发送到父目录所在的元数据服务器,获取远程子目录对象标识,并添加到该父目录的目录项中;将目录删除请求发送到该父目录所在的元数据服务器,从该父目录的目录项中删除该远程子目录对象标识。本发明仅需本地一致性保证机制即可,无需使用分布式一致性保证机制,有效提高远程子目录创建、删除性能。
Description
技术领域
本发明涉及集群文件系统的元数据负载分布技术,特别涉及一种元数据集群中多个服务器之间元数据负载转移方法。
背景技术
在大规模集群文件系统中,元数据与数据服务分离已经成为了一种趋势。一方面,数据访问不必通过元数据服务器,而是采用带外方式直接访问存储设备,从而获取较高的数据访问性能;另一方面,元数据服务器专门提供元数据服务,卸载了数据访问负载,从而单台元数据服务器可以支持更高的客户端访问性能,管理更多的存储设备,支持更大的系统规模扩展。然而,随着系统规模的不断扩大,单台元数据服务器逐渐成为制约系统扩展的瓶颈。为了进一步提升集群文件系统的扩展能力,通常采用多台元数据服务器构成元数据服务器集群,以分散元数据负载,支持通过增加元数据服务器数量达到集群文件系统的横向扩展。
以目录为粒度、把一些子目录的负载转移到其他元数据服务器是元数据负载分散的一种常用方法,被Lustre、BWFS等集群文件系统所采用。元数据负载的分布是在子目录的创建过程中,以创建远程子目录的方式将子目录元数据负载转移到其他的元数据服务器,即选择父目录所在的元数据服务器之外的元数据服务器进行子目录创建,该子目录称为远程子目录。远程子目录的创建和删除过程涉及到多个元数据服务器,需要多次的网络交互开销和一致性维护开销,增加了系统实现复杂度,对元数据服务性能,尤其对远程子目录创建、删除延迟性能产生了较大影响。
以典型的Lustre文件系统中基于子目录的负载转移方法为例,分析其远程子目录的创建和删除过程的开销。
Lustre文件系统远程子目录创建步骤:
步骤1,客户端首先选择一个负载转移目标元数据服务器RMDS(Remote MDS),为待创建的子目录分配FID,FID唯一标识Lustre文件系统中的一个文件或目录对象;然后发送远程子目录创建请求MKDIR到父目录所在的元数据服务器MMDS(Master MDS),请求参数中包含客户端已分配的子目录FID。
步骤2,父目录所在的元数据服务器MMDS创建一个分布式事务,在所述事务中完成负载转移目标元数据服务器RMDS根据FID创建子目录对象、设置相应对象属性并同步磁盘、父目录所在的元数据服务器MMDS在父目录中添加子目录项并同步磁盘的操作。所述分布式事务涉及到多个元数据服务器,为保证一致性需要多次的网络交互和磁盘同步开销。
Lustre文件系统远程子目录删除步骤:
步骤1,客户端发送远程子目录删除请求RMDIR到父目录所在的元数据服务器MMDS。
步骤2,父目录所在的元数据服务器MMDS创建一个分布式事务,在所述事务中完成父目录所在元数据服务器MMDS在父目录中删除子目录项并同步、负载转移目标元数据服务器RMDS释放子目录对象并同步的操作。所述分布式事务涉及到多个元数据服务器,为保证一致性需要多次的网络交互和磁盘同步开销。
可见,Lustre采用分布式事务日志记录和磁盘同步写的方式保证涉及到多个元数据服务器的远程子目录创建、删除操作的一致性。然而,分布式事务需要多次的网络交互和磁盘同步开销,对操作延迟影响较大。
发明专利“分布式文件系统虚拟目录组织及命名空间管理的方法”公开了一种分布式文件系统虚拟目录组织及命名空间管理的方法,包括以下步骤:根据用户查询请求和上下文,利用文件系统中文件元数据,以关系代数的方式按需计算和动态生成虚拟目录,以虚拟文件视图的层现形式为用户提供满足当前上下文的文件服务;在虚拟目录命名空间中进行文件创建、删除、移动、重命名、打开、关闭、读、写、截断的文件操作,以及进行上下文目录的创建、删除和重命名的操作。该专利的有益效果为,在大规模海量文件存储系统中引入按需计算和动态生成的虚拟目录,克服了传统层次目录结构无法提供按需服务的缺点,提供了一种高效的文件检索和组织形式。在虚拟目录的组织过程中引入了包含文件属性和上下文的文件元数据,能根据上下文的变化为用户主动提供文件服务。但是该专利引入一种新的分布式文件系统虚拟目录组织和命名空间管理方法,在虚拟目录中进行文件创建、删除、重命名等操作,力求能根据上下文的变化为用户主动提供文件服务。不涉及元数据负载在多元数据服务器之间的分布。
发明专利“一种基于目录划分的元数据分布方法及装置”公开了一种基于目录划分的元数据分布方法,包括以下步骤:获取元数据中的文件名,得到名称文件;对目录进行目录划分,得到多个目录分片文件,并为每个目录分片文件分配一个目录分片号;分别为每个名称文件分配一个目录分片号,将名称文件保存在相应的目录分片文件中;将名称文件存储于当前的目录分片文件中或者将目录分片文件进行分裂,为分裂出的目录分片文件分配目录分片号,将名称文件存储于当前的目录分片文件中或者分裂后的目录分片文件中;根据目录分片号与预定值判断当前的目录分片文件分裂出的目录分片文件的存储位置。该专利提高了系统的并发度,利用了更多并行资源,利用本地性优势,减少对网络带宽的消耗,提升系统的整体性能。但是该发明涉及文件系统目录的划分,将大目录分成多个分片分别进行组织和管理。不涉及跨元数据服务器的分布式的目录创建。
发明专利“分布式文件系统中元数据管理的负载均衡方法及其系统”公开了一种分布式文件系统中元数据管理的负载均衡的方法和系统,当元数据的数据结构即目录树成为热点元数据时,通过采用元数据复制的方式更新目录树的访问热度;当元数据的服务节点的负载均衡度超过预定的数值时,通过采用元数据迁移的方式,将部分工作负载从过载节点迁移到过轻节点上,通过上述两种方式来实现多个元数据服务节点之间的负载均衡。该系统包括信息通讯模块、元数据操作模块、元数据服务节点管理模块、元数据管理模块、元数据策略执行模块以及工作负载采集模块。本发明通过元数据复制和元数据迁移这两种方式,提高了元数据服务资源的利用率,达到了负载均衡的目的,使元数据服务系统可以平滑扩展。但是该发明涉及元数据管理的负载均衡问题,采用元数据复制的方法改善某个元数据服务器成为热点的情况,以及使用负载迁移的方式将负载从一个元数据服务器迁移到另一个元数据服务器以达到负载均衡。不涉及跨元数据服务器的分布式的目录创建。
针对现有技术的不足,我们提出了一种新的元数据集群中负载转移方法将元数据负载分布到不同的元数据服务器,能够避免远程子目录创建、删除操作中为保证一致性而需要的多次的网络交互和磁盘同步开销,提高系统性能。
发明内容
本发明要解决的技术问题是现有技术中集群文件系统在多台元数据服务器间负载分布机制复杂度高、一致性维护开销问题大,提供一种新的元数据负载转移方法,在目录创建和删除过程中不使用分布式事务来保证一致性、无需磁盘的同步等待,在很大程度上提高系统性能、降低系统实现复杂度。
为了达到以上目的,本发明采用了将分布式的远程子目录创建和删除操作转化为本地操作技术方案。
具体的讲,本发明公开一种元数据集群中负载转移方法,包括下列步骤:
建立至少两个元数据服务器和一个客户端,该元数据服务器用于建立负载均衡模块、远程子目录预申请模块、远程子目录创建模块、远程子目录初始化模块、远程子目录删除模块、远程子目录异步释放模块、远程子目录对象回收模块,其中通过该客户端发送创建和删除远程子目录命令,通过该负载均衡模块选择负载转移目标元数据服务器,通过该负载转移目标元数据服务器中的该远程子目录初始化模块创建远程子目录对象并初始化,生成远程子目录对象标识,通过父目录所在的元数据服务器中的该远程子目录预申请模块预申请远程子目录对象标识,根据该远程子目录对象标识,通过该父目录所在的元数据服务器中的该远程子目录创建模块和该远程子目录删除模块进行远程子目录的创建和删除,远程子目录的创建和删除操作仅在该父目录所在的元数据服务器本地进行,无需和该负载转移目标元数据服务器交互,根据该远程子目录对象标识,通过该远程子目录异步释放模块和该远程子目录对象回收模块回收该远程子目录的元数据和数据资源。
所述的元数据集群中负载转移方法,还包括:
通过该负载均衡模块收集并量化元数据服务器的负载和承受能力,通过负载转移条件,判断是否需要进行负载转移,如果需要负载转移,则通过负载均衡策略选择负载转移目标元数据服务器。
所述的元数据集群中负载转移方法,还包括:
该远程子目录预申请模块,用于在该负载转移目标元数据服务器中一次申请多个远程子目录对象标识,该远程子目录预申请模块以元数据服务器序号,索引节点号,索引节点版本号三元组的形式对该远程子目录对象标识进行记录;
该元数据服务器之间通过元数据服务器序号、索引节点号、索引节点版本号三元组的形式进行该远程子目录对象标识的传递,其中元数据服务器序号标识与该元数据服务器序号对应的远程子目录对象所在的负载转移目标元数据服务器。
所述的元数据集群中负载转移方法,还包括:
该远程子目录初始化模块,用于在该负载转移目标元数据服务器申请索引节点,并进行初始化,生成远程子目录对象和远程子目录对象标识,其中该远程子目录对象标识记录在该远程子目录初始化模块中,该客户端根据该远程子目录对象标识访问远程子目录对象。
所述的元数据集群中负载转移方法,还包括:
将待释放的该远程子目录对象标识发送到该远程子目录异步释放模块,通过该远程子目录异步释放模块异步的将多个该远程子目录对象标识一次传递给该负载转移目标元数据服务器上的该远程子目录对象回收模块;
通过该负载转移目标元数据服务器的该远程子目录对象回收模块记录该远程子目录对象标识,通过该远程子目录对象标识查找与其相对应的该负载转移目标元数据服务器的该远程子目录对象,并回收该远程子目录对象的元数据和数据资源。
本发明还公开一种元数据集群中负载转移系统,包括:
至少两个元数据服务器和一个客户端,该元数据服务器用于建立负载均衡模块、远程子目录预申请模块、远程子目录创建模块、远程子目录初始化模块、远程子目录删除模块、远程子目录异步释放模块、远程子目录对象回收模块,其中通过该客户端发送创建和删除远程子目录命令,通过该负载均衡模块选择负载转移目标元数据服务器,通过该负载转移目标元数据服务器中的该远程子目录初始化模块创建远程子目录对象并初始化,生成远程子目录对象标识,通过父目录所在的元数据服务器中的该远程子目录预申请模块预申请远程子目录对象标识,根据该远程子目录对象标识,通过该父目录所在的元数据服务器中的该远程子目录创建模块和该远程子目录删除模块进行远程子目录的创建和删除,远程子目录的创建和删除操作仅在该父目录所在的元数据服务器本地进行,无需和该负载转移目标元数据服务器交互,根据该远程子目录对象标识,通过该远程子目录异步释放模块和该远程子目录对象回收模块回收该远程子目录的元数据和数据资源。
所述的元数据集群中负载转移系统,该负载均衡模块,用于收集并量化元数据服务器的负载和承受能力,通过负载转移条件,判断是否需要进行负载转移,如果需要负载转移,则通过负载均衡策略选择负载转移目标元数据服务器。
所述的元数据集群中负载转移系统,该远程子目录预申请模块,用于在该负载转移目标元数据服务器中一次申请多个远程子目录对象标识,该远程子目录预申请模块以元数据服务器序号,索引节点号,索引节点版本号三元组的形式对该远程子目录对象标识进行记录;
该元数据服务器之间通过元数据服务器序号、索引节点号、索引节点版本号三元组的形式进行该远程子目录对象标识的传递,其中元数据服务器序号标识与其对应的远程子目录对象所在的负载转移目标元数据服务器。
所述的元数据集群中负载转移系统,该远程子目录初始化模块,用于在该负载转移目标元数据服务器申请索引节点,并进行初始化,生成远程子目录对象和远程子目录对象标识,其中该远程子目录对象标识记录在该远程子目录初始化模块中,该客户端根据该远程子目录对象标识访问远程子目录对象。
所述的元数据集群中负载转移系统,还包括:
该远程子目录异步释放模块,用于异步的将多个该远程子目录对象标识一次传递给该负载转移目标元数据服务器上的该远程子目录对象回收模块;
该远程子目录对象回收模块,用于记录该远程子目录对象标识,通过该远程子目录对象标识查找与其相对应的该负载转移目标元数据服务器的该远程子目录对象,并回收该远程子目录对象的元数据和数据资源。
本发明的技术效果为:
能够有效降低远程子目录创建、删除过程中一致性维护开销,提高系统性能。
附图说明
图1为远程子目录创建和删除过程模块图
图2为远程子目录对象申请和释放流程图
其中,附图标记
1 为客户端;
2 为父目录所在的元数据服务器;
21 为负载均衡模块;
22 为远程子目录创建模块;
23 为远程子目录预申请模块;
24 为远程子目录删除模块;
25 为远程子目录异步释放模块;
3 为负载转移目标元数据服务器;
31 为远程子目录初始化模块;
32 为远程子目录对象回收模块;
步骤100为删除远程子目录,
其中包括步骤101、步骤102、步骤103;
步骤200为创建远程子目录,
其中包括步骤201、步骤202、步骤203;
具体实施方式
以下给出本发明的具体实施方式,结合附图对本发明做出了详细描述。
如图1所示,本发明至少包含两个元数据服务器和一个客户端。所述元数据服务器端包含负载均衡模块21、远程子目录创建模块22、远程子目录预申请模块23、远程子目录初始化模块31、远程子目录删除模块24、远程子目录异步释放模块25、远程子目录对象回收模块32。
负载均衡模块21,用于协调不同元数据服务器的负载,选择合适的负载转移目标元数据服务器3。客户端1的目录创建请求到达元数据服务器后,首先经过负载均衡模块21。负载均衡模块21通过收集并量化不同元数据服务器当前的负载和承受能力,根据负载转移条件,判断是否需要进行负载转移。如果需要负载转移,则根据负载均衡策略选择一个合适的目标元数据服务器。
远程子目录创建模块22,用于完成远程子目录的创建,实现负载转移。本模块根据负载均衡模块21选定的负载转移目标元数据服务器3,从远程子目录预申请模块23中获取已预申请到的负载转移目标元数据服务器3上的远程子目录对象标识,并将远程子目录对象标识添加到父目录的目录项中。所述远程子目录创建操作仅涉及到父目录所在元数据服务器,仅需要保证该操作的本地一致性。
远程子目录预申请模块23,在接收并执行目录创建请求之前,预先从负载转移目标元数据服务器3上申请多个可用的远程子目录对象标识,并记录在所述模块中。在执行远程子目录创建请求时,远程子目录创建模块22直接使用所述模块预申请的远程子目录对象标识。在预申请过程中,采用批量申请的方式,多个远程子目录对象标识的预申请仅需要一次一致性维护开销。
远程子目录初始化模块31,元数据服务器预先初始化多个负载转移目标服务器3上的远程子目录对象作为父目录所在的元数据服务器2的远程子目录使用。申请空闲可用的负载转移目标服务器3索引节点inode并进行初始化,设置必要的属性,包括设置类型为目录,专门供父目录所在的元数据服务器1创建远程子目录用。之后生成远程子目录对象标识,并记录在所述模块中,客户端1后续可以直接根据远程子目录对象标识访问该已初始化的远程子目录。所述远程子目录初始化操作仅涉及到负载转移目标元数据服务器3,仅需要保证该操作的本地一致性。
远程子目录删除模块24,用于完成远程子目录的删除。本模块执行删除远程子目录项操作,将待删除的远程子目录对象标识从父目录的目录项中移除,并将被删除的对象标识传递给远程子目录异步释放模块25。所述远程子目录删除操作仅涉及到父目录所在的元数据服务器2,仅需要保证该操作的本地一致性。
远程子目录异步释放模块25,用于异步地释放远程子目录对象标识。当接收到远程子目录删除模块24多个删除的远程子目录对象标识后,本模块异步的将多个删除的远程子目录对象标识一次传递给负载转移目标元数据服务器2上的远程子目录对象回收模块32。在异步释放过程中,采用批量的方式,多个远程子目录对象标识的释放仅需要一次一致性维护开销。
远程子目录对象回收模块32,用于回收负载转移目标元数据服务器3上远程子目录异步释放模块25释放的远程子目录对象标识对应的远程子目录对象及其所占的元数据和数据资源进行释放回收,以供后续的目录或文件创建操作使用。所述远程子目录对象回收操作仅涉及到负载转移目标元数据服务器3,仅需要保证该操作的本地一致性。
本发明主要包括远程子目录的创建和远程子目录的删除两个操作。如图2所示,在负载转移目标元数据服务器3中,通过步骤203初始化远程索引节点,通过步骤202远程索引节点预留缓存,在父目录所在的元数据服务器2中,通过步骤201远程索引节点创建缓存,通过步骤200创建远程子目录;
在父目录所在的元数据服务器2中,通过步骤100删除远程子目录,通过步骤101远程索引节点删除缓存,在负载转移目标元数据服务器3中,通过步骤102远程索引节点回收缓存,通过步骤103释放远程索引节点。
元数据服务器之间以(元数据服务器序号,索引节点号,索引节点版本号)三元组的形式进行远程子目录对象标识传递。
以下为远程子目录的创建和远程子目录的删除的具体步骤:
远程子目录的创建操作
在本操作中,本发明将分布式远程子目录创建过程中的添加目录项和创建目录对象作为两个独立的过程。负载转移目标元数据服务器3端的远程子目录初始化模块31首先预留部分远程子目录,并形成远程子目录对象标识;父目录所在元数据服务器2端的远程子目录预申请模块23在系统空闲时向负载转移目标元数据服务器3预申请部分远程子目录对象标识,并记录到父目录所在元数据服务器2本地;在父目录所在的元数据服务器2需要创建远程子目录时,只需使用上述远程子目录标识在父目录所在的元数据服务器2的远程子目录创建模块22内添加目录项。该方法将分布式的远程子目录创建过程,转化为负载转移目标元数据服务器3端本地的远程子目录初始化和父目录所在的元数据服务器2端本地的远程子目录创建,仅需本地一致性保证机制即可,无需使用复杂的分布式一致性保证机制,无需磁盘同步等待,可有效提高远程子目录创建性能。
远程子目录对象初始化步骤如下:
负载转移目标元数据服务器3端的远程子目录初始化模块31申请多个索引节点,并进行初始化,作为父目录所在的元数据服务器2的远程子目录使用。
远程子目录初始化模块31在负载转移目标元数据服务器3申请若干索引节点,并分别对它们进行初始化。其中包括:设置索引节点的属性如索引节点号、索引节点版本号、目录大小等;设置类型为目录,标识该索引节点为目录;标识为远程,标识该索引节点是为父目录所在的元数据服务器2预留,后续将作为远程子目录对象使用。并且生成远程子目录对象标识,记录在远程子目录初始化模块31中。远程子目录对象经过初始化后,就可以被客户端1根据远程子目录对象标识直接访问。
远程子目录初始化模块31记录所有预留的远程子目录对象标识。远程子目录对象标识包括索引节点号,索引节点版本号。作为一种优选方案,为了节省缓存空间,初始化索引节点时可选择一些连续的索引节点进行预留,并设置相同的索引节点版本号。然后以扩展段紧凑方式记录多个远程子目录对象标识,具体格式为(起始索引节点号号,连续的索引节点个数,索引节点版本号)。在之后的访问中,根据远程子目录对象标识即可查找并访问负载转移目标元数据服务器3相对应的远程子目录对象。
远程子目录对象预申请具体步骤如下:
父目录所在的元数据服务器2中的远程子目录预申请模块23从负载转移目标元数据服务器3中一次预申请多个远程子目录对象标识。
远程子目录预申请模块23在系统空闲时从负载转移目标元数据服务器3申请多个预留远程子目录对象标识,元数据服务器之间以(元数据服务器序号,索引节点号,索引节点版本号)三元组的形式进行远程子目录对象标识传递,其中与元数据服务器序号标识相对应的目录对象在负载转移目标元数据服务器3中。因此,(元数据服务器序号、索引节点号、索引节点版本号)三元组即可唯一代表文件系统中的一个远程子目录对象。
远程子目录预申请模块23记下预申请到的远程子目录对象标识,同样以(元数据服务器序号,索引节点号,索引节点版本号)三元组的形式进行远程子目录对象标识记录。
上述为远程子目录创建的准备工作,可在系统空闲时完成,以下为远程子目录的创建步骤。
远程子目录创建步骤如下:
父目录所在的元数据服务器2响应客户端1的远程子目录创建请求,如果负载均衡模块21确定需要进行负载转移,则进行远程子目录创建操作。
客户端1使用标准目录创建命令将目录创建请求发送到父目录所在的元数据服务器2。
父目录所在的元数据服务器2上的负载均衡模21块通过负载收集和一定的负载均衡策略决定需要进行负载迁移。
父目录所在的元数据服务器2上的负载均衡模块21选择合适的负载转移目标元数据服务器3。
步骤34,父目录所在的元数据服务器2上的远程子目录创建模块22从远程子目录预申请模块23中获取负载转移目标元数据服务器3的一个预申请的远程子目录标识,添加到父目录所在的元数据服务器2的目录项中。
所述远程子目录创建步骤仅在父目录所在的元数据服务器2本地进行,无需和负载转移目标元数据服务器3交互。完成后,可返回给客户端1。
远程子目录删除操作
在本操作中,本发明将分布式目录删除过程中的目录项删除和目录对象释放作为两个独立的子过程。先由父目录所在的元数据服务器2端远程子目录删除模块24在父目录所在的元数据服务器2本地完成目录项删除子操作,再由远程子目录异步释放模块25将待释放的远程子目录对象标识通过异步的远程过程调用发送到负载转移目标元数据服务器3,负载转移目标元数据服务器3端远程子目录对象回收模块31记下这些对象标识,之后再异步地在负载转移目标元数据服务器3本地完成回收。该方法将分布式的远程子目录删除过程,转化为父目录所在的元数据服务器2端本地的远程子目录删除和负载转移目标元数据服务器3端本地的远程子目录对象回收,仅需本地一致性保证机制即可,无需使用复杂的分布式一致性保证机制,无需磁盘同步等待,可有效提高远程子目录删除性能,以下是具体步骤。
远程子目录删除步骤如下:
父目录所在的元数据服务器2响应客户端1的目录删除请求,如果是远程子目录,则进行远程子目录删除;
客户端1使用标准的目录删除命令将目录删除请求发送到父目录所在的元数据服务器2;
父目录所在的元数据服务器2判断待删除的目录为远程子目录;
远程子目录删除模块24执行父目录所在的元数据服务器2本地的目录项删除操作,并将待释放的远程子目录对象标识发送到远程子目录异步释放模块25。远程子目录异步释放模块25仍以(元数据服务器序号,索引节点号,索引节点版本号)三元组的形式记录待释放的远程子目录对象标识。
本步骤仅在父目录所在的元数据服务器2本地完成,无需与负载转移目标元数据服务器3交互。完成后,即可返回给客户端1。
远程子目录对象回收步骤如下:
本步骤对远程子目录对象进行释放回收。
父目录所在的元数据服务器2端的远程子目录异步释放模块25在系统空闲时,将记录的远程子目录对象标识发送到由相应的元数据服务器序号标识的负载转移目标元数据服务器3,请求进行资源回收。元数据服务器之间以(元数据服务器序号,索引节点号,索引节点版本号)三元组的形式进行远程子目录对象标识传递。
负载转移目标元数据服务器3端的远程子目录对象回收模块32记下父目录所在的元数据服务器2发送过来的远程子目录对象标识。这里至少需要记录目录对象的索引节点号和索引节点版本号。
负载转移目标元数据服务器3端的远程子目录对象回收模块32在系统空闲时,根据记录下的远程子目录对象标识(索引节点号、索引节点版本号)查找到负载转移目标元数据服务器3本地对象,回收相应的元数据和数据资源。
Claims (10)
1.一种元数据集群中负载转移方法,其特征在于,包括下列步骤:
建立至少两个元数据服务器和一个客户端,该元数据服务器用于建立负载均衡模块、远程子目录预申请模块、远程子目录创建模块、远程子目录初始化模块、远程子目录删除模块、远程子目录异步释放模块、远程子目录对象回收模块,其中通过该客户端发送创建和删除远程子目录命令,通过该负载均衡模块选择负载转移目标元数据服务器,该元数据服务器通过该远程子目录初始化模块预先初始化多个负载转移目标元数据服务器上的远程子目录对象作为父目录所在的元数据服务器(2)的远程子目录进行使用,生成远程子目录对象标识,通过父目录所在的元数据服务器中的该远程子目录预申请模块预申请远程子目录对象标识,根据该远程子目录对象标识,通过该父目录所在的元数据服务器中的该远程子目录创建模块和该远程子目录删除模块进行远程子目录的创建和删除,远程子目录的创建和删除操作仅在该父目录所在的元数据服务器本地进行,无需和该负载转移目标元数据服务器交互,根据该远程子目录对象标识,通过该远程子目录异步释放模块和该远程子目录对象回收模块回收该远程子目录的元数据和数据资源。
2.如权利要求1所述的元数据集群中负载转移方法,其特征在于,还包括:
通过该负载均衡模块收集并量化元数据服务器的负载和承受能力,通过负载转移条件,判断是否需要进行负载转移,如果需要负载转移,则通过负载均衡策略选择负载转移目标元数据服务器。
3.如权利要求1所述的元数据集群中负载转移方法,其特征在于,还包括:
该远程子目录预申请模块,用于在该负载转移目标元数据服务器中一次申请多个远程子目录对象标识,该远程子目录预申请模块以元数据服务器序号,索引节点号,索引节点版本号三元组的形式对该远程子目录对象标识进行记录;
该元数据服务器之间通过元数据服务器序号、索引节点号、索引节点版本号三元组的形式进行该远程子目录对象标识的传递,其中元数据服务器序号标识与该元数据服务器序号对应的远程子目录对象所在的负载转移目标元数据服务器。
4.如权利要求1所述的元数据集群中负载转移方法,其特征在于,还包括:
该远程子目录初始化模块,用于在该负载转移目标元数据服务器申请索引节点,并进行初始化,生成远程子目录对象和远程子目录对象标识,其中该远程子目录对象标识记录在该远程子目录初始化模块中,该客户端根据该远程子目录对象标识访问远程子目录对象。
5.如权利要求1所述的元数据集群中负载转移方法,其特征在于,还包括:
将待释放的该远程子目录对象标识发送到该远程子目录异步释放模块,通过该远程子目录异步释放模块异步的将多个该远程子目录对象标识一次传递给该负载转移目标元数据服务器上的该远程子目录对象回收模块;
通过该负载转移目标元数据服务器的该远程子目录对象回收模块记录该远程子目录对象标识,通过该远程子目录对象标识查找与其相对应的该负载转移目标元数据服务器的该远程子目录对象,并回收该远程子目录对象的元数据和数据资源。
6.一种元数据集群中负载转移系统,其特征在于,包括:
至少两个元数据服务器和一个客户端,该元数据服务器用于建立负载均衡模块、远程子目录预申请模块、远程子目录创建模块、远程子目录初始化模块、远程子目录删除模块、远程子目录异步释放模块、远程子目录对象回收模块,其中通过该客户端发送创建和删除远程子目录命令,通过该负载均衡模块选择负载转移目标元数据服务器,该元数据服务器通过该远程子目录初始化模块预先初始化多个负载转移目标元数据服务器上的远程子目录对象作为父目录所在的元数据服务器(2)的远程子目录进行使用,生成远程子目录对象标识,通过父目录所在的元数据服务器中的该远程子目录预申请模块预申请远程子目录对象标识,根据该远程子目录对象标识,通过该父目录所在的元数据服务器中的该远程子目录创建模块和该远程子目录删除模块进行远程子目录的创建和删除,远程子目录的创建和删除操作仅在该父目录所在的元数据服务器本地进行,无需和该负载转移目标元数据服务器交互,根据该远程子目录对象标识,通过该远程子目录异步释放模块和该远程子目录对象回收模块回收该远程子目录的元数据和数据资源。
7.如权利要求6所述的元数据集群中负载转移系统,其特征在于,该负载均衡模块,用于收集并量化元数据服务器的负载和承受能力,通过负载转移条 件,判断是否需要进行负载转移,如果需要负载转移,则通过负载均衡策略选择负载转移目标元数据服务器。
8.如权利要求6所述的元数据集群中负载转移系统,其特征在于,该远程子目录预申请模块,用于在该负载转移目标元数据服务器中一次申请多个远程子目录对象标识,该远程子目录预申请模块以元数据服务器序号,索引节点号,索引节点版本号三元组的形式对该远程子目录对象标识进行记录;
该元数据服务器之间通过元数据服务器序号、索引节点号、索引节点版本号三元组的形式进行该远程子目录对象标识的传递,其中元数据服务器序号标识与其对应的远程子目录对象所在的负载转移目标元数据服务器。
9.如权利要求6所述的元数据集群中负载转移系统,其特征在于,该远程子目录初始化模块,用于在该负载转移目标元数据服务器申请索引节点,并进行初始化,生成远程子目录对象和远程子目录对象标识,其中该远程子目录对象标识记录在该远程子目录初始化模块中,该客户端根据该远程子目录对象标识访问远程子目录对象。
10.如权利要求6所述的元数据集群中负载转移系统,其特征在于,还包括:
该远程子目录异步释放模块,用于异步的将多个该远程子目录对象标识一次传递给该负载转移目标元数据服务器上的该远程子目录对象回收模块;
该远程子目录对象回收模块,用于记录该远程子目录对象标识,通过该远程子目录对象标识查找与其相对应的该负载转移目标元数据服务器的该远程子目录对象,并回收该远程子目录对象的元数据和数据资源。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410114579.4A CN103916467B (zh) | 2014-03-25 | 2014-03-25 | 一种元数据集群中负载转移方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410114579.4A CN103916467B (zh) | 2014-03-25 | 2014-03-25 | 一种元数据集群中负载转移方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103916467A CN103916467A (zh) | 2014-07-09 |
CN103916467B true CN103916467B (zh) | 2017-02-08 |
Family
ID=51041865
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410114579.4A Expired - Fee Related CN103916467B (zh) | 2014-03-25 | 2014-03-25 | 一种元数据集群中负载转移方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103916467B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104580471A (zh) * | 2015-01-12 | 2015-04-29 | 浪潮电子信息产业股份有限公司 | 一种提升元数据集群性能的方法 |
CN106034160B (zh) * | 2015-03-19 | 2019-06-11 | 阿里巴巴集团控股有限公司 | 分布式计算系统和方法 |
CN105677892B (zh) * | 2016-01-29 | 2018-12-25 | 华为技术有限公司 | 一种读取目录子项元数据的方法及装置 |
CN106506605B (zh) * | 2016-10-14 | 2020-09-22 | 华南理工大学 | 一种基于微服务架构的SaaS应用构建方法 |
CN106777062B (zh) * | 2016-12-12 | 2020-03-10 | 郑州云海信息技术有限公司 | 一种管理元数据的方法及装置 |
CN106874457B (zh) * | 2017-02-14 | 2020-03-06 | 郑州云海信息技术有限公司 | 一种通过虚拟目录来提升元数据集群性能的方法 |
CN106850833A (zh) * | 2017-03-01 | 2017-06-13 | 郑州云海信息技术有限公司 | 一种平衡元数据集群负载的方法及装置 |
CN111666159B (zh) * | 2020-06-28 | 2021-08-27 | 腾讯科技(深圳)有限公司 | 负载均衡控制方法和装置、存储介质及电子设备 |
CN112612751B (zh) * | 2020-12-25 | 2024-08-13 | 北京浪潮数据技术有限公司 | 一种异步目录操作方法、装置、设备和系统 |
CN113055448B (zh) * | 2021-02-28 | 2023-03-28 | 新华三信息技术有限公司 | 一种元数据管理方法及装置 |
CN113590546B (zh) * | 2021-06-30 | 2024-10-18 | 济南浪潮数据技术有限公司 | 一种目录删除方法、装置及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101013387A (zh) * | 2007-02-09 | 2007-08-08 | 华中科技大学 | 基于对象存储设备的负载平衡方法 |
CN101101563A (zh) * | 2007-07-23 | 2008-01-09 | 清华大学 | 基于海量数据分级存储系统的迁移管理方法 |
CN101196797A (zh) * | 2007-12-07 | 2008-06-11 | 华中科技大学 | 一种存储系统数据分布及互转换方法 |
-
2014
- 2014-03-25 CN CN201410114579.4A patent/CN103916467B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101013387A (zh) * | 2007-02-09 | 2007-08-08 | 华中科技大学 | 基于对象存储设备的负载平衡方法 |
CN101101563A (zh) * | 2007-07-23 | 2008-01-09 | 清华大学 | 基于海量数据分级存储系统的迁移管理方法 |
CN101196797A (zh) * | 2007-12-07 | 2008-06-11 | 华中科技大学 | 一种存储系统数据分布及互转换方法 |
Non-Patent Citations (4)
Title |
---|
BWMMS元数据分布信息缓存管理;杨德志;许鲁;张建刚;《计算机科学》;20071015;第34卷(第10期);全文 * |
信息网格中元数据层次化结构模型的研究和应用;廖华明;程伯羽;刘新周;虎嵩林;刘欣;《计算机研究与发展》;20031230;第40卷(第12期);全文 * |
蓝鲸分布式文件系统的分布式分层资源管理模型;黄华;张建刚;许鲁;《计算机研究与发展》;20050616;第2005年卷(第6期);全文 * |
面向大数据分析的分布式文件系统关键技术;周江;王伟平;孟丹;马灿;古晓艳;蒋杰;《计算机研究与发展》;20140215;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN103916467A (zh) | 2014-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103916467B (zh) | 一种元数据集群中负载转移方法及系统 | |
CN102158546B (zh) | 一种集群文件系统及其文件服务方法 | |
CN106874383B (zh) | 一种分布式文件系统元数据的解耦合分布方法 | |
CN101019105B (zh) | 使用条带化来存储数据的方法及装置 | |
CN106066896B (zh) | 一种应用感知的大数据重复删除存储系统及方法 | |
CN103179185B (zh) | 一种分布式文件系统客户端缓存中文件创建方法及其系统 | |
CN101692239B (zh) | 一种分布式文件系统元数据分配方法 | |
CN101354726B (zh) | 一种机群文件系统的内存元数据管理方法 | |
US20170123931A1 (en) | Object Storage System with a Distributed Namespace and Snapshot and Cloning Features | |
CN101866305B (zh) | 支持数据查询和快速恢复的连续数据保护方法及系统 | |
US20130218934A1 (en) | Method for directory entries split and merge in distributed file system | |
CN104462185B (zh) | 一种基于混合结构的数字图书馆云存储系统 | |
US20120311065A1 (en) | Asynchronous file operations in a scalable multi-node file system cache for a remote cluster file system | |
CN103294785B (zh) | 一种基于分组的元数据服务器集群管理方法 | |
CN104881466B (zh) | 数据分片的处理以及垃圾文件的删除方法和装置 | |
CN105824723B (zh) | 一种对公有云存储账户的数据进行备份的方法及系统 | |
CN100424699C (zh) | 一种属性可扩展的对象文件系统 | |
CN102035881A (zh) | 一种云端存储系统的数据缓存方法 | |
CN105930233B (zh) | 对指定公有云账户的数据进行分别自动备份的方法及系统 | |
CN108415671B (zh) | 一种面向绿色云计算的重复数据删除方法及系统 | |
US10929354B2 (en) | Metadata server and method for distributing metadata in directories using the same | |
CN105183400A (zh) | 一种基于内容寻址的对象存储方法和系统 | |
CN108073696A (zh) | 基于分布式内存数据库的gis应用方法 | |
CN105978981A (zh) | 基于公有云存储账户的数据备份的线性扩容方法及系统 | |
CN108228725A (zh) | 基于分布式数据库的gis应用系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170208 |