CN109683830A - 一种全闪存列阵的数据写入方法、系统及相关组件 - Google Patents
一种全闪存列阵的数据写入方法、系统及相关组件 Download PDFInfo
- Publication number
- CN109683830A CN109683830A CN201910016921.XA CN201910016921A CN109683830A CN 109683830 A CN109683830 A CN 109683830A CN 201910016921 A CN201910016921 A CN 201910016921A CN 109683830 A CN109683830 A CN 109683830A
- Authority
- CN
- China
- Prior art keywords
- data
- section
- storage
- access times
- flash memory
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000003860 storage Methods 0.000 claims abstract description 156
- 239000010813 municipal solid waste Substances 0.000 claims abstract description 48
- 230000005012 migration Effects 0.000 claims abstract description 27
- 238000013508 migration Methods 0.000 claims abstract description 27
- 238000013507 mapping Methods 0.000 claims description 26
- 238000011084 recovery Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 9
- 230000005055 memory storage Effects 0.000 abstract description 32
- 238000004422 calculation algorithm Methods 0.000 abstract description 7
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 11
- 238000004064 recycling Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000013500 data storage Methods 0.000 description 5
- 238000010187 selection method Methods 0.000 description 3
- 239000013589 supplement Substances 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 239000000047 product Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请公开了一种全闪存列阵的数据写入方法,所述数据写入方法包括将全闪存列阵的存储总空间划分为多个存储区间,并设置每一个存储区间与使用次数区间的区间对应关系;当接收到数据写请求时,根据所述数据写请求确定逻辑区块地址;查询所述逻辑区块地址的使用次数,并根据所述区间对应关系向所述使用次数对应存储区间内写入新数据。本申请能够优化全闪存储列阵的数据写入平衡算法,减少全闪存储列阵垃圾回收过程中数据迁移的数据量,提升全闪存储列阵的存储性能。本申请还公开了一种全闪存列阵的数据写入系统、一种计算机可读存储介质及一种电子设备,具有以上有益效果。
Description
技术领域
本申请涉及数据存储技术领域,特别涉及一种全闪存列阵的数据写入方法、系统、一种计算机可读存储介质及一种电子设备。
背景技术
全闪存储是存储发展的一个重要方向,随着SSD价格的逐渐下降,未来全闪存储产品必将进一步抢占传统存储的市场份额,成为存储领域的主打产品。传统存储相比,全闪存储除在性能上具有绝对优势外,数据组织方式的主要区别在于,传统存储的数据存放方式为覆盖写方式,即向同一个逻辑地址写入数据时,每次都是写在同一个地方,并覆盖旧数据,而全闪存储则采用追加写方式,即向同一个逻辑地址写入数据时,每次都写在一个新地方,而旧数据不会被覆盖,而是等待后续被作为垃圾进行回收。
现有技术中全闪存储列阵根据固态硬盘上的主控+固件里的算法策略来决定的,还会加上静态写入平衡算法。但是,现有技术这种数据写入方法使得连续的一段存储空间中各个数据的更新频率差别很大,导致在进行垃圾回收时,系统需要对所有的block进行垃圾回收操作。即,需要逐个block的扫描空间,发现存在垃圾要进行回收的block时,先将block中的有效数据迁移到其他block中,然后释放当前block的空间。但数据迁移的过程需要占用系统资源,因此如果系统运行后经常性发生数据迁移的操作,会影响存储系统性能的发挥。
因此,如何优化全闪存储列阵的数据写入平衡算法,减少全闪存储列阵垃圾回收过程中数据迁移的数据量,提升全闪存储列阵的存储性能是本领域技术人员目前需要解决的技术问题。
发明内容
本申请的目的是提供一种全闪存列阵的数据写入方法、系统、一种计算机可读存储介质及一种电子设备,能够优化全闪存储列阵的数据写入平衡算法,减少全闪存储列阵垃圾回收过程中数据迁移的数据量,提升全闪存储列阵的存储性能。
为解决上述技术问题,本申请提供一种全闪存列阵的数据写入方法,该数据写入方法包括:
将全闪存列阵的存储总空间划分为多个存储区间,并设置每一个存储区间与使用次数区间的区间对应关系;
当接收到数据写请求时,根据所述数据写请求确定逻辑区块地址;
查询所述逻辑区块地址的使用次数,并根据所述区间对应关系向所述使用次数对应存储区间内写入新数据。
可选的,还包括:
当接收到垃圾数据回收指令时,将垃圾数据与有效数据的比值大于预设值的存储区间设置为待回收区间;
根据所述垃圾数据回收指令对所述待回收区间执行数据迁移操作和垃圾回收操作。
可选的,根据所述垃圾数据回收指令对所述待回收区间执行数据迁移操作和垃圾回收操作,包括:
根据所述垃圾数据回收指令确定所述待回收区间中的垃圾数据块和有效数据块;其中,所述垃圾数据块为存储垃圾数据的数据块,所述有效数据块为存储有效数据的数据块;
将所述有效数据块中的数据迁移至除所述待回收区间之外的其他存储区间,释放所述待回收区间中所有数据块的空间以便完成所述垃圾回收操作。
可选的,查询所述逻辑区块地址的使用次数,并根据所述区间对应关系向所述使用次数对应存储区间内写入新数据,包括:
查询所述逻辑区块地址的使用次数,并确定所述使用次数所在的目标使用次数区间;
根据所述区间对应关系确定所述目标使用次数区间对应的目标存储区间,并从所述目标存储区间中确定目标数据块;
删除所述逻辑区块地址与原物理区块地址的映射关系,并建立所述逻辑区块地址与所述目标数据块的物理区块地址的新映射关系;
根据所述新映射关系向所述目标数据块写入新数据。
可选的,在根据所述新映射关系向所述目标数据块写入新数据之后,还包括:
将所述原物理区块地址对应的原数据块中的数据标记为垃圾数据;
将所述目标数据块中的数据标记为有效数据。
可选的,在根据所述区间对应关系向所述使用次数对应存储区间内写入新数据之后,还包括:
将所述逻辑区块地址的使用次数加一。
本申请还提供了一种全闪存列阵的数据写入系统,该数据写入系统包括:
划分模块,用于将全闪存列阵的存储总空间划分为多个存储区间,并设置每一个存储区间与使用次数区间的区间对应关系;
地址确定模块,用于当接收到数据写请求时,根据所述数据写请求确定逻辑区块地址;
写数据模块,用于查询所述逻辑区块地址的使用次数,并根据所述区间对应关系向所述使用次数对应存储区间内写入新数据。
可选的,所述写数据模块包括:
区间确定单元,用于查询所述逻辑区块地址的使用次数,并确定所述使用次数所在的目标使用次数区间;
数据块确定单元,用于根据所述区间对应关系确定所述目标使用次数区间对应的目标存储区间,并从所述目标存储区间中确定目标数据块;
映射更新单元,用于删除所述逻辑区块地址与原物理区块地址的映射关系,并建立所述逻辑区块地址与所述目标数据块的物理区块地址的新映射关系;
写入单元,用于根据所述新映射关系向所述目标数据块写入新数据。
本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序执行时实现上述全闪存列阵的数据写入方法执行的步骤。
本申请还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现上述全闪存列阵的数据写入方法执行的步骤。
本申请提供了一种全闪存列阵的数据写入方法,包括将全闪存列阵的存储总空间划分为多个存储区间,并设置每一个存储区间与使用次数区间的区间对应关系;当接收到数据写请求时,根据所述数据写请求确定逻辑区块地址;查询所述逻辑区块地址的使用次数,并根据所述区间对应关系向所述使用次数对应存储区间内写入新数据。
本申请首先将全闪存储列阵的存储总空间划分为多个存储区间,并为每一个存储区间设置对应的使用次数区间,以便根据逻辑区块地址的使用次数选择对应的存储区间用于存储数据。由于逻辑区块地址的使用次数越大则说明该逻辑区块地址对应的数据的更新频度越大,更新频度越大则说明垃圾数据越多。通过上述数据存储位置的选择方法,能够使逻辑区块地址使用次数相近的数据存储在同一存储区间中,使得同一存储区间中各个物理区块地址中的垃圾数据比例基本相同。因此,本申请能够优化全闪存储列阵的数据写入平衡算法,使得连续的一段存储空间中各个数据的更新频率相似,减少全闪存储列阵垃圾回收过程中数据迁移的数据量,提升全闪存储列阵的存储性能。本申请同时还提供了一种全闪存列阵的数据写入系统、一种计算机可读存储介质和一种电子设备,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所提供的一种全闪存列阵的数据写入方法的流程图;
图2为全闪存储写IO操作的流程图;
图3为本申请实施例所提供的一种垃圾数据回收方法的流程图;
图4为本申请实施例所提供的一种全闪存列阵的数据写入系统的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面请参见图1,图1为本申请实施例所提供的一种全闪存列阵的数据写入方法的流程图。
具体步骤可以包括:
S101:将全闪存列阵的存储总空间划分为多个存储区间,并设置每一个存储区间与使用次数区间的区间对应关系;
其中,本实施例应用于全闪存储列阵,全闪存储列阵是完全由固态存储介质(通常是NAND闪存)构成的独立的存储阵列或设备,这些系统是用于增强可能包含磁盘阵列的环境的性能,或者用于取代所有传统的硬盘存储阵列。全闪存储通常采用追加写方式,请参见图2,图2为全闪存储写IO操作的流程图,其主要工作过程为主机端向卷中写入数据时,写入的地址可以表示为LBA(即对应写入卷的逻辑区块地址,也就是该数据块对应的地址),在数据进行写盘时,首先要给该IO块分配一块写盘的地址,可以表示为PBA(即对应实际存盘的物理区块地址),而后等数据写盘完成后,记录并保存LBA与PBA的映射关系,最后返回写盘完成。如果下次再对同一个LBA地址进行写IO的操作,则会分配一个新的PBA地址用来存放数据,并记录新的LBA与PBA的映射关系,此时原PBA地址处存放的数据则变成垃圾数据。
本步骤首先将全闪存储列阵的存储总空间划分为多个存储区间(即block),每一存储区间中可以包括多个数据块,存储区间包括的数据块的数量可以不相同,每一数据块都有其唯一对应的物理区块地址PBA,数据块为IO块对应数据的写数据粒度。此处不限定划分存储区间的数量和每一存储区间的区间大小,可以灵活更改。划分存储区间的意义在于,将更新频度相近的数据统一存储至同一存储区间中。因此,本步骤在划分存储区间之后,还设置每一个存储区间与使用次数区间的区间对应关系。作为一种可选的实施方式,本步骤可以包括以下操作:(1)确定使用次数总范围,将使用次数总范围划分为N个使用次数区间;(2)将存储总空间划分为N个存储区间,其中每一存储区间有其唯一对应的使用次数区间;(3)设置每一存储区间与每一使用次数区间的区间对应关系。
S102:当接收到数据写请求时,根据所述数据写请求确定逻辑区块地址;
其中,在接收到数据写请求时,可以根据数据写请求确定逻辑区块地址,若该逻辑区块地址的使用次数大于0则说明:在本步骤之前已经存在根据该逻辑区块地址与物理区块地址的映射关系,将数据写入该逻辑区块地址对应的原物理区块地址的操作。逻辑区块地址LBA,全称为Logical Block Address,是数据存储装置上用来表示数据所在位置的通用机制。
S103:查询所述逻辑区块地址的使用次数,并根据所述区间对应关系向所述使用次数对应存储区间内写入新数据。
其中,本实施例在本步骤之前默认存在记录所有逻辑区块地址使用次数的操作,在S102确定逻辑区块地址之后可以查询该逻辑区块地址的使用次数。此处提到的使用次数指:根据逻辑区块地址与物理区块地址的对应关系执行写操作的次数。逻辑区块地址的使用次数越多说明该逻辑区块地址对应的IO块更新频度越大,IO块的更新频度越大其对应产生的垃圾数据越多。为获取每个数据块的更新频度,以便为后续工作提供依据,在每次写完某个LBA,并保存LBA与新的PBA的映射关系时,都会将该LBA的使用计数加1,而最后统计出LBA的使用次数即对应了该数据块的更新频度,更新频度越高说明该LBA所对应的数据块改动的越频繁。
在确定逻辑区块地址的使用次数之后,可以确定该使用次数所在的使用次数区间,根据存储区间与使用次数区间的区间关系选择对应的存储区间,以便写入新数据。具体的,S103中的操作可以包括以下子步骤:
步骤1、查询所述逻辑区块地址的使用次数,并确定所述使用次数所在的目标使用次数区间;
步骤2、根据所述区间对应关系确定所述目标使用次数区间对应的目标存储区间,并从所述目标存储区间中确定目标数据块;
步骤3、删除所述逻辑区块地址与原物理区块地址的映射关系,并建立所述逻辑区块地址与所述目标数据块的物理区块地址的新映射关系;
步骤4、根据所述新映射关系向所述目标数据块写入新数据。
当然本实施例还可以在映射关系改变之后进行数据类型标记操作:将所述原物理区块地址对应的原数据块中的数据标记为垃圾数据;将所述目标数据块中的数据标记为有效数据。
可以理解的是,S102和S103中的操作可以在全身存储系统中重复执行,在经过多次的数据根据逻辑区块地址的次数选择写入的存储区间的操作之后,本实施例所描述的全闪存储列阵中的IO块的存储位置按照其更新频率有规律的排布,即更新频率相近的IO块存储在同一存储区间中。由于同一存储区间对应的IO块更新频率相同,因此同一存储区间中各个物理区块地址对应的数据块中产生的垃圾数据的数量相同。
在全闪存储列阵进行垃圾回收操作时,如果扫描存储区间时,发现存储区间中的多个数据块,部分是垃圾数据,部分是有效数据,则需要将有效数据迁移到其他可用的存储区间中,此时同样需要给这些有效数据块分配一个新的PBA,并将该数据块对应的LBA与新的PBA进行关联后记录这个新的映射关系,此时原存储区间中的数据块相应就变成了垃圾数据。等到存储区间中的所有有效数据块都完成迁移后,当前存储区间的数据块就相应都变成了垃圾数据,此时就可将该存储区间中的数据清空,并重新使用该存储区间存放新的数据,从而完成对存储区间的回收再利用。本步骤中向所述使用次数对应存储区间内写入新数据实际上是,向所述使用次数对应存储区间内某一物理区块地址PBA(Physics BlockAddress)对应的数据块写入数据。
本实施例首先将全闪存储列阵的存储总空间划分为多个存储区间,并为每一个存储区间设置对应的使用次数区间,以便根据逻辑区块地址的使用次数选择对应的存储区间用于存储数据。由于逻辑区块地址的使用次数越大则说明该逻辑区块地址对应的数据的更新频度越大,更新频度越大则说明垃圾数据越多。通过上述数据存储位置的选择方法,能够使逻辑区块地址使用次数相近的数据存储在同一存储区间中,使得同一存储区间中各个物理区块地址中的垃圾数据比例基本相同。因此,本实施例能够优化全闪存储列阵的数据写入平衡算法,使得连续的一段存储空间中各个数据的更新频率相似,减少全闪存储列阵垃圾回收过程中数据迁移的数据量,提升全闪存储列阵的存储性能。
作为对于图1对应实施例的进一步补充,在S103之后还可以存在垃圾数据回收的操作,具体过程如下:
步骤1:当接收到垃圾数据回收指令时,将垃圾数据与有效数据的比值大于预设值的存储区间设置为待回收区间;
步骤2:根据所述垃圾数据回收指令对所述待回收区间执行数据迁移操作和垃圾回收操作。
其中,通过图1对应实施例中S101-S103的操作能够使全闪存储列阵中的数据按照更新频率分块存储,当接收到垃圾数据回收指令时,上述补充的操作可以计算统计存储区间中垃圾数据的大小和有效数据的大小,进而将垃圾数据与有效数据的数据量的比值大于预设值的存储区间设置为待回收区间。该预设值为根据实景情况灵活调整的数值,具体的,当垃圾数据与有效数据的比值大于预设值时,意味着该存储区间中大部分是垃圾数据需要进行垃圾回收操作。
需要说明的是,根据垃圾数据的多少可以将存储区间分为三类,第一类为全是垃圾数据的存储区间,第二类是垃圾数据和有效数据并存的存储区间,第三类是全是有效数据的存储区间。对于全是垃圾数据的存储区间可以直接执行垃圾回收操作,对于全是有效数据的存储区间不参与垃圾数据回收流程,对于垃圾数据和有效数据并存的存储区间可以先判断是否为待回收区间,若为待回收区间则需要先执行数据迁移操作再执行垃圾回收操作。数据迁移操作的流程为:先将待回收区间中的有效数据迁移至其他存储区间,使待回收区间中的数据全部变为垃圾数据,然后释放待回收区间中所有的数据块,以便二次利用。
也就是说,在接受到垃圾数据回收指令时,本实施例可以仅对垃圾数据与有效数据的比值大于预设值的存储区间执行垃圾回收操作,减少了执行垃圾回收操作的存储区间的数量。
作为对于图1对应实施例的进一步补充,在根据所述区间对应关系向所述使用次数对应存储区间内写入新数据之后,还可以将所述逻辑区块地址的使用次数加一。
下面请参见图3,图3为本申请实施例所提供的一种垃圾数据回收方法的流程图;本实施例是对步骤2的进一步解释,具体步骤可以包括:
S201:根据所述垃圾数据回收指令确定所述待回收区间中的垃圾数据块和有效数据块;
其中,所述垃圾数据块为存储垃圾数据的数据块,所述有效数据块为存储有效数据的数据块;
S202:将所述有效数据块中的数据迁移至除所述待回收区间之外的其他存储区间,释放所述待回收区间中所有数据块的空间以便完成所述垃圾回收操作。
通过图1描述的数据分区存放的方式,可实现同一存储区间中所存放数据的更新频度相近,同时经常发生数据更新的数据也会和其他经常更新的数据放到一起。经过上述过程,对应存放高更新频度数据块的存储区间,由于每次数据更新后,新数据会放到新的地方,而已经存放的老数据已经变为了垃圾数据,因此一段时间后,这些存储区间中的数据往往就全部变成垃圾数据了,因此不需要进行迁移动作,便可直接进行回收。对于存放低更新频度数据块的存储区间,由于数据可能很长时间不更新,其中绝大多数数据块都是有效数据,因此这些存储区间基本不需要进行垃圾回收,从而减少了垃圾回收的次数。对于存放中等更新频度数据块的存储区间,往往其中同时具有垃圾数据和有效数据,此时则可根据其中垃圾数据所占比例需要是否进行垃圾回收,如果垃圾数据比重超过阈值,进行数据迁移和回收动作,但总体也降低了发生数据迁移和垃圾回收的次数。
图3对应的实施例描述了对于存放中等更新频度数据块的存储区域的垃圾回收方法,首先确定待回收区间中的有效数据块和垃圾数据块,将有效数据块迁移至除了待回收区间之外的其他存储区间中,以使待回收区间中的所有数据均为垃圾数据,然后再释放所述待回收区间中所有数据块的空间以便完成所述垃圾回收操作。
可以将图1对应实施例与图3对应的实施例结合得到更为优选的全闪存储数据管理的方法,通过在全闪存储系统中对每个数据统计其更新频度,而后根据更新频度分区域存放数据块,将近似更新频度的数据块统一存放,从而实现了存储区间中数据块尽可能全是垃圾数据或是全是有效数据的效果,进而减少了垃圾回收过程中发生数据迁移或是存储区间回收的次数,减少了垃圾回收操作造成的资源损耗,整体上提升了系统性能。上述方法通过识别存储系统中数据更改的频繁程度,将不同更改频度的数据存放到不同的存储区间,使得每个存储区间中存放的数据的更改频度基本相同,从而在进行垃圾回收过程中扫描存储区间时,能够使存储区间中的数据尽量都是垃圾或者都不是垃圾,从而都是垃圾的存储区间可不进行迁移直接回收,而都不是垃圾的存储区间则不需要进行回收,进而减少数据迁移的发生,降低迁移造成的系统资源损耗,提高系统的整体性能。
请参见图4,图4为本申请实施例所提供的一种全闪存列阵的数据写入系统的结构示意图;
该系统可以包括:
划分模块100,用于将全闪存列阵的存储总空间划分为多个存储区间,并设置每一个存储区间与使用次数区间的区间对应关系;
地址确定模块200,用于当接收到数据写请求时,根据所述数据写请求确定逻辑区块地址;
写数据模块300,用于查询所述逻辑区块地址的使用次数,并根据所述区间对应关系向所述使用次数对应存储区间内写入新数据。
本实施例首先将全闪存储列阵的存储总空间划分为多个存储区间,并为每一个存储区间设置对应的使用次数区间,以便根据逻辑区块地址的使用次数选择对应的存储区间用于存储数据。由于逻辑区块地址的使用次数越大则说明该逻辑区块地址对应的数据的更新频度越大,更新频度越大则说明垃圾数据越多。通过上述数据存储位置的选择方法,能够使逻辑区块地址使用次数相近的数据存储在同一存储区间中,使得同一存储区间中各个物理区块地址中的垃圾数据比例基本相同。因此,本实施例能够优化全闪存储列阵的数据写入平衡算法,使得连续的一段存储空间中各个数据的更新频率相似,减少全闪存储列阵垃圾回收过程中数据迁移的数据量,提升全闪存储列阵的存储性能。
进一步的,该数据写入系统还包括:
回收模块,用于当接收到垃圾数据回收指令时,将垃圾数据与有效数据的比值大于预设值的存储区间设置为待回收区间,并根据所述垃圾数据回收指令对所述待回收区间执行数据迁移操作和垃圾回收操作。
进一步的,所述写数据模块300包括:
区间确定单元,用于查询所述逻辑区块地址的使用次数,并确定所述使用次数所在的目标使用次数区间;
数据块确定单元,用于根据所述区间对应关系确定所述目标使用次数区间对应的目标存储区间,并从所述目标存储区间中确定目标数据块;
映射更新单元,用于删除所述逻辑区块地址与原物理区块地址的映射关系,并建立所述逻辑区块地址与所述目标数据块的物理区块地址的新映射关系;
写入单元,用于根据所述新映射关系向所述目标数据块写入新数据。
进一步的,该系统还包括:
标记单元,用于将所述原物理区块地址对应的原数据块中的数据标记为垃圾数据;还用于将所述目标数据块中的数据标记为有效数据。
进一步的,该系统还包括:
次数更新模块,用于在根据所述区间对应关系向所述使用次数对应存储区间内写入新数据之后,将所述逻辑区块地址的使用次数加一。
进一步的,回收模块包括:
数据分类单元,用于根据所述垃圾数据回收指令确定所述待回收区间中的垃圾数据块和有效数据块;其中,所述垃圾数据块为存储垃圾数据的数据块,所述有效数据块为存储有效数据的数据块;
垃圾回收单元,用于将所述有效数据块中的数据迁移至除所述待回收区间之外的其他存储区间,释放所述待回收区间中所有数据块的空间以便完成所述垃圾回收操作。
由于系统部分的实施例与方法部分的实施例相互对应,因此系统部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
本申请还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请还提供了一种电子设备,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述电子设备还可以包括各种网络接口,电源等组件。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种全闪存列阵的数据写入方法,其特征在于,包括:
将全闪存列阵的存储总空间划分为多个存储区间,并设置每一个存储区间与使用次数区间的区间对应关系;
当接收到数据写请求时,根据所述数据写请求确定逻辑区块地址;
查询所述逻辑区块地址的使用次数,并根据所述区间对应关系向所述使用次数对应存储区间内写入新数据。
2.根据权利要求1所述数据写入方法,其特征在于,还包括:
当接收到垃圾数据回收指令时,将垃圾数据与有效数据的比值大于预设值的存储区间设置为待回收区间;
根据所述垃圾数据回收指令对所述待回收区间执行数据迁移操作和垃圾回收操作。
3.根据权利要求2所述数据写入方法,其特征在于,根据所述垃圾数据回收指令对所述待回收区间执行数据迁移操作和垃圾回收操作,包括:
根据所述垃圾数据回收指令确定所述待回收区间中的垃圾数据块和有效数据块;其中,所述垃圾数据块为存储垃圾数据的数据块,所述有效数据块为存储有效数据的数据块;
将所述有效数据块中的数据迁移至除所述待回收区间之外的其他存储区间,释放所述待回收区间中所有数据块的空间以便完成所述垃圾回收操作。
4.根据权利要求1所述数据写入方法,其特征在于,查询所述逻辑区块地址的使用次数,并根据所述区间对应关系向所述使用次数对应存储区间内写入新数据,包括:
查询所述逻辑区块地址的使用次数,并确定所述使用次数所在的目标使用次数区间;
根据所述区间对应关系确定所述目标使用次数区间对应的目标存储区间,并从所述目标存储区间中确定目标数据块;
删除所述逻辑区块地址与原物理区块地址的映射关系,并建立所述逻辑区块地址与所述目标数据块的物理区块地址的新映射关系;
根据所述新映射关系向所述目标数据块写入新数据。
5.根据权利要求4所述数据写入方法,其特征在于,在根据所述新映射关系向所述目标数据块写入新数据之后,还包括:
将所述原物理区块地址对应的原数据块中的数据标记为垃圾数据;
将所述目标数据块中的数据标记为有效数据。
6.根据权利要求1至5任一项所述数据写入方法,其特征在于,在根据所述区间对应关系向所述使用次数对应存储区间内写入新数据之后,还包括:
将所述逻辑区块地址的使用次数加一。
7.一种全闪存列阵的数据写入系统,其特征在于,包括:
划分模块,用于将全闪存列阵的存储总空间划分为多个存储区间,并设置每一个存储区间与使用次数区间的区间对应关系;
地址确定模块,用于当接收到数据写请求时,根据所述数据写请求确定逻辑区块地址;
写数据模块,用于查询所述逻辑区块地址的使用次数,并根据所述区间对应关系向所述使用次数对应存储区间内写入新数据。
8.根据权利要求7所述数据写入系统,其特征在于,所述写数据模块包括:
区间确定单元,用于查询所述逻辑区块地址的使用次数,并确定所述使用次数所在的目标使用次数区间;
数据块确定单元,用于根据所述区间对应关系确定所述目标使用次数区间对应的目标存储区间,并从所述目标存储区间中确定目标数据块;
映射更新单元,用于删除所述逻辑区块地址与原物理区块地址的映射关系,并建立所述逻辑区块地址与所述目标数据块的物理区块地址的新映射关系;
写入单元,用于根据所述新映射关系向所述目标数据块写入新数据。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至6任一项所述全闪存列阵的数据写入方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述全闪存列阵的数据写入方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910016921.XA CN109683830A (zh) | 2019-01-08 | 2019-01-08 | 一种全闪存列阵的数据写入方法、系统及相关组件 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910016921.XA CN109683830A (zh) | 2019-01-08 | 2019-01-08 | 一种全闪存列阵的数据写入方法、系统及相关组件 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109683830A true CN109683830A (zh) | 2019-04-26 |
Family
ID=66192225
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910016921.XA Withdrawn CN109683830A (zh) | 2019-01-08 | 2019-01-08 | 一种全闪存列阵的数据写入方法、系统及相关组件 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109683830A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111398838A (zh) * | 2020-03-19 | 2020-07-10 | 湖北亿纬动力有限公司 | 一种动力电池的状态数据记录方法、装置、系统及介质 |
CN111880731A (zh) * | 2020-07-17 | 2020-11-03 | 北京浪潮数据技术有限公司 | 一种数据处理方法、装置及相关组件 |
CN111949222A (zh) * | 2020-09-18 | 2020-11-17 | 苏州浪潮智能科技有限公司 | 一种全闪磁盘阵列中垃圾回收中数据迁移的方法 |
CN113190180A (zh) * | 2021-05-26 | 2021-07-30 | 北京自由猫科技有限公司 | 一种基于混合介质的存储装置及分布式存储系统 |
CN114840149A (zh) * | 2022-07-06 | 2022-08-02 | 江苏华存电子科技有限公司 | 一种超级闪存的时序稳定分析方法及系统 |
CN116991336A (zh) * | 2023-09-26 | 2023-11-03 | 北京大道云行科技有限公司 | 分布式全闪对象存储系统的gc方法及电子设备、存储介质 |
-
2019
- 2019-01-08 CN CN201910016921.XA patent/CN109683830A/zh not_active Withdrawn
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111398838A (zh) * | 2020-03-19 | 2020-07-10 | 湖北亿纬动力有限公司 | 一种动力电池的状态数据记录方法、装置、系统及介质 |
CN111398838B (zh) * | 2020-03-19 | 2022-05-17 | 湖北亿纬动力有限公司 | 一种动力电池的状态数据记录方法、装置、系统及介质 |
CN111880731A (zh) * | 2020-07-17 | 2020-11-03 | 北京浪潮数据技术有限公司 | 一种数据处理方法、装置及相关组件 |
CN111949222A (zh) * | 2020-09-18 | 2020-11-17 | 苏州浪潮智能科技有限公司 | 一种全闪磁盘阵列中垃圾回收中数据迁移的方法 |
CN111949222B (zh) * | 2020-09-18 | 2022-09-20 | 苏州浪潮智能科技有限公司 | 一种全闪磁盘阵列中垃圾回收中数据迁移的方法 |
CN113190180A (zh) * | 2021-05-26 | 2021-07-30 | 北京自由猫科技有限公司 | 一种基于混合介质的存储装置及分布式存储系统 |
CN114840149A (zh) * | 2022-07-06 | 2022-08-02 | 江苏华存电子科技有限公司 | 一种超级闪存的时序稳定分析方法及系统 |
CN116991336A (zh) * | 2023-09-26 | 2023-11-03 | 北京大道云行科技有限公司 | 分布式全闪对象存储系统的gc方法及电子设备、存储介质 |
CN116991336B (zh) * | 2023-09-26 | 2024-01-23 | 北京大道云行科技有限公司 | 分布式全闪对象存储系统的gc方法及电子设备、存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109683830A (zh) | 一种全闪存列阵的数据写入方法、系统及相关组件 | |
CN106326133B (zh) | 存储系统、存储管理装置、存储器、混合存储装置及存储管理方法 | |
CN103092766B (zh) | 一种用于nand flash的均衡损耗实现方法 | |
CN101278267B (zh) | 具有经调度回收操作的非易失性存储器 | |
TWI424316B (zh) | 控制器、資料儲存裝置、及程式產品 | |
CN101169751B (zh) | 具有闪存设备的系统及其数据恢复方法 | |
KR101257691B1 (ko) | 메모리 컨트롤러 및 이의 데이터 관리방법 | |
CN102511044B (zh) | 一种数据删除方法及装置 | |
KR101663667B1 (ko) | 플래시 메모리의 주소 매핑에 의한 데이터 관리 방법 및 장치 | |
CN101673243B (zh) | 数据储存装置与方法 | |
CN102650931B (zh) | 一种写入数据的方法及系统 | |
US20140129758A1 (en) | Wear leveling in flash memory devices with trim commands | |
KR20130075018A (ko) | 플래시 메모리 파일 시스템에 적용 가능한 데이터 업데이트 장치 및 방법 | |
CN105718217A (zh) | 一种精简配置存储池数据一致性维护的方法及装置 | |
CN110309077B (zh) | 主机与设备协同工作的闪存转换层构建方法及装置 | |
CN102841851A (zh) | 闪存管理方法和闪存设备 | |
CN103294604A (zh) | 闪存器件和使用闪存器件的电子设备 | |
KR101017067B1 (ko) | 낸드 플래시 메모리를 위한 지역성 기반의 가비지 컬렉션기법 | |
CN102163175A (zh) | 一种基于局部性分析的混合地址映射方法 | |
CN101419573A (zh) | 一种存储管理的方法、系统和存储设备 | |
CN109960471B (zh) | 数据存储方法、装置、设备以及存储介质 | |
CN106598493A (zh) | 一种固态硬盘地址映射表管理方法 | |
WO2019160727A1 (en) | Append only streams for storing data on a solid state device | |
CN106326132B (zh) | 存储系统、存储管理装置、存储器、混合存储装置及存储管理方法 | |
US20150220433A1 (en) | Method for managing flash memories having mixed memory types using a finely granulated allocation of logical memory addresses to physical memory addresses |
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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20190426 |
|
WW01 | Invention patent application withdrawn after publication |