本申请涉及数据处理,特别涉及一种针对ceph对象的写入方法、装置、设备及存储介质。
背景技术:
1、分布式对象存储系统包括多个存储节点,可以将待存储的数据映射至一组不同存储节点的对象存储设备(object-based storage device,osd)上。由于分布式对象存储系统具备横向扩展(scale-out)能力。利用横向扩展能力,可使存储容量和性能同步扩展,所以分布式对象存储系统近年来在企业广泛部署。随着云计算、大数据、物联网的发展,分布式对象存储系统需要存储的数据量快速增长,并且很多数据仅有局部数据不同的特点,这就造成仅有局部数据不同的各数据间存在数据冗余,进而影响osd的空间利用率。
2、因而现有技术还有待改进和提高。
技术实现思路
1、本申请要解决的技术问题在于,针对现有技术的不足,提供一种针对ceph对象的写入方法、装置、设备及存储介质。
2、为了解决上述技术问题,本申请实施例第一方面提供了一种针对ceph对象的写入方法,所述的针对ceph对象的写入方法包括:
3、当osd接收到数据写入操作时,获取所述写入操作对应的对象数据的数据指纹,并根据所述数据指纹检测所述对象数据是否存储于分布式对象存储系统中,其中,所述分布式对象存储系统包括所述osd;
4、当所述对象数据存储于分布式对象存储系统时,为所述对象数据创建空对象,其中,所述空对象记录有所述对象数据在分布式对象存储系统中的位置信息;
5、采用所述空对象替换所述对象数据,以通过所述写入操作将所述空对象写入osd。
6、所述的针对ceph对象的写入方法,其中,所述方法还包括:
7、当所述对象数据未存储于osd时,通过所述写入操作将所述对象数据写入osd,并将所述对象数据的数据指纹记录在rocksdb。
8、所述的针对ceph对象的写入方法,其中,所述根据所述数据指纹检测所述对象数据是否存储于分布式对象存储系统中,其中,所述分布式对象存储系统包括所述osd具体包括:
9、在用于记录数据指纹的rocksdb中查找所述对象数据的数据指纹;
10、当查找到对象数据的数据指纹时,判断所述对象数据存储于分布式对象存储系统时;
11、当未查找到对象数据存储于分布式对象存储系统时,判断所述对象数据未存储于osd。
12、所述的针对ceph对象的写入方法,其中,所述的当所述对象数据存储于分布式对象存储系统时,为所述对象数据创建空对象具体包括:
13、当所述对象数据存储于分布式对象存储系统时,获取所述对象数据在分布式对象存储系统的位置信息;
14、为所述对象数据创建空对象,并将所述位置信息记录于所述空对象内,以使得所述空对象记录有所述对象数据在分布式对象存储系统中的位置信息。
15、所述的针对ceph对象的写入方法,其中,所述分布式对象存储系统内存储的对象数据配置有重删计数器,并且当所述对象数据被以空对象写入osd时,所述对象数据配置的重删计数器增加1。
16、所述的针对ceph对象的写入方法,其中,所述方法还包括:
17、当分布式对象存储系统中的空对象被删除时,基于所述空对象记录的位置信息查找所述对象数据,并将所述对象数据的重删计数器减1。
18、所述的针对ceph对象的写入方法,其中,所述当osd接收到数据写入操作时,获取所述写入操作对应的对象数据的数据指纹之前,所述方法还包括:
19、当接收到待写入文件时,将所述待写入文件切分为若干对象数据,并将若干对象数据中的各对象数据逐个写入osd。
20、本申请实施例第二方面提供了一种针对ceph对象的写入装置,所述的针对ceph对象的写入装置包括:
21、检测模块,用于当osd接收到数据写入操作时,获取所述写入操作对应的对象数据的数据指纹,并根据所述数据指纹检测所述对象数据是否存储于分布式对象存储系统中,其中,所述分布式对象存储系统包括所述osd;
22、创建模块,用于当所述对象数据存储于分布式对象存储系统时,为所述对象数据创建空对象,其中,所述空对象记录有所述对象数据在分布式对象存储系统中的位置信息;
23、写入模块,用于采用所述空对象替换所述对象数据,以通过所述写入操作将所述空对象写入osd。
24、本申请实施例第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上任一所述的针对ceph对象的写入方法中的步骤。
25、本申请实施例第四方面提供了一种终端设备,其包括:处理器和存储器;
26、所述存储器上存储有可被所述处理器执行的计算机可读程序;
27、所述处理器执行所述计算机可读程序时实现如上任一所述的针对ceph对象的写入方法中的步骤。
28、有益效果:与现有技术相比,本申请实施例提供了一种针对ceph对象的写入方法、装置、设备及存储介质,方法包括当osd接收到数据写入操作时,获取所述写入操作对应的对象数据的数据指纹,并根据所述数据指纹检测所述对象数据是否存储于分布式对象存储系统中,其中,所述分布式对象存储系统包括所述osd;当所述对象数据存储于分布式对象存储系统时,为所述对象数据创建空对象;采用所述空对象替换所述对象数据,以通过所述写入操作将所述空对象写入osd。本申请实施例在通过数据指纹在osd中存储的存储对象查找到对象数据时,通过将对象数据转换为携带有已存储对象的数据指望的空对象形成来存储对象数据,这样一方面存储了对象数据,另一方面也减少了对象数据所占用的存储资源,提高了osd的资源利用率。
1.一种针对ceph对象的写入方法,其特征在于,所述的针对ceph对象的写入方法包括:
2.根据权利要求1所述的针对ceph对象的写入方法,其特征在于,所述方法还包括:
3.根据权利要求1所述的针对ceph对象的写入方法,其特征在于,所述根据所述数据指纹检测所述对象数据是否存储于分布式对象存储系统中,其中,所述分布式对象存储系统包括所述osd具体包括:
4.根据权利要求1所述的针对ceph对象的写入方法,其特征在于,所述的当所述对象数据存储于分布式对象存储系统时,为所述对象数据创建空对象具体包括:
5.根据权利要求1所述的针对ceph对象的写入方法,其特征在于,所述分布式对象存储系统内存储的对象数据配置有重删计数器,并且当所述对象数据被以空对象写入osd时,所述对象数据配置的重删计数器增加1。
6.根据权利要求5所述的针对ceph对象的写入方法,其特征在于,所述方法还包括:
7.根据权利要求1所述的针对ceph对象的写入方法,其特征在于,所述当osd接收到数据写入操作时,获取所述写入操作对应的对象数据的数据指纹之前,所述方法还包括:
8.一种针对ceph对象的写入装置,其特征在于,所述的针对ceph对象的写入装置包括:
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1-7任意一项所述的针对ceph对象的写入方法中的步骤。
10.一种终端设备,其特征在于,包括:处理器和存储器;