CN109426432B - 独立磁盘冗余阵列的创建方法、装置及设备 - Google Patents
独立磁盘冗余阵列的创建方法、装置及设备 Download PDFInfo
- Publication number
- CN109426432B CN109426432B CN201710726463.XA CN201710726463A CN109426432B CN 109426432 B CN109426432 B CN 109426432B CN 201710726463 A CN201710726463 A CN 201710726463A CN 109426432 B CN109426432 B CN 109426432B
- Authority
- CN
- China
- Prior art keywords
- data
- ssd
- disk
- hot
- raid group
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
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/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- 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/0629—Configuration or reconfiguration of storage systems
-
- 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
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种独立磁盘冗余阵列的创建方法、装置及设备,该方法包括:获取N个固态硬盘SSD的存储空间,将每个SSD上的存储空间划分为M个分区;根据每个SSD的存储空间所划分的M个分区,创建M个RAID组,其中,每个RAID组的多个数据区对应多个属于不同SSD的分区,每个RAID组的至少一个热备区对应至少一个属于不同SSD的分区,且同一RAID组的数据区和热备区不在同一SSD上,同一RAID组的数据区与热备区的大小相同,每个SSD对应M个RAID组;将M个分区均对应数据区的一个SSD作为热盘,将对应数据区和热备区的N‑1个SSD作为冷盘。本申请可以降低多块硬盘同时失效的风险,提高数据的安全性。
Description
技术领域
本申请实施例涉及计算机存储技术领域,尤其涉及一种独立磁盘冗余阵列的创建方法、装置及设备。
背景技术
独立磁盘冗余阵列(Redundant Arrays of Independent Disks,RAID)是由多个机械硬盘(磁盘)或者固态硬盘(solid state disk,SSD)组建的一个具有大容量的磁盘组,可以利用多个硬盘提供的数据读写加成效果来提升整个硬盘系统的效能。其中,SSD由于具有读写速度快、低功耗、无噪音等优点,越来越多的用户选择SSD来组建RAID。
然而,由于SSD的存储介质Flash存在擦写次数的限制,使得SSD的存储介质的寿命有限。随着SSD的擦除、写入次数的增多,将会因为SSD的介质失效而导致数据丢失。对于采用相同型号的SSD组建的RAID来说,当其中一块硬盘达到寿命极限而失效时,其它硬盘也处于相同的寿命阶段,面临极大的失效风险。因此采用SSD组建的传统RAID存在多块盘同时失效的风险,如果失效盘的数目大于RAID级别的恢复能力,将导致数据丢失。
由此,亟需一种新的RAID,以降低多块硬盘同时实效的风险,提高数据的安全性。
发明内容
本申请提供一种独立磁盘冗余阵列的创建方法、装置及设备,以降低多块硬盘同时失效的风险,提高数据的安全性。
第一方面,本申请提供一种独立磁盘冗余阵列的创建方法,包括:
获取N个固态硬盘SSD的存储空间,并将每个SSD上的存储空间划分为M个分区,所述N为大于等于3的整数,其中,各所述SSD的存储空间的大小相同;每个SSD的存储空间划分分区的方式可以相同也可以不同;同一SSD上,不同的分区其存储空间大小可以相同,也可以不同;
根据每个SSD的存储空间所划分的M个分区,创建M个独立磁盘冗余阵列RAID组,其中,每个RAID组的多个数据区对应多个属于不同SSD的分区,每个RAID组的至少一个热备区对应至少一个属于不同SSD的分区,且同一RAID组的数据区和热备区不在同一SSD上,同一RAID组的数据区与热备区的大小相同,每个SSD对应M个RAID组;将M个分区均对应数据区的一个SSD作为热盘,将对应数据区和热备区的N-1个SSD作为冷盘。
在一种可能的设计中,M=N-i,所述i为大于等于1的整数,每个RAID组包括N-i个数据区和i个热备区,且每个RAID组的数据区所对应的SSD与其它RAID组的数据区所对应的SSD存在不同,每个所述RAID组的热备区所对应的SSD与其它RAID组的热备区所对应的SSD存在不同。
在一种可能的设计中,各所述SSD的存储空间划分分区的划分方式相同,所述根据每个SSD的存储空间所划分的N-i个分区,创建N-i个独立磁盘冗余阵列RAID组,包括:
对各所述SSD依次进行编号,得到各所述SSD的编号依次为1、2……N;
对各所述SSD中的各分区进行编号,得到各分区的编号依次为1、2……N-i;
根据各所述SSD的编号和每个SSD中的各分区的编号,创建N-i个RAID组,所述N-i个RAID组的编号依次为1、2……N-i,其中,编号为n的RAID组的数据区对应的N-i个分区为N-i个SSD上分区编号为n的分区,同一RAID组的i个热备区与N-i个数据区对应的SSD的编号不同。
在一种可能的设计中,所述将M个分区均对应数据区的一个SSD作为热盘,将对应数据区和热备区的N-1个SSD作为冷盘,包括:
将编号从N-n+1开始,编号依次递减1的SSD上的编号为n的分区作为编号为n的RAID组的热备区,其它SSD上的编号为n的分区作为编号为n的RAID组的数据区,得到编号为1的SSD的N-1个分区均对应RAID组的数据区;
将编号为1的SSD作为热盘,其它SSD作为冷盘。
在一种可能的设计中,所述将M个分区均对应数据区的一个SSD作为热盘,将对应数据区和热备区的N-1个SSD作为冷盘,包括:
将编号从n开始,编号依次递增1的SSD上的编号为n的分区作为编号为n的RAID组的热备区,其它SSD上的编号为n的分区作为编号为n的RAID组的数据区,得到编号为N的SSD的N-1个分区均对应RAID组的数据区;
将编号为N的SSD作为热盘,其它SSD作为冷盘。
在一种可能的设计中,所述M大于等于N,至少存在一个RAID组的所有数据区对应的SSD与其它RAID组的所有数据区对应的SSD相同,对应地,至少存在一个RAID组的所有热备区对应的SSD与其它RAID组的所有热备区对应的SSD相同。
在一种可能的设计中,在所述热盘失效时,所述方法还包括:
将失效的热盘对应的M个RAID组各自失效的数据恢复至各所述RAID组对应的任一热备区;
根据预设选择规则,在所述冷盘中选择一个SSD作为热盘;
在确定插入替换盘之后,将所述替换盘划分为M个分区;
将其它冷盘中的热备区中存储的数据存储至所述替换盘的分区中,并将所述替换盘的剩余空间作为热备区;其中,被存储至所述替换盘中的数据在替换盘中的分区位置与所述热备区在冷盘中的分区位置相同;
将所述替换盘作为新的冷盘。
在一种可能的设计中,所述在确定插入替换盘之后,将所述替换盘划分为M个分区之后,还包括:
在确定失效的热盘对应的M个RAID组各自失效的数据未恢复完成时,继续将所述失效的热盘对应的M个RAID组各自失效的数据恢复至各所述RAID组对应的热备区或所述替换盘中,直至数据恢复完毕;
所述将其它冷盘中的热备区中存储的数据存储至所述替换盘的分区中,并将所述替换盘的剩余空间作为热备区,包括:
将其它冷盘中的热备区中存储的数据存储至所述替换盘的分区中,其中,被存储至所述替换盘中的数据在替换盘中的分区位置与所述热备区在冷盘中的分区位置相同;
将所述替换盘中的目标分区中的数据存储至所述新的热盘中的热备区,其中,所述目标分区在所述替换盘中的位置与所述新的热盘的热备区在所述新的热盘中的位置相同;
将所述目标分区作为所述替换盘中的热备区。
在一种可能的设计中,在所述冷盘失效时,所述方法还包括:
将失效的冷盘的数据区对应的RAID组各自失效的数据恢复至各所述RAID组对应的任一热备区;
在确定插入替换盘之后,将所述替换盘划分为M个分区;
将其它冷盘中的热备区中的数据存储至所述替换盘的分区中,并将所述替换盘的剩余空间作为热备区;其中,被存储至所述替换盘中的数据在替换盘中的分区位置与所述热备区在冷盘中的分区位置相同;
将所述替换盘作为新的冷盘。
在一种可能的设计中,所述将其它冷盘中的热备区中的数据存储至所述替换盘的分区中之前,还包括:
在所述替换盘分区完成后,若确定失效的冷盘的数据区对应的RAID组各自失效的数据未恢复完成,则继续将所述失效的冷盘对应RAID组各自失效的数据恢复至各所述RAID组对应的热备区或所述替换盘中,直至数据恢复完毕。
在一种可能的设计中,所述获取N个固态硬盘SSD的存储空间,包括:
将每个SSD划分为多个存储空间,其中,每个SSD划分存储空间的划分方式相同;
获取N个SSD对应的相同大小的存储空间。
第二方面,本申请提供一种独立磁盘冗余阵列的创建装置,包括:
获取模块,用于获取N个固态硬盘SSD的存储空间;
划分模块,用于将每个SSD上的存储空间划分为M个分区,所述N为大于等于3的整数,其中,各所述SSD的存储空间的大小相同;
创建模块,用于根据每个SSD的存储空间所划分的M个分区,创建M个独立磁盘冗余阵列RAID组,其中,每个RAID组的多个数据区对应多个属于不同SSD的分区,每个RAID组的至少一个热备区对应至少一个属于不同SSD的分区,且同一RAID组的数据区和热备区不在同一SSD上,同一RAID组的数据区与热备区的大小相同,每个SSD对应M个RAID组;
分盘模块,用于将M个分区均对应数据区的一个SSD作为热盘,将对应数据区和热备区的N-1个SSD作为冷盘。
在一种可能的设计中,M=N-i,所述i为大于等于1的整数,每个RAID组包括N-i个数据区和i个热备区,且每个RAID组的数据区所对应的SSD与其它RAID组的数据区所对应的SSD存在不同,每个所述RAID组的热备区所对应的SSD与其它RAID组的热备区所对应的SSD存在不同。
在一种可能的设计中,各所述SSD的存储空间划分分区的划分方式相同,所述创建模块具体用于:
对各所述SSD依次进行编号,得到各所述SSD的编号依次为1、2……N;
对各所述SSD中的各分区进行编号,得到各分区的编号依次为1、2……N-i;
根据各所述SSD的编号和每个SSD中的各分区的编号,创建N-i个RAID组,所述N-i个RAID组的编号依次为1、2……N-i,其中,编号为n的RAID组的数据区对应的N-i个分区为N-i个SSD上分区编号为n的分区,同一RAID组的i个热备区与N-i个数据区对应的SSD的编号不同。
在一种可能的设计中,所述分盘模块具体用于:
将编号从N-n+1开始,编号依次递减1的SSD上的编号为n的分区作为编号为n的RAID组的热备区,其它SSD上的编号为n的分区作为编号为n的RAID组的数据区,得到编号为1的SSD的N-1个分区均对应RAID组的数据区;
将编号为1的SSD作为热盘,其它SSD作为冷盘。
在一种可能的设计中,所述分盘模块具体用于:
将编号从n开始,编号依次递增1的SSD上的编号为n的分区作为编号为n的RAID组的热备区,其它SSD上的编号为n的分区作为编号为n的RAID组的数据区,得到编号为N的SSD的N-1个分区均对应RAID组的数据区;
将编号为N的SSD作为热盘,其它SSD作为冷盘。
在一种可能的设计中,所述M大于等于N,至少存在一个RAID组的所有数据区对应的SSD与其它RAID组的所有数据区对应的SSD相同,对应地,至少存在一个RAID组的所有热备区对应的SSD与其它RAID组的所有热备区对应的SSD相同。
在一种可能的设计中,还包括:数据恢复模块和备份模块,
所述数据恢复模块,用于在所述热盘失效时,将失效的热盘对应的M个RAID组各自失效的数据恢复至各所述RAID组对应的任一热备区;根据预设选择规则,在所述冷盘中选择一个SSD作为热盘;在确定插入替换盘之后,将所述替换盘划分为M个分区;
所述备份模块,用于将其它冷盘中的热备区中存储的数据存储至所述替换盘的分区中,并将所述替换盘的剩余空间作为热备区;其中,被存储至所述替换盘中的数据在替换盘中的分区位置与所述热备区在冷盘中的分区位置相同;
所述分盘模块还用于:将所述替换盘作为新的冷盘。
在一种可能的设计中,所述数据恢复模块还用于:在将所述替换盘划分为M个分区之后,
在确定失效的热盘对应的M个RAID组各自失效的数据未恢复完成时,继续将所述失效的热盘对应的M个RAID组各自失效的数据恢复至各所述RAID组对应的热备区或所述替换盘中,直至数据恢复完毕;
所述备份模块具体用于:将其它冷盘中的热备区中存储的数据存储至所述替换盘的分区中,其中,被存储至所述替换盘中的数据在替换盘中的分区位置与所述热备区在冷盘中的分区位置相同;将所述替换盘中的目标分区中的数据存储至所述新的热盘中的热备区,其中,所述目标分区在所述替换盘中的位置与所述新的热盘的热备区在所述新的热盘中的位置相同;将所述目标分区作为所述替换盘中的热备区。
在一种可能的设计中,还包括:数据恢复模块和备份模块,
所述数据恢复模块,用于在所述冷盘失效时,将失效的冷盘的数据区对应的RAID组各自失效的数据恢复至各所述RAID组对应的任一热备区;在确定插入替换盘之后,将所述替换盘划分为M个分区;
所述备份模块,用于将其它冷盘中的热备区中的数据存储至所述替换盘的分区中,并将所述替换盘的剩余空间作为热备区;其中,被存储至所述替换盘中的数据在替换盘中的分区位置与所述热备区在冷盘中的分区位置相同;
所述分盘模块还用于:将所述替换盘作为新的冷盘。
在一种可能的设计中,所述数据恢复模块还用于:在所述将其它冷盘中的热备区中的数据存储至所述替换盘的分区中之前,在所述替换盘分区完成后,若确定失效的冷盘的数据区对应的RAID组各自失效的数据未恢复完成,则继续将所述失效的冷盘对应RAID组各自失效的数据恢复至各所述RAID组对应的热备区或所述替换盘中,直至数据恢复完毕。
在一种可能的设计中,所述获取模块具体用于:
将每个SSD划分为多个存储空间,其中,每个SSD划分存储空间的划分方式相同;
获取N个SSD对应的相同大小的存储空间。
第三方面,本申请提供一种独立磁盘冗余阵列的创建设备,包括:存储器、处理器以及计算机程序,所述计算机程序存储在所述存储器中,所述处理器运行所述计算机程序执行实现第一方面及第一方面各种可能的设计所述的独立磁盘冗余阵列的创建方法。
第四方面,本申请提供一种存储介质,包括:可读存储介质和计算机程序,所述计算机程序用于实现第一方面及第一方面各种可能的设计所述的独立磁盘冗余阵列的创建方法。
本实施例提供的独立磁盘冗余阵列的创建方法,通过获取N个固态硬盘SSD的存储空间,并将每个SSD上的存储空间划分为N-i个分区,根据每个SSD的存储空间所划分的N-i个分区,创建N-i个独立磁盘冗余阵列RAID组,将N-i个分区均对应RAID组的数据区的一个SSD作为热盘,将对应数据区和热备区的N-1个SSD作为冷盘。在本实施例中,一组SSD上创建多个布局不同的RAID组,实现数据在各个SSD上按照一定比例分布。通过合理安排各个RAID组的组织方式,使得热盘中承载更多的数据,因此将更容易达到擦写次数的限制,从而热盘与冷盘相比,更有可能引发闪存失效。即在失效过程中,一般情况下热盘先失效,而冷盘后失效,由于本申请中存在一个热盘,因此降低了多块SSD同时失效的风险,提高了数据的安全性。
附图说明
图1为本申请实施例提供的存储设备的结构示意图;
图2为本申请提供的独立磁盘冗余阵列的创建方法的流程示意图;
图3为本申请一实施例提供的RAID组的起始数据布局结构示意图;
图4为本申请另一实施例提供的RAID组的起始数据布局结构示意图;
图5为本申请提供的热盘失效后的数据迁移示意图;
图6为本申请一实施例提供的热盘失效数据迁移流程图;
图7为本申请另一实施例提供的热盘失效数据迁移流程图;
图8为本申请提供的冷盘失效后的数据迁移示意图;
图9为本申请一实施例提供的冷盘失效后的数据迁移的流程示意图;
图10为本申请另一实施例提供的冷盘失效后的数据迁移的流程示意图;
图11为本申请一实施例提供的多区域RAID组的起始数据布局结构示意图;
图12为本申请又一实施例提供的RAID组的起始数据布局结构示意图;
图13为本申请又一实施例提供的RAID组的起始数据布局结构示意图;
图14为本申请一实施例提供的多区域RAID组的起始数据布局结构示意图;
图15为本申请一实施例提供的独立磁盘冗余阵列的创建装置的结构示意图;
图16为本申请又一实施例提供的独立磁盘冗余阵列的创建装置的结构示意图。
具体实施方式
图1为本申请实施例提供的存储设备的结构示意图。本实施例提供的存储设备与计算机主机可以相对独立,具有自己的接口和协议,通过同轴电缆、网线、光纤等方式与计算机主机连接。该存储设备可以对计算机主机提供存储空间。如图1所示,本实施例的存储设备包括软件和硬件。
存储设备的软件包含操作系统和软件模块。其中,操作系统提供软件运行的基本操作系统。软件模块可以实现数据的读取以及修复等功能。
存储设备的硬件包括多个固态硬盘、接口卡、中央处理器(Central ProcessingUnit,CPU)以及内存。其中,多个固态硬盘可以提供存储空间。接口卡,用于连接计算机主机或者其它存储设备,其它存储设备上存储有远程复制等冗余数据。CPU和内存可以提供操作系统和软件模块所需的基本硬件平台。
图1示出了本实施例存储设备的一种可能的结构,对于其它的存储设备,只要具备硬盘、CPU等部件,都属于本申请的保护范畴。对于其它的结构,本实施例此处不再赘述。
基于现有技术中RAID中的相同型号的SSD同时失效,导致数据丢失的技术问题,本申请提供一种独立磁盘冗余阵列的创建方法,该方法为一种逆磨损均衡方法,该方法包括:获取N个固态硬盘SSD的存储空间,并将每个SSD上的存储空间划分为M个分区,N为大于等于3的整数,其中,各SSD的存储空间的大小相同;根据每个SSD的存储空间所划分的M个分区,创建M个独立磁盘冗余阵列RAID组,其中,每个RAID组的多个数据区对应多个属于不同SSD的分区,每个RAID组的至少一个热备区对应至少一个属于不同SSD的分区,且同一RAID组的数据区和热备区不在同一SSD上,同一RAID组的数据区与热备区的大小相同,每个SSD对应M个RAID组;将M个分区均对应数据区的一个SSD作为热盘,将对应数据区和热备区的N-1个SSD作为冷盘。该方法使得各个SSD在同一时刻具有不同的磨损程度,以降低多块盘同时失效的风险。
下面采用详细的实施例进行详细说明。在本实施例中,该M可以小于N,也可以大于等于N,本实施例先以M=N-i,即M小于N为例进行详细说明。
图2为本申请提供的独立磁盘冗余阵列的创建方法的流程示意图。图3为本申请一实施例提供的RAID组的起始数据布局结构示意图。本实施例的执行主体可以为上述的存储设备中的硬件和/或软件,结合图2和图3,对本申请提供的创建方法进行详细说明。如图2所示,该方法包括:
S201、获取N个固态硬盘SSD的存储空间,并将每个SSD上的存储空间划分为N-i个分区,所述N为大于等于3的整数,所述i为大于等于1的整数,其中,各所述SSD的存储空间的大小相同;
S202、根据每个SSD的存储空间所划分的N-i个分区,创建N-i个独立磁盘冗余阵列RAID组,其中,每个RAID组包括N-i个数据区和i个热备区,且每个RAID组的数据区所对应的SSD与其它RAID组的数据区所对应的SSD存在不同,每个所述RAID组的热备区所对应的SSD与其它RAID组的热备区所对应的SSD存在不同;
S203、将N-i个分区均对应数据区的一个SSD作为热盘,将对应数据区和热备区的N-1个SSD作为冷盘。
在本实施例中,为便于说明,先结合图3,以i=1,SSD的数量为6个为例,对本实施例进行详细说明。
具体地,在确定通过N个SSD来形成N-1个RAID组时,获取每个SSD的存储空间。其中,SSD的个数大于等于3,则可以形成至少两个RAID组。本实施例中的该N个SSD的存储空间的大小相同。可选地,该N个SSD的型号也可以相同。
在得到SSD的存储空间之后,将每个SSD上的存储空间划分为N-1个分区。其中,每个SSD的存储空间划分分区的方式可以相同也可以不同。同一SSD上,不同的分区其存储空间大小可以相同,也可以不同。对于同一SSD上的不同分区的具体大小,本实施例此处不做特别限制。本实施例有中6个SSD,则将每个SSD的存储空间划分为5个分区,且划分方式相同。
在本实施例中,RAID组对应N个属于不同SSD的分区,其中RAID组包括N-1个数据区和一个热备区。N-1个数据区占用N-1个分区,热备区占用一个分区。其中,数据区用于存储数据,热备区用于在数据失效或损坏时,用于对失效或损坏的数据进行备份。本领域技术人员可以理解,在发生盘失效前,该热备区为空。
在创建N-1个RAID组时,每个RAID组的N-1个数据区对应N-1个分区,且该N-1个分区属于不同的SSD,即每个RAID组的数据区跨越N-1个SSD。同时,每个RAID组的数据区所对应的SSD与其它RAID组的数据区所对应的SSD存在不同,每个RAID组的热备区所对应的SSD与其它RAID组的热备区所对应的SSD存在不同,如图3所示,当i=1时,各RAID组的热备区不在同一SSD上,即各RAID组对应的热备区完全不同。
进一步地,同一RAID组的数据区与热备区不在同一SSD上,如图3所示,即RAID组的数据区没有跨越的SSD上的一个分区作为热备区。由此,最终每个SSD上的N-1个分区对应N-1个RAID组。其中,有一个SSD将对应N-1个RAID组的数据区,有N-1个SSD将对应N-2个RAID组的数据区和一个RAID组的热备区。
例如,在图3中,RAID组1的数据区对应SSD1、SSD2、SSD3、SSD4、SSD5的第一个分区,RAID组1的热备区则对应SSD6的第一个分区,RAID组2的数据区对应SSD1、SSD2、SSD3、SSD4、SSD6的第二个分区,RAID组2的热备区则对应SSD5的第二个分区。依次类推,本实例此处不在赘述。
进一步地,SSD1对应RAID组1、RAID组2、RAID组3、RAID组4、RAID组5各自的一个数据区,SSD2对应RAID组1、RAID组2、RAID组3、RAID组4各自的一个数据区,还对应RAID组5的热备区,SSD3、SSD4、SSD5、SSD6与SSD2类似,本实施例此处不再赘述。
在本实施例中,将不存在热备区的SSD作为热盘,将存在热备区的SSD作为冷盘。即存在一个热盘和N-1个冷盘。如图3所示,SSD1作为热盘,SSD2至SSD6作为冷盘。
本领域技术人员可以理解,本实施例中的图3所示实施例,仅为示意性的一种RAID组的起始数据布局结构,对于其它的RAID组的起始数据布局结构,本实施例此处不做特别限制,只要满足每个RAID组的N-1个数据区对应N-1个属于不同SSD的分区,同一RAID组的一个热备区和N-1个数据区不在同一SSD上,每个SSD对应N-1个RAID组,最终存在一个热盘,N-1个冷盘即可。
可选地,在得到N-i个RAID组之后,可将该RAID组组建为RAID0。即将这些RAID组的空间组织起来,对上层提供一个完整的存储空间。对于具体的组织方式和使用RAID0的方式,本实施例此处不做特别限制。
在本实施例中,通过上述组建RAID0,用户数据在物理盘上将按比例分布。具体来说,如果创建的每个RAID组的大小相同,那么在发生第一次盘失效前,一个热盘和一个冷盘上的数据比例会固定为N:N-1。
本实施例提供的独立磁盘冗余阵列的创建方法,通过获取N个固态硬盘SSD的存储空间,并将每个SSD上的存储空间划分为N-i个分区,根据每个SSD的存储空间所划分的N-i个分区,创建N-i个独立磁盘冗余阵列RAID组,将N-i个分区均对应RAID组的数据区的一个SSD作为热盘,将对应数据区和热备区的N-1个SSD作为冷盘。在本实施例中,一组SSD上创建多个布局不同的RAID组,实现数据在各个SSD上按照一定比例分布。通过合理安排各个RAID组的组织方式,使得热盘中承载更多的数据,因此将更容易达到擦写次数的限制,从而热盘与冷盘相比,更有可能引发闪存失效。即在失效过程中,一般情况下热盘先失效,而冷盘后失效,由于本申请中存在一个热盘,因此降低了多块SSD同时失效的风险,提高了数据的安全性。
下面结合图3和图4,对本申请创建N-i个RAID组的具体实现方式,进行详细说明。在本实施例中,以SSD的存储空间划分分区的方式相同为例来进行说明。其中,图4为本申请另一实施例提供的RAID组的起始数据布局结构示意图。本实施例继续以i=1为例,进行说明。
请结合图3和图4所示,本实施例创建N-i个RAID组的具体实现方式包括以下步骤:
1)对各SSD依次进行编号,得到各SSD的编号依次为1、2……N。
对各SSD依次进行编号,从左至右,得到各SSD的编号依次为1、2、3、4、5、6。
2)对各SSD中的各分区进行编号,得到各分区的编号依次为1、2……N-i。
由于每个SSD中的分区的划分方式相同,从上至少,各分区的编号依次为1、2、3、4、5。
3)根据各SSD的编号和每个SSD中的各分区的编号,创建N-i个RAID组,N-i个RAID组的编号依次为1、2……N-i,其中,编号为n的RAID组的数据区对应的N-i个分区为N-i个SSD上分区编号为n的分区,同一RAID组的i个热备区与N-i个数据区对应的SSD的编号不同。
如图3所示,编号为1的RAID组的数据区对应的N-1个分区为SSD1上分区编号为1的分区、SSD2上分区编号为1的分区、SSD3上分区编号为1的分区、SSD4上分区编号为1的分区、SSD5上分区编号为1的分区,对应的热备区为SSD6上分区编号为1的分区。对于RAID组2、RAID组3、RAID组4以及RAID组5其实现方式类似,本实施例此处不再赘述。
如图4所示,编号为1的RAID组的数据区对应的N-1个分区为SSD2上分区编号为1的分区、SSD3上分区编号为1的分区、SSD4上分区编号为1的分区、SSD5上分区编号为1的分区、SSD6上分区编号为1的分区,对应的热备区为SSD1上分区编号为1的分区。对于RAID组2、RAID组3、RAID组4以及RAID组5其实现方式类似,本实施例此处不再赘述。
本领域技术人员可以理解,图3和图4为两种可能的实现方式,对于其它的实现方式,本实施例此处不再赘述,只要满足编号为n的RAID组的数据区对应的N-1个分区为N-1个SSD上分区编号为n的分区,同一RAID组的一个热备区与N-1个数据区对应的SSD的编号不同即可。
下面来说明RAID的具体创建过程以及热盘和冷盘的选择。
在一种具体的实现方式中,将编号从N-n+1开始,编号依次递减1的SSD上的编号为n的分区作为编号为n的RAID组的热备区,其它SSD上的编号为n的分区作为编号为n的RAID组的数据区,得到编号为1的SSD的N-1个分区均对应RAID组的数据区;将编号为1的SSD作为热盘,其它SSD作为冷盘。
如图3所示,对于i=1而言,编号即从N-n+1开始即结束。具体地,将编号为N-n+1的SSD上的编号为n的分区作为编号为n的RAID组的热备区,其它SSD上的编号为n的分区作为编号为n的RAID组的数据区,得到编号为1的SSD的N-1个分区均对应RAID组的数据区;将编号为1的SSD作为热盘,其它SSD作为冷盘。
例如,对于RAID组1,热备区为SSD6上编号为1的分区;
对于RAID组2,热备区为SSD5上编号为2的分区;
对于RAID组3,热备区为SSD4上编号为3的分区;
对于RAID组4,热备区为SSD3上编号为4的分区;
对于RAID组5,热备区为SSD2上编号为5的分区;
由此可知,编号为1的SSD上没有设置热备区,即SSD1的5个分区均对应RAID组的数据区。由此将SSD1作为热盘,将SSD2、SSD3、SSD4、SSD5、SSD6。
在另一种可能的实现方式中,将编号从n开始,编号依次递增1的SSD上的编号为n的分区作为编号为n的RAID组的热备区,其它SSD上的编号为n的分区作为编号为n的RAID组的数据区,得到编号为N的SSD的N-1个分区均对应RAID组的数据区;将编号为N的SSD作为热盘,其它SSD作为冷盘。
如图4所示,对于i=1而言,编号即从n开始即结束。具体地,将编号为n的SSD上的编号为n的分区作为编号为n的RAID组的热备区,其它SSD上的编号为n的分区作为编号为n的RAID组的数据区,得到编号为N的SSD的N-1个分区均对应RAID组的数据区;将编号为N的SSD作为热盘,其它SSD作为冷盘。
例如,对于RAID组1,热备区为SSD1上编号为1的分区;
对于RAID组2,热备区为SSD2上编号为2的分区;
对于RAID组3,热备区为SSD3上编号为3的分区;
对于RAID组4,热备区为SSD4上编号为4的分区;
对于RAID组5,热备区为SSD5上编号为5的分区;
由此可知,编号为6的SSD上没有设置热备区,即SSD6的5个分区均对应RAID组的数据区。由此将SSD6作为热盘,将SSD1、SSD2、SSD3、SSD4、SSD5作为冷盘。
本实施例通过图3和图4所示的设置方式来组件RAID组以及设置热盘和冷盘,设置规律简单易行,可以提高RAID组的组件效率。
上述实施例详细论述了多个RAID组的组建过程,可选地,在具体应用过程中,可以将多个RAID组进行组件,得到RAID0,外部设备可以访问该多个RAID组形成的RAID0。在访问过程中,按照预期,由于热盘上将承载更多的数据,因此将更容易达到擦写次数的限制,从而引发闪存失效。同时也有可能某个冷盘由于某种原因而意外地先于热盘失效。下面分别针对两种情况下对SSD失效后,数据迁移的方法进行详细说明。在本实施例中,以图3所示的结构为例进行说明,对于图4所示的结构,其实现方式与图3所示实施例类似,本实施例此处不再赘述。
图5为本申请提供的热盘失效后的数据迁移示意图,图6为本申请一实施例提供的热盘失效数据迁移流程图。如图5和图6所示,该方法包括:
S601、在热盘失效后,将失效的热盘对应的N-i个RAID组各自失效的数据恢复至各RAID组对应的任一热备区;
S602、根据预设选择规则,在冷盘中选择一个SSD作为热盘;
其中,S601与S602没有严格的时序关系。即二者可以同时执行,也可以先执行S601,再执行S602,也可以先执行S602,再执行S601。
S603、在确定插入替换盘之后,将替换盘划分为N-i个分区;
S604、将其它冷盘中的热备区中存储的数据存储至替换盘中的分区中,并将替换盘的剩余空间作为热备区;其中,被存储至替换盘中的数据在替换盘中的分区位置与热备区在冷盘中的分区位置相同;
S605、将替换盘作为新的冷盘。
在本实施例中,继续以i=1为例进行说明。在具体实现过程中,在没有插入新的替换盘来代替失效的热盘前,通过各个RAID组自身的数据恢复算法恢复数据,然后将恢复出来的数据写入到各自的热备区中。
按照盘加入系统的顺序,选择一个使用最久的盘成为新的热盘。当有多个盘均是使用最久的盘时,根据预设选择规则,在冷盘中选择一个SSD作为热盘。该预设选择规则可以为随机选择一个或选择编号最小或最大的盘。在本实例中将冷盘SSD2作为新的热盘。
如图5所示,在热盘1失效后,五个RAID组通过自己的恢复算法分别恢复出数据D1、D2、D3、D4、D5,并将恢复出的数据存储到各自位于不同冷盘上的热备区。如RAID组1恢复出的数据块D1存到了SSD6上,RAID组2恢复出的数据块D2存到了SSD5上,RAID组3恢复出的数据块D3存到了SSD4上,RAID组4恢复出的数据块D4存到了SSD3上,RAID组5恢复出的数据块D5存到了SSD2上。
在插入替换盘后,该替换盘可以继承原失效的热盘的编号,并将替换盘SSD1’划分为N-1个分区,替换盘的分区方式与失效的热盘的分区方式相同。
将其它冷盘SSD3、SSD4、SSD5、SSD6中热备区的数据D1、D2、D3、D4拷贝到替换盘中。在拷贝过程中,被存储至替换盘中的数据在替换盘中的分区位置与热备区在冷盘中的分区位置相同,即D1、D2、D3、D4被拷贝到替换盘对应编号的分区上。然后清除SSD3、SSD4、SSD5、SSD6中热备区的数据D1、D2、D3、D4。此时,替换盘上的分区5作为RAID组5的热备区。将替换盘作为新的冷盘。由于SSD2为被选择的热盘,所以SSD2上的热备区的D5不发生移动。
本实施在热盘失效后,由于热备区分布在各个盘中,在对热盘中的数据进行重建时,恢复出的数据被写入到各个盘中,避免了独立热备盘恢复数据效率低的问题,提高了数据恢复的效率,缩短了重建时间。
进一步地,在上述图6实施例的基础上,在具体实现过程中,存在热备区中的数据还未完全恢复时,就插入了新的替换盘的过程。在本实施例中,可以在插入新的替换盘之后,将恢复的数据存储至替换盘,以提高数据恢复效率。具体的实现过程可如图7所示。
图7为本申请另一实施例提供的热盘失效数据迁移流程图。如图7所示,该方法包括:
S701、在热盘失效后,将失效的热盘对应的N-i个RAID组各自失效的数据恢复至各RAID组对应的任一热备区。
S702、根据预设选择规则,在冷盘中选择一个SSD作为热盘。
S703、在确定插入替换盘之后,将替换盘划分为N-i个分区。
S701至S703与步骤S601至S603类似,本实施例此处不再赘述。
S704、在确定失效的热盘对应的N-i个RAID组各自失效的数据未恢复完成时,继续将所述失效的热盘对应的N-i个RAID组各自失效的数据恢复至各所述RAID组对应的热备区或所述替换盘中,直至数据恢复完毕。
在数据未恢复完成时,可以根据热备区所在盘的忙闲状态和替换盘的忙闲状态,将恢复的数据写到较闲的盘的分区上,直至数据恢复完毕。
S705、将其它冷盘中的热备区中存储的数据存储至所述替换盘中的分区中,其中,被存储至所述替换盘中的数据在替换盘中的分区位置与所述热备区在冷盘中的分区位置相同。
在数据恢复完成时,针对作为新的热盘以外的剩余冷盘,已经写入到冷盘中的热备区中的数据存储至替换盘中,即SSD2中的热备区中的数据继续保留,其它盘中的热备区中的数据写入替换盘中,写入的过程与S604类似,本实施例此处不再赘述。
S706、将所述替换盘中的目标分区中的数据存储至所述新的热盘中的热备区,其中,所述目标分区在所述替换盘中的位置与所述新的热盘的热备区在所述新的热盘中的位置相同。
S707、将所述目标分区作为所述替换盘中的热备区。
即已经恢复至替换盘SSD1’中的分区5中的数据,存储至SSD2的热备区,即SSD2的分区5中。将替换盘SSD1’的分区5进行清空处理,作为替换盘的热备区。
本实施例将恢复的失效的热盘中的数据存储至较闲的热备区或替换盘中,提高了数据重建的效率。
图8为本申请提供的冷盘失效后的数据迁移示意图,图9为本申请一实施例提供的冷盘失效后的数据迁移的流程示意图。如图9所示,该方法包括:
S901、将失效的冷盘的数据区对应的RAID组各自失效的数据恢复至各所述RAID组对应的任一热备区;
S902、在确定插入替换盘之后,将所述替换盘划分为N-i个分区;
S903、将其它冷盘中的热备区中的数据存储至所述替换盘的分区中,并将所述替换盘的剩余空间作为热备区;其中,被存储至所述替换盘中的数据在替换盘中的分区位置与所述热备区在冷盘中的分区位置相同;
S904、将所述替换盘作为新的冷盘。
如图8所示,冷盘SSD2失效之后,确定冷盘SSD2对应的RAID组为RAID组1、RAID组2、RAID组3以及RAID组4。根据数据失效的四个RAID组各自的恢复算法,分别恢复出数据D1、D2、D3、D4,并存储至各RAID组对应的热备区中。
在插入替换盘后,替换盘可以继承原失效的冷盘的编号,并将替换盘SSD2’划分为N-1个分区,替换盘的分区方式与失效的冷盘的分区方式相同。
将SSD6中的热备区中的数据存储至替换盘的分区1中,将SSD5中的热备区中的数据存储至替换盘的分区2中,将SSD4中的热备区中的数据存储至替换盘的分区3中,将SSD3中的热备区中的数据存储至替换盘中的分区4中。将替换盘中的分区5作为热备区。
本实施在冷盘失效后,由于热备区分布在各个盘中,在对冷盘中的数据进行重建时,恢复出的数据被写入到各个盘中,避免了独立热备盘恢复数据效率低的问题,提高了数据恢复的效率,缩短了重建时间。
在图实施例的基础上,本领域技术人员可以理解,在插入替换盘之后,可以将未恢复的数据恢复至替换盘或热备区中,以提高数据的重建效率。具体地可参见图9所示。
图10为本申请另一实施例提供的冷盘失效后的数据迁移的流程示意图。如图10所示,该方法包括:
S1001、将失效的冷盘的数据区对应的RAID组各自失效的数据恢复至各所述RAID组对应的任一热备区;
S1002、在确定插入替换盘之后,将所述替换盘划分为N-i个分区;
S1001、S1002的实现方式与S901、S902类似,本实施例此处不再赘述。
S1003、在确定失效的冷盘对应的RAID组各自失效的数据未恢复完成时,继续将所述失效的冷盘对应的RAID组各自失效的数据恢复至各所述RAID组对应的热备区或所述替换盘中,直至数据恢复完毕。
在插入替换盘后,在数据未恢复完成时,可以根据热备区所在盘的忙闲状态和替换盘的忙闲状态,将恢复的数据写到较闲的盘的分区上,直至数据恢复完毕。
S1004、将其它冷盘中的热备区中的数据存储至所述替换盘的分区中,并将所述替换盘的剩余空间作为热备区;其中,被存储至所述替换盘中的数据在替换盘中的分区位置与所述热备区在冷盘中的分区位置相同。
将已经写入到其它冷盘中热备区中的数据存储至替换盘中,写入的过程与S903类似,本实施例此处不再赘述。
S1005、将所述替换盘作为新的冷盘。
本实施例将恢复的失效的冷盘中的数据存储至较闲的热备区或替换盘中,提高了数据重建的效率。
在上述的实施例中,以i=1为例,来说明了多个RAID组的组建过程,在下述实施例中,以i=2为例来说明多个RAID组的组建过程,对于i=3、i=4等,其实现原理类似,本实施例此处不再赘述。
图11为本申请又一实施例提供的RAID组的起始数据布局结构示意图。如图11所示,本实施例有6个SSD,每个SSD上的存储空间划分为4个分区,创建了4个RAID组。其中,每个RAID组的4个数据区对应4个属于不同SSD的分区,同一RAID组的2个热备区和4个数据区不在同一SSD上,同一RAID组的各数据区与热备区的大小相同。
同时,每个RAID组的数据区所对应的SSD与其它RAID组的数据区所对应的SSD存在不同,每个RAID组的热备区所对应的SSD与其它RAID组的热备区所对应的SSD存在不同,每个SSD对应4个RAID组。
在图11所示的实施例中,多个RAID组的组建过程,与上述的图3实施例类似,是将编号为N-n+1、N-n的SSD上的编号为n的分区作为编号为n的RAID组的热备区,将其它编号的SSD上的编号为n的分区作为编号为n的RAID组的数据区,最终得到编号为1的SSD的4个分区均对应RAID组的数据区,将编号为1的SSD作为热盘,其它SSD作为冷盘。其中,多个RAID组的组建过程,还可以与图4类似,或采用其它方式实现,本实施例此次不做特别限制。
在本实施例中,每个RAID组对应两个热备区,则本实施例可以对两个SSD失效时,完成数据的迁移和恢复。例如,可以一个热盘失效,一个冷盘失效;也可以两个冷盘失效。
在一个热盘失效、一个冷盘失效时,可以采用上述类似图6或图7的方法,将一个热盘上各RAID组各自对应的数据恢复至各RAID组对应的任一热备区中,可采用图9或图10的方法,将一个冷盘上各RAID组各自对应的数据恢复至各RAID组对应的另一热备区中。
在两个冷盘失效时,可以采用上述类似图9或图10的方法,将一个冷盘上各RAID组各自对应的数据恢复至各RAID组对应的任一热备区中,同样采用图9或图10的方法,将另一个冷盘上各RAID组各自对应的数据恢复至各RAID组对应的另一热备区中。
下面以图12和图13为例,分别来说明M=N以及M大于N时的具体实现方式。其中,当M大于等于N时,至少存在一个RAID组的所有数据区对应的SSD与其它RAID组的所有数据区对应的SSD相同,对应地,至少存在一个RAID组的所有热备区对应的SSD与其它RAID组的所有热备区对应的SSD相同。
图12为本申请又一实施例提供的RAID组的起始数据布局结构示意图。如图12所示,当M=N时,SSD被划分为6个分区,形成了6个RAID组,其中RAID组1与RAID组6的数据区对应相同的SSD,热备区也对应相同的SSD。SSD1为热盘,其它盘为冷盘。RAID组1与RAID组6可以采用相同的恢复算法,也可以采用不同的恢复算法。其中,RAID组1至RAID组5的实现方式,与图3所示实施例类似。
本领域技术人员可以理解,在热盘失效时,其数据迁移和恢复过程,可参见图6或图7所示的方法,在冷盘失效时,其数据迁移和恢复过程,可参见图9或图10所示的方法。
图13为本申请又一实施例提供的RAID组的起始数据布局结构示意图。如图13所示,当M大于N时,SSD被划分为7个分区,形成了7个RAID组,其中RAID组1与RAID组6的数据区对应相同的SSD,热备区也对应相同的SSD;RAID组2与RAID组7的数据区对应相同的SSD,热备区也对应相同的SSD。SSD1为热盘,其它盘为冷盘。其中,RAID组1至RAID组5的实现方式,与图3所示实施例类似。
本领域技术人员可以理解,在热盘失效时,其数据迁移和恢复过程,可参见图6或图7所示的方法,在冷盘失效时,其数据迁移和恢复过程,可参见图9或图10所示的方法。
上述实施例仅为示意性的说明了组建RAID组的几种场景,对于其它可通过上述场景得到或推演得到的场景,都属于本申请的保护范畴。
进一步地,在具体实现过程中,还可以先将磁盘阵列的整个物理存储区域划分成多个区域,然后在每个区域里面应用上述的实施例,从而实现逆磨损均衡。
图14为本申请一实施例提供的多区域RAID组的起始数据布局结构示意图。对有N块SSD盘构成的存储系统,将每个SSD划分为多个存储空间,具体可以横向划分整个存储空间,其中,每个SSD划分存储空间的划分方式相同。获取N个SSD对应的相同大小的存储空间,即从每个盘取一个大小相同的空间构成一个区域。
如图14所示,每个盘被划分成两个空间,每个空间划分为5个分区。即N个SSD对应的相同大小的存储空间构成了区域1和区域2。区域1和区域2采用了相同的布局方式。
在本实施例中,区域1和区域2都采用了图3所示的布局方式。在具体实现过程中,还可以区域1和区域2采用不同的布局方式,例如,区域1采用图3所示的布局方式,区域2采用图4所示的布局方式。
在每个区域中的热盘或冷盘失效时,可以采用上述实施例中的数据迁移过程进行数据重建。
本实施例通过设置多个区域,可以适配上层用户的需求,用户可能需要多个不同的存储区域,每个区域实现不同的保护级别。
图15为本申请一实施例提供的独立磁盘冗余阵列的创建装置的结构示意图。如图15所示,该独立磁盘冗余阵列的创建装置150包括:
获取模块10,用于获取N个固态硬盘SSD的存储空间;
划分模块11,用于将每个SSD上的存储空间划分为M个分区,所述N为大于等于3的整数,其中,各所述SSD的存储空间的大小相同;
创建模块12,用于根据每个SSD的存储空间所划分的M个分区,创建M个独立磁盘冗余阵列RAID组,其中,每个RAID组的多个数据区对应多个属于不同SSD的分区,每个RAID组的至少一个热备区对应至少一个属于不同SSD的分区,且同一RAID组的数据区和热备区不在同一SSD上,同一RAID组的数据区与热备区的大小相同,每个SSD对应M个RAID组;
分盘模块13,用于将M个分区均对应数据区的一个SSD作为热盘,将对应数据区和热备区的N-1个SSD作为冷盘。
本实施例提供的装置,可用于执行上述的方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
可选地,M=N-i,所述i为大于等于1的整数,每个RAID组包括N-i个数据区和i个热备区,且每个RAID组的数据区所对应的SSD与其它RAID组的数据区所对应的SSD存在不同,每个所述RAID组的热备区所对应的SSD与其它RAID组的热备区所对应的SSD存在不同。
可选地,各所述SSD的存储空间划分分区的划分方式相同,所述创建模块12具体用于:
对各所述SSD依次进行编号,得到各所述SSD的编号依次为1、2……N;
对各所述SSD中的各分区进行编号,得到各分区的编号依次为1、2……N-i;
根据各所述SSD的编号和每个SSD中的各分区的编号,创建N-i个RAID组,所述N-i个RAID组的编号依次为1、2……N-i,其中,编号为n的RAID组的数据区对应的N-i个分区为N-i个SSD上分区编号为n的分区,同一RAID组的i个热备区与N-i个数据区对应的SSD的编号不同。
可选地,所述分盘模块13具体用于:
将编号从N-n+1开始,编号依次递减1的SSD上的编号为n的分区作为编号为n的RAID组的热备区,其它SSD上的编号为n的分区作为编号为n的RAID组的数据区,得到编号为1的SSD的N-1个分区均对应RAID组的数据区;
将编号为1的SSD作为热盘,其它SSD作为冷盘。
可选地,所述分盘模块13具体用于:
将编号从n开始,编号依次递增1的SSD上的编号为n的分区作为编号为n的RAID组的热备区,其它SSD上的编号为n的分区作为编号为n的RAID组的数据区,得到编号为N的SSD的N-1个分区均对应RAID组的数据区;
将编号为N的SSD作为热盘,其它SSD作为冷盘。
可选地,所述M大于等于N,至少存在一个RAID组的所有数据区对应的SSD与其它RAID组的所有数据区对应的SSD相同,对应地,至少存在一个RAID组的所有热备区对应的SSD与其它RAID组的所有热备区对应的SSD相同。
图16为本申请又一实施例提供的独立磁盘冗余阵列的创建装置的结构示意图。如图16所示,本实施例在图15实施例的基础上,还包括:数据恢复模块14和备份模块15。
在一种可能的实现方式中,
所述数据恢复模块14,用于在所述热盘失效时,将失效的热盘对应的M个RAID组各自失效的数据恢复至各所述RAID组对应的任一热备区;根据预设选择规则,在所述冷盘中选择一个SSD作为热盘;在确定插入替换盘之后,将所述替换盘划分为M个分区;
所述备份模块15,用于将其它冷盘中的热备区中存储的数据存储至所述替换盘的分区中,并将所述替换盘的剩余空间作为热备区;其中,被存储至所述替换盘中的数据在替换盘中的分区位置与所述热备区在冷盘中的分区位置相同;
所述分盘模块13还用于:将所述替换盘作为新的冷盘。
可选地,所述数据恢复模块14还用于:在将所述替换盘划分为M个分区之后,
在确定失效的热盘对应的M个RAID组各自失效的数据未恢复完成时,继续将所述失效的热盘对应的M个RAID组各自失效的数据恢复至各所述RAID组对应的热备区或所述替换盘中,直至数据恢复完毕;
所述备份模块15具体用于:将其它冷盘中的热备区中存储的数据存储至所述替换盘的分区中,其中,被存储至所述替换盘中的数据在替换盘中的分区位置与所述热备区在冷盘中的分区位置相同;将所述替换盘中的目标分区中的数据存储至所述新的热盘中的热备区,其中,所述目标分区在所述替换盘中的位置与所述新的热盘的热备区在所述新的热盘中的位置相同;将所述目标分区作为所述替换盘中的热备区。
在另一种可能的实现方式中,
所述数据恢复模块14,用于在所述冷盘失效时,将失效的冷盘的数据区对应的RAID组各自失效的数据恢复至各所述RAID组对应的任一热备区;在确定插入替换盘之后,将所述替换盘划分为M个分区;
所述备份模块15,用于将其它冷盘中的热备区中的数据存储至所述替换盘的分区中,并将所述替换盘的剩余空间作为热备区;其中,被存储至所述替换盘中的数据在替换盘中的分区位置与所述热备区在冷盘中的分区位置相同;
所述分盘模块13还用于:将所述替换盘作为新的冷盘。
所述数据恢复模块14还用于:在所述将其它冷盘中的热备区中的数据存储至所述替换盘的分区中之前,在所述替换盘分区完成后,若确定失效的冷盘的数据区对应的RAID组各自失效的数据未恢复完成,则继续将所述失效的冷盘对应RAID组各自失效的数据恢复至各所述RAID组对应的热备区或所述替换盘中,直至数据恢复完毕。
在上述实施例的基础上,所述获取模块10具体用于:
将每个SSD划分为多个存储空间,其中,每个SSD划分存储空间的划分方式相同;
获取N个SSD对应的相同大小的存储空间。
本实施例提供的装置,可用于执行上述的方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
本申请还提供一种独立磁盘冗余阵列的创建设备,包括:存储器、处理器以及计算机程序,所述计算机程序存储在所述存储器中,所述处理器运行所述计算机程序执行实现上述实施例中的独立磁盘冗余阵列的创建方法。
本申请提供一种存储介质,包括:可读存储介质和计算机程序,所述计算机程序用于实现上述实施例中的独立磁盘冗余阵列的创建方法。
应理解,处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一可读取存储器中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储器(存储介质)包括:只读存储器(英文:read-only memory,缩写:ROM)、RAM、快闪存储器、硬盘、固态硬盘、磁带(英文:magnetic tape)、软盘(英文:floppydisk)、光盘(英文:optical disc)及其任意组合。
最后应说明的是:尽管参照前述各实施例对本方案进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不能使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (23)
1.一种独立磁盘冗余阵列的创建方法,其特征在于,包括:
获取N个固态硬盘SSD的存储空间,并将每个SSD上的存储空间划分为M个分区,所述N为大于等于3的整数,其中,各所述SSD的存储空间的大小相同;
根据每个SSD的存储空间所划分的M个分区,创建M个独立磁盘冗余阵列RAID组,其中,每个RAID组的多个数据区对应多个属于不同SSD的分区,每个RAID组的至少一个热备区对应至少一个属于不同SSD的分区,且同一RAID组的数据区和热备区不在同一SSD上,同一RAID组的数据区与热备区的大小相同,每个SSD对应M个RAID组;
将M个分区均对应数据区的一个SSD作为热盘,将对应数据区和热备区的N-1个SSD作为冷盘。
2.根据权利要求1所述的方法,其特征在于,M=N-i,所述i为大于等于1的整数,每个RAID组包括N-i个数据区和i个热备区,且每个RAID组的数据区所对应的SSD与其它RAID组的数据区所对应的SSD存在不同,每个所述RAID组的热备区所对应的SSD与其它RAID组的热备区所对应的SSD存在不同。
3.根据权利要求2所述的方法,其特征在于,各所述SSD的存储空间划分分区的划分方式相同,所述根据每个SSD的存储空间所划分的N-i个分区,创建N-i个独立磁盘冗余阵列RAID组,包括:
对各所述SSD依次进行编号,得到各所述SSD的编号依次为1、2……N;
对各所述SSD中的各分区进行编号,得到各分区的编号依次为1、2……N-i;
根据各所述SSD的编号和每个SSD中的各分区的编号,创建N-i个RAID组,所述N-i个RAID组的编号依次为1、2……N-i,其中,编号为n的RAID组的数据区对应的N-i个分区为N-i个SSD上分区编号为n的分区,同一RAID组的i个热备区与N-i个数据区对应的SSD的编号不同。
4.根据权利要求3所述的方法,其特征在于,所述将M个分区均对应数据区的一个SSD作为热盘,将对应数据区和热备区的N-1个SSD作为冷盘,包括:
将编号从N-n+1开始,编号依次递减1的SSD上的编号为n的分区作为编号为n的RAID组的热备区,其它SSD上的编号为n的分区作为编号为n的RAID组的数据区,得到编号为1的SSD的N-1个分区均对应RAID组的数据区;
将编号为1的SSD作为热盘,其它SSD作为冷盘。
5.根据权利要求3所述的方法,其特征在于,所述将M个分区均对应数据区的一个SSD作为热盘,将对应数据区和热备区的N-1个SSD作为冷盘,包括:
将编号从n开始,编号依次递增1的SSD上的编号为n的分区作为编号为n的RAID组的热备区,其它SSD上的编号为n的分区作为编号为n的RAID组的数据区,得到编号为N的SSD的N-1个分区均对应RAID组的数据区;
将编号为N的SSD作为热盘,其它SSD作为冷盘。
6.根据权利要求1所述的方法,其特征在于,所述M大于等于N,至少存在一个RAID组的所有数据区对应的SSD与其它RAID组的所有数据区对应的SSD相同,对应地,至少存在一个RAID组的所有热备区对应的SSD与其它RAID组的所有热备区对应的SSD相同。
7.根据权利要求1至6任一项所述的方法,其特征在于,在所述热盘失效时,所述方法还包括:
将失效的热盘对应的M个RAID组各自失效的数据恢复至各所述RAID组对应的任一热备区;
根据预设选择规则,在所述冷盘中选择一个SSD作为热盘;
在确定插入替换盘之后,将所述替换盘划分为M个分区;
将其它冷盘中的热备区中存储的数据存储至所述替换盘的分区中,并将所述替换盘的剩余空间作为热备区;其中,被存储至所述替换盘中的数据在替换盘中的分区位置与所述热备区在冷盘中的分区位置相同;
将所述替换盘作为新的冷盘。
8.根据权利要求7所述的方法,其特征在于,所述在确定插入替换盘之后,将所述替换盘划分为M个分区之后,还包括:
在确定失效的热盘对应的M个RAID组各自失效的数据未恢复完成时,继续将所述失效的热盘对应的M个RAID组各自失效的数据恢复至各所述RAID组对应的热备区或所述替换盘中,直至数据恢复完毕;
所述将其它冷盘中的热备区中存储的数据存储至所述替换盘的分区中,并将所述替换盘的剩余空间作为热备区,包括:
将其它冷盘中的热备区中存储的数据存储至所述替换盘的分区中,其中,被存储至所述替换盘中的数据在替换盘中的分区位置与所述热备区在冷盘中的分区位置相同;
将所述替换盘中的目标分区中的数据存储至所述新的热盘中的热备区,其中,所述目标分区在所述替换盘中的位置与所述新的热盘的热备区在所述新的热盘中的位置相同;
将所述目标分区作为所述替换盘中的热备区。
9.根据权利要求1至6任一项所述的方法,其特征在于,在所述冷盘失效时,所述方法还包括:
将失效的冷盘的数据区对应的RAID组各自失效的数据恢复至各所述RAID组对应的任一热备区;
在确定插入替换盘之后,将所述替换盘划分为M个分区;
将其它冷盘中的热备区中的数据存储至所述替换盘的分区中,并将所述替换盘的剩余空间作为热备区;其中,被存储至所述替换盘中的数据在替换盘中的分区位置与所述热备区在冷盘中的分区位置相同;
将所述替换盘作为新的冷盘。
10.根据权利要求9所述的方法,其特征在于,所述将其它冷盘中的热备区中的数据存储至所述替换盘的分区中之前,还包括:
在所述替换盘分区完成后,若确定失效的冷盘的数据区对应的RAID组各自失效的数据未恢复完成,则继续将所述失效的冷盘对应RAID组各自失效的数据恢复至各所述RAID组对应的热备区或所述替换盘中,直至数据恢复完毕。
11.根据权利要求1至6任一项所述的方法,其特征在于,所述获取N个固态硬盘SSD的存储空间,包括:
将每个SSD划分为多个存储空间,其中,每个SSD划分存储空间的划分方式相同;
获取N个SSD对应的相同大小的存储空间。
12.一种独立磁盘冗余阵列的创建装置,其特征在于,包括:
获取模块,用于获取N个固态硬盘SSD的存储空间;
划分模块,用于将每个SSD上的存储空间划分为M个分区,所述N为大于等于3的整数,其中,各所述SSD的存储空间的大小相同;
创建模块,用于根据每个SSD的存储空间所划分的M个分区,创建M个独立磁盘冗余阵列RAID组,其中,每个RAID组的多个数据区对应多个属于不同SSD的分区,每个RAID组的至少一个热备区对应至少一个属于不同SSD的分区,且同一RAID组的数据区和热备区不在同一SSD上,同一RAID组的数据区与热备区的大小相同,每个SSD对应M个RAID组;
分盘模块,用于将M个分区均对应数据区的一个SSD作为热盘,将对应数据区和热备区的N-1个SSD作为冷盘。
13.根据权利要求12所述的装置,其特征在于,M=N-i,所述i为大于等于1的整数,每个RAID组包括N-i个数据区和i个热备区,且每个RAID组的数据区所对应的SSD与其它RAID组的数据区所对应的SSD存在不同,每个所述RAID组的热备区所对应的SSD与其它RAID组的热备区所对应的SSD存在不同。
14.根据权利要求13所述的装置,其特征在于,各所述SSD的存储空间划分分区的划分方式相同,所述创建模块具体用于:
对各所述SSD依次进行编号,得到各所述SSD的编号依次为1、2……N;
对各所述SSD中的各分区进行编号,得到各分区的编号依次为1、2……N-i;
根据各所述SSD的编号和每个SSD中的各分区的编号,创建N-i个RAID组,所述N-i个RAID组的编号依次为1、2……N-i,其中,编号为n的RAID组的数据区对应的N-i个分区为N-i个SSD上分区编号为n的分区,同一RAID组的i个热备区与N-i个数据区对应的SSD的编号不同。
15.根据权利要求14所述的装置,其特征在于,所述分盘模块具体用于:
将编号从N-n+1开始,编号依次递减1的SSD上的编号为n的分区作为编号为n的RAID组的热备区,其它SSD上的编号为n的分区作为编号为n的RAID组的数据区,得到编号为1的SSD的N-1个分区均对应RAID组的数据区;
将编号为1的SSD作为热盘,其它SSD作为冷盘。
16.根据权利要求14所述的装置,其特征在于,所述分盘模块具体用于:
将编号从n开始,编号依次递增1的SSD上的编号为n的分区作为编号为n的RAID组的热备区,其它SSD上的编号为n的分区作为编号为n的RAID组的数据区,得到编号为N的SSD的N-1个分区均对应RAID组的数据区;
将编号为N的SSD作为热盘,其它SSD作为冷盘。
17.根据权利要求12所述的装置,其特征在于,所述M大于等于N,至少存在一个RAID组的所有数据区对应的SSD与其它RAID组的所有数据区对应的SSD相同,对应地,至少存在一个RAID组的所有热备区对应的SSD与其它RAID组的所有热备区对应的SSD相同。
18.根据权利要求12至17任一项所述的装置,其特征在于,还包括:数据恢复模块和备份模块,
所述数据恢复模块,用于在所述热盘失效时,将失效的热盘对应的M个RAID组各自失效的数据恢复至各所述RAID组对应的任一热备区;根据预设选择规则,在所述冷盘中选择一个SSD作为热盘;在确定插入替换盘之后,将所述替换盘划分为M个分区;
所述备份模块,用于将其它冷盘中的热备区中存储的数据存储至所述替换盘的分区中,并将所述替换盘的剩余空间作为热备区;其中,被存储至所述替换盘中的数据在替换盘中的分区位置与所述热备区在冷盘中的分区位置相同;
所述分盘模块还用于:将所述替换盘作为新的冷盘。
19.根据权利要求18所述的装置,其特征在于,所述数据恢复模块还用于:在将所述替换盘划分为M个分区之后,
在确定失效的热盘对应的M个RAID组各自失效的数据未恢复完成时,继续将所述失效的热盘对应的M个RAID组各自失效的数据恢复至各所述RAID组对应的热备区或所述替换盘中,直至数据恢复完毕;
所述备份模块具体用于:将其它冷盘中的热备区中存储的数据存储至所述替换盘的分区中,其中,被存储至所述替换盘中的数据在替换盘中的分区位置与所述热备区在冷盘中的分区位置相同;将所述替换盘中的目标分区中的数据存储至所述新的热盘中的热备区,其中,所述目标分区在所述替换盘中的位置与所述新的热盘的热备区在所述新的热盘中的位置相同;将所述目标分区作为所述替换盘中的热备区。
20.根据权利要求12至17任一项所述的装置,其特征在于,还包括:数据恢复模块和备份模块,
所述数据恢复模块,用于在所述冷盘失效时,将失效的冷盘的数据区对应的RAID组各自失效的数据恢复至各所述RAID组对应的任一热备区;在确定插入替换盘之后,将所述替换盘划分为M个分区;
所述备份模块,用于将其它冷盘中的热备区中的数据存储至所述替换盘的分区中,并将所述替换盘的剩余空间作为热备区;其中,被存储至所述替换盘中的数据在替换盘中的分区位置与所述热备区在冷盘中的分区位置相同;
所述分盘模块还用于:将所述替换盘作为新的冷盘。
21.根据权利要求20所述的装置,其特征在于,所述数据恢复模块还用于:在所述将其它冷盘中的热备区中的数据存储至所述替换盘的分区中之前,在所述替换盘分区完成后,若确定失效的冷盘的数据区对应的RAID组各自失效的数据未恢复完成,则继续将所述失效的冷盘对应RAID组各自失效的数据恢复至各所述RAID组对应的热备区或所述替换盘中,直至数据恢复完毕。
22.根据权利要求12至17任一项所述的装置,其特征在于,所述获取模块具体用于:
将每个SSD划分为多个存储空间,其中,每个SSD划分存储空间的划分方式相同;
获取N个SSD对应的相同大小的存储空间。
23.一种独立磁盘冗余阵列的创建设备,其特征在于,包括:存储器、处理器以及计算机程序,所述计算机程序存储在所述存储器中,所述处理器运行所述计算机程序执行权利要求1至11任一项所述的独立磁盘冗余阵列的创建方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710726463.XA CN109426432B (zh) | 2017-08-22 | 2017-08-22 | 独立磁盘冗余阵列的创建方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710726463.XA CN109426432B (zh) | 2017-08-22 | 2017-08-22 | 独立磁盘冗余阵列的创建方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109426432A CN109426432A (zh) | 2019-03-05 |
CN109426432B true CN109426432B (zh) | 2020-12-15 |
Family
ID=65499054
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710726463.XA Active CN109426432B (zh) | 2017-08-22 | 2017-08-22 | 独立磁盘冗余阵列的创建方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109426432B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110515558B (zh) * | 2019-08-23 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 一种基于ssd热备盘的raid磁盘阵列重建方法及装置 |
CN116149574B (zh) * | 2023-04-20 | 2023-07-14 | 苏州浪潮智能科技有限公司 | Raid阵列的管理方法、装置、raid卡及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101458613A (zh) * | 2008-12-31 | 2009-06-17 | 成都市华为赛门铁克科技有限公司 | 一种混合分级阵列的实现方法、混合分级阵列和存储系统 |
CN102591746A (zh) * | 2011-12-29 | 2012-07-18 | 成都市华为赛门铁克科技有限公司 | 数据重构方法和存储设备 |
CN103946846A (zh) * | 2011-11-23 | 2014-07-23 | 国际商业机器公司 | 使用虚拟驱动作为用于raid组的热备用 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090210620A1 (en) * | 2008-02-19 | 2009-08-20 | Jibbe Mahmoud K | Method to handle demand based dynamic cache allocation between SSD and RAID cache |
US20100017649A1 (en) * | 2008-07-19 | 2010-01-21 | Nanostar Corporation | Data storage system with wear-leveling algorithm |
-
2017
- 2017-08-22 CN CN201710726463.XA patent/CN109426432B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101458613A (zh) * | 2008-12-31 | 2009-06-17 | 成都市华为赛门铁克科技有限公司 | 一种混合分级阵列的实现方法、混合分级阵列和存储系统 |
CN103946846A (zh) * | 2011-11-23 | 2014-07-23 | 国际商业机器公司 | 使用虚拟驱动作为用于raid组的热备用 |
CN102591746A (zh) * | 2011-12-29 | 2012-07-18 | 成都市华为赛门铁克科技有限公司 | 数据重构方法和存储设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109426432A (zh) | 2019-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107807794B (zh) | 一种数据存储方法和装置 | |
US9448886B2 (en) | Flexible data storage system | |
US6751136B2 (en) | Drive failure recovery via capacity reconfiguration | |
US8843782B2 (en) | Method and apparatus for reconstructing redundant array of inexpensive disks, and system | |
CN110383251B (zh) | 存储系统、计算机可读记录介质、系统的控制方法 | |
JP6947670B2 (ja) | 仮想装置階層を利用した複数のメモリ装置を含む仮想装置に対する客体の格納及び読み取り方法とこれを用いたストレージ装置 | |
CN107515726B (zh) | 用于管理存储设备的方法和系统 | |
JP2018508073A (ja) | データ除去、割り当て、及び再構築 | |
CN107729536B (zh) | 一种数据存储方法和装置 | |
CN107870731B (zh) | 独立盘冗余阵列系统的管理方法和电子设备 | |
US10409682B1 (en) | Distributed RAID system | |
US20080091916A1 (en) | Methods for data capacity expansion and data storage systems | |
CN109426432B (zh) | 独立磁盘冗余阵列的创建方法、装置及设备 | |
CN111090394A (zh) | 一种基于卷级别raid的磁阵管理方法及装置 | |
WO2014101375A1 (zh) | 固态存储系统、装置及数据写入方法 | |
CN104050200A (zh) | 用于数据拷贝的方法和装置 | |
CN116204137B (zh) | 基于dpu的分布式存储系统、控制方法、装置及设备 | |
US10740189B2 (en) | Distributed storage system | |
US11860746B2 (en) | Resilient data storage system with efficient space management | |
JP6556980B2 (ja) | ストレージ制御装置、ストレージ制御方法及びストレージ制御プログラム | |
CN105573862B (zh) | 一种恢复文件系统的方法和设备 | |
JP4794357B2 (ja) | Raid装置におけるraidレベル変換方法およびraid装置 | |
US11256428B2 (en) | Scaling raid-based storage by redistributing splits | |
CN108268336B (zh) | 保证元数据一致性的方法及装置 | |
JP7056874B2 (ja) | 制御装置、ディスクアレイ装置、制御方法、及びプログラム |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200422 Address after: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Applicant after: HUAWEI TECHNOLOGIES Co.,Ltd. Address before: 301, A building, room 3, building 301, foreshore Road, No. 310053, Binjiang District, Zhejiang, Hangzhou Applicant before: Huawei Technologies Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |