CN111158589B - 存储阵列的动态管理方法和装置 - Google Patents
存储阵列的动态管理方法和装置 Download PDFInfo
- Publication number
- CN111158589B CN111158589B CN201911295057.8A CN201911295057A CN111158589B CN 111158589 B CN111158589 B CN 111158589B CN 201911295057 A CN201911295057 A CN 201911295057A CN 111158589 B CN111158589 B CN 111158589B
- Authority
- CN
- China
- Prior art keywords
- array
- storage
- storage unit
- error
- recorded
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
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)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请公开了一种存储阵列的动态管理方法和装置,涉及存储阵列领域。该方法包括:预先为多个存储阵列创建阵列信息结构,其中,每一个存储阵列都包括多个存储单元;当某个存储阵列中有存储单元出现无法继续使用的错误时,在该存储阵列对应的阵列信息结构中记录出现错误的存储单元的信息;当执行写操作时,根据记录的阵列信息对多个存储阵列中除出现错误的存储单元以外的存储单元执行写操作;当对已写入数据的存储单元执行读操作时,如果发生读取出错,则根据记录的阵列信息对发生读取出错的存储单元中的数据进行重建。该装置包括:设置模块、记录模块、写模块和读模块。本申请实现了存储阵列的动态管理,能够达到充分利用存储单元的目的。
Description
技术领域
本申请涉及存储阵列领域,特别是涉及一种存储阵列的动态管理方法和装置。
背景技术
NAND Flash存储器是Flash存储器的一种,其内部采用非线性宏单元模式,为固态大容量内存的实现提供了廉价有效的解决方案。NAND Flash存储器具有容量较大,改写速度快等优点,适用于大量数据的存储,因而在业界得到了越来越广泛的应用。为了增强NANDFlash存储数据的可靠性并且不降低性能,目前,普遍的做法是在多个NAND Flash芯片中,由其中每一个芯片的用于存储数据的块(Block)共同组成多个块存储阵列,由所组成的多个块存储阵列来提供数据存储空间。例如,有N+1个NAND Flash芯片,每一个芯片都有M个块,可以组成M个有N+1个块的块存储阵列。其中,每个块存储阵列中1个块用于存储校验数据,N个块用于存储数据。此N+1个NAND Flash芯片可以提供M*N个块大小的数据存储空间。
但是,上述块存储阵列在使用的过程中,如果其中有一个块出现错误,会丢弃错块所在的块存储阵列,直接导致错块所在的整个块存储阵列无法使用,因此,可用于存储数据的存储空间就会减少,最终会导致块的个数不足无法达到存储系统设定的存储空间大小。例如,上述M个有N+1个块的块存储阵列中,当某个块存储阵列中有1个块出现错误时,该块所在的块存储阵列就无法继续使用,块存储阵列变为M-1个,从而只能提供(M-1)*N个块大小的数据存储空间。
发明内容
本申请的目的在于克服上述问题或者至少部分地解决或缓减解决上述问题。
根据本申请的一个方面,提供了一种存储阵列的动态管理方法,包括:
预先为多个存储阵列创建阵列信息结构,其中,每一个存储阵列都包括多个存储单元;
当某个存储阵列中有存储单元出现无法继续使用的错误时,在该存储阵列对应的阵列信息结构中记录出现错误的存储单元的信息;
当执行写操作时,根据记录的阵列信息对所述多个存储阵列中除所述出现错误的存储单元以外的存储单元执行写操作;
当对已写入数据的存储单元执行读操作时,如果发生读取出错,则根据记录的阵列信息对发生读取出错的存储单元中的数据进行重建。
可选地,当执行写操作时,根据记录的阵列信息对所述多个存储阵列中除所述出现错误的存储单元以外的存储单元执行写操作,包括:
当执行写操作时,根据记录的阵列信息判断当前待写入的存储单元是否为已记录的出现错误的存储单元,如果否,则向该存储单元写入数据。
可选地,当对已写入数据的存储单元执行读操作时,如果发生读取出错,则根据记录的阵列信息对发生读取出错的存储单元中的数据进行重建,包括:
当对已写入数据的存储单元执行读操作时,如果发生读取出错,则根据记录的阵列信息将重建所需存储单元的数据均读出,通过校验数据反向恢复出所述发生读取出错的存储单元中的数据。
可选地,当某个存储阵列中有存储单元出现无法继续使用的错误时,在该存储阵列对应的阵列信息结构中记录出现错误的存储单元的信息,包括:
当某个存储阵列中有存储单元出现无法继续使用的错误时,在该存储阵列对应的阵列信息结构中记录出现错误的存储单元的序号,或同时记录出现错误的存储单元的序号和个数。
可选地,所述方法还包括:
当检测到某个存储阵列中有存储单元出现写错误、擦错误或者读错误次数超过指定阈值时,确定该存储单元出现无法继续使用的错误。
根据本申请的另一个方面,提供了一种存储阵列的动态管理装置,包括:
设置模块,其配置成预先为多个存储阵列创建阵列信息结构,其中,每一个存储阵列都包括多个存储单元;
记录模块,其配置成当某个存储阵列中有存储单元出现无法继续使用的错误时,在该存储阵列对应的阵列信息结构中记录出现错误的存储单元的信息;
写模块,其配置成当执行写操作时,根据记录的阵列信息对所述多个存储阵列中除所述出现错误的存储单元以外的存储单元执行写操作;
读模块,其配置成当对已写入数据的存储单元执行读操作时,如果发生读取出错,则根据记录的阵列信息对发生读取出错的存储单元中的数据进行重建。
可选地,所述写模块具体配置成:
当执行写操作时,根据记录的阵列信息判断当前待写入的存储单元是否为已记录的出现错误的存储单元,如果否,则向该存储单元写入数据。
可选地,所述读模块具体配置成:
当对已写入数据的存储单元执行读操作时,如果发生读取出错,则根据记录的阵列信息将重建所需存储单元的数据均读出,通过校验数据反向恢复出所述发生读取出错的存储单元中的数据。
可选地,所述记录模块具体配置成:
当某个存储阵列中有存储单元出现无法继续使用的错误时,在该存储阵列对应的阵列信息结构中记录出现错误的存储单元的序号,或同时记录出现错误的存储单元的序号和个数。
可选地,所述记录模块还配置成:
当检测到某个存储阵列中有存储单元出现写错误、擦错误或者读错误次数超过指定阈值时,确定该存储单元出现无法继续使用的错误。
根据本申请的又一个方面,提供了一种计算设备,包括存储器、处理器和存储在所述存储器内并能由所述处理器运行的计算机程序,其中,所述处理器执行所述计算机程序时实现如上所述的方法。
根据本申请的又一个方面,提供了一种计算机可读存储介质,优选为非易失性可读存储介质,其内存储有计算机程序,所述计算机程序在由处理器执行时实现如上所述的方法。
根据本申请的又一个方面,提供了一种计算机程序产品,包括计算机可读代码,当所述计算机可读代码由计算机设备执行时,导致所述计算机设备执行上述的方法。
本申请提供的技术方案,通过预先为多个存储阵列创建阵列信息结构,其中,每一个存储阵列都包括多个存储单元;当某个存储阵列中有存储单元出现无法继续使用的错误时,在该存储阵列对应的阵列信息结构中记录出现错误的存储单元的信息;当执行写操作时,根据记录的阵列信息对所述多个存储阵列中除所述出现错误的存储单元以外的存储单元执行写操作;当对已写入数据的存储单元执行读操作时,如果发生读取出错,则根据记录的阵列信息对发生读取出错的存储单元中的数据进行重建;在保证存储数据的可靠性并且不降低性能的前提下,实现了存储阵列的动态管理,存储阵列可以在系统运行过程中动态更新组成单元,当有存储单元出错以后,其所在阵列的其他单元可以重组成新的存储阵列,从而能够达到充分利用所有存储单元的目的,极大的提高了存储阵列的使用效率,延长存储系统的使用寿命。
根据下文结合附图对本申请的具体实施例的详细描述,本领域技术人员将会更加明了本申请的上述以及其他目的、优点和特征。
附图说明
后文将参照附图以示例性而非限制性的方式详细描述本申请的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。附图中:
图1是根据本申请一个实施例的存储阵列的动态管理方法流程图;
图2是根据本申请另一个实施例的存储阵列的动态管理方法流程图;
图3是根据本申请另一个实施例的存储阵列的动态管理装置结构图;
图4是根据本申请另一个实施例的计算设备结构图;
图5是根据本申请另一个实施例的计算机可读存储介质结构图。
具体实施方式
本发明实施例涉及存储阵列的动态管理方法和装置,可以应用于使用多个存储单元组成存储阵列的系统中。其中,该存储单元包括但不限于NAND flash块。存储阵列中包括用于存储数据的存储单元和用于存储校验数据的存储单元,通常,用于存储数据的存储单元为多个,而用于存储校验数据的存储单元可以为一个,也可以为多个,具体不限定。
图1是根据本申请一个实施例的存储阵列的动态管理方法流程图。参见图1,该方法包括:
101:预先为多个存储阵列创建阵列信息结构,其中,每一个存储阵列都包括多个存储单元;
102:当某个存储阵列中有存储单元出现无法继续使用的错误时,在该存储阵列对应的阵列信息结构中记录出现错误的存储单元的信息;
103:当执行写操作时,根据记录的阵列信息对多个存储阵列中除出现错误的存储单元以外的存储单元执行写操作;
104:当对已写入数据的存储单元执行读操作时,如果发生读取出错,则根据记录的阵列信息对发生读取出错的存储单元中的数据进行重建。
本实施例中,可选的,当执行写操作时,根据记录的阵列信息对多个存储阵列中除出现错误的存储单元以外的存储单元执行写操作,包括:
当执行写操作时,根据记录的阵列信息判断当前待写入的存储单元是否为已记录的出现错误的存储单元,如果否,则向该存储单元写入数据。
本实施例中,可选的,当对已写入数据的存储单元执行读操作时,如果发生读取出错,则根据记录的阵列信息对发生读取出错的存储单元中的数据进行重建,包括:
当对已写入数据的存储单元执行读操作时,如果发生读取出错,则根据记录的阵列信息将重建所需存储单元的数据均读出,通过校验数据反向恢复出发生读取出错的存储单元中的数据。
本实施例中,可选的,当某个存储阵列中有存储单元出现无法继续使用的错误时,在该存储阵列对应的阵列信息结构中记录出现错误的存储单元的信息,包括:
当某个存储阵列中有存储单元出现无法继续使用的错误时,在该存储阵列对应的阵列信息结构中记录出现错误的存储单元的序号,或同时记录出现错误的存储单元的序号和个数。
本实施例中,可选的,上述方法还包括:
当检测到某个存储阵列中有存储单元出现写错误、擦错误或者读错误次数超过指定阈值时,确定该存储单元出现无法继续使用的错误。
本实施例提供的上述方法,通过预先为多个存储阵列创建阵列信息结构,其中,每一个存储阵列都包括多个存储单元;当某个存储阵列中有存储单元出现无法继续使用的错误时,在该存储阵列对应的阵列信息结构中记录出现错误的存储单元的信息;当执行写操作时,根据记录的阵列信息对所述多个存储阵列中除所述出现错误的存储单元以外的存储单元执行写操作;当对已写入数据的存储单元执行读操作时,如果发生读取出错,则根据记录的阵列信息对发生读取出错的存储单元中的数据进行重建;在保证存储数据的可靠性并且不降低性能的前提下,实现了存储阵列的动态管理,存储阵列可以在系统运行过程中动态更新组成单元,当有存储单元出错以后,其所在阵列的其他单元可以重组成新的存储阵列,从而能够达到充分利用所有存储单元的目的,极大的提高了存储阵列的使用效率,延长存储系统的使用寿命。
图2是根据本申请另一个实施例的存储阵列的动态管理方法流程图。参见图2,该方法包括:
201:预先为多个存储阵列创建阵列信息结构,其中,每一个存储阵列都包括多个存储单元;
本实施例中,可选的,多个存储阵列为M个,其中每个存储阵列都包括N+1个存储单元,N+1个存储单元包括1个用于存储校验数据的存储单元和N个用于存储数据的存储单元。因此,可以创建一个包括M个阵列信息的管理结构,其中,存储阵列的序号可以表示为I(I=0,1,2,…,M-1),每个存储阵列中存储单元的序号可以表示为J(J=0,1,2,…,N)。
202:当某个存储阵列中有存储单元出现无法继续使用的错误时,在该存储阵列对应的阵列信息结构中记录出现错误的存储单元的序号,或同时记录出现错误的存储单元的序号和个数;
本实施例中,可选的,本步骤还可以包括:
当检测到某个存储阵列中有存储单元出现写错误、擦错误或者读错误次数超过指定阈值时,确定该存储单元出现无法继续使用的错误。其中,指定阈值可以根据需要设置大小,具体不限定。
例如,在上述M个存储阵列的例子中,当第I个存储阵列中的第J个存储单元出现无法继续使用的错误时,将出现错误的存储单元的序号J记录在第I个阵列信息结构中。进一步地,当出现错误的存储单元为多个时,还可以在记录出现错误的存储单元的序号之外,还同时记录出现错误的存储单元的个数等等。
本实施例中,记录出现错误的存储单元后,可以将上述多个存储阵列中除出现错误的存储单元之外的所有存储单元重新组成新的存储阵列,从而提供数据存储空间。
例如,存储阵列的总数为M个,每个存储阵列都包括N+1个存储单元,其中包括1个用于存储校验数据的存储单元和N个用于存储数据的存储单元,因此,该M个存储阵列总共可以提供M*N个存储单元大小的数据存储空间。当某个存储阵列的某个存储单元出现错误时,记录该出现错误的存储单元的阵列信息后重组新的存储阵列,可以提供M*N-1个存储单元大小的数据存储空间。如果有K个存储单元出现错误,则记录该K个出现错误的存储单元的阵列信息后重组新的存储阵列,可以提供M*N-K个存储单元大小的数据存储空间。具体的,如果M=100,N=10,则M个存储阵列,每个存储阵列包括11个存储单元,其中包括1个用于存储校验数据的存储单元和10个用于存储数据的存储单元,从而可以提供100*10=1000个存储单元大小的数据存储空间。当某一个存储单元出现错误时,则仍然可以提供1000-1=999个存储单元大小的数据存储空间,与现有技术只能提供(100-1)*10=990个存储单元大小的数据存储空间相比,极大地提高了存储单元的利用率,延长了存储阵列的使用寿命。
203:当执行写操作时,根据记录的阵列信息判断当前待写入的存储单元是否为已记录的出现错误的存储单元,如果否,则向该存储单元写入数据;
204:当对已写入数据的存储单元执行读操作时,如果发生读取出错,则根据记录的阵列信息将重建所需存储单元的数据均读出,通过校验数据反向恢复出发生读取出错的存储单元中的数据。
本实施例提供的上述方法,通过预先为多个存储阵列创建阵列信息结构,其中,每一个存储阵列都包括多个存储单元;当某个存储阵列中有存储单元出现无法继续使用的错误时,在该存储阵列对应的阵列信息结构中记录出现错误的存储单元的信息;当执行写操作时,根据记录的阵列信息对所述多个存储阵列中除所述出现错误的存储单元以外的存储单元执行写操作;当对已写入数据的存储单元执行读操作时,如果发生读取出错,则根据记录的阵列信息对发生读取出错的存储单元中的数据进行重建;在保证存储数据的可靠性并且不降低性能的前提下,实现了存储阵列的动态管理,存储阵列可以在系统运行过程中动态更新组成单元,当有存储单元出错以后,其所在阵列的其他单元可以重组成新的存储阵列,从而能够达到充分利用所有存储单元的目的,极大的提高了存储阵列的使用效率,延长存储系统的使用寿命。
图3是根据本申请另一个实施例的存储阵列的动态管理装置结构图。参见图3,该装置包括:
设置模块301,其配置成预先为多个存储阵列创建阵列信息结构,其中,每一个存储阵列都包括多个存储单元;
记录模块302,其配置成当某个存储阵列中有存储单元出现无法继续使用的错误时,在该存储阵列对应的阵列信息结构中记录出现错误的存储单元的信息;
写模块303,其配置成当执行写操作时,根据记录的阵列信息对多个存储阵列中除出现错误的存储单元以外的存储单元执行写操作;
读模块304,其配置成当对已写入数据的存储单元执行读操作时,如果发生读取出错,则根据记录的阵列信息对发生读取出错的存储单元中的数据进行重建。
本实施例中,可选的,写模块具体配置成:
当执行写操作时,根据记录的阵列信息判断当前待写入的存储单元是否为已记录的出现错误的存储单元,如果否,则向该存储单元写入数据。
本实施例中,可选的,读模块具体配置成:
当对已写入数据的存储单元执行读操作时,如果发生读取出错,则根据记录的阵列信息将重建所需存储单元的数据均读出,通过校验数据反向恢复出发生读取出错的存储单元中的数据。
本实施例中,可选的,记录模块具体配置成:
当某个存储阵列中有存储单元出现无法继续使用的错误时,在该存储阵列对应的阵列信息结构中记录出现错误的存储单元的序号,或同时记录出现错误的存储单元的序号和个数。
本实施例中,可选的,记录模块还配置成:
当检测到某个存储阵列中有存储单元出现写错误、擦错误或者读错误次数超过指定阈值时,确定该存储单元出现无法继续使用的错误。
本实施例提供的上述装置,可以执行上述任一方法实施例提供的方法,详细过程详见方法实施例中的描述,此处不再赘述。
本实施例提供的上述装置,通过预先为多个存储阵列创建阵列信息结构,其中,每一个存储阵列都包括多个存储单元;当某个存储阵列中有存储单元出现无法继续使用的错误时,在该存储阵列对应的阵列信息结构中记录出现错误的存储单元的信息;当执行写操作时,根据记录的阵列信息对所述多个存储阵列中除所述出现错误的存储单元以外的存储单元执行写操作;当对已写入数据的存储单元执行读操作时,如果发生读取出错,则根据记录的阵列信息对发生读取出错的存储单元中的数据进行重建;在保证存储数据的可靠性并且不降低性能的前提下,实现了存储阵列的动态管理,存储阵列可以在系统运行过程中动态更新组成单元,当有存储单元出错以后,其所在阵列的其他单元可以重组成新的存储阵列,从而能够达到充分利用所有存储单元的目的,极大的提高了存储阵列的使用效率,延长存储系统的使用寿命。
根据下文结合附图对本申请的具体实施例的详细描述,本领域技术人员将会更加明了本申请的上述以及其他目的、优点和特征。
本申请实施例还提供了一种计算设备,参照图4,该计算设备包括存储器1120、处理器1110和存储在所述存储器1120内并能由所述处理器1110运行的计算机程序,该计算机程序存储于存储器1120中的用于程序代码的空间1130,该计算机程序在由处理器1110执行时实现用于执行任一项根据本发明的方法步骤1131。
本申请实施例还提供了一种计算机可读存储介质。参照图5,该计算机可读存储介质包括用于程序代码的存储单元,该存储单元设置有用于执行根据本发明的方法步骤的程序1131′,该程序被处理器执行。
本申请实施例还提供了一种包含指令的计算机程序产品。当该计算机程序产品在计算机上运行时,使得计算机执行根据本发明的方法步骤。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、获取其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令处理器完成,所述的程序可以存储于计算机可读存储介质中,所述存储介质是非短暂性(英文:non-transitory)介质,例如随机存取存储器,只读存储器,快闪存储器,硬盘,固态硬盘,磁带(英文:magnetic tape),软盘(英文:floppy disk),光盘(英文:optical disc)及其任意组合。
以上所述,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
Claims (8)
1.一种存储阵列的动态管理方法,包括:
预先为多个存储阵列创建阵列信息结构,其中,每一个存储阵列都包括多个存储单元;
当某个存储阵列中有存储单元出现无法继续使用的错误时,在该存储阵列对应的阵列信息结构中记录出现错误的存储单元的信息;
当执行写操作时,根据记录的阵列信息对所述多个存储阵列中除所述出现错误的存储单元以外的存储单元执行写操作;
当对已写入数据的存储单元执行读操作时,如果发生读取出错,则根据记录的阵列信息将重建所需存储单元的数据均读出,通过校验数据反向恢复出所述发生读取出错的存储单元中的数据;
记录出现错误的存储单元后,将所述多个存储阵列中除出现错误的存储单元之外的所有存储单元重新组成新的存储阵列。
2.根据权利要求1所述的方法,其特征在于,当执行写操作时,根据记录的阵列信息对所述多个存储阵列中除所述出现错误的存储单元以外的存储单元执行写操作,包括:
当执行写操作时,根据记录的阵列信息判断当前待写入的存储单元是否为已记录的出现错误的存储单元,如果否,则向该存储单元写入数据。
3.根据权利要求1所述的方法,其特征在于,当某个存储阵列中有存储单元出现无法继续使用的错误时,在该存储阵列对应的阵列信息结构中记录出现错误的存储单元的信息,包括:
当某个存储阵列中有存储单元出现无法继续使用的错误时,在该存储阵列对应的阵列信息结构中记录出现错误的存储单元的序号,或同时记录出现错误的存储单元的序号和个数。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述方法还包括:
当检测到某个存储阵列中有存储单元出现写错误、擦错误或者读错误次数超过指定阈值时,确定该存储单元出现无法继续使用的错误。
5.一种存储阵列的动态管理装置,包括:
设置模块,其配置成预先为多个存储阵列创建阵列信息结构,其中,每一个存储阵列都包括多个存储单元;
记录模块,其配置成当某个存储阵列中有存储单元出现无法继续使用的错误时,在该存储阵列对应的阵列信息结构中记录出现错误的存储单元的信息;
写模块,其配置成当执行写操作时,根据记录的阵列信息对所述多个存储阵列中除所述出现错误的存储单元以外的存储单元执行写操作;
读模块,其配置成当对已写入数据的存储单元执行读操作时,如果发生读取出错,则根据记录的阵列信息将重建所需存储单元的数据均读出,通过校验数据反向恢复出所述发生读取出错的存储单元中的数据;
重组模块,其配置用于记录出现错误的存储单元后,将所述多个存储阵列中除出现错误的存储单元之外的所有存储单元重新组成新的存储阵列。
6.根据权利要求5所述的装置,其特征在于,所述写模块具体配置成:
当执行写操作时,根据记录的阵列信息判断当前待写入的存储单元是否为已记录的出现错误的存储单元,如果否,则向该存储单元写入数据。
7.根据权利要求5所述的装置,其特征在于,所述记录模块具体配置成:
当某个存储阵列中有存储单元出现无法继续使用的错误时,在该存储阵列对应的阵列信息结构中记录出现错误的存储单元的序号,或同时记录出现错误的存储单元的序号和个数。
8.根据权利要求5-7中任一项所述的装置,其特征在于,所述记录模块还配置成:
当检测到某个存储阵列中有存储单元出现写错误、擦错误或者读错误次数超过指定阈值时,确定该存储单元出现无法继续使用的错误。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201911295057.8A CN111158589B (zh) | 2019-12-16 | 2019-12-16 | 存储阵列的动态管理方法和装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201911295057.8A CN111158589B (zh) | 2019-12-16 | 2019-12-16 | 存储阵列的动态管理方法和装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN111158589A CN111158589A (zh) | 2020-05-15 |
| CN111158589B true CN111158589B (zh) | 2023-10-20 |
Family
ID=70557211
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201911295057.8A Active CN111158589B (zh) | 2019-12-16 | 2019-12-16 | 存储阵列的动态管理方法和装置 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN111158589B (zh) |
Citations (24)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH08147112A (ja) * | 1994-11-21 | 1996-06-07 | Fujitsu Ltd | ディスクアレイ装置のエラー回復装置 |
| CN1270345A (zh) * | 1999-04-08 | 2000-10-18 | 英业达股份有限公司 | 在文字档案中显示不同的文字格式的控制方法 |
| JP2002169660A (ja) * | 2000-09-19 | 2002-06-14 | Matsushita Electric Ind Co Ltd | データ記憶アレイ装置、その制御方法、プログラム記録媒体及びプログラム |
| CN1670682A (zh) * | 2004-03-15 | 2005-09-21 | 华为技术有限公司 | 一种数据重组方法 |
| CN102360568A (zh) * | 2011-08-24 | 2012-02-22 | 北京兆易创新科技有限公司 | 一种并行异步存储器及其数据读取方法 |
| CN102483952A (zh) * | 2009-11-06 | 2012-05-30 | 株式会社东芝 | 存储系统 |
| CN103092531A (zh) * | 2013-01-21 | 2013-05-08 | 中国科学院苏州纳米技术与纳米仿生研究所 | 一种消除固态存储系统读取错误的方法 |
| CN103294957A (zh) * | 2013-05-06 | 2013-09-11 | 北京赛思信安技术有限公司 | 支持重复数据删除文件系统中数据更新时的数据保护方法 |
| CN103309775A (zh) * | 2013-07-03 | 2013-09-18 | 苏州科达科技股份有限公司 | 一种高可靠磁盘阵列的容错方法 |
| WO2015188014A1 (en) * | 2014-06-04 | 2015-12-10 | Pure Storage, Inc. | Automatically reconfiguring a storage memory topology |
| CN105183590A (zh) * | 2015-08-31 | 2015-12-23 | 安徽欧迈特数字技术有限责任公司 | 一种磁盘阵列的容错处理方法 |
| CN105512337A (zh) * | 2015-12-31 | 2016-04-20 | 联想(北京)有限公司 | 一种数据管理方法及存储装置 |
| CN106981315A (zh) * | 2017-03-10 | 2017-07-25 | 记忆科技(深圳)有限公司 | 一种固态硬盘坏块识别的方法 |
| CN107015919A (zh) * | 2017-04-13 | 2017-08-04 | 济南浪潮高新科技投资发展有限公司 | Nand‑flash存储阵列Mapping管理方法 |
| KR20170099161A (ko) * | 2016-02-23 | 2017-08-31 | 에스케이텔레콤 주식회사 | 빠른 데이터 복원을 위한 데이터 읽기 또는 쓰기 방법 |
| CN107168650A (zh) * | 2017-05-10 | 2017-09-15 | 合肥联宝信息技术有限公司 | 一种对bios的存储器中的数据的处理方法及装置 |
| CN107168817A (zh) * | 2016-03-07 | 2017-09-15 | 华为技术有限公司 | 应用于存储阵列的数据修复方法与装置及存储设备 |
| CN107195329A (zh) * | 2017-05-17 | 2017-09-22 | 西安紫光国芯半导体有限公司 | 在读操作时纠正dram中存储阵列的错误的方法以及dram |
| CN107590031A (zh) * | 2016-07-07 | 2018-01-16 | 高丽大学校产学协力团 | 存储器管理系统及其方法 |
| CN107678694A (zh) * | 2017-10-17 | 2018-02-09 | 深圳大普微电子科技有限公司 | Raid条带重建方法及固态盘 |
| CN108351819A (zh) * | 2015-10-28 | 2018-07-31 | 净睿存储股份有限公司 | 动态调整存储设备的错误校正作用等级 |
| CN108614664A (zh) * | 2016-12-09 | 2018-10-02 | 北京京存技术有限公司 | 基于NANDflash的读错误处理方法和装置 |
| CN109992446A (zh) * | 2019-04-12 | 2019-07-09 | 苏州浪潮智能科技有限公司 | 一种固态硬盘纠错方法及相关装置 |
| CN110413454A (zh) * | 2018-04-28 | 2019-11-05 | 华为技术有限公司 | 基于存储阵列的数据重建方法、装置及存储介质 |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP1191442A2 (en) * | 2000-09-19 | 2002-03-27 | Matsushita Electric Industrial Co., Ltd. | Data storage array apparatus and operating method for storing error information without delay in data access |
| JP5268710B2 (ja) * | 2009-02-27 | 2013-08-21 | 株式会社東芝 | 半導体記憶装置 |
| JP6142860B2 (ja) * | 2014-11-05 | 2017-06-07 | 日本電気株式会社 | ディスクアレイ装置、ディスク制御装置、ソリッドステートドライブ、ディスク制御方法、及びそのためのプログラム |
-
2019
- 2019-12-16 CN CN201911295057.8A patent/CN111158589B/zh active Active
Patent Citations (24)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH08147112A (ja) * | 1994-11-21 | 1996-06-07 | Fujitsu Ltd | ディスクアレイ装置のエラー回復装置 |
| CN1270345A (zh) * | 1999-04-08 | 2000-10-18 | 英业达股份有限公司 | 在文字档案中显示不同的文字格式的控制方法 |
| JP2002169660A (ja) * | 2000-09-19 | 2002-06-14 | Matsushita Electric Ind Co Ltd | データ記憶アレイ装置、その制御方法、プログラム記録媒体及びプログラム |
| CN1670682A (zh) * | 2004-03-15 | 2005-09-21 | 华为技术有限公司 | 一种数据重组方法 |
| CN102483952A (zh) * | 2009-11-06 | 2012-05-30 | 株式会社东芝 | 存储系统 |
| CN102360568A (zh) * | 2011-08-24 | 2012-02-22 | 北京兆易创新科技有限公司 | 一种并行异步存储器及其数据读取方法 |
| CN103092531A (zh) * | 2013-01-21 | 2013-05-08 | 中国科学院苏州纳米技术与纳米仿生研究所 | 一种消除固态存储系统读取错误的方法 |
| CN103294957A (zh) * | 2013-05-06 | 2013-09-11 | 北京赛思信安技术有限公司 | 支持重复数据删除文件系统中数据更新时的数据保护方法 |
| CN103309775A (zh) * | 2013-07-03 | 2013-09-18 | 苏州科达科技股份有限公司 | 一种高可靠磁盘阵列的容错方法 |
| WO2015188014A1 (en) * | 2014-06-04 | 2015-12-10 | Pure Storage, Inc. | Automatically reconfiguring a storage memory topology |
| CN105183590A (zh) * | 2015-08-31 | 2015-12-23 | 安徽欧迈特数字技术有限责任公司 | 一种磁盘阵列的容错处理方法 |
| CN108351819A (zh) * | 2015-10-28 | 2018-07-31 | 净睿存储股份有限公司 | 动态调整存储设备的错误校正作用等级 |
| CN105512337A (zh) * | 2015-12-31 | 2016-04-20 | 联想(北京)有限公司 | 一种数据管理方法及存储装置 |
| KR20170099161A (ko) * | 2016-02-23 | 2017-08-31 | 에스케이텔레콤 주식회사 | 빠른 데이터 복원을 위한 데이터 읽기 또는 쓰기 방법 |
| CN107168817A (zh) * | 2016-03-07 | 2017-09-15 | 华为技术有限公司 | 应用于存储阵列的数据修复方法与装置及存储设备 |
| CN107590031A (zh) * | 2016-07-07 | 2018-01-16 | 高丽大学校产学协力团 | 存储器管理系统及其方法 |
| CN108614664A (zh) * | 2016-12-09 | 2018-10-02 | 北京京存技术有限公司 | 基于NANDflash的读错误处理方法和装置 |
| CN106981315A (zh) * | 2017-03-10 | 2017-07-25 | 记忆科技(深圳)有限公司 | 一种固态硬盘坏块识别的方法 |
| CN107015919A (zh) * | 2017-04-13 | 2017-08-04 | 济南浪潮高新科技投资发展有限公司 | Nand‑flash存储阵列Mapping管理方法 |
| CN107168650A (zh) * | 2017-05-10 | 2017-09-15 | 合肥联宝信息技术有限公司 | 一种对bios的存储器中的数据的处理方法及装置 |
| CN107195329A (zh) * | 2017-05-17 | 2017-09-22 | 西安紫光国芯半导体有限公司 | 在读操作时纠正dram中存储阵列的错误的方法以及dram |
| CN107678694A (zh) * | 2017-10-17 | 2018-02-09 | 深圳大普微电子科技有限公司 | Raid条带重建方法及固态盘 |
| CN110413454A (zh) * | 2018-04-28 | 2019-11-05 | 华为技术有限公司 | 基于存储阵列的数据重建方法、装置及存储介质 |
| CN109992446A (zh) * | 2019-04-12 | 2019-07-09 | 苏州浪潮智能科技有限公司 | 一种固态硬盘纠错方法及相关装置 |
Non-Patent Citations (2)
| Title |
|---|
| 刘政林 ; 胡爽 ; 林木 ; 龚明杨 ; .一种新型的MLC NAND Flash错误检测方法.华中科技大学学报(自然科学版).2018,46(08),66-70. * |
| 肖艺 ; 鲁华祥 ; 陈刚 ; 陈旭 ; .基于仿生学的多层自适应容错重构阵列研究.仪器仪表学报.2016,37(02),437-445. * |
Also Published As
| Publication number | Publication date |
|---|---|
| CN111158589A (zh) | 2020-05-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10705932B2 (en) | Method, device and computer program product for managing a storage system | |
| CN108269604B (zh) | 用于读取干扰检测以及处理的方法和装置 | |
| EP3072134B1 (en) | Defect management policies for nand flash memory | |
| CN112486725B (zh) | 一种对压缩数据进行纠错编码的方法和装置 | |
| US9798620B2 (en) | Systems and methods for non-blocking solid-state memory | |
| US10020072B2 (en) | Detect developed bad blocks in non-volatile memory devices | |
| US20200133772A1 (en) | Redistributing data across drives of a storage array based on drive health metrics | |
| US12512177B2 (en) | Defective memory unit screening in a memory system | |
| CN111813591B (zh) | Nand Flash的数据纠错方法、装置、电子设备及存储介质 | |
| CN107729174B (zh) | 存储器装置、其存储数据的方法以及其控制器 | |
| CN114730247B (zh) | 具有数据的最小写入大小的存储设备 | |
| US20170115900A1 (en) | Dummy page insertion for flexible page retirement in flash memory storing multiple bits per memory cell | |
| US9171629B1 (en) | Storage device, memory controller and memory control method | |
| CN107977285A (zh) | 一种纠删码存储机制的数据修改方法、装置及介质 | |
| KR20160075001A (ko) | 플래시 메모리 시스템 동작 방법 | |
| CN111158589B (zh) | 存储阵列的动态管理方法和装置 | |
| CN105095352A (zh) | 应用于分布式系统的数据处理方法及装置 | |
| CN104461379A (zh) | 提高nand闪存的稳定性的方法和nand闪存 | |
| CN112486416A (zh) | 数据处理方法、装置、存储介质及处理器 | |
| CN103853666B (zh) | 存储器、其存储控制器与数据写入方法 | |
| US11934264B2 (en) | ECC parity biasing for Key-Value data storage devices | |
| US11204834B1 (en) | Implementation of keeping data integrity in multiple dimensions | |
| CN117033065A (zh) | 一种动态更新固态硬盘llr的方法及系统 | |
| CN114637465A (zh) | 一种基于flash存储器的数据存储方法 | |
| US20190079696A1 (en) | Split Page Queue Buffer Management For Solid State Storage Drives |
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 | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |