CN104166601A - Storage data backup method and device - Google Patents
Storage data backup method and device Download PDFInfo
- Publication number
- CN104166601A CN104166601A CN201410401367.4A CN201410401367A CN104166601A CN 104166601 A CN104166601 A CN 104166601A CN 201410401367 A CN201410401367 A CN 201410401367A CN 104166601 A CN104166601 A CN 104166601A
- Authority
- CN
- China
- Prior art keywords
- block
- data
- write
- head
- raid array
- 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
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提出一种存储数据的备份方法,应用于RAID阵列,所述方法包括:为目标RAID阵列创建写缓存;其中,所述写缓存在所述目标RAID阵列失效时启用;当所述目标RAID阵列失效时,在执行写IO命令时将写入所述目标RAID阵列的数据写入所述写缓存,在执行读IO命令时从所述写缓存中读取数据;当所述目标RAID阵列恢复正常时,自动触发所述写缓存将已写入数据回写至所述目标RAID阵列,并在回写完成时禁用所述写缓存。通过本发明能降低硬件成本以及对业务的性能影响。
The present invention proposes a method for backing up stored data, which is applied to a RAID array. The method includes: creating a write cache for a target RAID array; wherein, the write cache is enabled when the target RAID array fails; when the target RAID When the array fails, write the data written into the target RAID array into the write cache when executing a write IO command, and read data from the write cache when executing a read IO command; when the target RAID array recovers Normally, the write cache is automatically triggered to write back the written data to the target RAID array, and the write cache is disabled when the write back is completed. The invention can reduce hardware cost and performance impact on business.
Description
技术领域technical field
本发明涉及存储领域,尤其涉及一种存储数据的备份方法和装置。The invention relates to the field of storage, in particular to a backup method and device for storing data.
背景技术Background technique
当RAID阵列失效时,该阵列上的所有逻辑资源都不能读写,将导致业务中断。例如,在RAID5阵列中有2块盘不能读写,或者在RAID0阵列中有1块盘不能读写,就会导致RAID阵列失效。然而,在大多数情况下,不能读写的硬盘,很可能只是硬盘转接板出现问题,或者DEU框SAS连线松动,而磁盘本身并没有问题。维护人员通过更换转接板、或者固定SAS连线对RAID阵列进行恢复时,通常会造成RAID阵列暂时失效,在RAID阵列暂时失效的情况下,失效期间的业务无法提供、数据无法保存,从而会造成严重的数据丢失。比如在监控应用中,RAID阵列失效期间的所有监控录像都会丢失。When the RAID array fails, all logical resources on the array cannot be read or written, which will cause service interruption. For example, if two disks in the RAID5 array cannot be read or written, or one disk in the RAID0 array cannot be read or written, the RAID array will fail. However, in most cases, the hard disk that cannot be read or written is probably just a problem with the hard disk adapter board, or the SAS connection of the DEU box is loose, but the disk itself is not a problem. When maintenance personnel restore the RAID array by replacing the adapter board or fixing the SAS connection, it usually causes the temporary failure of the RAID array. cause severe data loss. For example, in surveillance applications, all surveillance video during the failure of the RAID array will be lost.
为解决上述问题,当前一般使用镜像技术来应对RAID阵列的失效。具体地,可首先对RAID阵列创建镜像RAID阵列,也可以对逻辑资源创建镜像逻辑资源。在向RAID阵列写入数据时,将数据同时写入两份独立的RAID阵列(或者逻辑资源)上。若主RAID阵列失效,则将业务流转到镜像RAID阵列上。In order to solve the above-mentioned problems, the mirroring technology is generally used at present to cope with the failure of the RAID array. Specifically, a mirrored RAID array may be first created for the RAID array, and a mirrored logical resource may also be created for the logical resource. When writing data to the RAID array, the data is simultaneously written to two independent RAID arrays (or logical resources). If the primary RAID array fails, the service flow is transferred to the mirror RAID array.
然而上述方案中,由于必须使用相同大小的RAID阵列或逻辑资源创建镜像,硬盘空间成本翻倍;在业务写数据时,需要同时写两份,在系统业务繁忙的情况下,会影响业务写性能,而且会造成CPU等系统资源负载翻倍,从而影响其他读写业务的性能。However, in the above solution, since a RAID array or logical resource of the same size must be used to create a mirror, the cost of hard disk space is doubled; when writing business data, two copies need to be written at the same time, which will affect the business writing performance when the system business is busy , and will double the load of system resources such as the CPU, thereby affecting the performance of other read and write services.
发明内容Contents of the invention
有鉴于此,本发明提出一种存储数据的备份方法,应用于RAID阵列,所述方法包括:In view of this, the present invention proposes a backup method for storing data, which is applied to a RAID array, and the method includes:
为目标RAID阵列创建写缓存;其中,所述写缓存在所述目标RAID阵列失效时启用;Create a write cache for the target RAID array; wherein, the write cache is enabled when the target RAID array fails;
当所述目标RAID阵列失效时,在执行写IO命令时将写入所述目标RAID阵列的数据写入所述写缓存,在执行读IO命令时从所述写缓存中读取数据;When the target RAID array fails, write the data written into the target RAID array into the write cache when executing a write IO command, and read data from the write cache when executing a read IO command;
当所述目标RAID阵列恢复正常时,自动触发所述写缓存将已写入数据回写至所述目标RAID阵列,并在回写完成时禁用所述写缓存。When the target RAID array returns to normal, the write cache is automatically triggered to write back the written data to the target RAID array, and the write cache is disabled when the write back is completed.
优选地,所述方法还包括:Preferably, the method also includes:
在所述回写过程中,如果需要执行写IO命令,则将该写IO命令对应的数据写入所述目标RAID阵列;In the write-back process, if a write IO command needs to be executed, the data corresponding to the write IO command is written into the target RAID array;
在所述回写过程中,如果需要执行读IO命令,则根据待读取的数据信息从所述写缓存中或者从所述目标RAID阵列中读取数据。In the write-back process, if a read IO command needs to be executed, data is read from the write cache or from the target RAID array according to the data information to be read.
优选地,所述写缓存的存储空间被划分为全局头、RAID头、Block头以及Block数据区;Preferably, the storage space of the write cache is divided into a global header, a RAID header, a Block header and a Block data area;
所述全局头,记录写缓存存储空间的大小以及各RAID头是否已被分配的第一bitmap位图;The global header records the size of the write cache storage space and whether each RAID header has been allocated the first bitmap bitmap;
所述RAID头,根据使用写缓存进行失效备份的目标RAID阵列个数被划分为若干子区域,每个子区域分别对应一个目标RAID阵列,并记录该目标RAID阵列信息;所述目标RAID阵列信息包括所述目标RAID阵列的阵列编号、Block大小以及可用Block个数;The RAID header is divided into several sub-areas according to the number of target RAID arrays that use the write cache for failure backup, each sub-area corresponds to a target RAID array, and records the target RAID array information; the target RAID array information includes The array number, Block size and available Block number of the target RAID array;
所述Block头,每个Block头分别对应一个Block数据块,并分别记录所述Block数据块所属RAID头编号、该Block数据块在目标RAID阵列中的lba地址以及记录该Block数据块是否已写入数据的第二bitmap位图;Described Block head, each Block head corresponds to a Block data block respectively, and record respectively the RAID head number to which the Block data block belongs, the lba address of the Block data block in the target RAID array and record whether the Block data block has been written The second bitmap bitmap of the input data;
所述Block数据区,包括若干个Block数据块,所述Block数据块的大小为所述RAID头中记录的所述Block大小。The Block data area includes several Block data blocks, and the size of the Block data blocks is the Block size recorded in the RAID header.
优选地,所述为目标RAID阵列创建写缓存包括:Preferably, said creating a write cache for the target RAID array includes:
根据所述第一bitmap位图,为所述目标RAID阵列分配一个未使用的RAID头;Allocating an unused RAID header for the target RAID array according to the first bitmap;
将所述目标RAID阵列信息以及为所述目标RAID阵列分配的可用Block个数记录到对应的RAID头中。Record the target RAID array information and the number of available blocks allocated for the target RAID array into a corresponding RAID header.
优选地,所述将写入所述目标RAID阵列的存储数据写入所述写缓存包括:Preferably, writing the storage data written into the target RAID array into the write cache includes:
根据收到的写IO请求中的目标RAID阵列编号查找对应的RAID头;Find the corresponding RAID header according to the target RAID array number in the received write IO request;
根据所述写IO请求中的lba地址,在该RAID头对应的Block头中查找Block头;According to the lba address in the write IO request, the Block header is searched in the Block header corresponding to the RAID header;
如果查找到了对应的Block头,将数据写入该Block头对应的Block数据块中;If the corresponding Block header is found, write the data into the Block data block corresponding to the Block header;
如果未查找到对应的Block头,则获取一个空Block数据块,将数据写入该空Block数据块中,同时在该空Block数据块对应的Block头中记录所属RAID头的编号,在所述第二bitmap位图中记录该Block头对应的Block数据块已写入数据,并将该数据在目标RAID阵列中的lba地址记录到该Block头中;If do not find corresponding Block header, then obtain an empty Block data block, write data in this empty Block data block, record the serial number of belonging RAID head in the corresponding Block header of this empty Block data block simultaneously, in described Record in the second bitmap bitmap that the Block data block corresponding to the Block header has written data, and record the lba address of the data in the target RAID array into the Block header;
其中当获取到一个空数据块时,更新对应的RAID头中记录的所述可用Block个数。Wherein when an empty data block is obtained, the number of available blocks recorded in the corresponding RAID header is updated.
优选地,所述从所述写缓存中读取数据包括:Preferably, reading data from the write cache includes:
根据收到的读IO请求中的目标RAID阵列编号查找对应的RAID头;Find the corresponding RAID header according to the target RAID array number in the received read IO request;
根据所述读IO请求中的lba地址,在该RAID头对应的Block头中查找Block头;According to the lba address in the read IO request, search the Block header in the Block header corresponding to the RAID header;
如果查找到了对应的Block头,并且该Block头中的所述第二bitmap位图记录该Block头对应的Block数据块已写入了数据,则读取该数据;If the corresponding Block header is found, and the second bitmap bitmap in the Block header records that the Block data block corresponding to the Block header has written data, then read the data;
如果未查找到对应的Block头,或者该Block头中的所述第二bitmap位图记录该Block头对应的Block数据块未写入数据,从所述目标RAID阵列中读取数据,并返回读取结果。If the corresponding Block header is not found, or the second bitmap bitmap in the Block header records that the Block data block corresponding to the Block header has no written data, read the data from the target RAID array, and return the read Get the result.
本发明还提出一种存储数据的备份装置,应用于RAID阵列,所述装置包括:The present invention also proposes a backup device for storing data, which is applied to a RAID array, and the device includes:
创建模块,用于为目标RAID阵列创建写缓存;其中,所述写缓存在所述目标RAID阵列失效时启用;Create a module for creating a write cache for the target RAID array; wherein, the write cache is enabled when the target RAID array fails;
读写模块,用于在所述目标RAID阵列失效时,在执行写IO命令时将写入所述目标RAID阵列的数据写入所述写缓存,在执行读IO命令时从所述写缓存中读取数据;A read-write module, configured to write the data written into the target RAID array into the write cache when executing a write IO command when the target RAID array fails, and read data from the write cache when executing a read IO command read data;
回写模块,用于在所述目标RAID阵列恢复正常时,自动触发所述写缓存将已写入数据回写至所述目标RAID阵列,并在回写完成时禁用所述写缓存。The write-back module is configured to automatically trigger the write cache to write back the written data to the target RAID array when the target RAID array returns to normal, and disable the write cache when the write-back is completed.
优选地,所述回写模块进一步用于:Preferably, the write-back module is further used for:
在所述回写过程中,如果需要执行写IO命令,则将该写IO命令对应的数据写入所述目标RAID阵列;In the write-back process, if a write IO command needs to be executed, the data corresponding to the write IO command is written into the target RAID array;
所述读写模块进一步用于:The read-write module is further used for:
在所述回写过程中,如果需要执行读IO命令,则根据待读取的数据信息从所述写缓存中或者从所述目标RAID阵列中读取数据。In the write-back process, if a read IO command needs to be executed, data is read from the write cache or from the target RAID array according to the data information to be read.
优选地,所述写缓存的存储空间被划分为全局头、RAID头、Block头以及Block数据区;Preferably, the storage space of the write cache is divided into a global header, a RAID header, a Block header and a Block data area;
所述全局头,包括写缓存存储空间的大小以及记录各RAID头是否已被分配的第一bitmap位图;The global header includes the size of the write cache storage space and the first bitmap bitmap that records whether each RAID header has been allocated;
所述RAID头,根据使用写缓存进行失效备份的目标RAID阵列个数被划分为若干子区域,每个子区域分别对应一个目标RAID阵列,并记录该目标RAID阵列信息;所述目标RAID阵列信息包括所述目标RAID阵列的阵列编号、Block大小以及可用Block个数;The RAID header is divided into several sub-areas according to the number of target RAID arrays that use the write cache for failure backup, each sub-area corresponds to a target RAID array, and records the target RAID array information; the target RAID array information includes The array number, Block size and available Block number of the target RAID array;
所述Block头,每个Block头分别对应一个Block数据块,并分别记录所述Block数据块所属RAID头编号、该Block数据块在目标RAID阵列中的lba地址以及记录该Block数据块是否已写入数据的第二bitmap位图;Described Block head, each Block head corresponds to a Block data block respectively, and record respectively the RAID head number to which the Block data block belongs, the lba address of the Block data block in the target RAID array and record whether the Block data block has been written The second bitmap bitmap of the input data;
所述Block数据区,包括若干个Block数据块,所述Block数据块的大小为所述RAID头中记录的所述Block大小。The Block data area includes several Block data blocks, and the size of the Block data blocks is the Block size recorded in the RAID header.
优选地,所述创建模块进一步用于:Preferably, the creation module is further used for:
根据所述第一bitmap位图,为所述目标RAID阵列分配一个未使用的RAID头;Allocating an unused RAID header for the target RAID array according to the first bitmap;
将所述目标RAID阵列信息以及为所述目标RAID阵列分配的可用Block个数记录到对应的RAID头中。Record the target RAID array information and the number of available blocks allocated for the target RAID array into a corresponding RAID header.
优选地,所述读写模块进一步用于:Preferably, the read-write module is further used for:
根据收到的写IO请求中的目标RAID阵列编号查找对应的RAID头;Find the corresponding RAID header according to the target RAID array number in the received write IO request;
根据所述写IO请求中的lba地址,在该RAID头对应的Block头中查找Block头;According to the lba address in the write IO request, the Block header is searched in the Block header corresponding to the RAID header;
如果查找到了对应的Block头,将数据写入该Block头对应的Block数据块中;If the corresponding Block header is found, write the data into the Block data block corresponding to the Block header;
如果未查找到对应的Block头,则获取一个空Block数据块,将数据写入该空Block数据块中,同时在该空Block数据块对应的Block头中记录所属RAID头的编号,在所述第二bitmap位图中记录该Block头对应的Block数据块已写入数据,并将该数据在目标RAID阵列中的lba地址记录到该Block头中;If do not find corresponding Block header, then obtain an empty Block data block, write data in this empty Block data block, record the serial number of belonging RAID head in the corresponding Block header of this empty Block data block simultaneously, in described Record in the second bitmap bitmap that the Block data block corresponding to the Block header has written data, and record the lba address of the data in the target RAID array into the Block header;
其中,当获取到一个空数据块时,更新对应的RAID头中记录的所述可用Block个数。Wherein, when an empty data block is acquired, the number of available Blocks recorded in the corresponding RAID header is updated.
优选地,所述读写模块进一步用于:Preferably, the read-write module is further used for:
根据收到的读IO请求中的目标RAID阵列编号查找对应的RAID头;Find the corresponding RAID header according to the target RAID array number in the received read IO request;
根据所述读IO请求中的lba地址,在该RAID头对应的Block头中查找Block头;According to the lba address in the read IO request, search the Block header in the Block header corresponding to the RAID header;
如果查找到了对应的Block头,并且该Block头中的所述第二bitmap位图记录该Block头对应的Block数据块已写入了数据,则读取该数据;If the corresponding Block header is found, and the second bitmap bitmap in the Block header records that the Block data block corresponding to the Block header has written data, then read the data;
如果未查找到对应的Block头,或者该Block头中的所述第二bitmap位图记录该Block头对应的Block数据块未写入数据,从所述目标RAID阵列中读取数据,并返回读取结果。If the corresponding Block header is not found, or the second bitmap bitmap in the Block header records that the Block data block corresponding to the Block header has no written data, read the data from the target RAID array, and return the read Get the result.
本发明通过创建写缓存,使用少量的存储空间可同时为多个RAID阵列提供失效备份,降低了硬件成本;而且,由于所述写缓存在RAID阵列失效时才启用,并且在RAID阵列失效再恢复时,只回写失效期间写入的数据,从而显著降低了对业务的性能影响。The present invention uses a small amount of storage space to provide failure backups for multiple RAID arrays at the same time by creating a write cache, which reduces hardware costs; moreover, because the write cache is only enabled when the RAID array fails, and can be restored when the RAID array fails , only the data written during the failure period is written back, which significantly reduces the performance impact on the business.
附图说明Description of drawings
图1是现有技术中RAID存储阵列对外部读写IO的处理示意图;FIG. 1 is a schematic diagram of the processing of external read and write IOs by a RAID storage array in the prior art;
图2是本发明一种示例性实施例示出的一种RAID阵列对外部读写IO的处理示意图;Fig. 2 is a kind of RAID array shown in an exemplary embodiment of the present invention to the processing schematic diagram of external reading and writing IO;
图3是本发明一种示例性实施方式示出的一种存储数据的备份方法流程图;Fig. 3 is a flow chart of a method for backing up stored data shown in an exemplary embodiment of the present invention;
图4是本发明一种示例性实施方式示出的一种写缓存存储介质的存储空间组织形式;Fig. 4 is a storage space organization form of a write cache storage medium shown in an exemplary embodiment of the present invention;
图5是本发明一种示例性实施方式示出的一种RAID阵列通过写缓存进行数据失效备份以及数据恢复的处理流程;Fig. 5 is a kind of RAID array shown in an exemplary embodiment of the present invention and carries out the processing procedure of data invalidation backup and data recovery through write cache;
图6是本发明一种示例性实施方式示出的一种存储数据的备份装置框图。Fig. 6 is a block diagram of a backup device for storing data showing an exemplary embodiment of the present invention.
具体实施方式Detailed ways
请参见图1,图1为现有技术中RAID阵列对外部读写IO的处理示意图。如图所示,RAID阵列在进行数据读写时,读写IO请求通过上层模块下发到RAID模块,Raid request子模块判断该IO请求所属RAID阵列的状态,如果状态正常,则将该IO请求发给RAID IO子模块处理,将数据写入后端硬盘,或者从后端硬盘读取数据;如果阵列失效,则向上层模块返回读取或者写入数据失败。Please refer to FIG. 1 . FIG. 1 is a schematic diagram of processing external read and write IOs by a RAID array in the prior art. As shown in the figure, when the RAID array is reading and writing data, the read and write IO request is sent to the RAID module through the upper module, and the Raid request sub-module judges the state of the RAID array to which the IO request belongs. If the state is normal, the IO request Send it to the RAID IO sub-module for processing, write data to the back-end hard disk, or read data from the back-end hard disk; if the array fails, return to the upper module to fail to read or write data.
在发明中,可以为RAID阵列创建独立的写缓存,并将所述写缓存作为RAID阵列的RAID模块中的一个子模块,参与RAID阵列对外部读写IO的处理。In the invention, an independent write cache can be created for the RAID array, and the write cache can be used as a sub-module in the RAID module of the RAID array to participate in the processing of the external read and write IO by the RAID array.
具体地,请参见图2,图2为本实施例示出的一种RAID阵列对外部读写IO的处理示意图。如图所示,引入了写缓存子模块后,读写IO请求通过上层模块下发到RAID模块,Raid request子模块判断该IO请求所属RAID阵列的状态,如果状态正常,仍然将该IO请求发给RAID IO子模块处理,将数据写入后端硬盘,或者从后端硬盘读取数据;如果阵列失效,读写IO请求不再发给RAID IO子模块处理,而是由写缓存子模块进行处理,数据的读写都在写缓存中进行。当阵列恢复时,自动触发写缓存将已写入数据回写。Specifically, please refer to FIG. 2 . FIG. 2 is a schematic diagram of processing external read and write IOs by a RAID array shown in this embodiment. As shown in the figure, after the write cache sub-module is introduced, the read-write IO request is sent to the RAID module through the upper module, and the Raid request sub-module judges the state of the RAID array to which the IO request belongs. If the state is normal, the IO request is still sent to Handle it to the RAID IO sub-module, write data to the back-end hard disk, or read data from the back-end hard disk; if the array fails, read and write IO requests are no longer sent to the RAID IO sub-module for processing, but are processed by the write cache sub-module Processing, data reading and writing are all performed in the write cache. When the array recovers, the write cache is automatically triggered to write back the written data.
为了使本发明的技术方案更加清楚明白,以下结合附图并举实施例对本发明进行详细描述。In order to make the technical solution of the present invention clearer, the present invention will be described in detail below with reference to the accompanying drawings and examples.
请参见图3,本发明示例性的一种实施方式中,提出一种存储数据的备份方法,应用于RAID阵列,所述方法执行如下步骤:Referring to Fig. 3, in an exemplary embodiment of the present invention, a backup method for storing data is proposed, which is applied to a RAID array, and the method performs the following steps:
步骤301、为目标RAID阵列创建写缓存;其中,所述写缓存在所述目标RAID阵列失效时启用;Step 301, creating a write cache for the target RAID array; wherein, the write cache is enabled when the target RAID array fails;
步骤302、当所述目标RAID阵列失效时,在执行写IO命令时将写入所述目标RAID阵列的数据写入所述写缓存,在执行读IO命令时从所述写缓存中读取数据;Step 302, when the target RAID array fails, write the data written into the target RAID array into the write cache when executing a write IO command, and read data from the write cache when executing a read IO command ;
步骤303、当所述目标RAID阵列恢复正常时,自动触发所述写缓存将已写入数据回写至所述目标RAID阵列,并在回写完成时禁用所述写缓存。Step 303, when the target RAID array returns to normal, automatically trigger the write cache to write back the written data to the target RAID array, and disable the write cache when the write back is completed.
在本实施例中,所述写缓存的存储介质可以是一块或多块独立的内存,一块或多块独立的硬盘,或者一个或多个独立的RAID阵列。其中,无论写缓存采用哪种存储介质,均按照如图4所示的结构组织存储空间。In this embodiment, the storage medium for the write cache may be one or more independent memories, one or more independent hard disks, or one or more independent RAID arrays. Wherein, no matter which storage medium is used for the write cache, the storage space is organized according to the structure shown in FIG. 4 .
如图4所示,在本实施例中,写缓存的存储介质被划分为4个区域,各区域分别记载以下信息:一个全局头、一个或多个RAID头、多个Block头以及多个Block数据区,每个区域只记录断电必须保存的参数。As shown in Figure 4, in this embodiment, the storage medium of the write cache is divided into four areas, and each area records the following information respectively: a global header, one or more RAID headers, multiple Block headers, and multiple Block headers. Data area, each area only records the parameters that must be saved when the power is turned off.
以下对以上4个区域的功能以记录的参数作详细的说明。The following is a detailed description of the functions of the above four areas and the recorded parameters.
全局头区域,该区域记录写缓存存储空间的大小(Size)、用于记录各RAID头是否已被分配的第一bitmap位图(raid_bitmap)、所属控制器ID(contol_id)以及该区域的数据校验值(check_sum)。其中,所述写缓存存储空间的大小,可以在创建写缓存时根据实际的业务以及失效备份的时间进行设置;例如,假设RAID阵列上有50路1Mbps的录像,需要提供24h的失效备份,因此需要创建约528G大小的RAID写缓存。那么一个4TB大小的硬盘作为写缓存,可以同时给7个这种业务的RAID阵列同时提供24h失效备份。Global header area, which records the size of the write cache storage space (Size), the first bitmap bitmap (raid_bitmap) used to record whether each RAID header has been allocated, the controller ID (contol_id) to which it belongs, and the data calibration of this area Check value (check_sum). Wherein, the size of the write cache storage space can be set according to the actual business and the time of failure backup when creating the write cache; for example, assuming that there are 50 channels of 1Mbps video recording on the RAID array, 24h failure backup needs to be provided, so A RAID write cache of about 528G needs to be created. Then a 4TB hard disk is used as a write cache, which can provide 24h failure backup for seven RAID arrays of this kind of business at the same time.
所述第一bitmap位图,用于记录各RAID头是否已被分配,一个RAID头在该bitmap位图中对应位置取值为1时,表示该RAID头已经分配;为0时,表示该RAID头尚未分配。The first bitmap bitmap is used to record whether each RAID header has been allocated. When a RAID header has a value of 1 in the corresponding position of the bitmap bitmap, it means that the RAID header has been allocated; when it is 0, it means that the RAID The header has not been allocated.
所述所属控制器ID,用于区分控制所述写缓存的控制器。例如,在具体应用时,为了提高可靠性,目标RAID阵列多通过两台控制器进行控制(俗称双控),通过所述控制器ID可以区分出控制所述目标RAID阵列的控制器。当然在非双控的环境下,该参数就不一定需要了。The belonging controller ID is used to distinguish the controller controlling the write cache. For example, in a specific application, in order to improve reliability, the target RAID array is usually controlled by two controllers (commonly known as dual control), and the controller controlling the target RAID array can be distinguished through the controller ID. Of course, in a non-dual-control environment, this parameter is not necessarily required.
所述数据校验值,用于在本区域中记录的某些参数意外丢失时,通过校验计算对丢失的参数进行恢复。The data check value is used to restore the lost parameters through check calculation when some parameters recorded in this area are accidentally lost.
RAID头区域,该区域根据使用写缓存进行失效备份的目标RAID阵列个数被划分为若干子区域,每个子区域分别对应一个目标RAID阵列;例如,假设写缓存需要为两个目标RAID阵列进行失效备份,那么RAID头区域可以等同的划分为两个子区域,每个子区域对应一个目标RAID区域。RAID头区域中每个子区域分别记录对应目标RAID阵列信息以及该区域的数据校验值;所述目标RAID阵列信息通常包括所述目标RAID阵列的阵列编号(uuid)、扇区大小(sector_size)、条带大小(strip_size)、Block大小(block_size)以及可用Block个数(block_number);其中,所述扇区大小和条带大小取决于目标RAID阵列的具体配置;所述可用Block个数为创建写缓存时由管理员进行分配。RAID header area, which is divided into several sub-areas according to the number of target RAID arrays that use write cache for invalidation backup, and each sub-area corresponds to a target RAID array; for example, suppose the write cache needs to be invalidated for two target RAID arrays backup, then the RAID header area can be equally divided into two sub-areas, and each sub-area corresponds to a target RAID area. Each sub-area in the RAID header area records the corresponding target RAID array information and the data check value of the area respectively; the target RAID array information usually includes the array number (uuid), sector size (sector_size) of the target RAID array, Strip size (strip_size), Block size (block_size) and available Block number (block_number); wherein, the sector size and the stripe size depend on the specific configuration of the target RAID array; Assigned by the administrator when caching.
Block头区域,根据写缓存的Block总个数被划分为若干个Block头,每个Block头分别对应一个Block数据块;每个Block头分别记录该Block头在Block头区域中的Block头编号(index,即表示该Block头为Block头区域的第几个Block)、该Block头所属Raid头编号(raid_index,即表示该Block头属于RAID头区域中的第几个RAID)、该Block数据块所记录的数据在目标RAID阵列中的lba地址(logical block address,逻辑区块地址)以及记录该Block数据块是否已写入数据的第二bitmap位图(block_bitmap)。The block header area is divided into several block headers according to the total number of blocks in the write cache, and each block header corresponds to a block data block; each block header respectively records the block header number of the block header in the block header area ( index, which means the block header is the first block in the block header area), the RAID head number to which the block header belongs (raid_index, which means the block header belongs to the first RAID in the RAID header area), the block data block The lba address (logical block address, logical block address) of the recorded data in the target RAID array and whether the second bitmap bitmap (block_bitmap) of recording the Block data block has written data.
Block数据区域,该区域根据写缓存的Block总个数被划分为若干个Block数据块,Block数据块的大小为所述RAID头中记录的所述Block大小。其中,写缓存的Block总个数可以通过写缓存Block数据区域的实际空间大小除以单个Block数据块的Block大小计算得到。Block data area, this area is divided into several Block data blocks according to the total number of Blocks in the write cache, and the size of the Block data block is the size of the Block recorded in the RAID header. The total number of blocks in the write cache can be calculated by dividing the actual space size of the block data area in the write cache by the block size of a single block data block.
请参见图5,图5为本实施例示出的RAID阵列通过写缓存进行数据失效备份以及数据恢复的处理流程,以下结合图4对RAID阵列通过写缓存进行数据失效备份以及数据恢复的处理流程进行详细描述。Please refer to FIG. 5. FIG. 5 shows the processing flow of the RAID array performing data failure backup and data recovery through the write cache shown in this embodiment. The processing flow of the RAID array performing data failure backup and data recovery through the write cache is described below in conjunction with FIG. 4 A detailed description.
在本实施例中,写缓存在初始状态下不对任何RAID阵列进行失效备份,在RAID阵列创建后,如果要对该RAID阵列进行失效备份,则继续创建与该RAID阵列对应的写缓存。In this embodiment, the write cache does not perform invalidation backup for any RAID array in the initial state. After the RAID array is created, if the RAID array needs to be invalidated, continue to create the write cache corresponding to the RAID array.
具体地,在为该RAID阵列创建写缓存时,可以根据全局头中的RAID头使用bitmap位图,为该RAID阵列分配一个空的RAID头,然后在分配到的RAID头中记录该RAID阵列的阵列编号、扇区大小、条带大小、Block大小等信息,同时为该RAID阵列分配可用Block个数,并将分配的可用Block个数也记录到RAID头中。其中,所述可用Block个数在具体分配时,可以是根据写缓存的总Block个数为各目标RAID阵列进行平均分配;当然,在具体实现时,也可以根据目标RAID阵列的实际业务,为不同的目标RAID阵列分配数量不等的可用Block个数,本实施例不进行特别限定。Specifically, when creating a write cache for the RAID array, you can use the bitmap bitmap according to the RAID header in the global header to allocate an empty RAID header for the RAID array, and then record the data of the RAID array in the assigned RAID header. Array number, sector size, stripe size, block size and other information, at the same time allocate the number of available blocks for the RAID array, and record the allocated number of available blocks in the RAID header. Wherein, when the number of available Blocks is specifically allocated, it can be evenly allocated to each target RAID array according to the total number of Blocks in the write cache; of course, in specific implementation, it can also be based on the actual business of the target RAID array, Different target RAID arrays allocate different numbers of available blocks, which is not particularly limited in this embodiment.
在本实施例中,创建完成的写缓存,在RAID阵列正常运行时,默认为禁用状态,在RAID阵列失效时自动启用。当写缓存启用后,对于针对失效RAID阵列的外部读写IO请求,都由写缓存进行处理。In this embodiment, the created write cache is disabled by default when the RAID array is operating normally, and is automatically enabled when the RAID array fails. When the write cache is enabled, the external read and write IO requests for the failed RAID array are processed by the write cache.
写缓存首先根据收到的写IO请求中的目标RAID阵列编号以及lba地址,查找对应的Block头;具体地,当写缓存收到写IO请求后,首先根据该写IO请求中的目标RAID阵列编号查找对应的RAID头,查到RAID头后再根据该写IO请求中的lba地址,在与该RAID头对应的Block头中查找Block头。如果是首次写入,Block头中记录的内容均为空,无法查找到对应的Block头,因此可以直接获取一个空Block数据块,将本次写入的数据写入该空Block数据块中,并在该空Block数据块对应的Block头中记录所属RAID头的编号(即为根据读IO请求中目标RAID阵列编号查找到的那个RAID头的编号),并将所述第二bitmap位图中对应bit位置位为1;同时,将该数据在目标RAID阵列中的lba地址(即该写IO请求中的lba地址)也记录到该空Block数据块对应的Block头中,以方便目标RAID阵列由失效状态恢复为正常状态时,可根据Block头中记录的lba地址将已写入数据回写至目标RAID阵列。The write cache first searches for the corresponding Block header according to the target RAID array number and lba address in the received write IO request; specifically, when the write cache receives the write IO request, it first searches for the corresponding Block header according to the target RAID array in the write IO request Find the corresponding RAID header by serial number, and then search for the Block header in the Block header corresponding to the RAID header according to the lba address in the write IO request after finding the RAID header. If it is the first write, the content recorded in the block header is empty, and the corresponding block header cannot be found, so you can directly obtain an empty block data block, and write the data written this time into the empty block data block. And record the numbering of the RAID head in the Block header corresponding to the empty Block data block (that is, the numbering of the RAID head that is found according to the target RAID array number in the read IO request), and the second bitmap bitmap Corresponding bit position setting is 1; Simultaneously, the lba address (that is, the lba address in this write IO request) of this data in the target RAID array is also recorded in the Block header corresponding to this empty Block data block, to facilitate the target RAID array When recovering from the failure state to the normal state, the written data can be written back to the target RAID array according to the lba address recorded in the Block header.
当根据该写IO请求中的目标RAID阵列编号以及扇区地址查找Block头时,如果查找到了对应的Block头,表明该Block头对应的Block数据块之前已经写入了数据,于是直接将本次写入的数据写入该Block头对应的Block数据块中。When searching for the Block header according to the target RAID array number and sector address in the write IO request, if the corresponding Block header is found, it indicates that data has been written to the Block data block corresponding to the Block header, so the The written data is written into the Block data block corresponding to the Block header.
值得说明的是,在向写缓存写入数据时,当获取到一个空Block数据块时,需要更新对应的RAID头中记录的所述可用Block个数,将所述可用Block个数减1。It is worth noting that when data is written into the write cache, when an empty Block data block is obtained, the number of available Blocks recorded in the corresponding RAID header needs to be updated, and the number of available Blocks is reduced by 1.
进一步地,当写缓存收到读IO请求后,首先根据收到的读IO请求中的目标RAID阵列编号以及lba地址,在所述写缓存中查找Block头;具体地,当写缓存收到读IO请求后,首先根据该读IO请求中的目标RAID阵列编号查找对应的RAID头,查到RAID头后再根据该读IO请求中的lba地址,在与该RAID头对应的Block头中查找Block头;Further, when the write cache receives the read IO request, first, according to the received target RAID array number and the lba address in the read IO request, the block header is searched in the write cache; specifically, when the write cache receives the read After the IO request, first search for the corresponding RAID header according to the target RAID array number in the read IO request, and then search for the Block in the Block header corresponding to the RAID header according to the lba address in the read IO request. head;
如果查找到了对应的Block头,并且该Block头中的所述第二bitmap位图中对应bit位已置位为1,表明该block头对应的block数据块之前已写入了数据,则直接读取该数据;If the corresponding Block header is found, and the corresponding bit in the second bitmap bitmap in the Block header has been set to 1, indicating that the block data block corresponding to the block header has written data before, then directly read fetch the data;
当然,如果未查找到对应的Block头,或者该Block头中的所述第二bitmap位图中对应bit位置位为0,表明写缓存中未记录本次需要读取的数据,于是从所述目标RAID阵列中读取数据,并返回读取结果。由于此时所述目标RAID阵列仍然处于失效状态,因此直接返回读取失败。Of course, if the corresponding Block header is not found, or the corresponding bit position in the second bitmap bitmap in the Block header is set to 0, it indicates that the data that needs to be read this time is not recorded in the write cache, so from the Read data from the target RAID array and return the read result. Since the target RAID array is still in an invalid state at this time, a read failure is directly returned.
在本实施例中,还可以在写缓存中预留部分存储空间作为各目标RAID阵列的竞争使用空间。对于竞争使用空间,任一RAID头即使将可用Block全部用完(即RAID头中记录的可用Block个数为0),如果竞争使用空间还存在空Block数据块,那么该RAID头仍然可以使用竞争使用空间中的空Block数据块。对于竞争使用空间的大小,用户可以根据业务具体配置。在写缓存中预留竞争使用空间,可以使得在只有一个目标RAID阵列失效时,使用更多的备份空间,从而最大化延长失效备份的备份时间,为维护人员提供更长的故障排查时间。In this embodiment, part of the storage space may also be reserved in the write cache as the competing use space of each target RAID array. For the competing use space, even if any RAID head uses up all the available blocks (that is, the number of available blocks recorded in the RAID header is 0), if there are empty Block data blocks in the competing using space, then the RAID head can still use the competing Use the empty Block data block in the space. As for the size of the competing space, the user can configure it according to the business. Reserving space for competition in the write cache can enable more backup space to be used when only one target RAID array fails, thereby maximizing the backup time of the failed backup and providing maintenance personnel with longer troubleshooting time.
在本实施例中,在目标RAID阵列失效启用写缓存的同时,此时维护人员可尽快去现场排查问题,重新恢复阵列。例如,对于硬盘转接板故障,或者DEU框SAS连线松动等磁盘本身并没有问题的故障,维护人员可以通过转接板或者SAS连线的更换恢复阵列。In this embodiment, when the target RAID array fails to enable the write cache, the maintenance personnel can go to the site to troubleshoot the problem as soon as possible and restore the array. For example, if the hard disk adapter board is faulty, or the SAS cable of the DEU box is loose, there is no problem with the disk itself. Maintenance personnel can restore the array by replacing the adapter board or SAS cable.
当失效的目标RAID阵列恢复后,自动触发写缓存将已写入数据向该目标RAID阵列进行回写,并在写缓存中的已写入数据全部回写完成后,自动禁用写缓存。When the failed target RAID array is recovered, the write cache is automatically triggered to write back the written data to the target RAID array, and after all the written data in the write cache is written back, the write cache is automatically disabled.
在本实施例中,写缓存在进行回写时,由于Block头中已记录了对应的Block数据块在所述目标RAID阵列中的lba地址,因此可以根据该lba地址,将已写入数据按写入顺序回写至目标RAID阵列。比如说,可以将该lba地址换算成pba地址(physics block address,物理区块地址),然后根据换算出的pba地址将回写的数据写入对应的物理块。其中,将该lba地址换算成pba地址的具体实现请参考现有技术,本发明不再详述。In this embodiment, when the write cache is writing back, since the Iba address of the corresponding Block data block in the target RAID array has been recorded in the Block header, the written data can be written according to the Iba address. The write sequence is written back to the target RAID array. For example, the lba address can be converted into a pba address (physics block address, physical block address), and then the written-back data can be written into the corresponding physical block according to the converted pba address. Wherein, for the specific implementation of converting the lba address into a pba address, please refer to the prior art, which will not be described in detail in the present invention.
在本实施例中,在数据回写期间,新的写IO将不再由写缓存处理,新写入的数据将直接写入恢复后的目标RAID阵列。然而,由于写缓存在回写期间,目标RAID阵列上的部分有效数据仍然在写缓存中,因此在回写期间的读IO请求还是先由写缓存处理,当从写缓存读取数据时未命中对应的数据,再从目标RAID阵列中读取数据。In this embodiment, during data write-back, new write IOs will not be processed by the write cache, and newly written data will be directly written into the restored target RAID array. However, because some valid data on the target RAID array is still in the write cache during the write-back period of the write cache, the read IO request during the write-back period is still processed by the write cache first, and misses when reading data from the write cache The corresponding data is read from the target RAID array.
当然,在具体实现时,写缓存也可以在目标RAID阵列正常时就启用,将该目标RAID阵列已写入数据同步地写入写缓存,从而即使该目标RAID阵列失效是因为硬盘故障导致的,目标RAID阵列本地数据也不会全部丢失。例如,对于视频监控领域的应用,录像写入之前需要读取录像索引数据,因此可以在RAID阵列正常时启用写缓存,将索引数据提前进行备份,从而使得RAID阵列失效时,也能正常的读取录像索引数据。Of course, in specific implementation, the write cache can also be enabled when the target RAID array is normal, and the written data of the target RAID array can be synchronously written into the write cache, so that even if the failure of the target RAID array is caused by a hard disk failure, All local data in the target RAID array will not be lost. For example, for applications in the field of video surveillance, the video index data needs to be read before the video is written, so the write cache can be enabled when the RAID array is normal, and the index data can be backed up in advance, so that when the RAID array fails, it can also be read normally. Get video index data.
通过以上描述可知,本发明通过创建写缓存,可以使用少量的存储空间可同时为多个RAID阵列提供失效备份,减低了硬件成本;而且,由于所述写缓存在RAID阵列失效时才启用,可以有效的区分出阵列失效期间写入的数据,并且由于在RAID阵列失效再恢复时,只回写失效期间写入的数据,从而显著降低了对业务的性能影响。该方案尤其适用于因非磁盘故障而导致的RAID阵列失效的数据备份和恢复。As can be seen from the above description, the present invention can use a small amount of storage space to provide failure backups for multiple RAID arrays at the same time by creating a write cache, which reduces hardware costs; and, since the write cache is enabled when the RAID array fails, it can It effectively distinguishes the data written during the failure of the array, and when the RAID array fails and recovers, only the data written during the failure is written back, thereby significantly reducing the performance impact on the business. This solution is especially suitable for data backup and recovery of RAID array failure caused by non-disk failure.
请参见图6,本发明还提出一种存储数据的备份装置60,应用于RAID阵列,所述装置60包括:Referring to Fig. 6, the present invention also proposes a backup device 60 for storing data, which is applied to a RAID array, and the device 60 includes:
创建模块601,用于为目标RAID阵列创建写缓存;其中,所述写缓存在所述目标RAID阵列失效时启用;Creating module 601, configured to create a write cache for the target RAID array; wherein, the write cache is enabled when the target RAID array fails;
读写模块602,用于在所述目标RAID阵列失效时,在执行写IO命令时将写入所述目标RAID阵列的数据写入所述写缓存,在执行读IO命令时从所述写缓存中读取数据;The read-write module 602 is configured to write the data written into the target RAID array into the write cache when executing the write IO command when the target RAID array fails, and write the data written into the target RAID array into the write cache when executing the read IO command. read data in;
回写模块603,用于在所述目标RAID阵列恢复正常时,自动触发所述写缓存将已写入数据回写至所述目标RAID阵列,并在回写完成时禁用所述写缓存。The write-back module 603 is configured to automatically trigger the write cache to write back the written data to the target RAID array when the target RAID array returns to normal, and disable the write cache when the write-back is completed.
在本实施例中,所述回写模块603进一步用于:In this embodiment, the write-back module 603 is further used to:
在所述回写过程中,如果需要执行写IO命令,则将该写IO命令对应的数据写入所述目标RAID阵列;In the write-back process, if a write IO command needs to be executed, the data corresponding to the write IO command is written into the target RAID array;
所述读写模块602进一步用于:The read-write module 602 is further used for:
在所述回写过程中,如果需要执行读IO命令,则根据待读取的数据信息从所述写缓存中或者从所述目标RAID阵列中读取数据。In the write-back process, if a read IO command needs to be executed, data is read from the write cache or from the target RAID array according to the data information to be read.
在本实施例中,所述写缓存的存储空间被划分为全局头、RAID头、Block头以及Block数据区;In this embodiment, the storage space of the write cache is divided into a global header, a RAID header, a Block header, and a Block data area;
所述全局头,包括写缓存存储空间的大小以及记录各RAID头是否已被分配的第一bitmap位图;The global header includes the size of the write cache storage space and the first bitmap bitmap that records whether each RAID header has been allocated;
所述RAID头,根据使用写缓存进行失效备份的目标RAID阵列个数被划分为若干子区域,每个子区域分别对应一个目标RAID阵列,并记录该目标RAID阵列信息;所述目标RAID阵列信息包括所述目标RAID阵列的阵列编号、Block大小以及可用Block个数;The RAID header is divided into several sub-areas according to the number of target RAID arrays that use the write cache for failure backup, each sub-area corresponds to a target RAID array, and records the target RAID array information; the target RAID array information includes Array number, Block size and available Block number of the target RAID array;
所述Block头,每个Block头分别对应一个Block数据块,并分别记录所述Block数据块所属RAID头编号、该Block数据块在目标RAID阵列中的lba地址以及记录该Block数据块是否已写入数据的第二bitmap位图;Described Block head, each Block head corresponds to a Block data block respectively, and record respectively the RAID head number to which the Block data block belongs, the lba address of the Block data block in the target RAID array and record whether the Block data block has been written The second bitmap bitmap of the input data;
所述Block数据区,包括若干个Block数据块,所述Block数据块的大小为所述RAID头中记录的所述Block大小。The Block data area includes several Block data blocks, and the size of the Block data blocks is the Block size recorded in the RAID header.
在本实施例中,所述创建模块601进一步用于:In this embodiment, the creating module 601 is further used to:
根据所述第一bitmap位图,为所述目标RAID阵列分配一个未使用的RAID头;Allocating an unused RAID header for the target RAID array according to the first bitmap;
将所述目标RAID阵列信息以及为所述目标RAID阵列分配的可用Block个数记录到对应的RAID头中。Record the target RAID array information and the number of available blocks allocated for the target RAID array into a corresponding RAID header.
在本实施例中,所述读写模块602进一步用于:In this embodiment, the read-write module 602 is further used for:
根据收到的写IO请求中的目标RAID阵列编号查找对应的RAID头;Find the corresponding RAID header according to the target RAID array number in the received write IO request;
根据所述写IO请求中的lba地址,在该RAID头对应的Block头中查找Block头;According to the lba address in the write IO request, the Block header is searched in the Block header corresponding to the RAID header;
如果查找到了对应的Block头,将数据写入该Block头对应的Block数据块中;If the corresponding Block header is found, write the data into the Block data block corresponding to the Block header;
如果未查找到对应的Block头,则获取一个空Block数据块,将数据写入该空Block数据块中,同时在该空Block数据块对应的Block头中记录所属RAID头的编号,在所述第二bitmap位图中记录该Block头对应的Block数据块已写入数据,并将该数据在目标RAID阵列中的lba地址记录到该Block头中;If do not find corresponding Block header, then obtain an empty Block data block, write data in this empty Block data block, record the serial number of belonging RAID head in the corresponding Block header of this empty Block data block simultaneously, in described Record in the second bitmap bitmap that the Block data block corresponding to the Block header has written data, and record the lba address of the data in the target RAID array into the Block header;
其中,当获取到一个空数据块时,更新对应的RAID头中记录的所述可用Block个数。Wherein, when an empty data block is acquired, the number of available Blocks recorded in the corresponding RAID header is updated.
在本实施例中,所述读写模块602进一步用于:In this embodiment, the read-write module 602 is further used for:
根据收到的读IO请求中的目标RAID阵列编号查找对应的RAID头;Find the corresponding RAID header according to the target RAID array number in the received read IO request;
根据所述读IO请求中的lba地址,在该RAID头对应的Block头中查找Block头;According to the lba address in the read IO request, search the Block header in the Block header corresponding to the RAID header;
如果查找到了对应的Block头,并且该Block头中的所述第二bitmap位图记录该Block头对应的Block数据块已写入了数据,则读取该数据;If the corresponding Block header is found, and the second bitmap bitmap in the Block header records that the Block data block corresponding to the Block header has written data, then read the data;
如果未查找到对应的Block头,或者该Block头中的所述第二bitmap位图记录该Block头对应的Block数据块未写入数据,从所述目标RAID阵列中读取数据,并返回读取结果。If the corresponding Block header is not found, or the second bitmap bitmap in the Block header records that the Block data block corresponding to the Block header has no written data, read the data from the target RAID array, and return the read Get the result.
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可进一步拆分成多个子模块。上述发明实施例编号仅仅为了描述,不代表实施例的优劣。Those skilled in the art can understand that the modules in the device in the embodiment can be distributed in the device in the embodiment according to the description in the embodiment, and can also be changed and located in one or more devices different from the embodiment. The modules in the above embodiments can be combined into one module, and can also be further divided into multiple sub-modules. The numbers of the above embodiments of the invention are only for description, and do not represent the advantages and disadvantages of the embodiments.
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。The above descriptions are only preferred embodiments of the present invention, and are not intended to limit the present invention. Any modifications, equivalent replacements, improvements, etc. made within the spirit and principles of the present invention shall be included in the present invention. within the scope of protection.
Claims (12)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201410401367.4A CN104166601B (en) | 2014-08-14 | 2014-08-14 | The backup method and device of a kind of data storage |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201410401367.4A CN104166601B (en) | 2014-08-14 | 2014-08-14 | The backup method and device of a kind of data storage |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN104166601A true CN104166601A (en) | 2014-11-26 |
| CN104166601B CN104166601B (en) | 2017-08-15 |
Family
ID=51910431
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201410401367.4A Active CN104166601B (en) | 2014-08-14 | 2014-08-14 | The backup method and device of a kind of data storage |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN104166601B (en) |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN105068896A (en) * | 2015-09-25 | 2015-11-18 | 浙江宇视科技有限公司 | Data processing method and device based on RAID backup |
| CN108228084A (en) * | 2016-12-21 | 2018-06-29 | 伊姆西Ip控股有限责任公司 | For managing the method and apparatus of storage system |
| CN108491162A (en) * | 2018-03-13 | 2018-09-04 | 山东超越数控电子股份有限公司 | A kind of method and device improving performance of storage system |
| CN108874312A (en) * | 2018-05-30 | 2018-11-23 | 郑州云海信息技术有限公司 | Date storage method and storage equipment |
| CN110069212A (en) * | 2018-01-22 | 2019-07-30 | 爱思开海力士有限公司 | The operating method of storage device and storage device |
| CN112669148A (en) * | 2020-12-22 | 2021-04-16 | 深圳市富途网络科技有限公司 | Order processing method and device |
| CN117093160A (en) * | 2023-10-18 | 2023-11-21 | 苏州元脑智能科技有限公司 | Data processing method and device of Cache, computer equipment and medium |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101236482A (en) * | 2008-02-26 | 2008-08-06 | 杭州华三通信技术有限公司 | Method for processing data under degrading state and independent redundancy magnetic disc array system |
| CN101527142A (en) * | 2009-04-17 | 2009-09-09 | 杭州华三通信技术有限公司 | Reading-writing method of data in redundant arrays of inexpensive disks (RAID) and equipment thereof |
| CN102521068A (en) * | 2011-11-08 | 2012-06-27 | 华中科技大学 | Reconstructing method of solid-state disk array |
| CN102520883A (en) * | 2011-12-12 | 2012-06-27 | 杭州华三通信技术有限公司 | Data access method and device thereof |
-
2014
- 2014-08-14 CN CN201410401367.4A patent/CN104166601B/en active Active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101236482A (en) * | 2008-02-26 | 2008-08-06 | 杭州华三通信技术有限公司 | Method for processing data under degrading state and independent redundancy magnetic disc array system |
| CN101527142A (en) * | 2009-04-17 | 2009-09-09 | 杭州华三通信技术有限公司 | Reading-writing method of data in redundant arrays of inexpensive disks (RAID) and equipment thereof |
| CN102521068A (en) * | 2011-11-08 | 2012-06-27 | 华中科技大学 | Reconstructing method of solid-state disk array |
| CN102520883A (en) * | 2011-12-12 | 2012-06-27 | 杭州华三通信技术有限公司 | Data access method and device thereof |
Cited By (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN105068896B (en) * | 2015-09-25 | 2019-03-12 | 浙江宇视科技有限公司 | Data processing method and device based on RAID backup |
| CN105068896A (en) * | 2015-09-25 | 2015-11-18 | 浙江宇视科技有限公司 | Data processing method and device based on RAID backup |
| US11144414B2 (en) | 2016-12-21 | 2021-10-12 | EMC IP Holding Company LLC | Method and apparatus for managing storage system |
| CN108228084B (en) * | 2016-12-21 | 2020-10-13 | 伊姆西Ip控股有限责任公司 | Method and apparatus for managing storage system |
| CN108228084A (en) * | 2016-12-21 | 2018-06-29 | 伊姆西Ip控股有限责任公司 | For managing the method and apparatus of storage system |
| CN110069212A (en) * | 2018-01-22 | 2019-07-30 | 爱思开海力士有限公司 | The operating method of storage device and storage device |
| CN110069212B (en) * | 2018-01-22 | 2022-11-11 | 爱思开海力士有限公司 | Storage device and operation method of storage device |
| CN108491162A (en) * | 2018-03-13 | 2018-09-04 | 山东超越数控电子股份有限公司 | A kind of method and device improving performance of storage system |
| CN108874312A (en) * | 2018-05-30 | 2018-11-23 | 郑州云海信息技术有限公司 | Date storage method and storage equipment |
| CN108874312B (en) * | 2018-05-30 | 2021-09-17 | 郑州云海信息技术有限公司 | Data storage method and storage device |
| CN112669148A (en) * | 2020-12-22 | 2021-04-16 | 深圳市富途网络科技有限公司 | Order processing method and device |
| CN117093160A (en) * | 2023-10-18 | 2023-11-21 | 苏州元脑智能科技有限公司 | Data processing method and device of Cache, computer equipment and medium |
| CN117093160B (en) * | 2023-10-18 | 2024-02-02 | 苏州元脑智能科技有限公司 | Data processing method and device of Cache, computer equipment and medium |
Also Published As
| Publication number | Publication date |
|---|---|
| CN104166601B (en) | 2017-08-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9684591B2 (en) | Storage system and storage apparatus | |
| US10019362B1 (en) | Systems, devices and methods using solid state devices as a caching medium with adaptive striping and mirroring regions | |
| CN104166601B (en) | The backup method and device of a kind of data storage | |
| US8589724B2 (en) | Rapid rebuild of a data set | |
| US8838893B1 (en) | Journaling raid system | |
| US9141486B2 (en) | Intelligent I/O cache rebuild in a storage controller | |
| US6922752B2 (en) | Storage system using fast storage devices for storing redundant data | |
| US9304685B2 (en) | Storage array system and non-transitory recording medium storing control program | |
| US9026845B2 (en) | System and method for failure protection in a storage array | |
| US20080201392A1 (en) | Storage system having plural flash memory drives and method for controlling data storage | |
| US10120769B2 (en) | Raid rebuild algorithm with low I/O impact | |
| US8862819B2 (en) | Log structure array | |
| US9223655B2 (en) | Storage system and method for controlling storage system | |
| CN105353991A (en) | Disk array reconstruction optimization method and device | |
| KR20210137921A (en) | Systems, methods, and devices for data recovery with spare storage device and fault resilient storage device | |
| JP7318367B2 (en) | Storage control device and storage control program | |
| JP2005276196A (en) | System and method for performing drive recovery subsequent to drive failure | |
| US20130179634A1 (en) | Systems and methods for idle time backup of storage system volumes | |
| US20140173337A1 (en) | Storage apparatus, control method, and control program | |
| JP5691311B2 (en) | Save processing device, save processing method, and save processing program | |
| US20170091048A1 (en) | Storage method and device for solid-state drive | |
| US8578206B2 (en) | Disk controller and disk control method | |
| CN107122261B (en) | Data reading and writing method and device of storage equipment | |
| CN114610235A (en) | Distributed storage cluster, storage engine, two-copy storage method and equipment | |
| JPWO2008126169A1 (en) | Storage management program, storage management method, and storage management device |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| C06 | Publication | ||
| PB01 | Publication | ||
| C10 | Entry into substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |