本发明专利技术提出一种应用于分布式文件系统的元数据分簇管理方法和模块。提出了簇的概念,即一棵独立的子树即是一个簇。在分布式文件系统中添加簇服务器,集中管理全局的元数据目录子树。簇服务器包括簇映射关系表、簇计数器和记录每台元数据服务器簇数的元数据簇数管理表,同时在元数据服务器上添加目录计数表,用以记录存在于本台服务器的每个簇下的目录数。通过这些模块的协作,解决了分布式文件系统中单台元数据服务器扩展为元数据服务器集群的元数据管理问题以及服务器集群元数据目录子树分割方法存在的负载不均衡的问题。
【技术实现步骤摘要】
本专利技术涉及一种应用于分布式文件系统的元数据分簇管理方法和模块,该方法应用于分布式文件系统的元数据服务器集群中,属于计算机科学与
技术介绍
随着云时代的到来,大数据也吸引了越来越多的关注,每天互联网上的数据以数亿的速度激增。这种数量级的数据量已经超出了一台计算机的处理能力,基于此,分布式文件系统技术被提出,它将元数据和数据分离,现有的分布式文件系统一般使用多台数据服务器存储具体数据,使用一台元数据服务器将数据的元数据信息(包括名字、大小、储存位置等)储存在内存中。由于用户每次访问文件之前,都要先向元数据服务器请求获取该文件的元数据,并发访问量巨大;同时随着元数据的激增,元数据服务器内存容量有限,这两方面的限制都导致单台元数据服务器将成为分布式文件系统的瓶颈。基于此,需要将单元数据服务器扩展成为一个元数据服务器集群,然而,对服务器集群中存储的元数据(服务器集群元数据)进行统一管理是一个挑战性的问题。在服务器集群元数据管理方面,哈希和目录子树分割是分布式文件系统中管理元数据的两个常用方法。哈希方法是以文件目录、名字或者其他相关属性值为键值,通过哈希函数计算相应的哈希值,然后建立哈希值与元数据存储的服务器映射表。哈希方法的优点是容易实现负载均衡,也支持高度并发访问,但是这种方法的缺点是很难将所有目录和文件组织成完整的层级结构展示给用户,增加了某些操作(如:获取一个目录的所有子目录)的实现难度,并且当增加或者减少元数据服务器时,哈希值随之改变,所有的元数据需要重新分布,这将造成大量元数据迁移,从而增大系统开销。目录子树分割方法是按照目录树划分为一棵棵目录子树,然后将目录子树分配到元数据服务器上存储,每台元数据服务器管理一棵或者多棵目录子树。目录子树分割方法简单易懂,由于目录树可以任意被拆分,因此元数据易于被分割到不同的服务器中存储。目录子树分割方法可以很容易地将所有子树组合成完整的目录树,以层级结构展示给用户,但是目录子树分割方法的缺点是在实现过程中不易于实现元数据存储的负载均衡。为了解决上述方法在管理上的缺点,本专利提出一种应用于分布式文件系统的元数据分簇管理方法和模块,不仅保留了传统的目录子树分割简单易行、易于扩展的优点,还保证了其在应用过程中的负载均衡。
技术实现思路
依据当前的技术背景和条件,并针对分布式文件系统中元数据扩展的特点和要求,本专利技术提出一种应用于分布式文件系统的元数据分簇管理方法和模块。本专利技术采用的技术方案如下:一、本专利技术结构为了提高元数据存取速度,提升元数据存储容量,使用本专利技术的分布式文件系统采用多台服务器(元数据服务器集群)存储元数据(一棵元数据目录树),每台元数据服务器存储由元数据目录树分割出的一棵或多棵元数据目录子树;使用一台服务器(簇服务器)统一管理元数据服务器集群上存储的元数据目录子树。本专利技术提出“簇”的概念,元数据目录树被分割为一棵棵元数据目录子树,每棵目录子树称为一个簇。本专利技术由两大模块组成,如图1所示,分别为簇服务器和元数据服务器。簇服务器包括簇编号计数器、元数据服务器簇数管理表和簇映射关系表三个模块。元数据服务器包括元数据模块和目录计数表模块。使用本专利技术的分布式文件系统元数据的分簇管理原理如图2所示。元数据目录树被分割为几棵元数据目录子树,这些元数据目录子树被随机存储在几台元数据服务器上。簇服务器通过簇编号计数器、元数据服务器簇数管理表和簇映射关系表三个模块对存储在不同元数据服务器上的元数据目录子树进行统一管理。下面从模块的具体作用和工作流程来进一步对本专利技术进行说明。二、本专利技术模块作用在使用本专利技术的分布式文件系统中,每个元数据使用簇编号+文件编号作为其在整个文件系统中的唯一标识,其中簇编号(zone ID)是簇服务器为每棵子树分配的全局编号,文件编号(inode ID)是每个元数据服务器为存在于自己内存中的元数据分配的编号。下面介绍各模块的具体功能。簇服务器各模块功能如下:>簇编号计数器负责记录已使用的簇编号,在元数据服务器申请新簇时向元数据服务器派发簇编号,以避免出现簇编号重复。>元数据服务器簇数管理表负责统计每台元数据服务器上有多少个簇。当簇数目达到阈值时,簇服务器模块要另选一台元数据服务器建立新簇。>簇映射关系表是一张反映簇编号与元数据服务器IP地址映射关系的表格。每个表项表示编号为簇编号的子树存在于地址为IP的元数据服务器上。当知道一个文件或目录的元数据的簇编号时,客户端根据该表格快速定位元数据所在的元数据服务器。元数据服务器模块功能如下:>元数据模块,即存放元数据的模块,它的作用是存放一棵棵零散的目录子树,也即一个个簇。>目录计数表负责统计本台元数据服务器上每个簇下的目录数,当表项中记录的目录数达到阈值时,元数据服务器向簇服务器请求建立新簇。三、本专利技术执行流程客户端挂载到文件系统时,簇服务器首先将簇映射关系表和该文件系统的根目录元数据所在的元数据服务器IP地址发送给客户端。>访问目录或文件客户端访问一个目录或文件时,存储着根目录的元数据服务器按照文件的全路径,遍历根目录的下级目录和文件,查找客户端需要的下一级目录或文件。如果根目录的下级目录或文件与根目录存储在同一个元数据服务器上,该元数据服务器直接访问下级目录或文件;若下级目录存储在另一台元数据服务器上,则将根目录元数据中存储的该下级目录的簇编号发回给客户端,客户端查询簇映射关系表,向实际存储着下级目录元数据的元数据服务器发起查询请求。以此类推,直至找到所要访问的目录或文件。>创建文件由于创建文件不会带来创建新簇的问题,所以创建文件的过程比较简单。客户端首先通过访问目录的步骤找到所要创建的文件的父目录所在的元数据服务器,然后向该元数据服务器发送创建文件的请求,元数据服务器为要创建的文件分配一个文件编号,将文件创建在指定的父目录下。>创建目录首先客户端通过访问目录的步骤找到所要创建的目录的父目录所在的元数据服务器,向该元数据服务器提交创建目录申请。元数据服务器查看目录计数表的相关表项,看是否需要建立新簇;如果不需要,直接为该目录分配一个文件编号,将其创建在父目录下。如果需要建立新簇,元数据服务器向簇服务器申请簇编号,簇服务器首先查询元数据服务器簇数管理表,看此元数据服务器上的簇数是否达到阈值,以判断是否可以在此元数据服务器上建立新簇。如果可以,簇服务器直接将新建簇的簇编号发给元数据服务器,元数据服务器以该目录为根建立新簇。如果不可以在当前元数据服务器上建立新簇,簇服务器查询元数据服务器簇数管理表,找到簇数最少的元数据服务器,向簇数最少的元数据服务器发送建立新簇的命令和新簇编号。新的元数据服务器接到请求,在自己内存中建立以该目录为根的新簇。附图说明图1元数据分簇管理结构示意2元数据分簇管理原理示意图具体实施例方式为了说明这种服务器集群元数据的管理方式,下面给出一些操作的实例。一、访问文件nU/dl/fl存在于同一台元数据服务器MDSl中,其中dl为目录,fl为文件。执行下述步骤:I)客户端根据根目录元数据的位置访问MDS1,MDS1读取根目录的元数据,遍历根目录的下一级目录,查找dl并直接访问dl ;2)遍历dl下的所有文件,查找fl并直接访问f本文档来自技高网...
【技术保护点】
本专利技术提出使用“簇编号+文件编号”作为每个元数据在整个分布式文件系统中的唯一标识。
【技术特征摘要】
【专利技术属性】
技术研发人员:陆月明,及莹,解晓伟,
申请(专利权)人:北京邮电大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。