CN112422611A - 基于分布式对象存储的虚拟桶存储处理方法和系统 - Google Patents
基于分布式对象存储的虚拟桶存储处理方法和系统 Download PDFInfo
- Publication number
- CN112422611A CN112422611A CN202010953846.2A CN202010953846A CN112422611A CN 112422611 A CN112422611 A CN 112422611A CN 202010953846 A CN202010953846 A CN 202010953846A CN 112422611 A CN112422611 A CN 112422611A
- Authority
- CN
- China
- Prior art keywords
- bucket
- weight
- virtual
- space
- weight information
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 18
- 238000000034 method Methods 0.000 claims abstract description 16
- 238000004364 calculation method Methods 0.000 claims description 24
- 238000012545 processing Methods 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 14
- 230000008859 change Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/0816—Configuration setting characterised by the conditions triggering a change of settings the condition being an adaptation, e.g. in response to network events
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1029—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1031—Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种基于分布式对象存储的虚拟桶存储处理方法和系统,其中,物理主机上运行着软件定义存储服务、存储用户数据和元数据,若干个物理主机组成桶,若干个桶组成虚拟桶,若干个虚拟桶组成控制节点集群的存储空间,物理主机、桶、虚拟桶周期性向他们的上一级发送权重信息,控制节点集群将他们的权重信息记录到空间权重表中,根据空间权重表分配存储空间,并将空间权重表发送给客户端。通过本申请,解决了对象存储用户的数据是保存到桶中,单个桶的数据是保存到键值数据库中,但单个键值数据库的容量有限制,故单个桶的容量会受到限制,导致用户存储数据的容量受到限制的问题,提高了物理主机集群的利用率,增加了用户存储数据的容量。
Description
技术领域
本申请涉及计算机领域,特别是涉及基于分布式对象存储的虚拟桶存储处理方法和系统。
背景技术
伴随着无线网络技术的飞快发展,以及各类监控摄像头的普及,非结构化数据图片和视频在保存后不会再进行修改的数据越来越多。区别于传统的文件存储和块存储,对象存储作为一种新兴的存储方式,越来越受到人们的欢迎。然而,在相关技术中,对象存储用户的数据是保存到桶中,单个桶的数据是保存到键值数据库中,由于单个键值数据库的容量有限制,导致单个桶的容量会受到限制,导致用户存储数据的容量受到限制,不能满足很多实际业务的需求。
目前针对相关技术中对象存储用户的数据是保存到桶中,单个桶的容量会受到限制,导致用户存储数据的容量受到限制的问题,尚未提出有效的解决方案。
发明内容
本申请实施例提供了基于分布式对象存储的虚拟桶存储处理方法和系统,以至少解决相关技术中对象存储用户的数据是保存到桶中,单个桶的容量会受到限制,导致用户存储数据的容量受到限制的问题。
第一方面,本申请实施例提供了一种基于分布式对象存储的虚拟桶存储处理方法,应用在基于分布式对象存储的虚拟桶存储处理系统,所述系统包括:物理主机和控制节点集群,其特征在于,所述方法包括:
所述物理主机上运行着软件定义存储服务、存储用户数据和元数据,若干个所述物理主机组成桶,若干个所述桶组成虚拟桶,若干个所述虚拟桶组成所述控制节点集群的存储空间;
所述物理主机周期性向所述桶发送第一权重信息,所述桶收到所述第一权重信息后,检查所述第一权重信息是否有变化,若有变化则更新所述桶的第二权重信息;
所述桶周期性向所述虚拟桶发送所述第二权重信息,所述虚拟桶收到所述第二权重信息后,检查所述第二权重信息是否有变化,若有变化则更新所述虚拟桶的第三权重信息;
所述虚拟桶周期性向所述控制节点集群发送所述第三权重信息,所述控制节点集群收到所述第三权重信息后,检查所述第三权重信息是否有变化,若有变化则更新所述控制节点集群的空间权重表;
所述控制节点集群将所述物理主机、所述桶和所述虚拟桶的权重信息记录到所述空间权重表中,根据所述空间权重表分配存储空间,并将所述空间权重表发送给客户端。
在其中一些实施例中,所述客户端向所述控制节点集群索要所述空间权重表,根据所述空间权重表更新自身虚拟桶的空间树信息,并根据所述虚拟桶的空间树信息查找到目标物理主机后,向所述目标物理主机发送数据的读写申请。
在其中一些实施例中,根据所述虚拟桶的空间树信息查找所述目标物理主机包括:
所述客户端根据所述虚拟桶的空间树信息,进行哈希权重计算,得到存储所述数据的所述虚拟桶后,再根据所述虚拟桶的所述第三权重信息进行所述哈希权重计算,得到存储所述数据的所述桶,再根据所述桶的第二权重信息进行所述哈希权重计算,得到存储所述数据的所述目标物理主机。
在其中一些实施例中,所述第一权重信息包括所述物理主机的当前容量,所述第二权重信息包括组成所述桶的若干个所述物理主机的当前容量,所述第三权重信息包括组成所述虚拟桶的若干个所述桶的当前容量,所述空间权重表包括组成所述控制节点集群的存储空间的若干个所述虚拟桶的当前容量。
在其中一些实施例中,所述客户端更新所述虚拟桶的空间树信息包括:所述客户端主动向所述控制节点集群申请新的空间;所述客户端周期向所述控制节点集群发送心跳消息询问是否有新的所述空间权重表;所述控制节点集群生成新的所述空间权重表后,会向所述客户端推送最新所述空间权重表。
第二方面,本申请实施例提供了一种基于分布式对象存储的虚拟桶存储处理系统,所述系统包括物理主机和控制节点集群,
所述物理主机上运行着软件定义存储服务、存储用户数据和元数据,若干个所述物理主机组成桶,若干个所述桶组成虚拟桶,若干个所述虚拟桶组成所述控制节点集群的存储空间;
所述物理主机周期性向所述桶发送第一权重信息,所述桶收到所述第一权重信息后,检查所述第一权重信息是否有变化,若有变化则更新所述桶的第二权重信息;
所述桶周期性向所述虚拟桶发送所述第二权重信息,所述虚拟桶收到所述第二权重信息后,检查所述第二权重信息是否有变化,若有变化则更新所述虚拟桶的第三权重信息;
所述虚拟桶周期性向所述控制节点集群发送所述第三权重信息,所述控制节点集群收到所述第三权重信息后,检查所述第三权重信息是否有变化,若有变化则更新所述控制节点集群的空间权重表;
所述控制节点集群将所述物理主机、所述桶和所述虚拟桶的权重信息记录到所述空间权重表中,根据所述空间权重表分配存储空间,并将所述空间权重表发送给客户端。
在其中一些实施例中,所述客户端向所述控制节点集群索要所述空间权重表,根据所述空间权重表更新自身虚拟桶的空间树信息,并根据所述虚拟桶的空间树信息查找到目标物理主机后,向所述目标物理主机发送数据的读写申请。
在其中一些实施例中,根据所述虚拟桶的空间树信息查找所述目标物理主机包括:
所述客户端根据所述虚拟桶的空间树信息,进行哈希权重计算,得到存储所述数据的所述虚拟桶后,再根据所述虚拟桶的所述第三权重信息进行所述哈希权重计算,得到存储所述数据的所述桶,再根据所述桶的第二权重信息进行所述哈希权重计算,得到存储所述数据的所述目标物理主机。
在其中一些实施例中,所述第一权重信息包括所述物理主机的当前容量,所述第二权重信息包括组成所述桶的若干个所述物理主机的当前容量,所述第三权重信息包括组成所述虚拟桶的若干个所述桶的当前容量,所述空间权重表包括组成所述控制节点集群的存储空间的若干个所述虚拟桶的当前容量。
在其中一些实施例中,所述客户端更新所述虚拟桶的空间树信息包括:所述客户端主动向所述控制节点集群申请新的空间;所述客户端周期向所述控制节点集群发送心跳消息询问是否有新的所述空间权重表;所述控制节点集群生成新的所述空间权重表后,会向所述客户端推送最新所述空间权重表。
相比于现有技术,本申请实施例提供的一种基于分布式对象存储的虚拟桶存储处理方法,通过物理主机上运行着软件定义存储服务、存储用户数据和元数据,若干个物理主机组成桶,若干个桶组成虚拟桶,若干个虚拟桶组成控制节点集群的存储空间,该物理主机周期性向桶发送第一权重信息,桶收到第一权重信息后,检查第一权重信息是否有变化,若有变化则更新桶的第二权重信息,桶周期性向虚拟桶发送第二权重信息,虚拟桶收到第二权重信息后,检查第二权重信息是否有变化,若有变化则更新虚拟桶的第三权重信息,虚拟桶周期性向控制节点集群发送第三权重信息,控制节点集群收到第三权重信息后,检查第三权重信息是否有变化,若有变化则更新控制节点集群的空间权重表,控制节点集群将物理主机、桶和虚拟桶的权重信息记录到空间权重表中,根据空间权重表分配存储空间,并将空间权重表发送给客户端,解决了对象存储用户的数据是保存到桶中,单个桶的数据是保存到键值数据库中,由于单个键值数据库的容量有限制,导致单个桶的容量会受到限制,导致用户存储数据的容量受到限制的问题,增加了用户存储数据的容量,单个桶的性能瓶颈,就是整个集群所有物理主机的性能瓶颈,提高了物理主机集群的利用率和读写性能。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的基于分布式对象存储的虚拟桶存储处理方法的应用环境示意图;
图2是根据本申请实施例的基于分布式对象存储的虚拟桶存储处理方法的流程示意图;
图3是根据本申请实施例的另一种基于分布式对象存储的虚拟桶存储处理方法的流程示意图;
图4是根据本申请实施例的基于分布式对象存储的虚拟桶存储处理系统的结构框图;
图5是根据本申请实施例的另一种基于分布式对象存储的虚拟桶存储处理系统的结构框图;
图6是根据本申请实施例的虚拟桶空间树的容量分配流程示意图;
图7是根据本申请实施例的基于分布式对象存储的虚拟桶存储处理方法框架示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指大于或者等于两个。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
本申请提供的基于分布式对象存储的虚拟桶存储处理方法,可以应用于如图1所示的应用环境中,图1是根据本申请实施例的基于分布式对象存储的虚拟桶存储处理方法的应用环境示意图,如图1所示,其中,底层是由若干个物理主机组成,物理主机上运行着软件定义存储服务,其承载着用户数据和元数据的存储。在物理主机之上,是用户的存储桶,每个存储桶由若干个物理主机组成,数据写入时分配到桶上。之后由若干个桶,组成一个虚拟桶(虚拟桶4(VirtualBucket4)包括桶0(Bucket0)、桶1(Bucket1)和桶2(Bucket2),虚拟桶5(VirtualBucket5)包括桶0(Bucket3)),若干个虚拟桶组成一个控制节点集群(Controlers)的存储空间(控制节点集群的存储空间包括虚拟桶4和虚拟桶5),客户端(Clients)基于虚拟桶的空间树计算,找到存储数据的目标物理主机。
本申请提供了一种基于分布式对象存储的虚拟桶存储处理方法,图2是根据本申请实施例的基于分布式对象存储的虚拟桶存储处理方法的流程示意图,如图2所示,该流程包括如下步骤:
步骤S201,物理主机上运行着软件定义存储服务、存储用户数据和元数据,若干个物理主机组成桶,若干个桶组成虚拟桶,若干个虚拟桶组成控制节点集群的存储空间;本实施例中,不同的桶可以由相同数据量的物理主机组成,也可以由不同数据量的物理主机组成,形成容量不同的桶;不同的虚拟桶也可以由相同数据量的桶组成,也可以由不同数据量的桶组成,形成容量不同的虚拟桶;若干个容量不同的虚拟桶组成了控制节点集群的存储空间;
步骤S202,物理主机周期性向桶发送第一权重信息,桶收到第一权重信息后,检查第一权重信息是否有变化,若有变化则更新桶的第二权重信息;具体地,一个桶下面的所有的物理主机,都会周期性向这个桶服务进行心跳数据交互,交互的数据主要是当前物理主机的硬盘容量和状态,其中,第一权重信息为当前物理主机的硬盘容量,若当前物理主机的硬盘容量发生变化,则将该变化更新到桶服务的第二权重信息中,为下一个时刻进行数据分配时做参考。对于新发现的扩容进行的物理主机,在当前时刻不会正常加入,会在下一个数据分配的时刻加入;
步骤S203,桶周期性向虚拟桶发送第二权重信息,虚拟桶收到第二权重信息后,检查第二权重信息是否有变化,若有变化则更新虚拟桶的第三权重信息;具体地,一个虚拟桶下面的所有的桶,都会周期性向这个虚拟桶服务进行心跳数据交互,交互的数据主要是当前桶的容量和状态,其中,第二权重信息为当前桶的容量,若当前桶的容量发生变化,则将该变化更新到虚拟桶服务的第三权重信息中,同样,变化后的权重值不会受到当前时刻已经分配数据的空间树权重的影响,只会对下一个时刻的空间树的分配产生影响;
步骤S204,虚拟桶周期性向控制节点集群发送第三权重信息,控制节点集群收到第三权重信息后,检查第三权重信息是否有变化,若有变化则更新控制节点集群的空间权重表;具体地,控制节点集群下面的所有的虚拟桶,都会周期性向这个控制节点集群进行心跳数据交互,交互的数据主要是当前虚拟桶的容量和状态,其中,空间权重表为当前虚拟桶的容量,若当前虚拟桶的容量发生变化,则将该变化更新到控制节点集群的空间权重表;
步骤S205,控制节点集群将物理主机、桶和虚拟桶的权重信息记录到空间权重表中,根据空间权重表分配存储空间,并将空间权重表发送给客户端。具体地,在每次控制节点集群分配正式的存储空间后,会生成正式的空间权重表,在正式的空间权重表中,会记录不同时刻下的空间树的分配方式。
通过上述步骤S201至S205,相对于现有技术对象存储用户的数据是保存到桶中,单个桶的数据是保存到键值数据库中,由于单个键值数据库的容量有限制,导致单个桶的容量会受到限制,导致用户存储数据的容量受到限制的问题,该系统中客户端的数据是保存到不同的虚拟桶之上,进而保存在不同的桶之上,再进而是保存在所有的物理机主机之上,使单个桶的性能瓶颈就是整个集群所有物理主机的性能瓶颈,提高了物理主机集群的利用率和读写性能,增加了用户存储数据的容量。
在一些实施例中,空间权重表更新完成后,客户端根据空间权重表更新本地的虚拟桶的空间树信息,并依赖该空间树信息进行客户端对数据的分配查找。因此,图3是根据本申请实施例的另一种基于分布式对象存储的虚拟桶存储处理方法的流程示意图,如图3所示,该流程包括步骤S301:
步骤S301,客户端向控制节点集群索要空间权重表,根据空间权重表更新自身虚拟桶的空间树信息,并根据虚拟桶的空间树信息查找到目标物理主机后,向目标物理主机发送数据的读写申请。
通过上述步骤S301,客户端向目标物理主机发送数据的读写申请不经过控制节点集群,提高了客户端每秒进行读写操作的次数(Input/Output Operations Per Second,简称IOPS),目标物理主机在收到客户端的读写申请后,会在本地硬盘上查找相应的数据,之后将数据返回给客户端。
在一些实施例中,第一权重信息包括物理主机的当前容量,第二权重信息包括组成桶的若干个物理主机的当前容量,第三权重信息包括组成虚拟桶的若干个桶的当前容量,空间权重表包括组成控制节点集群的存储空间的若干个虚拟桶的当前容量。物理主机的容量越大,其权重越大,分配到该物理主机上的数据越多,进而桶的容量越大,其权重越大,分配到该桶上的数据越多,最后虚拟桶的容量越大,其权重越大,分配到该虚拟桶上的数据越多。
在一些实施例中,客户端更新虚拟桶的空间树信息包括:客户端主动向控制节点集群申请新的空间;客户端周期向控制节点集群发送心跳消息询问是否有新的空间权重表;控制节点集群生成新的空间权重表后,会向客户端推送最新所述空间权重表。根据最新虚拟桶的空间树信息,才能找到目标物理主机,故客户端需有多种方式更新自身的虚拟桶的空间树信息,当用户所使用的存储空间使用完毕时,可以申请新的存储空间,通过虚拟桶空间树和虚拟桶权重的方式,动态的满足用户对存储空间的需求。
在一些实施例中,根据虚拟桶的空间树信息查找目标物理主机包括:
客户端根据虚拟桶的空间树信息,进行哈希权重计算,得到存储数据的虚拟桶后,再根据该虚拟桶的第三权重信息进行哈希权重计算,得到存储数据的桶,再根据该桶的第二权重信息进行哈希权重计算,得到存储数据的目标物理主机。客户端根据不断更新的虚拟桶的空间树信息可以知道每个虚拟桶、每个桶和每个物理主机的最新权重信息,客户端将对象名做md5的哈希计算再取模,得到的值根据第三权重信息即得到数据分配到的虚拟桶,根据第二权重信息即得到数据分配到的桶,根据第一权重信息即得到数据分配到的目标物理主机。
需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本实施例还提供了一种基于分布式对象存储的虚拟桶存储处理系统,该系统用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图4是根据本申请实施例的基于分布式对象存储的虚拟桶存储处理系统的结构框图,如图4所示,该系统包括物理主机41和控制节点集群42:
物理主机41上运行着软件定义存储服务、存储用户数据和元数据,若干个物理主机41组成桶,若干个桶组成虚拟桶,若干个虚拟桶组成控制节点集群42的存储空间,该物理主机41周期性向桶发送第一权重信息,桶收到第一权重信息后,检查第一权重信息是否有变化,若有变化则更新桶的第二权重信息,桶周期性向虚拟桶发送第二权重信息,虚拟桶收到第二权重信息后,检查第二权重信息是否有变化,若有变化则更新虚拟桶的第三权重信息,虚拟桶周期性向控制节点集群42发送第三权重信息。不同数据量的物理主机41组成容量不同的桶,不同数据量的桶组成容量不同的虚拟桶,不同数据量的虚拟桶组成容量控制节点集群42的存储空间,桶内的各个物理主机41需要周期性向桶服务进行心跳汇报,之后由桶再向虚拟桶服务进行汇报,这样,服务监控管理就分为三个层级,控制节点集群42,只要监管虚拟桶服务,虚拟桶服务监管桶服务,桶服务来监管底层的物理主机41。
控制节点集群42收到第三权重信息后,检查第三权重信息是否有变化,若有变化则更新控制节点集群42的空间权重表,控制节点集群42将物理主机41、桶和虚拟桶的权重信息记录到空间权重表中,根据空间权重表分配存储空间,并将空间权重表发送给客户端。控制节点集群42保存整个虚拟桶的拓扑结构,并将虚拟桶包含的各个节点信息和容量使用情况保存到空间权重表中,控制节点集群42再通过PAXOS一致性协议,保证集群数据的一致性,在每次控制节点集群42分配正式的存储空间后,会生成正式的空间权重表,在正式的空间权重表中,会记录不同时刻下的空间树的分配方式。
通过上述系统,相对于现有技术对象存储用户的数据是保存到桶中,单个桶的数据是保存到键值数据库中,由于单个键值数据库的容量有限制,导致单个桶的容量会受到限制,导致用户存储数据的容量受到限制的问题,该系统中客户端51的数据是保存到不同的虚拟桶之上,进而保存在不同的桶之上,再进而是保存在所有的物理机主机之上,使单个桶的性能瓶颈就是整个集群所有物理主机41的性能瓶颈,提高了物理主机41集群的利用率和读写性能,增加了用户存储数据的容量。
在一些实施例中,空间权重表更新完成后,客户端根据空间权重表更新本地的虚拟桶的空间树信息,并依赖该空间树信息进行客户端对数据的分配查找。因此,图5是根据本申请实施例的另一种基于分布式对象存储的虚拟桶存储处理系统的结构框图,如图5所示,该结构框图包括客户端51:
客户端51向控制节点集群42索要空间权重表,根据空间权重表更新自身虚拟桶的空间树信息,并根据虚拟桶的空间树信息查找到目标物理主机41后,向目标物理主机41发送数据的读写申请。本实施例中,客户端51向目标物理主机41发送数据的读写申请不经过控制节点集群42,提高客户端51的读写性能,目标物理主机41在收到客户端51的读写申请后,会在本地硬盘上查找相应的数据,之后将数据返回给客户端51。
下面结合具体应用场景对本发明实施例进行详细说明,图6是根据本申请实施例的虚拟桶空间树的容量分配流程示意图,如图6所示,一种基于分布式对象存储虚拟桶的处理系统:
整个虚拟桶的拓扑结构,是通过控制节点集群42来保存的。每个虚拟桶会定时的向控制节点集群42发送其包含的节点信息,以及使用容量情况。之后控制节点集群42通过PAXOS一致性协议,保证集群数据的一致性。奇数个节点的PAXOS协议保证各个虚拟桶的拓扑信息在各个节点都保存一致,从而保证整个控制节点集群42的数据一致性。桶内的各个物理节点需要定时的向桶服务进行心跳汇报,之后由桶再向虚拟桶服务进行汇报。这样,服务监控管理就分为三个层级,控制节点集群42,只要监管虚拟桶服务,虚拟桶服务监管桶服务,桶服务来监管底层的物理主机41服务。
对于用户数据的存储分配,不同的虚拟桶可以由相同的数据量物理主机41组成,也可以由不同数据量的物理主机41组成,这样就会有不同容量的虚拟桶。对于不同容量的虚拟桶,基于空间树的方式进行存储容量的分配。第一次先分配100T的空间,之后会按照目前的虚拟桶的权重来进行分配,默认桶的容量越大,分配的权重就越高。当本次空间快使用结束时,可以继续在分配新的存储空间,给用户使用。也可以同时生成多段的存储空间,之后分配给不同的用户,使用不同容量的存储空间。当用户所使用的存储空间使用完毕时,可以申请新的存储空间。通过空间树加虚拟桶权重的这种方式,可以动态的满足用户的存储空间的需求,同时可以保证数据的更加均衡。虚拟桶基于空间树的容量分配方式,初始T1时刻分配500T空间,之后按照各个虚拟桶的物理的实际存储空间,进行数据的分配,物理可用空间越多的,分配到的资源也就越多。在用户使用了一段时候后,在T2时刻用户又需要900T的使用空间,这时会根据目前的各个虚拟桶的实际使用容量重新评估,在进行空间的分配。
最后,当客户端51要访问数据时,会通过控制节点集群42获取到虚拟桶的空间树结构,之后客户端51在本地基于空间树结构,进行基于权重的哈希查找,数据会首先分配到虚拟桶,之后由虚拟桶在基于权重的哈希,计算得到承载的桶。最后由承载的桶,在基于物理主机41的权重哈希到具体的物理主机41。这样,经过上述的客户端51的计算,客户端51就可以明确知道数据是存储在具体的哪台物理主机41。客户端51就可以对此物理机进行读写访问,避免了查表和中心元数据服务器的热点。客户端51的数据是保存到不同的虚拟桶之上,进而保存在不同的桶之上,再进而是保存在所有的物理机主机之上。这样,单个桶的性能瓶颈,就是整个集群所有物理主机41的性能瓶颈,可以大大提高物理机主机集群的利用率和读写性能。
图7是根据本申请实施例的基于分布式对象存储的虚拟桶存储处理方法框架示意图,如图7所示,一种基于分布式对象存储的虚拟桶存储处理方法,包括以下步骤:
S1:一个桶下面的所有的物理主机41,都会周期性向这个桶服务进行心跳数据交互。交互的数据主要是当前物理主机41的硬盘容量和状态。桶服务收到物理主机41的心跳消息后,会检查当前物理主机41的容量是否有变化。如有变化更新其权重表中的数据,为下一个时刻空间数据进行数据分配,权重修改做参考。对于新发现的扩容进行的物理节点,在当前时刻不会正常加入,会在下一个空间分配的时刻加入。
S2:虚拟桶服务会周期的收到桶服务的心跳信息,之后更新自身的虚拟桶的权重表。同样这个表中的权重值不会受到当前时刻已经分配数据的空间树权重的影响,只会对下一个时刻的空间树的分配产生影响。也就是说,空间树在某一时刻分配空间时,其记录各个虚拟桶和桶以及物理主机41的权重的空间权重表不会被修改。在某一时刻分配完空间后,临时的空间权重表的权重变化,只是为了下一个时刻进行空间分配时,能够更加真实的反应目前各个虚拟桶下面的桶所归属的各个物理主机41的实际使用情况,提高物理资源的利用率和桶的读写访问性能。
S3:虚拟桶会定时周期的向控制节点集群42汇报自己的权重信息。控制节点集群42在收到虚拟桶的周期汇报信息后,会更新自己的空间权重表。在控制节点集群42的空间权重表中,会记录各个虚拟桶,桶,物理主机41的权重信息。在每次控制节点分配正式的存储空间后,会生成正式的权重表。在正式的权重表中,会记录不同时刻下的空间树的分配方式。空间树是客户端51进行数据分配查找所依赖需要的。
S4:客户端51上线后,会主动的联系控制节点集群42索要虚拟桶的空间树。对于初始的集群没有进行过空间分配,客户端51在请求中会带有其所要求的空间大小,之后由控制节点集群42进行空间树的分配。对于运行一段时候后,由于之前分配的空间已经快要用完,或者客户又有新的空间需求,这边客户端51会再次请求控制节点集群42生成新的空间,进而触发新的虚拟桶的空间树的生成。
S5:客户端51在收到控制节点集群42返回的消息,会更新自己本地的虚拟桶的空间树信息。因为虚拟桶的空间树信息不会经常改变,因此客户端51更新虚拟桶的空间树信息一般有三种方式,第一种是客户端51主动向控制节点申请新的空间,第二种是客户端51会周期向控制节点集群42发送心跳消息询问是否有新的虚拟桶的空间树,第三种是控制节点集群42生成新的空间树后,会向所有的客户端51推送最新的空间树信息。
S6:客户端51在得到虚拟桶的空间树后,会基于对象名在不同的时刻下的虚拟桶中进行哈希权重计算。首先会在虚拟桶中基于权重的哈希计算得到虚拟桶信息,之后进入虚拟桶空间树的下一级子节点,在桶中进行基于权重的哈希计算得到桶信息。最后在进入虚拟桶空间树的叶子节点,基于不同物理主机41的哈希权重计算,得到最后的目标物理主机41的信息。这样客户端51就可以直接跟目标物理主机41进行通信。
S7:客户端51通过基于虚拟桶的空间树的计算后得到目标物理主机41,之后直接向目标物理主机41发送数据的读写申请,这种请求方式可以不经过控制节点,提高客户端51的读写性能。基于权重的哈希计算方式原则是,物理主机41容量越大,其权重越大,分配到其的数据越多,进而桶的容量越大,其权重越大,分配到其的数据越多,最后虚拟桶的容量越大,其权重最大,分配到其的数据越多。
S8:物理主机41在收到客户端51的读写请求后,会在本地硬盘上查找相应的数据,之后将数据返回给客户端51。通过以上基于虚拟桶的空间树的分配方式可知,客户端51存储对应的是所有的物理主机41,无论是用户的数据还是元数据全部都保存在所有的物理主机41之上。这样可以充分发挥整个集群的性能,提高客户端51的IOPS,抛弃了单个桶的容量和读写性能瓶颈。另一方面基于虚拟桶的空间树的容量分配方式,在不同时刻申请空间时,生成新的空间树子节点。可以充分发挥集群的利用率和节点硬盘的使用效率,提升整个物理集群的使用率。
本领域的技术人员应该明白,以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于分布式对象存储的虚拟桶存储处理系统,其特征在于,所述系统包括物理主机和控制节点集群,
所述物理主机上运行着软件定义存储服务、存储用户数据和元数据,若干个所述物理主机组成桶,若干个所述桶组成虚拟桶,若干个所述虚拟桶组成所述控制节点集群的存储空间;
所述物理主机周期性向所述桶发送第一权重信息,所述桶收到所述第一权重信息后,检查所述第一权重信息是否有变化,若有变化则更新所述桶的第二权重信息;
所述桶周期性向所述虚拟桶发送所述第二权重信息,所述虚拟桶收到所述第二权重信息后,检查所述第二权重信息是否有变化,若有变化则更新所述虚拟桶的第三权重信息;
所述虚拟桶周期性向所述控制节点集群发送所述第三权重信息,所述控制节点集群收到所述第三权重信息后,检查所述第三权重信息是否有变化,若有变化则更新所述控制节点集群的空间权重表;
所述控制节点集群将所述物理主机、所述桶和所述虚拟桶的权重信息记录到所述空间权重表中,根据所述空间权重表分配存储空间,并将所述空间权重表发送给客户端。
2.根据权利要求1所述的系统,其特征在于,所述客户端向所述控制节点集群索要所述空间权重表,根据所述空间权重表更新自身虚拟桶的空间树信息,并根据所述虚拟桶的空间树信息查找到目标物理主机后,向所述目标物理主机发送数据的读写申请。
3.根据权利要求2所述的系统,其特征在于,根据所述虚拟桶的空间树信息查找所述目标物理主机包括:
所述客户端根据所述虚拟桶的空间树信息,进行哈希权重计算,得到存储所述数据的所述虚拟桶后,再根据所述虚拟桶的所述第三权重信息进行所述哈希权重计算,得到存储所述数据的所述桶,再根据所述桶的第二权重信息进行所述哈希权重计算,得到存储所述数据的所述目标物理主机。
4.根据权利要求1所述的系统,其特征在于,所述第一权重信息包括所述物理主机的当前容量,所述第二权重信息包括组成所述桶的若干个所述物理主机的当前容量,所述第三权重信息包括组成所述虚拟桶的若干个所述桶的当前容量,所述空间权重表包括组成所述控制节点集群的存储空间的若干个所述虚拟桶的当前容量。
5.根据权利要求1所述的系统,其特征在于,所述客户端更新所述虚拟桶的空间树信息包括:所述客户端主动向所述控制节点集群申请新的空间;所述客户端周期向所述控制节点集群发送心跳消息询问是否有新的所述空间权重表;所述控制节点集群生成新的所述空间权重表后,会向所述客户端推送最新所述空间权重表。
6.一种基于分布式对象存储的虚拟桶存储处理方法,应用在基于分布式对象存储的虚拟桶存储处理系统,所述系统包括:物理主机和控制节点集群,其特征在于,所述方法包括:
所述物理主机上运行着软件定义存储服务、存储用户数据和元数据,若干个所述物理主机组成桶,若干个所述桶组成虚拟桶,若干个所述虚拟桶组成所述控制节点集群的存储空间;
所述物理主机周期性向所述桶发送第一权重信息,所述桶收到所述第一权重信息后,检查所述第一权重信息是否有变化,若有变化则更新所述桶的第二权重信息;
所述桶周期性向所述虚拟桶发送所述第二权重信息,所述虚拟桶收到所述第二权重信息后,检查所述第二权重信息是否有变化,若有变化则更新所述虚拟桶的第三权重信息;
所述虚拟桶周期性向所述控制节点集群发送所述第三权重信息,所述控制节点集群收到所述第三权重信息后,检查所述第三权重信息是否有变化,若有变化则更新所述控制节点集群的空间权重表;
所述控制节点集群将所述物理主机、所述桶和所述虚拟桶的权重信息记录到所述空间权重表中,根据所述空间权重表分配存储空间,并将所述空间权重表发送给客户端。
7.根据权利要求6所述的方法,其特征在于,所述客户端向所述控制节点集群索要所述空间权重表,根据所述空间权重表更新自身虚拟桶的空间树信息,并根据所述虚拟桶的空间树信息查找到目标物理主机后,向所述目标物理主机发送数据的读写申请。
8.根据权利要求7所述的方法,其特征在于,根据所述虚拟桶的空间树信息查找所述目标物理主机包括:
所述客户端根据所述虚拟桶的空间树信息,进行哈希权重计算,得到存储所述数据的所述虚拟桶后,再根据所述虚拟桶的所述第三权重信息进行所述哈希权重计算,得到存储所述数据的所述桶,再根据所述桶的第二权重信息进行所述哈希权重计算,得到存储所述数据的所述目标物理主机。
9.根据权利要求6所述的方法,其特征在于,所述第一权重信息包括所述物理主机的当前容量,所述第二权重信息包括组成所述桶的若干个所述物理主机的当前容量,所述第三权重信息包括组成所述虚拟桶的若干个所述桶的当前容量,所述空间权重表包括组成所述控制节点集群的存储空间的若干个所述虚拟桶的当前容量。
10.根据权利要求6所述的方法,其特征在于,所述客户端更新所述虚拟桶的空间树信息包括:所述客户端主动向所述控制节点集群申请新的空间;所述客户端周期向所述控制节点集群发送心跳消息询问是否有新的所述空间权重表;所述控制节点集群生成新的所述空间权重表后,会向所述客户端推送最新所述空间权重表。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010953846.2A CN112422611B (zh) | 2020-09-11 | 2020-09-11 | 基于分布式对象存储的虚拟桶存储处理方法和系统 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010953846.2A CN112422611B (zh) | 2020-09-11 | 2020-09-11 | 基于分布式对象存储的虚拟桶存储处理方法和系统 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN112422611A true CN112422611A (zh) | 2021-02-26 |
| CN112422611B CN112422611B (zh) | 2023-04-18 |
Family
ID=74854756
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202010953846.2A Active CN112422611B (zh) | 2020-09-11 | 2020-09-11 | 基于分布式对象存储的虚拟桶存储处理方法和系统 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN112422611B (zh) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114328420A (zh) * | 2021-12-30 | 2022-04-12 | 杭州宏杉科技股份有限公司 | 对象元数据存储方法及装置 |
| CN114416737A (zh) * | 2022-01-04 | 2022-04-29 | 北京中电兴发科技有限公司 | 基于动态权重均衡时序数据库集群的时序数据存储方法 |
| CN114924692A (zh) * | 2022-05-11 | 2022-08-19 | 浪潮云信息技术股份公司 | 一种用于海量对象的存储方法及系统 |
| CN115904608A (zh) * | 2021-09-30 | 2023-04-04 | 慧与发展有限责任合伙企业 | 控制平面配置 |
| CN116827947A (zh) * | 2023-08-31 | 2023-09-29 | 联通在线信息科技有限公司 | 一种分布式对象存储调度方法和系统 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20080008090A1 (en) * | 2006-07-10 | 2008-01-10 | International Business Machines Corporation | Method for Distributed Hierarchical Admission Control across a Cluster |
| CN103929500A (zh) * | 2014-05-06 | 2014-07-16 | 刘跃 | 一种分布式存储系统的数据分片方法 |
| CN109189329A (zh) * | 2018-08-08 | 2019-01-11 | 杭州数梦工场科技有限公司 | 存储节点权重的调整方法和装置 |
| CN109831540A (zh) * | 2019-04-12 | 2019-05-31 | 成都四方伟业软件股份有限公司 | 分布式存储方法、装置、电子设备及存储介质 |
-
2020
- 2020-09-11 CN CN202010953846.2A patent/CN112422611B/zh active Active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20080008090A1 (en) * | 2006-07-10 | 2008-01-10 | International Business Machines Corporation | Method for Distributed Hierarchical Admission Control across a Cluster |
| CN103929500A (zh) * | 2014-05-06 | 2014-07-16 | 刘跃 | 一种分布式存储系统的数据分片方法 |
| CN109189329A (zh) * | 2018-08-08 | 2019-01-11 | 杭州数梦工场科技有限公司 | 存储节点权重的调整方法和装置 |
| CN109831540A (zh) * | 2019-04-12 | 2019-05-31 | 成都四方伟业软件股份有限公司 | 分布式存储方法、装置、电子设备及存储介质 |
Non-Patent Citations (1)
| Title |
|---|
| 季莉莉等: "云环境下基于迁移的虚拟机集群优化算法", 《电子科技》 * |
Cited By (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115904608A (zh) * | 2021-09-30 | 2023-04-04 | 慧与发展有限责任合伙企业 | 控制平面配置 |
| CN115904608B (zh) * | 2021-09-30 | 2025-09-12 | 慧与发展有限责任合伙企业 | 控制平面配置 |
| CN114328420A (zh) * | 2021-12-30 | 2022-04-12 | 杭州宏杉科技股份有限公司 | 对象元数据存储方法及装置 |
| CN114416737A (zh) * | 2022-01-04 | 2022-04-29 | 北京中电兴发科技有限公司 | 基于动态权重均衡时序数据库集群的时序数据存储方法 |
| CN114416737B (zh) * | 2022-01-04 | 2022-08-05 | 北京中电兴发科技有限公司 | 基于动态权重均衡时序数据库集群的时序数据存储方法 |
| CN114924692A (zh) * | 2022-05-11 | 2022-08-19 | 浪潮云信息技术股份公司 | 一种用于海量对象的存储方法及系统 |
| CN116827947A (zh) * | 2023-08-31 | 2023-09-29 | 联通在线信息科技有限公司 | 一种分布式对象存储调度方法和系统 |
| CN116827947B (zh) * | 2023-08-31 | 2024-01-19 | 联通在线信息科技有限公司 | 一种分布式对象存储调度方法和系统 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN112422611B (zh) | 2023-04-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN112422611B (zh) | 基于分布式对象存储的虚拟桶存储处理方法和系统 | |
| US11431791B2 (en) | Content delivery method, virtual server management method, cloud platform, and system | |
| US9052962B2 (en) | Distributed storage of data in a cloud storage system | |
| CN103905503B (zh) | 数据存取方法、调度方法、设备及系统 | |
| US11621891B1 (en) | Systems and methods for routing network data based on social connections of users | |
| US20120166611A1 (en) | Distributed storage system including a plurality of proxy servers and method for managing objects | |
| CN112532668A (zh) | 一种网络边缘计算方法、装置及介质 | |
| CN113672175A (zh) | 分布式对象存储方法、装置和设备及计算机存储介质 | |
| EP3087722B1 (en) | Peer-to-peer network prioritizing propagation of objects through the network | |
| CN117370029A (zh) | 分布式计算系统中的集群资源管理 | |
| EP3739440A1 (en) | Distributed storage system, data processing method and storage node | |
| US10986065B1 (en) | Cell-based distributed service architecture with dynamic cell assignment | |
| KR20120018178A (ko) | 객체 저장부들의 네트워크상의 스웜-기반의 동기화 | |
| US11140220B1 (en) | Consistent hashing using the power of k choices in server placement | |
| CN110569302A (zh) | 一种基于lucene的分布式集群的物理隔离的方法及装置 | |
| JP6243528B2 (ja) | リースエージェントシステム間での制作者システムの分配 | |
| US11128698B2 (en) | Producer system registration | |
| JP2009295127A (ja) | アクセス方法、アクセス装置及び分散データ管理システム | |
| US9760370B2 (en) | Load balancing using predictable state partitioning | |
| CN107087031A (zh) | 一种存储资源负载均衡方法及装置 | |
| CN109783564A (zh) | 支持多节点的分布式缓存方法及设备 | |
| US9369518B2 (en) | Producer system partitioning among leasing agent systems | |
| US20070150492A1 (en) | Method and system for allocating file in clustered file system | |
| CN109597903A (zh) | 图像文件处理装置和方法、文件存储系统及存储介质 | |
| US11507313B2 (en) | Datafall: a policy-driven algorithm for decentralized placement and reorganization of replicated data |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |