数据写入更新方法、系统、装置及计算机可读存储介质与流程



1.本发明涉及分布式存储系统技术领域,特别是涉及一种数据写入更新方法、系统、装置及计算机可读存储介质。


背景技术:



2.分布式存储系统ceph包括bluestore及ssd(solid state disk,固态硬盘),其中,bluestore为分布式存储系统ceph的存储引擎,用于重定向写等工作。现有技术中,当存在写入数据的需求时,假定数据1待写入,则在bluestore中申请逻辑地址1,最终写入ssd中对应的物理地址1,之后在存在与数据1对应的数据2想要覆盖原本的数据1以进行写入更新时,需要重新在bluestore中申请到逻辑地址2,最终写入ssd中对应的物理地址2,数据2成功写入物理地址2之后,存在以下两种方式将数据1对应的位置标记为可删除状态以便使得该位置具备再利用资格:
3.第一种方式为由bluestore再次向ssd发送一条trim指令,以将物理地址1标记为可删除状态,但是这种方式会造成写放大,原本只需要一条写io指令完成数据2的写入,但是上述数据2成功写入后再次发送trim指令就会使得多一条写io指令,最终造成iops(单位时间内处理的io请求数)的写放大,影响了bluestore的工作性能;
4.第二种方式为数据2成功写入物理地址2后,不发送所述trim指令,而是将数据1对应的逻辑地址1重新放置到bluestore的可申请队列中,但是此时由于未发送trim指令,ssd并不知晓该情况,对于ssd来说物理地址1存储的数据1仍然为有效数据而处于非可删除状态,直到逻辑地址1重新被申请时ssd才知晓该情况,进而将物理地址1标记为可删除状态,但是从逻辑地址1重新放置到bluestore的可申请队列到其再次被申请的这段时间通常较长,这段时间内物理地址1存储的数据1均参与到有效数据的对应处理逻辑,影响了ssd的工作性能及使用寿命。
5.因此,如何寻一种有效的方式实现分布式存储系统中的数据写入更新是当前亟待解决的问题。


技术实现要素:



6.本发明的目的是提供一种数据写入更新方法、系统、装置及计算机可读存储介质,在一次数据写入过程中既实现了覆盖数据的写入,又实现了已写入物理地址的工作状态的标记,提升了bluestore的工作性能,保证了存储模块的工作性能,延长了存储模块的使用寿命。
7.为解决上述技术问题,本发明提供了一种数据写入更新方法,包括:
8.bluestore在接收到表征利用覆盖数据更新对应的已写入数据的写入请求时,确定所述覆盖数据在所述存储模块中的待写入物理地址;
9.基于所述写入请求及预存标识-物理地址对应关系,确定所述已写入数据在所述存储模块中的已写入物理地址;
10.将所述删除标识及所述覆盖数据发送至所述存储模块,以便所述存储模块基于所述删除标识将所述已写入物理地址对应的工作状态标记为可删除状态并将所述覆盖数据写入所述待写入物理地址,其中,所述删除标识基于所述已写入物理地址对应确定。
11.优选的,将所述删除标识及所述覆盖数据发送至所述存储模块之后,还包括:
12.所述bluestore基于接收到的所述存储模块发送的地址更新信息,将所述已写入数据对应的已用逻辑地址加入预设可申请逻辑地址队列;
13.基于所述地址更新信息更新预设地址映射关系,以使所述已用逻辑地址与所述存储模块中处于空闲状态的分配可写入物理地址映射对应。
14.优选的,还包括:
15.所述存储模块判断目标存储块中的存储利用率是否达到预设阈值,所述目标存储块中包括多个物理地址;
16.若是,将工作状态处于非可删除状态的物理地址中存储的数据转存至转运存储块;
17.对所述目标存储块进行数据擦除。
18.优选的,判断目标存储块中的存储利用率是否达到预设阈值之前,还包括:
19.所述存储模块判断所述目标存储块是否处于表征当前没有数据正在写入的非写入状态;
20.若是,进入所述判断目标存储块中的存储利用率是否达到预设阈值的步骤。
21.优选的,将所述删除标识及所述覆盖数据发送至所述存储模块,包括:
22.所述bluestore调用写接口将所述删除标识及所述覆盖数据发送至用于管理所述存储模块的下层驱动组件,以使所述下层驱动组件将所述删除标识填充至所述存储模块遵循的传输协议的命令字中并将更新后的命令字及所述覆盖数据发送至所述存储模块,以便所述存储模块将所述覆盖数据写入所述待写入物理地址,根据所述更新后的命令字得到所述删除标识并基于所述删除标识将所述已写入物理地址对应的工作状态标记为可删除状态。
23.优选的,所述下层驱动组件将所述删除标识填充至所述存储模块遵循的传输协议的命令字中,包括:
24.所述下层驱动组件确定所述存储模块遵循的传输协议的命令字中的预留命令字的位置;
25.将所述删除标识依照预设填充规则写入所述预留命令字的位置,以生成更新后的命令字。
26.优选的,所述存储模块根据所述更新后的命令字得到所述删除标识,包括:
27.所述存储模块调用预设解析接口,以基于所述预设填充规则的逆规则解析所述更新后的命令字,得到所述删除标识。
28.为解决上述技术问题,本发明还提供了一种数据写入更新系统,包括:
29.待写入物理地址确定单元,用于bluestore在接收到表征利用覆盖数据更新对应的已写入数据的写入请求时,确定所述覆盖数据在所述存储模块中的待写入物理地址;
30.已写入物理地址确定单元,用于基于所述写入请求及预存标识-物理地址对应关系,确定所述已写入数据在所述存储模块中的已写入物理地址;
31.发送单元,用于将所述删除标识及所述覆盖数据发送至所述存储模块,以便所述存储模块基于所述删除标识将所述已写入物理地址对应的工作状态标记为可删除状态并将所述覆盖数据写入所述待写入物理地址,其中,所述删除标识基于所述已写入物理地址对应确定。
32.为解决上述技术问题,本发明还提供了一种数据写入更新装置,包括:
33.存储器,用于存储计算机程序;
34.处理器,用于执行所述计算机程序时实现如上述所述的数据写入更新方法的步骤。
35.为解决上述技术问题,本发明还提供了一种计算机可读存储介质,包括:
36.所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的数据写入更新方法的步骤。
37.本技术提供了一种数据写入更新方法、系统、装置及计算机可读存储介质,已写入数据完成在存储模块中的写入后,bluestore在接收到表征利用覆盖数据更新对应的已写入数据的写入请求时,确定覆盖数据在存储模块中的待写入物理地址,确定已写入数据在存储模块中的已写入物理地址,基于已写入物理地址对应确定出删除标识,进而将所述删除标识及所述覆盖数据均发送至所述存储模块,以便存储模块基于该删除标识控制已写入物理地址对应的工作状态标记为可删除状态并将覆盖数据写入待写入物理地址,在一次数据写入过程中既实现了覆盖数据的写入,又实现了已写入物理地址的工作状态的标记,相较于现有技术,避免了在覆盖数据成功写入完成后额外重新发送trim指令的方式造成的写放大问题,提升了bluestore的工作性能,且覆盖数据写入及工作状态的标记在一次写入中完成,后续该已写入物理地址将不会作为有效数据而参与到有效数据的处理逻辑,保证了存储模块的工作性能,延长了存储模块的使用寿命。
附图说明
38.为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
39.图1为本发明提供的一种数据写入更新方法的流程图;
40.图2为本发明提供的一种数据写入更新系统的结构示意图;
41.图3为本发明提供的一种数据写入更新装置的结构示意图。
具体实施方式
42.本发明的核心是提供一种数据写入更新方法、系统、装置及计算机可读存储介质,在一次数据写入过程中既实现了覆盖数据的写入,又实现了已写入物理地址的工作状态的标记,提升了bluestore的工作性能,保证了存储模块的工作性能,延长了存储模块的使用寿命。
43.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是
本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
44.请参照图1,图1为本发明提供的一种数据写入更新方法的流程图。
45.bluestore为分布式存储系统的存储引擎,本实施例中,考虑到分布式存储系统中的bluestore在面临写入数据的需求时,均需要遵照重定向写的方式,即具体的,数据1完成写入物理地址1的工作后,在存在与数据1对应的数据2想要覆盖原本的数据1以进行写入更新时,数据2将会写入到物理地址2,在数据2成功写入物理地址2之后,为了将数据1对应的位置标记为可删除状态以便使得该位置具备再利用资格,第一种方式为由bluestore再次向ssd发送一条trim指令,但是该种方式会造成写放大,影响了bluestore的工作性能;第二种方式为将数据1对应的逻辑地址1重新放置到bluestore的可申请队列中,但是此时由于未发送trim指令,ssd并不知晓该情况,对于ssd来说物理地址1存储的数据1仍然为有效数据,直到逻辑地址1重新被申请时ssd才将物理地址1标记为可删除状态,但是从逻辑地址1重新放置至可申请队列到其再次被申请的这段时间通常较长,该时间内物理地址1存储的数据1均参与到有效数据的对应处理逻辑,影响了ssd的工作性能及使用寿命。为解决上述技术问题,本技术提供了一种数据写入更新方法,在一次数据写入过程中既实现了覆盖数据的写入,又实现了已写入物理地址的工作状态的标记。
46.该数据写入更新方法,包括:
47.s11:bluestore在接收到表征利用覆盖数据更新对应的已写入数据的写入请求时,确定覆盖数据在存储模块中的待写入物理地址;
48.首先需要说明的是,该数据写入更新方法包括但不限于应用在计算机设备中的分布式存储系统,所述计算机设备包括但不限于服务器;具体的,该方法可运行于linux平台;所述存储模块包括多个用于数据存储的存储块以及根据接收到的信息控制自身不同功能实现的软件程序及程序组件,该存储模块具体包括但不限于搭载在ssd中。
49.具体的,bluestore中预先存储有预设可申请逻辑地址队列以及预设地址映射关系,该预设地址映射关系本质上表征了bluestore中的逻辑地址与存储模块中的物理地址之间的映射,于是,bluestore在接收到所述写入请求时,由于bluestore本身的重定向写的特殊方式,写的数据并不是直接写至存储模块上的物理地址,而是首先基于预设可申请逻辑地址队列,确定所述覆盖数据的可用逻辑地址,进而根据所述可用逻辑地址及预设地址间映射关系,确定出该覆盖数据在所述存储模块中的待写入物理地址。
50.s12:基于写入请求及预存标识-物理地址对应关系,确定已写入数据在存储模块中的已写入物理地址;
51.具体的,写入请求中可包括表征写请求的信息本身以及表征该覆盖数据的唯一身份标识信息,且覆盖数据的唯一身份标识信息与已写入数据的唯一身份标识信息相同,以表征上述两者本质上为存在覆盖更新关系的同一类型数据;bluestore中还预先存储有预存标识-物理地址对应关系,该预存标识-物理地址对应关系记录了已经写入至存储模块的各个数据的标识信息及对应的在存储模块中的物理地址,已写入数据自然也被记录其中,进而据此可确定已写入数据在所述存储模块中的已写入物理地址。
52.需要说明的是,由于bluestore本身的重定向写的特殊方式,对于已写入数据来说,bluestore对其的写处理方式仍为首先基于预设可申请逻辑地址队列,为所述已写入数
据确定其可用的逻辑地址(即下述实施例中所述的已用逻辑地址),进而根据该逻辑地址及预设地址间映射关系,确定出该已写入数据在所述存储模块中对应的可用的物理地址(即所述已写入物理地址),进而调用写接口实现已写入数据的成功写入。
53.此外,所述待写入物理地址与所述已写入物理地址不是同一个物理地址。
54.s13:将删除标识及覆盖数据发送至存储模块,以便存储模块基于删除标识将已写入物理地址对应的工作状态标记为可删除状态并将覆盖数据写入待写入物理地址,其中,删除标识基于已写入物理地址对应确定。
55.具体的,bluestore调用写接口一次性地将所述删除标识及所述覆盖数据,均发送至所述存储模块,而对于存储模块来说,一方面可将所述覆盖数据写入所述待写入物理地址,以对更新后的数据进行存储写入;另一方面可基于接收到的该删除标识将已写入物理地址对应的工作状态直接标记为可删除状态,进而保证该已写入物理地址中的已写入数据不会作为有效数据参与到针对有效数据的处理步骤中。
56.还需要说明的是,将已写入物理地址对应的工作状态标记为可删除状态并不意味着直接将其中的内容删除,而是仅在后续触发了相应的垃圾回收机制时才会进行数据擦除,这样做可以有利于数据存储的安全,因为对于覆盖数据的实际写入过程来说,存在一定的可能出现因设备掉电而导致传输中断的故障,此时写进存储模块中的覆盖数据是有问题的,而由于只是将已写入物理地址对应的工作状态标记为可删除状态且还并未进行实质上的数据擦除工作,便于进行数据回滚至原本的已写入数据,从而保证了数据的原子性及存储安全性。
57.综上,本技术提供了一种数据写入更新方法,已写入数据完成在存储模块中的写入后,bluestore在接收到表征利用覆盖数据更新对应的已写入数据的写入请求时,确定覆盖数据在存储模块中的待写入物理地址,确定已写入数据在存储模块中的已写入物理地址,基于已写入物理地址对应确定出删除标识,进而将所述删除标识及所述覆盖数据均发送至所述存储模块,以便存储模块基于该删除标识控制已写入物理地址对应的工作状态标记为可删除状态并将覆盖数据写入待写入物理地址,在一次数据写入过程中既实现了覆盖数据的写入,又实现了已写入物理地址的工作状态的标记,相较于现有技术,避免了在覆盖数据成功写入完成后额外重新发送trim指令的方式造成的写放大问题,提升了bluestore的工作性能,且覆盖数据写入及工作状态的标记在一次写入中完成,后续该已写入物理地址将不会作为有效数据而参与到有效数据的处理逻辑,保证了存储模块的工作性能,延长了存储模块的使用寿命,降低了维护成本。
58.在上述实施例的基础上:
59.作为一种优选的实施例,将删除标识及覆盖数据发送至存储模块之后,还包括:
60.bluestore基于接收到的存储模块发送的地址更新信息,将已写入数据对应的已用逻辑地址加入预设可申请逻辑地址队列;
61.基于地址更新信息更新预设地址映射关系,以使已用逻辑地址与存储模块中处于空闲状态的分配可写入物理地址映射对应。
62.本实施例中,考虑到将所述删除标识及所述覆盖数据发送至所述存储模块之后,存储模块将完成覆盖数据的写入以及已写入物理地址对应的工作状态标记为可删除状态两部分的工作,bluestore中包括有限个逻辑地址,为了进一步提高逻辑地址的利用率,存
储模块可以向bluestore发送地址更新信息,该地址更新信息包括两部分内容:第一部分为表征将已写入数据对应的已用逻辑地址更新为可申请状态的第一更新信息;第二部分为根据自身的存储空间利用情况确定的第二更新信息,该第二更新信息表征了所述已用逻辑地址重新映射的分配可写入物理地址,所述分配可写入物理地址具体可以为存储模块中处于未进行数据写入的空闲状态的各个物理地址中的一个。
63.对于bluestore来说,在接收到所述地址更新信息时,可以根据该地址更新信息将已写入数据对应的已用逻辑地址加入预设可申请逻辑地址队列,并更新预设地址映射关系,以使所述已用逻辑地址与所述存储模块中处于空闲状态的分配可写入物理地址映射对应,提高了自身中的逻辑地址的利用率,更好地保证了工作性能。
64.作为一种优选的实施例,还包括:
65.存储模块判断目标存储块中的存储利用率是否达到预设阈值,目标存储块中包括多个物理地址;
66.若是,将工作状态处于非可删除状态的物理地址中存储的数据转存至转运存储块;
67.对目标存储块进行数据擦除。
68.本实施例中,发明人进一步考虑到为了保证存储模块的存储空间有效利用,在达到一定程度的数据写入后,可以进行数据擦除。
69.首先需要说明的是,该存储模块可搭载于ssd,ssd中进行数据擦除时是以block(即存储块)为单位,一个block(存储块)中包括若干个page(即所述物理地址),上述待写入物理地址以及已写入物理地址均为存储模块中某个存储块中的一个page,所述目标存储块即为存储模块中各个存储块中的一个,该目标存储块中具体包括多个物理地址。
70.于是,存储模块判断该目标存储块中的存储利用率是否达到预设阈值,其中,所述存储利用率即表征了该目标存储块中各个物理地址是否已写入数据的情况,所述预设阈值可以为70%,也可以为80%,在此不作特别的限定,根据实际需求设定即可。于是,可以确定该目标存储块中各所述物理地址的工作状态,将工作状态处于非可删除状态的物理地址中存储的数据均转存至转运存储块,这里的处于非可删除状态指的是该状态下的物理地址中存储的数据为有效数据,对应于上述实施例,待写入物理地址对应的工作状态即为所述非可删除状态,而对应的覆盖数据即为有效数据;且由于数据擦除是以block即整个数据块为单位,全部进行擦除,于是确定转运存储块(该转运存储块具体可以为存储模块的其他存储块中的一个且可容纳下上述处于非可删除状态的物理地址中存储的数据),以完成数据的搬运工作,当然,还可以记录上述被搬运的数据具体搬运至转运存储块中的哪个位置,以便后续应用,在此不作特别的限定;最后,对所述目标存储块进行数据擦除即可,数据擦除后的目标存储块中的各个物理地址可重新利用以写入新的数据。
71.作为一种优选的实施例,判断目标存储块中的存储利用率是否达到预设阈值之前,还包括:
72.存储模块判断目标存储块是否处于表征当前没有数据正在写入的非写入状态;
73.若是,进入判断目标存储块中的存储利用率是否达到预设阈值的步骤。
74.本实施例中,发明人进一步考虑到若数据擦除工作进行于数据写入的过程中,会影响数据写入的可靠性及完整性,因此,在判断目标存储块中的存储利用率是否达到预设
阈值之前,所述存储模块需要首先判断目标存储块是否处于表征当前没有任何数据正在写入的非写入状态,即空闲状态,若是,再进入所述判断目标存储块中的存储利用率是否达到预设阈值的步骤;若否,说明正在有数据写入,则不触发表征数据擦除的垃圾回收逻辑,更好地保证了存储模块的可靠工作,利于实际应用。
75.作为一种优选的实施例,将删除标识及覆盖数据发送至存储模块,包括:
76.bluestore调用写接口将删除标识及覆盖数据发送至用于管理存储模块的下层驱动组件,以使下层驱动组件将删除标识填充至存储模块遵循的传输协议的命令字中并将更新后的命令字及覆盖数据发送至存储模块,以便存储模块将覆盖数据写入待写入物理地址,根据更新后的命令字得到删除标识并基于删除标识将已写入物理地址对应的工作状态标记为可删除状态。
77.本实施例中,给出了所述删除标识及所述覆盖数据从bluestore最终发送至存储模块需要经过的具体实现过程,可以理解的是,所述写接口具体可以为write()接口,以存储模块搭载于ssd为例进行说明:
78.对于分布式存储系统ceph来说,bluestore想要发送数据至ssd,需要经过下层驱动组件,具体的该下层驱动组件可以理解为驱动层,根据实际需要数据传输过程还可以流过操作系统层,也就是说,若以层级进行描述,此时这里的层级关系对应的数据流向可以理解为bluestore层-操作系统层-驱动层-ssd层;需要说明的是,本技术提供的数据写入更新方法不需要对操作系统中作出修改,即不需要在操作系统层中额外添加程序组件,因此在操作系统层中直接按照实际需求的设置来完成数据传递即可。
79.ssd遵循的传输协议为nvme协议(non-volatile memory express,非易失性内存接口规范),对于下层驱动组件来说,可以将该删除标识填充至所述nvme协议的命令字中,以得到更新后的命令字并传送至ssd。对于ssd来说,其可以一方面将得到的覆盖数据写入待写入物理地址,另一方面基于得到的删除标识确定需要标记的物理地址,即将所述已写入物理地址对应的工作状态标记为可删除状态。
80.作为一种优选的实施例,下层驱动组件将删除标识填充至存储模块遵循的传输协议的命令字中,包括:
81.下层驱动组件确定存储模块遵循的传输协议的命令字中的预留命令字的位置;
82.将删除标识依照预设填充规则写入预留命令字的位置,以生成更新后的命令字。
83.本实施例中,进一步考虑到传输协议的命令字中可以包括自身设置的固有命令字,还可以包括协议开发时为技术人员后续研发需要而设置的预留命令字的位置。因此,以存储模块搭载于ssd且遵循的传输协议为nvme协议为例,该传输协议的命令字为64字节,其中就包括一部分预留命令字的位置以供研发人员开发设置,于是,本技术中下层驱动组件可以在不额外扩展传输协议的命令字的字节的基础上,将所述删除标识依照预设填充规则写入所述预留命令字的位置,以生成更新后的命令字(具体的,可以在下层驱动组件中设置对应的程序接口以实现上述功能,在此不作特别的限定),这里的预设填充规则根据实际需求编程设置,此处不作特别的限定,实现命令字填充结果与删除标识之间的对应即可。
84.作为一种优选的实施例,存储模块根据更新后的命令字得到删除标识,包括:
85.存储模块调用预设解析接口,以基于预设填充规则的逆规则解析更新后的命令字,得到删除标识。
86.本实施例中,存储模块中预先编程设置有预设解析接口(本质上为程序组件),内置与所述预设填充规则对应的逆规则,进而存储模块可以通过调用该预设解析接口实现更新后的命令字(如更新后的nvme协议的命令字),解析的结果即为所述删除标识,最终可靠地实现了已写入物理地址对应的工作状态的标记。
87.请参照图2,图2为本发明提供的一种数据写入更新系统的结构示意图。
88.该数据写入更新系统,包括:
89.待写入物理地址确定单元21,用于bluestore在接收到表征利用覆盖数据更新对应的已写入数据的写入请求时,确定覆盖数据在存储模块中的待写入物理地址;
90.已写入物理地址确定单元22,用于基于写入请求及预存标识-物理地址对应关系,确定已写入数据在存储模块中的已写入物理地址;
91.发送单元23,用于将删除标识及覆盖数据发送至存储模块,以便存储模块基于删除标识将已写入物理地址对应的工作状态标记为可删除状态并将覆盖数据写入待写入物理地址,其中,删除标识基于已写入物理地址对应确定。
92.对于本发明中提供的数据写入更新系统的介绍请参照上述数据写入更新方法的实施例,此处不再赘述。
93.作为一种优选的实施例,所述数据写入更新系统,还包括:
94.第一更新单元,用于在发送单元23之后,所述bluestore基于接收到的所述存储模块发送的地址更新信息,将所述已写入数据对应的已用逻辑地址加入预设可申请逻辑地址队列;
95.第二更新单元,用于基于所述地址更新信息更新预设地址映射关系,以使所述已用逻辑地址与所述存储模块中处于空闲状态的分配可写入物理地址映射对应。
96.作为一种优选的实施例,所述数据写入更新系统,还包括:
97.第一判断单元,用于所述存储模块判断目标存储块中的存储利用率是否达到预设阈值,所述目标存储块中包括多个物理地址;若是,触发数据转运单元;
98.所述数据转运单元,用于将工作状态处于非可删除状态的物理地址中存储的数据转存至转运存储块;
99.数据擦除单元,用于对所述目标存储块进行数据擦除。
100.作为一种优选的实施例,所述数据写入更新系统,还包括:
101.第二判断单元,用于在第一判断单元之前,所述存储模块判断所述目标存储块是否处于表征当前没有数据正在写入的非写入状态;若是,进入所述第一判断单元。
102.作为一种优选的实施例,所述发送单元23,具体包括:
103.第一调用单元,用于所述bluestore调用写接口将所述删除标识及所述覆盖数据发送至用于管理所述存储模块的下层驱动组件,以使所述下层驱动组件将所述删除标识填充至所述存储模块遵循的传输协议的命令字中并将更新后的命令字及所述覆盖数据发送至所述存储模块,以便所述存储模块将所述覆盖数据写入所述待写入物理地址,根据所述更新后的命令字得到所述删除标识并基于所述删除标识将所述已写入物理地址对应的工作状态标记为可删除状态。
104.请参照图3,图3为本发明提供的一种数据写入更新装置的结构示意图。
105.该数据写入更新装置,包括:
106.存储器31,用于存储计算机程序;
107.处理器32,用于执行所述计算机程序时实现如上述所述的数据写入更新方法的步骤。
108.对于本发明中提供的数据写入更新装置的介绍请参照上述数据写入更新方法的实施例,此处不再赘述。
109.本发明还提供了一种计算机可读存储介质,包括:
110.计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的数据写入更新方法的步骤。
111.对于本发明中提供的计算机可读存储介质的介绍请参照上述数据写入更新方法的实施例,此处不再赘述。
112.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
113.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

技术特征:


1.一种数据写入更新方法,其特征在于,包括:bluestore在接收到表征利用覆盖数据更新对应的已写入数据的写入请求时,确定所述覆盖数据在所述存储模块中的待写入物理地址;基于所述写入请求及预存标识-物理地址对应关系,确定所述已写入数据在所述存储模块中的已写入物理地址;将所述删除标识及所述覆盖数据发送至所述存储模块,以便所述存储模块基于所述删除标识将所述已写入物理地址对应的工作状态标记为可删除状态并将所述覆盖数据写入所述待写入物理地址,其中,所述删除标识基于所述已写入物理地址对应确定。2.如权利要求1所述的数据写入更新方法,其特征在于,将所述删除标识及所述覆盖数据发送至所述存储模块之后,还包括:所述bluestore基于接收到的所述存储模块发送的地址更新信息,将所述已写入数据对应的已用逻辑地址加入预设可申请逻辑地址队列;基于所述地址更新信息更新预设地址映射关系,以使所述已用逻辑地址与所述存储模块中处于空闲状态的分配可写入物理地址映射对应。3.如权利要求1所述的数据写入更新方法,其特征在于,还包括:所述存储模块判断目标存储块中的存储利用率是否达到预设阈值,所述目标存储块中包括多个物理地址;若是,将工作状态处于非可删除状态的物理地址中存储的数据转存至转运存储块;对所述目标存储块进行数据擦除。4.如权利要求3所述的数据写入更新方法,其特征在于,判断目标存储块中的存储利用率是否达到预设阈值之前,还包括:所述存储模块判断所述目标存储块是否处于表征当前没有数据正在写入的非写入状态;若是,进入所述判断目标存储块中的存储利用率是否达到预设阈值的步骤。5.如权利要求1至4任一项所述的数据写入更新方法,其特征在于,将所述删除标识及所述覆盖数据发送至所述存储模块,包括:所述bluestore调用写接口将所述删除标识及所述覆盖数据发送至用于管理所述存储模块的下层驱动组件,以使所述下层驱动组件将所述删除标识填充至所述存储模块遵循的传输协议的命令字中并将更新后的命令字及所述覆盖数据发送至所述存储模块,以便所述存储模块将所述覆盖数据写入所述待写入物理地址,根据所述更新后的命令字得到所述删除标识并基于所述删除标识将所述已写入物理地址对应的工作状态标记为可删除状态。6.如权利要求5所述的数据写入更新方法,其特征在于,所述下层驱动组件将所述删除标识填充至所述存储模块遵循的传输协议的命令字中,包括:所述下层驱动组件确定所述存储模块遵循的传输协议的命令字中的预留命令字的位置;将所述删除标识依照预设填充规则写入所述预留命令字的位置,以生成更新后的命令字。7.如权利要求6所述的数据写入更新方法,其特征在于,所述存储模块根据所述更新后的命令字得到所述删除标识,包括:
所述存储模块调用预设解析接口,以基于所述预设填充规则的逆规则解析所述更新后的命令字,得到所述删除标识。8.一种数据写入更新系统,其特征在于,包括:待写入物理地址确定单元,用于bluestore在接收到表征利用覆盖数据更新对应的已写入数据的写入请求时,确定所述覆盖数据在所述存储模块中的待写入物理地址;已写入物理地址确定单元,用于基于所述写入请求及预存标识-物理地址对应关系,确定所述已写入数据在所述存储模块中的已写入物理地址;发送单元,用于将所述删除标识及所述覆盖数据发送至所述存储模块,以便所述存储模块基于所述删除标识将所述已写入物理地址对应的工作状态标记为可删除状态并将所述覆盖数据写入所述待写入物理地址,其中,所述删除标识基于所述已写入物理地址对应确定。9.一种数据写入更新装置,其特征在于,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的数据写入更新方法的步骤。10.一种计算机可读存储介质,其特征在于,包括:所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的数据写入更新方法的步骤。

技术总结


本发明公开了一种数据写入更新方法、系统、装置及计算机可读存储介质,涉及分布式存储系统领域,BlueStore接收到对应写入请求时,确定在存储模块中覆盖数据的待写入物理地址及已写入数据的已写入物理地址,基于已写入物理地址确定删除标识,将删除标识及覆盖数据发送至存储模块,以便存储模块基于删除标识控制已写入物理地址对应的工作状态标记为可删除状态并将覆盖数据写入待写入物理地址,在一次数据写入过程中既实现了覆盖数据的写入,又实现了已写入物理地址的工作状态标记,避免了写放大问题,提升了BlueStore的工作性能;后续该已写入物理地址将不会作为有效数据参与到对应处理逻辑,延长了存储模块的使用寿命。延长了存储模块的使用寿命。延长了存储模块的使用寿命。


技术研发人员:

刘亚宇 李文鹏

受保护的技术使用者:

济南浪潮数据技术有限公司

技术研发日:

2022.10.21

技术公布日:

2022/12/6

本文发布于:2024-09-21 10:37:49,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/32036.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:所述   数据   模块   物理地址
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议