CN105468599A - 一种存储虚拟化***的元数据层次管理方法 - Google Patents
一种存储虚拟化***的元数据层次管理方法 Download PDFInfo
- Publication number
- CN105468599A CN105468599A CN201410412388.6A CN201410412388A CN105468599A CN 105468599 A CN105468599 A CN 105468599A CN 201410412388 A CN201410412388 A CN 201410412388A CN 105468599 A CN105468599 A CN 105468599A
- Authority
- CN
- China
- Prior art keywords
- list
- server
- metadata
- directory
- matching
- 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
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种存储虚拟化***的元数据层次管理方法,其特征在于,把整个存储虚拟化***划分为多个逻辑域,每个逻辑域内的元数据分布在多个目录服务器上,在各逻辑域中设置一个元数据服务器,用于管理该域中的目录服务器,在各元数据服务器中设置一个匹配表,该匹配表至少包括二个字段,目录服务器名称和目录服务器上所保存的元数据子逻辑树的根目录,用于直接将用户请求定向到其所在的目录服务费,当用户提出请求时,从用户请求中提取要访问目录的路径,在该域的匹配表中对路径进行长匹配,判断在匹配表中是否存在符合的目录服务器。本发明具有更高的效率、更好的扩展性,并且更易于管理。
Description
技术领域
本发明涉及一种存储虚拟化***的元数据层次管理方法。
背景技术
在现代高性能计算中,科学计算和军事应用对存储的要求越来越髙,包括大容量、分布式、高性能和高可靠性。广域网的虚拟化存储管理方式将地理上分布的各种高性能存储***集成为一体,形成庞大的分布存储空间,充分实现资源共享,提高资源利用率,有效解决存储数据的***性增长和存储管理能力相对不足之间的矛盾。
在一个广域存储***中,这些海量的存储资源必须被有效的管理,从而引入元数据的概念。元数据是描述数据的数据,它为***提供对象物理位置与其逻辑名字之间的映射,一个逻辑文件可以对应多个物理文件副本。此外,元数据还包括文件目录信息,文件信息,存储设备信息及相关的***信息等等。
在许多***中比如SRB或者GridFTP,都采用层次目录结构管理元数据。当元数据变得庞大时,***会同时启用多个元数据服务器,这样会导致以下问题的产生:一方面,逻辑树必须分布在这些元数据服务器上,而另一方面,目录服务器之间必须协同操作,因为要返回的元数据可能分布在不同的元数据服务器上,这样就对元数据的根目录服务器造成了压力。第三,如果根目录服务器出现故障,整个目录服务***也就不能再正常运转了,很难做到***的高可用。最后,这种结构使得元数据服务器的扩展也变得很困难。
发明内容
为解决上述现有的缺点,本发明的主要目的在于提供一种实用的存储虚拟化***的元数据层次管理方法,该方法具有更高的效率、更好的扩展性,并且更易于管理。
为达成以上所述的目的,本发明的一种存储虚拟化***的元数据层次管理方法采取如下技术方案:
一种存储虚拟化***的元数据层次管理方法,其特征在于,把整个存储虚拟化***划分为多个逻辑域,每个逻辑域内的元数据分布在多个目录服务器上,在各逻辑域中设置一个元数据服务器,用于管理该域中的目录服务器,在各元数据服务器中设置一个匹配表,该匹配表至少包括二个字段,目录服务器名称和目录服务器上所保存的元数据子逻辑树的根目录,用于直接将用户请求定向到其所在的目录服务费,当用户提出请求时,从用户请求中提取要访问目录的路径,在该域的匹配表中对路径进行长匹配,判断在匹配表中是否存在符合的目录服务器,如果存在符合的目录服务器,直接访问匹配的目录服务器,并返回结果,否则显示出错信息。
所述匹配表中设置有目录副本和索引字段。
采用如上技术方案的本发明,具有如下有益效果:
本发明具有更高的效率、更好的扩展性,并且更易于管理。
附图说明
图1为域内元数据逻辑树示例图。
图2为本发明的元数据访问流程。
图3为现有元数据逻辑树的访问方式。
图4为本发明元数据逻辑树的访问方式。
图5为本发明元数据管理的结构图。
具体实施方式
为了进一步说明本发明,下面结合附图进一步进行说明:
在我们的存储虚拟化***GSP(GlobalStorageProvider)中,通过划分逻辑域对整个***进行层次管理。在每个域内,元数据分布在多个目录服务器上面,并按照类似Linux文件***的组织方式形成一棵“本域元数据逻辑树”,图1是一个域元数据逻辑树示例。图中,1.1,1.2,1.3,1.4表示域内的目录服务器;AO表示域内元数据逻辑树的根目录;A1,A2…,表示域内元数据逻辑树的子目录。
每个用户都隶属于一个域,用户的根目录绑定到域内一个子目录上,用户登陆时,***自动定向到用户的根目录去。
建立基于目录树结构的元数据目录服务器(DirectoryServer)来存储元数据及其副本。但是在广域网的范围内,随着***中资源的增长,文件和目录的信息会变得越来越庞大,很显然,目录服务器组织得不好,就会成为***的瓶颈。所以如何快速准确的定向到用户的根目录就是一个十分突出的问题,这将影响到元数据的搜索速度进而影响整个***的效率。在我们的***中,引入匹配表来解决上述问题。
在每个域中设置一个元数据服务器管理域中的多个目录服务器,匹配表保存在元数据服务器上。匹配表是一个常驻内存的数据结构,记录了每个目录服务器的名字及存放在其上的元数据的根目录;如果一个目录服务器上面保存了某个目录的副本,也把这个目录放到匹配表中去。在匹配表中,还可以设置索引字段,作为某个条目在匹配表中的唯一标识。
当***收到用户的请求时,首先在元数据服务器上遍历匹配表,根据用户所请求访问的路径对匹配表包含的所有路径做一个最长匹配,找到用户要访问的目录所在的目录服务器,直接访问这个目录服务器,而不用通过域内元数据根目录所在的目录服务器依次查找;如果元数据存在副本,还可以从匹配表中选择一个合适的目录服务器给用户访问。元数据访问流程如图2所示。
图1列举了一个逻辑树的例子。这个逻辑树代表一个域内的文件目录结构,分布在四个目录服务器上。其中,逻辑树的根/AO存放在目录服务器1.1上,目录“/AO/B1存放在目录服务器1.2上,目录“/A0/A1/A2/C11和目录/A0/A1/A2/C12放在目录服务器1.3上,目录“/A0/B2/B3/B4/D1放在目录服务器1.4上。表2显示了与图1逻辑树对应的匹配表。
假设用户想访问/A0/B1/B2/B3/B4/D1/D2,如果按照现存的元数据访问方式,首先会从域内逻辑树的根目录所在的目录服务器1.1幵始查找,历经目录服务器1.3,到达目录服务器1.4,然后再把结果返回给用户,如图3所示。图中,R表示用户请求访问的文件目录的路径;1.1,1.2,1.3,1.4表示本域中的目录服务器;A0表示域内元数据逻辑树的根目录;B1,D1…,表示域内元数据逻辑树中的目录;虚线箭头和r1,r2…表示用户访问步骤。但是如果釆取本发明所用的匹配表方式,***收到用户的请求后,将首先查找匹配表,根据用户请求的路径做一个最长匹配,这样就可以得到元数据在目录服务器1.4上面。***将直接访问目录服务器1.4,而不需要再通过根目录入口1.1,如图4所示。图中,1表示域内的所有的目录服务器,2表示域内元数据服务器GNS,3表示匹配表,虚线箭头和r1,r2表示用户访问步骤。
为了达到有效搜索的目的,所有目录服务器都必须自己保存域内元数据树的逻辑结构。例如,目录服务器1.4仍然会保存域内元数据树的根,但它只是一个路径,并不保存根的内容,这样当一个搜索请求到达1.4的时候就不需要对请求做任何变换。这个根条目由于内容为空,只需要占用极少的存储空间,并且维护起来也很方便。
匹配表的内容存放在一个文件中,当整个***启动的时候,把文件中保存的匹配表读入内存。匹配表的结构和功能决定了一般情况下都是在内存中对匹配表进行读操作,这就不会涉及到对匹配表文件的读写。只有在新增目录服务器或者现有目录服务器的根目录发生变化的情况下才对匹配表进行修改,进而对文件进行修改,并不需要频繁读写匹配表的文件,大大节省了访问匹配表的时间。
在元数据服务器中添加一个匹配表管理模块,对匹配表中的记录进行维护,具体操作包括记录的添加、删除、更新操作,匹配表文件的解析以及根据用户请求的路径匹配到合适的目录服务器等等,具体解释如下。
匹配表记录的添加:当域内新增一个目录服务器的时候,向匹配表中添加一条记录;如果某个目录服务器中的一个子目录过大,需要迁移到另外一个目录服务器去,也要通知匹配表,增加一条相关记录,以记录这个子目录和其迁移到的目录服务器。
匹配表记录的删除:当某个目录服务器不再服务于某个域时,从匹配表上删除相应的记录;
匹配表记录的修改:当某个目录服务器上保存的目录树根目录发生变化时,修改相应的记录;
匹配表文件的解析:当***启动的时候,把匹配表文件中的内容读到字符串数组中,常驻内存;
匹配用户请求的路径:在匹配表中查找用户请求访问的路径所在的目录服务器。
使用集群***中的5个节点构建一个元数据层次管理***,其基本配置
如表1所示。
CPU | 内存 | 硬盘 | 网卡 | 操作*** | 网络 |
双PIII 866 | 256M | 30G | 3C905B | Linux6.2 | 100M交换机 |
表1各节点的硬件及网络配置
其中,一台作为元数据服务器,另外4个作为目录服务器。元数据服务器负责匹配表的维护,包括生成添加删除更新等一系列的操作。目录服务器负责保存元数据信息。
具体实施如下:其中一个节点充当元数据服务器,装载保存匹配表的文件和匹配表管理模块;其余四个节点充当1.1,1.2,1.3,1.4,装载LDAP数据库,保存域内的元数据。
依照图5,1表示一个逻辑域Domain,其后的阴影部分4.2和4.3代表和4.1结构相同的多个逻辑域;5表示匹配表管理模块,虚线箭头表示元数据服务器和目录服务器之间的互访。
整个***的配置说明如下:
(1)匹配表包括两个字段,其示例如表2。
根目录路径 | 目录服务器 |
/A0 | 1.1 |
/A0/B1 | 1.2 |
/A0/A1/A2/C11 | 1.3 |
/A0/A1/A2/C12 | 1.3 |
/A0/B1/B2/B3/B4/D1 | 1.4 |
表2匹配表示例
各字段解释如下:
路径:目录服务器保存的元数据子逻辑树的根目录路径;目录服务器名称:此目录服务器的名字,域内各目录服务器名称唯一。
(2)域内元数据保存在四个目录服务器上,具体分布示例如表3。
表3匹配表示例
(3)匹配表运行示例。
***启动时解析保存匹配表的文件,读至以下三个字符串数组,常驻内存:
Sindex[1]:保存匹配表中第i个记录的索引值,匹配表中的索引值递增。它并非必需,但是可以简化和方便程序的编写;
Spath[i]:保存第1个条目中字段“路径”的内容;
sDS[i]:保存第1个条目中字段“目录服务器名称”的内容。
Sindex[i],Spath[i],sDS[i]是相互对应的一套。从数组[1]开始记录文件。Sindex[i]的值为表中存在的条目数;Spath[0]为空;sDS[0]为空。
收到用户请求访问的文件或目录路径卯让后,首先遍历数组spath,如果spath[i]的值为path,返回sDS[i];如果spath中不存在path,则返回path的父目录所在的目录服务器们,或者父父目录直至整个域的根目录。
Claims (2)
1.一种存储虚拟化***的元数据层次管理方法,其特征在于,把整个存储虚拟化***划分为多个逻辑域,每个逻辑域内的元数据分布在多个目录服务器上,在各逻辑域中设置一个元数据服务器,用于管理该域中的目录服务器,在各元数据服务器中设置一个匹配表,该匹配表至少包括二个字段,目录服务器名称和目录服务器上所保存的元数据子逻辑树的根目录,用于直接将用户请求定向到其所在的目录服务费,当用户提出请求时,从用户请求中提取要访问目录的路径,在该域的匹配表中对路径进行长匹配,判断在匹配表中是否存在符合的目录服务器,如果存在符合的目录服务器,直接访问匹配的目录服务器,并返回结果,否则显示出错信息。
2.根据权利要求1所述的一种存储虚拟化***的元数据层次管理方法,其特征在于,所述匹配表中设置有目录副本和索引字段。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410412388.6A CN105468599A (zh) | 2014-08-21 | 2014-08-21 | 一种存储虚拟化***的元数据层次管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410412388.6A CN105468599A (zh) | 2014-08-21 | 2014-08-21 | 一种存储虚拟化***的元数据层次管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105468599A true CN105468599A (zh) | 2016-04-06 |
Family
ID=55606312
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410412388.6A Pending CN105468599A (zh) | 2014-08-21 | 2014-08-21 | 一种存储虚拟化***的元数据层次管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105468599A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107103034A (zh) * | 2017-03-22 | 2017-08-29 | 南京理工大学 | 基于ldap的tfas数据信息目录服务方法 |
CN107229425A (zh) * | 2017-06-02 | 2017-10-03 | 浙江宇视科技有限公司 | 一种数据存储方法及装置 |
CN107277126A (zh) * | 2017-06-13 | 2017-10-20 | 郑州云海信息技术有限公司 | 一种云计算资源管理方法及装置 |
-
2014
- 2014-08-21 CN CN201410412388.6A patent/CN105468599A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107103034A (zh) * | 2017-03-22 | 2017-08-29 | 南京理工大学 | 基于ldap的tfas数据信息目录服务方法 |
CN107229425A (zh) * | 2017-06-02 | 2017-10-03 | 浙江宇视科技有限公司 | 一种数据存储方法及装置 |
CN107229425B (zh) * | 2017-06-02 | 2020-05-19 | 浙江宇视科技有限公司 | 一种数据存储方法及装置 |
CN107277126A (zh) * | 2017-06-13 | 2017-10-20 | 郑州云海信息技术有限公司 | 一种云计算资源管理方法及装置 |
CN107277126B (zh) * | 2017-06-13 | 2020-08-04 | 郑州云海信息技术有限公司 | 一种云计算资源管理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107423422B (zh) | 基于网格的空间数据分布式存储及检索方法和*** | |
CN104850572B (zh) | HBase非主键索引构建与查询方法及其*** | |
CN104123359B (zh) | 一种分布式对象存储***的资源管理方法 | |
CN103020315B (zh) | 一种基于主从分布式文件***的海量小文件存储方法 | |
CN102122285B (zh) | 一种数据缓存***中的数据查询***和数据查询方法 | |
CN103229173B (zh) | 元数据管理方法及*** | |
CN104750681B (zh) | 一种海量数据的处理方法及装置 | |
Vorapongkitipun et al. | Improving performance of small-file accessing in Hadoop | |
CN103282899B (zh) | 文件***中数据的存储方法、访问方法及装置 | |
CN105677826A (zh) | 一种针对海量非结构化数据的资源管理方法 | |
CN111427847B (zh) | 面向用户自定义元数据的索引与查询方法和*** | |
CN104408111A (zh) | 一种删除重复数据的方法及装置 | |
CN106874383A (zh) | 一种分布式文件***元数据的解耦合分布方法 | |
CN102024019B (zh) | 一种分布式文件***中基于后缀树的目录组织方法 | |
CN103812939A (zh) | 一种大数据存储*** | |
CN102402602A (zh) | 一种实时数据库的b+树索引方法及装置 | |
CN103294785B (zh) | 一种基于分组的元数据服务器集群管理方法 | |
CN102184211A (zh) | 文件***和检索、写入、修改或删除文件的方法与装置 | |
CN104424219B (zh) | 一种数据文件的管理方法及装置 | |
CN104239377A (zh) | 跨平台的数据检索方法及装置 | |
CN103246700A (zh) | 基于HBase的海量小文件低延时存储方法 | |
US8880553B2 (en) | Redistribute native XML index key shipping | |
CN104408044A (zh) | 一种文件存取方法和*** | |
CN103942301B (zh) | 一种面向多数据类型访问应用的分布式文件*** | |
Shangguan et al. | Big spatial data processing with Apache Spark |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication |