本发明涉及非结构化对象数据,尤其是指一种非结构化对象数据的管理方法、装置及存储系统。
背景技术:
1、分布式对象存储系统主要用于非结构化数据对象的存储管理;其中,分布式对象存储集群部署好之后,在集群配置信息zone中会自动创建出一个默认放置策略default-placement,该放置策略中会关联一个数据池;也可以根据需要继续创建其他的放置策略,但是每个放置策略都只能关联一个数据池。当在该集群中创建存储桶时,需要选择一个放置策略,然后往这个存储桶中上传数据时,数据就会存放到与该存储桶绑定的放置策略中所对应的数据池中。由于一个存储桶只能绑定一个放置策略,一旦存储桶被创建,则其放置策略不能被修改,而且一个放置策略中只能关联一个数据池,所以同一个存储桶中的对象只能存放到一个数据池中。
2、在用户现场经常会创建大存储桶,但是当前的分布式对象存储系统中的存储桶中的对象只能存放到一个数据池中,当集群中该数据池写满之后,就要考虑扩容数据池。当前阶段的扩容数据池分两种方式:扩大原有数据池的容量、以及新创建一个数据池。
3、其中,第一种方式会导致集群数据重构,当数据池中对象数量较多时,相应的重构时间也就越长,而且数据重构期间会影响前端业务;
4、第二种方式不会导致集群重构,但是当前机制下,由于一个存储桶只能有一种放置策略、且放置策略不能更改,因此老的存储桶无法继续上传对象到新的数据池,从而导致老存储桶无法继续使用。当通过创建新的数据池来扩容集群时,必须先创建一个新的放置策略、并关联该数据池,然后使用新创建的放置策略来创建新的存储桶。那么用户的前端业务都必须重新适配,会给用户带来极大的不便。
5、因此,当用户通过创建新的数据池来扩容集群时,如何解决老的存储桶依然可继续上传对象、且能正常访问该存储桶中的老对象,成为亟待解决的技术难题。
技术实现思路
1、为了解决上述技术问题,本发明提供了一种非结构化对象数据的管理方法、装置、存储系统、设备及介质,所述非结构化对象数据的管理方法用于解决目前分布式对象存储集群中存储桶无法上传对象数据到新创建数据池的问题。
2、为实现上述目的,本发明提供一种非结构化对象数据的管理方法,用于在分布式对象存储集群中管理对象数据;所述管理方法包括对象数据上传方法,其包括:
3、当获取到上传对象到存储桶请求、且所述对象数据未指定存储类别时,判断所述分布式对象存储集群中的数据池数量是否大于1个;
4、若数量大于1个,则获取所有数据池的使用信息,并根据预设数据池使用策略选择目标数据池;
5、将待上传对象数据的尾数据写入所述目标数据池中;
6、将所述待上传对象数据的头数据写入所述目标数据池中;并根据所述目标数据池的信息生成对象索引信息,用于查询所述头数据对应的所述目标数据池。
7、进一步的,根据所述目标数据池的信息生成对象索引信息,具体包括:
8、根据所述目标数据池的id信息生成内部存储类别信息;
9、在根据所述待上传对象数据的名称信息获取到所述待上传对象数据对应的存储桶分片上的对象索引信息之后,将所述内部存储类别信息对应的扩展属性信息加入所述对象索引信息中。
10、进一步的,根据预设数据池使用策略选择目标数据池,具体包括:
11、当所述预设数据池使用策略为按顺序使用策略时,从所有数据池中选择id值最小的数据池、作为所述目标数据池。
12、进一步的,根据预设数据池使用策略选择目标数据池,具体包括:
13、当所述预设数据池使用策略为按剩余容量优先使用策略时,获取所有容量冗余数据池、并从中选择剩余容量最大的数据池,用于作为所述目标数据池。
14、进一步的,根据预设数据池使用策略选择目标数据池,具体包括:
15、当所述预设数据池使用策略为按剩余容量比例优先使用策略时,获取所有容量冗余数据池、并从中选择剩余容量比例最大的数据池,用于作为所述目标数据池。
16、进一步的,在所述对象数据上传方法之前,所述管理方法还包括网关启动方法,其包括:
17、重启所述分布式对象存储集群中所有网关,将新创建数据池加载进内存;
18、根据数据池名称后缀信息过滤出所有数据池;
19、从所有数据池中获取所有自动均衡候选数据池,并获取所有自动均衡候选数据池的kv键值对信息、存放至内存中;其中,所述kv键值对信息的key值为数据池id信息、而value值为数据池结构体使用信息,所述数据池结构体使用信息包括数据池名称信息以及数据池容量使用信息。
20、进一步的,从所有数据池中获取所有自动均衡候选数据池,具体包括:
21、根据预设剩余容量比例阈值信息依次判断每个数据池是否处于写满状态;
22、从所有数据池中筛选出所有处于未写满状态的数据池、作为自动均衡候选数据池。
23、进一步的,从所有数据池中获取所有自动均衡候选数据池,并获取所有自动均衡候选数据池的kv键值对信息、存放至内存中,具体包括:
24、按照预设线程周期时长定时获取所有数据池的数据池容量使用信息,并将所有自动均衡候选数据池的kv键值对信息更新存放至内存中。
25、进一步的,在所述对象数据上传方法之前,所述管理方法还包括:
26、将所述分布式对象存储集群中的所有数据池按照统一名称后缀进行命名;
27、将所有数据池的kv键值对信息以map存储方式存放至内存中;其中,所述kv键值对信息的key值为数据池id信息、而value值为数据池结构体使用信息,所述数据池结构体使用信息包括数据池名称信息以及数据池容量使用信息。
28、进一步的,在所述对象数据上传方法之前,所述管理方法还包括:
29、根据创建顺序,将所述分布式对象存储集群中的所有数据池按照递增顺序进行id编号。
30、进一步的,在所述对象数据上传方法之后,所述管理方法还包括:
31、当获取到下载对象请求时,根据待下载对象数据的下载对象索引信息获取所述待下载对象数据对应的下载对象数据池的信息;
32、在所述下载对象数据池中执行下载对象数据操作。
33、进一步的,根据待下载对象数据的下载对象索引信息获取所述待下载对象数据对应的下载对象数据池的id信息,具体包括:
34、根据所述待下载对象数据的名称信息获取所述待下载对象数据对应的下载对象存储桶分片编号信息;
35、根据所述下载对象存储桶分片编号信息获取所述下载对象索引信息,并从所述下载对象索引信息中解析出所述待下载对象数据的内部存储类别信息;
36、根据所述待下载对象数据的内部存储类别信息获取所述下载对象数据池的id信息。
37、进一步的,在所述对象数据上传方法之后,所述管理方法还包括:
38、当获取到删除对象请求时,根据待删除对象数据的删除对象索引信息获取所述待删除对象数据对应的删除对象数据池的信息;
39、在所述删除对象数据池中执行删除对象数据操作。
40、进一步的,根据待删除对象数据的删除对象索引信息获取所述待删除对象数据对应的删除对象数据池的信息,具体包括:
41、根据所述待删除对象数据的名称信息获取所述待删除对象数据对应的删除对象存储桶分片编号信息,
42、根据所述删除对象存储桶分片编号信息获取所述删除对象索引信息,并从所述删除对象索引信息中解析出所述待删除对象数据的内部存储类别信息;
43、根据所述待删除对象数据的内部存储类别信息获取所述删除对象数据池的id信息。
44、进一步的,所述对象数据上传方法还包括:
45、当获取到上传对象到存储桶请求、且所述对象数据存在指定存储类别时,按照所述指定存储类别获取关联数据池,并将所述对象数据写入所述关联数据池。
46、进一步的,所述对象数据上传方法还包括:
47、当获取到上传对象到存储桶请求、且所述对象数据未指定存储类别时,若所述分布式对象存储集群中的数据池数量只有1个,则根据目标存储桶的匹配存储类别获取对应的匹配数据池,并将所述对象数据写入所述匹配数据池。
48、本发明还提供一种非结构化对象数据的管理装置,用于实现前述所述的非结构化对象数据的管理方法;所述管理装置包括对象数据上传单元,其包括:
49、数据池数量判断单元,用于当获取到上传对象到存储桶请求、且所述对象数据未指定存储类别时,判断所述分布式对象存储集群中的数据池数量是否大于1个;
50、目标数据池选择单元,用于若数量大于1个,则获取所有数据池的使用信息,并根据预设数据池使用策略选择目标数据池;
51、尾数据写入单元,用于将待上传对象数据的尾数据写入所述目标数据池中;
52、头数据写入单元,用于将所述待上传对象数据的头数据写入所述目标数据池中;并根据所述目标数据池的信息生成对象索引信息,用于查询所述头数据对应的所述目标数据池。
53、本发明又提供一种计算机设备,包括存储器、处理器及计算机程序,所述计算机程序存储在所述存储器上并可在所述处理器上运行,所述处理器执行所述计算机程序时实现前述所述的非结构化对象数据的管理方法的步骤。
54、本发明再提供一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现前述所述的非结构化对象数据的管理方法的步骤。
55、本发明另提供一种分布式对象存储系统,包括分布式对象存储集群,所述分布式对象存储集群通过前述所述的非结构化对象数据的管理方法来管理对象数据。
56、本发明的上述技术方案,相比现有技术具有以下技术效果:
57、本发明中,管理方法包括对象数据上传方法;
58、对象数据上传方法中,当对象数据未指定存储类别、分布式对象存储集群中的数据池数量不止1个时,则根据预设数据池使用策略选择出目标数据池;
59、预设数据池使用策略可包括:按顺序选择数据池、按剩余容量优先选择数据池、按剩余容量比例优先选择数据池;
60、接着,先将待上传对象数据的尾数据写入目标数据池中;
61、然后,将待上传对象数据的头数据写入目标数据池中;为了便于后期查询头数据对应的目标数据池,根据目标数据池的信息生成对象索引信息;
62、从而,上传对象时,将对象头和尾写入对应的数据池中;访问对象时,先获取到对象头,根据对象头中的元数据再获取尾数据;
63、由此,当集群扩容新的数据池后,可开启多数据池自动均衡功能、并选择数据池使用策略,实现往存储桶中上传对象时自动选择最优数据池的目的;
64、老存储桶可继续使用新数据池的容量,避免扩容老数据池发生大量数据重构、给用户带来不良影响;
65、此外,在扩容新的数据池之后,在不用切换业务的情况下,依然可以继续往老存储桶中上传数据,且将新上传的数据落盘到新数据池,从而实现一存储桶跨多个数据池的使用目的。