CN111158589B - Dynamic management method and device for storage array - Google Patents

Dynamic management method and device for storage array Download PDF

Info

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
Application number
CN201911295057.8A
Other languages
Chinese (zh)
Other versions
CN111158589A (en
Inventor
李向荣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Green Crystal Semiconductor Technology Beijing Co ltd
Original Assignee
Green Crystal Semiconductor Technology Beijing Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Green Crystal Semiconductor Technology Beijing Co ltd filed Critical Green Crystal Semiconductor Technology Beijing Co ltd
Priority to CN201911295057.8A priority Critical patent/CN111158589B/en
Publication of CN111158589A publication Critical patent/CN111158589A/en
Application granted granted Critical
Publication of CN111158589B publication Critical patent/CN111158589B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-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

The application discloses a dynamic management method and device of a storage array, and relates to the field of storage arrays. The method comprises the following steps: creating an array information structure for a plurality of storage arrays in advance, wherein each storage array comprises a plurality of storage units; when a storage unit in a certain storage array has errors which cannot be used continuously, recording information of the storage unit with the errors in an array information structure corresponding to the storage array; when performing a write operation, performing a write operation on memory cells other than the memory cell in which the error occurred in the plurality of memory arrays according to the recorded array information; when a read operation is performed on a memory cell to which data has been written, if a read error occurs, the data in the memory cell to which the read error occurs is reconstructed according to the recorded array information. The device comprises: the device comprises a setting module, a recording module, a writing module and a reading module. The application realizes the dynamic management of the memory array and can achieve the purpose of fully utilizing the memory cells.

Description

Dynamic management method and device for storage array
Technical Field
The present application relates to the field of storage arrays, and in particular, to a method and apparatus for dynamically managing a storage array.
Background
The NAND Flash memory is a Flash memory, and a nonlinear macro-unit mode is adopted in the NAND Flash memory, so that a cheap and effective solution is provided for the realization of a solid-state large-capacity memory. The NAND Flash memory has the advantages of larger capacity, high rewriting speed and the like, and is suitable for storing a large amount of data, so that the NAND Flash memory is more and more widely applied in the industry. In order to enhance the reliability of NAND Flash memory data without degrading the performance, it is currently common practice that, among a plurality of NAND Flash chips, a plurality of Block memory arrays are collectively composed of blocks (blocks) for storing data of each of the chips, and a data storage space is provided by the composed plurality of Block memory arrays. For example, there are n+1 NAND Flash chips, each chip having M blocks, which may constitute M block memory arrays having n+1 blocks. Wherein 1 block in each block storage array is used for storing check data, and N blocks are used for storing data. The n+1 NAND Flash chips can provide data storage space with a size of m×n blocks.
However, in the use process of the block storage array, if one of the blocks has an error, the block storage array where the error block is located is discarded, which directly results in that the whole block storage array where the error block is located cannot be used, so that the storage space available for storing data is reduced, and finally, the number of the blocks is insufficient and cannot reach the size of the storage space set by the storage system. For example, in the above-mentioned M block storage arrays having n+1 blocks, when 1 block in a certain block storage array has an error, the block storage array in which the block is located cannot be used continuously, and the block storage array becomes M-1, so that only a data storage space of (M-1) N blocks is provided.
Disclosure of Invention
The present application aims to overcome or at least partially solve or alleviate the above-mentioned problems.
According to one aspect of the present application, there is provided a dynamic management method of a storage array, including:
creating an array information structure for a plurality of storage arrays in advance, wherein each storage array comprises a plurality of storage units;
when a storage unit in a certain storage array has errors which cannot be used continuously, recording information of the storage unit with the errors in an array information structure corresponding to the storage array;
when the write operation is executed, executing the write operation to the storage units except the storage unit with the error in the plurality of storage arrays according to the recorded array information;
when a read operation is performed on a memory cell to which data has been written, if a read error occurs, the data in the memory cell to which the read error occurs is reconstructed according to the recorded array information.
Optionally, when performing the writing operation, performing the writing operation on the storage units except the storage unit with the error in the plurality of storage arrays according to the recorded array information, including:
when the writing operation is executed, whether the storage unit to be written is the recorded storage unit with errors or not is judged according to the recorded array information, and if not, the data is written into the storage unit.
Optionally, when performing a read operation on a storage unit to which data has been written, if a read error occurs, reconstructing data in the storage unit to which the read error occurs according to the recorded array information, including:
when the read operation is executed on the storage unit with the written data, if the read error occurs, the data of the storage unit required by reconstruction is read out according to the recorded array information, and the data in the storage unit with the read error is reversely recovered through the verification data.
Optionally, when an error occurs in a memory cell in a certain memory array, recording information of the memory cell in which the error occurs in an array information structure corresponding to the memory array, where the method includes:
when a storage unit in a certain storage array has errors which cannot be used continuously, the serial numbers of the storage units with errors are recorded in the array information structure corresponding to the storage array, or the serial numbers and the numbers of the storage units with errors are recorded at the same time.
Optionally, the method further comprises:
when detecting that a write error, an erase error or a read error number exceeds a specified threshold value in a memory cell in a certain memory array, determining that the memory cell has an error which cannot be used continuously.
According to another aspect of the present application, there is provided a dynamic management apparatus for a storage array, comprising:
a setting module configured to create an array information structure for a plurality of storage arrays in advance, wherein each storage array includes a plurality of storage units;
a recording module configured to record information of a memory cell in which an error occurs in an array information structure corresponding to a certain memory array when the memory cell in the certain memory array has an error in which the memory cell cannot be used continuously;
a write module configured to perform a write operation on storage units other than the error-occurred storage unit in the plurality of storage arrays according to the recorded array information when performing the write operation;
and a read module configured to reconstruct data in the memory cell in which the read error occurred according to the recorded array information if the read error occurred when the read operation is performed on the memory cell in which the data has been written.
Optionally, the writing module is specifically configured to:
when the writing operation is executed, whether the storage unit to be written is the recorded storage unit with errors or not is judged according to the recorded array information, and if not, the data is written into the storage unit.
Optionally, the reading module is specifically configured to:
when the read operation is executed on the storage unit with the written data, if the read error occurs, the data of the storage unit required by reconstruction is read out according to the recorded array information, and the data in the storage unit with the read error is reversely recovered through the verification data.
Optionally, the recording module is specifically configured to:
when a storage unit in a certain storage array has errors which cannot be used continuously, the serial numbers of the storage units with errors are recorded in the array information structure corresponding to the storage array, or the serial numbers and the numbers of the storage units with errors are recorded at the same time.
Optionally, the recording module is further configured to:
when detecting that a write error, an erase error or a read error number exceeds a specified threshold value in a memory cell in a certain memory array, determining that the memory cell has an error which cannot be used continuously.
According to yet another aspect of the present application there is provided a computing device comprising a memory, a processor and a computer program stored in the memory and executable by the processor, wherein the processor implements the method as described above when executing the computer program.
According to a further aspect of the present application there is provided a computer readable storage medium, preferably a non-volatile readable storage medium, having stored therein a computer program which when executed by a processor implements a method as described above.
According to yet another aspect of the present application, there is provided a computer program product comprising computer readable code which, when executed by a computer device, causes the computer device to perform the above-described method.
According to the technical scheme, an array information structure is established for a plurality of storage arrays in advance, wherein each storage array comprises a plurality of storage units; when a storage unit in a certain storage array has errors which cannot be used continuously, recording information of the storage unit with the errors in an array information structure corresponding to the storage array; when the write operation is executed, executing the write operation to the storage units except the storage unit with the error in the plurality of storage arrays according to the recorded array information; when a read operation is performed on a storage unit in which data is written, if a read error occurs, reconstructing the data in the storage unit in which the read error occurs according to the recorded array information; on the premise of ensuring the reliability of stored data and not reducing the performance, the dynamic management of the storage array is realized, the storage array can dynamically update the component units in the system operation process, and after the storage unit goes wrong, other units of the array where the storage unit is positioned can be recombined into a new storage array, so that the purpose of fully utilizing all the storage units can be achieved, the use efficiency of the storage array is greatly improved, and the service life of the storage system is prolonged.
The above, as well as additional objectives, advantages, and features of the present application will become apparent to those skilled in the art from the following detailed description of a specific embodiment of the present application when read in conjunction with the accompanying drawings.
Drawings
Some specific embodiments of the application will be described in detail hereinafter by way of example and not by way of limitation with reference to the accompanying drawings. The same reference numbers will be used throughout the drawings to refer to the same or like parts or portions. It will be appreciated by those skilled in the art that the drawings are not necessarily drawn to scale. In the accompanying drawings:
FIG. 1 is a flow chart of a method of dynamic management of a storage array according to one embodiment of the application;
FIG. 2 is a flow chart of a method of dynamic management of a storage array according to another embodiment of the application;
FIG. 3 is a block diagram of a dynamic management device of a storage array according to another embodiment of the present application;
FIG. 4 is a block diagram of a computing device according to another embodiment of the application;
fig. 5 is a block diagram of a computer-readable storage medium according to another embodiment of the present application.
Detailed Description
The embodiment of the application relates to a dynamic management method and a dynamic management device for a storage array, which can be applied to a system which uses a plurality of storage units to form the storage array. Wherein the memory cells include, but are not limited to, NAND flash blocks. The storage array includes a plurality of storage units for storing data and a plurality of storage units for storing parity data, and the number of storage units for storing parity data may be one or may be plural, and is not particularly limited.
FIG. 1 is a flow chart of a method for dynamic management of a storage array according to one embodiment of the application. Referring to fig. 1, the method includes:
101: creating an array information structure for a plurality of storage arrays in advance, wherein each storage array comprises a plurality of storage units;
102: when a storage unit in a certain storage array has errors which cannot be used continuously, recording information of the storage unit with the errors in an array information structure corresponding to the storage array;
103: when performing a write operation, performing a write operation on memory cells other than the memory cell in which the error occurred in the plurality of memory arrays according to the recorded array information;
104: when a read operation is performed on a memory cell to which data has been written, if a read error occurs, the data in the memory cell to which the read error occurs is reconstructed according to the recorded array information.
In this embodiment, optionally, when performing the write operation, performing the write operation on the memory cells except for the memory cell having the error in the plurality of memory arrays according to the recorded array information includes:
when the writing operation is executed, whether the storage unit to be written is the recorded storage unit with errors or not is judged according to the recorded array information, and if not, the data is written into the storage unit.
In this embodiment, optionally, when performing a read operation on a storage unit to which data has been written, if a read error occurs, reconstructing data in the storage unit to which the read error occurs according to the recorded array information, including:
when the read operation is executed on the storage unit with the written data, if the read error occurs, the data of the storage unit required by reconstruction is read out according to the recorded array information, and the data in the storage unit with the read error is reversely recovered through the verification data.
In this embodiment, optionally, when an error occurs in a memory cell in a certain memory array, the recording of information of the memory cell in which the error occurs in the array information structure corresponding to the memory array includes:
when a storage unit in a certain storage array has errors which cannot be used continuously, the serial numbers of the storage units with errors are recorded in the array information structure corresponding to the storage array, or the serial numbers and the numbers of the storage units with errors are recorded at the same time.
In this embodiment, optionally, the method further includes:
when detecting that a write error, an erase error or a read error number exceeds a specified threshold value in a memory cell in a certain memory array, determining that the memory cell has an error which cannot be used continuously.
The method provided by the embodiment includes that an array information structure is created for a plurality of storage arrays in advance, wherein each storage array comprises a plurality of storage units; when a storage unit in a certain storage array has errors which cannot be used continuously, recording information of the storage unit with the errors in an array information structure corresponding to the storage array; when the write operation is executed, executing the write operation to the storage units except the storage unit with the error in the plurality of storage arrays according to the recorded array information; when a read operation is performed on a storage unit in which data is written, if a read error occurs, reconstructing the data in the storage unit in which the read error occurs according to the recorded array information; on the premise of ensuring the reliability of stored data and not reducing the performance, the dynamic management of the storage array is realized, the storage array can dynamically update the component units in the system operation process, and after the storage unit goes wrong, other units of the array where the storage unit is positioned can be recombined into a new storage array, so that the purpose of fully utilizing all the storage units can be achieved, the use efficiency of the storage array is greatly improved, and the service life of the storage system is prolonged.
FIG. 2 is a flow chart of a method for dynamic management of a storage array according to another embodiment of the application. Referring to fig. 2, the method includes:
201: creating an array information structure for a plurality of storage arrays in advance, wherein each storage array comprises a plurality of storage units;
in this embodiment, optionally, the plurality of storage arrays is M, where each storage array includes n+1 storage units, and n+1 storage units include 1 storage unit for storing check data and N storage units for storing data. Thus, a management structure may be created that includes M array information, where the sequence numbers of the storage arrays may be denoted as I (i=0, 1,2, …, M-1) and the sequence numbers of the storage units in each storage array may be denoted as J (j=0, 1,2, …, N).
202: when a storage unit in a certain storage array has errors which cannot be used continuously, recording the serial numbers of the storage units with errors in an array information structure corresponding to the storage array, or recording the serial numbers and the numbers of the storage units with errors at the same time;
in this embodiment, optionally, this step may further include:
when detecting that a write error, an erase error or a read error number exceeds a specified threshold value in a memory cell in a certain memory array, determining that the memory cell has an error which cannot be used continuously. The specified threshold may be set to a size according to needs, and is not particularly limited.
For example, in the above-described example of M memory arrays, when an error occurs in the J-th memory cell in the I-th memory array that cannot be used continuously, the sequence number J of the memory cell in which the error occurs is recorded in the I-th array information structure. Further, when there are a plurality of error-occurred memory cells, the number of error-occurred memory cells may be recorded simultaneously, in addition to the serial numbers of the error-occurred memory cells.
In this embodiment, after recording the memory cell with the error, all the memory cells except the memory cell with the error in the plurality of memory arrays may be rearranged into a new memory array, so as to provide a data storage space.
For example, the total number of memory arrays is M, each memory array includes n+1 memory cells, including 1 memory cell for storing check data and N memory cells for storing data, and thus the M memory arrays can provide data storage space of m×n memory cells in total. When an error occurs in a certain memory cell of a certain memory array, the array information of the memory cell with the error is recorded, and then a new memory array is recombined, so that a data memory space with the size of M x N-1 memory cells can be provided. If K memory cells have errors, the array information of the K memory cells with errors is recorded and then a new memory array is recombined, so that data memory spaces with the sizes of M x N-K memory cells can be provided. Specifically, if m=100 and n=10, M storage arrays each include 11 storage units, including 1 storage unit for storing check data and 10 storage units for storing data, so that a data storage space of 100×10=1000 storage units can be provided. When an error occurs in a certain memory cell, a data storage space with the size of 1000-1=999 memory cells can be still provided, and compared with the prior art which only provides a data storage space with the size of (100-1) 10=990 memory cells, the utilization rate of the memory cells is greatly improved, and the service life of the memory array is prolonged.
203: when the writing operation is executed, judging whether the current storage unit to be written is a recorded storage unit with errors according to the recorded array information, and if not, writing data into the storage unit;
204: when the read operation is executed on the storage unit with the written data, if the read error occurs, the data of the storage unit required by reconstruction is read out according to the recorded array information, and the data in the storage unit with the read error is reversely recovered through the verification data.
The method provided by the embodiment includes that an array information structure is created for a plurality of storage arrays in advance, wherein each storage array comprises a plurality of storage units; when a storage unit in a certain storage array has errors which cannot be used continuously, recording information of the storage unit with the errors in an array information structure corresponding to the storage array; when the write operation is executed, executing the write operation to the storage units except the storage unit with the error in the plurality of storage arrays according to the recorded array information; when a read operation is performed on a storage unit in which data is written, if a read error occurs, reconstructing the data in the storage unit in which the read error occurs according to the recorded array information; on the premise of ensuring the reliability of stored data and not reducing the performance, the dynamic management of the storage array is realized, the storage array can dynamically update the component units in the system operation process, and after the storage unit goes wrong, other units of the array where the storage unit is positioned can be recombined into a new storage array, so that the purpose of fully utilizing all the storage units can be achieved, the use efficiency of the storage array is greatly improved, and the service life of the storage system is prolonged.
Fig. 3 is a block diagram of a dynamic management device of a memory array according to another embodiment of the present application. Referring to fig. 3, the apparatus includes:
a setting module 301 configured to create an array information structure for a plurality of storage arrays in advance, wherein each storage array includes a plurality of storage units;
a recording module 302 configured to record information of a memory cell in which an error occurs in an array information structure corresponding to a certain memory array when an error occurs in the memory cell in which the memory cell cannot be used continuously;
a writing module 303 configured to perform a writing operation on a storage unit other than a storage unit in which an error occurs in the plurality of storage arrays according to the recorded array information when performing the writing operation;
and a read module 304 configured to reconstruct data in the memory cells in which the read error occurred according to the recorded array information if the read error occurred when the read operation is performed on the memory cells in which the data has been written.
In this embodiment, optionally, the writing module is specifically configured to:
when the writing operation is executed, whether the storage unit to be written is the recorded storage unit with errors or not is judged according to the recorded array information, and if not, the data is written into the storage unit.
In this embodiment, optionally, the reading module is specifically configured to:
when the read operation is executed on the storage unit with the written data, if the read error occurs, the data of the storage unit required by reconstruction is read out according to the recorded array information, and the data in the storage unit with the read error is reversely recovered through the verification data.
In this embodiment, optionally, the recording module is specifically configured to:
when a storage unit in a certain storage array has errors which cannot be used continuously, the serial numbers of the storage units with errors are recorded in the array information structure corresponding to the storage array, or the serial numbers and the numbers of the storage units with errors are recorded at the same time.
In this embodiment, optionally, the recording module is further configured to:
when detecting that a write error, an erase error or a read error number exceeds a specified threshold value in a memory cell in a certain memory array, determining that the memory cell has an error which cannot be used continuously.
The above device provided in this embodiment may perform the method provided in any one of the above method embodiments, and detailed processes are described in the method embodiments, which are not repeated herein.
The device provided by the embodiment creates an array information structure for a plurality of storage arrays in advance, wherein each storage array comprises a plurality of storage units; when a storage unit in a certain storage array has errors which cannot be used continuously, recording information of the storage unit with the errors in an array information structure corresponding to the storage array; when the write operation is executed, executing the write operation to the storage units except the storage unit with the error in the plurality of storage arrays according to the recorded array information; when a read operation is performed on a storage unit in which data is written, if a read error occurs, reconstructing the data in the storage unit in which the read error occurs according to the recorded array information; on the premise of ensuring the reliability of stored data and not reducing the performance, the dynamic management of the storage array is realized, the storage array can dynamically update the component units in the system operation process, and after the storage unit goes wrong, other units of the array where the storage unit is positioned can be recombined into a new storage array, so that the purpose of fully utilizing all the storage units can be achieved, the use efficiency of the storage array is greatly improved, and the service life of the storage system is prolonged.
The above, as well as additional objectives, advantages, and features of the present application will become apparent to those skilled in the art from the following detailed description of a specific embodiment of the present application when read in conjunction with the accompanying drawings.
Embodiments of the present application also provide a computing device, referring to fig. 4, comprising a memory 1120, a processor 1110 and a computer program stored in said memory 1120 and executable by said processor 1110, the computer program being stored in a space 1130 for program code in the memory 1120, which computer program, when being executed by the processor 1110, is adapted to carry out any of the method steps 1131 according to the present application.
The embodiment of the application also provides a computer readable storage medium. Referring to fig. 5, the computer-readable storage medium includes a storage unit for program code, the storage unit being provided with a program 1131' for performing the method steps according to the present application, the program being executed by a processor.
Embodiments of the present application also provide a computer program product comprising instructions. The computer program product, when run on a computer, causes the computer to perform the method steps according to the application.
In the above embodiments, it may be implemented in whole or in part by software, hardware, firmware, or any combination thereof. When implemented in software, may be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When loaded and executed by a computer, produces a flow or function in accordance with embodiments of the present application, in whole or in part. The computer may be a general purpose computer, a special purpose computer, a computer network, or other programmable apparatus. The computer instructions may be stored in or transmitted from one computer-readable storage medium to another, for example, by wired (e.g., coaxial cable, optical fiber, digital Subscriber Line (DSL)), or wireless (e.g., infrared, wireless, microwave, etc.). The computer readable storage medium may be any available medium that can be accessed by a computer or a data storage device such as a server, data center, etc. that contains an integration of one or more available media. The usable medium may be a magnetic medium (e.g., floppy Disk, hard Disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid State Disk (SSD)), etc.
Those of skill would further appreciate that the various illustrative elements and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both, and that the various illustrative elements and steps are described above generally in terms of function in order to clearly illustrate the interchangeability of hardware and software. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the solution. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present application.
Those of ordinary skill in the art will appreciate that all or some of the steps in implementing the methods of the above embodiments may be implemented by a program that instructs a processor to perform the steps, and the program may be stored in a computer readable storage medium, where the storage medium is a non-transitory (english) medium, such as a random access memory, a read-only memory, a flash memory, a hard disk, a solid state disk, a magnetic tape (english), a floppy disk (english), an optical disc (english), and any combination thereof.
The present application is not limited to the above-mentioned embodiments, and any changes or substitutions that can be easily understood by those skilled in the art within the technical scope of the present application are intended to be included in the scope of the present application. Therefore, the protection scope of the present application should be subject to the protection scope of the claims.

Claims (8)

1. A method of dynamic management of a storage array, comprising:
creating an array information structure for a plurality of storage arrays in advance, wherein each storage array comprises a plurality of storage units;
when a storage unit in a certain storage array has errors which cannot be used continuously, recording information of the storage unit with the errors in an array information structure corresponding to the storage array;
when the write operation is executed, executing the write operation to the storage units except the storage unit with the error in the plurality of storage arrays according to the recorded array information;
when a read operation is executed on a storage unit with written data, if a read error occurs, reading the data of the storage unit required by reconstruction according to the recorded array information, and reversely recovering the data in the storage unit with the read error through checking the data;
after recording the memory cell with error, all the memory cells except the memory cell with error in the memory arrays are recombined into a new memory array.
2. The method of claim 1, wherein performing a write operation to a memory cell of the plurality of memory arrays other than the erroneous memory cell based on the recorded array information when performing the write operation, comprises:
when the writing operation is executed, whether the storage unit to be written is the recorded storage unit with errors or not is judged according to the recorded array information, and if not, the data is written into the storage unit.
3. The method of claim 1, wherein when an error occurs in a memory cell in a certain memory array, recording information of the memory cell in which the error occurs in an array information structure corresponding to the memory array, comprising:
when a storage unit in a certain storage array has errors which cannot be used continuously, the serial numbers of the storage units with errors are recorded in the array information structure corresponding to the storage array, or the serial numbers and the numbers of the storage units with errors are recorded at the same time.
4. A method according to any one of claims 1-3, characterized in that the method further comprises:
when detecting that a write error, an erase error or a read error number exceeds a specified threshold value in a memory cell in a certain memory array, determining that the memory cell has an error which cannot be used continuously.
5. A dynamic management device of a storage array, comprising:
a setting module configured to create an array information structure for a plurality of storage arrays in advance, wherein each storage array includes a plurality of storage units;
a recording module configured to record information of a memory cell in which an error occurs in an array information structure corresponding to a certain memory array when the memory cell in the certain memory array has an error in which the memory cell cannot be used continuously;
a write module configured to perform a write operation on storage units other than the error-occurred storage unit in the plurality of storage arrays according to the recorded array information when performing the write operation;
the reading module is configured to read out the data of the storage unit required to be reconstructed according to the recorded array information if a reading error occurs when the reading operation is performed on the storage unit with the written data, and reversely recovering the data in the storage unit with the reading error through checking the data;
and the reorganization module is configured to reorganize all the storage units except the storage unit with the error in the plurality of storage arrays into a new storage array after the storage unit with the error is recorded.
6. The apparatus of claim 5, wherein the write module is specifically configured to:
when the writing operation is executed, whether the storage unit to be written is the recorded storage unit with errors or not is judged according to the recorded array information, and if not, the data is written into the storage unit.
7. The apparatus of claim 5, wherein the recording module is specifically configured to:
when a storage unit in a certain storage array has errors which cannot be used continuously, the serial numbers of the storage units with errors are recorded in the array information structure corresponding to the storage array, or the serial numbers and the numbers of the storage units with errors are recorded at the same time.
8. The apparatus of any of claims 5-7, wherein the recording module is further configured to:
when detecting that a write error, an erase error or a read error number exceeds a specified threshold value in a memory cell in a certain memory array, determining that the memory cell has an error which cannot be used continuously.
CN201911295057.8A 2019-12-16 2019-12-16 Dynamic management method and device for storage array Active CN111158589B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911295057.8A CN111158589B (en) 2019-12-16 2019-12-16 Dynamic management method and device for storage array

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911295057.8A CN111158589B (en) 2019-12-16 2019-12-16 Dynamic management method and device for storage array

Publications (2)

Publication Number Publication Date
CN111158589A CN111158589A (en) 2020-05-15
CN111158589B true CN111158589B (en) 2023-10-20

Family

ID=70557211

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911295057.8A Active CN111158589B (en) 2019-12-16 2019-12-16 Dynamic management method and device for storage array

Country Status (1)

Country Link
CN (1) CN111158589B (en)

Citations (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08147112A (en) * 1994-11-21 1996-06-07 Fujitsu Ltd Error recovery device for disk array device
CN1270345A (en) * 1999-04-08 2000-10-18 英业达股份有限公司 Control method for displaying different literal formats in literal archives
JP2002169660A (en) * 2000-09-19 2002-06-14 Matsushita Electric Ind Co Ltd Data storage array apparatus, its control method, program recording medium and program
CN1670682A (en) * 2004-03-15 2005-09-21 华为技术有限公司 A data reintegration method
CN102360568A (en) * 2011-08-24 2012-02-22 北京兆易创新科技有限公司 Parallel asynchronous memory and data reading method thereof
CN102483952A (en) * 2009-11-06 2012-05-30 株式会社东芝 Memory system
CN103092531A (en) * 2013-01-21 2013-05-08 中国科学院苏州纳米技术与纳米仿生研究所 Method for removing solid state storage system read errors
CN103294957A (en) * 2013-05-06 2013-09-11 北京赛思信安技术有限公司 Data protection method for file system supporting repeating data deletion during data updating
CN103309775A (en) * 2013-07-03 2013-09-18 苏州科达科技股份有限公司 Fault-tolerance method for high-reliability disk array
WO2015188014A1 (en) * 2014-06-04 2015-12-10 Pure Storage, Inc. Automatically reconfiguring a storage memory topology
CN105183590A (en) * 2015-08-31 2015-12-23 安徽欧迈特数字技术有限责任公司 Disk array fault tolerance processing method
CN105512337A (en) * 2015-12-31 2016-04-20 联想(北京)有限公司 Data management method and storage device
CN106981315A (en) * 2017-03-10 2017-07-25 记忆科技(深圳)有限公司 A kind of solid state hard disc bad block knows method for distinguishing
CN107015919A (en) * 2017-04-13 2017-08-04 济南浪潮高新科技投资发展有限公司 Nand flash storage array Mapping management methods
KR20170099161A (en) * 2016-02-23 2017-08-31 에스케이텔레콤 주식회사 Methods for Providing Data Read or Write for Fast Data Reconstruction
CN107168650A (en) * 2017-05-10 2017-09-15 合肥联宝信息技术有限公司 A kind of processing method and processing device of data in memory to BIOS
CN107168817A (en) * 2016-03-07 2017-09-15 华为技术有限公司 Data recovery method and device and storage device applied to storage array
CN107195329A (en) * 2017-05-17 2017-09-22 西安紫光国芯半导体有限公司 The wrong method and DRAM of storage array in DRAM are corrected in read operation
CN107590031A (en) * 2016-07-07 2018-01-16 高丽大学校产学协力团 Storage management system and its method
CN107678694A (en) * 2017-10-17 2018-02-09 深圳大普微电子科技有限公司 RAID stripe method for reconstructing and solid-state disk
CN108351819A (en) * 2015-10-28 2018-07-31 净睿存储股份有限公司 Dynamic adjusts the error correction function grade of storage device
CN108614664A (en) * 2016-12-09 2018-10-02 北京京存技术有限公司 Read error treating method and apparatus based on NANDflash
CN109992446A (en) * 2019-04-12 2019-07-09 苏州浪潮智能科技有限公司 A kind of solid state hard disk error correction method and relevant apparatus
CN110413454A (en) * 2018-04-28 2019-11-05 华为技术有限公司 Data re-establishing method, device and storage medium based on storage array

Family Cites Families (3)

* Cited by examiner, † Cited by third party
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 (en) * 2009-02-27 2013-08-21 株式会社東芝 Semiconductor memory device
JP6142860B2 (en) * 2014-11-05 2017-06-07 日本電気株式会社 Disk array device, disk control device, solid state drive, disk control method, and program therefor

Patent Citations (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08147112A (en) * 1994-11-21 1996-06-07 Fujitsu Ltd Error recovery device for disk array device
CN1270345A (en) * 1999-04-08 2000-10-18 英业达股份有限公司 Control method for displaying different literal formats in literal archives
JP2002169660A (en) * 2000-09-19 2002-06-14 Matsushita Electric Ind Co Ltd Data storage array apparatus, its control method, program recording medium and program
CN1670682A (en) * 2004-03-15 2005-09-21 华为技术有限公司 A data reintegration method
CN102483952A (en) * 2009-11-06 2012-05-30 株式会社东芝 Memory system
CN102360568A (en) * 2011-08-24 2012-02-22 北京兆易创新科技有限公司 Parallel asynchronous memory and data reading method thereof
CN103092531A (en) * 2013-01-21 2013-05-08 中国科学院苏州纳米技术与纳米仿生研究所 Method for removing solid state storage system read errors
CN103294957A (en) * 2013-05-06 2013-09-11 北京赛思信安技术有限公司 Data protection method for file system supporting repeating data deletion during data updating
CN103309775A (en) * 2013-07-03 2013-09-18 苏州科达科技股份有限公司 Fault-tolerance method for high-reliability disk array
WO2015188014A1 (en) * 2014-06-04 2015-12-10 Pure Storage, Inc. Automatically reconfiguring a storage memory topology
CN105183590A (en) * 2015-08-31 2015-12-23 安徽欧迈特数字技术有限责任公司 Disk array fault tolerance processing method
CN108351819A (en) * 2015-10-28 2018-07-31 净睿存储股份有限公司 Dynamic adjusts the error correction function grade of storage device
CN105512337A (en) * 2015-12-31 2016-04-20 联想(北京)有限公司 Data management method and storage device
KR20170099161A (en) * 2016-02-23 2017-08-31 에스케이텔레콤 주식회사 Methods for Providing Data Read or Write for Fast Data Reconstruction
CN107168817A (en) * 2016-03-07 2017-09-15 华为技术有限公司 Data recovery method and device and storage device applied to storage array
CN107590031A (en) * 2016-07-07 2018-01-16 高丽大学校产学协力团 Storage management system and its method
CN108614664A (en) * 2016-12-09 2018-10-02 北京京存技术有限公司 Read error treating method and apparatus based on NANDflash
CN106981315A (en) * 2017-03-10 2017-07-25 记忆科技(深圳)有限公司 A kind of solid state hard disc bad block knows method for distinguishing
CN107015919A (en) * 2017-04-13 2017-08-04 济南浪潮高新科技投资发展有限公司 Nand flash storage array Mapping management methods
CN107168650A (en) * 2017-05-10 2017-09-15 合肥联宝信息技术有限公司 A kind of processing method and processing device of data in memory to BIOS
CN107195329A (en) * 2017-05-17 2017-09-22 西安紫光国芯半导体有限公司 The wrong method and DRAM of storage array in DRAM are corrected in read operation
CN107678694A (en) * 2017-10-17 2018-02-09 深圳大普微电子科技有限公司 RAID stripe method for reconstructing and solid-state disk
CN110413454A (en) * 2018-04-28 2019-11-05 华为技术有限公司 Data re-establishing method, device and storage medium based on storage array
CN109992446A (en) * 2019-04-12 2019-07-09 苏州浪潮智能科技有限公司 A kind of solid state hard disk error correction method and relevant apparatus

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘政林 ; 胡爽 ; 林木 ; 龚明杨 ; .一种新型的MLC NAND Flash错误检测方法.华中科技大学学报(自然科学版).2018,46(08),66-70. *
肖艺 ; 鲁华祥 ; 陈刚 ; 陈旭 ; .基于仿生学的多层自适应容错重构阵列研究.仪器仪表学报.2016,37(02),437-445. *

Also Published As

Publication number Publication date
CN111158589A (en) 2020-05-15

Similar Documents

Publication Publication Date Title
US10705932B2 (en) Method, device and computer program product for managing a storage system
CN108269604B (en) Method and apparatus for read disturb detection and processing
EP3072134B1 (en) Defect management policies for nand flash memory
US10020072B2 (en) Detect developed bad blocks in non-volatile memory devices
US9798620B2 (en) Systems and methods for non-blocking solid-state memory
US20050028067A1 (en) Data with multiple sets of error correction codes
CN112486725B (en) Method and device for carrying out error correction coding on compressed data
US11430540B2 (en) Defective memory unit screening in a memory system
US20200310645A1 (en) Method and system for online conversion of bad blocks for improvement of performance and longevity in a solid state drive
US10733051B2 (en) Redistributing data across drives of a storage array based on drive health metrics
CN105573681A (en) Method and system for establishing RAID in SSD
US11347653B2 (en) Persistent storage device management
US9171629B1 (en) Storage device, memory controller and memory control method
CN107729174B (en) Memory device, method of storing data thereof, and controller thereof
US20170115900A1 (en) Dummy page insertion for flexible page retirement in flash memory storing multiple bits per memory cell
CN111813591B (en) Data error correction method and device of Nand Flash, electronic equipment and storage medium
CN111158589B (en) Dynamic management method and device for storage array
CN108255634A (en) A kind of method for reading data and device
US10338850B2 (en) Split-page queue buffer management for solid state storage drives
CN113625947B (en) Data error correction method, device, equipment and computer readable storage medium
CN105095352A (en) Data processing method and apparatus applied to distributed system
US20230161666A1 (en) Ecc parity biasing for key-value data storage devices
US11204834B1 (en) Implementation of keeping data integrity in multiple dimensions
US20220149870A1 (en) Content aware decoding using shared data statistics
US11294598B2 (en) Storage devices having minimum write sizes of data

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