CN115543216A - Disk array distribution architecture, block calculation method, system, device and medium - Google Patents
Disk array distribution architecture, block calculation method, system, device and medium Download PDFInfo
- Publication number
- CN115543216A CN115543216A CN202211503958.3A CN202211503958A CN115543216A CN 115543216 A CN115543216 A CN 115543216A CN 202211503958 A CN202211503958 A CN 202211503958A CN 115543216 A CN115543216 A CN 115543216A
- Authority
- CN
- China
- Prior art keywords
- target
- block
- stripe
- blocks
- raid10
- 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.)
- Granted
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 155
- 238000005192 partition Methods 0.000 claims abstract description 57
- 230000005540 biological transmission Effects 0.000 claims description 19
- 238000000034 method Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 16
- 238000000638 solvent extraction Methods 0.000 claims description 11
- 238000011144 upstream manufacturing Methods 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 5
- 238000003491 array Methods 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种磁盘阵列分布架构、分块计算方法、系统、设备和介质,其中,磁盘阵列为RAID10,RAID10包括多个条带,每个条带至少包括一对分块,当RAID10中每个磁盘的分块大小设置为第一预设大小时,每个条带包括两对分块;当RAID10中每个磁盘的分块大小设置为第二预设大小时,每个条带包括一对分块;其中,每对分块互为镜像,有效地降低条带信息的内存需求,此外,采磁盘阵列分布架构的分块计算方法,去掉了现有技术对两种分块大小的判断,直接将分块大小及其它信息代入分块计算方法便可以得到目标分块的目标分块编码和目标分块内偏移,降低了计算方法复杂度,提高了分块计算效率。
The present application relates to a disk array distribution architecture, block computing method, system, device and medium, wherein the disk array is RAID10, and RAID10 includes a plurality of stripes, and each stripe includes at least one pair of partitions. When each stripe in RAID10 When the partition size of each disk is set to the first preset size, each stripe includes two pairs of partitions; when the partition size of each disk in RAID10 is set to the second preset size, each stripe includes one Pair of blocks; wherein, each pair of blocks is a mirror image of each other, effectively reducing the memory requirements of the stripe information. In addition, the block calculation method of the disk array distribution architecture is adopted, which eliminates the judgment of the two block sizes in the prior art , directly substituting the block size and other information into the block calculation method can obtain the target block code and target block internal offset of the target block, which reduces the complexity of the calculation method and improves the block calculation efficiency.
Description
技术领域technical field
本申请涉及存储技术领域,特别是涉及一种磁盘阵列分布架构、分块计算方法、系统、设备和介质。The present application relates to the field of storage technology, in particular to a disk array distribution architecture, a block computing method, system, equipment and media.
背景技术Background technique
RAID(Redundant Arrays of Independent Disks,磁盘阵列)技术广泛应用于存储领域中,RAID技术意味独立磁盘构成的一组冗余阵列。RAID10为RAID技术中的一种类型,RAID10的主要技术特征为:构造互为镜像的磁盘,存储数据的内容一致。当其中镜像磁盘中的任一磁盘发生故障时,数据不会丢失,从而保障存储信息的安全性。RAID (Redundant Arrays of Independent Disks, disk array) technology is widely used in the storage field, and RAID technology means a set of redundant arrays composed of independent disks. RAID10 is a type of RAID technology. The main technical features of RAID10 are: the construction of disks that are mirror images of each other, and the content of stored data is consistent. When any one of the mirrored disks fails, the data will not be lost, thus ensuring the security of the stored information.
RAID10技术包括条带,条带包括分块,分块大小为256KB(512sector)和128KB(256sector)两种。当条带的分块大小为256KB(512sector)时,一个条带由2个分块组成;由于磁盘的容量固定,如果条带的分块大小为128KB(256sector),针对固定容量的磁盘,条带数量会加倍。由于每个条带都需要一定的内存去存储相应的条带信息,那么针对加倍的条带,内存需求也就成为主要的问题。The RAID10 technology includes stripes, and the stripes include blocks, and the block sizes are 256KB (512sector) and 128KB (256sector). When the segment size of a stripe is 256KB (512sector), a stripe consists of 2 segments; due to the fixed capacity of the disk, if the segment size of a stripe is The number of belts will be doubled. Since each stripe requires a certain amount of memory to store the corresponding stripe information, memory requirements become a major issue for doubled stripes.
发明内容Contents of the invention
基于此,本申请提供一种磁盘阵列分布架构、分块计算方法、系统、设备和介质,以降低条带信息的内存需求。Based on this, the present application provides a disk array distribution architecture, a block computing method, system, device, and medium, so as to reduce memory requirements for stripe information.
一方面,提供一种磁盘阵列分布架构,所述磁盘阵列为RAID10,所述RAID10包括多个条带,每个所述条带至少包括一对分块,当所述RAID10中每个磁盘的分块大小设置为第一预设大小时,每个所述条带包括两对分块;当所述RAID10中每个磁盘的分块大小设置为第二预设大小时,每个所述条带包括一对分块;其中,每对所述分块互为镜像。In one aspect, a disk array distribution architecture is provided, the disk array is RAID10, the RAID10 includes multiple stripes, each of the stripes includes at least one pair of partitions, when the partitions of each disk in the RAID10 When the block size is set to the first preset size, each of the stripes includes two pairs of blocks; when the block size of each disk in the RAID10 is set to the second preset size, each of the stripes A pair of blocks is included; wherein each pair of blocks is a mirror image of each other.
在其中一个实施例中,当所述第一预设大小为128KB时,所述RAID10中每个磁盘的分块大小设置为128KB,每个所述条带包括两对分块。In one embodiment, when the first preset size is 128KB, the block size of each disk in the RAID10 is set to 128KB, and each stripe includes two pairs of blocks.
在其中一个实施例中,当所述第一预设大小为256KB时,所述RAID10中每个磁盘的分块大小设置为256KB,每个所述条带包括一对分块。In one embodiment, when the first preset size is 256KB, the block size of each disk in the RAID10 is set to 256KB, and each stripe includes a pair of blocks.
另一方面,提供了一种分块计算方法,所述分块计算方法包括:On the other hand, a block computing method is provided, and the block computing method includes:
对所述RAID10进行条带划分以及在所述条带下进行分块划分,并对划分好的条带和分块进行编号;Carry out stripe division to described RAID10 and perform block division under described stripe, and number the divided stripe and division;
接收数据传输指令,并根据所述数据传输指令确定目标条带以及目标条带的目标条带编号和目标条带内偏移;Receiving a data transfer instruction, and determining a target stripe, a target stripe number of the target stripe, and an offset within the target stripe according to the data transfer instruction;
根据目标条带的目标条带编号计算所述RAID10中所述目标条带所在行的以上行中的分块数量;Calculate the number of blocks in the above row of the row where the target stripe is located in the RAID10 according to the target stripe number of the target stripe;
根据所述RAID10中所述目标条带所在行的以上行中的分块数量计算所述目标条带中的目标分块的目标分块编号;Calculate the target block number of the target block in the target strip according to the number of blocks in the above row of the row where the target strip is located in the RAID10;
根据所述目标条带的目标条带内偏移计算所述目标分块的目标分块内偏移;calculating a target intra-slice offset of the target block according to a target intra-strip offset of the target slice;
其中,所述分块数量为分块编号不同的分块的数量。Wherein, the number of blocks is the number of blocks with different block numbers.
在其中一个实施例中,对所述RAID10进行条带划分以及在所述条带下进行分块划分,并对划分好的条带和分块进行编号,包括:In one of the embodiments, the RAID10 is divided into stripes and divided into blocks under the stripes, and the divided stripes and blocks are numbered, including:
根据需求进行条带划分,并确定分块大小及其分块对数;Divide the stripes according to the requirements, and determine the block size and its block logarithm;
根据所述分块大小及其分块对数进行分块划分;Carry out block division according to the block size and block logarithm thereof;
对划分好的条带和分块进行编号。Number the divided stripes and blocks.
在其中一个实施例中,获取到所述目标分块的目标分块编号和目标分块内偏移后,还包括:In one of the embodiments, after obtaining the target block number and the target block internal offset of the target block, it further includes:
根据所述目标分块的目标分块编号和目标分块内偏移确定目的地址,将数据读取或写入所述目的地址。A destination address is determined according to the target block number of the target block and the offset within the target block, and data is read or written into the destination address.
在其中一个实施例中,所述根据目标条带的目标条带编号计算所述RAID10中所述目标条带所在行的以上行中的分块数量,包括:In one of the embodiments, the calculation of the number of blocks in the above row of the row where the target stripe is located in the RAID10 according to the target stripe number of the target stripe includes:
确定所述RAID10中互为镜像的磁盘对数,以及所述RAID10每一行分块编号不同的分块的数量;Determine the number of disk pairs that are mirror images of each other in the RAID10, and the number of different partitions in each row of the RAID10 with a partition number;
根据所述RAID10中互为镜像的磁盘对数和所述RAID10每一行分块编号不同的分块的数量通过分块数量计算公式计算出所述RAID10中所述目标条带所在行的以上行中的分块数量。According to the number of disk pairs that are mirror images of each other in the RAID10 and the number of blocks with different block numbers in each row of the RAID10, the above row of the row where the target stripe in the RAID10 is located is calculated by the block number calculation formula number of blocks.
在其中一个实施例中,所述分块数量计算公式为:In one of the embodiments, the formula for calculating the number of blocks is:
Stripfirst=(Stretch/Mirrors)*Rowstripcount;Stripfirst=(Stretch/Mirrors)*Rowstripcount;
其中,Stripfirst为所述RAID10中所述目标条带所在行的以上行中的分块数量;Stretch为所述目标条带的目标条带编号;Mirrors为所述RAID10中互为镜像的磁盘对数;Rowstripcount为所述RAID10每一行分块编号不同的分块的数量。Wherein, Stripfirst is the number of blocks in the above row of the row where the target stripe is located in the RAID10; Stretch is the target stripe number of the target stripe; Mirrors is the number of disk pairs that are mirror images of each other in the RAID10 ; Rowstripcount is the number of blocks with different block numbers in each row of the RAID10.
在其中一个实施例中,所述根据所述RAID10中目标条带所在行的以上行中的分块数量计算所述目标条带中的目标分块编号,包括:In one of the embodiments, the calculation of the target block number in the target stripe according to the number of blocks in the row above the row where the target stripe is located in the RAID10 includes:
根据所述RAID10中所述目标条带所在行的以上行中的分块数量计算所述目标条带所在磁盘的第一个分块的分块编号;Calculate the block number of the first block of the disk where the target stripe is located according to the number of blocks in the row above the row where the target stripe is located in the RAID10;
根据所述目标条带的目标条带编号和目标条带内偏移计算所述目标分块落在磁盘中具体分块的增量编号;Calculate the incremental number of the specific block where the target block falls on the disk according to the target stripe number of the target stripe and the offset within the target stripe;
根据所述目标条带所在磁盘的第一个分块的分块编号和所述目标分块落在磁盘中具体分块的增量编号通过分块编号计算公式计算出所述目标条带中的目标分块的目标分块编号。According to the block number of the first block of the disk where the target stripe is located and the incremental number of the specific block where the target block falls on the disk, calculate the number of blocks in the target stripe through the block number calculation formula The target chunk number of the target chunk.
在其中一个实施例中,所述分块编号计算公式为:In one of the embodiments, the block number calculation formula is:
Stripnum=Stripfirst+Stretch%Mirrors+Mirrors*(Stretchoffset>>Stripsizeshift);Stripnum=Stripfirst+Stretch%Mirrors+Mirrors*(Stretchoffset>>Stripsizeshift);
其中,Stripnum为所述目标条带中的目标分块的目标分块编号;Stripfirst+Stretch%Mirrors 为所述目标条带所在磁盘中的第一个分块的编号;Stretchoffset为所述目标条带的目标条带内偏移;Stripsizeshift为计算指数;Stretchoffset>>Stripsizeshift运算为Stretchoffset/2^(Stripsizeshift)。Wherein, Stripnum is the target block number of the target block in the target strip; Stripfirst+Stretch%Mirrors is the number of the first block in the disk where the target strip is located; Stretchoffset is the target strip The offset within the target strip; Stripsizeshift is the calculation index; the Stretchoffset>>Stripsizeshift operation is Stretchoffset/2^(Stripsizeshift).
在其中一个实施例中,所述计算指数的计算方法为:In one of the embodiments, the calculation method for calculating the index is:
Stripsizeshift=log2(2*Stripsize);Stripsizeshift=log2(2*Stripsize);
其中,Stripsize为分块大小,单位为KB。Among them, Stripsize is the block size, and the unit is KB.
在其中一个实施例中,所述根据所述目标条带的目标条带内偏移计算所述目标条带中的目标分块的目标分块内偏移,包括:In one of the embodiments, the calculating the target intra-block offset of the target block in the target slice according to the target intra-strip offset of the target slice includes:
根据所述分块大小计算得到分块计算掩码;calculating a block calculation mask according to the block size;
根据所述目标条带的目标条带内偏移和所述分块计算掩码通过分块偏移计算公式计算出所述目标分块的目标分块内偏移。Calculate the target intra-slice offset of the target block by using a block offset calculation formula according to the target intra-slice offset of the target slice and the block calculation mask.
在其中一个实施例中,所述分块计算掩码的计算公式为:In one of the embodiments, the calculation formula of the block calculation mask is:
Stripsizemask=2*Stripsize-1;Stripsizemask=2*Stripsize-1;
其中,Stripsizemask为所述分块计算掩码。Wherein, Stripsizemask is the block calculation mask.
在其中一个实施例中,所述目标分块内偏移计算公式为:In one of the embodiments, the formula for calculating the offset within the target block is:
Stripoffset=Stretchoffset&Stripsizemask;Stripoffset=Stretchoffset&Stripsizemask;
其中,Stripoffset为所述目标分块内偏移。Wherein, Stripoffset is the offset within the target block.
另一方面,提供了一种分块计算系统,所述分块计算系统包括:In another aspect, a block computing system is provided, and the block computing system includes:
条带分块划分模块,用于对RAID10进行条带划分以及在所述条带下进行分块划分,并对划分好的条带和分块进行编号;A stripe partitioning module, configured to divide the RAID10 into stripes and divide the stripes into blocks, and number the divided stripes and partitions;
目标条带确定模块,用于接收数据传输指令,并根据所述数据传输指令确定目标条带以及目标条带的目标条带编号和目标条带内偏移;A target stripe determining module, configured to receive a data transmission instruction, and determine a target stripe, a target stripe number and an intra-strip offset of the target stripe according to the data transmission instruction;
分块数量计算模块,用于根据目标条带的目标条带编号计算所述RAID10中所述目标条带所在行的以上行中的分块数量;A block number calculation module, configured to calculate the number of blocks in the above row of the row where the target stripe is located in the RAID10 according to the target stripe number of the target stripe;
分块编号计算模块,用于根据所述RAID10中所述目标条带所在行的以上行中的分块数量计算所述目标条带中的目标分块的目标分块编号;A block number calculation module, configured to calculate the target block number of the target block in the target stripe according to the number of blocks in the above row of the row where the target stripe is located in the RAID10;
分块偏移计算模块,根据所述目标条带的目标条带内偏移计算所述目标分块的目标分块内偏移。The block offset calculation module is configured to calculate the target intra-slice offset of the target block according to the target intra-strip offset of the target slice.
再一方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:In another aspect, a computer device is provided, including a memory, a processor, and a computer program stored on the memory and operable on the processor, and the processor implements the following steps when executing the computer program:
对所述RAID10进行条带划分以及在所述条带下进行分块划分,并对划分好的条带和分块进行编号;Carry out stripe division to described RAID10 and perform block division under described stripe, and number the divided stripe and division;
接收数据传输指令,并根据所述数据传输指令确定目标条带以及目标条带的目标条带编号和目标条带内偏移;Receiving a data transfer instruction, and determining a target stripe, a target stripe number of the target stripe, and an offset within the target stripe according to the data transfer instruction;
根据目标条带的目标条带编号计算所述RAID10中所述目标条带所在行的以上行中的分块数量;Calculate the number of blocks in the above row of the row where the target stripe is located in the RAID10 according to the target stripe number of the target stripe;
根据所述RAID10中所述目标条带所在行的以上行中的分块数量计算所述目标条带中的目标分块的目标分块编号;Calculate the target block number of the target block in the target strip according to the number of blocks in the above row of the row where the target strip is located in the RAID10;
根据所述目标条带的目标条带内偏移计算所述目标分块的目标分块内偏移。calculating the target intra-slice offset of the target block according to the target intra-slice offset of the target slice.
又一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有程序,当所述程序被处理器执行时,使得所述处理器执行以下步骤:In yet another aspect, a computer-readable storage medium is provided, the computer-readable storage medium stores a program, and when the program is executed by a processor, the processor is made to perform the following steps:
对所述RAID10进行条带划分以及在所述条带下进行分块划分,并对划分好的条带和分块进行编号;Carry out stripe division to described RAID10 and perform block division under described stripe, and number the divided stripe and division;
接收数据传输指令,并根据所述数据传输指令确定目标条带以及目标条带的目标条带编号和目标条带内偏移;Receiving a data transfer instruction, and determining a target stripe, a target stripe number of the target stripe, and an offset within the target stripe according to the data transfer instruction;
根据目标条带的目标条带编号计算所述RAID10中所述目标条带所在行的以上行中的分块数量;Calculate the number of blocks in the above row of the row where the target stripe is located in the RAID10 according to the target stripe number of the target stripe;
根据所述RAID10中所述目标条带所在行的以上行中的分块数量计算所述目标条带中的目标分块的目标分块编号;Calculate the target block number of the target block in the target strip according to the number of blocks in the above row of the row where the target strip is located in the RAID10;
根据所述目标条带的目标条带内偏移计算所述目标分块的目标分块内偏移。calculating the target intra-slice offset of the target block according to the target intra-slice offset of the target slice.
本申请的上述技术方案相比现有技术具有以下优点:The above-mentioned technical scheme of the present application has the following advantages compared with the prior art:
上述磁盘阵列分布架构、分块计算方法、系统、设备和介质,所述磁盘阵列为RAID10,RAID10包括多个条带,每个条带至少包括一对分块,当RAID10中每个磁盘的分块大小设置为第一预设大小时,每个条带包括两对分块;当RAID10中每个磁盘的分块大小设置为第二预设大小时,每个条带包括一对分块,无论是分块大小为第一预设大小128KB(256sector),还是第二预设大小256KB(512sector),在硬盘容量固定的情况下,两种大小的条带数量相同,需要的内存相同,无需增加条带的数量,也就不需要增加内存来存储额外的条带信息,有效地降低了对内存的需求;此外,采用RAID10分布架构的分块计算方法,去掉了现有技术中对两种分块大小的判断,直接将分块大小及其它信息代入分块计算方法便可以得到目标分块的目标分块编码和目标分块内偏移,降低了计算方法的复杂度,提高了分块计算效率。The above-mentioned disk array distribution architecture, block calculation method, system, device and medium, the disk array is RAID10, RAID10 includes a plurality of stripes, each stripe includes at least one pair of partitions, when the partition of each disk in RAID10 When the block size is set to the first preset size, each stripe includes two pairs of blocks; when the block size of each disk in RAID10 is set to the second preset size, each stripe includes a pair of blocks, Whether the block size is the first preset size of 128KB (256sector) or the second preset size of 256KB (512sector), when the hard disk capacity is fixed, the number of stripes of the two sizes is the same, and the required memory is the same. By increasing the number of stripes, there is no need to increase the memory to store additional stripe information, which effectively reduces the demand for memory; in addition, the block calculation method using the RAID10 distribution architecture eliminates the need for two types of data in the prior art. To judge the block size, directly substitute the block size and other information into the block calculation method to obtain the target block code and target block offset, which reduces the complexity of the calculation method and improves the block size. Computational efficiency.
附图说明Description of drawings
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings that need to be used in the description of the embodiments will be briefly introduced below. Obviously, the drawings in the following description are only some embodiments of the present application. For those skilled in the art, other drawings can also be obtained based on these drawings without creative effort.
图1是本申请实施例提供的磁盘阵列分布架构的第一架构图;Fig. 1 is the first architecture diagram of the disk array distribution architecture provided by the embodiment of the present application;
图2是本申请实施例提供的磁盘阵列分布架构的第二架构图;FIG. 2 is a second architecture diagram of the disk array distribution architecture provided by the embodiment of the present application;
图3是本申请实施例提供的分块计算方法的第一方法流程图;Fig. 3 is a flow chart of the first method of the block calculation method provided by the embodiment of the present application;
图4是本申请实施例提供的分块计算方法的第二方法流程图;Fig. 4 is a second method flow chart of the block calculation method provided by the embodiment of the present application;
图5是本申请实施例提供的分块计算系统的系统结构图;Fig. 5 is a system structure diagram of the block computing system provided by the embodiment of the present application;
图6是本申请实施例提供的计算机设备的设备结构图。FIG. 6 is a device structural diagram of a computer device provided by an embodiment of the present application.
具体实施方式detailed description
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。In order to make the purpose, technical solution and advantages of the present application clearer, the present application will be further described in detail below in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described here are only used to explain the present application, and are not intended to limit the present application.
实施例一:Embodiment one:
参照图1和图2所示,图1为本申请实施例提供的磁盘阵列分布架构的第一架构图;图2为本申请实施例提供的磁盘阵列分布架构的第二架构图。Referring to FIG. 1 and FIG. 2 , FIG. 1 is a first architecture diagram of a disk array distribution architecture provided by an embodiment of the present application; FIG. 2 is a second architecture diagram of a disk array distribution architecture provided by an embodiment of this application.
所述磁盘阵列为RAID10,所述RAID10的分部架构(空间分布架构)包括多个条带,每个所述条带至少包括一对分块,当所述RAID10中每个磁盘的分块大小设置为第一预设大小时,每个所述条带包括两对分块;当所述RAID10中每个磁盘的分块大小设置为第二预设大小时,每个所述条带包括一对分块;其中,每对所述分块互为镜像。The disk array is RAID10, and the partition architecture (spatial distribution architecture) of the RAID10 includes multiple stripes, and each stripe includes at least one pair of partitions. When the partition size of each disk in the RAID10 is When set to the first preset size, each of the stripes includes two pairs of blocks; when the block size of each disk in the RAID10 is set to the second preset size, each of the stripes includes a pairs of blocks; wherein each pair of blocks is a mirror image of each other.
具体地,现有技术中每个条带包括一对分块,每个分块的大小包括128KB和256KB两种规格。在一个磁盘中,如果分块大小从256KB更改为128KB,由于每个磁盘的容量是固定的,则需要增加条带的数量,而保存条带信息需要内存,增加的条带便需要增加内存来存储条带信息,便提高了对内存的需求。因此,本发明提出一种RAID10分布架构,如图1和图2所示,该RAID10分布架构包括多个条带,每个条带至少包括一对分块。本发明中的RAID10分布架构不再局限于只包括一对分块,而是增加了分块的数量。当RAID10中每个磁盘的分块大小设置为第一预设大小时,每个条带包括两对分块;当RAID10中每个磁盘的分块大小设置为第二预设大小时,每个条带包括一对分块;无论是分块大小是第一预设大小还是第二预设大小,均控制条带的数量相同,无需增加条带的数量,也就不需要增加内存来存储额外的条带信息,有效地降低了对内存的需求。其中,无论是第一预设大小还是第二预设大小的分块,每对分块互为镜像,也就是每对分块所存储的数据相同,实现数据冗余,以提高存储信息的安全性。Specifically, in the prior art, each stripe includes a pair of partitions, and the size of each partition includes two specifications: 128KB and 256KB. In a disk, if the block size is changed from 256KB to 128KB, since the capacity of each disk is fixed, the number of stripes needs to be increased, and memory is required to save stripe information, and additional stripes need to increase memory to Storing stripe information increases memory requirements. Therefore, the present invention proposes a RAID10 distribution architecture. As shown in FIG. 1 and FIG. 2 , the RAID10 distribution architecture includes multiple stripes, and each stripe includes at least one pair of partitions. The RAID10 distribution architecture in the present invention is no longer limited to only one pair of partitions, but increases the number of partitions. When the block size of each disk in RAID10 is set to the first preset size, each stripe includes two pairs of blocks; when the block size of each disk in RAID10 is set to the second preset size, each A stripe includes a pair of partitions; no matter whether the partition size is the first preset size or the second preset size, the number of stripes is controlled to be the same, and there is no need to increase the number of stripes, and there is no need to increase the memory to store additional The strip information effectively reduces the memory requirement. Wherein, whether it is the block of the first preset size or the second preset size, each pair of blocks is a mirror image of each other, that is, the data stored in each pair of blocks is the same, achieving data redundancy and improving the security of stored information sex.
在其中一个实施方式中,当所述第一预设大小为128KB时,所述RAID10中每个磁盘的分块大小设置为128KB,每个所述条带包括两对分块。In one embodiment, when the first preset size is 128KB, the block size of each disk in the RAID10 is set to 128KB, and each stripe includes two pairs of blocks.
具体地,分块大小包括两种,一种为256KB(512sector),另一种为128KB(256sector)。因此分块的预设大小包括两种,第一预设大小为256KB(512sector),第二预设大小为128KB(256sector)。当第一预设大小为128KB时,RAID10中每个磁盘的分块大小设置为128KB(256sector),每个条带包括两对分块,如图1所示,包括9个条带,每个条带包括两对分块。Specifically, there are two block sizes, one is 256KB (512sector), and the other is 128KB (256sector). Therefore, there are two preset sizes of the partitions, the first preset size is 256KB (512sector), and the second preset size is 128KB (256sector). When the first preset size is 128KB, the partition size of each disk in RAID10 is set to 128KB (256sector), and each stripe includes two pairs of partitions, as shown in Figure 1, including 9 stripes, each A stripe includes two pairs of partitions.
在其中一个实施方式中,当所述第二预设大小为256KB时,所述RAID10中每个磁盘的分块大小设置为256KB,每个所述条带包括一对分块。In one embodiment, when the second preset size is 256KB, the block size of each disk in the RAID10 is set to 256KB, and each stripe includes a pair of blocks.
具体地,当第二预设大小为256KB时,RAID10中每个磁盘的分块大小设置为256KB(512sector),每个条带包括一对分块,如图2所示,包括9个条带,每个条带包括一对分块。Specifically, when the second preset size is 256KB, the partition size of each disk in RAID10 is set to 256KB (512sector), and each stripe includes a pair of partitions, as shown in Figure 2, including 9 stripes , each stripe consists of a pair of partitions.
由此可见,无论是分块大小为第一预设大小128KB(256sector),还是第二预设大小256KB(512sector),在硬盘容量固定的情况下,两种大小的条带数量相同,需要的内存相同,无需增加条带的数量,也就不需要增加内存来存储额外的条带信息,有效地降低了对内存的需求。It can be seen that whether the block size is the first preset size of 128KB (256sector) or the second preset size of 256KB (512sector), when the hard disk capacity is fixed, the number of stripes of the two sizes is the same, and the required The memory is the same, there is no need to increase the number of stripes, and there is no need to increase memory to store additional stripe information, effectively reducing the demand for memory.
实施例二:Embodiment two:
参照图3所示,图3为本申请实施例提供的分块计算方法的第一方法流程图。Referring to FIG. 3 , FIG. 3 is a flow chart of the first method of the block calculation method provided by the embodiment of the present application.
方法包括以下步骤:The method includes the following steps:
S101,对所述RAID10进行条带划分以及在所述条带下进行分块划分,并对划分好的条带和分块进行编号;S101. Divide the RAID10 into stripes and divide the stripes into blocks, and number the divided stripes and blocks;
具体地,数据传输前需要做好准备工作,即,对RAID10进行条带划分以及在条带下进行分块划分,并对划分好的条带和分块进行编号,以便于后续根据目标条带的目标条带编号和目标条带内偏移通过计算得到目标分块的目标分块编号和目标分块内偏移。Specifically, preparations need to be made before data transmission, that is, RAID10 is divided into stripes and partitions under the stripes, and the divided stripes and partitions are numbered, so that the subsequent The target stripe number and the target intra-strip offset of the target block are calculated to obtain the target block number and the target intra-block offset.
S102,接收数据传输指令,并根据所述数据传输指令确定目标条带以及目标条带的目标条带编号和目标条带内偏移;S102. Receive a data transmission instruction, and determine a target stripe, a target stripe number of the target stripe, and an offset within the target stripe according to the data transmission instruction;
具体地,接收到数据传输指令后,根据数据传输指令可以确定目标条带以及目标条带的目标条带编号和目标条带内偏移,以便于根据目标条带的目标条带编号和目标条带内偏移通过计算得到目标分块的目标分块编号和目标分块内偏移,获取到具体的地址,将数据传输到相应的地址。Specifically, after receiving the data transfer instruction, the target stripe, the target stripe number and the target stripe internal offset can be determined according to the data transfer instruction, so that according to the target stripe number and the target stripe The in-band offset is calculated to obtain the target block number and the target block internal offset, obtain the specific address, and transmit the data to the corresponding address.
S103,根据目标条带的目标条带编号计算所述RAID10中所述目标条带所在行的以上行中的分块数量;S103. Calculate the number of blocks in the above row of the row where the target stripe is located in the RAID10 according to the target stripe number of the target stripe;
具体地,要想将数据存储到磁盘里,需要对磁盘的存储地址进行计算,即,根据条带编号和条带内偏移来计算分块的分块编号和分块内偏移。在本发明中,需要存储数据的条带称为目标条带,需要存储数据的分块称为目标分块。因此,本发明的分块计算方法即,根据目标条带的目标条带编号和目标条带内偏移来计算目标分块的目标分块编号和目标分块内偏移。首先是根据目标条带的目标条带编号计算RAID10中目标条带所在行的以上行中的分块数量,如图1所示,例如目标条带编号为Stretch4,则目标条带Stretch4所在行的以上行中的分块数量为第一行中的分块数量6。其中,分块数量为分块编号不同的分块的数量,因此第一行中的分块数量为6。Specifically, in order to store data in the disk, it is necessary to calculate the storage address of the disk, that is, calculate the block number and the offset within the block according to the stripe number and the offset within the stripe. In the present invention, a stripe that needs to store data is called a target stripe, and a block that needs to store data is called a target block. Therefore, the block calculation method of the present invention calculates the target block number and the target block offset of the target block according to the target slice number and the target slice offset. First, calculate the number of blocks in the row above the row where the target stripe is located in RAID10 based on the target stripe number of the target stripe, as shown in Figure 1. For example, if the target stripe number is Stretch4, then the number of blocks in the row where the target stripe is located The number of chunks in the above row is the number of chunks 6 in the first row. Wherein, the number of blocks is the number of blocks with different block numbers, so the number of blocks in the first row is 6.
S104,根据所述RAID10中所述目标条带所在行的以上行中的分块数量计算所述目标条带中的目标分块的目标分块编号;S104. Calculate the target block number of the target block in the target stripe according to the number of blocks in the row above the row where the target stripe is located in the RAID10;
具体地,根据目标条带的目标条带编号计算RAID10中目标条带所在行的以上行中的分块数量后,根据RAID10中目标条带所在行的以上行中的分块数量便可以通过计算得到目标条带中的目标分块的目标分块编号。Specifically, after calculating the number of partitions in the row above the row where the target stripe is located in RAID10 according to the target stripe number of the target stripe, the number of partitions in the row above the row where the target stripe is located in RAID10 can be calculated by Get the target block number of the target block in the target stripe.
S105,根据所述目标条带的目标条带内偏移计算所述目标分块的目标分块内偏移;S105. Calculate the target intra-slice offset of the target block according to the target intra-strip offset of the target slice;
具体地,通过计算得到目标条带中的目标分块的目标分块编号后,根据目标条带的目标条带内偏移通过计算可以得到目标分块的目标分块内偏移,目标分块编号加上目标分块内偏移便可以得到磁盘中具体的地址,便可以将数据写入磁盘的该地址内。给出了采用RAID10分布架构的分块计算方法,去掉了现有技术中对两种分块大小的判断,直接将分块大小及其它信息代入分块计算方法便可以得到目标分块的目标分块编码和目标分块内偏移,降低了计算方法的复杂度,提高了分块计算效率。Specifically, after the target block number of the target block in the target stripe is obtained by calculation, the target block offset of the target block can be obtained through calculation according to the target stripe offset of the target slice, and the target block The specific address in the disk can be obtained by adding the number and the offset in the target block, and then the data can be written into the address in the disk. A block calculation method using the RAID10 distribution architecture is given, which removes the judgment of the two block sizes in the prior art, and directly substitutes the block size and other information into the block calculation method to obtain the target score of the target block. The block encoding and the offset within the target block reduce the complexity of the calculation method and improve the block calculation efficiency.
其中,所述分块数量为分块编号不同的分块的数量。Wherein, the number of blocks is the number of blocks with different block numbers.
在其中一个实施方式中,对所述RAID10进行条带划分以及在所述条带下进行分块划分,并对划分好的条带和分块进行编号,包括:In one of the implementation manners, the RAID10 is divided into stripes and divided into blocks under the stripes, and the divided stripes and blocks are numbered, including:
根据需求进行条带划分,并确定分块大小及其分块对数;Divide the stripes according to the requirements, and determine the block size and its block logarithm;
具体地,根据实际需求进行条带划分,确定需要划分多少个条带;然后根据实际需求确定分块大小,即,分块大小为128KB,或者是256KB,并确定好分块对数。Specifically, divide the stripes according to the actual needs, determine how many stripes need to be divided; then determine the block size according to the actual needs, that is, the block size is 128KB or 256KB, and determine the logarithm of the blocks.
根据所述分块大小及其分块对数进行分块划分;Carry out block division according to the block size and block logarithm thereof;
具体地,确定好分块大小和分块对数后,便可以根据分块大小和分块对数对分块进行划分。Specifically, after the block size and the logarithm of the blocks are determined, the blocks can be divided according to the block size and the logarithm of the blocks.
对划分好的条带和分块进行编号。Number the divided stripes and blocks.
具体地,条带和分块均划分完毕后,对所有的条带和分块进行编号,以便于后续根据目标条带的目标条带编号和目标条带内偏移通过计算得到目标分块的目标分块编号和目标分块内偏移。Specifically, after the stripes and blocks are divided, all the stripes and blocks are numbered, so that the number of the target block can be obtained through subsequent calculations based on the target stripe number and the offset within the target stripe. The target block number and the offset within the target block.
在其中一个实施方式中,获取到所述目标分块的目标分块编号和目标分块内偏移后,还包括:In one of the implementation manners, after obtaining the target block number and the target block internal offset of the target block, it further includes:
根据所述目标分块的目标分块编号和目标分块内偏移确定目的地址,将数据读取或写入所述目的地址。A destination address is determined according to the target block number of the target block and the offset within the target block, and data is read or written into the destination address.
具体地,根据目标条带的目标条带编号和目标条带内偏移通过计算得到目标分块的目标分块编号和目标分块内偏移后,根据目标分块的目标分块编号和目标分块内偏移确定目的地址,将数据读取或写入目的地址,完成数据传输操作。Specifically, after calculating the target block number and the target block offset according to the target stripe number and the target stripe offset, according to the target block number and the target The offset within the block determines the destination address, and the data is read or written to the destination address to complete the data transmission operation.
在其中一个实施方式中,所述根据目标条带的目标条带编号计算所述RAID10中所述目标条带所在行的以上行中的分块数量,包括:In one of the implementation manners, the calculation of the number of partitions in the above row of the row where the target stripe is located in the RAID10 according to the target stripe number of the target stripe includes:
确定所述RAID10中互为镜像的磁盘对数,以及所述RAID10每一行分块编号不同的分块的数量;Determine the number of disk pairs that are mirror images of each other in the RAID10, and the number of different partitions in each row of the RAID10 with a partition number;
具体地,要想通过计算得到目标分块编号,便要根据目标条带的目标条带编号通过相应的计算得到目标分块编号。首先要根据RAID10确定该磁盘阵列中互为镜像的磁盘对数,以及在该RAID10磁盘阵列中每一行分块编号不同的分块的数量,以便于通过互为镜像的磁盘对数和每一行分块编号不同的分块的数量来确定目标条带所在行的以上行中的分块数量。Specifically, in order to obtain the target block number through calculation, the target block number must be obtained through corresponding calculation according to the target stripe number of the target stripe. First of all, according to RAID10, it is necessary to determine the number of disk pairs that are mirrored to each other in the disk array, and the number of blocks with different block numbers in each row in the RAID10 disk array, so that through the number of disk pairs that are mirrored and each row The number of partitions with different block numbers is used to determine the number of partitions in the row above the row of the target stripe.
根据所述RAID10中互为镜像的磁盘对数和所述RAID10每一行分块编号不同的分块的数量通过分块数量计算公式计算出所述RAID10中所述目标条带所在行的以上行中的分块数量。According to the number of disk pairs that are mirror images of each other in the RAID10 and the number of blocks with different block numbers in each row of the RAID10, the above row of the row where the target stripe in the RAID10 is located is calculated by the block number calculation formula number of blocks.
具体地,获取到通过互为镜像的磁盘对数和每一行分块编号不同的分块的数量后,便可以通过相关的计算公式,通过互为镜像的磁盘对数和每一行分块编号不同的分块的数量计算得到RAID10中目标条带所在行的以上行中的分块数量,以便于根据RAID10中目标条带所在行的以上行中的分块数量计算目标条带所在磁盘的第一个分块的分块编号。Specifically, after obtaining the number of disk pairs that are mirrored to each other and the number of blocks with different block numbers in each row, you can use related calculation formulas to pass the number of disk pairs that are mirrored to each other and the block numbers in each row. Calculate the number of blocks in the row above the row where the target stripe is located in RAID10, so as to calculate the first disk number of the target stripe based on the number of blocks in the row above the row where the target stripe is located in RAID10 The block number of the block.
在其中一个实施方式中,所述分块数量计算公式为:In one of the implementation manners, the formula for calculating the number of blocks is:
Stripfirst=(Stretch/Mirrors)*RowStripCount;Stripfirst = (Stretch/Mirrors)*RowStripCount;
其中,Stripfirst为所述RAID10中所述目标条带所在行的以上行中的分块数量;Stretch为所述目标条带的目标条带编号;Mirrors为所述RAID10中互为镜像的磁盘对数;Rowstripcount为所述RAID10每一行分块编号不同的分块的数量。Wherein, Stripfirst is the number of blocks in the above row of the row where the target stripe is located in the RAID10; Stretch is the target stripe number of the target stripe; Mirrors is the number of disk pairs that are mirror images of each other in the RAID10 ; Rowstripcount is the number of blocks with different block numbers in each row of the RAID10.
具体地,根据RAID10中互为镜像的磁盘对数和RAID10每一行分块编号不同的分块的数量通过分块数量计算公式计算出RAID10中目标条带所在行的以上行中的分块数量,分块数量计算公式为Stripfirst=(Stretch/Mirrors)*Rowstripcount。如图1所示,分块大小为128KB,Mirrors为RAID10中互为镜像的磁盘对数(磁盘数目除以2),图1所示的分布架构包括6个磁盘,磁盘0和磁盘1互为镜像,磁盘2和磁盘3互为镜像,磁盘4和磁盘5互为镜像,即,三对磁盘(磁盘数目6除以2等于3)。假设给定Stretch4,则Stripfirst=(Stretch/Mirrors)*Rowstripcount=(4/3)*6=6,其中运算符号“/”为取商,且分块数量为分块编号不同的分块的数量,则目标条带所在行的以上行中的分块数量为6,即,Strip0、Strip1、Strip2、Strip3、Strip4、Strip5。Specifically, according to the number of disk pairs that are mirror images of each other in RAID10 and the number of blocks with different block numbers in each row of RAID10, the number of blocks in the above row of the row where the target stripe is located in RAID10 is calculated through the block number calculation formula, The formula for calculating the number of blocks is Stripfirst=(Stretch/Mirrors)*Rowstripcount. As shown in Figure 1, the block size is 128KB, and Mirrors is the number of disk pairs that are mirrored to each other in RAID10 (the number of disks divided by 2). The distribution architecture shown in Figure 1 includes 6 disks, and Disk 0 and Disk 1 are mutually mirrored. Mirroring, disk 2 and disk 3 are mirror images of each other, and disk 4 and disk 5 are mirror images of each other, that is, three pairs of disks (dividing the number of disks by 6 by 2 equals 3). Assuming Stretch4 is given, then Stripfirst=(Stretch/Mirrors)*Rowstripcount=(4/3)*6=6, where the operation symbol "/" is the quotient, and the number of blocks is the number of blocks with different block numbers , the number of blocks in the row above the row where the target strip is located is 6, that is, Strip0, Strip1, Strip2, Strip3, Strip4, and Strip5.
在其中一个实施方式中,所述根据所述RAID10中目标条带所在行的以上行中的分块数量计算所述目标条带中的目标分块编号,包括:In one of the implementation manners, the calculation of the target block number in the target stripe according to the number of blocks in the row above where the target stripe is located in the RAID10 includes:
根据所述RAID10中所述目标条带所在行的以上行中的分块数量计算所述目标条带所在磁盘的第一个分块的分块编号;Calculate the block number of the first block of the disk where the target stripe is located according to the number of blocks in the row above the row where the target stripe is located in the RAID10;
具体地,获取到RAID10中目标条带所在行的以上行中的分块数量后,根据RAID10中目标条带所在行的以上行中的分块数量通过相应的计算公式通过计算便可以得到目标条带所在磁盘的第一个分块的分块编号,以便于通过分块编号计算出目标条带中的目标分块的目标分块编号。Specifically, after obtaining the number of blocks in the row above the row where the target stripe is located in RAID10, the target stripe can be obtained by calculating according to the corresponding calculation formula according to the number of blocks in the row above the row where the target stripe is located in RAID10. The block number of the first block of the disk where the tape is located, so as to calculate the target block number of the target block in the target stripe through the block number.
根据所述目标条带的目标条带编号和目标条带内偏移计算所述目标分块落在磁盘中具体分块的增量编号;Calculate the incremental number of the specific block where the target block falls on the disk according to the target stripe number of the target stripe and the offset within the target stripe;
具体地,获取到目标条带所在磁盘的第一个分块的分块编号后,根据目标条带的目标条带编号和目标条带内偏移通过相应的计算公式便可以计算得出目标分块落在磁盘中具体分块的增量编号,以便于通过第一个分块的分块编号和增量编号计算出目标条带中的目标分块的目标分块编号。Specifically, after obtaining the block number of the first block of the disk where the target stripe is located, the target score can be calculated according to the target stripe number and the offset within the target stripe through the corresponding calculation formula. The incremental number of the specific block where the block falls on the disk, so as to calculate the target block number of the target block in the target stripe through the block number and the incremental number of the first block.
根据所述目标条带所在磁盘的第一个分块的分块编号和所述目标分块落在磁盘中具体分块的增量编号通过分块编号计算公式计算出所述目标条带中的目标分块的目标分块编号。According to the block number of the first block of the disk where the target stripe is located and the incremental number of the specific block where the target block falls on the disk, calculate the number of blocks in the target stripe through the block number calculation formula The target chunk number of the target chunk.
具体地,获取到目标条带所在磁盘的第一个分块的分块编号和目标分块落在磁盘中具体分块的增量编号后,将目标条带所在磁盘的第一个分块的分块编号和目标分块落在磁盘中具体分块的增量编号代入相应的计算公式便可以得到目标条带中的目标分块的目标分块编号。Specifically, after obtaining the block number of the first block of the disk where the target stripe is located and the incremental number of the specific block in the disk where the target block is located, the number of the first block of the disk where the target stripe is located is Substituting the block number and the incremental number of the specific block where the target block falls on the disk into the corresponding calculation formula can obtain the target block number of the target block in the target stripe.
在其中一个实施方式中,所述分块编号计算公式为:In one of the implementation manners, the formula for calculating the block number is:
Stripnum=Stripfirst+Stretch%Mirrors+Mirrors*(Stretchoffset>>Stripsizeshift);Stripnum=Stripfirst+Stretch%Mirrors+Mirrors*(Stretchoffset>>Stripsizeshift);
其中,Stripnum为所述目标条带中的目标分块的目标分块编号;Stripfirst+Stretch%Mirrors 为所述目标条带所在磁盘中的第一个分块的编号;Stretchoffset为所述目标条带的目标条带内偏移;Stripsizeshift为计算指数;Stretchoffset>>Stripsizeshift运算为Stretchoffset/2^(Stripsizeshift)。Wherein, Stripnum is the target block number of the target block in the target strip; Stripfirst+Stretch%Mirrors is the number of the first block in the disk where the target strip is located; Stretchoffset is the target strip The offset within the target strip; Stripsizeshift is the calculation index; the Stretchoffset>>Stripsizeshift operation is Stretchoffset/2^(Stripsizeshift).
具体地,要想得到目标分块的目标分块编号,则需首先根述RAID10中目标条带所在行的以上行中的分块数量计算目标条带所在磁盘的第一个分块的分块编号,然后根据目标条带的目标条带编号和目标条带内偏移计算目标分块落在磁盘中具体分块的增量编号,再根据目标条带所在磁盘的第一个分块的分块编号和目标分块落在磁盘中具体分块的增量编号通过分块编号计算公式计算出目标条带中的目标分块的目标分块编号。分块编号计算公式为:Stripnum=Stripfirst+Stretch%Mirrors+Mirrors*(Stretchoffset>>Stripsizeshift);其中,根述RAID10中目标条带所在行的以上行中的分块数量计算目标条带所在磁盘的第一个分块的分块编号的计算方法为Stripfirst+Stretch%Mirrors;例如给定Stretch4,则如图2所示,当分块大小为256KB时,Stripfirst+Stretch%Mirrors =(4/3)*3+(4%3)=4,对应图2中的分块编号4(Strip4);当分块大小为128KB时,Stripfirst+Stretch%Mirrors =(4/3)*6+(4%3)=7,对应图1中的分块编号7(Strip4),其中,运算符号“%”为取余。根据目标条带的目标条带编号和目标条带内偏移计算目标分块落在磁盘中具体分块的增量编号的计算方法为Stretchoffset >>Stripsizeshift,具体运算为Stretchoffset/2^(Stripsizeshift);例如给定目标条带的目标条编号为Stretch4,目标条带的目标条编内偏移为Stretchoffset=258sector,如图1所示,分块大小为128KB=256sector=2^8=2^Stripsizeshift,则Stretchoffset>>Stripsizeshift=Stretchoffset/2^(Stripsizeshift)=258/256=1,表示落在两个分块中第二个分块上(落在第一个分块计算结果为0,落在第二个分块计算结果为1)。如图2所示,分块大小为256KB=512sector=2^9=2^Stripsizeshift,则Stretchoffset>>Stripsizeshift=Stretchoffset/2^(Stripsizeshift)=256/512=0,此架构中,一个磁盘在一行中只有一个分块,因此,Stretchoffset/512值恒为0,表示落在第一个上。再根据目标条带所在磁盘的第一个分块的分块编号和目标分块落在磁盘中具体分块的增量编号通过分块编号计算公式计算出目标条带中的目标分块的目标分块编号的计算方法为Stripnum=Stripfirst+Stretch%Mirrors+Mirrors*(Stretchoffset>>Stripsizeshift);如图1所示,假设给定目标条带的目标条编号为Stretch4,目标条带的目标条编内偏移为Stretchoffset=258sector,则Stripfirst+Stretch%Mirrors+Mirrors*(Stretchoffset>>Stripsizeshift)=(4/3)*6+(4%3)+3*(258/2^8)=10,则对应图1中的Strip10。Specifically, in order to obtain the target block number of the target block, it is first necessary to calculate the block number of the first block of the disk where the target stripe is located based on the number of blocks in the row above the line where the target stripe is located in RAID10 , and then calculate the incremental number of the specific block where the target block falls on the disk according to the target stripe number of the target stripe and the offset within the target stripe, and then according to the block of the first block of the disk where the target stripe is located The number and the incremental number of the specific block where the target block falls on the disk is used to calculate the target block number of the target block in the target stripe through the block number calculation formula. The calculation formula for the partition number is: Stripnum=Stripfirst+Stretch%Mirrors+Mirrors*(Stretchoffset>>Stripsizeshift); where, the number of partitions in the row above the row where the target stripe is located in RAID10 is used to calculate the number of disks where the target stripe is located. The calculation method of the block number of the first block is Stripfirst+Stretch%Mirrors; for example, given Stretch4, as shown in Figure 2, when the block size is 256KB, Stripfirst+Stretch%Mirrors = (4/3)* 3+(4%3)=4, corresponding to the block number 4 (Strip4) in Figure 2; when the block size is 128KB, Stripfirst+Stretch%Mirrors = (4/3)*6+(4%3)= 7, corresponding to the block number 7 (Strip4) in Figure 1, where the operation symbol "%" is the remainder. According to the target stripe number of the target stripe and the offset within the target stripe, calculate the incremental number of the target block falling on the disk. The calculation method is Stretchoffset >>Stripsizeshift, and the specific operation is Stretchoffset/2^(Stripsizeshift) ;For example, the target strip number of a given target strip is Stretch4, and the target strip's internal offset is Stretchoffset=258sector, as shown in Figure 1, the block size is 128KB=256sector=2^8=2^Stripsizeshift , then Stretchoffset>>Stripsizeshift=Stretchoffset/2^(Stripsizeshift)=258/256=1, which means it falls on the second block of the two blocks (the calculation result of falling on the first block is 0, and it falls on The second chunk evaluates to 1). As shown in Figure 2, the block size is 256KB=512sector=2^9=2^Stripsizeshift, then Stretchoffset>>Stripsizeshift=Stretchoffset/2^(Stripsizeshift)=256/512=0, in this architecture, one disk is in one row There is only one block in , therefore, the Stretchoffset/512 value is always 0, which means it falls on the first one. Then, according to the block number of the first block of the disk where the target stripe is located and the incremental number of the specific block where the target block falls on the disk, calculate the target of the target block in the target stripe through the block number calculation formula The calculation method of the block number is Stripnum=Stripfirst+Stretch%Mirrors+Mirrors*(Stretchoffset>>Stripsizeshift); as shown in Figure 1, assuming that the target strip number of a given target strip is Stretch4, the target strip number of the target strip The inner offset is Stretchoffset=258sector, then Stripfirst+Stretch%Mirrors+Mirrors*(Stretchoffset>>Stripsizeshift)=(4/3)*6+(4%3)+3*(258/2^8)=10, It corresponds to Strip10 in Figure 1.
在其中一个实施方式中,所述计算指数的计算方法为:In one of the implementations, the calculation method for calculating the index is:
Stripsizeshift=log2(2*Stripsize);Stripsizeshift=log2(2*Stripsize);
其中,Stripsize为分块大小,单位为KB。Among them, Stripsize is the block size, and the unit is KB.
具体地,根据目标条带的目标条带编号和目标条带内偏移计算目标分块落在磁盘中具体分块的增量编号的计算方法为Stretchoffset/2^(Stripsizeshift),其中,Stripsizeshift的计算方法为Stripsizeshift=log2(2*Stripsize);Stripsize为分块大小,单位为KB,2*Stripsize表示单位转换为sector,即,分块大小=128KB,转换成sector单位为256sector。Specifically, according to the target strip number of the target strip and the offset within the target strip, the calculation method for calculating the incremental number of the specific block where the target block falls in the disk is Stretchoffset/2^(Stripsizeshift), wherein, Stripsizeshift The calculation method is Stripsizeshift=log2(2*Stripsize); Stripsize is the block size, the unit is KB, 2*Stripsize means the unit is converted to sector, that is, the block size=128KB, and the converted sector unit is 256sector.
在其中一个实施方式中,所述根据所述目标条带的目标条带内偏移计算所述目标条带中的目标分块的目标分块内偏移,包括:In one of the implementation manners, the calculating the target intra-block offset of the target block in the target slice according to the target intra-strip offset of the target slice includes:
根据所述分块大小计算得到分块计算掩码;calculating a block calculation mask according to the block size;
具体地,根据RAID10中目标条带所在行的以上行中的分块数量计算目标条带中的目标分块编号后,要进一步根据目标条带的目标条带内偏移计算目标条带中的目标分块的目标分块内偏移,首先要根据分块大小计算得到分块计算掩码,以便于通过目标条带的目标条带内偏移和分块计算掩码通过分块偏移计算公式计算出目标分块的目标分块内偏移。Specifically, after calculating the number of target blocks in the target stripe according to the number of blocks in the row above the row where the target stripe is located in RAID10, it is necessary to further calculate the number of blocks in the target stripe based on the offset within the target stripe. The target intra-block offset of the target block first needs to be calculated according to the block size to obtain the block calculation mask, so that the target strip intra-strip offset and block calculation mask can be calculated through the block offset The formula calculates the offset within the target block for the target block.
根据所述目标条带的目标条带内偏移和所述分块计算掩码通过分块偏移计算公式计算出所述目标分块的目标分块内偏移。Calculate the target intra-slice offset of the target block by using a block offset calculation formula according to the target intra-slice offset of the target slice and the block calculation mask.
具体地,根据分块大小计算得到分块计算掩码后,根据目标条带的目标条带内偏移和分块计算掩码通过分块偏移计算公式计算出目标分块的目标分块内偏移,通过以上计算得到目标分块的目标分块编号和目标分块内偏移,这样也就定位到了磁盘中具体的地址,便可以将数据写入到该地址中。Specifically, after the block calculation mask is calculated according to the block size, the target block internal offset of the target block is calculated according to the target slice offset and the block calculation mask through the block offset calculation formula. Offset, through the above calculation, the target block number of the target block and the offset within the target block are obtained, so that the specific address in the disk is located, and the data can be written to the address.
在其中一个实施方式中,所述分块计算掩码的计算公式为:In one of the implementation manners, the calculation formula of the block calculation mask is:
Stripsizemask=2*Stripsize-1;Stripsizemask=2*Stripsize-1;
其中,Stripsizemask为所述分块计算掩码。Wherein, Stripsizemask is the block calculation mask.
具体地,根据分块大小计算得到分块计算掩码的计算公式为Stripsizemask=2*Stripsize-1,其中Stripsizemask为分块计算掩码,Stripsize为分块大小,单位为KB。例如,当分块大小为128KB时,分块计算掩码为2*128-1=255;当分块大小为256KB时,分块计算掩码为2*256-1=511。Specifically, the formula for calculating the block calculation mask calculated according to the block size is Stripsizemask=2*Stripsize-1, where Stripsizemask is the block calculation mask, and Stripsize is the block size, and the unit is KB. For example, when the block size is 128KB, the block calculation mask is 2*128-1=255; when the block size is 256KB, the block calculation mask is 2*256-1=511.
在其中一个实施方式中,所述目标分块内偏移计算公式为:In one of the implementation manners, the formula for calculating the offset within the target block is:
Stripoffset=Stretchoffset & Stripsizemask;Stripoffset=Stretchoffset &Stripsizemask;
其中,Stripoffset为所述目标分块内偏移。Wherein, Stripoffset is the offset within the target block.
具体地,根据分块大小计算得到分块计算掩码后,根据目标条带的目标条带内偏移和分块计算掩码通过分块偏移计算公式计算出目标分块的目标分块内偏移,分块偏移计算公式为:Stripoffset=Stretchoffset & Stripsizemask;如图2所示,当分块大小为256KB时,转换成sector单位为512sector,Stripsizemask=512-1=2^9-1=511(二进制11111111),此时Stripsizeshift为9,当给定目标条带的目标条带内偏移Stretchoffset=510sector时(二进制111111110),Stripoffset=Stretchoffset & Stripsizemask=111111110&11111111=111111110(十进制510),因此可得目标分块的目标分块内偏移为510sector。Specifically, after the block calculation mask is calculated according to the block size, the target block internal offset of the target block is calculated according to the target slice offset and the block calculation mask through the block offset calculation formula. Offset, the block offset calculation formula is: Stripoffset=Stretchoffset &Stripsizemask; as shown in Figure 2, when the block size is 256KB, the converted sector unit is 512sector, Stripsizemask=512-1=2^9-1=511 (Binary 11111111), at this time Stripsizeshift is 9, when the target strip offset within the target strip is Stretchoffset=510sector (binary 111111110), Stripoffset=Stretchoffset & Stripsizemask=111111110&11111111=111111110 (decimal 510), so it can be obtained The target intra-block offset of the target block is 510sector.
实施例三:Embodiment three:
参照图4所示,图4为本申请实施例提供的方法的第二方法流程图。其中,图4所示方法中,与图3所示方法中相同或相似的内容,可以参考图3方法中的描述,此处不做赘述。Referring to FIG. 4 , FIG. 4 is a flowchart of a second method of the method provided by the embodiment of the present application. Wherein, in the method shown in FIG. 4 , for the same or similar content as in the method shown in FIG. 3 , reference may be made to the description in the method shown in FIG. 3 , and details are not repeated here.
S201,根据需求进行条带划分,并确定分块大小及其分块对数;S201, perform stripe division according to requirements, and determine the block size and the logarithm of the block;
根据实际需求进行条带划分,确定需要划分多少个条带;然后根据实际需求确定分块大小,即,分块大小为128KB,或者是256KB,并确定好分块对数。Carry out stripe division according to actual needs, determine how many stripes need to be divided; then determine the block size according to actual needs, that is, the block size is 128KB or 256KB, and determine the logarithm of the blocks.
S202,根据所述分块大小及其分块对数进行分块划分;S202. Perform block division according to the block size and logarithm thereof;
确定好分块大小和分块对数后,便可以根据分块大小和分块对数对分块进行划分。After the block size and block logarithm are determined, the blocks can be divided according to the block size and block logarithm.
S203,对划分好的条带和分块进行编号。S203. Number the divided stripes and blocks.
条带和分块均划分完毕后,对所有的条带和分块进行编号,以便于后续根据目标条带的目标条带编号和目标条带内偏移通过计算得到目标分块的目标分块编号和目标分块内偏移。After the stripes and blocks are divided, number all the stripes and blocks, so that the target block of the target block can be obtained by calculation according to the target stripe number and the offset within the target stripe Number and offset within the target block.
S204,接收数据传输指令,并根据所述数据传输指令确定目标条带以及目标条带的目标条带编号和目标条带内偏移;S204. Receive a data transmission instruction, and determine a target stripe, a target stripe number and an offset within the target stripe according to the data transmission instruction;
接收到数据传输指令后,根据数据传输指令可以确定目标条带以及目标条带的目标条带编号和目标条带内偏移,以便于根据目标条带的目标条带编号和目标条带内偏移通过计算得到目标分块的目标分块编号和目标分块内偏移,获取到具体的地址,将数据传输到相应的地址。After receiving the data transmission instruction, the target stripe, the target stripe number and the target stripe internal offset can be determined according to the data transmission instruction, so that the target stripe number and the target stripe internal offset of the target stripe can be The shift obtains the target block number and the offset within the target block by calculating the target block, obtains the specific address, and transmits the data to the corresponding address.
S205,确定所述RAID10中互为镜像的磁盘对数,以及所述RAID10每一行分块编号不同的分块的数量;S205. Determine the number of disk pairs that are mirror images of each other in the RAID10, and the number of blocks with different block numbers in each row of the RAID10;
要想通过计算得到目标分块编号,便要根据目标条带的目标条带编号通过相应的计算得到目标分块编号。首先要根据RAID10确定该磁盘阵列中互为镜像的磁盘对数,以及在该RAID10磁盘阵列中每一行分块编号不同的分块的数量,以便于通过互为镜像的磁盘对数和每一行分块编号不同的分块的数量来确定目标条带所在行的以上行中的分块数量。In order to obtain the target block number through calculation, the target block number must be obtained through corresponding calculation according to the target stripe number of the target stripe. First of all, according to RAID10, it is necessary to determine the number of disk pairs that are mirrored to each other in the disk array, and the number of blocks with different block numbers in each row in the RAID10 disk array, so that through the number of disk pairs that are mirrored and each row The number of partitions with different block numbers is used to determine the number of partitions in the row above the row of the target stripe.
S206,根据所述RAID10中互为镜像的磁盘对数和所述RAID10每一行分块编号不同的分块的数量通过分块数量计算公式计算出所述RAID10中所述目标条带所在行的以上行中的分块数量;S206, according to the number of disk pairs that are mirror images of each other in the RAID10 and the number of blocks with different block numbers in each row of the RAID10, calculate the above number of the row where the target stripe in the RAID10 is located by using the block number calculation formula the number of chunks in the row;
获取到通过互为镜像的磁盘对数和每一行分块编号不同的分块的数量后,便可以通过相关的计算公式,通过互为镜像的磁盘对数和每一行分块编号不同的分块的数量计算得到RAID10中目标条带所在行的以上行中的分块数量,以便于根据RAID10中目标条带所在行的以上行中的分块数量计算目标条带所在磁盘的第一个分块的分块编号。After obtaining the number of disk pairs that are mirrored to each other and the number of blocks with different block numbers in each row, you can use related calculation formulas to pass the number of disk pairs that are mirrored to each other and the number of blocks with different block numbers in each row Calculate the number of partitions in the row above the row where the target stripe is located in RAID10, so as to calculate the first partition of the disk where the target stripe is located based on the number of partitions in the row above the row where the target stripe is located in RAID10 block number.
S207,根据所述RAID10中所述目标条带所在行的以上行中的分块数量计算所述目标条带所在磁盘的第一个分块的分块编号;S207. Calculate the block number of the first block of the disk where the target stripe is located according to the number of blocks in the row above the row where the target stripe is located in the RAID10;
获取到RAID10中目标条带所在行的以上行中的分块数量后,根据RAID10中目标条带所在行的以上行中的分块数量通过相应的计算公式通过计算便可以得到目标条带所在磁盘的第一个分块的分块编号,以便于通过分块编号计算出目标条带中的目标分块的目标分块编号。After obtaining the number of blocks in the row above the row where the target stripe is located in RAID10, the disk where the target stripe is located can be obtained by calculating according to the corresponding calculation formula based on the number of blocks in the row above the row where the target stripe is located in RAID10 The block number of the first block of , so as to calculate the target block number of the target block in the target stripe through the block number.
S208,根据所述目标条带的目标条带编号和目标条带内偏移计算所述目标分块落在磁盘中具体分块的增量编号;S208. Calculate, according to the target stripe number of the target stripe and the offset within the target stripe, the incremental number of the specific block where the target block falls on the disk;
获取到目标条带所在磁盘的第一个分块的分块编号后,根据目标条带的目标条带编号和目标条带内偏移通过相应的计算公式便可以计算得出目标分块落在磁盘中具体分块的增量编号,以便于通过第一个分块的分块编号和增量编号计算出目标条带中的目标分块的目标分块编号。After obtaining the block number of the first block of the disk where the target stripe is located, according to the target stripe number and the offset within the target stripe, the corresponding calculation formula can be used to calculate the location of the target Incremental numbers of specific blocks in the disk, so as to calculate the target block number of the target block in the target stripe through the block number of the first block and the incremental number.
S209,根据所述目标条带所在磁盘的第一个分块的分块编号和所述目标分块落在磁盘中具体分块的增量编号通过分块编号计算公式计算出所述目标条带中的目标分块的目标分块编号;S209, calculate the target stripe according to the block number of the first block of the disk where the target stripe is located and the increment number of the specific block where the target block falls on the disk, using a block number calculation formula The target block number of the target block in ;
获取到目标条带所在磁盘的第一个分块的分块编号和目标分块落在磁盘中具体分块的增量编号后,将目标条带所在磁盘的第一个分块的分块编号和目标分块落在磁盘中具体分块的增量编号代入相应的计算公式便可以得到目标条带中的目标分块的目标分块编号。After obtaining the block number of the first block of the disk where the target stripe is located and the incremental number of the specific block where the target block falls on the disk, set the block number of the first block of the disk where the target stripe is located The target block number of the target block in the target stripe can be obtained by substituting the incremental number of the specific block on the disk with the target block into the corresponding calculation formula.
S210,根据所述分块大小计算得到分块计算掩码;S210. Calculate and obtain a block calculation mask according to the block size;
根据RAID10中目标条带所在行的以上行中的分块数量计算目标条带中的目标分块编号后,要进一步根据目标条带的目标条带内偏移计算目标条带中的目标分块的目标分块内偏移,首先要根据分块大小计算得到分块计算掩码,以便于通过目标条带的目标条带内偏移和分块计算掩码通过分块偏移计算公式计算出目标分块的目标分块内偏移。After calculating the number of target blocks in the target stripe according to the number of blocks in the row above the row where the target stripe is located in RAID10, it is necessary to further calculate the target block in the target stripe according to the offset within the target stripe The target intra-block offset of , firstly, calculate the block calculation mask according to the block size, so that the target strip intra-strip offset and block calculation mask can be calculated by the block offset calculation formula The offset within the target chunk for the target chunk.
S211,根据所述目标条带的目标条带内偏移和所述分块计算掩码通过分块偏移计算公式计算出所述目标分块的目标分块内偏移;S211. Calculate the target intra-slice offset of the target block by using a block offset calculation formula according to the target intra-slice offset of the target slice and the block calculation mask;
根据分块大小计算得到分块计算掩码后,根据目标条带的目标条带内偏移和分块计算掩码通过分块偏移计算公式计算出目标分块的目标分块内偏移,通过以上计算得到目标分块的目标分块编号和目标分块内偏移,这样也就定位到了磁盘中具体的地址,便可以将数据写入到该地址中。After calculating the block calculation mask according to the block size, calculate the target block offset of the target block through the block offset calculation formula according to the target stripe intra-strip offset and block calculation mask, Through the above calculation, the target block number and the target block internal offset of the target block are obtained, so that the specific address in the disk is located, and the data can be written into the address.
S212,根据所述目标分块的目标分块编号和目标分块内偏移确定目的地址,将数据读取或写入所述目的地址。S212. Determine a destination address according to the target block number of the target block and the offset within the target block, and read or write data to the destination address.
根据目标条带的目标条带编号和目标条带内偏移通过计算得到目标分块的目标分块编号和目标分块内偏移后,根据目标分块的目标分块编号和目标分块内偏移确定目的地址,将数据读取或写入目的地址,完成数据传输操作。After calculating the target block number and the target block offset according to the target stripe number and target stripe offset of the target stripe, according to the target block number and target block The offset determines the destination address, and the data is read or written to the destination address to complete the data transfer operation.
应该理解的是,虽然图3~图4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图3~图4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。It should be understood that although the steps in the flow charts of FIGS. 3 to 4 are displayed sequentially according to the arrows, these steps are not necessarily executed in sequence according to the arrows. Unless otherwise specified herein, there is no strict order restriction on the execution of these steps, and these steps can be executed in other orders. Moreover, at least some of the steps in FIGS. 3 to 4 may include a plurality of sub-steps or stages. These sub-steps or stages are not necessarily executed at the same time, but may be executed at different times. These sub-steps or The execution order of the stages is not necessarily performed sequentially, but may be executed alternately or alternately with at least a part of other steps or substeps of other steps or stages.
实施例四:Embodiment four:
参照图5所示,图5为本申请实施例提供的分块计算系统的系统结构图。Referring to FIG. 5 , FIG. 5 is a system structure diagram of a block computing system provided by an embodiment of the present application.
本实施例的分块计算系统,包括:The block computing system of this embodiment includes:
条带分块划分模块,用于对RAID10进行条带划分以及在所述条带下进行分块划分,并对划分好的条带和分块进行编号;A stripe partitioning module, configured to divide the RAID10 into stripes and divide the stripes into blocks, and number the divided stripes and partitions;
数据传输前需要做好准备工作,即,通过条带分块划分模块对RAID10进行条带划分以及在条带下进行分块划分,并对划分好的条带和分块进行编号,以便于后续根据目标条带的目标条带编号和目标条带内偏移通过计算得到目标分块的目标分块编号和目标分块内偏移。Before data transmission, it is necessary to make preparations, that is, divide the RAID10 into stripes and partitions under the stripes through the stripe and block division module, and number the divided stripes and blocks for subsequent The target segment number and the target internal offset of the target block are obtained through calculation according to the target stripe number and the target intra-strip offset.
目标条带确定模块,用于接收数据传输指令,并根据所述数据传输指令确定目标条带以及目标条带的目标条带编号和目标条带内偏移;A target stripe determining module, configured to receive a data transmission instruction, and determine a target stripe, a target stripe number and an intra-strip offset of the target stripe according to the data transmission instruction;
接收到数据传输指令后,根据数据传输指令可以通过目标条带确定模块确定目标条带以及目标条带的目标条带编号和目标条带内偏移,以便于根据目标条带的目标条带编号和目标条带内偏移通过计算得到目标分块的目标分块编号和目标分块内偏移,获取到具体的地址,将数据传输到相应的地址。After receiving the data transmission instruction, according to the data transmission instruction, the target stripe, the target stripe number and the target stripe internal offset can be determined through the target stripe determination module, so that the target stripe number and the target stripe number of the target stripe and the offset in the target stripe are calculated to obtain the target block number and the offset in the target block, obtain a specific address, and transmit the data to the corresponding address.
分块数量计算模块,用于根据目标条带的目标条带编号计算所述RAID10中所述目标条带所在行的以上行中的分块数量;A block number calculation module, configured to calculate the number of blocks in the above row of the row where the target stripe is located in the RAID10 according to the target stripe number of the target stripe;
要想将数据存储到磁盘里,需要对磁盘的存储地址进行计算,即,根据条带编号和条带内偏移来计算分块的分块编号和分块内偏移。在本发明中,需要存储数据的条带称为目标条带,需要存储数据的分块称为目标分块。因此,本发明的分块计算方法即,根据目标条带的目标条带编号和目标条带内偏移来计算目标分块的目标分块编号和目标分块内偏移。首先是通过分块数量计算模块根据目标条带的目标条带编号计算RAID10中目标条带所在行的以上行中的分块数量。To store data in the disk, it is necessary to calculate the storage address of the disk, that is, calculate the block number and the offset within the block according to the stripe number and the offset within the stripe. In the present invention, a stripe that needs to store data is called a target stripe, and a block that needs to store data is called a target block. Therefore, the block calculation method of the present invention calculates the target block number and the target block offset of the target block according to the target slice number and the target slice offset. First, calculate the number of blocks in the row above the row where the target stripe is located in RAID10 according to the target stripe number of the target stripe through the block number calculation module.
分块编号计算模块,用于根据所述RAID10中所述目标条带所在行的以上行中的分块数量计算所述目标条带中的目标分块的目标分块编号;A block number calculation module, configured to calculate the target block number of the target block in the target stripe according to the number of blocks in the above row of the row where the target stripe is located in the RAID10;
根据目标条带的目标条带编号计算RAID10中目标条带所在行的以上行中的分块数量后,通过分块编号计算模块根据RAID10中目标条带所在行的以上行中的分块数量便可以通过计算得到目标条带中的目标分块的目标分块编号。After calculating the number of blocks in the row above the row where the target stripe is located in RAID10 according to the target stripe number of the target stripe, use the block number calculation module to calculate the number of blocks in the row above the row where the target stripe is located in RAID10 The target block number of the target block in the target stripe can be obtained through calculation.
分块偏移计算模块,根据所述目标条带的目标条带内偏移计算所述目标分块的目标分块内偏移。The block offset calculation module is configured to calculate the target intra-slice offset of the target block according to the target intra-strip offset of the target slice.
通过计算得到目标条带中的目标分块的目标分块编号后,通过分块偏移计算模块根据目标条带的目标条带内偏移通过计算可以得到目标分块的目标分块内偏移,目标分块编号加上目标分块内偏移便可以得到磁盘中具体的地址,便可以将数据写入磁盘的该地址内。After the target block number of the target block in the target stripe is obtained by calculation, the target block offset of the target block can be obtained through calculation according to the target stripe offset of the target stripe through the block offset calculation module , the target block number plus the offset within the target block can get the specific address in the disk, and then the data can be written into the address in the disk.
在其中一个实施方式中,所述分块计算系统还包括:In one of the implementation manners, the block calculation system also includes:
第一分块计算模块,用于根据所述RAID10中所述目标条带所在行的以上行中的分块数量计算所述目标条带所在磁盘的第一个分块的分块编号;The first block calculation module is used to calculate the block number of the first block of the disk where the target stripe is located according to the number of blocks in the row above the row where the target stripe is located in the RAID10;
获取到RAID10中目标条带所在行的以上行中的分块数量后,通过第一分块计算模块根据RAID10中目标条带所在行的以上行中的分块数量通过相应的计算公式通过计算便可以得到目标条带所在磁盘的第一个分块的分块编号,以便于通过分块编号计算出目标条带中的目标分块的目标分块编号。After obtaining the number of blocks in the row above the line where the target stripe is located in RAID10, the first block calculation module is used to calculate the number of blocks in the row above the line where the target stripe is located in RAID10 through the corresponding calculation formula. The block number of the first block of the disk where the target stripe is located can be obtained, so as to calculate the target block number of the target block in the target stripe through the block number.
增量编号计算模块,用于根据所述目标条带的目标条带编号和目标条带内偏移计算所述目标分块落在磁盘中具体分块的增量编号;An incremental number calculation module, configured to calculate the incremental number of the target block falling on the disk according to the target stripe number and the target stripe internal offset;
获取到目标条带所在磁盘的第一个分块的分块编号后,通过增量编号计算模块根据目标条带的目标条带编号和目标条带内偏移通过相应的计算公式便可以计算得出目标分块落在磁盘中具体分块的增量编号,以便于通过第一个分块的分块编号和增量编号计算出目标条带中的目标分块的目标分块编号。After obtaining the block number of the first block of the disk where the target stripe is located, the incremental number calculation module can calculate it according to the target stripe number of the target stripe and the offset within the target stripe through the corresponding calculation formula Output the incremental number of the specific block where the target block falls on the disk, so as to calculate the target block number of the target block in the target stripe through the block number and the incremental number of the first block.
分块掩码计算模块,用于根据所述分块大小计算得到分块计算掩码。A block mask calculation module, configured to calculate a block calculation mask according to the block size.
根据RAID10中目标条带所在行的以上行中的分块数量计算目标条带中的目标分块编号后,要进一步根据目标条带的目标条带内偏移计算目标条带中的目标分块的目标分块内偏移,首先要通过分块掩码计算模块根据分块大小计算得到分块计算掩码,以便于通过目标条带的目标条带内偏移和分块计算掩码通过分块偏移计算公式计算出目标分块的目标分块内偏移。After calculating the number of target blocks in the target stripe according to the number of blocks in the row above the row where the target stripe is located in RAID10, it is necessary to further calculate the target block in the target stripe according to the offset within the target stripe The offset within the target block of the target slice, firstly, the block calculation mask is calculated by the block mask calculation module according to the block size, so that the target slice offset and the block calculation mask can be passed through the block The block offset calculation formula calculates the target intra-block offset of the target block.
关于分块计算系统的具体限定可以参见上文中对于方法的限定,在此不再赘述。上述分块计算系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。For specific limitations on the block computing system, refer to the above-mentioned limitations on the method, and details will not be repeated here. Each module in the above block computing system can be fully or partially realized by software, hardware and a combination thereof. The above-mentioned modules can be embedded in or independent of the processor in the computer device in the form of hardware, and can also be stored in the memory of the computer device in the form of software, so that the processor can invoke and execute the corresponding operations of the above-mentioned modules.
实施例五:Embodiment five:
本实施例提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现分块计算方法的步骤。This embodiment provides a computer device, including a memory, a processor, and a computer program stored on the memory and operable on the processor, and the processor implements the steps of the block calculation method when executing the computer program.
该计算机设备可以是终端,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现分块计算方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。The computer device may be a terminal, and its internal structure diagram may be as shown in FIG. 6 . The computer device includes a processor, a memory, a network interface, a display screen and an input device connected through a system bus. Wherein, the processor of the computer device is used to provide calculation and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system and computer programs. The internal memory provides an environment for the operation of the operating system and computer programs in the non-volatile storage medium. The network interface of the computer device is used to communicate with an external terminal via a network connection. When the computer program is executed by the processor, the block computing method can be realized. The display screen of the computer device may be a liquid crystal display screen or an electronic ink display screen, and the input device of the computer device may be a touch layer covered on the display screen, or a button, a trackball or a touch pad provided on the casing of the computer device , and can also be an external keyboard, touchpad, or mouse.
本领域内的技术人员应明白,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。Those skilled in the art should understand that the structure shown in Figure 6 is only a block diagram of a part of the structure related to the solution of this application, and does not constitute a limitation to the computer equipment on which the solution of this application is applied. The specific computer Devices may include more or fewer components than shown in the figures, or combine certain components, or have a different arrangement of components.
在其中一个实施方式中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:In one of the embodiments, a computer device is provided, including a memory, a processor, and a computer program stored on the memory and operable on the processor. When the processor executes the computer program, the following steps are implemented:
对所述RAID10进行条带划分以及在所述条带下进行分块划分,并对划分好的条带和分块进行编号;Carry out stripe division to described RAID10 and perform block division under described stripe, and number the divided stripe and division;
接收数据传输指令,并根据所述数据传输指令确定目标条带以及目标条带的目标条带编号和目标条带内偏移;Receiving a data transfer instruction, and determining a target stripe, a target stripe number of the target stripe, and an offset within the target stripe according to the data transfer instruction;
根据目标条带的目标条带编号计算所述RAID10中所述目标条带所在行的以上行中的分块数量;Calculate the number of blocks in the above row of the row where the target stripe is located in the RAID10 according to the target stripe number of the target stripe;
根据所述RAID10中所述目标条带所在行的以上行中的分块数量计算所述目标条带中的目标分块的目标分块编号;Calculate the target block number of the target block in the target strip according to the number of blocks in the above row of the row where the target strip is located in the RAID10;
根据所述目标条带的目标条带内偏移计算所述目标分块的目标分块内偏移。calculating the target intra-slice offset of the target block according to the target intra-slice offset of the target slice.
实施例六:Embodiment six:
本实施例提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:This embodiment provides a computer-readable storage medium on which a computer program is stored. When the computer program is executed by a processor, the following steps are implemented:
对所述RAID10进行条带划分以及在所述条带下进行分块划分,并对划分好的条带和分块进行编号;Carry out stripe division to described RAID10 and perform block division under described stripe, and number the divided stripe and division;
接收数据传输指令,并根据所述数据传输指令确定目标条带以及目标条带的目标条带编号和目标条带内偏移;Receiving a data transfer instruction, and determining a target stripe, a target stripe number of the target stripe, and an offset within the target stripe according to the data transfer instruction;
根据目标条带的目标条带编号计算所述RAID10中所述目标条带所在行的以上行中的分块数量;Calculate the number of blocks in the above row of the row where the target stripe is located in the RAID10 according to the target stripe number of the target stripe;
根据所述RAID10中所述目标条带所在行的以上行中的分块数量计算所述目标条带中的目标分块的目标分块编号;Calculate the target block number of the target block in the target strip according to the number of blocks in the above row of the row where the target strip is located in the RAID10;
根据所述目标条带的目标条带内偏移计算所述目标分块的目标分块内偏移。calculating the target intra-slice offset of the target block according to the target intra-slice offset of the target slice.
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。Those of ordinary skill in the art can understand that all or part of the processes in the methods of the above embodiments can be implemented through computer programs to instruct related hardware, and the computer programs can be stored in a non-volatile computer-readable memory In the medium, when the computer program is executed, it may include the processes of the embodiments of the above-mentioned methods. Wherein, any references to memory, storage, database or other media used in the various embodiments provided in the present application may include non-volatile and/or volatile memory. Nonvolatile memory can include read only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), or flash memory. Volatile memory can include random access memory (RAM) or external cache memory. By way of illustration and not limitation, RAM is available in many forms such as Static RAM (SRAM), Dynamic RAM (DRAM), Synchronous DRAM (SDRAM), Double Data Rate SDRAM (DDRSDRAM), Enhanced SDRAM (ESDRAM), Synchronous Chain Synchlink DRAM (SLDRAM), memory bus (Rambus) direct RAM (RDRAM), direct memory bus dynamic RAM (DRDRAM), and memory bus dynamic RAM (RDRAM), etc.
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。The technical features of the above embodiments can be combined arbitrarily. To make the description concise, all possible combinations of the technical features in the above embodiments are not described. However, as long as there is no contradiction in the combination of these technical features, they should be It is considered to be within the range described in this specification.
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。The above-mentioned embodiments only represent several implementation modes of the present application, and the description thereof is relatively specific and detailed, but it should not be construed as limiting the scope of the patent for the invention. It should be noted that those skilled in the art can make several modifications and improvements without departing from the concept of the present application, and these all belong to the protection scope of the present application. Therefore, the scope of protection of the patent application should be based on the appended claims.
Claims (17)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211503958.3A CN115543216B (en) | 2022-11-29 | 2022-11-29 | Disk array distribution architecture, block calculation method, system, device and medium |
PCT/CN2023/113614 WO2024113972A1 (en) | 2022-11-29 | 2023-08-17 | Distributed architecture for redundant array of independent disks, block calculation method, system, device, and medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211503958.3A CN115543216B (en) | 2022-11-29 | 2022-11-29 | Disk array distribution architecture, block calculation method, system, device and medium |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115543216A true CN115543216A (en) | 2022-12-30 |
CN115543216B CN115543216B (en) | 2023-03-21 |
Family
ID=84722329
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211503958.3A Active CN115543216B (en) | 2022-11-29 | 2022-11-29 | Disk array distribution architecture, block calculation method, system, device and medium |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115543216B (en) |
WO (1) | WO2024113972A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024113972A1 (en) * | 2022-11-29 | 2024-06-06 | 苏州元脑智能科技有限公司 | Distributed architecture for redundant array of independent disks, block calculation method, system, device, and medium |
CN118689412A (en) * | 2024-08-28 | 2024-09-24 | 苏州元脑智能科技有限公司 | A data processing method, product, device and medium |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030115437A1 (en) * | 2001-12-18 | 2003-06-19 | Kabushiki Kaisha Toshiba | Disk array apparatus and data update method therein |
CN101504623A (en) * | 2009-03-20 | 2009-08-12 | 杭州华三通信技术有限公司 | Independent disk redundancy array construction method and device |
CN101587425A (en) * | 2009-06-16 | 2009-11-25 | 杭州华三通信技术有限公司 | A kind of method and device that increases magnetic disc redundant array redundancy |
CN101866307A (en) * | 2010-06-24 | 2010-10-20 | 杭州华三通信技术有限公司 | Data storage method and device based on mirror image technology |
CN101976175A (en) * | 2010-08-19 | 2011-02-16 | 北京同有飞骥科技有限公司 | Method for constructing disk array by horizontal grouping parallel concentrated verification |
CN101976174A (en) * | 2010-08-19 | 2011-02-16 | 北京同有飞骥科技有限公司 | Method for constructing energy-saving disk array of vertical configuration distribution check |
CN108319427A (en) * | 2017-12-21 | 2018-07-24 | 创新科存储技术(深圳)有限公司 | A kind of Raid10 implementation methods for supporting quickly to rebuild and device |
CN108628541A (en) * | 2017-03-22 | 2018-10-09 | 华为技术有限公司 | A kind of method, apparatus and storage system of file storage |
US20190102250A1 (en) * | 2017-10-02 | 2019-04-04 | Western Digital Technologies, Inc. | Redundancy Coding Stripe Based On Internal Addresses Of Storage Devices |
CN112463036A (en) * | 2020-11-13 | 2021-03-09 | 苏州浪潮智能科技有限公司 | Method, system, terminal and storage medium for calculating block stripes by disk |
CN113342279A (en) * | 2021-06-24 | 2021-09-03 | 苏州浪潮智能科技有限公司 | Disk array access method, device, equipment and storage medium |
CN113407125A (en) * | 2021-08-20 | 2021-09-17 | 苏州浪潮智能科技有限公司 | Method, system and related device for determining block number in RAID6 array |
CN113821373A (en) * | 2021-11-19 | 2021-12-21 | 苏州浪潮智能科技有限公司 | Method, system, equipment and storage medium for improving disk address translation speed |
CN113867644A (en) * | 2021-09-30 | 2021-12-31 | 苏州浪潮智能科技有限公司 | Disk array optimization method, device, computer equipment and storage medium |
CN113986149A (en) * | 2021-12-27 | 2022-01-28 | 苏州浪潮智能科技有限公司 | A system fault handling method, device, equipment and storage medium |
CN115129265A (en) * | 2022-09-01 | 2022-09-30 | 苏州浪潮智能科技有限公司 | Partitioned caching method, device, equipment and readable medium for redundant array of independent disks |
CN115373609A (en) * | 2022-10-25 | 2022-11-22 | 浪潮电子信息产业股份有限公司 | Task processing method and related equipment |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104778018B (en) * | 2015-04-23 | 2018-06-05 | 南京道熵信息技术有限公司 | Wide band disk array and storage method based on asymmetric hybrid magnetic disk mirroring |
CN107728946A (en) * | 2017-09-30 | 2018-02-23 | 深圳市华德安科技有限公司 | Hanging method, Android device and the storage medium of disk array |
CN111857552A (en) * | 2019-04-30 | 2020-10-30 | 伊姆西Ip控股有限责任公司 | Storage management method, electronic device and computer program product |
CN115543216B (en) * | 2022-11-29 | 2023-03-21 | 苏州浪潮智能科技有限公司 | Disk array distribution architecture, block calculation method, system, device and medium |
-
2022
- 2022-11-29 CN CN202211503958.3A patent/CN115543216B/en active Active
-
2023
- 2023-08-17 WO PCT/CN2023/113614 patent/WO2024113972A1/en unknown
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030115437A1 (en) * | 2001-12-18 | 2003-06-19 | Kabushiki Kaisha Toshiba | Disk array apparatus and data update method therein |
CN101504623A (en) * | 2009-03-20 | 2009-08-12 | 杭州华三通信技术有限公司 | Independent disk redundancy array construction method and device |
CN101587425A (en) * | 2009-06-16 | 2009-11-25 | 杭州华三通信技术有限公司 | A kind of method and device that increases magnetic disc redundant array redundancy |
CN101866307A (en) * | 2010-06-24 | 2010-10-20 | 杭州华三通信技术有限公司 | Data storage method and device based on mirror image technology |
CN101976175A (en) * | 2010-08-19 | 2011-02-16 | 北京同有飞骥科技有限公司 | Method for constructing disk array by horizontal grouping parallel concentrated verification |
CN101976174A (en) * | 2010-08-19 | 2011-02-16 | 北京同有飞骥科技有限公司 | Method for constructing energy-saving disk array of vertical configuration distribution check |
CN108628541A (en) * | 2017-03-22 | 2018-10-09 | 华为技术有限公司 | A kind of method, apparatus and storage system of file storage |
US20190102250A1 (en) * | 2017-10-02 | 2019-04-04 | Western Digital Technologies, Inc. | Redundancy Coding Stripe Based On Internal Addresses Of Storage Devices |
CN108319427A (en) * | 2017-12-21 | 2018-07-24 | 创新科存储技术(深圳)有限公司 | A kind of Raid10 implementation methods for supporting quickly to rebuild and device |
CN112463036A (en) * | 2020-11-13 | 2021-03-09 | 苏州浪潮智能科技有限公司 | Method, system, terminal and storage medium for calculating block stripes by disk |
CN113342279A (en) * | 2021-06-24 | 2021-09-03 | 苏州浪潮智能科技有限公司 | Disk array access method, device, equipment and storage medium |
CN113407125A (en) * | 2021-08-20 | 2021-09-17 | 苏州浪潮智能科技有限公司 | Method, system and related device for determining block number in RAID6 array |
CN113867644A (en) * | 2021-09-30 | 2021-12-31 | 苏州浪潮智能科技有限公司 | Disk array optimization method, device, computer equipment and storage medium |
CN113821373A (en) * | 2021-11-19 | 2021-12-21 | 苏州浪潮智能科技有限公司 | Method, system, equipment and storage medium for improving disk address translation speed |
CN113986149A (en) * | 2021-12-27 | 2022-01-28 | 苏州浪潮智能科技有限公司 | A system fault handling method, device, equipment and storage medium |
CN115129265A (en) * | 2022-09-01 | 2022-09-30 | 苏州浪潮智能科技有限公司 | Partitioned caching method, device, equipment and readable medium for redundant array of independent disks |
CN115373609A (en) * | 2022-10-25 | 2022-11-22 | 浪潮电子信息产业股份有限公司 | Task processing method and related equipment |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024113972A1 (en) * | 2022-11-29 | 2024-06-06 | 苏州元脑智能科技有限公司 | Distributed architecture for redundant array of independent disks, block calculation method, system, device, and medium |
CN118689412A (en) * | 2024-08-28 | 2024-09-24 | 苏州元脑智能科技有限公司 | A data processing method, product, device and medium |
Also Published As
Publication number | Publication date |
---|---|
CN115543216B (en) | 2023-03-21 |
WO2024113972A1 (en) | 2024-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115543216B (en) | Disk array distribution architecture, block calculation method, system, device and medium | |
US7051155B2 (en) | Method and system for striping data to accommodate integrity metadata | |
CN101587425B (en) | Method and device for increasing magnetic disc redundant array redundancy | |
US6918007B2 (en) | Memory controller interface with XOR operations on memory read to accelerate RAID operations | |
WO2017173623A1 (en) | Method and storage device for processing stripes in storage device | |
JP2012137885A (en) | Data storage device, memory control device and memory control method | |
KR20170015757A (en) | Data storage device and operating method thereof | |
CN110297601B (en) | Solid state disk array construction method, electronic device and storage medium | |
JP5367686B2 (en) | Data storage device, memory control device, and memory control method | |
CN110413454B (en) | Data reconstruction method and device based on storage array and storage medium | |
WO2022100322A1 (en) | Method and system for calculating strip stride by means of disk, terminal and storage medium | |
US9588693B2 (en) | Performing discard commands on RAID storage devices | |
JP2021096837A (en) | SSD with improved reliability | |
CN111666043A (en) | Data storage method and equipment | |
CN110569000A (en) | Host RAID (redundant array of independent disk) management method and device based on solid state disk array | |
JP2016038767A (en) | Storage control device, storage control program, and storage control method | |
CN113918083A (en) | Stripe management method, storage system, stripe management apparatus, and storage medium | |
CN115543223A (en) | Method, medium, equipment and disk array card for flexibly forming disk array card | |
US10776052B2 (en) | Information processing apparatus, data compressing method, and computer-readable recording medium | |
US11561859B2 (en) | Method, device and computer program product for managing data | |
KR20090106221A (en) | Flash memory system having parallel structure, data writing method thereof and flash memory | |
CN115454343A (en) | Data processing method, device and medium based on RAID chip | |
CN104461383B (en) | The implementation method and device of a kind of RAID | |
WO2020043203A1 (en) | Erasure code-based data storage method, device, and electronic apparatus | |
US10430124B1 (en) | Disk managing method and raid controller |
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 |