名字空间统一的分散自治存储资源聚合方法转让专利

申请号 : CN201910414398.6

文献号 : CN110213352B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 肖利民韦冰秦广军霍志胜宋尧周汉杰

申请人 : 北京航空航天大学

摘要 :

本发明提出一种名字空间统一的分散自治存储资源聚合方法,首先将物理资源挂载到单机文件系统之上,提供逻辑路径到实际地址的映射,实现物理存储资源的聚合。然后在已部署单机文件系统的物理服务器上部署并行存储集群,提供存储集群读写请求到单机文件系统读写请求的转换映射,实现局部存储资源的聚合。最后在已构建的存储集群之上,设计名字空间映射和文件分配算法,建立全局名字空间,实现全局资源聚合,形成统一存储空间;为实现广域存储资源聚合架构高可用部署多个管理节点,维护和管理多个全局元数据副本,并采用同步算法来维持多个全局元数据副本之间的一致性。多个管理节点采用peer‑to‑peer结构,实现负载均衡及高可用。

权利要求 :

1.一种名字空间统一的分散自治存储资源聚合方法,首先将物理资源挂载到单机文件系统之上,提供逻辑路径到实际地址的映射,实现物理存储资源的聚合;然后在已部署单机文件系统的物理服务器上部署并行存储集群,提供存储集群读写请求到单机文件系统读写请求的转换映射,实现局部存储资源的聚合;最后在已构建的存储集群之上,设计名字空间映射和文件分配算法,建立全局名字空间,实现全局资源聚合,形成统一存储空间;

所述方法包括以下步骤:

步骤1)对广域存储资源依次进行物理存储资源聚合、局部存储资源聚合、全局存储资源聚合形成统一存储空间;

步骤2)部署多个管理节点,在每个管理节点上构建一个全局元数据副本,包含用户的数据空间信息,包括空间名称、位置,实现广域存储资源聚合架构高可用;

步骤3)基于构建的统一存储空间实现广域存储资源统一访问;

所述步骤3)包括以下步骤(3.1)至步骤(3.6):

步骤(3.1)在写入文件数据前,客户端向管理节点为当前用户申请数据空间,管理节点基于底层存储集群的信息,包括位置、存储容量、网络带宽,为用户在底层的存储集群中的开辟数据空间以存储文件,管理节点存储为用户开辟的数据空间的全局元数据信息;

步骤(3.2)在每个数据中心部署多个文件访问服务节点,每个文件访问服务节点接收客户端发送的文件数据操作、文件元数据操作请求,对文件进行实际操作并返回操作结果;

步骤(3.3)客户端访问文件时首先访问管理节点请求全局元数据信息,客户端将本地文件路径和数据空间信息拼接成实际的物理路径并发送到文件所在数据中心的文件访问服务节点,文件访问服务节点利用IO代理模块接收文件路径并调用存储集群客户端模块访问文件;

步骤(3.4)每次访问文件时,文件访问服务节点记录文件的访问信息为文件副本的建立提供依据,并在达到设定的条件时为相应文件创建副本;

步骤(3.5)在访问文件时,客户端首先访问文件的元数据,文件访问服务节点根据文件的路径判断该文件是否有副本,若有副本则将副本信息返回到客户端,客户端根据副本信息选择最优副本;

步骤(3.6)若访问的文件和客户端位于同一数据中心,则客户端直接绕过文件访问服务节点而直接访问底层存储集群,这样可有效避免文件访问服务节点成为瓶颈。

2.根据权利要求1所述的方法,其特征在于,所述步骤1)包括以下步骤:

步骤(1.1)在物理服务器上部署单机文件系统,将物理资源挂载到单机文件系统之上,对物理存储资源进行管理和调度,提供逻辑路径到实际地址的映射,实现物理存储资源的聚合;

步骤(1.2)在已部署单机文件系统的物理服务器上部署并行存储集群系统,对局部存储资源进行管理和调度,提供存储集群读写请求到单机文件系统读写请求的转换映射,实现局部存储资源的聚合;

步骤(1.3)采用结合层次目录结构和扁平目录结构的方式,对底层异构的存储集群进行统一的名字空间管理,以达到同时支持多类型存储集群的目的;采用上层一个管理节点管理整个名字空间的方法,屏蔽底层存储集群的差异;采用底层存储集群向管理节点挂载的方式,平滑管理多个底层的存储集群;

步骤(1.4)管理节点负责来自用户的操作请求,包括读写请求,由管理节点负责处理高层用户读写请求,再转化成底层存储系统的读写请求。

3.根据权利要求1所述的方法,其特征在于,所述步骤2)包括以下步骤:

步骤(2.1)部署多个管理节点用于满足客户端对全局元数据的请求;

步骤(2.2)在系统刚启动的时候,所有管理节点选举一个领导者,其它管理节点称为跟随者;

步骤(2.3)在大部分的跟随者与它们的领导者同步了状态以后就能够监听来自客户端的请求;

步骤(2.4)客户端尝试与任意一个管理节点相连接;如果连接失败了,它就尝试表中的其它管理节点,以此类推,直到它最终连接到其中一个,或者当所有管理节点都无法连接时,则连接失败,一旦与管理节点连接成功,管理节点则能够响应客户端的请求并提供元数据的读、写操作服务;

步骤(2.5)如果领导者发生故障,那么剩下的管理节点将会再次进行领导者的选举,并在新领导者被选出后继续执行任务;

步骤(2.6)如果发生故障的领导者稍后恢复了,那么它将以跟随者的身份继续运行;

步骤(2.7)客户端读取全局元数据时,任意管理节点可满足请求;

步骤(2.8)客户端更新全局元数据时,任意管理节点接收客户端发送过来的全局元数据修改请求,若接收请求的管理节点不是领导者,则将请求发送到领导者进行投票决议,当总数一半以上同意该操作,则执行元数据修改,其它未回复的管理节点也必须执行相同的操作,接收请求的管理节点向客户端返回元数据的操作结果。

4.根据权利要求1所述的方法,其特征在于,所述步骤(3.4)中,包括A,B,C三个数据中心,文件存储在数据中心C的存储集群上,客户分别在靠近数据中心A和B的位置访问了文件

4次和2次,且设置的阈值为3,则在数据中心A上为文件创建副本。

说明书 :

名字空间统一的分散自治存储资源聚合方法

技术领域:

[0001] 本发明公开了一种名字空间统一的分散自治存储资源聚合方法,涉及广域高性能计算面临的挑战,属于计算机技术领域。背景技术:
[0002] 当前,国家高性能计算环境中存储资源广域分散且隔离自治,大型计算应用迫切需要聚合分散存储资源形成虚拟数据空间,提供统一的资源访问路径,以支持应用对分散自治存储资源的统一管理和访问。在广域存储资源聚合方法的研究领域中,许多学者进行了大量的研究,总结有如下几类:面向互联网应用的广域存储资源聚合方法、面向分布式计算的广域存储资源聚合方法、面向高性能计算的广域存储资源聚合方法。
[0003] 面向互联网应用的广域存储资源聚合方法通常基于key-value的数据模型对数据进行存取,是出现较早、使用最广泛的广域存储资源聚合方法,包括基于P2P存储、基于数据库存储、基于云存储等广域存储资源聚合方法。
[0004] 在基于P2P存储方面,微软公司的PAST通过构建环形哈希空间,将存储节点通过哈希算法散列到哈希环上,将数据的key通过散列算法处理后映射到相应存储节点,系统将数据存储在该节点上,系统将多个副本存储在哈希环中与该节点相邻连续的多个节点上以确保可靠性。该系统采用分布式哈希表作为存储架构,实现简单,易于维护,没有单点瓶颈,具有良好的平衡性和扩展性。麻省理工学院的CFS、瑞典皇家理工学院的Freenet和纽约大学的Kademlia等系统将元数据存储在构建的环形哈希空间中而不直接存储数据,系统在客户端以及查找数据的路径中对数据进行缓存以提升数据访问性能,该方法有效降低了存储结点动态增加和减少时由副本迁移所引发的带宽消耗。P2P存储系统采用分布式哈希表作为存储架构,实现简单、易于维护,存储的数据能够很好的分布到所有的存储节点中,新加入的存储节点能够有效平衡系统的存储负载,存储节点的退出不会引起大量数据迁移,实现了完全分布式的存储,具有良好的平衡性和扩展性,但是由于每次数据访问都要在全网进行,造成较大的网络开销和较高的访问时延。
[0005] 在基于数据库存储方面,谷歌公司的Spanner是一个全球分布式数据库,这一存储系统实现了副本跨域同步、外部一致的全局写入事务、跨域集群负载均衡。该系统只支持key-value的存储方式,而在高性能计算环境中大多采用文件存储的方式,因此该系统无法满足高性能计算环境中对数据高效存取的需求。
[0006] 在基于云存储方面,微软公司的WAS是一个高可用的云存储系统。WAS由一个位置服务器及多个跨域集群组成,每个集群包含多个分布式存储系统。位置服务器存储用户注册信息,为每个用户分配多个分布式存储系统提供存储服务且每个分布式文件系统都保存一份完整的用户数据,保存每个分布式文件系统的入口信息,接收用户请求并转发至相应的分布式文件系统。该系统实现了全局命名空间,广域存储资源的高效利用。加州大学的SPANStore是一个多云平台的存储系统,SPANStore跨越多个云平台以提高数据副本在地域上的分布密度,实现了一个联合云存储系统。该系统由一个位置服务器及多个云平台组成,位置服务器根据每个云平台的存储价格和负载状态计算副本放置策略,采用多副本保证数据可靠性,位置服务器将每个副本的元数据发送到每个云平台,云平台采用内存表单存储元数据,元数据信息在多个云平台保持同步。客户端通过访问本平台存储的元数据信息访问相应的云存储平台获取数据。该系统实现了多个云平台存储资源的高效利用,解决了单个云平台在存储扩展性方面的瓶颈。卡尔斯鲁厄理工学院的MetaStorage是一个支持多种云存储平台集成的跨域存储系统,MetaStorage在广域范围内构建环形哈希空间,将元数据存储在哈希环中,数据存储在S3US、S3EU、App Engine、File Server和LocalFS等存储系统中,采用多副本保证数据的可靠性,该系统解决了单个云存储服务平台在可靠性和可扩展性方面的瓶颈。云存储系统有效聚合了广域存储资源,并提供了存储资源的统一管理和访问功能,但是这些系统不支持广域环境下数据的随机读写功能,无法满足高性能计算环境中应用对数据多样性访问的需求。
[0007] 面向分布式计算的广域存储资源聚合方法通常是在广域环境下构造一个分布式存储系统,并提供统一访问接口以支撑大型应用。筑波大学的Gfarm是一个跨域的分布式文件系统。它包含三个组件:元数据节点、数据节点、客户端,元数据节点采用单一元数据节点存储元数据,采用统一目录树结构组织管理元数据,元数据节点将所有元数据信息缓存在内存中以提升访问性能,元数据节点中采用线程池应对大量客户请求以避免线程资源耗尽,数据节点存储数据并周期性向元数据节点发送状态信息,数据节点的IO代理通过调用本地文件系统实现整个文件的存取,客户端通过访问元数据节点获取元数据信息以存取数据,客户端在写入数据时元数据节点根据负载状况选择负载低的数据节点写入数据。谷歌公司和耶鲁大学的CalvinFS是为实现数据中心级别的跨域容灾而设计的跨域分布式存储系统,该系统具有元数据服务节点、数据节点、客户端三个组件,采用分布式NoSql数据库对元数据进行存储和管理,数据库在不同数据中心之间保持同步,基于key-value数据模型对文件元数据进行存储,key代表绝对路径,value包含文件的属性信息例如文件类型、访问权限、目录列表、数据块位置等信息,文件被分割成多个数据块,数据块被散列存储在多个数据节点上,并采用多副本确保可靠性,该系统采用分布式NoSql数据库存储和管理元数据因此具有较好的可扩展性,系统没有单点瓶颈。广域分布式存储系统有效聚合了广域存储资源,但是单一的元数据节点限制了系统的扩展性且会成为单点瓶颈,应对大量小数据存储性能低,扁平的目录结构管理名字空间导致多文件操作性能低,造成系统性能严重下降。
[0008] 面向高性能计算的广域存储资源聚合方法通常基于现有文件系统在专用广域网络之上构建跨域存储系统或者基于广域元数据管理架构在广域存储节点之上构建跨域存储系统。印第安纳大学的Lustre-WAN是一个构建于Teragrid专用网络之上的广域并行文件系统,能够将广域存储资源进行聚合,屏蔽底层存储资源的广域分散隔离自治的特性,为上层大型计算应用提供和本地Lustre没有任何差异的数据统一管理和访问功能。克拉科夫大学的OneData在广域分散的存储节点之上构建的一个跨域文件系统,能够对底层的异构存储资源进行有效的聚合,并通过多副本机制发挥广域存储资源的聚合效应,多个用户可通过权限设置实现一个空间内的数据共享,通过采用分布式数据库管理元数据避免了单点故障,通过锁机制实现数据并发写入的一致性,具有较高的灵活性和可靠性。弗吉尼亚大学的GFFS基于全局命名空间聚合广域存储资源,通过挂载的方式将异构存储资源挂载到全局命名空间中,从而实现广域异构存储资源的统一管理和访问,GFFS通过多副本机制提升广域存储资源的聚合效应。面向高性能计算的广域存储系统实现了广域存储资源的聚合,一定程度上支撑了大型计算应用的运行,但是采用专用网络的方式不适用于当前国家高性能计算环境,采用数据库管理所有元数据的方式在元数据同步时会造成较高的性能开销,广域网络中多个副本同步时延大导致系统整体性能降低。
[0009] 传统的广域存储资源聚合方法存在的问题主要为:
[0010] 面向互联网应用的广域存储资源聚合方法基于key-value的数据模型对数据进行存取不适用于高性能计算环境,面向分布式计算的广域存储资源聚合方法采用单一的元数据节点限制了系统的扩展性,扁平目录结构管理名字空间的方法造成系统性能严重下降,面向高性能计算的广域存储资源聚合方法需专用网络支持,元数据、数据的低效同步机制导致系统整体性能降低。因此,研究适用于国家高性能计算环境的广域存储资源聚合方法,聚合广域存储资源形成统一存储空间。发明内容:
[0011] 发明的主要目的是提供一种名字空间统一的分散自治存储资源聚合方法,针对高性能计算环境中存储资源广域分散无法充分发挥聚合效应的问题,建立一种基于名字空间统一的分散自治存储资源聚合方法,基于底层的富资源管理层,建立顶层的全局瘦资源管理层,结合物理位置定位服务,实现顶层统一命名与底层异构命名的映射转换;针对单个管理节点导致广域存储资源聚合架构高可用问题,构建多个全局元数据副本,并采用同步算法来维持多个元数据副本之间的一致性实现广域存储资源聚合架构高可用。
[0012] 本发明的技术方案是:
[0013] 一种名字空间统一的分散自治存储资源聚合方法,其特征在于,首先将物理资源挂载到单机文件系统之上,提供逻辑路径到实际地址的映射,实现物理存储资源的聚合。然后在已部署单机文件系统的物理服务器上部署并行存储集群,提供存储集群读写请求到单机文件系统读写请求的转换映射,实现局部存储资源的聚合。最后在已构建的存储集群之上,设计名字空间映射和文件分配算法,建立全局名字空间,实现全局资源聚合,形成统一存储空间。
[0014] 所述方法包括以下步骤,具体如下:
[0015] 1)对广域存储资源依次进行物理存储资源聚合、局部存储资源聚合、全局存储资源聚合形成统一存储空间;
[0016] 2)部署多个管理节点,在每个管理节点上构建一个全局元数据副本,包含用户的数据空间信息,包括空间名称、位置,实现广域存储资源聚合架构高可用;
[0017] 3)基于构建的统一存储空间实现广域存储资源统一访问;
[0018] 其中,步骤1)包括以下步骤:
[0019] 步骤(1.1)在物理服务器上部署单机文件系统,将物理资源挂载到单机文件系统之上,对物理存储资源进行管理和调度,提供逻辑路径到实际地址的映射,实现物理存储资源的聚合;
[0020] 步骤(1.2)在已部署单机文件系统的物理服务器上部署并行存储集群系统,对局部存储资源进行管理和调度,提供存储集群读写请求到单机文件系统读写请求的转换映射,实现局部存储资源的聚合;
[0021] 步骤(1.3)采用结合层次目录结构和扁平目录结构的方式,对底层异构的存储集群进行统一的名字空间管理,以达到同时支持多类型存储集群的目的;采用上层一个管理节点管理整个名字空间的方法,屏蔽底层存储集群的差异;采用底层存储集群向管理节点挂载的方式,平滑管理多个底层的存储集群;
[0022] 步骤(1.4)管理节点负责来自用户的操作请求,包括读写请求等,由管理节点负责处理高层用户读写请求,再转化成底层存储系统的读写请求;
[0023] 其中,步骤2)包括以下步骤:
[0024] 步骤(2.1)部署多个管理节点用于满足客户端对全局元数据的请求;
[0025] 步骤(2.2)在系统刚启动的时候,所有管理节点选举一个领导者,其它管理节点称为跟随者;
[0026] 步骤(2.3)在大部分的跟随者与它们的领导者同步了状态以后就能够监听来自客户端的请求;
[0027] 步骤(2.4)客户端尝试与任意一个管理节点相连接。如果连接失败了,它就尝试表中的其它管理节点,以此类推,直到它最终连接到其中一个,或者当所有管理节点都无法连接时,则连接失败;一旦与管理节点连接成功,管理节点则能够响应客户端的请求并提供元数据的读、写操作服务;
[0028] 步骤(2.5)如果领导者发生故障,那么剩下的管理节点将会再次进行领导者的选举,并在新领导者被选出后继续执行任务;
[0029] 步骤(2.6)如果发生故障的领导者稍后恢复了,那么它将以跟随者的身份继续运行;
[0030] 步骤(2.7)客户端读取全局元数据时,任意管理节点可满足请求;
[0031] 步骤(2.8)客户端更新全局元数据时,任意管理节点接收客户端发送过来的全局元数据修改请求,若接收请求的管理节点不是领导者,则将请求发送到领导者进行投票决议,当总数一半以上同意该操作,则执行元数据修改,其它未回复的管理节点也必须执行相同的操作,接收请求的管理节点向客户端返回元数据的操作结果。
[0032] 其中,步骤3)包括以下步骤:
[0033] 步骤(3.1)在写入文件数据前,客户端向管理节点为当前用户申请数据空间,管理节点基于底层存储集群的信息,包括位置、存储容量、网络带宽,为用户在底层的存储集群中的开辟数据空间以存储文件,管理节点存储为用户开辟的数据空间的全局元数据信息;
[0034] 步骤(3.2)在每个数据中心部署多个文件访问服务节点,每个文件访问服务节点接收客户端发送的文件数据操作、文件元数据操作等请求,对文件进行实际操作并返回操作结果;
[0035] 步骤(3.3)客户端访问文件时首先访问管理节点请求全局元数据信息,客户端将本地文件路径和数据空间信息拼接成实际的物理路径并发送到文件所在数据中心的文件访问服务节点,文件访问服务节点利用IO代理模块接收文件路径并调用存储集群客户端模块访问文件;
[0036] 步骤(3.4)每次访问文件时,文件访问服务节点记录文件的访问信息为文件副本的建立提供依据,并在达到设定的条件时为相应文件创建副本,例如,有A,B,C三个数据中心,文件存储在数据中心C的存储集群上,客户分别在靠近数据中心A和B的位置访问了文件4次和2次,若设置的阈值为3,则需要在数据中心A上为文件创建副本;
[0037] 步骤(3.5)在访问文件时,客户端首先访问文件的元数据,文件访问服务节点根据文件的路径判断该文件是否有副本,若有副本则将副本信息返回到客户端,客户端根据副本信息选择最优副本;
[0038] 步骤(3.6)若访问的文件和客户端位于统一数据中心,则客户端直接绕过文件访问服务节点而直接访问底层存储集群,这样可有效避免文件访问服务节点称为瓶颈。
[0039] 本发明的优点包括:
[0040] 本发明所提出的名字空间统一的分散自治存储资源聚合方法,与现有技术相比,其主要优点是:
[0041] 顶层为全局瘦资源管理层,占用极少量的元数据存储空间,将传统的统一名字空间与资源定位有机结合,有效聚合分散自治资源;多个管理节点之间采用peer-to-peer结构,没有完全意义上的主节点,在多个管理节点同步状态后,任意一个管理节点都能够服务虚拟数据空间客户端的请求,均衡了管理节点的负载并能提升元数据的访问性能,实现了高可用与负载均衡;基于构建的统一存储空间支持广域存储资源统一访问,通过文件副本技术提升了广域存储资源的聚合带宽。附图说明:
[0042] 图1为名字空间统一的分散自治存储资源聚合方法实施流程图。
[0043] 图2为广域存储资源聚合架构图。
[0044] 图3为广域存储资源聚合流程图。
[0045] 图4为同步算法部署步骤图。
[0046] 图5为全局元数据修改操作步骤。
[0047] 图6为广域文件系统架构图。具体实施方式:
[0048] 以下结合附图对本发明作进一步详细的说明。
[0049] 一种名字空间统一的分散自治存储资源聚合方法,其特征在于,首先将物理资源挂载到单机文件系统之上,提供逻辑路径到实际地址的映射,实现物理存储资源的聚合。然后在已部署单机文件系统的物理服务器上部署并行存储集群,提供存储集群读写请求到单机文件系统读写请求的转换映射,实现局部存储资源的聚合。最后在已构建的存储集群之上,设计名字空间映射和文件分配算法,建立全局名字空间,实现全局资源聚合,形成统一存储空间。为实现广域存储资源聚合架构高可用部署多个管理节点,维护和管理多个全局元数据副本,并采用同步算法来维持多个全局元数据副本之间的一致性。多个管理节点采用peer-to-peer结构,实现负载均衡及高可用。
[0050] 如图1所示,是本发明的方法实施流程图。包括以下步骤:
[0051] 1)对广域存储资源依次进行物理存储资源聚合、局部存储资源聚合、全局存储资源聚合形成统一存储空间;
[0052] 2)部署多个管理节点,在每个管理节点上构建一个全局元数据(包含用户的数据空间信息,例如空间名称、位置等)副本实现广域存储资源聚合架构高可用;
[0053] 3)基于构建的统一存储空间实现广域存储资源统一访问;
[0054] 广域存储资源聚合架构如图2所示,首先进行物理资源聚合:在物理服务器上部署单机文件系统,将物理资源挂载到单机文件系统之上,对物理存储资源进行管理和调度,提供逻辑路径到实际地址的映射,实现物理存储资源的聚合;其次进行局部资源聚合:在已部署单机文件系统的物理服务器上部署并行存储集群系统,对局部存储资源进行管理和调度,提供存储集群读写请求到单机文件系统读写请求的转换映射,实现局部存储资源的聚合;最后进行全局资源聚合:在已构建的存储集群之上,设计名字空间映射和文件分配算法,建立全局名字空间,实现全局资源聚合,形成统一存储空间。为实现统一名字空间管理方法,采用结合层次目录结构和扁平目录结构的方式,对底层异构的存储集群进行统一的名字空间管理,以达到同时支持多类型存储集群的目的。采用上层一个管理节点管理整个名字空间的方法,屏蔽底层存储集群的差异;采用底层存储集群向管理节点挂载的方式,平滑管理多个底层的存储集群。此外,管理节点负责来自用户的操作请求,包括读写请求等,由管理节点负责处理高层用户读写请求,再转化成底层存储系统的读写请求。
[0055] 广域存储资源聚合的流程如图3所示,包括以下步骤:
[0056] (1)在物理服务器上部署单机文件系统,并将物理资源挂载到单机文件系统,实现物理存储资源聚合;
[0057] (2)在已经安装了单机文件系统的物理服务器上部署存储集群系统,实现局部存储资源聚合;
[0058] (3)在每个数据中心选择一台登录节点服务器作为管理节点,并将该数据中心中所有存储集群的客户端挂载到该节点上;
[0059] (4)开启守护进程用于创建存储集群基本信息表、创建存储集群负载信息表、运行同步算法,实现表格在多个管理节点中同步、转发数据请求、接收表格访问请求、接收远程数据访问请求,为避免管理节点成为热点造成性能瓶颈,在该数据中心其它登录节点上开启守护进程用于转发数据请求、接收远程数据读写请求,实现多个登录节点的负载均衡;
[0060] (5)在每个管理节点上开启一个进程,将该数据中心中已部署的存储集群基本信息(包括存储集群名称及ID号、存储集群所在数据中心名称及ID号、挂载存储集群客户端的登录节点IP地址等)发送到本节点的守护进程,守护进程接收到存储集群基本信息后,更新存储集群基本信息表并同步;
[0061] (6)每个管理节点的守护进程周期性采集该数据中心已部署的存储集群负载信息(包括存储集群已用空间、可用空间、总空间等),更新到存储集群的负载信息表中并同步。上述负载信息可被用于空间分配及负载均衡决策中。
[0062] 同步算法部署步骤如图4所示,包括以下步骤:
[0063] (1)在系统刚启动的时候,所有管理节点选举一个领导者;
[0064] (2)在大部分的跟随者与它们的领导者同步了状态以后就能够监听来自客户端的请求;
[0065] (3)客户端尝试与任意一个管理节点相连接。如果连接失败了,它就尝试表中的其它管理节点,以此类推,直到它最终连接到其中一个,或者当所有管理节点都无法连接时,则连接失败。一旦与管理节点连接成功,管理节点则能够响应客户端的请求并提供元数据的读、写操作服务;
[0066] (4)所有的写操作请求被传送给领导者,并通过广播将更新信息告诉跟随者。当大部分跟随者执行了修改后,领导者就提交更新操作,客户端将得到更新成功的回应;
[0067] (5)如果领导者发生故障,那么剩下的管理节点将会再次进行领导者的选举,并在新领导者被选出后继续执行任务;
[0068] (6)如果发生故障的领导者稍后恢复了,那么它将以跟随者的身份继续运行。
[0069] 基于部署的同步算法对元数据进行修改。对元数据的修改操作步骤如图5所示。包括以下步骤:
[0070] (1)任意管理节点接收客户端发送过来的元数据修改请求;
[0071] (2)若接收请求的管理节点不是领导者,则将请求发送到领导者进行投票决议;
[0072] (3)领导者向跟随者发起投票决议;
[0073] (4)当总数一半以上同意该操作,则执行元数据修改,其它未回复的管理节点也必须执行相同的操作;
[0074] (5)接收请求的管理节点向客户端返回元数据的操作结果。
[0075] 广域文件系统架构如图6所示,客户机节点通过客户端访问远程文件,客户端首先通过管理节点中的空间管理模块获取全局元数据信息(包含用户的数据空间信息,例如空间名称、位置等),客户端将本地文件路径和数据空间信息拼接成实际的物理路径并发送到文件所在数据中心的文件访问服务节点利用IO代理模块接收文件路径并调用存储集群客户端模块访问文件,并将文件数据返回。
[0076] 最后所应说明的是:本发明还可有其它多种应用场景,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明的保护范围。