本发明专利技术公开了一种分布式存储系统中存储节点的数据更新方法,应用于分布式数据存储系统的每个存储节点中,在分布式数据存储系统中的存储节点变更后,获取分布式数据存储系统中存储节点变更后的节点拓扑结构及节点信息,生成分布式哈希表;根据分布式哈希表重新分配当前存储节点存储的每个数据对象;对于存储节点变化的数据对象,将数据对象发送至变化后的存储节点;更新当前存储节点的区段管理器和索引管理器中;使用分布式哈希表可以基于某种稳定哈希算法,在存储节点数发生变化时,针对同样的数据,稳定哈希算法每次计算的结果都大致相同,这样可以保证数据所在的节点长时间保持稳定,避免数据的大规模移动。
A data update method of storage nodes in distributed storage system
【技术实现步骤摘要】
一种分布式存储系统中存储节点的数据更新方法
本专利技术属于计算机存储
,尤其涉及一种分布式存储系统中存储节点的数据更新方法。
技术介绍
分布式存储空间管理的基本方法是通过多种映射,将用户可见的逻辑卷设备映射到分布在各个节点上的底层数据块。而为了维护这种映射关系,系统需要对大量的元数据进行管理。元数据管理算法直接决定着系统的性能的高低和功能的优劣。分布式管理的存储系统由许多个节点组成。系统需要跨节点地将每个服务器的零散存储空间组织起来,给用户呈现一个统一连续的视图。节点和节点之间的通讯依赖成熟的网络协议例如TCP/IP,在现代的某些场景里也可以使用新型网络设备例如ROCE设备或者INFINIBAND设备。节点的容量和处理能力可能是不尽相同的。系统需要按照每个节点的能力,合理地分配负载给每个节点。同时,在分布式存储系统中,节点可能会暂时或永久地失效。新的节点随时可能加入,旧的节点随时可能退出。每当组成系统的节点发生变化的时候,系统中的数据就需要在节点间进行移动,以达到节点间负载的均衡。数据在节点间移动是通过网络,这往往是一种代价昂贵的操作。在数据移动期间,系统整体性能会下降。因此,如何减少数据移动成为一个需要解决的问题。
技术实现思路
本专利技术的目的是提供数一种分布式存储系统中存储节点的数据更新方法,有效避免在分布式存储系统中各存储节点之间的数据大量转移,由多个节点并发进行,充分利用网络带宽和多节点并发IO能力提升存储系统的效率。本专利技术采用以下技术方案:一种分布式存储系统中存储节点的数据更新方法,应用于分布式数据存储系统的每个存储节点中,在分布式数据存储系统中的存储节点变更后,包括:获取分布式数据存储系统中存储节点变更后的节点拓扑结构及节点信息,生成分布式哈希表;根据分布式哈希表重新分配当前存储节点存储的每个数据对象;对于存储节点变化的数据对象,将数据对象发送至变化后的存储节点;更新当前存储节点的区段管理器和索引管理器中。进一步地,还包括:接收其他数据存储节点发出的数据对象;其中,该数据对象为在分布式哈希表中指示存储在当前存储节点的数据对象;通过区段管理器保存数据对象,并更新当前节点的索引管理器。进一步地,通过区段管理器保存数据对象包括:根据数据对象生成对应的数据摘要值;将数据对象和对应的数据摘要值写入到活跃区段中;其中,活跃区段为当前用于写入数据对象的区段;根据写入后的活跃区段生成数据对象的物理地址;其中,物理地址包括当前存储节点的设备ID、当前活跃区段对应的区段号和数据对象在当前活跃区段中的偏移量。进一步地,更新当前节点的索引管理器包括:获取数据对象的数据摘要值和物理地址;将数据摘要值和物理地址存储至索引分区的对应索引桶中;截取数据摘要值中的部分内容生成下标,存储至对应索引桶中的下标区中。进一步地,根据分布式哈希表重新分配当前存储节点存储的每个数据对象包括:根据数据对象生成数据加密摘要值;根据数据加密摘要值和分布式哈希表生成数据对象的存储节点。进一步地,根据数据加密摘要值和分布式哈希表生成数据对象的存储节点包括:提取分布式哈希表中的数组空间;其中,数组空间由分布式存储系统中每个存储节点的节点加密摘要值组合而成;将数据加密摘要值与数组空间中的节点加密摘要值依次进行对比,直至找到的节点加密摘要值大于数据加密摘要值,将该节点加密摘要值对应的存储节点作为数据加密摘要值对应的数据对象的存储节点。本专利技术的有益效果是:使用一个“DHT”(分布式哈希表)来决定数据应该被保存在哪一个存储节点中,分布式哈希表可以基于某种稳定哈希算法,在存储节点数发生变化时,针对同样的数据,稳定哈希算法每次计算的结果都大致相同,这样可以保证数据所在的节点长时间保持稳定,避免数据的大规模移动。【附图说明】图1为本专利技术实施例中存储节点内的存储聚合示意图;图2为本专利技术实施例中的区段的数据结构图;图3为本专利技术是实施例中区段的数据结构图;图4为本专利技术实施例中索引管理器的结构示意图;图5为本专利技术实施例中的分布式哈希表的结构示意图。【具体实施方式】下面结合附图和具体实施方式对本专利技术进行详细说明。本专利技术公开了一种分布式存储系统中存储节点的数据更新方法,应用于分布式数据存储系统的每个存储节点中,在分布式数据存储系统中的存储节点变更后,包括:获取分布式数据存储系统中存储节点变更后的节点拓扑结构及节点信息,生成分布式哈希表;根据分布式哈希表重新分配当前存储节点存储的每个数据对象;对于存储节点变化的数据对象,将数据对象发送至变化后的存储节点;更新当前存储节点的区段管理器和索引管理器中。本实施例通过使用一个“DHT”(分布式哈希表)来决定数据应该被保存在哪一个存储节点中,分布式哈希表可以基于某种稳定哈希算法,在存储节点数发生变化时,针对同样的数据,稳定哈希算法每次计算的结果都大致相同,这样可以保证数据所在的节点长时间保持稳定,避免数据的大规模移动。本实施例的方案是对位于多个服务器节点上的硬盘或者SDD(固态硬盘)等类型的物理存储空间进行了多层次的虚拟化。每一层次的虚拟化都提供了不同的功能。通过各层次虚拟化的相互映射和协作,最终实现其功能。本实施例中的虚拟化层次分为:存储节点内硬盘空间虚拟化:提供本地存储空间的聚合。跨节点的存储空间虚拟化:提供跨节点的虚拟存储池,数据按节点空间大小均衡分布。为实现虚拟化,本技术方案在实现中主要涉及到2层映射:数据的物理位置映射,实现节点内硬盘空间虚拟化。数据所在节点的映射,实现跨节点的存储空间虚拟化。通过多层映射,存储系统在保证用户视图相对稳定的前提下,让用户数据可以在物理节点和物理设备之间自由移动而不影响用户应用。本实施例中所提及的区段管理器也称为“EXTENTMANAGER”,可以实现本地虚拟存储池的读写。索引管理器也称为“INDEX”,其实现的是管理数据对象的物理位置映射。分布式哈希表也称为“DHT”,用于实现的是管理数据对象所在存储节点的映射。对于区段管理器,如图1所示,为存储节点内存储聚合示意图。一般地,单台服务器中的硬盘数量和容量是有限的。本实施例首先在组成系统的每个节点内部对节点所拥有的本机物理存储空间进行聚合,使得节点内的多个物理设备在逻辑上呈现出一个统一连续的虚拟存储池。通过图1可以看到,位于单存储节点中的多个硬盘,被区段管理器“ExtentManager”发现并组织为一个虚拟的存储池,从逻辑上将零散的物理空间组织到一起,为上层应用提供一个连续的虚拟空间。另外,区段管理器与索引管理器协同工作,将随机的小写请求进行聚合后写入后端物理磁盘,从而提升物理磁盘的性能,降低SSD磁盘的写放大。对于区段管理来讲,当区段管理器启动时,会读取用户本文档来自技高网...
【技术保护点】
1.一种分布式存储系统中存储节点的数据更新方法,其特征在于,应用于分布式数据存储系统的每个存储节点中,在所述分布式数据存储系统中的存储节点变更后,包括:/n获取分布式数据存储系统中存储节点变更后的节点拓扑结构及节点信息,生成分布式哈希表;/n根据所述分布式哈希表重新分配当前存储节点存储的每个数据对象;/n对于存储节点变化的数据对象,将所述数据对象发送至变化后的存储节点;/n更新当前存储节点的区段管理器和索引管理器中。/n
【技术特征摘要】
1.一种分布式存储系统中存储节点的数据更新方法,其特征在于,应用于分布式数据存储系统的每个存储节点中,在所述分布式数据存储系统中的存储节点变更后,包括:
获取分布式数据存储系统中存储节点变更后的节点拓扑结构及节点信息,生成分布式哈希表;
根据所述分布式哈希表重新分配当前存储节点存储的每个数据对象;
对于存储节点变化的数据对象,将所述数据对象发送至变化后的存储节点;
更新当前存储节点的区段管理器和索引管理器中。
2.如权利要求1所述的一种分布式存储系统中存储节点的数据更新方法,其特征在于,还包括:
接收其他数据存储节点发出的数据对象;其中,该数据对象为在所述分布式哈希表中指示存储在当前存储节点的数据对象;
通过所述区段管理器保存所述数据对象,并更新当前节点的索引管理器。
3.如权利要求2所述的一种分布式存储系统中存储节点的数据更新方法,其特征在于,通过所述区段管理器保存所述数据对象包括:
根据所述数据对象生成对应的数据摘要值;
将所述数据对象和对应的数据摘要值写入到活跃区段中;其中,活跃区段为当前用于写入数据对象的区段;
根据写入后的活跃区段生成所述数据对象的物理地址;其中,所述物理地址包括当前存储节点的设备ID、当前活跃区段对应...
【专利技术属性】
技术研发人员:陈鹏,于超,赵靖荣,
申请(专利权)人:西安奥卡云数据科技有限公司,
类型:发明
国别省市:陕西;61
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。