本申请涉及计算机,尤其涉及一种数据存储方法及装置。
背景技术:
1、对象存储是一种数据存储方式,它将数据作为对象进行存储,每个对象都有唯一的标识符和元数据。与传统的块存储和文件存储不同,对象存储不需要文件系统或者卷管理器来管理数据。对象存储通常被用于存储海量非结构化数据,例如图片、视频、音频、日志、备份等。
2、在对象存储时,每一个数据对象通常都是直接存储至磁盘,当多个数据对象的大小不一致时,很容易造成磁盘容量不均匀,使得磁盘利用率较低。
技术实现思路
1、本申请提供一种数据存储方法,所述方法包括:
2、将目标数据按照预设大小划分为至少一个数据分片,并按照数据分片的顺序分别针对每个数据分片添加顺序标识;
3、基于目标数据的数据标识以及顺序标识,分别确定存储每个数据分片的数据磁盘的磁盘标识,并分别将所述数据分片存储至与所述磁盘标识对应的数据磁盘。
4、可选的,所述方法还包括:
5、将每个所述数据分片的顺序标识,以及数据分片的索引信息存储至索引磁盘;所述索引磁盘包括用于存储目标数据索引信息的数据磁盘。
6、可选的,所述方法还维护了数据磁盘的磁盘标识与预设的哈希值取值区间之间的对应关系;
7、基于目标数据的数据标识以及顺序标识,分别确定存储每个数据分片的数据磁盘的磁盘标识,包括:
8、基于预设的哈希算法,以数据分片的分片标识以及顺序标识为计算参数并计算哈希值;
9、将所述哈希值与预设的若干哈希值数值区间进行比较;其中,所述若干哈希值数值区间分别对应不同的磁盘标识;
10、如果所述哈希值与所述若干哈希值数值区间中的任一目标哈希值数值区间匹配,将所述目标哈希值数值区间对应的磁盘标识作为存储所述数据分片的磁盘标识。
11、可选的,所述目标数据包括预先划分为若干数据分段的数据;
12、所述将目标数据文件按照预设大小划分为至少一个数据分片,并按照数据分片的顺序分别针对每个数据分片添加顺序标识,包括:
13、分别将目标数据文件对应的若干数据分段按照预设大小划分为至少一个数据分片,并按照数据分片的顺序分别针对每个数据分片添加顺序标识。
14、可选的,所述目标数据包括数据对象;所述目标数据的数据标识至少包括存储所述数据对象的存储桶标识,以及所述数据对象的对象标识。
15、可选的,将每个所述数据分片的顺序标识,以及数据分片的索引信息存储至索引磁盘之前,所述方法还包括:
16、基于预设的哈希算法,以存储所述数据对象的存储桶标识为计算参数并计算哈希值;
17、将所述哈希值与预设的若干哈希值数值区间进行比较;其中,所述若干哈希值数值区间分别对应不同的磁盘标识;
18、如果所述哈希值与所述若干哈希值数值区间中的任一目标哈希值数值区间匹配,将所述目标哈希值数值区间对应的磁盘标识作为存储所述数据分片的磁盘标识。
19、可选的,所述数据磁盘按照所述数据分片的大小划分为若干磁盘空间;
20、所述将所述数据分片存储至与所述磁盘标识对应的数据磁盘,包括:
21、确定与所述磁盘标识对应的数据磁盘中空闲的磁盘空间,并将所述数据分片存储至与所述空闲的磁盘空间。
22、可选的,所述数据磁盘的缓存信息中维护了若干磁盘空间的使用情况的编码序列;其中,所述编码序列中包括用于表示磁盘空间为已使用状态的第一编码字符;以及,用于表示磁盘空间为空闲状态的第二编码字符;
23、所述确定与所述磁盘标识对应的数据磁盘中空闲的磁盘空间,包括:
24、查询所述与所述磁盘标识对应的数据磁盘的缓存信息,确定所述编码序列中首次出现的第二编码字符对应的磁盘空间。
25、本申请还提出一种数据存储装置,所述装置包括:
26、数据分片划分单元,用于将目标数据按照预设大小划分为至少一个数据分片,并按照数据分片的顺序分别针对每个数据分片添加顺序标识;
27、数据存储单元,用于基于目标数据的数据标识以及顺序标识,分别确定存储每个数据分片的数据磁盘的磁盘标识,并分别将所述数据分片存储至与所述磁盘标识对应的数据磁盘。
28、本申请还提供一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
29、所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行上述方法。
30、本申请还提供一种计算机可读存储介质,所述计算机可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现上述方法。
31、在以上实施例记载的方案中,通过将目标数据换分为若干大小一致的数据分片,并根据数据分片的顺序标识来确定存储每一分片的数据磁盘,由此可以将目标数据分散存储至不同的数据磁盘,使得各个磁盘的容量更加均衡,提高磁盘利用率。
1.一种数据存储方法,所述方法包括:
2.根据权利要求1所述的方法,所述方法还包括:
3.根据权利要求1所述的方法,所述方法还维护了数据磁盘的磁盘标识与预设的哈希值取值区间之间的对应关系;
4.根据权利要求1所述的方法,所述目标数据包括预先划分为若干数据分段的数据;
5.根据权利要求1所述的方法,所述目标数据包括数据对象;所述目标数据的数据标识至少包括存储所述数据对象的存储桶标识,以及所述数据对象的对象标识。
6.根据权利要求5所述的方法,将每个所述数据分片的顺序标识,以及数据分片的索引信息存储至索引磁盘之前,所述方法还包括:
7.根据权利要求1所述的方法,所述数据磁盘按照所述数据分片的大小划分为若干磁盘空间;
8.根据权利要求1所述的方法,所述数据磁盘的缓存信息中维护了若干磁盘空间的使用情况的编码序列;其中,所述编码序列中包括用于表示磁盘空间为已使用状态的第一编码字符;以及,用于表示磁盘空间为空闲状态的第二编码字符;
9.一种数据存储装置,所述装置包括:
10.一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
11.一种计算机可读存储介质,所述计算机可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现权利要求1-8任一项所述的方法。