Coding and repairing method for improving repairing performance of solid state disk array system

文档序号:1639690 发布日期:2019-12-20 浏览:44次 中文

阅读说明:本技术 一种提升固态硬盘阵列系统修复性能的编码和修复方法 (Coding and repairing method for improving repairing performance of solid state disk array system ) 是由 潘玉彪 侯济恭 林运国 温廷羲 于 2019-09-18 设计创作,主要内容包括:本发明属于计算机固态硬盘阵列存储系统技术领域,公开了一种提升固态硬盘阵列系统修复性能的编码和修复方法,首先针对固态硬盘阵列系统提出利用A个线性无关的编码算法共同保护阵列系统;其次当阵列中一块数据块需要更新时,在编码集里采用与原先不同的编码算法对该数据块以及对应的校验块进行更新,在提供相同可靠性的前提下不会增加额外的存储开销;接着更新操作发生后原先版本的数据被标记为无效,但阵列系统依旧能够利用开放通道固态硬盘的特点找到该被标记为无效的数据块或校验块,并进行数据修复。本发明提出的修复算法将利用被标记为无效的数据块和校验块信息参与数据修复,进而提升修复性能,缩短修复时间。(The invention belongs to the technical field of computer solid state disk array storage systems, and discloses a coding and repairing method for improving the repairing performance of a solid state disk array system, which firstly proposes to jointly protect the array system by utilizing A linear irrelevant coding algorithms aiming at the solid state disk array system; secondly, when a data block in the array needs to be updated, the data block and a corresponding check block are updated in the coding set by adopting a coding algorithm different from the original coding algorithm, so that the extra storage overhead is not increased on the premise of providing the same reliability; and then the data of the original version is marked as invalid after the updating operation occurs, but the array system can still find the data block or the check block marked as invalid by utilizing the characteristics of the open channel solid state disk and carry out data repair. The repair algorithm provided by the invention utilizes the data block and check block information marked as invalid to participate in data repair, thereby improving the repair performance and shortening the repair time.)

1. The coding and repairing method for improving the repairing performance of the solid state disk array system is characterized by comprising the following steps:

setting A linearly independent coding equations for providing guarantee for a solid state disk array system;

when the updating occurs, circularly and alternately using different coding equations to carry out check block coding on the same coding set;

step three, when the data is updated, writing the page address of the old version data into the OOB of the new page;

setting corresponding Bitmap _1 arrays for all the strips of the array, and expressing which one of A coding equations is adopted for coding the corresponding strip in the latest updating through the value of a specific element in the array;

step five, setting corresponding Bitmap _2 arrays for all the strips of the array, and expressing that the corresponding strips are solved by adopting a plurality of coding equations together or a traditional method when being repaired according to the values of specific elements in the data;

step six, when data is written in, the data is written in randomly, check block coding is carried out on the coding set by adopting a plurality of coding equations alternately in sequence, and the check block coding is carried out on the updating by adopting the coding equation used for the last updating after continuous writing;

and step seven, when data is repaired, selecting to use a plurality of coding equations to repair together or a single coding equation to repair according to the values of Bitmap _2 and Bitmap _ 1.

2. The encoding and repairing method for improving repairing performance of the solid state disk array system as claimed in claim 1, wherein in the step one, the solid state disk array system is a RAID5 system formed by N solid state disks, and the system parameter a is set to 2,3 or 4, which indicates that 2,3 or 4 linearly independent encoding algorithms are used to jointly protect the RAID5 array.

3. The encoding and repairing method for improving the repairing performance of the solid state disk array system according to claim 1, wherein the second step specifically comprises: after the coding set is coded by adopting a first coding equation, when a block of data page in the coding set is updated, coding is carried out by adopting a second coding equation; then, if one data page of the coding set is updated, coding is carried out by adopting a first coding equation; different coding equations are cyclically and alternately used for coding the same coding set;

the two coding equations are:

andwherein "+/" is finite field operation, X1/X2/Y1/Y2For encoding the parameters of the equations, in each equation, half of the data have an encoding parameter X1Or X2Half of the data has a coding parameter Y1Or Y2And the two equations are linearly independent.

4. The encoding and repairing method for improving the repairing performance of the solid state disk array system according to claim 1, wherein the third step specifically comprises: the solid state disk array system adopts the solid state disk with an open channel as a bottom storage medium, when a certain data page is updated, the solid state disk array system writes the new version data of the page into a new page, marks the page where the old version data is located invalid, and writes the address of the old version invalid page data into the OOB part of the new version page, so that the solid state disk array system can read the previous version invalid data of the latest version during data restoration, and further accelerate the data restoration process.

5. The encoding and repairing method for improving the repairing performance of the solid state disk array system according to claim 1, wherein the fourth step specifically comprises: using a Bitmap _1 array structure, wherein the array size of Bitmap _1 is the number of coding sets in the array, and the Bitmap _1 array structure corresponds to the coding sets in the array one by one;

if the corresponding position is 0, the coding set is coded by adopting a first coding equation;

if the corresponding position is 1, the coding set is coded by adopting a second coding equation; bitmap _1[0] ═ 0, meaning that the 0 th encoding set was encoded using the first encoding equation.

6. The encoding and repairing method for improving the repairing performance of the solid state disk array system according to claim 1, wherein the step five specifically comprises:

using a Bitmap _2 array structure, wherein the array size of the Bitmap _2 is the number of coding sets in the array, and the Bitmap _2 array structure corresponds to the coding sets in the array one by one; and if the corresponding position is 0, the data of the coding set is repaired by adopting a traditional method, and if the corresponding position is 1, the data of the coding set is repaired by adopting a method of 2 coding equations.

7. The encoding and repairing method for improving repairing performance of the solid state disk array system as claimed in claim 1, wherein in the sixth step, the writing flow of the data during writing comprises:

1) splitting the write request into requests that are subject to one or more encoding sets;

2) for the write request imported into each encoding set, judging whether the write request is a continuous request?, if so, turning to 3), otherwise, turning to 8);

3) for write requests of a plurality of continuous pages in an encoding set, firstly, setting the corresponding position of a Bitmap _2 array to be 0; namely, if the data of the coding set is to be repaired next, the data is repaired by using a traditional repairing algorithm;

4) judging whether the corresponding position of the Bitmap _1 array is 0?, if so, turning to 5), otherwise, turning to 6);

5) using a first coding equationUpdating the check block of the coding set by using an RRW or RMW method; turning 7);

6) using a second coding equationUpdating the check block of the coding set by using an RRW or RMW method;

7) continuously writing the continuously requested new data pages into the allocated blank pages, and marking a plurality of original pages as invalid; turn 13);

8) for an independent random write request, firstly, setting the corresponding position of a Bitmap _2 array to be 1; if the data of the coding set is to be repaired next, two linearly independent coding equations are used for repairing;

9) judging whether the corresponding position of the Bitmap _1 array is 0?, if so, turning to 10), otherwise, turning to 11);

10) indicating that the previous encoding calculation was performed using the first encoding equation, and therefore the second encoding equation was usedUpdating the check block, and setting the corresponding Bitmap _1 position to 1; turning to 12);

11) indicating that the previous encoding calculation was performed using the second encoding equation, and therefore the first encoding equation was usedUpdating the check block, and setting the corresponding Bitmap _1 position to be 0;

12) allocating space for the page, writing new data, and writing a page address of a previous version at OOB of the new data page; finally, marking the page of the previous version as invalid;

13) the write operation is complete.

8. The encoding and repairing method for improving the repairing performance of the solid state disk array system according to claim 1, wherein in the seventh step, the repairing process during data repairing is as follows:

(1) the system needs to repair a specific block in a certain coding set

(2) Judging whether the corresponding position of Bitmap _2 is 0 or not; if 0, turning to (3); otherwise, turning to (4);

(3) reading other page data of the code set, and repairing by using a traditional repairing method; if the Bitmap _1 corresponding to the coding set is 0, adopting a first coding equationRepairIf the Bitmap _1 corresponding to the coding set is 1, a second coding equation is adoptedRepairTurning (6);

(4) judging the need for repairIf the data block? is a check block or the latest updated data block, go to (3), otherwise, go to (5);

(5) two linearly independent coding equations set by a system are adopted, and invalid page data is utilized to carry out data restoration; specifically, according to

Andforming a linear independent equation set, and reading page data CN,D1,Wherein C isN,D1In order to be an invalid page,is a valid page, andrepairWhereinAll are valid pages;

(6) and (5) completing the repair.

9. A solid state disk array system implementing the encoding and repair method for improving repair performance of a solid state disk array system of claim 1.

10. A computer readable storage medium comprising a computer program which, when run on a computer, causes the computer to execute the encoding and repair method for improving repair performance of a solid state hard disk array system according to any one of claims 1 to 8.

Technical Field

The invention belongs to the technical field of computer solid state disk array storage systems, and particularly relates to a coding and repairing method for improving repairing performance of a solid state disk array system.

Background

Flash-based solid state drives have been widely deployed in servers and data centers. Servers and data centers typically utilize array technology (RAID) to provide reliability to the system and to support a certain number of hard disk failures. Statistically, hard disk errors are not common to large-scale storage systems. When an error occurs, the array system needs to consume extra bandwidth resources to perform data repair work, so that the access performance of a user is influenced; furthermore, if a quick repair is not performed, all data of the system will become unreliable when another hard disk fails and exceeds the number of hard disk failures that the system can tolerate. Therefore, how to improve the repair performance and shorten the repair time becomes a very worthy topic of research in the array system.

The existing solutions are all directed to array systems based on traditional hard disks, and do not consider the inherent physical characteristics of solid state disks, so that there is room for improvement. For example, the solid state disk adopts a remote update strategy, so that a data block marked as invalid exists in the disk; for another example, the current open channel solid state disk makes the solid state disk no longer a black box, and the upper layer system can also see and acquire data on the flash memory chip.

In summary, the problems of the prior art are as follows:

(1) in the prior art, an encoding equation is used for protecting an array, so that a reduced space does not exist in the data reading amount in the repairing process.

(2) In the prior art, a solid state disk array system is not provided, and the repair performance cannot be improved by utilizing an open channel solid state disk and the physical characteristics thereof; and the prior art has long repair time.

The difficulty of solving the technical problems is as follows: how to utilize the physical characteristics of the solid state disk and reduce the data reading amount required in the repairing process, thereby improving the repairing performance. Including designing appropriate data structures and algorithms to take advantage of existing features of solid state drives (i.e., taking advantage of data pages that are invalid but exist inside the solid state drive) to reduce the time required for data repair.

The significance of solving the technical problems is as follows: solid state drives have gradually replaced traditional hard drives as the first choice for underlying storage media in data centers, but hard drive errors are not common for large-scale storage systems. And the invalid page of the solid state disk is utilized, so that the data reading amount required by data restoration can be reduced, the restoration speed is increased, and the restoration bandwidth is improved.

Disclosure of Invention

Aiming at the problems in the prior art, the invention provides a coding and repairing method for improving the repairing performance of a solid state disk array system.

The invention is realized in this way, a coding and repairing method for improving the repairing performance of a solid state disk array system, which provides reliability guarantee for the solid state disk array system by setting A (A is a system parameter) linearly independent coding equations;

when updating occurs, different coding equations are circularly and alternately used for carrying out check block coding on the same coding set in sequence;

when the data is updated, writing the page address of the old version data into the OOB of the new page;

setting a corresponding Bitmap _1 array for all the strips of the array, and expressing which one of A coding equations is adopted for coding the corresponding strip in the latest updating through the value of a specific element in the array;

setting corresponding Bitmap _2 arrays for all the strips of the array, and expressing that the corresponding strips are solved by adopting a plurality of coding equations together or a traditional method when the corresponding strips are repaired according to the values of specific elements in the data;

when data is written in, if the data is written in randomly, check block coding is carried out on the coding set by sequentially and alternately adopting a plurality of coding equations, and if the data is written in continuously, check block coding is carried out on the current updating by adopting the coding equation used for the last updating;

and when data is repaired, selecting to use a plurality of coding equations to repair together or a single coding equation to repair according to the values of Bitmap _2 and Bitmap _ 1.

The method specifically comprises the following steps:

firstly, a solid state disk array system is assumed to be composed of N solid state disks, namely N data pages form a coding set; and a linearly independent coding equations are set to jointly provide reliability guarantee for the array system, wherein a is a system parameter and can be set to 2,3 or 4, and the following description takes a as an example 2.

Assume 2 linearly independent coding equations asAndwherein "+/" is finite field operation, X1/X2/Y1/Y2Are parameters of coding equations in each of which half of the data have a coding parameter of X1Or X2Half of the data has a coding parameter Y1Or;

if the coding set adopts the first coding equation for coding, then when a block of data page in the coding set is updated, the second coding equation is adopted for coding; then, if one data page of the coding set is updated, coding is carried out by adopting a first coding equation; different coding equations are cyclically and alternately used for coding the same coding set;

a Bitmap _1 array structure is used. The array size of Bitmap _1 is the number of coding sets (strips) in the array, and the Bitmap _1 corresponds to the coding sets (strips) one by one; if the corresponding position is 0, the coding set is coded by adopting a first coding equation, and if the corresponding position is 1, the coding set is coded by adopting a second coding equation;

a Bitmap _2 array structure is used. The array size of Bitmap _2 is also the number of coding sets (strips) in the array, and the Bitmap _2 corresponds to the coding sets (strips) one by one; if the corresponding position is 0, the data of the coding set is repaired by adopting a traditional method, and if the corresponding position is 1, the data of the coding set is repaired by adopting a method of 2 coding equations;

when a certain data page is updated, the system writes the new version data of the page into a new page, marks the page where the old version data is located invalid, and writes the address of the old version invalid page data into the OOB part of the new version page, so that the array system can read the previous version invalid data of the latest version during data repair, and further accelerate the data repair process.

Further, the write flow of the coding method for improving the repair performance of the solid state disk array system is as follows:

1) splitting the write request into requests that are subject to one or more encoding sets;

2) for the write request imported into each encoding set, judging whether the write request is a continuous request?, if so, turning to 3), otherwise, turning to 8);

3) for write requests of a plurality of continuous pages in an encoding set, firstly, setting the corresponding position of a Bitmap _2 array to be 0; namely, if the data of the coding set is to be repaired next, the data is repaired by using a traditional repairing algorithm;

4) judging whether the corresponding position of the Bitmap _1 array is 0?, if so, turning to 5), otherwise, turning to 6);

5) using a first coding equationUpdating the check block of the coding set by using an RRW or RMW method; turning 7);

6) using a second coding equationUpdating the check block of the coding set by using an RRW or RMW method;

7) continuously writing the continuously requested new data pages into the allocated blank pages, and marking a plurality of original pages as invalid; turn 13);

8) for an independent random write request, firstly, setting the corresponding position of a Bitmap _2 array to be 1; if the data of the coding set is to be repaired next, two linearly independent coding equations are used for repairing;

9) judging whether the corresponding position of the Bitmap _1 array is 0?, if so, turning to 10), otherwise, turning to 11);

10) show the previous time of useThe coding calculation is performed using a first coding equation, whereby a second coding equation is usedUpdating the check block, and setting the corresponding Bitmap _1 position to 1; turning to 12);

11) indicating that the previous encoding calculation was performed using the second encoding equation, and therefore the first encoding equation was usedUpdating the check block, and setting the corresponding Bitmap _1 position to be 0;

12) allocating space for the page, writing new data, and writing a page address of a previous version at OOB of the new data page; finally, marking the page of the previous version as invalid;

13) the write operation is complete.

Further, the repair process of the coding method for improving the repair performance of the solid state disk array system is as follows:

(1) the system needs to repair a specific block in a certain coding set

(2) Judging whether the corresponding position of Bitmap _2 is 0 or not; if 0, turning to (3); otherwise, turning to (4);

(3) reading other page data (N-1 blocks in total) of the coding set, and repairing by using a traditional repairing method; if the Bitmap _1 corresponding to the coding set is 0, adopting a first coding equationRepairIf the Bitmap _1 corresponding to the coding set is 1, a second coding equation is adoptedRepairTurning (6);

(4) judging the need for repairIf the data block? is a check block or a latest updated data block, if yes, go to (3), otherwise, go to (5);

(5) and (3) performing data restoration by using two linearly independent coding equations set by a system and invalid page data. Specifically, according to

Andforming a linear independent equation set, and reading page data CN,D1,(where the first two are invalid pages and the last two are valid pages), and(all valid pages) repair

(6) And (5) completing the repair.

The invention also aims to provide a solid state disk array system for implementing the coding and repairing method for improving the repairing performance of the solid state disk array system.

Another object of the present invention is to provide a computer-readable storage medium, which includes a computer program, when the computer program runs on a computer, the computer program causes the computer to execute the encoding and repairing method for improving the repairing performance of the solid state disk array system.

Aiming at the solid state disk array system, the invention designs an encoding method and a repair algorithm for improving the repair performance on the premise of not increasing the storage space by utilizing the open channel solid state disk and the physical characteristics thereof. Firstly, aiming at a solid state disk array system, providing a common protection array system by using A (A is a system parameter which can be set and is generally set to 2/3/4) linearly independent coding algorithms; conventional array systems provide protection for the array using only one encoding algorithm, such as RAID-6 using an RDP encoding algorithm or an EVENODD algorithm or an RS encoding algorithm. Secondly, when a data block in the array needs to be updated, the data block and the corresponding check block are updated in the coding set by adopting a coding algorithm different from the original coding algorithm, so that the invention does not increase extra storage overhead on the premise of providing the same reliability. Then, after the update operation occurs, although the original version of data is marked as invalid, the array system can still find the data block or check block marked as invalid by using the characteristics of the open channel solid state disk. Finally, when data restoration occurs, the restoration algorithm provided by the invention utilizes the data block and check block information marked as invalid to participate in data restoration, thereby improving restoration performance and shortening restoration time.

Drawings

Fig. 1 is a write flow chart of an encoding method for improving repair performance of a solid state disk array system according to an embodiment of the present invention.

Fig. 2 is a repair flow chart of an encoding method for improving repair performance of a solid state disk array system according to an embodiment of the present invention.

Fig. 3 is a diagram comparing the number of pages that need to be read for repairing according to the present invention and the number of pages that need to be read according to the conventional method.

Detailed Description

In order to make the objects, technical solutions and advantages of the present invention more apparent, the present invention is further described in detail with reference to the following embodiments. It should be understood that the specific embodiments described herein are merely illustrative of the invention and are not intended to limit the invention.

14页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种NVM芯片可靠性测试系统及测试方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!