CN114756178A - 一种数据存储方法、系统及计算机可读存储介质 - Google Patents
一种数据存储方法、系统及计算机可读存储介质 Download PDFInfo
- Publication number
- CN114756178A CN114756178A CN202210467206.XA CN202210467206A CN114756178A CN 114756178 A CN114756178 A CN 114756178A CN 202210467206 A CN202210467206 A CN 202210467206A CN 114756178 A CN114756178 A CN 114756178A
- Authority
- CN
- China
- Prior art keywords
- data
- solid
- state storage
- address
- physical address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据存储方法、系统及计算机可读存储介质,涉及存储设备领域,方法包括:固态存储设备接收数据写入装置发送的数据写入请求,并从数据写入请求中提取待写入数据及逻辑地址;查找逻辑地址对应的原物理地址,并为原物理地址添加待回收标记及设置预设保留时间;将待写入数据写入新物理地址,并将新物理地址映射至逻辑地址;当接收到数据写入装置发送的针对逻辑地址的数据恢复请求且确定预设保留时间未截止时,向数据写入装置返回原物理地址对应的原始数据;可对被覆盖的逻辑地址对应原物理地址中的数据进行暂存,以便数据写入装置恢复原始数据,进而可避免固态存储设备无法保护被覆盖旧数据的问题。
Description
技术领域
本发明涉及存储设备领域,特别涉及一种数据存储方法、系统及计算机可读存储介质。
背景技术
固态存储设备(SSD,Solid-state memory)由于具有较快的读写速度,因此常被设置于存储系统中,用于提升存储系统的读写性能。然而,传统的固态盘在保护数据的可靠性时仅能保护最新数据,对被覆盖逻辑地址中的旧数据则直接放弃保护。这导致存储系统若需对旧数据进行保护,则需要在上层软件中增加复杂的冗余保护机制,不仅不利于系统维护,同时也对系统性能造成了影响。
发明内容
本发明的目的是提供一种数据存储方法、系统及计算机可读存储介质,其中固态存储设备可对需被覆盖的旧数据进行暂存,以实现对旧数据的保护。
为解决上述技术问题,本发明提供一种数据存储方法,包括:
固态存储设备接收数据写入装置发送的数据写入请求,并从所述数据写入请求中提取待写入数据及逻辑地址;
查找所述逻辑地址对应的原物理地址,并为所述原物理地址添加待回收标记及设置预设保留时间;
将所述待写入数据写入新物理地址,并将所述新物理地址映射至所述逻辑地址;
当接收到所述数据写入装置发送的针对所述逻辑地址的数据恢复请求且确定所述预设保留时间未截止时,向所述数据写入装置返回所述原物理地址对应的原始数据。
可选地,在为所述原物理地址添加待回收标记及设置预设保留时间之后,还包括:
当所述预设保留时间已截止时,将所述原物理地址添加至垃圾回收空间。
可选地,所有添加有所述待回收标记的物理地址组成待回收空间,所述待回收空间的大小不超过所述固态存储设备最大带宽的预设倍数。
可选地,在将所述新物理地址映射至所述逻辑地址之后,还包括:
向所述数据写入装置发送写成功信息。
可选地,在固态存储设备接收数据写入装置发送的数据写入请求之前,还包括:
所述数据写入装置在接收到文件覆盖请求时,从所述文件覆盖请求中读取新文件及对应的待覆盖逻辑地址;
在数据库中查询所述待覆盖逻辑地址对应的旧文件及所述旧文件在多个所述固态存储设备中对应的逻辑地址;
对所述新文件进行分块处理得到数据块,利用所述数据块及所述逻辑地址生成所述数据写入请求,并将所述数据写入请求下发对应的固态存储设备;
相应的,还包括:
所述数据写入装置判断所述固态存储设备是否在预设时间内返回写成功信息;
若是,则在所述数据库中,利用所述新文件与所述待覆盖逻辑地址之间的新映射关系覆盖所述旧文件与所述待覆盖逻辑地址之间的旧映射关系;
若否,则向已发送所述写成功信息的固态存储设备发送所述数据恢复请求及接收所述原始数据,并将所述原始数据重新写入对应的固态存储设备中对应的逻辑地址。
可选地,所述对所述新文件进行分块处理得到数据块,包括:
利用纠删码机制对所述新文件进行分块处理得到所述数据块;在所述数据块丢失数量不超过预设值时,剩余的数据块可恢复所述新文件;
相应的,在向已发送所述写成功信息的固态存储设备发送所述数据恢复请求及接收所述旧数据之前,还包括:
所述数据写入装置判断未发送所述写成功信息的固态存储设备的数量是否大于所述预设值;
若是,则执行向已发送所述写成功信息的固态存储设备发送所述数据恢复请求及接收所述旧数据的步骤。
可选地,在对所述新文件进行分块处理得到数据块之前,还包括:
所述数据写入装置创建写入事务,并设置事务过期时间;所述事务过期时间大于所述预设时间;
相应的,所述将所述原始数据重新写入对应的固态存储设备中对应的逻辑地址,包括:
当所述事务过期时间已截止时,将所述原始数据重新写入对应的固态存储设备中对应的逻辑地址。
本发明还提供一种数据存储系统,包括:固态存储设备及数据写入装置,其中,
所述固态存储设备,用于接收所述数据写入装置发送的数据写入请求,并从所述数据写入请求中提取待写入数据及逻辑地址;查找所述逻辑地址对应的原物理地址,并为所述原物理地址添加待回收标记及设置预设保留时间;将所述待写入数据写入新物理地址,并将所述新物理地址映射至所述逻辑地址;当接收到所述数据写入装置发送的针对所述逻辑地址的数据恢复请求且确定所述预设保留时间未截止时,向所述数据写入装置返回所述原物理地址对应的原始数据;
所述数据写入装置,用于发送的数据写入请求及所述数据恢复请求。
可选地,所述固态存储设备,还用于:
当所述预设保留时间已截止时,将所述原物理地址添加至垃圾回收空间。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上所述的数据存储方法。
本发明提供一种数据存储方法,包括:固态存储设备接收数据写入装置发送的数据写入请求,并从所述数据写入请求中提取待写入数据及逻辑地址;查找所述逻辑地址对应的原物理地址,并为所述原物理地址添加待回收标记及设置预设保留时间;将所述待写入数据写入新物理地址,并将所述新物理地址映射至所述逻辑地址;当接收到所述数据写入装置发送的针对所述逻辑地址的数据恢复请求且确定所述预设保留时间未截止时,向所述数据写入装置返回所述原物理地址对应的原始数据。
可见,本发明的固态存储设备在接收到数据写入装置下发的数据写入请求时,首先会从该请求中提取逻辑地址,并在设备中查找与该地址对应的原物理地址;进一步,固态存储设备会为原物理地址设置待回收标记并设置预设保留时间,其中待回收标记表示原物理地址中的原始数据可暂时保留,无需删除,而预设保留时间则表示该原始数据可暂时保留的时长;而数据写入请求中的新数据则写入新物理地址,并将新物理地址与上述逻辑地址建立对应关系。换而言之,本发明可将需要覆盖逻辑地址的新数据保存在固态存储设备中的新物理地址中,同时在预设保留时间截止之前,对该逻辑地址对应原物理地址中的原始数据继续进行保存。这样当数据写入装置需要恢复原始数据时,仅需在预设保留时间截止之前,向固态存储设备发送针对所述逻辑地址的数据恢复请求,以控制后者将原物理地址中的数据重新提取出来,即能够实现固态存储设备对旧数据的保护,避免存储系统在上层软件中增加复杂的冗余保护机制的情况,进而可提升存储系统的处理性能及系统维护便捷性。本发明还提供一种数据存储系统及计算机可读存储介质,具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例所提供的一种数据存储方法的流程图;
图2为本发明实施例所提供的传统数据一致性保护方式的示意图;
图3为本发明实施例所提供的一种数据回滚流程的示意图;
图4为本发明实施例所提供的一种数据存储系统的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
传统的固态盘在保护数据的可靠性时仅能保护最新数据,对被覆盖的旧数据则直接放弃保护。这导致存储系统若需对旧数据进行保护,则需要在上层软件中增加复杂的冗余保护机制,不仅不利于系统维护,同时也对系统性能造成了影响。有鉴于此,本发明提供一种数据存储方法,其中固态存储设备可对需被覆盖的旧数据进行暂存,进而可实现对旧数据的保护。请参考图1,图1为本发明实施例所提供的一种数据存储方法的流程图,该方法可以包括:
S101、固态存储设备接收数据写入装置发送的数据写入请求,并从数据写入请求中提取待写入数据及逻辑地址。
需要说明的是,在本发明实施例中,数据写入装置为管控固态存储设备的上层软件。一般情况中,该装置所发送的数据写入请求通常包含有待写入的数据,以及该数据在固态存储设备中对应的逻辑地址。换而言之,数据写入请求的含义为:利用待写入数据对逻辑地址中原先存放的原始数据进行覆盖。应当指出的是,逻辑地址是指在计算机体系结构中以应用程序角度看到的内存单元、存储单元或网络主机的地址,往往不同于物理地址。逻辑地址与物理地址之间的关系为:可通过地址翻译器或映射函数把逻辑地址转化为物理地址。
S102、查找逻辑地址对应的原物理地址,并为原物理地址添加待回收标记及设置预设保留时间。
原物理地址是指原先被映射至上述逻辑地址的物理地址,其中存放有上述原始数据。相关技术中,在待写入数据覆盖逻辑地址之后,原物理地址中的原始数据便立刻失效,而该地址也会被自动添加至固态存储设备的垃圾回收空间。而在本发明实施例中,原物理地址及其中的数据并不会立刻失效,而是会被添加待回收标记,并设置预设保留时间,其中该标记表示该地址及其中的数据将会被暂存,而预设保留时间则表示暂存时间,该时间可利用倒计时进行实现。换而言之,在本发明实施例中,被覆盖的逻辑地址对应的原始数据并不会被立刻删除,而是会被继续保存一段时间。这样,当新数据发生写入错误,或是存储系统发生异常状况是,上层软件可直接从固态存储设备中导出原始数据并进行数据回滚。显然,相较于传统的固态存储设备,本发明实施例中的固态存储设备能够实现对旧数据的保护,进而可避免存储系统在上层软件中增加复杂的冗余保护机制的情况,能够提升存储系统的处理性能及系统维护便捷性。
需要说明的是,本发明实施例并不限定待回收标记的具体形式,只要该标记能够表示暂存被标记物理地址中的原始数据,而固态存储设备的垃圾回收机制在读取到该标记时,自动跳过被标记的物理地址即可。本发明实施例也不限定预设保留时间的具体数值,可根据实际应用需求进行设定。进一步,可以理解的是,标记有待回收标记的物理地址仅能被读取而无法被修改(如写入及删除),而由这部分物理地址组成的待回收空间缩小固态存储设备中的可用存储空间,待回收空间越大则缩小影响越严重。换而言之,待回收空间应当设置上限大小。在本发明实施例中,待回收空间的上限大小可依照固态存储设备的最大带宽进行设置,例如可设置为最大带宽的预设倍数,例如带宽为3GB/s,则待回收空间的大小可以为2GB×3=6GB,以保证固态存储设备在最大带宽进行数据写入的情况下,3秒内被覆盖的原始数据不会丢失。即固态存储设备能够确保在最恶劣的数据写入情况下,尽可能地对需要被覆盖的旧数据进行保护。
在一种可能的情况中,所有添加有待回收标记的物理地址组成待回收空间,待回收空间的大小不超过固态存储设备最大带宽的预设倍数。
需要说明的是,本发明实施例并不限定预设倍数的具体数值,可根据实际应用需求进行设定。
S103、将待写入数据写入新物理地址,并将新物理地址映射至逻辑地址。
在本发明实施例中,待写入数据将被写入至新的物理地址,且新物理地址也会被映射至逻辑地址。这样,在正常读取逻辑地址的数据时,便可依照逻辑地址对应的新映射关系,在新物理地址中读取新数据。
S104、当接收到数据写入装置发送的针对逻辑地址的数据恢复请求且确定预设保留时间未截止时,向数据写入装置返回原物理地址对应的原始数据。
由于本发明实施例对原物理地址中的数据进行了暂存,因此固态存储设备可向外提供数据恢复功能,即数据写入装置可向固态存储设备发送针对某个近期覆写的逻辑地址的数据恢复请求,而后者在确定该逻辑地址对应的原物理地址的预设保留时间未截止时,便可将对应的原始数据回传给数据写入装置,以供数据写入装置进行数据回滚恢复。可以理解的是,固态存储设备可提供一个数据恢复接口,而数据写入装置仅需调用这一接口,便能够实现步骤S104的对应效果。
当然,值得指出的是,假若固态存储设备遭遇了掉电或重启,此时标记有待回收标识的物理地址所存储的数据依旧不会被删除,在固态存储设备再次恢复正常工作状态时,假若这些数据对应的预设保留时间并未耗尽,则会继续进行保存。
进一步,当原物理地址对应的预设保留时间截止后,原物理地址便可添加至固态存储设备的垃圾回收空间,重新恢复可写状态。
在一种可能的情况中,在为原物理地址添加待回收标记及设置预设保留时间之后,还可以包括:
步骤11:当预设保留时间已截止时,将原物理地址添加至垃圾回收空间。
当然,在完成原物理地址设置及新数据写入后,固态存储设备还可以向数据写入装置发送写成功信息,以告知后者数据写入已完成。
在一种可能的情况中,在将新物理地址映射至逻辑地址之后,还可以包括:
步骤21:向数据写入装置发送写成功信息。
基于上述实施例,本发明的固态存储设备在接收到数据写入装置下发的数据写入请求时,首先会从该请求中提取逻辑地址,并在设备中查找与该地址对应的原物理地址;进一步,固态存储设备会为原物理地址设置待回收标记并设置预设保留时间,其中待回收标记表示原物理地址中的原始数据可暂时保留,无需删除,而预设保留时间则表示该原始数据可暂时保留的时长;而数据写入请求中的新数据则写入新物理地址,并将新物理地址与上述逻辑地址建立对应关系。换而言之,本发明可将需要覆盖逻辑地址的新数据保存在固态存储设备中的新物理地址中,同时在预设保留时间截止之前,对该逻辑地址对应原物理地址中的原始数据继续进行保存。这样当数据写入装置需要恢复原始数据时,仅需在预设保留时间截止之前,向固态存储设备发送针对所述逻辑地址的数据恢复请求,以控制后者将原物理地址中的数据重新提取出来,即能够实现固态存储设备对旧数据的保护,避免存储系统在上层软件中增加复杂的冗余保护机制的情况,进而可提升存储系统的处理性能及系统维护便捷性。
基于上述实施例,下面将具体介绍将本发明所提供的固态存储设备引入存储系统的一种实施方式。在一种可能的情况中,在固态存储设备接收数据写入装置发送的数据写入请求之前,还可以包括:
S201、数据写入装置在接收到文件覆盖请求时,从文件覆盖请求中读取新文件及对应的待覆盖逻辑地址。
首先应当说明的是,在本发明实施例中,将同时使用多个固态存储设备进行分布式数据存储。换而言之,数据写入装置将会对接多个固态存储设备。需要说明的是,本发明实施例并不限定存储系统中固态存储设备的数量,可根据实际应用需求进行设定。同样应当指出的是,本步骤所出现的待覆盖逻辑地址是在将这些固态存储设备视为整体的基础上所设置的逻辑地址(即系统逻辑地址),不同于各固态存储设备内部的逻辑地址。
S202、在数据库中查询待覆盖逻辑地址对应的旧文件及旧文件在多个固态存储设备中对应的逻辑地址。
在本发明实施例中,数据库中存放有分布式存储系统中各文件与系统逻辑地址之间的映射关系。因此,可利用文件覆盖请求中的待覆盖逻辑地址,在数据库查询到与该地址建立映射关系的旧文件。另外,可以理解的是,单个文件通常会被划分为若干个数据块,并存放在不同的固态存储设备中,每个数据块在对应固态存储设备中也有对应的逻辑地址。因此,数据库中也记录有系统逻辑地址与各存储设备逻辑地址之间的映射关系。需要说明的是,本发明实施例并不限定各文件与系统逻辑地址之间的映射关系,以及系统逻辑地址与各固态存储设备逻辑地址之间的映射关系在数据库中的存储形式,以及查询上述映射关系的具体方式,可参考分布式存储系统的相关技术。
S203、对新文件进行分块处理得到数据块,利用数据块及逻辑地址生成数据写入请求,并将数据写入请求下发对应的固态存储设备。
需要说明的是,本发明实施例并不限定分块处理的具体方式,可根据实际应用需求进行设定,例如可对新文件进行简单分块,也可利用纠删码机制等技术对新文件进行分块,其中纠删码机制是一种冗余保护机制,可确保在数据块存在部分丢失时,还可利用剩余的数据块恢复原文件。进一步,在完成数据分块后,数据写入装置可利用得到的数据块及先前查询到的数据写入请求,为各固态存储设备生成数据写入请求并进行请求下发。
相应的,还可以包括:
S204、数据写入装置判断固态存储设备是否在预设时间内返回写成功信息。若是,则进入步骤S205;若否,则进入步骤S206。
可以理解的是,固态存储设备在不遭遇异常的情况下,通常能够在可预期的时间内完成数据写入。因此,在本发明实施例中,将会为各固态存储设备设置一个数据写入时间,即预设时间。当固态存储设备可在预设时间内返回写成功信息时,则判定该设备不存在写入错误,反之则认为该设备存在写入错误。在此基础上,若数据写入装置确定所有固态存储设备均能够在预设时间内返回写成功信息,则可确定新文件已被正确写入,此时便可对数据库中的相关信息进行更新;反之,若数据写入装置确定部分固态存储设备并未在预设时间内返回写成功信息,则可确定新文件遭遇写入问题。在后一种情况中,由于可确定已返回写成功信息的固态存储设备已完成数据写入,即需要进行数据恢复,此时数据写入装置可调用已返回写成功信息的固态存储设备的数据恢复接口,以获取原始数据并进行数据回滚。
当然,由于新文件的写入涉及与多个固态存储设备之间的写入子操作,为保障数据一致性,数据写入装置可以在进行数据写入之前,创建写入事务并设置对应的事务过期时间,其中同一事务中的所有写入子操作要么都成功要么都失败,在部分写入子操作遭遇写入失败时,剩余成功的子操作在事务过期时间截止时也会被判定为失败。
在一种可能的情况中,在对新文件进行分块处理得到数据块之前,还可以包括:
步骤31:数据写入装置创建写入事务,并设置事务过期时间;事务过期时间大于预设时间。
S205、在数据库中,利用新文件与待覆盖逻辑地址之间的新映射关系覆盖旧文件与待覆盖逻辑地址之间的旧映射关系。
应当指出的是,由于传统的固态存储设备并不能够对被覆盖旧数据进行保护,因此现有的数据存储系统需要额外设置冗余保护机制,以通过上层软件来实现对旧数据的保护。具体的,请参考图2,图2为本发明实施例所提供的传统数据一致性保护方式的示意图,其中的disk0~disk5表示6个固态存储设备,0、1、2、3、P、Q表示数据块、DB(Database)表示数据库。传统数据一致性保护的工作流程如下:
1)在数据未写入时,条带数据由浅灰色标记,假设这些数据对应的系统逻辑地址为A;
2)在进行数据更新时,更新的数据由深灰色标记,这些数据并不会直接写入系统逻辑地址A,而是会写入系统逻辑地址B;
3)在数据库记录新的地址B和数据之间的映射关系;
4)删除数据库记录的地址A和数据之间的映射关系;
5)删除地址A所对应的数据;
6)数据完成更新。
可见,完成数据写入时,数据写入装置需要在数据库中额外执行一次数据写入及一次删除操作,而这与固态存储设备内部操作方式重复,在进行大规模数据写入时,额外的删除操作将带来额外的系统性能损耗。这是由于传统的固态存储设备在通过空间冗余和各种算法保护数据的可靠性时,只能保护最新数据,对被覆盖的旧数据则直接放弃保护,因此只能通过上层软件用追加写方式防止数据丢失。而在本申请中,由于固态存储设备能够对被覆盖的旧数据继续保护若干时间,因此数据写入装置可利用新文件与待覆盖逻辑地址之间的新映射关系,对旧文件与同一系统逻辑地址之间的旧映射关系进行直接覆盖,进而可有效避免额外的删除操作,进而能够有效提升存储系统的写入性能。
S206、向已发送写成功信息的固态存储设备发送数据恢复请求及接收原始数据,并将原始数据重新写入对应的固态存储设备中对应的逻辑地址。
当部分固态存储设备存在写入异常时,数据写入装置将会对已完成数据写入的固态存储设备进行数据回滚。具体的,该装置会向已发送写成功信息的固态存储设备发送数据恢复请求,并接收这些设备返回的原始数据,进而会将这些原始数据重新写回至固态存储设备中的原始位置。
进一步,假若数据写入装置设置有事务,则数据回滚恢复应等待至事务过期时间截止之后再进行,以避免数据写入混乱,
在一种可能的情况中,将原始数据重新写入对应的固态存储设备中对应的逻辑地址,可以包括:
步骤41:当事务过期时间已截止时,将原始数据重新写入对应的固态存储设备中对应的逻辑地址。
当然,可以理解的是,若所有存在写入异常的固态存储设备能够在事务过期时间截止之前返回写成功信息,则也可不执行数据回滚操作。
下面对引入纠删码机制的实施方式进行介绍,在一种可能的情况中,对新文件进行分块处理得到数据块,可以包括:
步骤51:利用纠删码机制对新文件进行分块处理得到数据块;在数据块丢失数量不超过预设值时,剩余的数据块可恢复新文件。
需要说明的是,此处的预设值指代的是纠删码机制的保护级别。换而言之,只要新文件的数据块的丢失数量不超过纠删码的保护级别,该机制便能够利用剩余的数据块恢复新文件。需要说明的是,本发明实施例并不限定具体的预设值,可根据实际应用需求进行设定。本发明实施例也不限定具体的纠删码机制,例如可以为4+2纠删码,也可以为8+3纠删码、6+2纠删码等,可根据实际应用需求进行设定。
相应的,在向已发送写成功信息的固态存储设备发送数据恢复请求及接收旧数据之前,还包括:
步骤61:数据写入装置判断未发送写成功信息的固态存储设备的数量是否大于预设值;若是,则进入步骤62;若否,在进入步骤S205;
由于纠删码能够对新文件进行冗余保护,因此只要存在异常的固态存储设备的数量不超过纠删码的保护级别,可无需进行数据回滚,反之则需要进行数据回滚。
步骤62:执行向已发送写成功信息的固态存储设备发送数据恢复请求及接收旧数据的步骤。
为便于理解,下面将结合具体的流程图介绍本发明实施例所提供的数据回滚流程。请参考图3,图3为本发明实施例所提供的一种数据回滚流程的示意图。在数据更新失败时,所有数据块需要恢复至原始状态,流程如下:
1)在数据未写入时,条带数据由浅灰色标记,对应系统逻辑地址为A;
2)在进行数据写入时,更新的数据由深灰色标记,并直接覆盖系统逻辑地址A;
3)disk2、3、4写入成功,但disk0、1、5遭遇掉电,写入未成功。此时disk2、3、4将原始数据被标记为“待回收”状态,并启动3秒定时器;
4)在1.5秒(可设置调整)后,上层软件发现disk0、1、5耗时远大于正常耗时(一般SSD写入为0.1毫秒以内),而此时4+2纠删码不能恢复数据,于是调用固态盘提供的旧数据恢复接口,读取条带内包括disk2、3、4在内的全部旧数据并保存。
6)Disk2、3、4在3秒定时器到时后,将数据块从“待回收”状态,改为“删除”状态,并将旧数据移入垃圾回收空间;
7)上层软件等待事务机制超时后(如在超时时间内disk0、1、5回复成功则事务成功,不需要后续动作),向disk2,3,4地址A写入旧数据,事务回滚成功,条带内所有数据恢复为浅灰色旧数据。
基于上述实施例,本发明实施例可利用改进后的固态存储设备,将数据的删除动作,从上层软件的主动删除转变为固态盘的内部老化,减少了一次删除动作,进而可大幅降低了记录的数据量,降低分布式存储系统的压力并提升系统性能。
下面对本发明实施例提供的数据存储系统及计算机可读存储介质进行介绍,下文描述的数据存储系统及计算机可读存储介质与上文描述的数据存储方法可相互对应参照。
请参考图4,图4为本发明实施例所提供的一种数据存储系统的结构框图,该系统可以包括:固态存储设备401及数据写入装置402,其中,
固态存储设备401,用于接收数据写入装置402发送的数据写入请求,并从数据写入请求中提取待写入数据及逻辑地址;查找逻辑地址对应的原物理地址,并为原物理地址添加待回收标记及设置预设保留时间;将待写入数据写入新物理地址,并将新物理地址映射至逻辑地址;当接收到数据写入装置402发送的针对逻辑地址的数据恢复请求且确定预设保留时间未截止时,向数据写入装置402返回原物理地址对应的原始数据;
数据写入装置402,用于发送的数据写入请求及数据恢复请求。
可选地,固态存储设备401,还可以用于:
当预设保留时间已截止时,将原物理地址添加至垃圾回收空间。
可选地,所有添加有待回收标记的物理地址组成待回收空间,待回收空间的大小不超过固态存储设备401最大带宽的预设倍数。
可选地,固态存储设备401,还可以用于:
向数据写入装置402发送写成功信息。
可选地,数据写入装置402,还可以用于:
在接收到文件覆盖请求时,从文件覆盖请求中读取新文件及对应的待覆盖逻辑地址;在数据库中查询待覆盖逻辑地址对应的旧文件及旧文件在多个固态存储设备401中对应的逻辑地址;对新文件进行分块处理得到数据块,利用数据块及逻辑地址生成数据写入请求,并将数据写入请求下发对应的固态存储设备401;
相应的,数据写入装置402,还可以用于:
判断存储设备是否在预设时间内返回写成功信息;若是,则在数据库中,利用新文件与待覆盖逻辑地址之间的新映射关系覆盖旧文件与待覆盖逻辑地址之间的旧映射关系;若否,则向已发送写成功信息的固态存储设备401发送数据恢复请求及接收原始数据,并将原始数据重新写入对应的固态存储设备401中对应的逻辑地址。
可选地,数据写入装置402,还可以用于:
利用纠删码机制对新文件进行分块处理得到数据块;在数据块丢失数量不超过预设值时,剩余的数据块可恢复新文件;
相应的,在向已发送写成功信息的固态存储设备401发送数据恢复请求及接收旧数据之前,数据写入装置402,还可以用于:
判断未发送写成功信息的固态存储设备401的数量是否大于预设值;若是,则执行向已发送写成功信息的固态存储设备401发送数据恢复请求及接收旧数据的步骤。
可选地,数据写入装置402,还可以用于:
创建写入事务,并设置事务过期时间;事务过期时间大于预设时间;
相应的,数据写入装置402,还可以用于:
当事务过期时间已截止时,将原始数据重新写入对应的固态存储设备401中对应的逻辑地址。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述任意实施例的数据存储方法的步骤。
由于计算机可读存储介质部分的实施例与数据存储方法部分的实施例相互对应,因此存储介质部分的实施例请参见数据存储方法部分的实施例的描述,这里不再赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的一种数据存储方法、系统及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (10)
1.一种数据存储方法,其特征在于,包括:
固态存储设备接收数据写入装置发送的数据写入请求,并从所述数据写入请求中提取待写入数据及逻辑地址;
查找所述逻辑地址对应的原物理地址,并为所述原物理地址添加待回收标记及设置预设保留时间;
将所述待写入数据写入新物理地址,并将所述新物理地址映射至所述逻辑地址;
当接收到所述数据写入装置发送的针对所述逻辑地址的数据恢复请求且确定所述预设保留时间未截止时,向所述数据写入装置返回所述原物理地址对应的原始数据。
2.根据权利要求1所述的数据存储方法,其特征在于,在为所述原物理地址添加待回收标记及设置预设保留时间之后,还包括:
当所述预设保留时间已截止时,将所述原物理地址添加至垃圾回收空间。
3.根据权利要求1所述的数据存储方法,其特征在于,所有添加有所述待回收标记的物理地址组成待回收空间,所述待回收空间的大小不超过所述固态存储设备最大带宽的预设倍数。
4.根据权利要求1至3任一项所述的数据存储方法,其特征在于,在将所述新物理地址映射至所述逻辑地址之后,还包括:
向所述数据写入装置发送写成功信息。
5.根据权利要求4所述的数据存储方法,其特征在于,在固态存储设备接收数据写入装置发送的数据写入请求之前,还包括:
所述数据写入装置在接收到文件覆盖请求时,从所述文件覆盖请求中读取新文件及对应的待覆盖逻辑地址;
在数据库中查询所述待覆盖逻辑地址对应的旧文件及所述旧文件在多个所述固态存储设备中对应的逻辑地址;
对所述新文件进行分块处理得到数据块,利用所述数据块及所述逻辑地址生成所述数据写入请求,并将所述数据写入请求下发对应的固态存储设备;
相应的,还包括:
所述数据写入装置判断所述固态存储设备是否在预设时间内返回写成功信息;
若是,则在所述数据库中,利用所述新文件与所述待覆盖逻辑地址之间的新映射关系覆盖所述旧文件与所述待覆盖逻辑地址之间的旧映射关系;
若否,则向已发送所述写成功信息的固态存储设备发送所述数据恢复请求及接收所述原始数据,并将所述原始数据重新写入对应的固态存储设备中对应的逻辑地址。
6.根据权利要求5所述的数据存储方法,其特征在于,所述对所述新文件进行分块处理得到数据块,包括:
利用纠删码机制对所述新文件进行分块处理得到所述数据块;在所述数据块丢失数量不超过预设值时,剩余的数据块可恢复所述新文件;
相应的,在向已发送所述写成功信息的固态存储设备发送所述数据恢复请求及接收所述旧数据之前,还包括:
所述数据写入装置判断未发送所述写成功信息的固态存储设备的数量是否大于所述预设值;
若是,则执行向已发送所述写成功信息的固态存储设备发送所述数据恢复请求及接收所述旧数据的步骤。
7.根据权利要求5所述的数据存储方法,其特征在于,在对所述新文件进行分块处理得到数据块之前,还包括:
所述数据写入装置创建写入事务,并设置事务过期时间;所述事务过期时间大于所述预设时间;
相应的,所述将所述原始数据重新写入对应的固态存储设备中对应的逻辑地址,包括:
当所述事务过期时间已截止时,将所述原始数据重新写入对应的固态存储设备中对应的逻辑地址。
8.一种数据存储系统,其特征在于,包括:固态存储设备及数据写入装置,其中,
所述固态存储设备,用于接收所述数据写入装置发送的数据写入请求,并从所述数据写入请求中提取待写入数据及逻辑地址;查找所述逻辑地址对应的原物理地址,并为所述原物理地址添加待回收标记及设置预设保留时间;将所述待写入数据写入新物理地址,并将所述新物理地址映射至所述逻辑地址;当接收到所述数据写入装置发送的针对所述逻辑地址的数据恢复请求且确定所述预设保留时间未截止时,向所述数据写入装置返回所述原物理地址对应的原始数据;
所述数据写入装置,用于发送的数据写入请求及所述数据恢复请求。
9.根据权利要求8所述的数据存储系统,其特征在于,所述固态存储设备,还用于:
当所述预设保留时间已截止时,将所述原物理地址添加至垃圾回收空间。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如权利要求1至7任一项所述的数据存储方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210467206.XA CN114756178A (zh) | 2022-04-29 | 2022-04-29 | 一种数据存储方法、系统及计算机可读存储介质 |
PCT/CN2022/122872 WO2023206968A1 (zh) | 2022-04-29 | 2022-09-29 | 一种数据存储方法、系统及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210467206.XA CN114756178A (zh) | 2022-04-29 | 2022-04-29 | 一种数据存储方法、系统及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114756178A true CN114756178A (zh) | 2022-07-15 |
Family
ID=82333669
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210467206.XA Pending CN114756178A (zh) | 2022-04-29 | 2022-04-29 | 一种数据存储方法、系统及计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114756178A (zh) |
WO (1) | WO2023206968A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115951846A (zh) * | 2023-03-15 | 2023-04-11 | 苏州浪潮智能科技有限公司 | 数据写入方法、装置、设备及介质 |
CN116069685A (zh) * | 2023-03-07 | 2023-05-05 | 浪潮电子信息产业股份有限公司 | 一种存储系统写控制方法、装置、设备及可读存储介质 |
WO2023206968A1 (zh) * | 2022-04-29 | 2023-11-02 | 浪潮电子信息产业股份有限公司 | 一种数据存储方法、系统及计算机可读存储介质 |
WO2024103710A1 (zh) * | 2022-11-14 | 2024-05-23 | 华为技术有限公司 | 一种存储设备中数据恢复方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8473700B2 (en) * | 2010-03-29 | 2013-06-25 | International Business Machines Corporation | Providing versioning in a storage device |
US10318495B2 (en) * | 2012-09-24 | 2019-06-11 | Sandisk Technologies Llc | Snapshots for a non-volatile device |
US10290331B1 (en) * | 2017-04-28 | 2019-05-14 | EMC IP Holding Company LLC | Method and system for modulating read operations to support error correction in solid state memory |
CN111488126B (zh) * | 2020-04-12 | 2021-07-27 | 华中科技大学 | 一种自加热固态硬盘的闪存块管理方法、设备及固态硬盘 |
CN113761059A (zh) * | 2021-08-03 | 2021-12-07 | 阿里云计算有限公司 | 数据处理方法及装置 |
CN114756178A (zh) * | 2022-04-29 | 2022-07-15 | 浪潮电子信息产业股份有限公司 | 一种数据存储方法、系统及计算机可读存储介质 |
-
2022
- 2022-04-29 CN CN202210467206.XA patent/CN114756178A/zh active Pending
- 2022-09-29 WO PCT/CN2022/122872 patent/WO2023206968A1/zh unknown
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023206968A1 (zh) * | 2022-04-29 | 2023-11-02 | 浪潮电子信息产业股份有限公司 | 一种数据存储方法、系统及计算机可读存储介质 |
WO2024103710A1 (zh) * | 2022-11-14 | 2024-05-23 | 华为技术有限公司 | 一种存储设备中数据恢复方法及装置 |
CN116069685A (zh) * | 2023-03-07 | 2023-05-05 | 浪潮电子信息产业股份有限公司 | 一种存储系统写控制方法、装置、设备及可读存储介质 |
CN116069685B (zh) * | 2023-03-07 | 2023-07-14 | 浪潮电子信息产业股份有限公司 | 一种存储系统写控制方法、装置、设备及可读存储介质 |
CN115951846A (zh) * | 2023-03-15 | 2023-04-11 | 苏州浪潮智能科技有限公司 | 数据写入方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2023206968A1 (zh) | 2023-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114756178A (zh) | 一种数据存储方法、系统及计算机可读存储介质 | |
JP4248510B2 (ja) | 計算機システム、ディスク装置およびデータ更新制御方法 | |
EP1770492B1 (en) | A method for improving writing data efficiency and storage subsystem and system implementing the same | |
JP4249719B2 (ja) | バックアップシステム、プログラム及びバックアップ方法 | |
US6523087B2 (en) | Utilizing parity caching and parity logging while closing the RAID5 write hole | |
US6618794B1 (en) | System for generating a point-in-time copy of data in a data storage system | |
CN105144158A (zh) | 使用拆毁写检测的恢复处理 | |
US20130339569A1 (en) | Storage System and Method for Operating Thereof | |
US9087006B2 (en) | Destaging cached data in multiple recurrences in a storage system | |
US8019953B2 (en) | Method for providing atomicity for host write input/outputs (I/Os) in a continuous data protection (CDP)-enabled volume using intent log | |
US20100145915A1 (en) | Storage apparatus and data restoring method used therein | |
CN110597779A (zh) | 一种分布式文件系统中的数据读写方法及相关装置 | |
US9003106B1 (en) | Crash consistency | |
TWI737189B (zh) | 易於從固態儲存裝置之故障中還原的方法、電腦系統,及固態儲存裝置 | |
KR101738965B1 (ko) | 가비지 컬렉션 저널링 장치 및 방법 | |
US9335941B1 (en) | Crash consistency | |
CN115705152A (zh) | 使用存储器内日志在非易失性存储器装置中的元数据管理 | |
CN109325005B (zh) | 一种数据处理方法和电子设备 | |
KR20080076529A (ko) | 플래시 메모리 기반 저널링 파일 시스템을 이용한 데이터처리 방법 | |
CN110515769A (zh) | 一种备份处理方法、装置和电子设备及可读存储介质 | |
US20230113507A1 (en) | Storage system and data restoration method | |
WO2015011835A1 (ja) | コンピュータシステム | |
CN115705153A (zh) | 有条件更新和延迟的查找 | |
KR20140083338A (ko) | 비휘발성 메모리에 기반하여 저널링 기능을 통합한 버퍼 캐시 장치, 저널링 파일 시스템 및 저널링 방법 | |
KR100365891B1 (ko) | 주기억장치 상주형 데이터베이스 시스템에서 로그 처리를하지 않는 백업/회복 장치 및 그 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |