CN111782150A - 一种基于对象存储的多桶存储系统及方法 - Google Patents
一种基于对象存储的多桶存储系统及方法 Download PDFInfo
- Publication number
- CN111782150A CN111782150A CN202010630278.2A CN202010630278A CN111782150A CN 111782150 A CN111782150 A CN 111782150A CN 202010630278 A CN202010630278 A CN 202010630278A CN 111782150 A CN111782150 A CN 111782150A
- Authority
- CN
- China
- Prior art keywords
- bucket
- user
- buckets
- storage
- file
- 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
- 238000003860 storage Methods 0.000 title claims abstract description 90
- 238000000034 method Methods 0.000 title claims abstract description 21
- 230000008569 process Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 230000003203 everyday effect Effects 0.000 description 2
- 230000007717 exclusion Effects 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000005728 strengthening Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Abstract
本发明涉及一种基于对象存储的多桶存储系统及方法,该多桶存储系统,包括:用户桶、以及与用户桶关联的多个存储桶,所述用户桶用于展示文件的属性信息给用户;所述存储桶用于实际存储文件,且该存储桶对用户屏蔽不可见。该包括步骤:对于展示文件属性信息的用户桶,存储层自动创建若干存储桶与之关联,且每一存储桶对用户屏蔽不可见;当大量文件显示在该用户桶时,这些大量文件均衡存储到与该用户桶关联的存储桶中。采用本发明技术方案,在面对海量的数据时候使用的性能不下跌,管理起来也越来越方便,加快了单用户的性能和稳定性。
Description
技术领域
本发明涉及存储技术领域,尤其涉及一种基于对象存储的多桶存储系统及方法。
背景技术
随着互联网,Web应用创建出数百亿的小文件;人们上传海量的照片、视频、音乐,Facebook每天都新增数十亿条内容,人们每天发送数千亿封电子邮件。据IDC统计未来在10年间数据将增长44倍,到2020年全球数据将增加到35ZB,其中80%是非结构化数据,且大部分是非活跃数据。面对海量的文件存储,对象明显占了很大的优势。
现有的对象存储,具有如下优势:
(1)、对象存储是以对象的形式管理数据的。对象分为三个部分:数据、元数据以及对象id。从数据结构来看,对象存储基本上都是哈希表。哈希表也就是常听说的键值(KeyVaule型)存储的核心数据结构,每个对象找一个UID(所谓的“键”KEY),算哈希值(所谓的“值”Vaule)以后和目标对应。键值对应关系简单粗暴,毕竟算个hash值是很快的,这种扁平化组织形式可以做得非常大,海量的数据存储和大规模访问都能给力支持。
(2)、对象存储,访问对象的方式很方便,是通过REST接口对对象进行操作,用HTTP动词(GET、POST、PUT、DELETE等)描述操作。简化了文件的各种复杂操作,加速了读写能力。
(3)、扩展性极好:对象存储能够扩展数十乃至数百EB的容量,能够充分利用高密度存储;效率高:扁平化结构,不受复杂目录系统对性能的影响;无需迁移:对象存储是一种横向扩展系统,随着容量的增加,数据根据算法自动分布于所有的对象存储节点;安全性高:对象存储通常凭借HTTP调用对象存储本身提供的认证密钥来提供数据访问;访问方便:不光支持HTTP(S)协议,采用REST的API方式调用和检索数据,同样增加了NFS和SMB支持;成本相对低:与块存储方式相比,对象存储是最具成本效益的数据存储类型,并且与云计算搭配,把对象存储的这一特性发挥的淋漓尽致。
对象存储具备了海量存储的问题,解决了文件系统losf问题,在使用场景更加的广泛,性能也更好。对象存储采用了扁平化的结构,user-->buklet-->object方式,目前有很多应用从nas迁移到对象,而这部分客户在使用了nas养成了目录层次习惯或者之前项目规划的习惯导致,一个app对用一个目录等等这样的习惯会导致一个buklet有十万,百万,甚至上亿的文件。而在对象中一个buklet一般情况存储的载体是数据库,一个buklet为一个数据库文件,当上亿的条目存储到一个数据库文件当中会导致数据库的插入查找变慢,这样也会导致对象存储的性能下降。
发明内容
本发明正是针对上述存在的问题,本发明提出一种基于对象存储的多桶存储系统及方法,主要就是为了解决单buklet存储海量对象性能下降问题,使对象应用能够完善的对接nas迁移过来的应用,场景更丰富,性能优越。增强面对海量文件的场景,也增加了单用户的性能,做到几乎对所有的对象存储系统兼容。
为实现上述目的,本发明的具体技术方案如下:
一种基于对象存储的多桶存储系统,包括:用户桶、以及与用户桶关联的多个存储桶,所述用户桶用于展示文件的属性信息给用户;所述存储桶用于实际存储文件,且该存储桶对用户屏蔽不可见。
本发明还提供一种基于对象存储的多桶存储方法,包括步骤:
对于展示文件属性信息的用户桶,对象存储层自动创建若干存储桶与之关联,且每一存储桶对用户屏蔽不可见;
当大量文件显示在该用户桶时,这些大量文件均衡存储到与该用户桶关联的存储桶中。
针对上述多桶存储系统,或多桶存储方法:
优选地,所述文件的属性信息包括文件的位置及名称。
优选地,所述用户桶由用户创建,其关联的存储桶的数量根据该用户桶内的文件大小而定,每一存储桶可以预设一固定的存储容量。
优选地,所述用户桶由用户创建,其关联的存储桶的数量为128个,每一存储桶均衡存储该用户桶对应的文件。
优选地,所述用户桶设置在负载均衡层Nginx上。
采用本发明技术方案,在面对海量的数据时候使用的性能不下跌,管理起来也越来越方便,加快了单用户的性能和稳定性。在进行对象存储场景时,会有以下的有益效果:
(1)一般场景使用时候
使用对象存储时候,用户创建的桶被分成了多个桶,这样数据就更均衡的分布到不同的磁盘上,同时nginx具备了分发,能分发到各个网关,在单用户下提升了单用户的性能,提高了用户的体验。
(2)单桶下海量的对象文件
针对于一些从nas迁移过来的应用,能够避免出现单桶下海量文件时候出现性能暴跌情况,是对象存储能够面对各种场景,进一步加强海量文件下的存储能力。
(3)加强海量小文件场景
对象存储针对于海量的小文件场景具有很好的数据处理能力,对象之所以能够对海量数据处理能力因为其平铺的结构,这样没有了目录层次,读取文件时候能够快速的查找,数据结构简单,面对几十亿甚至上百亿的对象时候,用户桶虚拟成多个存储桶使每个桶承担的对象变少,加快了查询,读写等能力,也减少了用户桶的分担能力,面对海量对象更能保证稳定性,增强了在海量对象的存储能力。
(4)提升单用户的体验
提升了单用户的性能,也提升了单用户下更多的数据量保存从而提升了单用户下的体验。
(5)应用场景更大
因为实现的模块在Nginx负责均衡这一层,可以应用在多种对象存储中,不仅仅是开源的ceph,swift,minio等等,也能用在一些闭源的对象存储,如emc,Intel等等上,做到即插即用。
附图说明
图1是本发明中创建存储桶流程图;
图2是本发明中读写流程图;
图3是本发明中多桶存储方法流程图。
具体实施方式
为了便于本领域的普通技术人员能够理解并实施本发明,下面将结合附图对本发明实施例作进一步说明。
本发明提供的一种基于对象存储的多桶存储系统,包括:用户桶、以及与用户桶关联的多个存储桶,所述用户桶用于展示文件的属性信息给用户;所述存储桶用于实际存储文件,且该存储桶对用户屏蔽不可见。
作为本发明一优选的技术方案,所述用户桶设置在负载均衡层Nginx上。目前在对象存储开源软件有ceph,minio,swift等等,而每个对象存储集群都会有负载均衡层做统一的域名,提供负载均衡作用。所以为了更好兼容各个开源对象存储,功能实现在负载均衡层是一个比较好的选择。而负载均衡层Nginx使用是很广泛,Nginx也支持插件方式扩展功能,实现在Nginx上是一个不错的选择。
其中,所述文件的属性信息包括文件的位置及名称,类似于现有的文件夹及文件系统。所述用户桶由用户创建,其关联的存储桶的数量,既可以根据该用户桶内的文件大小而定,每一存储桶可以预设一固定的存储容量;也可以事先设定,例如,其关联的存储桶的数量为128个,每一存储桶均衡存储该用户桶对应的文件。
本发明中,用户桶对应多个存储桶的关系、查找restfull api发送读写命令到对象存储的转换的原理如下:
对象存储有put,get,post,delete指令,基本上对一个对象操作方式格式为:
curl-X PUT http://ip:post/usr/buklet/object
例子:url-X PUT http://192.168.10.1:8888/ruichi/clusters/file_object
对于一个对象操作,url是固定为/usr/buklet/object形式,在本发明中,就是为了把buklet对应到多个存储对象桶,不同的object存储到不同的对象桶中。
例子:
用户创建了一个桶为clusters,则在对应对象存储中对真实的创建了128个(2^7)个存储桶,为了方便查找和屏蔽用户查找,每个存储桶后缀使用@_num方式,如clusters会创建成clusters@_0,clusters@_2,clusters@_3.......clusters@_127这样存储桶去对应clusters这个用户桶。在用获取这个用户桶时候,只需要在移除@后面的后缀即可。
屏蔽多余桶已经实现了,最重要的是各个object如何落到不同的桶上,而且分布均衡。有128个桶,海量的object分布到128个buklet,这个相当于一个hash映射的关系,object名不同,借助hash字符函数(robert jenkin hash funtions)转化object名成为32位字符串。
对于对象名分别为bar和foo的两个对象,对他们的对象名进行计算即:
HASH('bar')=0x3E0A4162
HASH('foo')=0x7FE391A0
上面的值为32位,因为只是创建了128个buklet,则32位的值需要保留7位即可,对象存储计算出32位值右移保留7位hash模除,这样就得到了这个对象所在在的buklet上。随后执行对象存储的操作即可。
下面给出创建流程和读写流程:
(1)、创建存储桶流程:
参照图1,创建流程只需要获取到配置的存储buklet数,根据用户的api,在桶名后缀加@_num组成多个api,下发到对象存储执行即可,流程较简单。
(2)读写流程(put object:上传对象/添加对象到bucket):
参照图2,其流程类似于上述bar和foo的两个对象的HASH计算处理过程。
参考图3,本发明还提供了一种基于对象存储的多桶存储方法,包括步骤:
S1、对于展示文件属性信息的用户桶,对象存储层自动创建若干存储桶与之关联,且每一存储桶对用户屏蔽不可见;
S2、当大量文件显示在该用户桶时,这些大量文件均衡存储到与该用户桶关联的存储桶中。
上述用户桶及存储桶配置的好处是,显示一个用户桶,对象存储层创建多个存储桶对应这个用户桶,用户看到的是用户桶,其显示一个桶存储上亿文件,而实际在存储层可能有一百个存储桶共同存储这上亿个对象,也就是每个存储桶平均只存储了1万个对象,也大大减轻了一个数据库的压力,本来一个数据库要承受上亿个条目,现在只需要承担上万个。同时引入多个存储桶之后也增加了并发能力,本来一个数据库,读写并发时候需要读写锁,互斥锁,拆分成多个数据库,减少了锁之间的互斥;另一个数据库增多,同时也分布到不同的磁盘,相应的处理进程也变多,增加了并发的作用。
对应于一个用户桶对应成多个存储桶的方式,不仅仅解决了上面提到的问题,同时也增加了并发数,增大了单用户的性能。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于对象存储的多桶存储系统,其特征在于,包括:用户桶、以及与用户桶关联的多个存储桶,所述用户桶用于展示文件的属性信息给用户;所述存储桶用于实际存储文件,且该存储桶对用户屏蔽不可见。
2.根据权利要求1所述的多桶存储系统,其特征在于,所述文件的属性信息包括文件的位置及名称。
3.根据权利要求2所述的多桶存储系统,其特征在于,所述用户桶由用户创建,其关联的存储桶的数量根据该用户桶内的文件大小而定,每一存储桶可以预设一固定的存储容量。
4.根据权利要求2所述的多桶存储系统,其特征在于,所述用户桶由用户创建,其关联的存储桶的数量为128个,每一存储桶均衡存储该用户桶对应的文件。
5.根据权利要求2所述的多桶存储系统,其特征在于,所述用户桶设置在负载均衡层Nginx上。
6.一种基于对象存储的多桶存储方法,其特征在于,包括步骤:
对于展示文件属性信息的用户桶,存储层自动创建若干存储桶与之关联,且每一存储桶对用户屏蔽不可见;
当大量文件显示在该用户桶时,这些大量文件均衡存储到与该用户桶关联的存储桶中。
7.根据权利要求6所述的多桶存储方法,其特征在于,所述文件的属性信息包括文件的位置及名称。
8.根据权利要求6所述的多桶存储方法,其特征在于,所述用户桶由用户创建,其关联的存储桶的数量根据该用户桶内的文件大小而定,每一存储桶可以预设一固定的存储容量。
9.根据权利要求6所述的多桶存储方法,其特征在于,所述用户桶由用户创建,其关联的存储桶的数量为128个,每一存储桶均衡存储该用户桶对应的文件。
10.根据权利要求6所述的多桶存储系统,其特征在于,所述用户桶设置在负载均衡层Nginx上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010630278.2A CN111782150A (zh) | 2020-07-02 | 2020-07-02 | 一种基于对象存储的多桶存储系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010630278.2A CN111782150A (zh) | 2020-07-02 | 2020-07-02 | 一种基于对象存储的多桶存储系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111782150A true CN111782150A (zh) | 2020-10-16 |
Family
ID=72758352
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010630278.2A Pending CN111782150A (zh) | 2020-07-02 | 2020-07-02 | 一种基于对象存储的多桶存储系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111782150A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112835527A (zh) * | 2021-02-05 | 2021-05-25 | 西藏宁算科技集团有限公司 | 基于minio云存储的扩容方法、装置及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170090760A1 (en) * | 2015-09-28 | 2017-03-30 | Zscaler, Inc. | Systems and methods for a memory model for sparsely updated statistics |
CN109271364A (zh) * | 2018-09-18 | 2019-01-25 | 图普科技(广州)有限公司 | 存储方法及装置 |
CN111008185A (zh) * | 2019-10-29 | 2020-04-14 | 厦门网宿有限公司 | 一种数据共享方法、系统及设备 |
-
2020
- 2020-07-02 CN CN202010630278.2A patent/CN111782150A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170090760A1 (en) * | 2015-09-28 | 2017-03-30 | Zscaler, Inc. | Systems and methods for a memory model for sparsely updated statistics |
CN109271364A (zh) * | 2018-09-18 | 2019-01-25 | 图普科技(广州)有限公司 | 存储方法及装置 |
CN111008185A (zh) * | 2019-10-29 | 2020-04-14 | 厦门网宿有限公司 | 一种数据共享方法、系统及设备 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112835527A (zh) * | 2021-02-05 | 2021-05-25 | 西藏宁算科技集团有限公司 | 基于minio云存储的扩容方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9830324B2 (en) | Content based organization of file systems | |
US11093466B2 (en) | Incremental out-of-place updates for index structures | |
CN103577123B (zh) | 一种基于hdfs的小文件优化存储方法 | |
Padhy et al. | RDBMS to NoSQL: reviewing some next-generation non-relational database’s | |
US9967298B2 (en) | Appending to files via server-side chunking and manifest manipulation | |
US10037341B1 (en) | Nesting tree quotas within a filesystem | |
CN103793534B (zh) | 分布式文件系统及均衡元数据存储和访问负载的实现方法 | |
CN105787093B (zh) | 一种基于LSM-Tree结构的日志文件系统的构建方法 | |
US20130218934A1 (en) | Method for directory entries split and merge in distributed file system | |
CN113986873B (zh) | 一种海量物联网数据模型化的处理、存储与共享方法 | |
CN104881466B (zh) | 数据分片的处理以及垃圾文件的删除方法和装置 | |
US20140019494A1 (en) | Method and apparatus for file storage | |
CN103002027A (zh) | 基于键值对系统实现树形目录结构的数据存储系统及方法 | |
CN111427847B (zh) | 面向用户自定义元数据的索引与查询方法和系统 | |
CN102024019B (zh) | 一种分布式文件系统中基于后缀树的目录组织方法 | |
CN106446099A (zh) | 一种分布式云存储方法、系统及其上传下载方法 | |
CN104239511A (zh) | 一种面向MongoDB的用户空间文件系统实现方法 | |
JP2022549983A (ja) | コンテキスト付きのコンテンツ・アイテム共有 | |
CN103942301A (zh) | 一种面向多数据类型访问应用的分布式文件系统 | |
CN107408239B (zh) | 通过多个邮箱在通信应用中进行海量数据管理的架构 | |
Lawson et al. | Using a robust metadata management system to accelerate scientific discovery at extreme scales | |
Lu et al. | Hybrid storage architecture and efficient MapReduce processing for unstructured data | |
CN111782150A (zh) | 一种基于对象存储的多桶存储系统及方法 | |
EP3788501B1 (en) | Data partitioning in a distributed storage system | |
CN104537023A (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 |