一种云存储系统中元数据的获取方法
【专利摘要】本发明公开了一种云存储系统中元数据的获取方法,包括:客户端将用户的登录信息发送给认证服务器,认证服务器根据该登录信息判断该用户是否存在,如果用户存在,则认证服务器将登录信息发送给命名空间服务器,命名空间服务器根据该登录信息获取用户信息,并根据用户信息获取该命名空间服务器中该用户的目录子树,对用户目录子树进行组织,以生成新的用户目录树,并将新的用户目录树返回给客户端,客户端根据组织结果判断获取用户目录树是否成功,若成功则命名空间服务器传送用户目录树给客户端,其中传输是采用xml文件形式,本发明能够解决现有方法中存在的用户每次访问数据之前都要向元数据服务器请求元数据,从而影响用户访问数据的速度的问题。
【专利说明】—种云存储系统中元数据的获取方法
【技术领域】
[0001]本发明属于云存储领域,更具体地,涉及一种云存储系统中元数据的获取方法。
【背景技术】
[0002]随着互联网数据量的爆炸式增长,如何高效、可靠、稳定的存储这些数据变得十分迫切,因此云存储也成为网络存储领域的研究热点。为了获得更高的系统扩展性和高访问速度,云存储系统会采用数据和元数据分离的方式,在数据访问之前会先获取元数据,根据元数据定位数据,在这些存储系统中,如何组织和获取元数据就变得尤为关键,会成为影响云存储系统性能的重要因素。
[0003]数据与元数据分离的存储系统往往会采用集中式元数据服务模型或分布式元数据服务模型,在这两种服务模型中,用户每次访问数据之前都需要向元数据服务器请求元数据,根据元数据获得数据存放位置信息,然后进行数据访问,尤其是当用户访问变得非常频繁时,元数据服务器负载会变大,并发响应能力下降,从而影响对用户元数据请获得处理响应,影响用户访问数据的速度。
【发明内容】
[0004]针对现有技术的以上缺陷或改进需求,本发明提供了一种云存储系统中元数据的获取方法,其目的在于解决现有方法中存在的用户每次访问数据之前都要向元数据服务器请求元数据,根据元数据获得数据存放位置信息,然后进行数据访问,从而影响用户访问数据的速度的技术问题。
[0005]为实现上述目的,按照本发明的一个方面,提供了一种云存储系统中元数据的获取方法,是应用在一种三层架构的云存储系统中,该云存储系统包括客户端、认证服务器、元数据服务器、命名空间服务器以及数据存储服务器,所述方法包括以下步骤:
[0006](I)客户端将用户的登录信息发送给认证服务器;
[0007](2)认证服务器根据该登录信息判断该用户是否存在,若不存在则给出认证失败提示,则过程结束;如果用户存在,则转入步骤(3);
[0008](3)认证服务器将登录信息发送给命名空间服务器;
[0009](4)命名空间服务器根据该登录信息获取用户信息,并根据用户信息获取该命名空间服务器中该用户的目录子树,对用户目录子树进行组织,以生成新的用户目录树,并将新的用户目录树返回给客户端;
[0010](5)客户端根据组织结果判断获取用户目录树是否成功,若成功则转入步骤(6),否则过程结束;
[0011](6)命名空间服务器传送用户目录树给客户端,其中传输是采用xml文件形式;
[0012](7)客户端判断是否完全接收该xml文件,如果接收失败,则给出xml接收失败提示,过程结束,否则转入步骤(8);
[0013](8)客户端对该xml文件进行解析,并对该xml文件中的每个资源对象生成一个〈对象的全路径,对象的全路径的哈希值,对象的存放位置信息 > 的条目信息,并将该条目信息缓存在客户端。
[0014]优选地,用户信息包括用户的名称、用户的登录时间、用户的访问权限,用户目录子树包括用户名节点、桶名节点、资源对象节点。
[0015]优选地,对用户目录子树进行组织的过程具体包括以下子步骤:
[0016](4-1)命名空间服务器根据用户信息判断其维护的全局目录树中该用户对应的节点是否存在,如果不存在,则命名空间服务器向客户端发送出错提示,然后过程结束,如果存在则转入步骤(4-2);
[0017](4-2)对该用户目录子树中的一个资源对象(即叶子节点)利用树的遍历算法获得从根到该资源对象的全路径,对该资源对象的全路径作MD5哈希计算,以得到对应的哈希值;
[0018](4-3)以哈希值为键值从元数据服务器中得到对应的值,包括资源对象详细信息、副本信息、副本状态信息(即是否为脏数据);
[0019](4-4)将资源对象详细信息、副本信息、副本状态信息分别作为子节点添加到该资源对象下;
[0020](4-5)判断该用户目录子树中所有资源对象的子节点是否都已经添加完毕,如果没有,则返回步骤(4-2),如果添加完毕,则发送给客户端一个成功提示,添加完毕的所有子节点构成用户目录树。
[0021]优选地,全局目录树分成四层:第一层为根节点,第二层为用户名节点,第三层等为桶名节点,第四层为资源对象节点。
[0022]优选地,用户目录树分成四层:第一层为用户名节点;第二层为桶名节点,第三层为资源对象节点,第四层为资源对象的元数据信息。
[0023]优选地,资源对象的元数据信息包括资源对象详细信息、副本信息、副本状态信
肩、O
[0024]总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
[0025]1、用户首次登陆时就获取该用户所有资源对象的元数据信息并且缓存在客户端,这样,用户下次访问某个资源对象时,就可以直接检索客户端缓存,获取资源对象的存放位置信息,进行资源对象访问,从而避免客户端每次访问某个资源对象之前先要向元数据服务器请求该资源对象的元数据的流程,加快了资源对象访问速度。
[0026]2、当元数据服务器因某种原因,临时宕机时,用户依然可以根据客户端缓存的资源对象元数据信息定位资源对象存放位置,进行资源对象访问。
【专利附图】
【附图说明】
[0027]图1是本发明云存储系统中元数据的获取方法中全局目录树结构图。
[0028]图2是本发明云存储系统中元数据的获取方法中用户目录树结构图。
[0029]图3是本发明云存储系统中元数据的获取方法的流程图。
【具体实施方式】[0030]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
[0031]本发明的整体思路在于用户首次登陆时,命名空间服务器获取用户信息后,根据其维护的全局目录树和元数据服务器维护的资源对象的元数据信息生成用户目录树,返回给客户端,客户端获得用户目录树,解析用户目录树,生成该用户所有资源对象存放位置的条目信息,并且缓存在客户端,这样,用户下次访问某个资源对象时,就可以直接检索本地缓存,获取资源对象的存放位置信息,直接定位到资源对象存放位置,进行访问,从而避免客户端每次访问某个资源对象之前先要向元数据服务器请求该资源对象的元数据的流程,加快访问速度。
[0032]如图3所示,本发明云存储系统中元数据的获取方法是应用在一种三层架构的云存储系统中,该云存储系统包括客户端、认证服务器、元数据服务器、命名空间服务器以及数据存储服务器,该方法包括以下步骤:
[0033](I)客户端将用户的登录信息发送给认证服务器;
[0034](2)认证服务器根据该登录信息判断该用户是否存在,若不存在则给出认证失败提示,则过程结束;如果用户存在,则转入步骤(3);
[0035](3)认证服务器将登录信息发送给命名空间服务器;
[0036](4)命名空间服务器根据该登录信息获取用户信息,并根据用户信息获取该命名空间服务器中该用户的目录子树,对用户目录子树进行组织,以生成新的用户目录树,并将新的用户目录树返回给客户端;具体而言,用户信息包括用户的名称、用户的登录时间、用户的访问权限等;用户目录子树如图1中虚线方框所示,用户目录子树包括用户名节点、桶名节点、资源对象节点。对用户目录子树进行组织的过程具体包括以下子步骤:
[0037](4-1)命名空间服务器根据用户信息判断其维护的全局目录树中该用户对应的节点是否存在,如果不存在,则命名空间服务器向客户端发送出错提示,然后过程结束,如果存在则转入步骤(4-2);具体如图1所示,全局目录树分成四层:第一层为根节点,是所有用户的父节点;第二层clientl等为用户名节点,由clientl作根节点的一棵子树就是用户clientl的用户目录子树,也就是图中虚线方框部分;第三层bucketl等为桶名节点(相当于用户拥有的文件夹);第四层object为资源对象节点(相当于具体文件);
[0038](4-2)对该用户目录子树中的一个资源对象(即叶子节点)利用树的遍历算法获得从根到该资源对象的全路径,对该资源对象的全路径作MD5哈希计算,以得到对应的哈希值;
[0039](4-3)以哈希值为键值从元数据服务器中得到对应的值,包括资源对象详细信息、副本信息、副本状态信息(即是否为脏数据);
[0040](4-4)将资源对象详细信息、副本信息、副本状态信息分别作为子节点添加到该资源对象下;
[0041](4-5)判断该用户目录子树中所有资源对象的子节点是否都已经添加完毕,如果没有,则返回步骤(4-2),如果添加完毕,则发送给客户端一个成功提示,添加完毕的所有子节点构成用户目录树,如图2所示,用户目录树分成四层:第一层clientl等为用户名节点;第二层bucketl等为桶名节点(相当于用户拥有的文件夹);第三层object为资源对象节点(相当于具体文件);第四层为资源对象的元数据信息,包括资源对象详细信息、副本信息、副本状态信息(即是否为脏数据);用户目录树的存储采用xml文件。
[0042](5)客户端根据组织结果判断获取用户目录树是否成功,若成功则转入步骤(6),否则过程结束;具体而言,客户端判断组织结果中是否包含有成功提示,如果没有则表示获取用户目录树失败,否则表示成功;
[0043](6)命名空间服务器传送用户目录树给客户端;具体而言,用户目录树传输采用xml文件形式;
[0044](7)客户端判断是否完全接收该xml文件,如果接收失败,则给出xml的接收失败提示,过程结束,否则转入步骤(8);具体而言,客户端在接收xml文件之前会和命名空间服务器进行协商(Negotiation),协商要传输的xml文件的大小信息以及客户端是否准备完毕的信息;
[0045](8)客户端对该xml文件进行解析,并对该xml文件中的每个资源对象生成一个〈对象的全路径,对象的全路径的哈希值,对象的存放位置信息 > 的条目信息,并将该条目信息缓存在客户端。具体而言,解析xml采用libxml2程序库进行。
[0046]通过本发明的上述方法,用户首次登陆时就获取该用户所有资源对象的元数据信息并且缓存在客户端,这样,用户下次访问某个资源对象时,就可以直接检索客户端缓存,获取资源对象的存放位置信息,进行资源对象访问,从而避免客户端每次访问某个资源对象之前先要向元数据服务器请求该资源对象的元数据的流程,加快了资源对象访问速度。
[0047]此外,当元数据服务器因某种原因,临时宕机时,用户依然可以根据客户端缓存的资源对象元数据信息定位资源对象存放位置,进行资源对象访问。
[0048]本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种云存储系统中元数据的获取方法,是应用在一种三层架构的云存储系统中,该云存储系统包括客户端、认证服务器、元数据服务器、命名空间服务器以及数据存储服务器,其特征在于,所述方法包括以下步骤: (1)客户端将用户的登录信息发送给认证服务器; (2)认证服务器根据该登录信息判断该用户是否存在,若不存在则给出认证失败提示,则过程结束;如果用户存在,则转入步骤(3); (3)认证服务器将登录信息发送给命名空间服务器; (4)命名空间服务器根据该登录信息获取用户信息,并根据用户信息获取该命名空间服务器中该用户的目录子树,对用户目录子树进行组织,以生成新的用户目录树,并将新的用户目录树返回给客户端; (5)客户端根据组织结果判断获取用户目录树是否成功,若成功则转入步骤(6),否则过程结束; (6)命名空间服务器传送用户目录树给客户端,其中传输是采用xml文件形式; (7)客户端判断是否完全接收该xml文件,如果接收失败,则给出xml接收失败提示,过程结束,否则转入步骤(8); (8)客户端对该xml文件进行解析,并对该xml文件中的每个资源对象生成一个〈对象的全路径,对象的全路径的哈希值,对象的存放位置信息〉的条目信息,并将该条目信息缓存在客户端。
2.根据权利要求1所述的获取方法,其特征在于,用户信息包括用户的名称、用户的登录时间、用户的访问权限,用户目录子树包括用户名节点、桶名节点、资源对象节点。
3.根据权利要求1所述的获取方法,其特征在于,对用户目录子树进行组织的过程具体包括以下子步骤: (4-1)命名空间服务器根据用户信息判断其维护的全局目录树中该用户对应的节点是否存在,如果不存在,则命名空间服务器向客户端发送出错提示,然后过程结束,如果存在则转入步骤(4-2); (4-2)对该用户目录子树中的一个资源对象(即叶子节点)利用树的遍历算法获得从根到该资源对象的全路径,对该资源对象的全路径作MD5哈希计算,以得到对应的哈希值; (4-3)以哈希值为键值从元数据服务器中得到对应的值,包括资源对象详细信息、副本信息、副本状态信息(即是否为脏数据); (4-4)将资源对象详细信息、副本信息、副本状态信息分别作为子节点添加到该资源对象下; (4-5)判断该用户目录子树中所有资源对象的子节点是否都已经添加完毕,如果没有,则返回步骤(4-2),如果添加完毕,则发送给客户端一个成功提示,添加完毕的所有子节点构成用户目录树。
4.根据权利要求3所述的获取方法,其特征在于,全局目录树分成四层:第一层为根节点,第二层为用户名节点,第三层等为桶名节点,第四层为资源对象节点。
5.根据权利要求3所述的获取方法,其特征在于,用户目录树分成四层:第一层为用户名节点;第二层为桶名节点,第三层为资源对象节点,第四层为资源对象的元数据信息。
6.根据权利要求5所述的获取方法,其特征在于,资源对象的元数据信息包括资源对象详细信息、副本 信息、副本状态信息。
【文档编号】G06F17/30GK103685453SQ201310413124
【公开日】2014年3月26日 申请日期:2013年9月11日 优先权日:2013年9月11日
【发明者】周可, 王桦, 刘鹏, 陈寨寨, 廖正霜 申请人:华中科技大学