CN116016508A - 一种基于分布式对象的存储系统及其控制方法 - Google Patents
一种基于分布式对象的存储系统及其控制方法 Download PDFInfo
- Publication number
- CN116016508A CN116016508A CN202211610952.6A CN202211610952A CN116016508A CN 116016508 A CN116016508 A CN 116016508A CN 202211610952 A CN202211610952 A CN 202211610952A CN 116016508 A CN116016508 A CN 116016508A
- Authority
- CN
- China
- Prior art keywords
- data object
- data
- gateway
- metadata
- rados
- 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.)
- Pending
Links
Images
Classifications
-
- 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
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于分布式对象存储技术领域,具体涉及了一种基于分布式对象的存储系统及其控制方法,该系统包括:对象网关和Rados集群,对象网关包括元数据内存库;对象网关用于响应于客户端发送的协议操作请求,将协议操作请求进行分割,得到多个数据对象,并确定数据对象的类型,根据数据对象的类型,将数据对象发送至元数据内存库或Rados集群;元数据内存库用于接收对象网关发送的数据对象,基于LRU算法确定数据对象的存储位置,并将数据对象存储于其对应的存储位置;Rados集群用于接收对象网关发送的数据对象,并对数据对象进行存储。本申请实现了将对象数据的进行分类存储,从而分担系统的整体负荷,不仅提高了存储效率,也提高了系统的稳定性和整体性能。
Description
技术领域
本发明属于分布式对象存储技术领域,具体涉及一种基于分布式对象的存储系统及其控制方法。
背景技术
目前的分布式对象存储系统,通常采用S3协议进行文档、音频和图片等非对称数据的存储。采用S3协议的分布式存储系统默认将文档、音频和图片这些非对称数据分割成4M的大小的数据块进行分段上传存储、读取和复制等操作。操作的过程中需要将分段数据块的位置、大小、区域、归属存储池、归属用户和归属桶的索引等数据等分散存在分布式系统的硬盘上,这些描述数据块对象的信息数据被称作元数据,分段数据的实际内容被称作数据,元数据通常由系统转换为key-value的键值对存储在rocksdb(嵌入式数据库)中,系统利用rocksdb的高速特性完成对象元数据的高速读写操作。但该方法存在以下缺点:
1、在生产环境中通常会有海量对象数据产生,通常超过PB数据量级,在大数据场景下,特别是单桶对象数量超过千万的场景下,对象的桶索引元数据存储在rocksdb中会产生超大的数据分片文件,过大的分片文件会耗费大量的IO性能,降低对象网关的读写性能,尤其是对象列表操作,业务表现即客户想读取某存储桶存放的对象列表时,该IO读请求会一直挂起,持续数小时甚至数天;
2、现有原生的分布式对象存储系统在单桶对象数量超过10万的场景下,会对索引元数据进行动态分片,以防止单桶索引分片文件过大情况产生,这种技术方案降低了检索IO性能消耗,但是当分布式存储系统内部随机对桶索引进行deep-scrub操作时,大量桶索引分片元数据,仍然会占用大量的IO性能;业务表现即系统内部进行deep-scrub,客户上传和读取对象数据等操作时,比没有deep-scrub时耗费更多的IO时间,通常IO响应会有一个10几倍的性能下降;
3、现有原生的分布式对象存储系统通常采用SSD固态硬盘对对象的桶索引元数据进行加速,并且采用预设桶索引分片的技术方案,减少桶索引分片带来的性能下降,但是在大数据场景下,SSD固态硬盘加速桶索引元数据的效果并不理想,预设桶索引分片也不能很好的满足大数据场景下,分片文件过多从而引发的桶索引元数据在系统内部迁移复制操作,耗费大量IO资源,这种技术方案能减少桶索引分片文件过大带来的IO性能消耗,但是仍然不能从根本上解决问题。
发明内容
为至少在一定程度上克服相关技术中存在的问题,本申请提供一种基于分布式对象的存储系统及其控制方法。
根据本申请实施例的第一方面,提供一种基于分布式对象的存储系统,所述系统包括:对象网关和Rados集群,所述对象网关包括元数据内存库;
所述对象网关,用于响应于客户端发送的协议操作请求,将所述协议操作请求进行分割,得到多个数据对象,并确定所述数据对象的类型,根据所述数据对象的类型,将所述数据对象发送至所述元数据内存库或所述Rados集群;
所述元数据内存库,用于接收所述对象网关发送的数据对象,基于LRU算法确定所述数据对象的存储位置,并将所述数据对象存储于其对应的存储位置;
所述Rados集群,用于接收所述对象网关发送的数据对象,并对所述数据对象进行存储。
优选的,所述对象网关,包括:
分割模块,用于基于预设长度,将所述协议操作请求进行分割,得到多个预设长度的数据对象;
分类模块,用于根据所述数据对象包括的内容,确定所述数据对象的类型,所述数据对象的类型包括:元数据请求消息和数据请求消息;
发送模块,用于当所述数据对象的类型为元数据请求消息时,将所述数据对象发送至所述元数据内存库;当所述数据对象的类型为数据请求消息时,将所述数据对象发送至所述Rados集群。
优选的,所述分类模块,具体用于:
当所述数据对象包括以下至少一种时:所述数据对象的大小、所述数据对象的位置、所述数据对象的所属用户、所述数据对象的所属区域、所述数据对象的所属桶和所述数据对象的桶索引,所述数据对象的类型为元数据请求消息;
当所述数据对象包括所述数据对象的具体内容时,所述数据对象的类型为数据请求消息。
优选的,所述元数据内存库,包括:
确定模块,用于接收所述对象网关发送的数据对象,利用LRU算法确定所述数据对象的桶索引在预设时间段内的被检索次数;
判断模块,用于根据所述数据对象的桶索引在预设时间段内的被检索次数判断所述数据对象是否为高命中对象,若所述数据对象为高命中对象,则所述数据对象的存储位置为副本库,将所述数据对象存储于所述副本库,并将所述数据对象存储于所述副本库的信息反馈至客户端;否则,所述数据对象的存储位置为第一本地硬盘,将所述数据对象存储于所述第一本地硬盘,并将所述数据对象存储于所述第一本地硬盘的信息反馈至客户端;
其中,所述元数据内存库包括:副本库和第一本地硬盘。
优选的,所述判断模块,具体用于:
当所述数据对象的桶索引在预设时间段内的被检索次数大于等于被检索次数阈值时,所述数据对象为高命中对象;
当所述数据对象的桶索引在预设时间段内的被检索次数小于被检索次数阈值时,所述数据对象为低命中对象。
优选的,所述副本库,还用于当对所述数据对象完成IO操作时,将完成IO操作的信息反馈至客户端;
所述第一本地硬盘,还用于当对所述数据对象完成IO操作时,将完成IO操作的信息反馈至客户端。
优选的,所述Rados集群,具体用于:
接收所述对象网关发送的数据对象,对所述数据对象进行解析,得到解析后的数据对象;
将解析后的数据对象发送至第二本地硬盘,以使所述第二本地硬盘对所述解析后的数据对象进行存储;
其中,所述Rados集群包括:第二本地硬盘。
优选的,所述第二本地硬盘,还用于:当对所述数据对象完成IO操作时,将完成IO操作的信息反馈至客户端。
优选的,所述协议操作请求包括:S3协议操作请求和SwiftAPI协议操作请求。
根据本申请实施例的第二方面,提供一种基于分布式对象的存储系统的控制方法,应用于上述的分布式对象的存储系统,所述方法包括:
当对象网关接收到客户端发送的协议操作请求时,利用对象网关将所述协议操作请求进行分割,得到多个数据对象,并确定所述数据对象的类型,根据所述数据对象的类型,将所述数据对象发送至元数据内存库或Rados集群;
利用所述元数据内存库基于LRU算法确定所述数据对象的存储位置,并将所述数据对象存储于其对应的存储位置;
利用所述Rados集群对所述数据对象进行存储。
根据本申请实施例的第三方面,提供一种计算机设备,包括:一个或多个处理器;
所述处理器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,实现上述的基于分布式对象的存储系统的控制方法。
根据本申请实施例的第四方面,提供一种计算机可读存储介质,其上存有计算机程序,所述计算机程序被执行时,实现上述的基于分布式对象的存储系统的控制方法。
本发明上述一个或多个技术方案,至少具有如下一种或多种有益效果:
本发明通过对象网关响应于客户端发送的协议操作请求,将协议操作请求进行分割,得到多个数据对象,并确定数据对象的类型,根据数据对象的类型,将数据对象发送至元数据内存库或Rados集群,通过元数据内存库接收对象网关发送的数据对象,基于LRU算法确定数据对象的存储位置,并将数据对象存储于其对应的存储位置,通过Rados集群接收对象网关发送的数据对象,并对数据对象进行存储,实现了将对象数据的进行分类存储,从而分担系统的整体负荷,不仅提高了存储效率,也提高了系统的稳定性和整体性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的一种基于分布式对象的存储系统的主要结构框图;
图2是根据一示例性实施例示出的一种基于分布式对象的存储系统的控制方法的流程图。
具体实施方式
下面结合附图对本发明的具体实施方式作进一步的详细说明。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
如背景技术中所公开的,目前的分布式对象存储系统,通常采用S3协议进行文档、音频和图片等非对称数据的存储。采用S3协议的分布式存储系统默认将文档、音频和图片这些非对称数据分割成4M的大小的数据块进行分段上传存储、读取和复制等操作。操作的过程中需要将分段数据块的位置、大小、区域、归属存储池、归属用户和归属桶的索引等数据等分散存在分布式系统的硬盘上,这些描述数据块对象的信息数据被称作元数据,分段数据的实际内容被称作数据,元数据通常由系统转换为key-value的键值对存储在rocksdb(嵌入式数据库)中,系统利用rocksdb的高速特性完成对象元数据的高速读写操作。但该方法存在以下缺点:
1、在生产环境中通常会有海量对象数据产生,通常超过PB数据量级,在大数据场景下,特别是单桶对象数量超过千万的场景下,对象的桶索引元数据存储在rocksdb中会产生超大的数据分片文件,过大的分片文件会耗费大量的IO性能,降低对象网关的读写性能,尤其是对象列表操作,业务表现即客户想读取某存储桶存放的对象列表时,该IO读请求会一直挂起,持续数小时甚至数天;
2、现有原生的分布式对象存储系统在单桶对象数量超过10万的场景下,会对索引元数据进行动态分片,以防止单桶索引分片文件过大情况产生,这种技术方案降低了检索IO性能消耗,但是当分布式存储系统内部随机对桶索引进行deep-scrub操作时,大量桶索引分片元数据,仍然会占用大量的IO性能;业务表现即系统内部进行deep-scrub,客户上传和读取对象数据等操作时,比没有deep-scrub时耗费更多的IO时间,通常IO响应会有一个10几倍的性能下降;
3、现有原生的分布式对象存储系统通常采用SSD固态硬盘对对象的桶索引元数据进行加速,并且采用预设桶索引分片的技术方案,减少桶索引分片带来的性能下降,但是在大数据场景下,SSD固态硬盘加速桶索引元数据的效果并不理想,预设桶索引分片也不能很好的满足大数据场景下,分片文件过多从而引发的桶索引元数据在系统内部迁移复制操作,耗费大量IO资源,这种技术方案能减少桶索引分片文件过大带来的IO性能消耗,但是仍然不能从根本上解决问题。
为了改善上述问题,提高存储效率,提高系统的稳定性和整体性能。
下面对上述方案进行详细阐述。
实施例一
本发明提供一种基于分布式对象的存储系统,如图1所示,该系统包括:对象网关和Rados集群,对象网关包括元数据内存库;
对象网关,用于响应于客户端发送的协议操作请求,将协议操作请求进行分割,得到多个数据对象,并确定数据对象的类型,根据数据对象的类型,将数据对象发送至元数据内存库或Rados集群;
元数据内存库,用于接收对象网关发送的数据对象,基于LRU算法确定数据对象的存储位置,并将数据对象存储于其对应的存储位置;
Rados集群,用于接收对象网关发送的数据对象,并对数据对象进行存储。
进一步的,对象网关,包括:
分割模块,用于基于预设长度,将协议操作请求进行分割,得到多个预设长度的数据对象;
分类模块,用于根据数据对象包括的内容,确定数据对象的类型,数据对象的类型包括:元数据请求消息和数据请求消息;
发送模块,用于当数据对象的类型为元数据请求消息时,将数据对象发送至元数据内存库;当数据对象的类型为数据请求消息时,将数据对象发送至Rados集群。
具体的,分类模块,具体用于:
当数据对象包括以下至少一种时:数据对象的大小、数据对象的位置、数据对象的所属用户、数据对象的所属区域、数据对象的所属桶和数据对象的桶索引,数据对象的类型为元数据请求消息;
当数据对象包括数据对象的具体内容时,数据对象的类型为数据请求消息。
本发明利用分布式对象存储系统的对象网关的集群特性以及入口特性,将数据对象的读写、列表和复制等操作请求,分离成两类操作请求:一类请求消息包含了对象数据的大小、位置、所属用户、所属区域、所属桶以及桶索引等元数据的消息请求,称为元数据请求消息;一类请求消息包含了对象数据的具体内容,称为数据请求消息。
可以理解的是,为了提升分布式对象存储系统的性能,特别是大数据场景下的IO性能,更高的故障容错性,更高的可用性,本发明通过对分布式对象存储系统的读写机制进行改造,将类型为元数据请求消息的数据对象的IO读写和类型为运输局请求消息的数据对象的IO读写进行分离,降低了Rados集群的系统负荷,并且通过增加元数据内存库存储数据对象,提升了分布式对象存储系统整体IO性能。
进一步的,元数据内存库,包括:
确定模块,用于接收对象网关发送的数据对象,利用LRU算法确定数据对象的桶索引在预设时间段内的被检索次数;
判断模块,用于根据数据对象的桶索引在预设时间段内的被检索次数判断数据对象是否为高命中对象,若数据对象为高命中对象,则数据对象的存储位置为副本库,将数据对象存储于副本库,并将数据对象存储于副本库的信息反馈至客户端;否则,数据对象的存储位置为第一本地硬盘,将数据对象存储于第一本地硬盘,并将数据对象存储于第一本地硬盘的信息反馈至客户端;
其中,元数据内存库包括:副本库和第一本地硬盘。
具体的,判断模块,具体用于:
当数据对象的桶索引在预设时间段内的被检索次数大于等于被检索次数阈值时,数据对象为高命中对象;
当数据对象的桶索引在预设时间段内的被检索次数小于被检索次数阈值时,数据对象为低命中对象。
可以理解的是,通过增加元数据内存库用来保存元数据请求消息,同步对象网关节点的元数据,保持分布式对象存储系统的元数据的一致性。同时针对分布式对象存储单桶对象数量过多,导致桶索引元数据的分片文件过大引发的性能低下问题,进行了优化,元数据内存库会将高命中率的桶索引长驻在内存,即副本库中,保证数据对象的读写、列表和复制等操作在内存完成,比原生分布式对象存储系统快很多,也减少对本地磁盘的IO操作,提高了系统的稳定性。
进一步的,副本库,还用于当对数据对象完成IO操作时,将完成IO操作的信息反馈至客户端;
第一本地硬盘,还用于当对数据对象完成IO操作时,将完成IO操作的信息反馈至客户端。
进一步的,Rados集群,具体用于:
接收对象网关发送的数据对象,对数据对象进行解析,得到解析后的数据对象;
将解析后的数据对象发送至第二本地硬盘,以使第二本地硬盘对解析后的数据对象进行存储;
其中,Rados集群包括:第二本地硬盘。
一些实施例中,可以但不限于通过利用Rados集群对数据对象进行随机deep-scrub操作,避免了大数据场景下由于大量桶索引元数据检索,修改带来的IO性能消耗,从而提升了整个系统的性能。
进一步的,第二本地硬盘,还用于:当对数据对象完成IO操作时,将完成IO操作的信息反馈至客户端。
一些实施例中,Rados集群将解析后的数据对象发送至第二本地硬盘进行保存,而数据保存的过程(增删改查)一般是通过定制化文件系统对本地硬盘进行IO读写,比如一个数据对象原本内容是“abcd”,该数据对象被新的数据请求修改为“edfe”,这个数据对象会被文件系统加载到内存,经过对比,将新的内容替代原本的内容,即“edfe”保存到原数据对象“abcd”对应的本地硬盘区域,这个过程对应了一次本地硬盘IO读和一次本地硬盘IO写,这个过程操作完成后即完成了一次数据对象修改。
进一步的,协议操作请求包括:S3协议操作请求和SwiftAPI协议操作请求。
本发明提供的一种基于分布式对象的存储系统,通过对象网关响应于客户端发送的协议操作请求,将协议操作请求进行分割,得到多个数据对象,并确定数据对象的类型,根据数据对象的类型,将数据对象发送至元数据内存库或Rados集群,通过元数据内存库接收对象网关发送的数据对象,基于LRU算法确定数据对象的存储位置,并将数据对象存储于其对应的存储位置,通过Rados集群接收对象网关发送的数据对象,并对数据对象进行存储,实现了将对象数据的进行分类存储,从而分担系统的整体负荷,不仅提高了存储效率,也提高了系统的稳定性和整体性能。
实施例二
本发明提供一种基于分布式对象的存储系统的控制方法,如图2所示,该方法可以但不限于用于终端中,包括以下步骤:
步骤101:当对象网关接收到客户端发送的协议操作请求时,利用对象网关将协议操作请求进行分割,得到多个数据对象,并确定数据对象的类型,根据数据对象的类型,将数据对象发送至元数据内存库或Rados集群;
步骤102:利用元数据内存库基于LRU算法确定数据对象的存储位置,并将数据对象存储于其对应的存储位置;
步骤103:利用Rados集群对数据对象进行存储。
进一步的,步骤101,包括:
步骤1011:基于预设长度,将协议操作请求进行分割,得到多个预设长度的数据对象;
步骤1012:根据数据对象包括的内容,确定数据对象的类型,数据对象的类型包括:元数据请求消息和数据请求消息;
步骤1013:当数据对象的类型为元数据请求消息时,将数据对象发送至元数据内存库;当数据对象的类型为数据请求消息时,将数据对象发送至Rados集群。
具体的,步骤1012,包括:
当数据对象包括以下至少一种时:数据对象的大小、数据对象的位置、数据对象的所属用户、数据对象的所属区域、数据对象的所属桶和数据对象的桶索引,数据对象的类型为元数据请求消息;
当数据对象包括数据对象的具体内容时,数据对象的类型为数据请求消息。
进一步的,步骤102,包括:
步骤1021:利用元数据内存库基于LRU算法确定数据对象的桶索引在预设时间段内的被检索次数;
步骤1022:根据数据对象的桶索引在预设时间段内的被检索次数判断数据对象是否为高命中对象,若数据对象为高命中对象,则数据对象的存储位置为副本库,将数据对象存储于副本库,并将数据对象存储于副本库的信息反馈至客户端;否则,数据对象的存储位置为第一本地硬盘,将数据对象存储于第一本地硬盘,并将数据对象存储于第一本地硬盘的信息反馈至客户端;
其中,元数据内存库包括:副本库和第一本地硬盘。
具体的,根据数据对象的桶索引在预设时间段内的被检索次数判断数据对象是否为高命中对象,包括:
当数据对象的桶索引在预设时间段内的被检索次数大于等于被检索次数阈值时,数据对象为高命中对象;
当数据对象的桶索引在预设时间段内的被检索次数小于被检索次数阈值时,数据对象为低命中对象。
进一步的,该方法,还包括:
当副本库对数据对象完成IO操作时,利用副本库将完成IO操作的信息反馈至客户端;
当第一本地硬盘对数据对象完成IO操作时,利用第一本地硬盘将完成IO操作的信息反馈至客户端。
进一步的,步骤103,包括:
利用Rados集群对数据对象进行解析,得到解析后的数据对象;
将解析后的数据对象发送至第二本地硬盘,以使第二本地硬盘对解析后的数据对象进行存储;
其中,Rados集群包括:第二本地硬盘。
进一步的,该方法,还包括:当第二本地硬盘对数据对象完成IO操作时,利用第二本地硬盘将完成IO操作的信息反馈至客户端。
本发明提供的一种基于分布式对象的存储系统的控制方法,通过当对象网关接收到客户端发送的协议操作请求时,利用对象网关将协议操作请求进行分割,得到多个数据对象,并确定数据对象的类型,根据数据对象的类型,将数据对象发送至元数据内存库或Rados集群,通过利用元数据内存库基于LRU算法确定数据对象的存储位置,并将数据对象存储于其对应的存储位置,通过利用Rados集群对数据对象进行存储,实现了将对象数据的进行分类存储,从而分担系统的整体负荷,不仅提高了存储效率,也提高了系统的稳定性和整体性能。
可以理解的是,上述提供的方法实施例与上述的系统实施例对应,相应的具体内容可以相互参考,在此不再赘述。
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
实施例三
基于同一种发明构思,本发明还提供了一种计算机设备,该计算机设备包括处理器以及存储器,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器用于执行所述计算机存储介质存储的程序指令。处理器可能是中央处理单元(CentralProcessing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital SignalProcessor、DSP)、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其是终端的计算核心以及控制核心,其适于实现一条或一条以上指令,具体适于加载并执行计算机存储介质内一条或一条以上指令从而实现相应方法流程或相应功能,以实现上述实施例中一种基于分布式对象的存储系统的控制方法的步骤。
实施例四
基于同一种发明构思,本发明还提供了一种存储介质,具体为计算机可读存储介质(Memory),所述计算机可读存储介质是计算机设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机可读存储介质既可以包括计算机设备中的内置存储介质,当然也可以包括计算机设备所支持的扩展存储介质。计算机可读存储介质提供存储空间,该存储空间存储了终端的操作系统。并且,在该存储空间中还存放了适于被处理器加载并执行的一条或一条以上的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机可读存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。可由处理器加载并执行计算机可读存储介质中存放的一条或一条以上指令,以实现上述实施例中一种基于分布式对象的存储系统的控制方法的步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
Claims (12)
1.一种基于分布式对象的存储系统,其特征在于,所述系统包括:对象网关和Rados集群,所述对象网关包括元数据内存库;
所述对象网关,用于响应于客户端发送的协议操作请求,将所述协议操作请求进行分割,得到多个数据对象,并确定所述数据对象的类型,根据所述数据对象的类型,将所述数据对象发送至所述元数据内存库或所述Rados集群;
所述元数据内存库,用于接收所述对象网关发送的数据对象,基于LRU算法确定所述数据对象的存储位置,并将所述数据对象存储于其对应的存储位置;
所述Rados集群,用于接收所述对象网关发送的数据对象,并对所述数据对象进行存储。
2.根据权利要求1所述的系统,其特征在于,所述对象网关,包括:
分割模块,用于基于预设长度,将所述协议操作请求进行分割,得到多个预设长度的数据对象;
分类模块,用于根据所述数据对象包括的内容,确定所述数据对象的类型,所述数据对象的类型包括:元数据请求消息和数据请求消息;
发送模块,用于当所述数据对象的类型为元数据请求消息时,将所述数据对象发送至所述元数据内存库;当所述数据对象的类型为数据请求消息时,将所述数据对象发送至所述Rados集群。
3.根据权利要求2所述的系统,其特征在于,所述分类模块,具体用于:
当所述数据对象包括以下至少一种时:所述数据对象的大小、所述数据对象的位置、所述数据对象的所属用户、所述数据对象的所属区域、所述数据对象的所属桶和所述数据对象的桶索引,所述数据对象的类型为元数据请求消息;
当所述数据对象包括所述数据对象的具体内容时,所述数据对象的类型为数据请求消息。
4.根据权利要求1所述的系统,其特征在于,所述元数据内存库,包括:
确定模块,用于接收所述对象网关发送的数据对象,利用LRU算法确定所述数据对象的桶索引在预设时间段内的被检索次数;
判断模块,用于根据所述数据对象的桶索引在预设时间段内的被检索次数判断所述数据对象是否为高命中对象,若所述数据对象为高命中对象,则所述数据对象的存储位置为副本库,将所述数据对象存储于所述副本库,并将所述数据对象存储于所述副本库的信息反馈至客户端;否则,所述数据对象的存储位置为第一本地硬盘,将所述数据对象存储于所述第一本地硬盘,并将所述数据对象存储于所述第一本地硬盘的信息反馈至客户端;
其中,所述元数据内存库包括:副本库和第一本地硬盘。
5.根据权利要求4所述的系统,其特征在于,所述判断模块,具体用于:
当所述数据对象的桶索引在预设时间段内的被检索次数大于等于被检索次数阈值时,所述数据对象为高命中对象;
当所述数据对象的桶索引在预设时间段内的被检索次数小于被检索次数阈值时,所述数据对象为低命中对象。
6.根据权利要求4所述的系统,其特征在于,所述副本库,还用于当对所述数据对象完成IO操作时,将完成IO操作的信息反馈至客户端;
所述第一本地硬盘,还用于当对所述数据对象完成IO操作时,将完成IO操作的信息反馈至客户端。
7.根据权利要求1所述的系统,其特征在于,所述Rados集群,具体用于:
接收所述对象网关发送的数据对象,对所述数据对象进行解析,得到解析后的数据对象;
将解析后的数据对象发送至第二本地硬盘,以使所述第二本地硬盘对所述解析后的数据对象进行存储;
其中,所述Rados集群包括:第二本地硬盘。
8.根据权利要求7所述的系统,其特征在于,所述第二本地硬盘,还用于:当对所述数据对象完成IO操作时,将完成IO操作的信息反馈至客户端。
9.根据权利要求1所述的系统,其特征在于,所述协议操作请求包括:S3协议操作请求和SwiftAPI协议操作请求。
10.一种基于分布式对象的存储系统的控制方法,应用于权利要求1-9任一项所述的分布式对象的存储系统,其特征在于,所述方法包括:
当对象网关接收到客户端发送的协议操作请求时,利用对象网关将所述协议操作请求进行分割,得到多个数据对象,并确定所述数据对象的类型,根据所述数据对象的类型,将所述数据对象发送至元数据内存库或Rados集群;
利用所述元数据内存库基于LRU算法确定所述数据对象的存储位置,并将所述数据对象存储于其对应的存储位置;
利用所述Rados集群对所述数据对象进行存储。
11.一种计算机设备,其特征在于,包括:一个或多个处理器;
所述处理器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,实现如权利要求10所述的基于分布式对象的存储系统的控制方法。
12.一种计算机可读存储介质,其特征在于,其上存有计算机程序,所述计算机程序被执行时,实现如权利要求10所述的基于分布式对象的存储系统的控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211610952.6A CN116016508A (zh) | 2022-12-14 | 2022-12-14 | 一种基于分布式对象的存储系统及其控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211610952.6A CN116016508A (zh) | 2022-12-14 | 2022-12-14 | 一种基于分布式对象的存储系统及其控制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116016508A true CN116016508A (zh) | 2023-04-25 |
Family
ID=86025846
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211610952.6A Pending CN116016508A (zh) | 2022-12-14 | 2022-12-14 | 一种基于分布式对象的存储系统及其控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116016508A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117708219A (zh) * | 2024-02-06 | 2024-03-15 | 中科云谷科技有限公司 | 用于物联网数据的处理方法、处理装置及存储介质 |
-
2022
- 2022-12-14 CN CN202211610952.6A patent/CN116016508A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117708219A (zh) * | 2024-02-06 | 2024-03-15 | 中科云谷科技有限公司 | 用于物联网数据的处理方法、处理装置及存储介质 |
CN117708219B (zh) * | 2024-02-06 | 2024-05-07 | 中科云谷科技有限公司 | 用于物联网数据的处理方法、处理装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20170054299A (ko) | 메모리 관리 시의 중복 제거를 위해서 기준 세트로 기준 블록을 취합하는 기법 | |
US11029891B2 (en) | Hybrid distributed storage system to dynamically modify storage overhead and improve access performance | |
US20170123678A1 (en) | Garbage Collection for Reference Sets in Flash Storage Systems | |
CN110633378A (zh) | 一种支持超大规模关系网络的图数据库构建方法 | |
US20170123689A1 (en) | Pipelined Reference Set Construction and Use in Memory Management | |
CN111881116A (zh) | 数据迁移方法、数据迁移系统、计算机系统和存储介质 | |
US20170123677A1 (en) | Integration of Reference Sets with Segment Flash Management | |
US11620065B2 (en) | Variable length deduplication of stored data | |
US20230418811A1 (en) | Transaction processing method and apparatus, computing device, and storage medium | |
CN116016508A (zh) | 一种基于分布式对象的存储系统及其控制方法 | |
CN111680017A (zh) | 一种数据同步的方法及装置 | |
US9659020B2 (en) | Serialization for delta encoding | |
CN107153680B (zh) | 一种分布式内存数据库在线扩展节点的方法及系统 | |
CN112000703B (zh) | 数据入库处理方法、装置、计算机设备和存储介质 | |
CN112650729B (zh) | 一种分布式文件系统的权限管理方法、系统以及存储介质 | |
EP3555767B1 (en) | Partial storage of large files in distinct storage systems | |
CN111459913B (zh) | 分布式数据库的容量扩展方法、装置及电子设备 | |
CN112965939A (zh) | 一种文件合并方法、装置和设备 | |
CN111666045A (zh) | 基于Git系统的数据处理方法、系统、设备及存储介质 | |
US20230188619A1 (en) | Methods and systems for event management | |
CN114490509A (zh) | 跟踪改变数据捕获日志历史 | |
CN110262758B (zh) | 一种数据存储管理方法、系统及相关设备 | |
US20180364943A1 (en) | Memory management architecture and system therefor | |
CN111352897A (zh) | 一种实时数据存储方法、设备、存储介质 | |
US11914483B1 (en) | Metadata-based recovery classification management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |