[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN111782439B - Double-disk circulation verification method based on horizontal coding - Google Patents

Double-disk circulation verification method based on horizontal coding Download PDF

Info

Publication number
CN111782439B
CN111782439B CN202010655155.4A CN202010655155A CN111782439B CN 111782439 B CN111782439 B CN 111782439B CN 202010655155 A CN202010655155 A CN 202010655155A CN 111782439 B CN111782439 B CN 111782439B
Authority
CN
China
Prior art keywords
data
check
disk
value
mapping table
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
CN202010655155.4A
Other languages
Chinese (zh)
Other versions
CN111782439A (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.)
Hebei University of Technology
Original Assignee
Hebei University of Technology
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 Hebei University of Technology filed Critical Hebei University of Technology
Priority to CN202010655155.4A priority Critical patent/CN111782439B/en
Publication of CN111782439A publication Critical patent/CN111782439A/en
Application granted granted Critical
Publication of CN111782439B publication Critical patent/CN111782439B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • 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/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0689Disk arrays, e.g. RAID, JBOD
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

The invention discloses a double-disk circulation checking method based on horizontal coding, which comprises the following steps that the layout of the horizontal coding consists of N disks, wherein N-2 data disks and 2 checking disks are arranged; all the magnetic disks are striped, the data blocks and the check blocks which are positioned in the same row form one stripe, and m stripes are formed in a conformal mode. Constructing a mapping table in the storage system, wherein corresponding values in the mapping table represent positions of check values in strips with the same offset; setting the same initial value for all marks in the mapping table, wherein the initial value represents the current check value and is stored in a second check disk; when a write request arrives, dividing write request data into a plurality of parts according to the size of a data block, performing data write operation by taking a stripe as a unit, generating a check value and storing the check value into a corresponding check disk; after each new check value is stored, the mark corresponding to the current strip in the mapping table is inverted, and the mark is updated; after all the stripes are written, all the final check values are merged.

Description

一种基于水平编码的双盘循环校验方法A Double Disk Cyclic Verification Method Based on Horizontal Coding

技术领域technical field

本发明属于数据存储领域,具体是一种基于水平编码的双盘循环校验方法。The invention belongs to the field of data storage, in particular to a horizontal encoding-based double-disk cyclic verification method.

背景技术Background technique

随着互联网的快速发展和大数据时代的到来,网络数据信息呈现出爆炸性的增长趋势,对数据进行高效益的存储、管理和使用已经成为Internet和其相关行业亟待解决的问题,对网络存储系统的性能提出了巨大的挑战。现如今,网络存储系统在存储容量、数据可用性以及I/O性能等方面都得到了很大的提高,网络存储在各行业得到越来越广泛的应用。目前,主流的网络存储技术主要为三种:直连存储(Directed Attached Storage)、附网存储(Network Attached Storage)、存储区域网(Storage Area Network),每一种网络都有各自的适用领域。With the rapid development of the Internet and the advent of the era of big data, network data information is showing an explosive growth trend. The efficient storage, management and use of data has become an urgent problem to be solved by the Internet and related industries. The network storage system performance poses a huge challenge. Nowadays, network storage systems have been greatly improved in terms of storage capacity, data availability, and I/O performance, and network storage has been more and more widely used in various industries. Currently, there are mainly three mainstream network storage technologies: Directed Attached Storage, Network Attached Storage, and Storage Area Network, each of which has its own applicable fields.

存储需求的迅猛发展使得工业界对磁盘容量、节能等方面提出了更高的要求,为此Chen P M,Lee E K,Gibson G A等人提出了RAID技术《RAID:high-performance,reliable secondary storage[J].Acm Computing Surveys,1994,26(2):145-185》。然而随着大数据的发展,传统RAID技术只有一块校验盘,在磁盘频繁读写方面存在先天不足,对于特定数据频繁存取的存储环境并不适应。数据在频繁读写数据盘的时候需要时刻进行校验盘校验,而校验盘的读写速率会成为数据存储的瓶颈,尤其是在交互性强的应用程序,网络游戏等读写频繁的系统中,此问题尤为严重。The rapid development of storage requirements has made the industry put forward higher requirements for disk capacity and energy saving. For this reason, Chen P M, Lee E K, Gibson GA and others proposed the RAID technology "RAID: high-performance, reliable secondary storage [J ]. Acm Computing Surveys, 1994, 26(2): 145-185". However, with the development of big data, the traditional RAID technology has only one parity disk, which has inherent shortcomings in frequent disk read and write, and is not suitable for the storage environment where specific data is frequently accessed. When the data is frequently read and written to the data disk, the verification disk needs to be verified at all times, and the read and write speed of the verification disk will become the bottleneck of data storage, especially in interactive applications, online games, etc. system, this problem is particularly serious.

发明内容Contents of the invention

针对现有技术的不足,本发明拟解决的技术问题是,提供一种基于水平编码的双盘循环校验方法。Aiming at the deficiencies of the prior art, the technical problem to be solved by the present invention is to provide a double disk cyclic verification method based on horizontal coding.

本发明解决所述技术问题的技术方案是,提供一种基于水平编码的双盘循环校验方法,其特征在于该方法包括以下步骤:The technical solution of the present invention to solve the technical problem is to provide a double-disk cyclic verification method based on horizontal encoding, which is characterized in that the method includes the following steps:

(1)水平编码的布局由N个磁盘组成,其中包括N-2个数据盘和2个校验盘;N>2;将每个数据盘划分成m个大小相等的数据块;每个校验盘划分成m个与数据块相同大小的校验块;对所有磁盘进行条带化,位于同一行的数据块和校验块构成一个条带,共形成m个条带;数据盘之间并行工作,条带之间顺序工作;m≥1;(1) The layout of horizontal coding consists of N disks, including N-2 data disks and 2 check disks; N>2; each data disk is divided into m data blocks of equal size; each check disk The check disk is divided into m check blocks of the same size as the data block; all disks are striped, and the data blocks and check blocks in the same row form a stripe, forming a total of m stripes; between data disks Work in parallel, work sequentially between stripes; m≥1;

(2)在基于该布局的存储系统中构建一个映射表,映射表中相应的值表示相同偏移的条带中校验值所在位置;对映射表中的所有标记设置相同的初始值,该初始值代表当前校验值存放在第二个校验盘中;(2) Construct a mapping table in the storage system based on the layout, and the corresponding value in the mapping table indicates the location of the check value in the strip with the same offset; set the same initial value for all the marks in the mapping table, the The initial value represents the current calibration value stored in the second calibration disk;

在写请求到来时,按照数据块的大小将写请求数据分割为若干份,以条带为单位进行数据写操作,生成校验值并存入相应的校验盘;每存入一次新校验值后,都要对映射表中当前条带对应的标记取反,更新标记;直到写满所有条带;When the write request comes, the write request data is divided into several parts according to the size of the data block, and the data write operation is performed in units of stripes, and the check value is generated and stored in the corresponding check disk; each time a new check is stored value, the flag corresponding to the current stripe in the mapping table must be reversed, and the flag should be updated; until all stripes are filled;

(3)所有条带写满后,对所有最终校验值进行归并。(3) After all stripes are full, merge all final check values.

与现有技术相比,本发明有益效果在于:Compared with the prior art, the present invention has the beneficial effects of:

1.提高数据的读写速率。由于传统的RAID架构中只包含单个校验盘,在写入新数据时,需要读旧校验值和旧数据,再将生成的新数据写入校验盘中,这样会大大增加因读写校验盘而产生的延时。本方法在传统RAID的基础上增加了一个校验盘,采用双校验盘操作,一个校验盘用于读校验数据,另一个校验盘用于写校验数据,分工作业,有效解决了校验盘的读写瓶颈。1. Improve the data read and write rate. Since the traditional RAID architecture only includes a single check disk, when writing new data, it is necessary to read the old check value and old data, and then write the generated new data into the check disk, which will greatly increase the The delay caused by checking the disk. This method adds a verification disk on the basis of traditional RAID, adopts double verification disk operation, one verification disk is used for reading verification data, and the other verification disk is used for writing verification data, and the work is divided into tasks, effectively Solved the read and write bottleneck of the verification disk.

2.采用具有分工读写的双校验盘操作,大大提高了存储系统的性能。2. The double check disk operation with division of labor for reading and writing is used, which greatly improves the performance of the storage system.

3.映射表占磁盘的空间较小,有效缩小了因校验磁盘归并产生的影响。3. The mapping table takes up less space on the disk, which effectively reduces the impact of disk merging for verification.

4.当某一个磁盘发生故障时,根据整个RAID磁盘组中相同条带的其他数据块和校验块进行异或,保证存储系统的可靠性。4. When a certain disk fails, XOR is performed according to other data blocks and parity blocks in the same stripe in the entire RAID disk group to ensure the reliability of the storage system.

附图说明Description of drawings

图1是本发明实施例1的双盘循环校验流程示意图。FIG. 1 is a schematic diagram of a dual-disk cyclic verification process in Embodiment 1 of the present invention.

图2是本发明实施例1的映射表标记的初始值示意图。FIG. 2 is a schematic diagram of the initial value of the mapping table flag in Embodiment 1 of the present invention.

图3是本发明实施例1的校验块P0中的局部校验值生成示意图。Fig. 3 is a schematic diagram of generation of a local check value in a check block P 0 according to Embodiment 1 of the present invention.

图4是本发明实施例1的校验块P0'中的局部校验值生成示意图。Fig. 4 is a schematic diagram of generating a local check value in a check block P 0 ′ according to Embodiment 1 of the present invention.

图5是本发明实施例1的校验块P0中的最终校验值生成示意图。Fig. 5 is a schematic diagram of generating a final check value in the check block P 0 according to Embodiment 1 of the present invention.

图6是本发明实施例1的校验块P1中的最终校验值和P2中的局部校验值生成示意图。Fig. 6 is a schematic diagram of generation of the final check value in the check block P1 and the partial check value in P2 according to Embodiment 1 of the present invention.

图7是本发明实施例1的经过四次写请求后生成的映射表标记示意图。FIG. 7 is a schematic diagram of markings of the mapping table generated after four write requests according to Embodiment 1 of the present invention.

具体实施方式Detailed ways

下面给出本发明的具体实施例。具体实施例仅用于进一步详细说明本发明,不限制本申请权利要求的保护范围。Specific examples of the present invention are given below. The specific embodiments are only used to further describe the present invention in detail, and do not limit the protection scope of the claims of the present application.

本发明提供了一种基于水平编码的双盘循环校验方法(简称方法),其特征在于该方法包括以下步骤:The invention provides a kind of double-disk cyclic verification method (abbreviation method) based on horizontal coding, it is characterized in that the method comprises the following steps:

(1)水平编码的布局由N个磁盘组成,其中包括N-2个数据盘和2个校验盘;将每个数据盘划分成m个大小相等的数据块,用于存储用户数据;每个校验盘划分成m个与数据块相同大小的校验块,用于存储校验数据;对所有磁盘进行条带化,位于同一行的数据块和校验块构成一个条带,共形成m个条带;数据盘之间并行工作,条带之间顺序工作;N>2;m≥1;(1) The layout of the horizontal encoding is composed of N disks, including N-2 data disks and 2 check disks; each data disk is divided into m data blocks of equal size for storing user data; A parity disk is divided into m parity blocks of the same size as the data block, which are used to store parity data; all disks are striped, and the data blocks and parity blocks in the same row form a strip, forming a total of m stripes; data disks work in parallel, and stripes work sequentially; N>2; m≥1;

(2)在基于该布局的存储系统中构建一个映射表,映射表中相应的值表示相同偏移的条带中校验值所在位置;对映射表中的所有标记设置相同的初始值,初始值设置为0或1,该初始值代表当前校验值存放在第二个校验盘中;(2) Construct a mapping table in the storage system based on this layout, and the corresponding value in the mapping table indicates the position of the check value in the strip with the same offset; set the same initial value for all the marks in the mapping table, the initial The value is set to 0 or 1, and the initial value represents that the current calibration value is stored in the second calibration disk;

在写请求到来时,按照数据块的大小将写请求数据分割为若干份,以条带为单位进行数据写操作,生成校验值并存入相应的校验盘;每存入一次新校验值后,都要对映射表中当前条带对应的标记取反,更新标记;直到写满所有条带;When the write request comes, the write request data is divided into several parts according to the size of the data block, and the data write operation is performed in units of stripes, and the check value is generated and stored in the corresponding check disk; each time a new check is stored value, the flag corresponding to the current stripe in the mapping table must be reversed, and the flag should be updated; until all stripes are filled;

(3)所有条带写满后,对所有最终校验值进行归并。(3) After all stripes are full, merge all final check values.

优选地,步骤2)具体是:在基于该布局的存储系统中构建一个映射表,映射表中相应的值表示相同偏移的条带中校验值所在位置;对映射表中的所有标记设置相同的初始值,初始值设置为0或1,该初始值代表当前校验值存放在第二个校验盘中;Preferably, step 2) is specifically: constructing a mapping table in the storage system based on the layout, the corresponding value in the mapping table represents the location of the check value in the strip of the same offset; The same initial value, the initial value is set to 0 or 1, the initial value represents the current calibration value stored in the second calibration disk;

第一次写请求到来,按照数据块的大小将写请求数据分割为若干份,将分割后的写请求数据从第一个条带的第一个数据块开始并行写入,新写入的数据与存储系统的初始值进行异或生成校验值,并存到第一个校验盘中,并对映射表中当前条带对应的标记取反;When the first write request arrives, the write request data is divided into several parts according to the size of the data block, and the divided write request data is written in parallel from the first data block of the first stripe, and the newly written data Perform XOR with the initial value of the storage system to generate a check value, store it in the first check disk, and reverse the mark corresponding to the current stripe in the mapping table;

第二次写请求到来,判断当前条带是否写满;若未写满,按照数据块的大小将写请求数据分割为若干份,将分割后的写请求数据写入与上一个写请求数据相邻的空闲数据块中,新写入的数据和第一个校验盘中已经存入的校验值相互异或生成新的校验值,并存到第二个校验盘中,并对映射表中当前条带对应的标记取反;若已写满,则从下一个条带的第一个数据块开始写入,新写入的数据与存储系统的初始值进行异或生成该条带的校验值,并存到第一个校验盘中,并对映射表中当前条带对应的标记取反;When the second write request arrives, judge whether the current stripe is full; if it is not full, divide the write request data into several parts according to the size of the data block, and write the divided write request data corresponding to the previous write request data. In adjacent free data blocks, the newly written data and the check value already stored in the first check disk are XORed with each other to generate a new check value, which is stored in the second check disk, and mapped Invert the mark corresponding to the current stripe in the table; if it is full, start writing from the first data block of the next stripe, and XOR the newly written data with the initial value of the storage system to generate the stripe check value, and store it in the first check disk, and reverse the mark corresponding to the current stripe in the mapping table;

第三次写请求到来,判断当前条带是否写满;若未写满,按照数据块的大小将写请求数据分割为若干份,将分割后的写请求数据写入与上一个写请求数据相邻的空闲数据块中,新写入的数据和第二个校验盘中已经存入的校验值相互异或生成新的校验值,并将第一次写请求时第一个校验盘中的校验值替换成新的校验值,同时对映射表中当前条带对应的标记取反;若已写满,则从下一个条带的第一个数据块开始写入,新写入的数据与存储系统的初始值进行异或生成该条带的校验值,并存到第一个校验盘中,同时对映射表中当前条带对应的标记取反;When the third write request arrives, judge whether the current stripe is full; if it is not full, divide the write request data into several parts according to the size of the data block, and write the divided write request data corresponding to the previous write request data. In adjacent free data blocks, the newly written data and the check value stored in the second check disk are XORed with each other to generate a new check value, and the first check value in the first write request The check value in the disk is replaced with a new check value, and at the same time, the mark corresponding to the current stripe in the mapping table is reversed; if it is full, write from the first data block of the next stripe, and the new The written data is XORed with the initial value of the storage system to generate the verification value of the stripe, and stored in the first verification disk, and at the same time, the flag corresponding to the current stripe in the mapping table is reversed;

重复上述步骤,直到写满所有条带。Repeat the above steps until all stripes are filled.

优选地,步骤3)具体是:根据映射表更新的标记,确定每个条带的最终校验值的存储位置;最后,将所有条带的全部最终校验值归并到同一个校验盘中,再移除另一个校验盘。Preferably, step 3) is specifically: according to the tag updated in the mapping table, determine the storage location of the final check value of each stripe; finally, merge all the final check values of all the stripes into the same check disk , and then remove another check disk.

优选地,步骤3)中,对所有的映射表标记进行求和,若求和结果大于标记个数m的1/2,则将最终校验值归并到第二个校验盘中,否则归并到第一个校验盘中。Preferably, in step 3), all the mapping table marks are summed, and if the summation result is greater than 1/2 of the number m of marks, the final check value is merged into the second check disk, otherwise merged to the first check disk.

优选地,当出现磁盘损坏时,损坏磁盘中原有的数据丢失,此时需要用新磁盘替换损坏磁盘并进行数据恢复,数据恢复的具体方法是:读取未损坏数据盘的数据中和未损坏校验盘的校验值,相同条带中的数据和校验值相互异或得到的结果为恢复数据,并将恢复数据存储到替换的新磁盘中。Preferably, when the disk is damaged, the original data in the damaged disk is lost. At this time, it is necessary to replace the damaged disk with a new disk and perform data recovery. The specific method of data recovery is: read the data of the undamaged data disk and neutralize the undamaged The check value of the check disk, the data in the same stripe and the check value are XORed with each other, and the result obtained is recovery data, and the recovery data is stored in a new replacement disk.

实施例1Example 1

(1)如图1所示,水平编码有6个磁盘,其中4个数据盘(D0~D3)和2个校验盘(P和P'),每个数据盘分成m个大小相等的数据块,每个校验盘分成m个与数据块同样大小的校验块,为了便于理解,块大小设置为64KB。同一行的数据块和校验块构成一个条带,共m个条带(Stripe0~Stripem-1);(1) As shown in Figure 1, there are 6 disks for horizontal encoding, including 4 data disks (D 0 ~ D 3 ) and 2 parity disks (P and P'), and each data disk is divided into m equal-sized Each check disk is divided into m check blocks of the same size as the data block. For ease of understanding, the block size is set to 64KB. The data block and check block in the same row form a stripe, a total of m stripes (Stripe 0 ~Stripe m-1 );

本实施例中的存储系统的初始值为0,映射表中所有标记的初始值设置为0(如图2),0代表当前的校验值在P',1代表当前校验值在P中;The initial value of the storage system in this embodiment is 0, and the initial value of all marks in the mapping table is set to 0 (as shown in Figure 2), 0 represents that the current check value is in P', and 1 represents that the current check value is in P ;

(2)第一次写请求到来,如图3所示,数据大小为128KB,数据大小大于块大小,因此,将数据分割成2份,写到数据块B0,0和B1,0中,将B0,0和B1,0中的数据与存储系统的初始值相互异或生成的校验值写入校验盘P的校验块P0

Figure BDA0002576498730000051
此时,将映射表中条带Stripe0对应的标记取反,更新为1;(2) The first write request arrives, as shown in Figure 3, the data size is 128KB, and the data size is larger than the block size. Therefore, the data is divided into two parts and written into data blocks B 0,0 and B 1,0 , write the verification value generated by the exclusive OR of the data in B 0,0 and B 1,0 and the initial value of the storage system to the verification block P 0 of the verification disk P
Figure BDA0002576498730000051
At this point, invert the flag corresponding to Stripe 0 in the mapping table and update it to 1;

第二次写请求到来,如图4所示,数据大小为54KB,数据大小小于块大小,数据写到数据块B2,0中,将B2,0中的数据与P0相互异或生成的校验值写入校验盘P'的校验块P0'

Figure BDA0002576498730000052
此时,将映射表中条带Stripe0对应的标记取反,更新为0;The second write request comes, as shown in Figure 4, the data size is 54KB, the data size is smaller than the block size, the data is written to the data block B 2,0 , and the data in B 2,0 and P 0 are mutually XORed to generate Write the verification value of the verification block P 0 ' of the verification disk P'
Figure BDA0002576498730000052
At this point, invert the flag corresponding to Stripe 0 in the mapping table and update it to 0;

第三次写请求到来,如图5所示,数据块大小为24KB,数据大小小于块大小,数据写到数据块B3,0中,将B3,0中的数据与P0'相互异或生成的校验值写入校验盘P的校验块P0

Figure BDA0002576498730000053
原校验值删除,替换成新校验值;此时,将映射表中条带Stripe0对应的标记取反,更新为1;The third write request comes, as shown in Figure 5, the data block size is 24KB, the data size is smaller than the block size, the data is written into the data block B 3,0 , and the data in B 3,0 and P 0 ' are mutually exclusive Or write the generated verification value into the verification block P of the verification disk P 0
Figure BDA0002576498730000053
Delete the original check value and replace it with the new check value; at this time, invert the mark corresponding to Stripe 0 in the mapping table and update it to 1;

第四次写请求到来,如图6所示,数据块大小为380KB,数据大小大于块大小,因此,将数据分割成6份,分别写到数据块B0,1、B1,1、B2,1、B3,1、B0,2和B1,2中,将B0,1、B1,1、B2,1、B3,1与存储系统的初始值相互异或生成的校验值写入校验盘P的校验块P1

Figure BDA0002576498730000054
再把B0,2、B1,2与存储系统的初始值相互异或生成的校验值写入校验盘P的校验块P2/>
Figure BDA0002576498730000055
此时,将映射表中条带Stripe1对应的标记取反,更新为1;将映射表中条带Stripe2对应的标记取反,更新为1;The fourth write request comes, as shown in Figure 6, the data block size is 380KB, and the data size is larger than the block size. Therefore, the data is divided into 6 parts and written to data blocks B 0,1 , B 1,1 , and B respectively. 2,1 , B 3,1 , B 0,2 and B 1,2 , B 0,1 , B 1,1 , B 2,1 , B 3,1 and the initial value of the storage system are mutually exclusive or generated Write the verification value of the verification block P 1 of the verification disk P
Figure BDA0002576498730000054
Then write the verification value generated by XOR of B 0,2 , B 1,2 and the initial value of the storage system into the verification block P 2 /> of the verification disk P
Figure BDA0002576498730000055
At this point, invert the flag corresponding to Stripe 1 in the mapping table and update it to 1; invert the flag corresponding to Stripe 2 in the mapping table and update it to 1;

其它条带重复上述步骤;Repeat the above steps for other strips;

(3)所有条带写满后,对最终校验值进行归并;根据映射表更新的标记,确定每个条带的最终校验值的存储位置,其中根据图7,条带Stripe0、Stripe1和Stripe2对应的标记都为1,因此,P0、P1和P2中存储的是最终校验值;最后,将所有条带的全部最终校验值归并到同一个校验盘中,再移除另一个校验盘。(3) After all stripes are filled, the final check value is merged; according to the tag updated in the mapping table, determine the storage location of the final check value of each stripe, wherein according to Fig. 7, the stripe Stripe 0 , Stripe The marks corresponding to 1 and Stripe 2 are both 1, therefore, the final check values are stored in P 0 , P 1 and P 2 ; finally, all the final check values of all stripes are merged into the same check disk , and then remove another check disk.

假设在存储过程中数据盘D2发生故障或损坏,D2中原有的数据丢失,此时,用新磁盘D2'替换损坏磁盘D2并进行数据恢复,数据恢复的具体方法是:读取B0,0、B1,0、B3,0中的数据和校验块P0'中的局部校验值,B2,0数据由B0,0中的数据、B1,0中的数据、B3,0中的数据和校验块P0'中的局部校验值进行异或得出

Figure BDA0002576498730000061
并将计算得到的B2,0数据写入数据盘D2'的数据块B2,0中。数据块B2,1~B2,n-1的数据恢复方法相同。Assuming that the data disk D2 fails or is damaged during the storage process, and the original data in D2 is lost, at this time, replace the damaged disk D2 with a new disk D2 ' and perform data recovery. The specific method of data recovery is: read The data in B 0,0 , B 1,0 , B 3,0 and the local check value in the check block P 0 ', the data in B 2,0 is composed of the data in B 0,0 and the data in B 1,0 The data in B 3,0 and the local check value in the check block P 0 ' are XORed to obtain
Figure BDA0002576498730000061
And write the calculated B2,0 data into the data block B2,0 of the data disk D2 '. The data restoration method of data blocks B 2,1 to B 2,n-1 is the same.

本发明未述及之处适用于现有技术。What is not mentioned in the present invention is applicable to the prior art.

Claims (5)

1.一种基于水平编码的双盘循环校验方法,其特征在于该方法包括以下步骤:1. A double-disk cyclic verification method based on horizontal encoding, characterized in that the method may further comprise the steps: (1)水平编码的布局由N个磁盘组成,其中包括N-2个数据盘和2个校验盘;N>2;将每个数据盘划分成m个大小相等的数据块;每个校验盘划分成m个与数据块相同大小的校验块;对所有磁盘进行条带化,位于同一行的数据块和校验块构成一个条带,共形成m个条带;数据盘之间并行工作,条带之间顺序工作;m≥1;(1) The layout of horizontal coding consists of N disks, including N-2 data disks and 2 check disks; N>2; each data disk is divided into m data blocks of equal size; each check disk The check disk is divided into m check blocks of the same size as the data block; all disks are striped, and the data blocks and check blocks in the same row form a stripe, forming a total of m stripes; between data disks Work in parallel, work sequentially between stripes; m≥1; (2)在基于该布局的存储系统中构建一个映射表,映射表中相应的值表示相同偏移的条带中校验值所在位置;对映射表中的所有标记设置相同的初始值,该初始值代表当前校验值存放在第二个校验盘中;(2) Construct a mapping table in the storage system based on the layout, and the corresponding value in the mapping table indicates the location of the check value in the strip with the same offset; set the same initial value for all the marks in the mapping table, the The initial value represents the current calibration value stored in the second calibration disk; 在写请求到来时,按照数据块的大小将写请求数据分割为若干份,以条带为单位进行数据写操作,生成校验值并存入相应的校验盘;每存入一次新校验值后,都要对映射表中当前条带对应的标记取反,更新标记;直到写满所有条带;When the write request comes, the write request data is divided into several parts according to the size of the data block, and the data write operation is performed in units of stripes, and the check value is generated and stored in the corresponding check disk; each time a new check is stored value, the flag corresponding to the current stripe in the mapping table must be reversed, and the flag should be updated; until all stripes are filled; (3)所有条带写满后,对所有最终校验值进行归并。(3) After all stripes are full, merge all final check values. 2.根据权利要求1所述的基于水平编码的双盘循环校验方法,其特征在于步骤2)具体是:在基于该布局的存储系统中构建一个映射表,映射表中相应的值表示相同偏移的条带中校验值所在位置;对映射表中的所有标记设置相同的初始值,初始值设置为0或1,该初始值代表当前校验值存放在第二个校验盘中;2. the double-disk cyclic verification method based on horizontal coding according to claim 1, is characterized in that step 2) is specifically: build a mapping table in the storage system based on this layout, corresponding value in the mapping table represents the same The position of the check value in the offset strip; set the same initial value for all the marks in the mapping table, the initial value is set to 0 or 1, and the initial value represents the current check value stored in the second check disk ; 第一次写请求到来,按照数据块的大小将写请求数据分割为若干份,将分割后的写请求数据从第一个条带的第一个数据块开始并行写入,新写入的数据与存储系统的初始值进行异或生成校验值,并存到第一个校验盘中,并对映射表中当前条带对应的标记取反;When the first write request arrives, the write request data is divided into several parts according to the size of the data block, and the divided write request data is written in parallel from the first data block of the first stripe, and the newly written data Perform XOR with the initial value of the storage system to generate a check value, store it in the first check disk, and reverse the mark corresponding to the current stripe in the mapping table; 第二次写请求到来,判断当前条带是否写满;若未写满,按照数据块的大小将写请求数据分割为若干份,将分割后的写请求数据写入与上一个写请求数据相邻的空闲数据块中,新写入的数据和第一个校验盘中已经存入的校验值相互异或生成新的校验值,并存到第二个校验盘中,并对映射表中当前条带对应的标记取反;若已写满,则从下一个条带的第一个数据块开始写入,新写入的数据与存储系统的初始值进行异或生成该条带的校验值,并存到第一个校验盘中,并对映射表中当前条带对应的标记取反;When the second write request arrives, judge whether the current stripe is full; if it is not full, divide the write request data into several parts according to the size of the data block, and write the divided write request data corresponding to the previous write request data. In adjacent free data blocks, the newly written data and the check value already stored in the first check disk are XORed with each other to generate a new check value, which is stored in the second check disk, and mapped Invert the mark corresponding to the current stripe in the table; if it is full, start writing from the first data block of the next stripe, and XOR the newly written data with the initial value of the storage system to generate the stripe check value, and store it in the first check disk, and reverse the mark corresponding to the current stripe in the mapping table; 第三次写请求到来,判断当前条带是否写满;若未写满,按照数据块的大小将写请求数据分割为若干份,将分割后的写请求数据写入与上一个写请求数据相邻的空闲数据块中,新写入的数据和第二个校验盘中已经存入的校验值相互异或生成新的校验值,并将第一次写请求时第一个校验盘中的校验值替换成新的校验值,同时对映射表中当前条带对应的标记取反;若已写满,则从下一个条带的第一个数据块开始写入,新写入的数据与存储系统的初始值进行异或生成该条带的校验值,并存到第一个校验盘中,同时对映射表中当前条带对应的标记取反;When the third write request arrives, judge whether the current stripe is full; if it is not full, divide the write request data into several parts according to the size of the data block, and write the divided write request data corresponding to the previous write request data. In adjacent free data blocks, the newly written data and the check value stored in the second check disk are XORed with each other to generate a new check value, and the first check value in the first write request The check value in the disk is replaced with a new check value, and at the same time, the mark corresponding to the current stripe in the mapping table is reversed; if it is full, write from the first data block of the next stripe, and the new The written data is XORed with the initial value of the storage system to generate the verification value of the stripe, and stored in the first verification disk, and at the same time, the flag corresponding to the current stripe in the mapping table is reversed; 重复上述步骤,直到写满所有条带。Repeat the above steps until all stripes are filled. 3.根据权利要求1所述的基于水平编码的双盘循环校验方法,其特征在于步骤3)具体是:根据映射表更新的标记,确定每个条带的最终校验值的存储位置;最后,将所有条带的全部最终校验值归并到同一个校验盘中,再移除另一个校验盘。3. the double-disc cyclic verification method based on horizontal coding according to claim 1, is characterized in that step 3) is specifically: according to the mark that mapping table updates, determine the storage location of the final verification value of each strip; Finally, merge all final check values of all stripes into the same check disk, and then remove another check disk. 4.根据权利要求1所述的基于水平编码的双盘循环校验方法,其特征在于步骤3)中,对所有的映射表标记进行求和,若求和结果大于标记个数m的1/2,则将最终校验值归并到第二个校验盘中,否则归并到第一个校验盘中。4. the double-disk cyclic verification method based on horizontal encoding according to claim 1, is characterized in that in step 3), all mapping table marks are summed, if the summation result is greater than 1/ of the number of marks m 2, merge the final check value into the second check disk, otherwise merge it into the first check disk. 5.根据权利要求1所述的基于水平编码的双盘循环校验方法,其特征在于当出现磁盘损坏时,损坏磁盘中原有的数据丢失,此时需要用新磁盘替换损坏磁盘并进行数据恢复,数据恢复的具体方法是:读取未损坏数据盘中的数据和未损坏校验盘的校验值,相同条带中的数据和校验值相互异或得到的结果为恢复数据,并将恢复数据存储到替换的新磁盘中。5. The double-disk cyclic verification method based on horizontal encoding according to claim 1, characterized in that when the disk is damaged, the original data in the damaged disk is lost, and now it is necessary to replace the damaged disk with a new disk and perform data recovery , the specific method of data recovery is: read the data in the undamaged data disk and the check value of the undamaged check disk, the data and the check value in the same stripe are XORed with each other, and the result obtained is the restored data, and the The recovery data is stored to a new replacement disk.
CN202010655155.4A 2020-07-09 2020-07-09 Double-disk circulation verification method based on horizontal coding Active CN111782439B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010655155.4A CN111782439B (en) 2020-07-09 2020-07-09 Double-disk circulation verification method based on horizontal coding

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010655155.4A CN111782439B (en) 2020-07-09 2020-07-09 Double-disk circulation verification method based on horizontal coding

Publications (2)

Publication Number Publication Date
CN111782439A CN111782439A (en) 2020-10-16
CN111782439B true CN111782439B (en) 2023-06-06

Family

ID=72758384

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010655155.4A Active CN111782439B (en) 2020-07-09 2020-07-09 Double-disk circulation verification method based on horizontal coding

Country Status (1)

Country Link
CN (1) CN111782439B (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112463040B (en) * 2020-11-18 2022-07-08 苏州浪潮智能科技有限公司 Data writing method and device, electronic equipment and storage medium
CN112905387B (en) * 2021-03-04 2022-05-24 河北工业大学 A RAID6 encoding and data recovery method based on the encoding
CN113297001B (en) * 2021-05-20 2023-02-24 山东云海国创云计算装备产业创新中心有限公司 RAID (redundant array of independent disks) coding and decoding method and coding and decoding circuit
CN113590042B (en) * 2021-07-29 2024-03-19 杭州宏杉科技股份有限公司 Data protection storage method, device and equipment

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101504623A (en) * 2009-03-20 2009-08-12 杭州华三通信技术有限公司 Independent disk redundancy array construction method and device
CN102023819A (en) * 2010-12-01 2011-04-20 北京同有飞骥科技股份有限公司 Method for constructing double-disk fault tolerance horizontal grouping and parallel access disk array
CN105930099A (en) * 2015-05-20 2016-09-07 德州学院 Double-disc fault tolerant redundant array of independent disks capable of eliminating local parallel read-modify-write operation
CN106874141A (en) * 2015-12-11 2017-06-20 中兴通讯股份有限公司 A kind of fault-tolerance approach and IPTV system of data storage load

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10210063B2 (en) * 2017-02-05 2019-02-19 International Business Machines Corporation Disk array storage controller

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101504623A (en) * 2009-03-20 2009-08-12 杭州华三通信技术有限公司 Independent disk redundancy array construction method and device
CN102023819A (en) * 2010-12-01 2011-04-20 北京同有飞骥科技股份有限公司 Method for constructing double-disk fault tolerance horizontal grouping and parallel access disk array
CN105930099A (en) * 2015-05-20 2016-09-07 德州学院 Double-disc fault tolerant redundant array of independent disks capable of eliminating local parallel read-modify-write operation
CN106874141A (en) * 2015-12-11 2017-06-20 中兴通讯股份有限公司 A kind of fault-tolerance approach and IPTV system of data storage load

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Ripple-RAID:一种面向连续数据存储的高效能盘阵;孙志卓等;《软件学报》;第1-16页 *

Also Published As

Publication number Publication date
CN111782439A (en) 2020-10-16

Similar Documents

Publication Publication Date Title
CN111782439B (en) Double-disk circulation verification method based on horizontal coding
CN110442535B (en) Method and system for improving reliability of distributed solid-state disk key value cache system
CN103761195B (en) Storage method utilizing distributed data encoding
KR20060052772A (en) Data storage subsystem and data update method
CN112799604B (en) A RAID6 disk array expansion method and data filling method based on N-Code
CN102799533B (en) Method and apparatus for shielding damaged sector of disk
WO2017173623A1 (en) Method and storage device for processing stripes in storage device
CN105339907A (en) Synchronous mirroring in non-volatile memory systems
CN103049222A (en) RAID5 (redundant array of independent disk 5) write IO optimization processing method
CN101984400B (en) RAID control method, device and system
CN101546249A (en) On-line capacity expansion method for disk arrays
CN110515541B (en) Method for updating erasure code non-aligned data in distributed storage
CN104407807B (en) A Storage Expansion Method for RS Coded Storage Cluster
US6871317B1 (en) Technique for efficiently organizing and distributing parity blocks among storage devices of a storage array
CN103870352B (en) Method and system for data storage and reconstruction
CN111831223B (en) Fault-tolerant coding method, device and system for improving expandability of data deduplication system
CN104182176B (en) A Rapid Expansion Method of Redundant Array of Independent Disks RAID5
CN107250986A (en) Date classification, distribution and reconstruct
CN105930097A (en) Distributed verification redundant array of independent disks capable of eliminating local parallel read-modify-write operation
CN103019893A (en) Multi-disk fault-tolerant two-dimensional hybrid disk RAID4 system architecture and read-write method thereof
CN104866244A (en) RAID-6 I/O scheduling method for balancing strip writing
WO2023151290A1 (en) Data encoding method and apparatus, device, and medium
CN105930099B (en) The fault-tolerant disk array of double plate of small write operation in a kind of elimination local parallel
CN110600070B (en) Coding and repairing method for improving repairing performance of solid state disk array system
Deng et al. A graph-assisted out-of-place update scheme for erasure coded storage systems

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