+

CN112422611B - 基于分布式对象存储的虚拟桶存储处理方法和系统 - Google Patents

基于分布式对象存储的虚拟桶存储处理方法和系统 Download PDF

Info

Publication number
CN112422611B
CN112422611B CN202010953846.2A CN202010953846A CN112422611B CN 112422611 B CN112422611 B CN 112422611B CN 202010953846 A CN202010953846 A CN 202010953846A CN 112422611 B CN112422611 B CN 112422611B
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.)
Active
Application number
CN202010953846.2A
Other languages
English (en)
Other versions
CN112422611A (zh
Inventor
唐卓
宋柏森
刘玲星
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Zhengtong Electronics Co Ltd
Original Assignee
Shenzhen Zhengtong Electronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Zhengtong Electronics Co Ltd filed Critical Shenzhen Zhengtong Electronics Co Ltd
Priority to CN202010953846.2A priority Critical patent/CN112422611B/zh
Publication of CN112422611A publication Critical patent/CN112422611A/zh
Application granted granted Critical
Publication of CN112422611B publication Critical patent/CN112422611B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/0816Configuration setting characterised by the conditions triggering a change of settings the condition being an adaptation, e.g. in response to network events
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1031Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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 (8)

1.一种基于分布式对象存储的虚拟桶存储处理系统,其特征在于,所述系统包括物理主机和控制节点集群,
所述物理主机上运行着软件定义存储服务、存储用户数据和元数据,若干个所述物理主机组成桶,若干个所述桶组成虚拟桶,若干个所述虚拟桶组成所述控制节点集群的存储空间;
所述物理主机周期性向所述桶发送第一权重信息,所述桶收到所述第一权重信息后,检查所述第一权重信息是否有变化,若有变化则更新所述桶的第二权重信息;
所述桶周期性向所述虚拟桶发送所述第二权重信息,所述虚拟桶收到所述第二权重信息后,检查所述第二权重信息是否有变化,若有变化则更新所述虚拟桶的第三权重信息;
所述虚拟桶周期性向所述控制节点集群发送所述第三权重信息,所述控制节点集群收到所述第三权重信息后,检查所述第三权重信息是否有变化,若有变化则更新所述控制节点集群的空间权重表;所述控制节点集群将所述物理主机、所述桶和所述虚拟桶的权重信息记录到所述空间权重表中,根据所述空间权重表分配存储空间,并将所述空间权重表发送给客户端;
其中,所述第一权重信息包括所述物理主机的当前容量,所述第二权重信息包括组成所述桶的若干个所述物理主机的当前容量,所述第三权重信息包括组成所述虚拟桶的若干个所述桶的当前容量,所述空间权重表包括组成所述控制节点集群的存储空间的若干个所述虚拟桶的当前容量。
2.根据权利要求1所述的系统,其特征在于,所述客户端向所述控制节点集群索要所述空间权重表,根据所述空间权重表更新自身虚拟桶的空间树信息,并根据所述虚拟桶的空间树信息查找到目标物理主机后,向所述目标物理主机发送数据的读写申请。
3.根据权利要求2所述的系统,其特征在于,根据所述虚拟桶的空间树信息查找所述目标物理主机包括:
所述客户端根据所述虚拟桶的空间树信息,进行哈希权重计算,得到存储所述数据的所述虚拟桶后,再根据所述虚拟桶的所述第三权重信息进行所述哈希权重计算,得到存储所述数据的所述桶,再根据所述桶的第二权重信息进行所述哈希权重计算,得到存储所述数据的所述目标物理主机。
4.根据权利要求1所述的系统,其特征在于,所述客户端更新所述虚拟桶的空间树信息包括:所述客户端主动向所述控制节点集群申请新的空间;所述客户端周期向所述控制节点集群发送心跳消息询问是否有新的所述空间权重表;所述控制节点集群生成新的所述空间权重表后,会向所述客户端推送最新所述空间权重表。
5.一种基于分布式对象存储的虚拟桶存储处理方法,应用在基于分布式对象存储的虚拟桶存储处理系统,所述系统包括:物理主机和控制节点集群,其特征在于,所述方法包括:
所述物理主机上运行着软件定义存储服务、存储用户数据和元数据,若干个所述物理主机组成桶,若干个所述桶组成虚拟桶,若干个所述虚拟桶组成所述控制节点集群的存储空间;
所述物理主机周期性向所述桶发送第一权重信息,所述桶收到所述第一权重信息后,检查所述第一权重信息是否有变化,若有变化则更新所述桶的第二权重信息;
所述桶周期性向所述虚拟桶发送所述第二权重信息,所述虚拟桶收到所述第二权重信息后,检查所述第二权重信息是否有变化,若有变化则更新所述虚拟桶的第三权重信息;
所述虚拟桶周期性向所述控制节点集群发送所述第三权重信息,所述控制节点集群收到所述第三权重信息后,检查所述第三权重信息是否有变化,若有变化则更新所述控制节点集群的空间权重表;所述控制节点集群将所述物理主机、所述桶和所述虚拟桶的权重信息记录到所述空间权重表中,根据所述空间权重表分配存储空间,并将所述空间权重表发送给客户端;
其中,所述第一权重信息包括所述物理主机的当前容量,所述第二权重信息包括组成所述桶的若干个所述物理主机的当前容量,所述第三权重信息包括组成所述虚拟桶的若干个所述桶的当前容量,所述空间权重表包括组成所述控制节点集群的存储空间的若干个所述虚拟桶的当前容量。
6.根据权利要求5所述的方法,其特征在于,所述客户端向所述控制节点集群索要所述空间权重表,根据所述空间权重表更新自身虚拟桶的空间树信息,并根据所述虚拟桶的空间树信息查找到目标物理主机后,向所述目标物理主机发送数据的读写申请。
7.根据权利要求6所述的方法,其特征在于,根据所述虚拟桶的空间树信息查找所述目标物理主机包括:
所述客户端根据所述虚拟桶的空间树信息,进行哈希权重计算,得到存储所述数据的所述虚拟桶后,再根据所述虚拟桶的所述第三权重信息进行所述哈希权重计算,得到存储所述数据的所述桶,再根据所述桶的第二权重信息进行所述哈希权重计算,得到存储所述数据的所述目标物理主机。
8.根据权利要求5所述的方法,其特征在于,所述客户端更新所述虚拟桶的空间树信息包括:所述客户端主动向所述控制节点集群申请新的空间;所述客户端周期向所述控制节点集群发送心跳消息询问是否有新的所述空间权重表;所述控制节点集群生成新的所述空间权重表后,会向所述客户端推送最新所述空间权重表。
CN202010953846.2A 2020-09-11 2020-09-11 基于分布式对象存储的虚拟桶存储处理方法和系统 Active CN112422611B (zh)

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 CN112422611A (zh) 2021-02-26
CN112422611B true 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)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12135979B2 (en) * 2021-09-30 2024-11-05 Hewlett Packard Enterprise Development Lp Control plane configuration
CN114328420B (zh) * 2021-12-30 2025-08-19 杭州宏杉科技股份有限公司 对象元数据存储方法及装置
CN114416737B (zh) * 2022-01-04 2022-08-05 北京中电兴发科技有限公司 基于动态权重均衡时序数据库集群的时序数据存储方法
CN114924692A (zh) * 2022-05-11 2022-08-19 浪潮云信息技术股份公司 一种用于海量对象的存储方法及系统
CN116827947B (zh) * 2023-08-31 2024-01-19 联通在线信息科技有限公司 一种分布式对象存储调度方法和系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103929500A (zh) * 2014-05-06 2014-07-16 刘跃 一种分布式存储系统的数据分片方法
CN109189329A (zh) * 2018-08-08 2019-01-11 杭州数梦工场科技有限公司 存储节点权重的调整方法和装置
CN109831540A (zh) * 2019-04-12 2019-05-31 成都四方伟业软件股份有限公司 分布式存储方法、装置、电子设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7813276B2 (en) * 2006-07-10 2010-10-12 International Business Machines Corporation Method for distributed hierarchical admission control across a cluster

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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)

* Cited by examiner, † Cited by third party
Title
云环境下基于迁移的虚拟机集群优化算法;季莉莉等;《电子科技》;20160815(第08期);全文 *

Also Published As

Publication number Publication date
CN112422611A (zh) 2021-02-26

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
CN113672175B (zh) 分布式对象存储方法、装置和设备及计算机存储介质
CN103905503B (zh) 数据存取方法、调度方法、设备及系统
JP4068473B2 (ja) ストレージ装置、分担範囲決定方法及びプログラム
US11621891B1 (en) Systems and methods for routing network data based on social connections of users
US9442671B1 (en) Distributed consumer cloud storage system
CN108780386A (zh) 一种数据存储的方法、装置和系统
US20120166611A1 (en) Distributed storage system including a plurality of proxy servers and method for managing objects
JP6222227B2 (ja) ストレージノード、ストレージノード管理装置、ストレージノード論理容量設定方法、プログラム、記録媒体および分散データストレージシステム
EP3739440A1 (en) Distributed storage system, data processing method and storage node
WO2004091277A2 (en) Peer-to-peer system and method with improved utilization
US10986065B1 (en) Cell-based distributed service architecture with dynamic cell assignment
US8924513B2 (en) Storage system
CN110569302A (zh) 一种基于lucene的分布式集群的物理隔离的方法及装置
CN107087031A (zh) 一种存储资源负载均衡方法及装置
CN109783564A (zh) 支持多节点的分布式缓存方法及设备
CN108769123A (zh) 一种数据系统及数据处理方法
JP2016527623A (ja) リースエージェントシステム間での制作者システムの分配
US11507313B2 (en) Datafall: a policy-driven algorithm for decentralized placement and reorganization of replicated data
CN103428260A (zh) 用于将终端分配到服务器并高效地提示终端的系统及方法
CN109840051B (zh) 一种存储系统的数据存储方法及装置
CN115840639A (zh) 一种基于哈希算法的服务访问方法、装置、设备和介质
CN107172222A (zh) 一种基于分布式存储系统的数据存储方法及装置

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
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载