CN109101437A - 一种数据存储方法与终端 - Google Patents
一种数据存储方法与终端 Download PDFInfo
- Publication number
- CN109101437A CN109101437A CN201810804049.0A CN201810804049A CN109101437A CN 109101437 A CN109101437 A CN 109101437A CN 201810804049 A CN201810804049 A CN 201810804049A CN 109101437 A CN109101437 A CN 109101437A
- Authority
- CN
- China
- Prior art keywords
- terminal
- pba
- ssd
- meta data
- current meta
- 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
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000011084 recovery Methods 0.000 claims abstract description 9
- 238000013507 mapping Methods 0.000 claims abstract description 6
- 230000007246 mechanism Effects 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000004321 preservation Methods 0.000 abstract description 17
- 239000007787 solid Substances 0.000 abstract description 12
- 238000010586 diagram Methods 0.000 description 12
- 239000010410 layer Substances 0.000 description 7
- 238000007667 floating Methods 0.000 description 6
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N Silicium dioxide Chemical compound O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000000151 deposition Methods 0.000 description 2
- 230000005611 electricity Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 235000012239 silicon dioxide Nutrition 0.000 description 2
- 239000000377 silicon dioxide Substances 0.000 description 2
- 239000002356 single layer Substances 0.000 description 2
- 230000004888 barrier function Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Classifications
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
Abstract
本申请实施例公开了一种数据存储方法,用于在终端保存元数据时,将该元数据保存在固态硬盘的多个存储位置,当一个存储位置存储的元数据读取失败时,可以从其他存储位置读取该元数据,提高了元数据读取的成功率。本申请实施例方法包括:当所述SSD上电恢复时,所述终端获取所述SSD上的逻辑地址LBA;所述终端根据所述LBA在所述SSD中查找对应的逻辑物理映射表L2P;所述终端根据所述L2P读取对应的N个PBA,其中N为大于等于2的整数;若所述终端从第一PBA对应的存储位置中读取当前元数据失败,则所述终端从第二PBA对应的存储位置中读取所述当前元数据,所述N个PBA包括所述第一PBA和所述第二PBA。
Description
技术领域
本申请涉及数据存储领域,尤其涉及一种数据存储方法与终端。
背景技术
固态硬盘(solid state drives,SSD)对用户数据进行管理的数据称之为元数据,元数据又称中介数据或中继数据,是指为描述数据的数据。在固态硬盘中,比较重要的元数据有逻辑物理映射表,Trim表和数据块信息(super block information)等。终端对于用户数据的管理主要通过对上述元数据的管理而间接管理的,比如终端利用逻辑物理映射表(logical to physical,L2P)将用户读取数据时使用的逻辑地址(logical blockaddressing,LBA)映射成物理地址(physical block addressing,PBA),然后将PBA下发到闪存(Flash)控制模块,从而读取到用户所需要的数据。固态硬盘下电时,需要将元数据保存到Falsh上以便下一次上电能够正确的读取。
现有技术中元数据的保存主要有两种:单独保存,将元数据保存在一个区分于用户数据的且相对稳定,不易发生读写失败的单层单元数据块(SLC block)中,当需要元数据的时候,可以直接从该数据块中读取;或,将元数据与用户数据保存在一块,在写入的时候将元数据被视为用户数据,读取的时候通过添加meta信息的形式区别于元数据。
但是由于Flash的特性,尤其是使用过很长时间时,Flash某些存储区域会发生磨损。若存储元数据的区域发生了磨损,则终端读取该区域内的元数据时可能读取失败,进而造成用户数据无法被正确读取,甚至造成整个SSD无法正常运行。
发明内容
本申请实施例提供了一种数据存储方法,用于在终端保存元数据时,将该元数据保存在固态硬盘的多个存储位置,当一个存储位置存储的元数据读取失败时,可以从其他存储位置读取该元数据,提高了元数据读取的成功率。
第一方面,本申请实施例提供了一种数据存储方法,该方法应用于终端,该终端包含固态硬盘SSD,可以包括:
当该SSD上电恢复时,该终端获取该SSD上的逻辑地址LBA;
该终端根据该LBA在该SSD中查找对应的逻辑物理映射表L2P;
该终端根据该L2P读取对应的N个物理地址PBA,其中N为大于等于2的整数;
若该终端从第一PBA对应的存储位置中读取当前元数据失败,则该终端从第二PBA对应的存储位置中读取该当前元数据,该N个PBA包括该第一PBA和该第二PBA。
可选的,在本申请的一些实施例中,该方法还可以包括:
当该终端保存该当前元数据时,该终端为该当前元数据分配该LBA和该N个PBA;
该终端将该当前元数据保存在该N个PBA对应的存储位置;
该终端根据该LBA和该N个PBA生成该L2P。
可选的,在本申请的一些实施例中,该方法还可以包括:
该终端根据该SSD的容量计算元数据的大小;
该终端根据该元数据的大小,计算得到保存该元数据的数据块的数量。
可选的,在本申请的一些实施例中,该方法还可以包括:
若该终端从该N个PBA对应的存储位置中读取该当前元数据失败,则该终端启动该SSD的慢速恢复机制,并从该SSD中查找并恢复该当前元数据。
可选的,在本申请的一些实施例中,该方法还可以包括:
当该终端保存该当前元数据时,该终端将该当前元数据保存在机械硬盘上;
若该终端从该N个PBA对应的存储位置中读取该当前元数据失败,则该终端从该机械硬盘上读取该当前元数据。
第二方面,本申请实施例提供了一种终端,可以包括:
获取单元,用于当该SSD上电恢复时,获取该SSD上的LBA;
查找单元,用于根据该LBA在该SSD中查找对应的L2P;
读取单元,用于根据该L2P读取对应的N个PBA,其中N为大于等于2的整数;若从第一PBA对应的存储位置中读取当前元数据失败,则从第二PBA对应的存储位置中读取该当前元数据,该N个PBA包括该第一PBA和该第二PBA。
可选的,在本申请的一些实施例中,该终端还可以包括:
分配单元,用于为该当前元数据分配该LBA和该N个PBA;
保存单元,用于将该当前元数据保存在该N个PBA对应的存储位置;
生成单元,用于根据该LBA和该N个PBA生成该L2P。
可选的,在本申请的一些实施例中,该终端还可以包括:
计算单元,用于根据该SSD的容量计算元数据的大小;根据该元数据的大小,计算得到保存该元数据的数据块的数量。
可选的,在本申请的一些实施例中,该终端还可以包括:
执行单元,用于若该读取单元从该N个PBA对应的存储位置中读取该当前元数据失败,则启动该SSD的慢速恢复机制,并从该SSD中查找并恢复该当前元数据。
可选的,在本申请的一些实施例中,
该保存单元,还用于将该当前元数据保存在机械硬盘上;
该读取单元,还用于从该机械硬盘上读取该当前元数据。
第三方面,本申请实施例提供一种终端,该终端可以包括终端设备或者芯片等实体,所述终端包括:处理器、存储器;所述存储器用于存储指令;所述处理器用于执行所述存储器中的所述指令,使得所述终端执行如前述第一方面及任一可选实现方式中所述的方法。
第四方面,本申请实施例提供一种计算机程序产品,当其在计算机上运行时,使得计算机执行如前述第一方面及任一可选实现方式中所述的方法。
第五方面,本申请实施例提供一种计算机存储介质,包括指令,当其在计算机上运行时,使得计算机执行如前述第一方面及任一可选实现方式中所述的方法。
第六方面,本申请提供了一种芯片系统,该芯片系统包括处理器,用于支持终端实现上述方面中所涉及的功能,例如,例如发送或处理上述方法中所涉及的数据和/或信息。
在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存终端必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
从以上技术方案可以看出,本申请实施例具有以下优点:
当终端保存当前元数据时,终端将该当前元数据保存在固态硬盘中的多个存储位置中,当某一个存储位置的当前元数据发生读取失败时,可以从其他的备份中读取该当前元数据,从而提高了当前元数据读取的成功率。
附图说明
图1为本申请实施例中数据存储方法的一个实施例示意图;
图2为本申请实施例中终端的一个实施例示意图;
图3为本申请实施例中终端的另一个实施例示意图;
图4为本申请实施例中终端的另一个实施例示意图;
图5为本申请实施例中终端的另一个实施例示意图;
图6为本申请实施例中终端的另一个实施例示意图。
具体实施方式
固态硬盘,简称固盘,是用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元以及缓存单元组成,存储单元分为闪存芯片和动态随机存取存储器(dynamicrandom access memory,DRAM),区别于机械硬盘由磁盘、磁头等机械部件构成,整个固态硬盘结构无机械装置,全部是由电子芯片及电路板组成。
目前基于闪存类的SSD应用较广,本申请实施例及后续实施例以该类型SSD为例进行说明。
根据闪存的存储原理,闪存的一个读写单元的物理结构主要由控制栅极和浮置栅极构成,控制栅极和浮置栅极中间由二氧化硅绝缘层隔开。写入数据时,在控制栅极一端加高电压,下方的电子穿过二氧化硅绝缘层进入浮置栅极,浮置栅极记录一个电位值,即写入一个数据,当失去电压时,由于绝缘层的阻隔,电子被困在浮置栅极中,先前记录的电位值不变,从而保留了记录的数据。在擦除数据时,通过在控制栅极加反向电压,使得电子反向运动,改变先前记录的电位值,从而擦除记录的数据。其中,该电位值在一个预定的范围内。
目前闪存主要可以分为三种类型,单层单元(single-level cell,SLC)闪存,多层单元(multi-level cell,MLC)闪存和三层单元(triple-level cell,TLC)闪存。SLC将电位值的范围通过一个阈值分为两个区域,保存的数据是0或1是基于对电位值阈值的判定,即,可以设定高于预定阈值,则存储数据为1,否则为0,从而实现在每个读写单元里存储1比特bit的数据。相对地,MLC将电位值的范围分为了四个区域,每个读写单元可以保存2bit的数据,TLC将该电位值分成了八个区域,从而每个读写单元可以保存3bit的数据。
其中,固态硬盘中读写的数据可以分为元数据和用户数据。元数据,又称中介数据、中继数据,为描述数据的数据,主要是描述数据属性的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。比较重要的元数据有逻辑物理映射表,Trim表和数据块信息等。固态硬盘中通过对元数据的管理,从而间接实现对用户数据的管理,因而元数据对于固态硬盘的正常运行是很重要的一类数据。
闪存的存储单元中,控制栅极与浮置栅极中间的绝缘层非常薄,反复的写/擦会造成该绝缘层的绝缘性降低,导致漏电,从而使得记录的电位值不准确,并影响记录的数据。当写/擦次数到达一定值时,绝缘层将不能再控制电荷溢出,即闪存的写/擦的寿命有限。目前三种闪存中,SLC、MLC和TLC的寿命与可靠性依次下降,因而一般情况下元数据保存在SLC数据块中是较好的选择。需要说明的是,目前的闪存可以分为多个逻辑单元(logical unitnumber,LUN),每个LUN上有多个数据块。其中,每个LUN的数据块都具有编号,一般情况下,LUN中编号为0的数据块稳定性较高,即坏块最少。元数据可以保存在这些相对稳定的数据块中。在闪存中,数据擦写的最小单位是数据块,读写的最小单位是页(page),其中一个数据块中有多个页。
本申请实施例提供了一种数据存储方法,用于在终端保存元数据时,将该元数据保存在固态硬盘的多个存储位置,当一个存储位置存储的元数据读取失败时,可以从其他存储位置读取该元数据,从而提高了元数据读取的成功率。
下面具体参照图1,图1为本申请实施例中数据存储方法的一个实施例示意图,可以包括:
101、终端根据SSD的容量计算元数据的大小。
本实施例中,SSD在终端上运行时,会不断生成元数据及用户数据,终端根据用户数据的大小以及SSD的容量,计算SSD剩余空间的大小并计算元数据占用的空间。
102、终端根据元数据的大小,计算得到保存元数据的数据块的数量。
本实施例中,对于确定的SSD,其每个数据块可以存储的数据量的大小一定,根据元数据的大小,可以计算得出用于保存该元数据所需要的数据块的数量。其中,此处用于保存该元数据的数据块可以是稳定性较好的数据块,稳定性较好即坏块信息较少、使用寿命长等特性。闪存生产厂家在生产出闪存后,闪存中每个数据块的稳定性有所不同。厂家可以对每个LUN上的数据块进行编号,一般情况下,每个LUN上编号为0的数据块的稳定性较好,因此在实际操作中,终端根据元数据的大小,计算需要用到的数据块编号为0的数据块的数量。需要说明的是,不同厂商设定的稳定性较好的数据块可能有所不同,本实施例中,编号为0的数据块仅为举例说明,具体地,如何确定该稳定性较好的数据块,此处不做限定。
103、终端为当前元数据分配LBA和N个PBA。
本实施例中,当终端保存当前元数据时,终端根据该当前元数据为其分配LBA和N个PBA。其中,LBA为该当前元数据的编号,与该当前元数据唯一对应。PBA为一个32个比特位的地址,N个PBA对应的是N个存储位置,且该N个存储位置均位于前述步骤102中确定的数据块中,进一步的,该数据块可以是相对稳定的数据块,其中,N为大于等于2的整数。
可以理解的是,在本实施例中,N为当前元数据的备份数目,当N为2时,即对当前元数据进行1次备份,当N为2时,则对当前元数据进行2次备份。具体地,此处N的大小,可以根据需要提前设定,此处不做限定。
104、终端将当前元数据保存在N个PBA对应的存储位置。
本实施例中,由于闪存的最小读写单位是page,为了便于读写,该N个PBA对应的存储位置在不同数据块的相同page上,可以理解的是,在每一个LUN上都保存了一份完整的当前元数据。
可选的,在本申请的一些实施例中,终端将当前元数据保存在机械硬盘中。
本实施例中,当终端保存当前元数据时,终端可以将当前元数据保存在机械硬盘中,并生成当前元数据在该机械硬盘的索引信息。
当生成该索引信息后,终端将该索引信息保存在前述步骤105中所述预设的存储位置中。
105、终端根据LBA和N个PBA生成L2P。
本实施例中,当终端保存了当前元数据后,终端根据该LBA和该N个PBA生成L2P,该表表示了该LBA与该PBA的对应关系,以该当前元数据进行了2次备份为例,L2P可以有如下表所示形式:
需要说明的是,在SSD下电之前,终端将该LBA与该L2P均保存在SSD预设的存储位置中,该预设的存储位置用于存储该SSD的一些预设的指令信息,SSD上电后会终端预先扫描该预设的存储位置,从而可以读取该L2P。
106、SSD上电恢复时,终端获取LBA,并根据LBA在SSD中查找对应的L2P。
本实施例中,SSD上电恢复是指SSD通电并开始正常运行,在上电后,终端获取LBA,并扫描该SSD预设的存储位置,根据该LBA从该存储位置中查找对应的L2P。
需要说明的是,获取该LBA有可能是自获取也有可能是从外界获取,例如当需要读取该当前元数据时,终端可以接收一个指令,该指令中携带有该LBA,或者,终端在保存L2P时,将该LBA单独保存为一个文件,当需要该当前元数据时,自动读取获取该LBA文件,进而根据该LBA获取L2P。
107、终端根据L2P读取对应的N个PBA。
本实施例中,终端获取到该L2P后,从该L2P中读取与该LBA对应的该N个PBA。
108、若终端从第一PBA对应的存储位置中读取当前元数据失败,则终端从第二PBA对应的存储位置中读取当前元数据,N个PBA包括第一PBA和第二PBA。
本实施例中,终端获取到该L2P后,根据L2P中N个PBA的顺序进行依次读取当前元数据,当某一个PBA读取失败时,则顺序读取下一个PBA中的当前元数据。由于每个PBA中存在的当前元数据相同,当一个PBA所备份的元数据读取成功时,则停止读取下一个PBA的存储位置。
当该N个PBA中存在某一PBA发生读取失败时,终端可以对该PBA标识为不可读,删除L2P中的该PBA并对该L2P进行更新。此外,在发生读取失败时,终端也可以向用户发送文本或语音提示信息。
109、若终端从N个PBA对应的存储位置中读取当前元数据失败,则终端启动SSD的慢速恢复机制,并从SSD中查找并恢复当前元数据。
本实施例中,若终端从N个PBA对应的存储位置中读取当前元数据失败,可能存在的是,该L2P与该当前元数据不对应。而由于当前元数据已经保存在SSD中,在此情况下,终端启动SSD的慢速恢复机制,扫描SSD的闪存,从中重新读取SSD中所有保存的当前元数据及当前元数据的当前PBA。
可选的,在本申请的一些实施例中,若终端从N个PBA对应的存储位置中读取当前元数据失败,则终端从机械硬盘中读取当前元数据。
本实施例中,若终端从N个PBA对应的存储位置中读取当前元数据失败,则终端从预设的存储位置中获取该当前元数据对应的索引信息,终端可以根据该索引信息获知该当前元数据在机械硬盘中的存储位置,并读取该当前元数据。
可选的,在本申请的一些实施例中,终端重新生成L2P并替换已存在的L2P。
本实施例中,终端读取到该当前元数据后,并为该当前元数据分配LBA,终端可以根据分配的LBA及当前PBA重新生成新的L2P,并替换已存在的与该当前元数据对应的L2P。
从以上技术方案可以看出,本申请实施例具有以下优点:终端将运行时产生的当前元数据备份保存在SSD中的多个存储位置中,当某一个备份的当前元数据发生读取失败时,可以从其他备份文件中恢复并读取该当前元数据,从而提高了当前元数据读取的成功率。
以上方案对数据存储方法进行了说明,下面对终端进行说明:
下面具体参照图2,图2为本申请实施例中终端的一个实施例示意图,该终端包含SSD,可以包括:
获取单元201,用于当该SSD上电恢复时,获取该SSD上的LBA;
查找单元202,用于根据该LBA在该SSD中查找对应的L2P;
读取单元203,用于根据该L2P读取对应的N个PBA,其中N为大于等于2的整数;若从第一PBA对应的存储位置中读取当前元数据失败,则从第二PBA对应的存储位置中读取该当前元数据,该N个PBA可以包括该第一PBA和该第二PBA。
可选的,在本申请的一些实施例中,具体参照图3,图3为本申请实施例中终端的另一个实施例示意图,该终端还可以包括:
分配单元204,用于为该当前元数据分配该LBA和该N个PBA;
保存单元205,用于将该当前元数据保存在该N个PBA对应的存储位置;
生成单元206,用于根据该LBA和该N个PBA生成该L2P。
可选的,在本申请的一些实施例中,具体参照图4,图4为本申请实施例中终端的另一个实施例示意图,该终端还可以包括:
计算单元207,用于根据该SSD的容量计算元数据的大小;根据该元数据的大小,计算得到保存该元数据的数据块的数量。
可选的,在本申请的一些实施例中,具体参照图5,图5为本申请实施例中终端的另一个实施例示意图,该终端还可以包括:
执行单元208,用于若读取单元203从该N个PBA对应的存储位置中读取该当前元数据失败,则启动该SSD的慢速恢复机制,并从该SSD中查找并恢复该当前元数据。
可选的,在本申请的一些实施例中,
保存单元204,还用于将该当前元数据保存在机械硬盘上;
读取单元203,还用于从该机械硬盘上读取该当前元数据。
本申请实施例中还提供一种终端,如图6所示,图6为本申请实施例中终端的另一个实施例示意图,可以包括:
处理器601、存储器602和输入/输出设备603;
所述输入/输出设备603用于接收或发送指令;
所述存储器602用于存储指令;
所述处理器601用于执行所述存储器中的所述指令,使得所述终端执行如前述图1所示实施例及任一可选实现方式中所述的方法。
本申请实施例中还提供一种计算机存储介质,包括指令,当其在计算机上运行时,使得计算机执行如前述图1所示实施例及任一可选实现方式中描述的方法。
本申请实施例中还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如前述图1所示实施例及任一可选实现方式中描述的方法。
本申请实施例中还提供一种芯片系统,该芯片系统包括处理器,用于支持终端实现前述图1所示实施例及任一可选实现方式中所涉及的功能。例如,例如发送或处理上述方法中所涉及的数据和/或信息。
在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存终端必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个分配单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种数据存储方法,其特征在于,所述方法应用于终端,所述终端包含固态硬盘SSD,包括:
当所述SSD上电恢复时,所述终端获取所述SSD上的逻辑地址LBA;
所述终端根据所述LBA在所述SSD中查找对应的逻辑物理映射表L2P;
所述终端根据所述L2P读取对应的N个物理地址PBA,其中N为大于等于2的整数;
若所述终端从第一PBA对应的存储位置中读取当前元数据失败,则所述终端从第二PBA对应的存储位置中读取所述当前元数据,所述N个PBA包括所述第一PBA和所述第二PBA。
2.根据权利要求1所述的方法,其特征在于,当所述SSD上电恢复时,所述终端获取所述SSD上的LBA之前,所述方法还包括:
当所述终端保存所述当前元数据时,所述终端为所述当前元数据分配所述LBA和所述N个PBA;
所述终端将所述当前元数据保存在所述N个PBA对应的存储位置;
所述终端根据所述LBA和所述N个PBA生成所述L2P。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述终端根据所述SSD的容量计算元数据的大小;
所述终端根据所述元数据的大小,计算得到保存所述元数据的数据块的数量。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
若所述终端从所述N个PBA对应的存储位置中读取所述当前元数据失败,则所述终端启动所述SSD的慢速恢复机制,并从所述SSD中查找并恢复所述当前元数据。
5.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
当所述终端保存所述当前元数据时,所述终端将所述当前元数据保存在机械硬盘上;
若所述终端从所述N个PBA对应的存储位置中读取所述当前元数据失败,则所述终端从所述机械硬盘上读取所述当前元数据。
6.一种终端,其特征在于,包括:
获取单元,用于当所述SSD上电恢复时,获取所述SSD上的LBA;
查找单元,用于根据所述LBA在所述SSD中查找对应的L2P;
读取单元,用于根据所述L2P读取对应的N个PBA,其中N为大于等于2的整数;若从第一PBA对应的存储位置中读取当前元数据失败,则从第二PBA对应的存储位置中读取所述当前元数据,所述N个PBA包括所述第一PBA和所述第二PBA。
7.根据权利要求6所述的终端,其特征在于,所述终端还包括:
分配单元,用于为所述当前元数据分配所述LBA和所述N个PBA;
保存单元,用于将所述当前元数据保存在所述N个PBA对应的存储位置;
生成单元,用于根据所述LBA和所述N个PBA生成所述L2P。
8.根据权利要求7所述的终端,其特征在于,所述终端还包括:
计算单元,用于根据所述SSD的容量计算元数据的大小;根据所述元数据的大小,计算得到保存所述元数据的数据块的数量。
9.根据权利要求6至8中任一项所述的终端,其特征在于,所述终端还包括:
执行单元,用于若所述读取单元从所述N个PBA对应的存储位置中读取所述当前元数据失败,则启动所述SSD的慢速恢复机制,并从所述SSD中查找并恢复所述当前元数据。
10.根据权利要求6至8中任一项所述的终端,其特征在于,
所述保存单元,还用于将所述当前元数据保存在机械硬盘上;
所述读取单元,还用于从所述机械硬盘上读取所述当前元数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810804049.0A CN109101437A (zh) | 2018-07-20 | 2018-07-20 | 一种数据存储方法与终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810804049.0A CN109101437A (zh) | 2018-07-20 | 2018-07-20 | 一种数据存储方法与终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109101437A true CN109101437A (zh) | 2018-12-28 |
Family
ID=64846957
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810804049.0A Pending CN109101437A (zh) | 2018-07-20 | 2018-07-20 | 一种数据存储方法与终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109101437A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109918234A (zh) * | 2019-03-06 | 2019-06-21 | 苏州浪潮智能科技有限公司 | 一种基于ssd的元数据恢复方法、装置、设备及介质 |
CN110489061A (zh) * | 2019-07-26 | 2019-11-22 | 苏州浪潮智能科技有限公司 | 一种低资源消耗的trim实现方法 |
CN110597741A (zh) * | 2019-08-23 | 2019-12-20 | 苏州浪潮智能科技有限公司 | 一种l2p表的读写、更新方法及l2p表 |
CN111045870A (zh) * | 2019-12-27 | 2020-04-21 | 北京浪潮数据技术有限公司 | 一种保存与恢复元数据的方法、装置和介质 |
CN111581120A (zh) * | 2019-04-30 | 2020-08-25 | 长江存储科技有限责任公司 | 电子设备和管理闪存的读取电平的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070067559A1 (en) * | 2005-09-22 | 2007-03-22 | Akira Fujibayashi | Storage control apparatus, data management system and data management method |
CN103593260A (zh) * | 2013-10-17 | 2014-02-19 | 华为技术有限公司 | 一种元数据的保护方法和装置 |
CN103744795A (zh) * | 2013-12-19 | 2014-04-23 | 记忆科技(深圳)有限公司 | 固态硬盘快速启动的方法及其固态硬盘 |
CN104461391A (zh) * | 2014-12-05 | 2015-03-25 | 上海宝存信息科技有限公司 | 一种存储设备元数据管理处理方法及系统 |
CN107315659A (zh) * | 2017-06-27 | 2017-11-03 | 郑州云海信息技术有限公司 | 一种元数据的冗余备份方法及装置 |
-
2018
- 2018-07-20 CN CN201810804049.0A patent/CN109101437A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070067559A1 (en) * | 2005-09-22 | 2007-03-22 | Akira Fujibayashi | Storage control apparatus, data management system and data management method |
CN103593260A (zh) * | 2013-10-17 | 2014-02-19 | 华为技术有限公司 | 一种元数据的保护方法和装置 |
CN103744795A (zh) * | 2013-12-19 | 2014-04-23 | 记忆科技(深圳)有限公司 | 固态硬盘快速启动的方法及其固态硬盘 |
CN104461391A (zh) * | 2014-12-05 | 2015-03-25 | 上海宝存信息科技有限公司 | 一种存储设备元数据管理处理方法及系统 |
CN107315659A (zh) * | 2017-06-27 | 2017-11-03 | 郑州云海信息技术有限公司 | 一种元数据的冗余备份方法及装置 |
Non-Patent Citations (1)
Title |
---|
李东阳等: "基于SSD的云存储主服务器元数据管理研究", 《计算机技术与发展》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109918234A (zh) * | 2019-03-06 | 2019-06-21 | 苏州浪潮智能科技有限公司 | 一种基于ssd的元数据恢复方法、装置、设备及介质 |
CN111581120A (zh) * | 2019-04-30 | 2020-08-25 | 长江存储科技有限责任公司 | 电子设备和管理闪存的读取电平的方法 |
US11016705B2 (en) | 2019-04-30 | 2021-05-25 | Yangtze Memory Technologies Co., Ltd. | Electronic apparatus and method of managing read levels of flash memory |
US11567701B2 (en) | 2019-04-30 | 2023-01-31 | Yangtze Memory Technologies Co., Ltd. | Electronic apparatus and method of managing read levels of flash memory |
CN110489061A (zh) * | 2019-07-26 | 2019-11-22 | 苏州浪潮智能科技有限公司 | 一种低资源消耗的trim实现方法 |
CN110489061B (zh) * | 2019-07-26 | 2022-07-19 | 苏州浪潮智能科技有限公司 | 一种低资源消耗的trim实现方法 |
CN110597741A (zh) * | 2019-08-23 | 2019-12-20 | 苏州浪潮智能科技有限公司 | 一种l2p表的读写、更新方法及l2p表 |
CN110597741B (zh) * | 2019-08-23 | 2021-09-10 | 苏州浪潮智能科技有限公司 | 一种l2p表的读写、更新方法及l2p表 |
CN111045870A (zh) * | 2019-12-27 | 2020-04-21 | 北京浪潮数据技术有限公司 | 一种保存与恢复元数据的方法、装置和介质 |
CN111045870B (zh) * | 2019-12-27 | 2022-06-10 | 北京浪潮数据技术有限公司 | 一种保存与恢复元数据的方法、装置和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109101437A (zh) | 一种数据存储方法与终端 | |
US9645895B2 (en) | Data storage device and flash memory control method | |
US7562202B2 (en) | Systems, methods, computer readable medium and apparatus for memory management using NVRAM | |
US8909986B2 (en) | Data storing method for solid state drive to preserve data integrity after power failure | |
US8423710B1 (en) | Sequential writes to flash memory | |
CN109977034B (zh) | 数据储存装置以及非挥发式存储器操作方法 | |
US8341336B2 (en) | Region-based management method of non-volatile memory | |
CN104699413B (zh) | 数据管理方法、存储器存储装置及存储器控制电路单元 | |
RU2319227C2 (ru) | Способ запоминания с двойным протоколированием и носитель данных для него | |
CN106557432B (zh) | 缓冲存储器管理方法、存储器控制电路单元及存储装置 | |
CN111414342A (zh) | 存储设备及其数据处理方法 | |
US20090132757A1 (en) | Storage system for improving efficiency in accessing flash memory and method for the same | |
CN103365786A (zh) | 数据存储方法、装置和系统 | |
CN111949206A (zh) | 存储器系统、控制器以及控制器的操作方法 | |
CN111007985A (zh) | 一种存储系统空间回收的兼容处理方法、系统及设备 | |
CN113986773A (zh) | 基于固态硬盘的写放大优化方法、装置及计算机设备 | |
CN104408126B (zh) | 一种数据库的持久化写入方法、装置和系统 | |
CN114764396A (zh) | 数据存储装置及其操作方法 | |
KR20220119348A (ko) | 분할된 저장장치에서의 스냅샷 관리 | |
CN112083883B (zh) | 存储系统以及用于存储系统中的方法 | |
CN109002265B (zh) | 一种数据处理的方法以及相关装置 | |
CN105353979A (zh) | SSD内部数据文件系统eblock链接结构、管理系统及方法 | |
CN106293530A (zh) | 一种数据写入方法和装置 | |
KR100982440B1 (ko) | 단일 플래시 메모리의 데이터 관리시스템 | |
CN111324287A (zh) | 一种存储器 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181228 |