CN102521068B - Reconstructing method of solid-state disk array - Google Patents
Reconstructing method of solid-state disk array Download PDFInfo
- Publication number
- CN102521068B CN102521068B CN201110350044.3A CN201110350044A CN102521068B CN 102521068 B CN102521068 B CN 102521068B CN 201110350044 A CN201110350044 A CN 201110350044A CN 102521068 B CN102521068 B CN 102521068B
- Authority
- CN
- China
- Prior art keywords
- data
- solid
- write
- read
- band
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 93
- 238000012545 processing Methods 0.000 claims description 9
- 230000008520 organization Effects 0.000 claims description 6
- 238000012795 verification Methods 0.000 claims description 6
- 230000004083 survival effect Effects 0.000 claims 3
- 230000008929 regeneration Effects 0.000 claims 1
- 238000011069 regeneration method Methods 0.000 claims 1
- 238000010276 construction Methods 0.000 abstract description 5
- 238000003491 array Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 7
- 239000007787 solid Substances 0.000 description 7
- 239000010410 layer Substances 0.000 description 6
- 238000012546 transfer Methods 0.000 description 4
- 238000013403 standard screening design Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000005265 energy consumption Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000001427 coherent effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000035939 shock Effects 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
技术领域 technical field
本发明属于计算机数据存储领域,具体涉及一种固态盘阵列的重建方法。The invention belongs to the field of computer data storage, and in particular relates to a reconstruction method of a solid-state disk array.
背景技术 Background technique
固态硬盘(solid State Driver,SSD)是利用半导体存储芯片来存储数据的装置,没有传统硬盘用于读写的旋转和移动的机械部件,具有存取速度快、能耗低、高随机访问性和抗震性好等特点。在传统磁盘存储系统性能停滞不前的今天,固态盘犹如一朵奇葩绽放在越来越多的商业应用中,解决了高性能数据中心的I/O瓶颈和能耗问题,是目前也是未来存储领域研究的热点和核心。Solid State Drive (SSD) is a device that uses semiconductor memory chips to store data. It does not have the rotating and moving mechanical parts of traditional hard disks for reading and writing. It has fast access speed, low energy consumption, high random access and Good shock resistance and other characteristics. Today, when the performance of traditional disk storage systems is stagnant, solid-state disks are like a wonderful flower blooming in more and more commercial applications, solving the I/O bottleneck and energy consumption problems of high-performance data centers, and are the current and future storage solutions. The hot spot and core of field research.
近年来MLC(Multi-Level Cell,多层单元)技术提高了固态硬盘的容量,同时大大降低了它的成本,然而由于每个MLC存储单元存放的位比较多,结构相对复杂,出错的概率很大,性能和可靠性都要低于SLC(Single-Level Cell,单层单元)。为了提高固态盘的性能,我们可以使用并行的I/O体系结构,如多通道和交叉存取技术,通过允许多个存储芯片的并发I/O操作来提高带宽,然而可靠性一直是设计大规模存储系统的关键问题。目前的NAND闪存产品通过错误校验编码来保证可靠性,如汉明码(Hamming Code)、里德·所罗门码(Reed-Solomon Code)和BCH码(Bose、Chaudhuri与Hocquenghem三个人名的缩写)等,但这些错误校验编码都要求很高的硬件复杂度,同时还会导致读写延迟。另外一种提高可靠性的方法是存储级别的冗余,固态盘标准的块接口可以不加任何修改地使用现存的冗余机制和交叉存取的解决方案-磁盘阵列RAID(Redundant Array ofIndependent Disks),其中RAID-5级别提供了较好的性能和可靠性,被广泛应用于商业领域。In recent years, MLC (Multi-Level Cell) technology has improved the capacity of solid-state drives and greatly reduced its cost. However, since each MLC storage unit stores more bits, the structure is relatively complicated, and the probability of error is very high. Large, performance and reliability are lower than SLC (Single-Level Cell, single-layer unit). In order to improve the performance of SSDs, we can use parallel I/O architectures, such as multi-channel and interleaved access technology, to increase bandwidth by allowing concurrent I/O operations of multiple memory chips. However, reliability has always been a major design issue. A key issue in large-scale storage systems. Current NAND flash products use error-checking codes to ensure reliability, such as Hamming Code, Reed-Solomon Code, and BCH code (abbreviations for Bose, Chaudhuri, and Hocquenghem), etc. , but these error-checking codes require high hardware complexity, and also cause read and write delays. Another way to improve reliability is storage-level redundancy. The standard block interface of solid-state disks can use existing redundancy mechanisms and interleaved access solutions without any modification-disk array RAID (Redundant Array of Independent Disks) , among which the RAID-5 level provides better performance and reliability, and is widely used in the commercial field.
当固态盘阵列中某一个成员固态盘出现故障且加入替换盘时,固态盘阵列能够自动切换到重建模式,重建进程在不中断应用服务的情况下连续将故障盘上的数据块重建到新加入的替换盘中。固态盘的擦写周期限制和固态盘阵列写负载均衡的特性将会导致相关性故障,具体而言就是多个设备同时达到写擦除限制的状态,表现出无法恢复的高误码率。尤其值得关注的是固态盘阵列处于重建状态时的故障相关性,幸存盘上的写请求带来的高误码率将会导致大量的数据丢失。另外,现有的Linux操作系统固态盘阵列控制软件和传统磁盘阵列控制软件相同,数据重建方法没有考虑到固态盘的随机访问性特点,导致重建过程和读写过程对同一数据块重复读取,不仅浪费了阵列带宽,而且重建时间长,影响了存储系统的读写性能和可靠性。When a member SSD in the SSD array fails and a replacement disk is added, the SSD array can automatically switch to the reconstruction mode, and the reconstruction process continuously rebuilds the data blocks on the faulty disk to the new one without interrupting the application service. replacement plate. The erasing and erasing cycle limit of SSDs and the write load balancing characteristics of SSD arrays will lead to correlation failures. Specifically, multiple devices reach the state of writing and erasing limits at the same time, showing an unrecoverable high bit error rate. Of particular concern is the failure correlation when the SSD array is in the rebuilding state. The high bit error rate caused by the write request on the surviving disk will cause a large amount of data loss. In addition, the existing Linux operating system SSD array control software is the same as the traditional disk array control software, and the data reconstruction method does not take into account the random access characteristics of the SSD, resulting in repeated reading of the same data block during the reconstruction process and read-write process. Not only is the bandwidth of the array wasted, but also the reconstruction time is long, which affects the read and write performance and reliability of the storage system.
发明内容 Contents of the invention
本发明提出一种固态盘阵列的数据重建方法,利用固态盘随机性能非常好的特性,让重建位置跟随读负载移动,优先重建读请求位置的条带,减少重建过程中幸存固态盘上读请求次数,同时考虑到RAID的负载均衡导致的相关性故障和写擦除次数限制的特性,将写负载重定向,防止固态盘阵列重建过程中由于高BER(Bit Error Rate,位错误率)而再次发生故障造成的数据丢失,写重建还能减轻负载对重建的影响,解决了现有的固态盘阵列重建时间长、重建过程中存储系统可靠性低的问题。The invention proposes a data reconstruction method of a solid-state disk array, which utilizes the very good random performance of the solid-state disk to allow the reconstruction position to follow the read load movement, give priority to rebuilding the stripe at the read request position, and reduce the read requests on the surviving solid-state disk during the reconstruction process The number of times, taking into account the characteristics of the correlation failure caused by RAID load balancing and the limit of the number of writes and erases, redirects the write load to prevent the high BER (Bit Error Rate, bit error rate) from recurring during the rebuilding process of the SSD array. For data loss caused by failure, write reconstruction can also reduce the impact of load on reconstruction, which solves the problems of long reconstruction time and low reliability of storage system in the reconstruction process of existing solid-state disk arrays.
实现本发明的目的所采用的具体技术方案如下:The specific technical scheme adopted to realize the object of the present invention is as follows:
本发明的一种固态盘阵列的重建方法,其特征在于,包括如下步骤:A rebuilding method of a solid state disk array of the present invention is characterized in that it comprises the following steps:
(1)存储系统的构建(1) Construction of storage system
首先,在固态盘阵列外添加一个附加的磁盘,该附加盘用来存储重建过程中重定向的写数据;First, add an additional disk outside the SSD array, which is used to store redirected write data during the reconstruction process;
其次,在内存中设置位图日志表和写重定向元数据Hash表,位图日志表用来记录跟随读负载优先重建的条带,元数据Hash表用来记录重定向写请求的关键信息,包括请求所在条带的起始逻辑地址、请求写入的固态盘号、条带的校验盘号和重定向到附加盘上的逻辑块地址;Secondly, set the bitmap log table and the write redirection metadata Hash table in the memory. The bitmap log table is used to record the stripes that are reconstructed preferentially following the read load, and the metadata Hash table is used to record the key information of redirected write requests. Including the starting logical address of the stripe where the request is located, the number of the solid-state disk to be written to, the verification disk number of the stripe, and the logical block address redirected to the additional disk;
(2)固态盘阵列的重建进程(2) The reconstruction process of the SSD array
当系统中有成员固态盘发生故障时,取出故障盘,插入新的替换盘,启动固态盘阵列开始进行重建,具体过程如下:When a member SSD in the system fails, take out the faulty disk, insert a new replacement disk, and start the SSD array to start rebuilding. The specific process is as follows:
(2.1)初始化位图日志表,日志表的每一位对应固态盘阵列的一个条带,将位图日志表的每一位都初始化为0,继续步骤(2.2);(2.1) Initialize the bitmap log table, each bit of the log table corresponds to a strip of the solid-state disk array, each bit of the bitmap log table is initialized to 0, and continue step (2.2);
(2.2)重建进程根据当前需要重建的条带的起始逻辑地址判断位图日志表相应的位是否为1,如果是则继续步骤(2.3),否则转入步骤(2.4);(2.2) the reconstruction process judges whether the corresponding bit of the bitmap log table is 1 according to the initial logical address of the strip that needs to be reconstructed at present, if it is, then continue step (2.3), otherwise proceed to step (2.4);
(2.3)该条带已经被重建过,跳过该条带的重建,获取下一个重建条带的起始逻辑地址,转入步骤(2.5);(2.3) The stripe has been rebuilt, skip the rebuilding of the stripe, obtain the starting logical address of the next rebuilt stripe, and go to step (2.5);
(2.4)该条带没有重建过,获取一个空闲条带,读出所有幸存盘上该条带位置处的数据,将这些数据进行异或XOR运算,将计算的结果写入到替换固态盘对应的位置上,置位图日志表中相应的位为1,继续步骤(2.5);(2.4) The stripe has not been rebuilt. Get a free stripe, read the data at the location of the stripe on all surviving disks, perform an XOR operation on these data, and write the calculation result to the corresponding SSD In the position, the corresponding bit in the bitmap log table is 1, and the step (2.5) is continued;
(2.5)重复上述步骤(2.2)--(2.4),直至所有的条带都重建完毕,释放位图日志表占用的资源;(2.5) Repeat the above steps (2.2)--(2.4) until all the stripes are rebuilt, releasing the resources occupied by the bitmap log table;
(3)数据写回(3) Data write back
(3.1)判断写重定向元数据Hash表是否为空,如果不为空则继续步骤(3.2),否则转入步骤(3.4);(3.1) Judging whether the write redirection metadata Hash table is empty, if not empty then continue to step (3.2), otherwise proceed to step (3.4);
(3.2)从写重定向元数据Hash表中取出条带起始逻辑地址相同但逻辑盘号不同的M条记录,从附加盘中读出这M条记录对应的数据,并将它们写回到重建完成的固态盘阵列中,写入流程与固态盘阵列正常的读写处理流程一致,需要更新校验块,继续步骤(3.3);(3.2) Take out the M records with the same stripe starting logical address but different logical disk numbers from the write redirection metadata Hash table, read the data corresponding to these M records from the additional disk, and write them back In the rebuilt SSD array, the writing process is consistent with the normal read and write process of the SSD array, and the check block needs to be updated, and continue to step (3.3);
(3.3)将这些记录从Hash表中删除,转入步骤(3.1);(3.3) delete these records from the Hash table, and proceed to step (3.1);
(3.4)完成了所有重定向数据的写回过程,释放Hash表占用的资源。(3.4) The write-back process of all redirected data is completed, and the resources occupied by the Hash table are released.
本发明的一种固态盘阵列的重建方法,其特征在于,所述重建阶段的数据读写的具体过程为:A rebuilding method of a solid-state disk array of the present invention is characterized in that the specific process of reading and writing data in the rebuilding stage is:
(4.1)判断阵列的状态,如果处于重建状态则继续步骤(4.2),否则转入步骤(4.7);(4.1) Judge the state of the array, if it is in the reconstruction state then continue to step (4.2), otherwise go to step (4.7);
(4.2)判断上层下发的读写请求的类型,如果是读请求,则继续步骤(4.3),否则转入步骤(4.8);(4.2) Judge the type of the read-write request issued by the upper layer, if it is a read request, then continue to step (4.3), otherwise go to step (4.8);
(4.3)处理用户读请求,根据RAID的数据组织方式获取读请求对应的条带S,根据条带S的起始逻辑地址C和该请求在条带S中的逻辑盘号N查询写重定向元数据Hash表,如果命中则继续步骤(4.4),否则转入步骤(4.5);(4.3) Process the user's read request, obtain the stripe S corresponding to the read request according to the RAID data organization method, and query the write redirection according to the starting logical address C of the stripe S and the logical disk number N of the request in the stripe S Metadata Hash table, if hit then continue to step (4.4), otherwise go to step (4.5);
(4.4)要读的最新数据在附加盘中,根据命中的元数据表项中附加盘上的逻辑块地址,读取附加盘中的最新数据返回给用户,结束;(4.4) The latest data to be read is in the additional disk, according to the logical block address on the additional disk in the hit metadata entry, the latest data in the additional disk is read and returned to the user, and the end is completed;
(4.5)要读的数据在重建固态盘阵列中,查询起始逻辑地址C对应的位图日志表相应的位,如果为0则转入步骤(4.6),否则转入步骤(4.7);(4.5) The data to be read is in rebuilding the solid-state disk array, query the corresponding bit of the bitmap log table corresponding to the initial logical address C, if it is 0, then proceed to step (4.6), otherwise proceed to step (4.7);
(4.6)读请求所在的条带S没有被重建,将所有幸存盘上位于条带S的数据块从底层固态盘中读取出来,分别记为D(i),其中i=1,2,3...n-1,n为阵列中成员固态盘的个数,利用异或运算XOR将替换盘上的数据D(n)计算出来,即将用户读请求需要读取的数据块D={D(i)|i=1,2,3...n}返回给用户,同时将D(n)写入到替换固态盘中,置位图日志表中相应的位为1,结束;(4.6) The strip S where the read request is located has not been rebuilt, read all the data blocks located in the strip S on the surviving disk from the underlying solid-state disk, and record them as D(i), where i=1, 2, 3...n-1, n is the number of member solid-state disks in the array, use XOR to calculate the data D(n) on the replacement disk, that is Return the data block D={D(i)|i=1, 2, 3...n} that needs to be read by the user's read request to the user, and write D(n) into the replacement solid-state disk at the same time, set The corresponding bit in the graph log table is 1, end;
(4.7)按照正常的数据读流程进行处理,结束;(4.7) Process according to the normal data reading flow, end;
(4.8)处理用户写请求,对于待写数据D’,根据RAID的数据组织方式获取写请求对应的条带S’,计算出条带S’的起始逻辑地址C’,写请求在条带S’中的逻辑盘号N’,条带的校验盘号P’,若该条带为满带写,则进入步骤(4.9),否则转入步骤(4.10);(4.8) Process the user's write request. For the data to be written D', obtain the stripe S' corresponding to the write request according to the RAID data organization method, calculate the starting logical address C' of the stripe S', and write the request in the stripe Logical disk number N' in S', verification disk number P' of the stripe, if the stripe is full and written, then enter step (4.9), otherwise proceed to step (4.10);
(4.9)写数据块覆盖了整个条带缓冲区,将待写数据D’填充到条带缓冲区C’(N)中,转入步骤(4.12);(4.9) The write data block has covered the whole stripe buffer, and the data D' to be written is filled in the stripe buffer C' (N), and then the step (4.12) is changed over to;
(4.10)写数据块没有覆盖整个条带缓冲区,根据条带起始逻辑地址查看位图日志表相应的位,如果为0则继续步骤(4.11),否则转入步骤(4.12);(4.10) Write the data block and do not cover the whole stripe buffer, check the corresponding bit of the bitmap log table according to the stripe starting logical address, if it is 0, then continue the step (4.11), otherwise go to the step (4.12);
(4.11)该条带还没有被重建,将所有幸存盘上位于条带S’的数据块从固态盘阵列中读取出来,分别记为D’(i),其中i=1,2,3...n-1,n为阵列中成员固态盘的个数,利用异或运算XOR将替换盘上的数据D’(n)计算出来,即将写数据D’填充到条带缓冲区C’(N),同时将D’(n)写入到替换固态盘中,置位图日志表中相应的位为1,转入步骤(4.12);(4.11) The stripe has not been rebuilt, read all the data blocks located in the stripe S' on the surviving disk from the solid-state disk array, and record them as D'(i), where i=1, 2, 3 ...n-1, n is the number of member solid-state disks in the array, use the XOR operation XOR to calculate the data D'(n) on the replacement disk, that is Fill the write data D' into the stripe buffer C'(N), and write D'(n) to the replacement SSD at the same time, set the corresponding bit in the bitmap log table to 1, and go to step (4.12) ;
(4.12)将条带缓冲区C’(N)中的数据重定向到附加盘中,附加盘采用顺序追加的方式,根据条带起始逻辑地址C’和逻辑盘号N’查找写重定向元数据Hash表,如果命中则转入(4.13),否则转入(4.14);(4.12) Redirect the data in the stripe buffer C'(N) to the additional disk. The additional disk adopts the method of sequential appending, and searches for write redirection according to the stripe start logical address C' and logical disk number N' Metadata Hash table, if hit, transfer to (4.13), otherwise transfer to (4.14);
(4.13)更新命中的元数据表,修改命中表项中附加盘的逻辑块地址,将附加盘中该数据块对应的老数据块标识为无效,结束;(4.13) Update the metadata table of the hit, revise the logical block address of the additional disk in the hit table entry, mark the old data block corresponding to the data block in the additional disk as invalid, and end;
(4.14)将该重定向写请求的元数据表项添加到Hash表中,结束。(4.14) Add the metadata entry of the redirected write request to the Hash table, and end.
本发明的一种固态盘阵列的重建方法,其特征在于,所述写回阶段的数据读写的具体过程为:A rebuilding method of a solid-state disk array of the present invention is characterized in that the specific process of reading and writing data in the write-back stage is:
(5.1)等待上层下发用户请求,判断阵列是否处于写回阶段,如果不是则按正常的数据读写流程进行处理,如果是则继续步骤(5.2);(5.1) Wait for the user request from the upper layer to determine whether the array is in the write-back stage, if not, proceed according to the normal data read and write process, and if so, continue to step (5.2);
(5.2)判断请求的类型,如果是读请求则转入步骤(5.3),否则转入步骤(5.6);(5.2) Judge the type of request, if it is a read request, then proceed to step (5.3), otherwise proceed to step (5.6);
(5.3)查找写重定向元数据Hash表,如果命中则转入步骤(5.4),否则转入步骤(5.5);(5.3) Find the write redirection metadata Hash table, if hit then go to step (5.4), otherwise go to step (5.5);
(5.4)将该读请求发送到附加盘,从附加盘中读取数据返回给用户,转步骤(5.1);(5.4) Send the read request to the additional disk, read data from the additional disk and return to the user, and turn to step (5.1);
(5.5)将该读请求发送到固态盘阵列中,从固态盘阵列中读取数据返回给用户,转入步骤(5.1);(5.5) send the read request to the solid-state disk array, read data from the solid-state disk array and return to the user, and turn to step (5.1);
(5.6)按RAID正常的数据处理流程将数据写到重建完成的固态盘阵列中,查找写重定向元数据Hash表,如果命中则转入步骤(5.7),否则转入步骤(5.1);(5.6) Write the data into the solid-state disk array that has been rebuilt according to the normal data processing flow of the RAID, look up the write redirection metadata Hash table, if hit then proceed to step (5.7), otherwise proceed to step (5.1);
(5.7)将命中的元数据表项从Hash表中删除,转入步骤(5.1)。(5.7) Delete the hit metadata entry from the Hash table, and go to step (5.1).
本发明的一种固态盘阵列的重建方法,其特征在于,所述附加盘上的写请求采取顺序追加的写入方式,当某个重定向的写请求被更新时,将新数据顺序追加到附加盘中,修改相应的元数据将附加盘中的老数据标识为无效。A rebuilding method of a solid-state disk array according to the present invention is characterized in that the write request on the additional disk adopts a sequential append writing method, and when a redirected write request is updated, new data is sequentially appended to In the additional disk, modify the corresponding metadata to mark the old data in the additional disk as invalid.
本发明的一种固态盘阵列的重建方法,其特征在于,所述重定向元数据Hash表由四个字段组成,各字段依次为条带的起始逻辑地址S_LBA、写入的固态盘号DiskNo、条带校验盘号ParityNo和在附加盘上的逻辑块地址LBA,Hash表中的每一条表项用来记录一个重定向写请求的关键信息。A reconstruction method of a solid-state disk array of the present invention is characterized in that the redirection metadata Hash table is composed of four fields, and each field is sequentially the initial logical address S_LBA of the stripe, the written solid-state disk number DiskNo Each entry in the Hash table is used to record the key information of a redirected write request.
本发明基于一个普遍存在的现象,即现有的Linux操作系统固态盘阵列控制软件和传统磁盘阵列控制软件相同,数据重建方法没有考虑到固态盘的随机访问性特点,导致重建时间过长,另外固态盘的擦写周期限制和固态盘阵列的写负载均衡特性将会导致相关性故障,使得固态盘重建期间的可靠性差。本发明提出一种固态盘阵列的数据重建方法,让重建位置跟随读负载移动,优先重建读请求位置的条带,减少重建过程中幸存固态盘上的读请求次数,同时将写负载重定向,一方面防止幸存固态盘在重建过程中由于高BER而再次发生故障造成的数据丢失,另一方面减轻了用户负载对重建过程的影响。本发明主要包括存储系统的构建、重建阶段的数据读写、固态盘阵列的重建、数据写回、写回阶段的数据读写这五个具体步骤,解决了现有的固态盘阵列重建时间长、重建过程中存储系统可靠性低的问题,适合于构建高性能、高可靠性和高容量的大型存储系统。The present invention is based on a ubiquitous phenomenon that the existing Linux operating system solid state disk array control software is the same as the traditional disk array control software, and the data reconstruction method does not take into account the random access characteristics of the solid state disk, resulting in too long reconstruction time. The erase-write cycle limits of SSDs and the write load-balancing characteristics of SSD arrays will lead to coherent failures, resulting in poor reliability during SSD rebuilds. The present invention proposes a data reconstruction method for a solid-state disk array, allowing the reconstruction position to follow the read load movement, prioritizing the reconstruction of the stripe at the read request position, reducing the number of read requests on the surviving solid-state disk during the reconstruction process, and redirecting the write load at the same time. On the one hand, it prevents the data loss caused by the failure of the surviving SSD due to high BER during the reconstruction process, and on the other hand, it reduces the impact of user load on the reconstruction process. The present invention mainly includes five specific steps of construction of the storage system, data reading and writing in the rebuilding stage, rebuilding of the solid-state disk array, data writing back, and data reading and writing in the writing-back stage, which solves the problem of long rebuilding time of the existing solid-state disk array. , The problem of low reliability of the storage system during the reconstruction process is suitable for building a large storage system with high performance, high reliability and high capacity.
附图说明 Description of drawings
图1为本发明存储系统软硬件架构示意图;Fig. 1 is a schematic diagram of the software and hardware architecture of the storage system of the present invention;
图2为本发明的写重定向元数据Hash表的结构示意图;Fig. 2 is the structural representation of writing redirection metadata Hash table of the present invention;
图3为本发明的重建流程示意图;Fig. 3 is a schematic diagram of the reconstruction process of the present invention;
图4为本发明的数据写回示意图;Fig. 4 is a schematic diagram of data writing back in the present invention;
图5为本发明的数据读写处理流程示意图。FIG. 5 is a schematic diagram of a data reading and writing process flow in the present invention.
具体实施方式 Detailed ways
下面结合附图对本发明进一步详细说明。The present invention will be described in further detail below in conjunction with the accompanying drawings.
图1为本发明的软硬件系统架构示意图:硬件部署上需要在固态盘阵列上添加一个附加硬盘;软件结构上主要包括重建模块、写回模块和数据处理模块,这几个模块依赖位图日志表和重定向元数据Hash表。Fig. 1 is a schematic diagram of the software and hardware system architecture of the present invention: an additional hard disk needs to be added to the solid-state disk array for hardware deployment; the software structure mainly includes a reconstruction module, a write-back module and a data processing module, and these modules rely on bitmap logs Table and redirection metadata Hash table.
本发明的一种固态盘阵列的重建方法,由重建阶段和数据写回阶段顺序组成,主要包括存储系统的构建、重建阶段的数据读写、固态盘阵列的重建、数据写回、写回阶段的数据读写这五个具体步骤。A rebuilding method of a solid-state disk array of the present invention is composed of a rebuilding stage and a data write-back stage in sequence, mainly including the construction of a storage system, data reading and writing in the rebuilding stage, rebuilding of a solid-state disk array, data write-back, and a write-back stage The five specific steps of data reading and writing.
(1)存储系统的构建(1) Construction of storage system
首先,在原来的固态盘阵列外添加一个附加的磁盘,附加盘用来存储重建过程中重定向的写数据。First, an additional disk is added outside the original SSD array, and the additional disk is used to store redirected write data during the reconstruction process.
其次,在内存中设置位图日志表和写重定向元数据Hash表,位图日志表用来记录跟随读负载优先重建的条带,元数据Hash表用来记录重定向写请求的关键信息。如图2所示,重定向元数据Hash表由四个字段组成,各字段依次为条带的起始逻辑地址S_LBA、写入的固态盘号DiskNo、条带校验盘号ParityNo和在附加盘上的逻辑块地址LBA,Hash表中的每一条表项用来记录一个重定向写请求的关键信息。Secondly, set the bitmap log table and the write redirection metadata Hash table in the memory. The bitmap log table is used to record the stripes that are reconstructed preferentially following the read load, and the metadata Hash table is used to record the key information of redirection write requests. As shown in Figure 2, the redirection metadata Hash table consists of four fields, each of which is the start logical address S_LBA of the stripe, the disk No. of the solid-state disk to be written, the parityNo. Each entry in the Hash table is used to record the key information of a redirected write request.
另外,附加盘上的写请求采取顺序追加的写入方式,当某个重定向的写请求被更新时,将新数据顺序追加到附加盘中,修改相应的元数据将附加盘中的老数据标识为无效。In addition, the write request on the additional disk adopts the write method of sequential appending. When a redirected write request is updated, the new data is sequentially appended to the additional disk, and the old data in the additional disk will be appended by modifying the corresponding metadata. Identified as invalid.
(2)固态盘阵列的重建进程(2) The reconstruction process of the SSD array
图3为固态盘阵列的重建步骤示意图,进行下述过程:重建进程重建某个条带的时候,首先判断位图日志表中相应的位是否为1,如果是则跳过该条带的重建,否则读取所有幸存盘上的数据重建该条带。反复执行该过程直至所有的条带都重建完毕,重建结束。具体的步骤如下:Figure 3 is a schematic diagram of the reconstruction steps of the solid state disk array, and the following process is carried out: when the reconstruction process rebuilds a certain stripe, it first judges whether the corresponding bit in the bitmap log table is 1, and if so, skips the reconstruction of the stripe , otherwise read data from all surviving disks to rebuild the stripe. Repeat this process until all the stripes are rebuilt, and the rebuilding ends. The specific steps are as follows:
(2.1)初始化位图日志表,日志表的每一位对应固态盘阵列的一个条带,将位图日志表的每一位都初始化为0,继续步骤(2.2);(2.1) Initialize the bitmap log table, each bit of the log table corresponds to a strip of the solid-state disk array, each bit of the bitmap log table is initialized to 0, and continue step (2.2);
(2.2)重建进程根据当前需要重建的条带的起始逻辑地址判断位图日志表相应的位是否为1,如果是则继续步骤(2.3),否则转入步骤(2.4);(2.2) the reconstruction process judges whether the corresponding bit of the bitmap log table is 1 according to the initial logical address of the strip that needs to be reconstructed at present, if it is, then continue step (2.3), otherwise proceed to step (2.4);
(2.3)该条带已经被重建过,跳过该条带的重建,获取下一个重建条带的起始逻辑地址,转入步骤(2.5);(2.3) The stripe has been rebuilt, skip the rebuilding of the stripe, obtain the starting logical address of the next rebuilt stripe, and go to step (2.5);
(2.4)该条带没有重建过,获取一个空闲条带,读出所有幸存盘上该条带位置处的数据,将这些数据进行异或XOR运算,将计算的结果写入到替换固态盘对应的位置上,置位图日志表中相应的位为1,继续步骤(2.5);(2.4) The stripe has not been rebuilt. Get a free stripe, read the data at the location of the stripe on all surviving disks, perform an XOR operation on these data, and write the calculation result to the corresponding SSD In the position, the corresponding bit in the bitmap log table is 1, and the step (2.5) is continued;
(2.5)重复上述步骤(2.2)--(2.4),直至所有的条带都重建完毕,释放位图日志表占用的资源。(2.5) Repeat the above steps (2.2)-(2.4) until all the stripes are rebuilt, releasing the resources occupied by the bitmap log table.
(3)重建阶段的数据读写(3) Data reading and writing in the reconstruction phase
如图5所示为重建期间和数据写回期间数据处理的流程图,当固态盘阵列处于重建状态时,读写处理模块等待上层用户请求,如果为读请求,首先判断该请求是否命中Hash表,如果命中则需要从附加盘中读取最新的数据返回给用户,否则执行以下操作:判断位图日志表中该请求所在的条带对应的位是否为1,如果为1表示该条带已经重建完毕,则从固态盘阵列中读出需要的数据返回给用户,否则读出所有幸存盘上的数据重建该条带,置位图日志表中相应的位为1,同时将用户读数据返回。如果为写请求,判断该条带是否为满带写,如果是满带写则将写数据填充到条带缓冲区中,将该缓冲区中的数据顺序追加到附加盘上,更新重定向元数据Hash表,否则执行如下操作:判断位图日志表中该请求所在的条带对应的位是否为1,如果为1表示该条带已经重建完毕,从固态盘阵列中读出当前写请求所在位置的老数据放到条带缓冲区中,否则读出所有幸存盘上的数据重建该条带,置位图日志表中相应的位为1,然后将新数据填充到条带缓冲区,将该缓冲区中的数据顺序追加到附加盘上,更新重定向元数据Hash表。具体过程为:Figure 5 shows the flow chart of data processing during rebuilding and data write-back. When the SSD array is in the rebuilding state, the read-write processing module waits for the request from the upper layer user. If it is a read request, it first judges whether the request hits the Hash table , if it hits, you need to read the latest data from the additional disk and return it to the user, otherwise perform the following operations: determine whether the bit corresponding to the stripe where the request is located in the bitmap log table is 1, if it is 1, it means that the stripe has been After rebuilding, read the required data from the SSD array and return it to the user, otherwise read all the data on the surviving disk to rebuild the stripe, set the corresponding bit in the bitmap log table to 1, and return the data read by the user . If it is a write request, determine whether the stripe is full for writing, if it is full for writing, fill the write data into the stripe buffer, append the data in the buffer to the additional disk in order, and update the redirection element Data Hash table, otherwise perform the following operations: determine whether the bit corresponding to the stripe where the request is located in the bitmap log table is 1, if it is 1, it means that the stripe has been rebuilt, and read the location of the current write request from the SSD array The old data at the location is put into the stripe buffer, otherwise, read out all the data on the surviving disk to rebuild the stripe, set the corresponding bit in the bitmap log table to 1, and then fill the new data into the stripe buffer, and The data in the buffer is sequentially appended to the additional disk, and the redirection metadata Hash table is updated. The specific process is:
(3.1)判断阵列的状态,如果处于重建状态则继续步骤(3.2),如果处于数据写回状态则转入(5.1),否则转入步骤(3.7);(3.1) Judge the state of the array, if it is in the reconstruction state, then continue to step (3.2), if it is in the data write-back state, then go to (5.1), otherwise go to step (3.7);
(3.2)判断上层下发的读写请求的类型,如果是读请求,则继续步骤(3.3),否则转入步骤(3.8);(3.2) Judge the type of the read-write request issued by the upper layer, if it is a read request, then continue to step (3.3), otherwise proceed to step (3.8);
(3.3)处理用户读请求,根据RAID的数据组织方式获取读请求对应的条带S,假设该条带的起始逻辑地址为C,请求在条带中的逻辑盘号为N,根据条带起始逻辑地址C和逻辑盘号N查询写重定向元数据Hash表,如果命中则继续步骤(3.4),否则转入步骤(3.5);(3.3) Process the user's read request, and obtain the stripe S corresponding to the read request according to the RAID data organization method. Assume that the starting logical address of the stripe is C, and the logical disk number of the request in the stripe is N. According to the stripe Start logical address C and logical disk number N query and write redirection metadata Hash table, if hit, continue to step (3.4), otherwise go to step (3.5);
(3.4)要读的最新数据在附加盘中,根据命中的元数据表项中附加盘上的逻辑块地址,读取附加盘中的最新数据返回给用户,结束;(3.4) The latest data to be read is in the additional disk, according to the logical block address on the additional disk in the hit metadata entry, the latest data in the additional disk is read and returned to the user, and the end is completed;
(3.5)要读的数据在重建固态盘阵列中,查询起始逻辑地址C对应的位图日志表相应的位,如果为0则转入步骤(3.6),否则转入步骤(3.7);(3.5) The data to be read is in rebuilding the solid-state disk array, query the corresponding bit of the bitmap log table corresponding to the initial logical address C, if it is 0, then proceed to step (3.6), otherwise proceed to step (3.7);
(3.6)读请求所在的条带S没有被重建,将所有幸存盘上位于条带S的数据块从底层固态盘中读取出来,分别记为D(i),其中i=1,2,3...n-1,n为阵列中成员固态盘的个数,利用异或运算XOR将替换盘上的数据D(n)计算出来,即设用户读请求需要读取的数据块为D={D(i)|i=1,2,3...n},将D返回给用户,同时将D(n)写入到替换固态盘中,置位图日志表中相应的位为1,结束;(3.6) The strip S where the read request is located has not been rebuilt, read all the data blocks located in the strip S on the surviving disk from the underlying solid-state disk, and record them as D(i), where i=1, 2, 3...n-1, n is the number of member solid-state disks in the array, use XOR to calculate the data D(n) on the replacement disk, that is Assume that the data block to be read by the user's read request is D={D(i)|i=1, 2, 3...n}, return D to the user, and write D(n) to the replacement solid state disk at the same time , set the corresponding bit in the bitmap log table to 1, and end;
(3.7)按照正常的数据读流程进行处理,结束;(3.7) Process according to the normal data reading flow, end;
(3.8)处理用户写请求,假设要写的数据为D’,根据RAID的数据组织方式获取写请求对应的条带S’,计算出条带S’的起始逻辑地址为C’,写请求在条带S’中的逻辑盘号为N’,条带的校验盘号为P’,若该条带为满带写(OVERWRITE),则进入步骤(3.9),否则转入步骤(3.10);(3.8) Process the user's write request, assuming that the data to be written is D', obtain the stripe S' corresponding to the write request according to the RAID data organization method, calculate the starting logical address of the stripe S' as C', write the request The logical disk number in the stripe S' is N', and the verification disk number of the stripe is P'. If the stripe is full and written (OVERWRITE), then enter step (3.9), otherwise proceed to step (3.10 );
(3.9)写数据块覆盖了整个条带缓冲区,将写数据D’填充到条带缓冲区C’(N)中,转入步骤(3.12);(3.9) The write data block has covered the entire stripe buffer, and the write data D' is filled in the stripe buffer C' (N), and then proceeds to step (3.12);
(3.10)写数据块没有覆盖整个条带缓冲区,根据条带S’起始逻辑地址C’查看位图日志表相应的位,如果为0则继续步骤(3.11),否则转入步骤(3.12);(3.10) The write data block does not cover the entire stripe buffer, check the corresponding bit of the bitmap log table according to the stripe S' initial logical address C ', if it is 0, then continue to step (3.11), otherwise go to step (3.12 );
(3.11)该条带还没有被重建,将所有幸存盘上位于条带S’的数据块从固态盘阵列中读取出来,分别记为D’(i),其中i=1,2,3...n-1,n为阵列中成员固态盘的个数,利用异或运算XOR将替换盘上的数据D’(n)计算出来,即将写数据D’填充到条带缓冲区C’(N),同时将D’(n)写入到替换固态盘中,置位图日志表中相应的位为1,转入步骤(3.12);(3.11) The stripe has not been rebuilt, read all the data blocks located in the stripe S' on the surviving disk from the solid-state disk array, and record them as D'(i), where i=1, 2, 3 ...n-1, n is the number of member solid-state disks in the array, use the XOR operation XOR to calculate the data D'(n) on the replacement disk, that is Fill the write data D' into the stripe buffer C'(N), and write D'(n) into the replacement SSD at the same time, set the corresponding bit in the bitmap log table to 1, and go to step (3.12) ;
(3.12)将条带缓冲区C’(N)中的数据重定向到附加盘中,附加盘采用顺序追加的方式,根据条带S’起始逻辑地址C’和逻辑盘号N’查找写重定向元数据Hash表,如果命中则转入(3.13),否则转入(3.14);(3.12) Redirect the data in the stripe buffer C'(N) to the additional disk. The additional disk adopts the method of sequential appending, and searches for the write data according to the starting logical address C' and the logical disk number N' of the stripe S'. Redirect the metadata Hash table, if hit, transfer to (3.13), otherwise transfer to (3.14);
(3.13)更新命中的元数据表,修改命中表项中附加盘的逻辑块地址,将附加盘中该数据块对应的老数据块标识为无效,结束;(3.13) update the metadata table of the hit, revise the logical block address of the additional disk in the hit table entry, mark the old data block corresponding to the data block in the additional disk as invalid, and end;
将该重定向写请求的元数据表项添加到Hash表中,结束。Add the metadata entry of the redirected write request to the Hash table, and end.
(4)数据写回(4) Data write back
图4为重建完成后将附加盘中的数据读出,并写回到固态盘阵列的步骤示意图,进行下述过程:Figure 4 is a schematic diagram of the steps of reading out the data in the additional disk and writing it back to the solid-state disk array after the reconstruction is completed, and the following process is carried out:
数据写回模块判断重定向元数据Hash表是否为空,如果不为空则取出条带起始逻辑地址相同而逻辑盘号不同的多条记录,根据记录的关键信息从附加盘中读出重定向的写数据,把它们写回到固态盘阵列中,并将这些记录从Hash表中删除。反复执行该过程,直至所有的数据都回收完毕,以保持固态盘阵列的数据一致性。具体过程为:The data write-back module judges whether the redirection metadata Hash table is empty, and if it is not empty, takes out multiple records with the same starting logical address but different logical disk numbers, and reads the duplicated records from the additional disk according to the key information of the records. Directed write data, write them back to the SSD array, and delete these records from the Hash table. Repeat this process until all the data is reclaimed, so as to maintain the data consistency of the solid state disk array. The specific process is:
(4.1)重建过程完成,启动数据写回进程工作,进入步骤(4.2);(4.1) The reconstruction process is completed, start the data write-back process, and enter step (4.2);
(4.2)判断写重定向元数据Hash表是否为空,如果不为空则继续步骤(4.3),否则转入步骤(4.5);(4.2) Judging whether the write redirection metadata Hash table is empty, if not empty then continue to step (4.3), otherwise proceed to step (4.5);
(4.3)从写重定向元数据Hash表中取出条带起始逻辑地址相同但逻辑盘号不同的M条记录,从附加盘中读出这M条记录对应的数据,并将它们写回到重建完成的固态盘阵列中,写入流程与固态盘阵列正常的读写处理流程一致,需要更新校验块,继续步骤(4.4);(4.3) Take out M records with the same stripe start logical address but different logical disk numbers from the write redirection metadata Hash table, read the data corresponding to these M records from the additional disk, and write them back In the rebuilt SSD array, the writing process is consistent with the normal read and write process of the SSD array, and the check block needs to be updated, and continue to step (4.4);
(4.4)将这些记录从Hash表中删除,转入步骤(4.2);(4.4) delete these records from the Hash table, and proceed to step (4.2);
(4.5)完成了所有重定向数据的写回过程,释放Hash表占用的资源。(4.5) The write-back process of all redirected data is completed, and the resources occupied by the Hash table are released.
(5)写回阶段的数据读写(5) Data reading and writing in the write-back phase
如图5所示为重建期间和数据写回期间数据处理的流程图,当固态盘阵列处于数据写回状态时,读写处理模块等待上层用户请求,如果是读请求,判断该请求是否命中Hash表,如果命中则从附加盘上读取数据,否则从固态盘阵列上读取数据。如果是写请求,首先判断该请求是否命中Hash表,如果命中则将命中的记录从Hash表中删除,将数据写到完成重建的固态盘阵列上,否则直接将数据写到完成重建的固态盘阵列上。具体过程为:Figure 5 shows the flow chart of data processing during reconstruction and data write-back. When the SSD array is in the data write-back state, the read-write processing module waits for the request from the upper layer user. If it is a read request, it judges whether the request hits the Hash Table, if hit, read data from the attached disk, otherwise read data from the SSD array. If it is a write request, first judge whether the request hits the Hash table, if it hits, delete the hit record from the Hash table, and write the data to the rebuilt SSD array, otherwise directly write the data to the rebuilt SSD on the array. The specific process is:
(5.1)等待上层下发用户请求,判断阵列是否处于写回阶段,如果不是则按正常的数据读写流程进行处理,如果是则继续步骤(5.2);(5.1) Wait for the user request from the upper layer to determine whether the array is in the write-back stage, if not, proceed according to the normal data read and write process, and if so, continue to step (5.2);
(5.2)判断请求的类型,如果是读请求则转入步骤(5.3),否则转入步骤(5.6);(5.2) Judge the type of request, if it is a read request, then proceed to step (5.3), otherwise proceed to step (5.6);
(5.3)查找写重定向元数据Hash表,如果命中则转入步骤(5.4),否则转入步骤(5.5);(5.3) Find the write redirection metadata Hash table, if hit then go to step (5.4), otherwise go to step (5.5);
(5.4)将该读请求发送到附加盘,从附加盘中读取数据返回给用户,转步骤(5.1);(5.4) Send the read request to the additional disk, read data from the additional disk and return to the user, and turn to step (5.1);
(5.5)将该读请求发送到固态盘阵列中,从固态盘阵列中读取数据返回给用户,转入步骤(5.1);(5.5) send the read request to the solid-state disk array, read data from the solid-state disk array and return to the user, and turn to step (5.1);
(5.6)按RAID正常的数据处理流程将数据写到重建完成的固态盘阵列中,查找写重定向元数据Hash表,如果命中则转入步骤(5.7),否则转入步骤(5.1);(5.6) Write the data into the solid-state disk array that has been rebuilt according to the normal data processing flow of the RAID, look up the write redirection metadata Hash table, if hit then proceed to step (5.7), otherwise proceed to step (5.1);
(5.7)将命中的元数据表项从Hash表中删除,转入步骤(5.1)。(5.7) Delete the hit metadata entry from the Hash table, and go to step (5.1).
Claims (5)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201110350044.3A CN102521068B (en) | 2011-11-08 | 2011-11-08 | Reconstructing method of solid-state disk array |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201110350044.3A CN102521068B (en) | 2011-11-08 | 2011-11-08 | Reconstructing method of solid-state disk array |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN102521068A CN102521068A (en) | 2012-06-27 |
| CN102521068B true CN102521068B (en) | 2014-07-23 |
Family
ID=46292003
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201110350044.3A Expired - Fee Related CN102521068B (en) | 2011-11-08 | 2011-11-08 | Reconstructing method of solid-state disk array |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN102521068B (en) |
Families Citing this family (20)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI461901B (en) * | 2012-12-10 | 2014-11-21 | Ind Tech Res Inst | Method and system for storing and rebuilding data |
| CN105531677A (en) * | 2013-08-27 | 2016-04-27 | 新加坡科技研究局 | RAID Parity Stripe Rebuild |
| CN104166601B (en) * | 2014-08-14 | 2017-08-15 | 浙江宇视科技有限公司 | The backup method and device of a kind of data storage |
| CN105450704A (en) * | 2014-08-28 | 2016-03-30 | 北京兆易创新科技股份有限公司 | Network storage device for flash memories and processing method thereof |
| CN104598336B (en) * | 2015-02-04 | 2018-04-24 | 深圳神州数码云科数据技术有限公司 | Method for reconstructing and device based on RAID algorithm |
| CN104778100A (en) * | 2015-04-23 | 2015-07-15 | 成都博元时代软件有限公司 | Safe data backup method |
| CN104866244B (en) * | 2015-05-31 | 2018-03-06 | 上海交通大学 | The RAID 6I/O dispatching methods that a kind of balance strip band is write |
| CN106557264B (en) | 2015-09-25 | 2019-11-08 | 伊姆西公司 | For the storage method and equipment of solid state hard disk |
| CN105353991A (en) * | 2015-12-04 | 2016-02-24 | 浪潮(北京)电子信息产业有限公司 | Disk array reconstruction optimization method and device |
| CN112491986B (en) * | 2016-02-29 | 2022-07-29 | 华为技术有限公司 | Method, device and system for distributing commands in distributed system |
| CN107122261B (en) * | 2017-04-18 | 2020-04-07 | 杭州宏杉科技股份有限公司 | Data reading and writing method and device of storage equipment |
| CN107273046B (en) * | 2017-06-06 | 2019-08-13 | 华中科技大学 | A kind of data processing method and system based on Solid-state disc array |
| CN107608637A (en) * | 2017-09-30 | 2018-01-19 | 深圳市华德安科技有限公司 | RAID management methods, device and computer-readable recording medium |
| CN107885620B (en) * | 2017-11-22 | 2020-09-08 | 华中科技大学 | Method and system for improving performance and reliability of solid-state disk array |
| CN110413454B (en) * | 2018-04-28 | 2022-04-05 | 华为技术有限公司 | Data reconstruction method and device based on storage array and storage medium |
| CN108874314A (en) * | 2018-05-31 | 2018-11-23 | 郑州云海信息技术有限公司 | A kind of reconstructing method and device of raid-array |
| CN109814803B (en) * | 2018-12-17 | 2022-12-09 | 深圳创新科技术有限公司 | Method and device for self-adaptive adjustment of fault tolerance capability in a distributed storage system |
| CN112000296B (en) * | 2020-08-28 | 2024-04-09 | 北京计算机技术及应用研究所 | Performance optimization system in full flash memory array |
| CN117311995B (en) * | 2023-11-28 | 2024-02-23 | 苏州元脑智能科技有限公司 | Background task execution method and system of storage system and controller |
| CN117785070B (en) * | 2024-02-23 | 2024-05-24 | 杭州海康威视数字技术股份有限公司 | Data storage control method and device |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7610438B2 (en) * | 2000-01-06 | 2009-10-27 | Super Talent Electronics, Inc. | Flash-memory card for caching a hard disk drive with data-area toggling of pointers stored in a RAM lookup table |
| JP2001306266A (en) * | 2000-04-18 | 2001-11-02 | Oki Electric Ind Co Ltd | Method for protecting data in hard disk and computer system |
| CN101976174B (en) * | 2010-08-19 | 2012-01-25 | 北京同有飞骥科技股份有限公司 | Method for constructing energy-saving disk array of vertical configuration distribution check |
| CN102184079B (en) * | 2011-04-29 | 2012-11-07 | 华中科技大学 | Method for optimizing writing performance of redundant array of independent disk (RAID5)-grade disk array |
-
2011
- 2011-11-08 CN CN201110350044.3A patent/CN102521068B/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| CN102521068A (en) | 2012-06-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN102521068B (en) | Reconstructing method of solid-state disk array | |
| KR101459861B1 (en) | Stripe-based memory operation | |
| US10872012B2 (en) | XOR recovery schemes utilizing external memory | |
| US7856528B1 (en) | Method and apparatus for protecting data using variable size page stripes in a FLASH-based storage system | |
| Lee et al. | FRA: A flash-aware redundancy array of flash storage devices | |
| US8560881B2 (en) | FLASH-based memory system with static or variable length page stripes including data protection information and auxiliary protection stripes | |
| CN103488583B (en) | A high-performance and high-reliability solid-state disk implementation method | |
| US9058288B2 (en) | Redundant storage in non-volatile memory by storing redundancy information in volatile memory | |
| TW201923575A (en) | On the fly raid parity calculation | |
| JP2019502987A (en) | Multipage failure recovery in non-volatile memory systems | |
| US20120221922A1 (en) | Memory management system and method | |
| Park et al. | Reliability and performance enhancement technique for SSD array storage system using RAID mechanism | |
| CN102483686A (en) | Data storage system and method for operating a data storage system | |
| CN107402890B (en) | Data processing method and system based on solid-state disk array and cache | |
| Zeng et al. | HRAID6ML: A hybrid RAID6 storage architecture with mirrored logging | |
| Ma et al. | Log-roc: Log structured raid on open-channel ssd | |
| Mei et al. | A high-performance and high-reliability RAIS5 storage architecture with adaptive stripe | |
| US11640336B2 (en) | Fast cache with intelligent copyback | |
| CN115826850A (en) | Flash memory/SCM (Single chip multiple Access) hybrid array method, device and equipment based on data reference rate | |
| CN118708121A (en) | A RAID card adaptive fault tolerance optimization method and system based on erasure code | |
| Lee et al. | An efficient management scheme for updating redundant information in flash-based storage system |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| C06 | Publication | ||
| PB01 | Publication | ||
| C10 | Entry into substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| C14 | Grant of patent or utility model | ||
| GR01 | Patent grant | ||
| CF01 | Termination of patent right due to non-payment of annual fee | ||
| CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140723 |