数据存储方法、装置、电子设备及计算机可读存储介质制造方法及图纸

技术编号:19023008 阅读:23 留言:0更新日期:2018-09-26 18:58
本发明专利技术实施例提供了一种数据存储方法及装置,应用于存储驱动,方法包括:获得待存储数据;判断待存储数据的大小是否大于预设第一阈值;如果否,判断磁盘中第一物理地址对应的存储空间是否存储有数据;第一物理地址为磁盘中与目标物理地址相连的物理地址,目标物理地址为存储有第一数据的存储空间对应的物理地址,第一数据为当前最新存储的数据;如果未存储数据,将所待存储数据存储至所述第一物理地址对应的存储空间。应用本发明专利技术实施例,如果第一物理地址对应的存储空间未存储数据,将数据存储到第一物理地址对应的存储空间,而不是先存储到缓存系统中,不会因缓存系统出现故障而导致数据丢失,减少了的在数据存储过程中的数据丢失的风险。

【技术实现步骤摘要】
数据存储方法、装置、电子设备及计算机可读存储介质
本专利技术涉及数据存储
,特别是涉及一种数据存储方法、装置、电子设备及计算机可读存储介质。
技术介绍
虚拟机是通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。虚拟机像物理机一样存在磁盘存储数据,将数据存储到虚拟机的磁盘。将数据存储到虚拟机的磁盘的方法为:虚拟机获得写请求,并将写请求转发给存储驱动,写请求中包含待存储数据和待存储数据的逻辑地址;存储驱动将待存储数据存储至与该逻辑地址相同的物理地址对应的存储空间中。示例性的,写请求携带的逻辑地址为逻辑地址1,则将待存储数据存储至物理地址1对应的存储空间,可以理解为存储驱动向磁盘发送写请求,以使得磁盘根据该写请求中的逻辑地址,确定与该逻辑地址相同的物理地址,将待存储数据存储至所确定的物理地址对应的存储空间。在数据存储技术中,逻辑地址是按照数据的逻辑块号确定的磁盘地址。在磁盘中是以字节为单位进行存储数据,为了正确地存储和读取数据,需要为每一字节单元分配一个唯一的地址,物理地址是每一字节单元的地址。每一物理地对应的一个存储空间,该存储空间所能存储的数据大小是字节单元的大小,示例性,一个字节单元的大小为64K,则该存储空所能存储的数据大小为64K。在一个物理地址对应的存储空间存储了数据之后,即使存储的数据的大小小于该存储空间所能存储的数据大小,也不会继续在该存储空间中存储数据,再次在该存储空间存储数据时,会将该存储空间之前存储的数据覆盖。针对上述数据存储方法存在顺序写和随机写两种存储方式。具体的,存储方式是由获得的写请求决定的。如果获得的多个写请求携带的逻辑地址是连续的,则该写请求为顺序写请求,存储方式为顺序写;如果获得的多个写请求携带的逻辑地址是不连续的,则该写请求为随机写请求,存储方式为随机写。虚拟机的磁盘的性能取决于其磁盘数据所在的存储介质,与存储介质的实现方式有关。对于大部分存储介质,顺序写性能要高于随机写性能,随机写相对于顺序写增加了磁头寻道和旋转的时间,造成了随机写相较于顺序写,存储效率比较低、需要更多的处理资源,因此,随机写的性能相较于顺序写的性能比较差。在现有技术中,利用缓存技术提高随机写的性能,具体的,虚拟机将写请求转发给存储驱动;存储驱动将写请求中携带的数据存储高速设备组成的缓存系统中;缓存系统将逻辑地址相连的数据进行合并,在合并的数据达到一定的数量的情况下,将合并后的数据存储至磁盘中。但这种方法,如果缓存系统出现故障,缓存系统中还没有存储到磁盘中的数据存在丢失的风险。
技术实现思路
本专利技术实施例的目的在于提供一种数据存储方法、装置、电子设备及计算机可读存储介质,以减少数据丢失的风险。具体技术方案如下:第一方面,为了达到上述目的,本专利技术实施例提供了一种数据存储方法,应用于存储驱动,所述方法包括:获得待存储数据;判断所述待存储数据的大小是否大于预设第一阈值;如果否,判断磁盘中第一物理地址对应的存储空间是否存储有数据;其中,所述第一物理地址为所述磁盘中与目标物理地址相连的物理地址,所述目标物理地址为存储有第一数据的存储空间对应的物理地址,所述第一数据为当前最新存储的数据;如果未存储数据,将所述待存储数据存储至所述第一物理地址对应的存储空间。第二方面,为了达到上述目的,本专利技术实施例提供了一种数据存储装置,应用于存储驱动,所述装置包括:第一获得模块,用于获得待存储数据;第一判断模块,用于判断所述待存储数据的大小是否大于预设第一阈值;第二判断模块,用于在所述第一判断模块的判断结果为否的情况下,判断磁盘中第一物理地址对应的存储空间是否存储有数据;其中,所述第一物理地址为所述磁盘中与目标物理地址相连的物理地址,所述目标物理地址为存储有第一数据的存储空间对应的物理地址,所述第一数据为当前最新存储的数据;第一存储模块,用于在所述第二判断模块的判断结果为未存储数据的情况下,将所述待存储数据存储至所述第一物理地址对应的存储空间。第三方面,为了达到上述目的,本专利技术实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现如上述第一方面所述的方法步骤。第四方面,为了达到上述目的,本专利技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的方法步骤。本专利技术实施例提供的一种数据存储方法、装置、电子设备及计算机可读存储介质,如果第一物理地址对应的存储空间未存储数据,将数据存储到第一物理地址对应的存储空间,而不是先存储到缓存系统中,不会因缓存系统出现故障而导致数据丢失,减少了的在数据存储过程中的数据丢失的风险。当然,实施本专利技术的任一产品或方法并不一定需要同时达到以上所述的所有优点。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的数据存储方法的第一种流程示意图;图2为分别利用现有技术与本专利技术实施例提供的数据存储方法进行数据存储的对比图;图3为本专利技术实施例提供的数据存储方法的第二种流程示意图;图4为本专利技术实施例提供的数据存储方法的第三种流程示意图;图5为本专利技术实施例提供的数据存储方法的第四种流程示意图;图6为本专利技术实施例提供的数据获取方法的流程示意图;图7为本专利技术实施例提供的存储空间回收方法的第一种流程示意图;图8为本专利技术实施例提供的存储空间回收方法的第二种流程示意图;图9为本专利技术实施例提供的存储空间回收方法的第三种流程示意图;图10为本专利技术实施例提供的数据存储装置的第一种结构示意图;图11为本专利技术实施例提供的数据存储装置的第二种结构示意图;图12为本专利技术实施例提供的数据存储装置的第三种结构示意图;图13为本专利技术实施例提供的数据存储装置的第四种结构示意图;图14为本专利技术实施例提供的数据获取装置的结构示意图;图15为本专利技术实施例提供的存储空间回收装置的第一种结构示意图;图16为本专利技术实施例提供的存储空间回收装置的第二种结构示意图;图17为本专利技术实施例提供的存储空间回收装置的第三种结构示意图;图18为本专利技术实施例提供的电子设备的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。需要说明的是,本专利技术实施例提供的数据存储方法优选应用于存储驱动,虚拟机磁盘包括虚拟机、存储驱动和磁盘,虚拟机将接收到文件系统的待存储数据发送给存储驱动,存储驱动将待存储数据发送给磁盘,以使得磁盘在将接收待存储数据后,存储该待存储数据。这里所说的文件系统为对文件存储器空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统,文件存储器可本文档来自技高网
...

【技术保护点】
1.一种数据存储方法,其特征在于,应用于存储驱动,所述方法包括:获得待存储数据;判断所述待存储数据的大小是否大于预设第一阈值;如果否,判断磁盘中第一物理地址对应的存储空间是否存储有数据;其中,所述第一物理地址为所述磁盘中与目标物理地址相连的物理地址,所述目标物理地址为存储有第一数据的存储空间对应的物理地址,所述第一数据为当前最新存储的数据;如果未存储数据,将所述待存储数据存储至所述第一物理地址对应的存储空间。

【技术特征摘要】
1.一种数据存储方法,其特征在于,应用于存储驱动,所述方法包括:获得待存储数据;判断所述待存储数据的大小是否大于预设第一阈值;如果否,判断磁盘中第一物理地址对应的存储空间是否存储有数据;其中,所述第一物理地址为所述磁盘中与目标物理地址相连的物理地址,所述目标物理地址为存储有第一数据的存储空间对应的物理地址,所述第一数据为当前最新存储的数据;如果未存储数据,将所述待存储数据存储至所述第一物理地址对应的存储空间。2.根据权利要求1所述的方法,其特征在于,所述判断磁盘中第一物理地址对应的存储空间是否存储有数据,包括:判断磁盘中存储所述第一数据的区域中的第一物理地址对应的存储空间是否存储有数据;其中,所述磁盘由预设数量个区域组成。3.根据权利要求1或2所述的方法,其特征在于,在判断所述待存储数据大于预设第一阈值的情况下,所述方法还包括:将所述待存储数据分割成数据块,其中,分割得到的每一数据块的大小均不大于每一物理地址对应的存储空间所能存储的数据的大小;存储分割得到的每一数据块。4.根据权利要求3所述的方法,其特征在于,所述获得待存储数据,包括:获得待存储数据和所述待存储数据的逻辑地址;在所述将所述目标数据分割成数据块之后,所述方法还包括:从分割得到的数据块中选择一个数据块,将所选择的数据块的逻辑地址设置为所述待存储数据的逻辑地址;按照预先设置的逻辑地址分配规则,为分割得到的数据块中除所选择数据块外的每一数据块分配逻辑地址;记录分割得到的每一数据块的逻辑地址与存储空间对应的物理地址之间的对应关系。5.根据权利要求4所述的方法,其特征在于,在判断出所述待存储数据的大小不大于预设第一阈值、且所述磁盘中存储第一数据的区域中的第一物理地址对应的存储空间存储有数据的情况下,所述方法还包括:从所述磁盘中除存储所述第一数据的区域之外的区域中选择一个存在第二物理地址的区域,确定为目标区域,其中,所述第二物理地址为所述磁盘中存储空间未存储数据的物理地址;从所述目标区域中选择一个存储空间未存储数据的物理地址,确定为第一物理地址,并执行所述将所述待存储数据存储至所述第一物理地址对应的存储空间的步骤;在所述将所述待存储数据存储至所述第一物理地址对应的存储空间之后,所述方法还包括:记录所述待存储数据的逻辑地址与物理地址之间的对应关系。6.根据权利要求5所述的方法,其特征在于,所述方法还包括:接收用于获得第二数据的获取请求,其中,所述获取请求包括第一逻辑地址;根据预先记录的逻辑地址与物理地址之间的对应关系,确定与所述第一逻辑地址具有对应关系的第三物理地址;从所确定的第三物理地址对应的存储空间中,获取所述第二数据。7.根据权利要求6所述的方法,其特征在于,所述获取请求还包括所述第二数据的大小;所述根据预先记录的逻辑地址与物理地址之间的对应关系,确定与所述第一逻辑地址具有对应关系的第三物理地址,包括:判断所述第二数据的大小是否大于所述第一阈值;如果否,根据预先记录的逻辑地址与物理地址之间的对应关系,确定与所述第一逻辑地址具有对应关系的第三物理地址;如果是,根据所述逻辑地址分配规则,确定所述第二数据除所述第一逻辑地址之外的其他的逻辑地址;针对每一所确定的逻辑地址,根据预先记录逻辑地址与物理地址之间的关联关系,确定该逻辑地址具有对应关系的第三物理地址;在所述第二数据的大小大于所述预设第一阈值的情况下,所述从所确定的第三物理地址对应的存储空间中,获取所述第二数据,包括:从所确定的第三物理地址,获取所述第二数据的数据块;在获取所述第二数据的全部数据块后,基于所获取的数据块,生成所述第二数据。8.根据权利要求6所述的方法,其特征在于,所述根据预先记录的逻辑地址与物理地址之间的对应关系,确定与所述第一逻辑地址具有对应关系的第三物理地址,包括:根据预先记录的逻辑地址与物理地址之间的对应关系,确定与所述第一逻辑地址具有对应关系的物理地址;从所确定的物理地址中,确定存储数据时间最晚的存储空间对应的物理地址,作为第三物理地址。9.根据权利要求5所述的方法,其特征在于,所述方法还包括:根据预先记录的逻辑地址与物理地址之间的对应关系,获得所述磁盘中每一区域中有效数据的数量,其中,所述有效数据为第四物理地址对应的存储空间中存储的数据,所述第四物理地址为与同一个逻辑地址具有对应关系的物理地址中,存储数据时间最晚的存储空间对应的物理地址;将有效数据的数量小于预设第二阈值的区域确定为待清理区域,将有效数据的数量大于预设第三阈值的区域确定为待存储区域;其中,所述待存储区域为存在所述第二物理地址的区域;从各个待清理区域中确定目标待清理区域;从各个待存储区域中选择所述目标待清理区域的目标待存储区域;将所述目标待清理区域中的有效数据存储至所述目标待存储区域,并删除所述目标待清理区域中的数据;将针对目标有效数据记录的逻辑地址与物理地址之间的对应关系修改为:逻辑地址与第五物理地址之间的对应关系,其中,所述目标有效数据为:所述目标待存储区域中来自所述目标待清理区域的有效数据,每一目标有效数据对应的第五物理地址为:该目标有效数据在所述目标待存储区域中的物理地址;在各个待清理区域中存在未被确定为所述目标待清理区域的区域时,从未被确定为所述目标待清理区域的区域中重新确定所述目标待清理区域,并返回执行所述从各个待存储区域中选择所述目标待清理区域的目标待存储区域的步骤。10.根据权利要求9所述的方法,其特征在于,所述从各个待清理区域中确定目标待清理区域,包括:从所述待清理区域中选择一个有效数量最少的待清理区域,确定为目标待清理区域;所述从各个待存储区域中选择所述目标待清理区域的目标待存储区域,包括:从所述待存储区域中,确定所述目标待清理区域的目标待存储区域,其中,所述目标待存储区域为当前有效数据的数量最多、且有效数据的数量小于该存储区域的存储空间数量的待存储区域;所述在各个待清理区域中存在未被确定为所述目标待清理区域的区域时,从未被确定为所述目标待清理区域的区域中重新确定所述目标待清理区域,包括:从未确定为所述目标待清理区域的待清理区域中,选择一个有效数据的数量最少的待清理区域,将所述目标待清理区域更新为当前所选择的待清理区域。11.根据权利要求10所述的方法,其特征在于,所述将所述目标待清理区域中的有效数据存储至所述目标待存储区域,并删除所述目标待清理区域中的数据,包括:将所述目标待清理区域中的有效数据存储至所述目标待存储区域;判断所述目标待清理区域中是否存在未被存储至所述目标待存储区域中的有效数据;如果否,删除所述目标待清理区域中的数据;如果是,从所述待存储区域中除所述目标待存储区域之外的待存储区域选择一个待存储区域,将所述目标待存储区域更新为所选择的待存储区域;将所述目标待清理区域中除所述目标有效数据之外的有效数据存储至更新后的目标待存储区域,并返回执行所述判断所述目标待清理区域中是否存在未被存储至所述目标待存储区域中的有效数据的步骤。12.根据权利要求9所述的方法,其特征在于,所述根据从各个待存储区域中选择所述目标待清理区域的目标待存储区域,包括:从各个待存储区域中选择目标数量不小于所述目标待清理区域中有效数据的数量的区域,作为目标待存储区域,其中,目标数量为该待存储区域的存储空间的数量与有效数据的数量之差。13.根据权利要求9-12任一项所述的方法,其特征在于,在所有待清理区域中的数存储的数据删除之后,所述方法还包括:将当前所有存在有效数据的区域中的垃圾数据删除,其中,所述垃圾数据为第六物理地址对应的存储空间中存储的数据,所述第六物理地址为与同一个逻辑地址具有对应关系的物理地址中,除所述第四物理地址之外的物理地址。14.一种数据存储装置,其特征在于,应用于存储驱动,所述装置包括:第一获得模块,用于获得待存储数据;第一判断模块,用于判断所述待存储数据的大小是否大于预设第一阈值;第二判断模块,用于在所述第一判断模块的判断结果为...

【专利技术属性】
技术研发人员:徐广治
申请(专利权)人:北京金山云网络技术有限公司北京金山云科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1