一种智能哈希数据布局方法、集群存储系统及其方法转让专利

申请号 : CN201210287274.4

文献号 : CN102855294B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘爱贵

申请人 : 北京联创信安科技股份有限公司

摘要 :

本发明公开了一种智能哈希数据布局方法、集群存储系统及其方法,智能哈希数据布局方法用于对一个数据卷中的存储节点进行布局,数据以目录为基本单位进行哈希分布,文件的父目录利用扩展属性记录存储节点的映射信息,子文件在父目录所属存储节点中进行分布。子文件在父目录所属存储节点中进行分布具体包括如下情况之一:所述子文件在父目录所属存储节点中进行散列分布;所述子文件在父目录所属存储节点中进行条带二级分布;所述子文件在父目录所属存储节点中进行复制二级分布;所述子文件在父目录所属存储节点中先进行条带二级分布再进行复制三级分布。本发明的方法和系统可显著提高集存存储系统的扩展性、性能、可用性和适用性,可极大减小存储服务器的负载压力。

权利要求 :

1.一种智能哈希数据布局方法,用于对一个数据卷中的存储节点进行布局,其特征在于,数据以目录为基本单位进行哈希分布,文件的父目录利用扩展属性记录存储节点的映射信息,子文件在父目录所属存储节点中进行分布,所述子文件在父目录所属存储节点中进行分布具体包括如下情况之一:所述子文件在父目录所属存储节点中进行条带二级分布;所述子文件在父目录所属存储节点中进行复制二级分布;所述子文件在父目录所属存储节点中先进行条带二级分布再进行复制三级分布;

其中,对所述存储节点预设容量阈值,在将目标文件写入目标存储节点之前,判断所述目标存储节点的可用存储容量是否在所述预设容量阈值以下,若是则将所述目标文件写入所述目标存储节点,否则将所述目标文件写入优先队列中容量负载最小的存储节点并创建一个从所述目标存储节点至所述容量负载最小的存储节点的文件链接。

2.如权利要求1所述的智能哈希数据布局方法,其特征在于,所述方法还包括写新数据操作,所述写新数据操作包括:S1、存储客户端对请求文件名计算哈希值;

S2、所述存储客户端根据内存中维护的数据分布集群节点,向各所述数据分布集群节点请求所述请求文件的父目录的哈希分布信息;

S3、使用所述哈希值在所述父目录的哈希分布信息中查找所述请求文件的目标存储节点;

S4、判断所述目标存储节点的可用存储容量是否在预设的容量阈值以下,若是则确定所述目标存储节点为所述请求文件的实际存储节点并执行步骤S6,否则执行步骤S5;

S5、从优先队列中选择容量负载最小的存储节点作为所述请求文件的实际存储节点,并创建一个从所述目标存储节点至所述实际存储节点的文件链接,执行步骤S6;

S6、所述存储客户端与所述实际存储节点直接进行I/O请求,写入新数据。

3.如权利要求2所述的智能哈希数据布局方法,其特征在于,所述智能哈希数据布局方法还包括采用后台自动负载均衡技术对存储节点进行负载平滑处理。

4.一种集群存储系统,包括存储客户端和存储服务器集群,其特征在于,每个存储服务器集群对应一个数据卷,每个数据卷采用一种数据布局方法对所述数据卷中的存储节点进行布局,每个数据卷包括一个数据布局配置文件;

所述数据布局方法包括如权利要求1至3之一所述的智能哈希数据布局方法;

所述数据布局配置文件包括对应数据卷相关的存储节点集合、对应数据卷的数据布局方法以及对应数据卷的分配策略;

所述存储客户端在启动时将需要的数据卷的数据布局配置文件装载到内存中,所述存储客户端利用数据卷的数据布局配置文件对所述数据卷的元数据操作和I/O数据操作进行协调和控制。

5.如权利要求4所述的集群存储系统,其特征在于,所述数据布局方法还包括:数据以块为基本单位进行条带分布;数据以目录为基本单位进行复制分布;数据以块为基本单位进行条带一级分布再进行复制二级分布。

6.一种集群存储方法,包括数据存储方式和数据布局方法,该方法基于包括存储客户端和存储服务器集群的系统实现,其特征在于,每个存储服务器集群对应一个数据卷,每个数据卷采用一种数据布局方法对所述数据卷中的存储节点进行布局;

所述数据存储的方式包括,每个数据卷包括一个数据布局配置文件,所述数据布局配置文件包括对应数据卷相关的存储节点集合、对应数据卷的数据布局方法以及对应数据卷的分配策略,存储客户端在启动时将需要的数据卷的数据布局配置文件装载到内存中,所述存储客户端利用数据卷的数据布局配置文件对所述数据卷的元数据操作和I/O数据操作进行协调和控制;

所述数据布局方法包括如权利要求1至3之一所述的智能哈希数据布局方法。

7.如权利要求6所述的集群存储方法,其特征在于,所述数据布局方法还包括:数据以块为基本单位进行条带分布;数据以目录为基本单位进行复制分布;数据以块为基本单位进行条带一级分布再进行复制二级分布。

说明书 :

一种智能哈希数据布局方法、集群存储系统及其方法

技术领域

[0001] 本发明涉及数据存储技术领域,尤其涉及一种智能哈希数据布局方法、集群存储系统及其方法。

背景技术

[0002] 云存储和大数据背景下,数据呈现爆炸式增长趋势。根据研究显示,2020年数字宇宙将达到35.2ZB,比2009年的0.8ZB猛增44倍,这其中80%以上为非结构化数据。高性能计算、医学影像、石油和天然气勘探、数字媒体和社会化WEB等大量数据密集型应用导致数据的井喷,不断对存储方法提出新的严峻挑战。集群存储是一种横向扩展(Scale-out)存储架构,具有容量和性能线性扩展的优势,已经得到全球市场的广泛认可。集群存储技术其中涉及两大关键问题,即元数据管理和数据布局,这两者直接决定着系统的扩展性、性能和可靠性等特性。
[0003] 集群存储现有技术方案主要是采用专用元数据服务来管理元数据,数据布局信息也保存在元数据服务器上。集中式或分布式元数据管理存在性能瓶颈、单点故障、数据一致性等一系列相关问题,直接影响到系统性能和扩展性。数据布局方式主要采用条带(Stripe)、镜像(Mirror)、哈希(Hash)、一致性哈希(DHT)等方式,它们普通存在的问题是可扩展性不高,当集群规模扩展时大量数据需要迁移并重新分布。其中,哈希和一致性哈希还存在数据分布不均衡的问题。另外,不同数据布局方式在性能、可用性和扩展性方面有不同表现,而在特定集群存储工程实现中往往只会采用单一或两种简单组合的方式,适用的数据负载有限,降低了集群存储系统的应用范围。
[0004] 集群(Cluster)是由多个节点构成的一种松散耦合的节点集合,协同起来对外提供服务。集群主要分为高性能集群HPC(High Performance Cluster)、高可用集群HAC(High Availablity Cluster)和负载均衡集群LBC(Load Balancing Cluster)。集群存储系统是指协同多个节点提供高性能、高可用或负载均衡的存储服务系统,消除单点故障和性能瓶问题,并且具有Scale-Out横向高扩展能力,实现容量和性能线性扩展。集群存储技术其中涉及两大关键问题,即元数据管理和数据布局,这两者直接决定着系统的扩展性、性能和可靠性等特性。集群存储现有技术方案主要是采用专用元数据服务来存储和管理数据布局信息,数据布局方式主要采用条带(Stripe)、镜像(Mirror)、哈希(Hash)、一致性哈希(DHT)等方式。
[0005] 基于元数据服务的数据布局管理模型如图1所示,元数据服务器记录存储服务器集群信息和数据布局信息,并进行数据布局管理。该模型下,请求数据前需要向元数据服务请求数据布局信息,读数据直接返回对应的布局信息,写新数据需要为其分配布局信息,更新或追加数据可能需要修改布局信息。这些都由元数据服务处理,之后把数据布局信息返回给存储客户端。客户端获取到数据对应的布局信息,即可确定数据位于存储服务器集群的具体位置,然后直接向相关存储服务器请求数据并处理响应,这个过程是可以并发进行的。不难发现,数据布局管理依赖于元数据服务器,集中式元数据服务模型存在性能瓶颈和单点故障问题,分布式元数据服务模型解决了上述两个问题,但同时引入了设计复杂性、性能开销和元数据同步一致性等问题,这些问题直接影响到系统性能和扩展性。
[0006] 条带(Stripe)相当于RAID0,即分片存储。RAID0由多块磁盘组成,数据条带技术将数据以块的方式分布存储在多个磁盘中,从而可以对数据进行并发处理。这样写入和读取数据就可以在多个磁盘上同时进行,并发产生非常高的聚合I/O,有效提高了整体I/O性能,而且具有良好的线性扩展性。这对大容量数据尤其显著,如果不分块,数据只能按顺序存储在磁盘阵列的磁盘上,需要时再按顺序读取。而通过条带技术,可获得数倍与顺序访问的性能提升。集群存储中的条带分布与此相似,数据被划分成固定长度的数据分片以Round-Robin轮转方式存储在多个存储节点上,如图2所示。采用条带方式,数据分布在多个存储节点上,读写操作可以在多个节点上并发执行,提高了多用户访问的并发度和聚合I/O带宽,这是集群存储提供高性能的重要方法。条带能够突破单个节点容量限制,提供超大容量数据支持。另外,条带还可以提高存储空间利用率,避免单个存储节点容量不足而总容量有余时写入数据失败的情况发生,并且能够维持节点之间的容量负载均衡。数据条带技术的分块大小选择非常关键,分块粒度越小,并行处理能力就越强,数据存取速度就越高,但同时就会增加处理开销。实际应用中,要根据数据特征和需求来选择合适的分块大小,在数据存取随机性和并发处理能力之间进行平衡,以争取尽可能高的整体性能。数据条带是基于提高I/O性能而提出的,也就是说它只关注性能,而对数据可靠性、可用性没有任何改善。实际上,其中任何一个分块损坏都会导致整个数据不可用,采用数据条带技术反而增加了数据发生丢失的概率。
[0007] 镜像(Mirror)相当于RAID1,是一种冗余技术用来提高可用性。RAID1为磁盘提供保护功能,防止磁盘发生故障而造成数据丢失。它会同时在阵列中产生两个完全相同的数据副本,分布在两个不同的磁盘驱动器组上。镜像提供了完全的数据冗余能力,当一个数据副本失效不可用时,外部系统仍可正常访问另一副本,不会对应用系统运行和性能产生影响。而且,镜像不需要额外的计算和校验,故障修复非常快,直接复制即可。镜像技术可以从多个副本进行并发读取数据,提供更高的读I/O性能,但不能并行写数据,写多个副本会会导致一定的I/O性能降低。集群存储中的镜像通常称为复制(Replication),可以实现两路及以上的多路复制,如图3所示。采用镜像方式,同一份数据会在多个存储节点上保留多份,用于提高可用性和并发读性能,这个与复制数量成正比。复制技术提供了非常高的数据安全性,其代价也是非常昂贵的,一是存储效率低于50%(1/复制数量),二是写性能下降,二是复制一致性问题复杂。镜像主要用于提高数据可用性,但高成本等问题限制了镜像的广泛应用,主要应用于至关重要的数据保护。
[0008] 哈希方式是集群存储最为常见的数据分布方式,其方法是按照数据的某一特征计算哈希值,并将哈希值与集群中的存储节点建立映射关系,从而将不同哈希值的数据分布到不同的节点上,如图4所示。数据特征可以是本体相关的,如文件名,也可以是与应用逻辑相关的值,如用户ID。哈希方式相当于一张大哈希表,每个存储节点相当于哈希桶,被分配一段哈希范围区间,数据根据哈希值分布到各个桶中。只要哈希函数的散列特性较好,哈希方式可以为均匀地将数据分布到集群中去。哈希方式要记录的元信息也非常简单,任何时候节点只需知道哈希函数的计算方式以及存储节点的哈希值范围,就可以确定数据所在的节点位置。哈希分布数据的缺点突出表现为可扩展性不高,一旦集群规模需要扩展,由于节点哈希范围发生变化,导致几乎所有的数据都被迁移并重新分布。另一个重要问题是,一旦所采用数据特征值的数据严重不均,则会出现负载严重不均衡的状态。这种情况下,如果某个存储节点负载过大,有可能扩展集群规模也无法解决负载不均衡的状态。
[0009] 一致性哈希是另一种在工程中使用较为广泛的数据分布方式,最初在P2P网络中作为分布式哈希表(DHT)的常用数据分布算法,如图5所示。一致性哈希的基本方式是使用一个哈希函数计算数据或数据特征的哈希值,令该哈希函数的输出值域为一个封闭的环,即哈希函数输出的最大值是最小值的前序。将节点随机分布到这个环上,每个节点负责处理从自己开始顺时针至下一个节点的全部哈希值域上的数据。哈希分布数据的方式在集群扩容时非常复杂,往往需要倍增节点个数,与此相比,一致性哈希的优点在于可以任意动态添加、删除节点,每次仅影响一致性哈希环上相邻怕节点。使用一致性哈希的方式需要将节点在一致性哈希环上的位置作为元信息加以管理,这点比直接使用哈希分布数据的方式要复杂。最基本的一致性哈希算法有很明显的缺点,随机分布节点的方式使得很难均匀地分布哈希值域,尤其在动态增加节点后,即使原先的分布均匀也很难保证继续均匀,由此带来的另一个较为严重的缺点是,当一个节点异常时,该节点的压力全部转移到相邻的一个节点,当加入一个新节点时只能为一个相邻节点分摊压力。为此一种常见的改进算法是引入虚拟节点的概念,系统初始时就创建许多虚节点,虚节点的个数一般远大于实际集群物理节点的数量,将虚节点均匀分布到一致性哈希值域上,其功能与基本一致性哈希算法中的节点相同。为每个节点分配若干虚节点,操作数据时,首先通过数据的哈希值在环上找到对应的虚节点,进而查找到元数据找到对应的真实节点。虚拟节点方法优点之一是,一个节点不可用时可由多个节点来分担压力,另一个是新节点可以负载多个原有节点的压力,从全局看,较容易实现扩容时的负载均衡。
[0010] 现有集群存储技术主要采用专用元数据服务来管理数据布局,包括数据布局的分配策略和数据布局信息的持久存储。这种方法依赖元数据服务器,集中式或分布式元数据管理存在性能瓶颈、单点故障、数据一致性等一系列相关问题,直接影响到系统性能和扩展性。

发明内容

[0011] 为了使集群存储系统实现线性性能扩展,使得存储服务器的负载压力减小,本发明提出了一种智能哈希数据布局方法,用于对一个数据卷中的存储节点进行布局,数据以目录为基本单位进行哈希分布,文件的父目录利用扩展属性记录存储节点的映射信息,子文件在父目录所属存储节点中进行分布。
[0012] 进一步地,对所述存储节点预设容量阈值,在将目标文件写入目标存储节点之前,判断所述目标存储节点的可用存储容量是否在所述预设容量阈值以下,若是则将所述目标文件写入所述目标存储节点,否则将所述目标文件写入优先队列中容量负载最小的存储节点并创建一个从所述目标存储节点至所述容量负载最小的存储节点的文件链接。
[0013] 进一步地,所述方法还包括写新数据操作,所述写新数据操作包括:
[0014] S1、存储客户端对请求文件名计算哈希值;
[0015] S2、所述存储客户端根据内存中维护的数据分布集群节点,向各所述数据分布集群节点请求所述请求文件的父目录的哈希分布信息;
[0016] S3、使用所述哈希值在所述父目录的哈希分布信息中查找所述请求文件的目标存储节点;
[0017] S4、判断所述目标存储节点的可用存储容量是否在预设的容量阈值以下,若是则确定所述目标存储节点为所述请求文件的实际存储节点并执行步骤S6,否则执行步骤S5;
[0018] S5、从优先队列中选择容量负载最小的存储节点作为所述请求文件的实际存储节点,并创建一个从所述实际存储节点至所述目标存储节点的文件链接,执行步骤S6;
[0019] S6、所述存储客户端与所述实际存储节点直接进行I/O请求,写入新数据。
[0020] 进一步地,所述智能哈希数据布局方法还包括采用后台自动负载均衡技术对存储节点进行负载平滑处理。
[0021] 进一步地,所述子文件在父目录所属存储节点中进行分布具体包括如下情况之一:所述子文件在父目录所属存储节点中进行条带二级分布;所述子文件在父目录所属存储节点中进行复制二级分布;所述子文件在父目录所属存储节点中先进行条带二级分布再进行复制三级分布。
[0022] 本发明还提出了一种集群存储系统,包括存储客户端和存储服务器集群,每个存储服务器集群对应一个数据卷,每个数据卷采用一种数据布局方法对所述数据卷中的存储节点进行布局,每个数据卷包括一个数据布局配置文件;
[0023] 所述数据布局方法包括智能哈希数据布局方法;
[0024] 所述数据布局配置文件包括对应数据卷相关的存储节点集合、对应数据卷的数据布局方法以及对应数据卷的分配策略;
[0025] 所述存储客户端在启动时将需要的数据卷的数据布局配置文件装载到内存中,所述存储客户端利用数据卷的数据布局配置文件对所述数据卷的元数据操作和I/O数据操作进行协调和控制。
[0026] 进一步地,所述数据布局方法还包括:数据以块为基本单位进行条带分布;数据以目录为基本单位进行复制分布;数据以块为基本单位进行条带一级分布再进行复制二级分布。
[0027] 本发明还提出了一种集群存储方法,该方法基于包括存储客户端和存储服务器集群的系统实现,每个存储服务器集群对应一个数据卷,每个数据卷采用一种数据布局方法对所述数据卷中的存储节点进行布局,包括数据存储方式和数据布局方法;
[0028] 所述数据存储的方式包括,每个数据卷包括一个数据布局配置文件,所述数据布局配置文件包括对应数据卷相关的存储节点集合、对应数据卷的数据布局方法以及对应数据卷的分配策略,存储客户端在启动时将需要的数据卷的数据布局配置文件装载到内存中,所述存储客户端利用数据卷的数据布局配置文件对所述数据卷的元数据操作和I/O数据操作进行协调和控制;
[0029] 所述数据布局方法包括智能哈希数据布局方法。
[0030] 进一步地,所述数据布局方法还包括:数据以块为基本单位进行条带分布;数据以目录为基本单位进行复制分布;数据以块为基本单位进行条带一级分布再进行复制二级分布。
[0031] 本发明的方法和系统不需要元数据服务器保存数据布局信息,消除了对元数据服务器的依赖,避免了元数据管理的性能瓶颈、单点故障、数据一致性等一系列相关问题,可显著提高集存存储系统的扩展性、性能、可用性和适用性,可极大减小存储服务器的负载压力。

附图说明

[0032] 图1是背景技术中基于元数据服务的数据布局管理模型;
[0033] 图2是背景技术中条带数据分布模式;
[0034] 图3是背景技术中镜像数据分布模式;
[0035] 图4是背景技术中哈希数据分布模式;
[0036] 图5是背景技术中一致性哈希数据分布模式;
[0037] 图6是本发明实施例一所述智能哈希数据布局方法的写新数据流程图;
[0038] 图7是本发明实施例一所述一种智能哈希数据布局模式;
[0039] 图8是本发明实施例二所述集群存储系统结构示意图。

具体实施方式

[0040] 下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。
[0041] 实施例一
[0042] 本发明实施例公开了一种智能哈希数据布局方法,用于对一个数据卷中的存储节点进行布局,数据以目录为基本单位进行哈希分布,文件的父目录利用扩展属性记录存储节点的映射信息,子文件在父目录所属存储节点中进行分布。
[0043] 本实施例所述智能哈希数据布局方法采用哈希数据分布作为基础分布算法,并进一步地对扩展性、数据迁移和重新分布、分布不均衡问题进行智能优化处理。本实施例所述智能哈希数据布局方法通过目录扩展属性记录数据的分布信息,使得新增节点不会影响现有文件数据分布,只参加新目录下的数据分布,能极大提高集群扩展能力,新扩展存储节点不会导致数据重新分布和迁移,它将从此后的新创建目录开始参与存储分布调度,不会对前端数据访问产生影响。
[0044] 传统的哈希方式以文件为单位进行分布,计算哈希值并在分布集群中匹配存储节点,如果文件大小差异甚大或者哈希值严重不均,则会出现负载严重不均衡的状态,这种问题通过负载均衡技术也无法解决。本智能哈希数据布局方法所述智能哈希采用存储节点设置容量阈值和建立文件链接的方式来解决,使用更加弹性的方法选择存储节点。系统中维护一个可用存储容量优先的节点队列,当哈希算法得到的目标存储节点可用容量比例达到所设阈值,比如75%时,则从这个优先队列中选择容量负载最小的节点作为文件实际存储的节点,并在目标节点上建立一个指向这个节点的链接文件,保证哈希算法仍然正常工作的同时集群容量负载保持相对均衡。如此,哈希算法仍然可以正常工作,并且能够保证集群容量负载的相对均衡。
[0045] 图6是本发明实施例一所述智能哈希数据布局方法的写新数据流程图;,如图6所示,智能哈希数据布局方法中写新数据流程如下:
[0046] S601、存储客户端对请求文件名计算哈希值hkey;
[0047] S602、存储客户端根据内存中维护的数据分布集群节点,向各所述数据分布集群节点请求所述请求文件的父目录的哈希分布信息;
[0048] S603、使用哈希值hkey在父目录的哈希分布信息中查找请求文件的目标存储节点tnode;
[0049] S604、判断目标存储节点tnode的可用存储容量是否在预设的容量阈值以下,若是则执行步骤S605,否则执行步骤S606;
[0050] S605、确定目标存储节点tnode为请求文件的实际存储节点tsnode,执行步骤S607;
[0051] S606、从优先队列中选择容量负载最小的存储节点作为所述请求文件的实际存储节点tsnode,并创建一个从所述实际存储节点tsnode至所述目标存储节点tnode的文件链接,执行步骤S607;
[0052] S607、所述存储客户端与所述实际存储节点tsnode直接进行I/O请求,写入新数据。
[0053] 进一步地,本智能哈希数据布局方法采用后台自动负载均衡技术对存储集群进行负载平滑处理,保证整个集群节点负载最终处理相对均衡的状态,各个节点并发执行,减小对前端正常访问的影响并使集群尽快达到负载均衡状态。负载均衡过程中充分考虑集群负载状态,选择在系统负载较的时段进行以减小对前端正常访问的影响;并且各个节点是并发执行的,提高负载均衡性能使得集群尽快达到负载均衡状态。
[0054] 本智能哈希数据布局方法采用了智能哈希、条带和复制三种基本数据布局方式作为基础,并对这三种基本方式进行标准模块化设计,通过简单灵活的组合实现更加复杂的复合数据布局方式。其中,智能哈希布局方式是整个系统最为关键的部分,它直接决定着集群存储的扩展性和高性能。
[0055] 智能哈希方式读写性能高,但不具备容错能力,可用性方面存在不足;条带分布方式并发读性能非常高,写性能有一定降低,同样不存在容错能力;复制分布方式具有很高的容错能力,读性能很高,但是存储利用率低,并且写性能有所降低。本智能哈希数据布局方法还可采用堆积木方式对三种基本数据布局模块进行组合,形成各种复合的数据布局方式,包括“智能哈希+条带”、“智能哈希+复制”、“智能哈希+条带+复制”三种。
[0056] 其中,“智能哈希+条带”方法为:数据以目录为基本单位进行哈希分布,文件的父目录利用扩展属性记录存储节点的映射信息,子文件在父目录所属存储节点中进行条带二级分布;“智能哈希+复制”方法为:数据以目录为基本单位进行哈希分布,文件的父目录利用扩展属性记录存储节点的映射信息,子文件在父目录所属存储节点中进行复制二级分布;“智能哈希+条带+复制”方法为:数据以目录为基本单位进行哈希分布,文件的父目录利用扩展属性记录存储节点的映射信息,子文件在父目录所属存储节点中进行条带二级分布再进行复制三级分布。
[0057] 通过这种简单灵活地组合,实现复杂功能的数据布局模式,同时获得高扩展、高性能、高可用等特性,不同需求的应用可以根据具体情况选择不同的组合。这种机制的实现,一是要求客户端数据布局感知,并且节点需要自行处理布局分配策略;二是要求基本数据布局模块标准化,接口标准良好定义并具务互操作性。如此设计就可以将多个模块有机组合,通过多层功能调用传递实现复合数据布局模块。复合数据布局方式可以通过简单灵活的组合,满足不同应用对性能、扩展性、可用性等指标的一维或多维需求,有效拓宽数据应用负载的适用范围。
[0058] 图7是本发明实施例一所述一种复合智能哈希数据布局模式;,如图7所示,采用“智能哈希+条带+复制”组合布局方式,通过这种简单灵活地组合,实现复杂功能的数据布局模式,同时获得高扩展、高性能、高可用等特性,不同需求的应用可以根据具体情况选择不同的组合。复合方式通过数据布局配置文件实现,形成一棵倒立的数据布局树,叶子节点是实际存储数据的节点;中间节点为超级节点,作为上一级数据布局的虚拟子节点;根结点位于客户端,它为智能哈希布局方式,作为整个复合布局的基础。
[0059] 实施例二
[0060] 本发明实施例提供了一种集群存储系统,图8是本实施例所述集群存储系统结构示意图,如图8所示,本数据存储系统包括存储客户端和存储服务器集群。
[0061] 每个存储服务器集群对应一个数据卷,每个数据卷采用一种数据布局方式对所述数据卷中的存储节点进行布局。每个数据卷包括一个数据布局配置文件,所述数据布局配置文件包括对应数据卷相关的存储节点集合、对应数据卷的数据布局方式以及对应数据卷的分配策略;所述数据布局方式包括如实施例一所述的智能哈希数据布局方式或数据以目录为基本单位进行复制分布;数据以块为基本单位进行条带一级分布再进行复制二级分布。
[0062] 其中,“条带+复制”方法为:数据以目录为基本单位进行条带一级分布再进行复制二级分布。
[0063] 存储客户端启动时,将数据布局配置文件装载并进行解析并驻留在内存中,之后元数据操作和I/O数据操作均需要布局管理模块的协调和控制。与基于元数据服务的数据布局管理模型相比,客户端感知的数据管理模型的显著优势是消除了对元数据服务器的依赖,因此也消除了元数据服务带来的性能瓶颈、单点故障、数据一致性等问题。每个存储客户端都独立各自管理数据布局、元数据和I/O,不需要再与元数据服务器进行通信,这种机制完全并发化了性数据访问,实现了线性性能扩展。另外,存储客户端承担了数据布局管理的主要工作,这个负载分散到各个客户端是微小的,却极大减小了存储服务器的负载压力。
[0064] 本集群存储系统中,客户端感知消除了对元数据服务器的依赖,避免了元数据管理的性能瓶颈、单点故障、数据一致性等一系列相关问题;智能哈希方式解决了哈希和一致性哈希的扩展性、数据迁移和重新分布、分布不均衡问题;堆积木式构造的多种复合数据布局方式,有效拓宽了数据应用负载的适用范围。本发明专利所实现的数据布局方法和系统,可显著提高集群存储系统的扩展性、性能、可用性和适用性。
[0065] 基于元数据服务的数据布局管理模型依赖元数据服务器,集中式或分布式元数据管理存在性能瓶颈、单点故障、数据一致性等一系列相关问题,直接影响到系统性能和扩展性。本方法提出客户端感知的数据布局管理模型,使用配置文件方式确定数据布局管理策略,每个数据卷对应一个确定的数据布局配置文件,并被分发到需要访问该数据卷的客户端节点上。这种管理模型消除了对元数据服务器的依赖,因此也消除了元数据服务带来的性能瓶颈、单点故障、数据一致性等问题。
[0066] 实施例三
[0067] 本发明实施例提供了一种集群存储方法,该方法基于包括存储客户端和存储服务器集群的系统实现,每个存储服务器集群对应一个数据卷,每个数据卷采用一种数据布局方式对所述数据卷中的存储节点进行布局,包括数据存储方式和数据布局方式;所述数据布局方式为包括如实施例一所述的智能哈希数据布局方式或数据以目录为基本单位进行复制分布;数据以块为基本单位进行条带一级分布再进行复制二级分布。
[0068] 其中,“条带+复制”方法为:数据以目录为基本单位进行条带一级分布再进行复制二级分布。
[0069] 其中,数据存储的方式包括,每个数据卷包括一个数据布局配置文件,所述数据布局配置文件包括对应数据卷相关的存储节点集合、对应数据卷的数据布局方式以及对应数据卷的分配策略,存储客户端在启动时将需要的数据卷的数据布局配置文件装载到内存中,所述存储客户端利用数据卷的数据布局配置文件对所述数据卷的元数据操作和I/O数据操作进行协调和控制。
[0070] 本发明实施例一所述智能哈希数据布局方法能极大提高集群扩展能力,新扩展存储节点不会导致数据重新分布和迁移,不会对前端数据访问产生影响;本发明实施例二所述的集群存储系统和本发明实施例三所述的集群存储方法,消除了对元数据服务器的依赖,因此也消除了元数据服务带来的性能瓶颈、单点故障、数据一致性等问题,可显著提高集存存储系统的扩展性、性能、可用性和适用性,可极大减小存储服务器的负载压力。
[0071] 以上实施例提供的技术方案中的全部或部分内容可以通过软件编程实现,其软件程序存储在可读取的存储介质中,存储介质例如:计算机中的硬盘、光盘或软盘。
[0072] 上述仅为本发明的较佳实施例及所运用技术原理,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围内。