实现独立磁盘冗余阵列的方法、固态硬盘和电子设备转让专利

申请号 : CN200910118167.7

文献号 : CN101504625B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 唐娴杨继涛

申请人 : 成都市华为赛门铁克科技有限公司

摘要 :

本发明实施例公开了实现独立磁盘冗余阵列RAID的方法、固态硬盘和电子设备,该方法包括:将固态硬盘内部划分为至少两个存储区域,所述每个存储区域中包括至少两个子区域;在所述存储区域中分别构建独立磁盘冗余阵列RAID;根据所述存储区域中构建的独立磁盘冗余阵列的级别和预先设定的参数,从组成存储区域的子区域中,确定用作存储冗余数据的子区域。根据本发明实施例,能够在降低成本的前提下保证数据的可靠性。

权利要求 :

1.一种实现独立磁盘冗余阵列RAID的方法,其特征在于,包括:

将固态硬盘内部划分为至少两个存储区域,每个存储区域中包括至少两个子区域;

在所述存储区域中分别构建独立磁盘冗余阵列RAID;

根据所述存储区域中构建的独立磁盘冗余阵列的级别和预先设定的参数,从组成存储区域的子区域中,确定用作存储冗余数据的子区域。

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:

当所述存储区域中的子区域的数据失效后,将所述存储区域中的其他子区域的数据和用作存储冗余数据的子区域中的冗余数据进行相应的独立磁盘冗余阵列的运算,恢复失效数据。

3.根据权利要求1或2所述的方法,其特征在于,所述存储区域为固态硬盘中的闪存Flash通道,所述子区域为一个Flash通道中的各个行ROW对应的存储单元。

4.根据权利要求1或2所述的方法,其特征在于,所述存储区域为固态硬盘的ROW,所述子区域为一个ROW中的各个Flash通道对应的存储单元。

5.根据权利要求1或2所述的方法,其特征在于,所述存储区域为固态硬盘内的任意存储单元组成的集合,所述子区域为所述集合中的各个存储单元。

6.一种固态硬盘,其特征在于,包括:存储控制器和存储介质,存储控制器和存储介质相连接,所述存储介质包括:至少两个存储区域,每个存储区域中包括至少两个子区域,每个存储区域分别构建成独立磁盘冗余阵列,其中,每个存储区域的子区域中包括:根据所述存储区域构建的独立磁盘冗余阵列的级别和预先设定的参数确定的用于存储冗余数据的子区域。

7.根据权利要求6所述的固态硬盘,其特征在于,所述存储区域为固态硬盘中的Flash通道,所述子区域为一个Flash通道中的各个ROW对应的存储单元。

8.根据权利要求6所述的固态硬盘,其特征在于,所述存储区域为固态硬盘中的ROW,所述子区域为一个ROW中的各个Flash通道对应的存储单元。

9.根据权利要求6所述的固态硬盘,其特征在于,所述存储区域为固态硬盘中任意存储单元组成的集合,所述子区域为所述集合中的各个存储单元。

10.一种电子设备,其特征在于,包括中央处理器CPU和如权利要求6至9中任一项的固态硬盘,固态硬盘与中央处理器CPU相连接,固态硬盘用于存储数据,中央处理器CPU用于对固态硬盘中存储的数据进行处理。

11.如权利要求10所述的电子设备,其特征在于,该电子设备的类型包括:计算机、或服务器、或路由器、或交换机、或基站、或基站控制器、或数字用户线路接入复用器、或归属位置寄存器、或手机、或个人数码助理、或机顶盒。

说明书 :

技术领域

本发明涉及存储技术领域,尤其涉及一种实现独立磁盘冗余阵列的方法、固态硬盘和电子设备。

背景技术

RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列)是将多台硬盘通过控制器结合成虚拟单台大容量的磁盘使用,其特色是多台硬盘同时读取速度加快并且能够提供容错性,RAID按照实现原理的不同可以分为不同的级别,例如RAID0、RAID1、RAID5等。SSD(Solid State Disk,固态硬盘)由控制单元和固态电子存储芯片(通常为FLASH存储器)阵列组成,简其抗震性佳,同时工作温度很宽。SSD相对硬盘的最显著优势就是速度,在I/O性能指标IOPs(即每秒多少次IO动作)方面,SSD可以达到硬盘的50~1000倍,而其功耗相对于传统硬盘HDD也非常低。但SSD由于采用了Nand Flash作为存储介质,故使用寿命受到存储介质的影响,SLC(Single Level Cell,单阶存储单元)的擦写次数大概为10次,而MLC(Muti-Level Cell,多阶存储单元)大概为1万次。此外,SSD的成本较HDD(Hard Disk Drive,硬盘驱动器)高也是阻止其规模应用的一个劣势。
现有技术中,存在一种存储系统,该系统中利用SSD盘作为存储介质,为了实现RAID,系统利用SSD盘进行构建,并增加额外的SSD盘作为RAID系统中容灾备份的冗余盘使用,当存储数据用的SSD盘发生错误的时候,可以通过这些额外增加的SSD盘进行容错恢复。
现有技术中还有一种存储系统,在该系统中不是所有的存储介质都采用SSD,而是在关键运算的校验盘部分使用SSD,以提高整体的运算读取速度,其余的部分使用传统的HDD。
发明人在实施上述技术方案的过程中,发现上述技术方案至少存在如下缺陷:
现有技术一的方案因为在系统级别中采用SSD盘,所以需要额外再增加足够的SSD盘才可以构建这种RAID存储系统,由于SSD盘的成本本身就很高,所以整个存储系统的成本更高。
现有技术二的方案在用户需要高速存储的时候不能完全满足要求,因为存储系统的IOPS指标仍然是HDD的速度。而且在某些级别的RAID系统中,会频繁擦写SSD盘,由于SSD盘的介质特性,导致此时的SSD盘更容易失效。

发明内容

本发明实施例的目的在于提供一种实现独立磁盘冗余阵列RAID的方法、固态硬盘和电子设备,能够在构建的独立磁盘冗余阵列RAID成本较低的前提下,又能够保证数据可靠性。
为实现上述目的,本发明实施例提供了如下技术方案:
一种实现独立磁盘冗余阵列RAID的方法,包括:
将固态硬盘内部划分为至少两个存储区域,每个存储区域中包括至少两个子区域;
在所述存储区域中分别构建独立磁盘冗余阵列RAID;
根据所述存储区域中构建的独立磁盘冗余阵列的级别和预先设定的参数,从组成存储区域的子区域中,确定用作存储冗余数据的子区域。
一种固态硬盘,包括:
存储控制器和存储介质,存储控制器和存储介质相连接,所述存储介质包括:
至少两个存储区域,每个存储区域中包括至少两个子区域,每个存储区域分别构建成独立磁盘冗余阵列,其中,每个存储区域的子区域中包括:根据所述存储区域构建的独立磁盘冗余阵列的级别和预先设定的参数确定的用于存储冗余数据的子区域。
一种电子设备,包括中央处理器CPU和上述的固态硬盘,固态硬盘与中央处理器CPU相连接,固态硬盘用于存储数据,中央处理器CPU用于对固态硬盘中存储的数据进行处理。
由上述公开的技术方案可知,本发明实施例中,在固态硬盘的内部进行划分出多个存储区域,然后在各个存储区域内实现各自级别的RAID,并在各个存储区域内部设置用于存储冗余数据的子区域,而且该存储冗余数据的子区域可以根据预设的参数和RAID级别进行灵活调整,所以本发明实施例中用于容灾恢复的冗余数据存储区域可以存在于整个系统中SSD内部的各个部分,而现有技术中提供的是将固定的整个SSD盘作为冗余数据的存储单元,存在对同一位置过度擦写的现象,本发明实施例中解决了这个问题,避免同一部分过度擦写,提高了数据的可靠性,而且本发明实施例在SSD盘内部就实现了RAID,不需要增加额外的专门用于存储冗余数据的SSD盘,因此也就节省了整个系统的成本。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的实现独立磁盘冗余阵列的方法的流程图;
图2是本发明实施例一中利用SSD盘构建独立磁盘冗余阵列的示意图;
图3是本发明实施例一中一个Flash通道中内数据读写的示意图;
图4是本发明实施例二中一个Flash通道内恢复数据的示意图;
图5是本发明实施例二中利用SSD盘实现独立磁盘冗余阵列的示意图;
图6是本发明实施例二中一个ROW内数据读写的示意图;
图7是本发明实施例二中一个ROW内恢复数据的示意图;
图8是本发明实施例三提供的一种电子设备的示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合附图对本发明实施例进行详细描述。
图1示出了本发明实施例提供的实现独立磁盘冗余阵列的方法的流程图,如图1所示,该方法包括:
步骤S101:将固态硬盘内部划分成至少两个存储区域,每个存储区域中又包括至少两个子区域;
步骤S102:在每个存储区域中分别构建独立磁盘冗余阵列RAID;
步骤S103:根据该存储区域构建的独立磁盘冗余阵列的级别和预先设定的参数,从组成存储区域的子区域中,确定用作存储冗余数据的子区域。
其中,根据独立磁盘冗余阵列中阵列的组成方式的不同,可以将RAID分成若干个级别,例如RAID 0、RAID 1、RAID 0+1、RAID 3、RAID 5等。
可以利用上述预先设定的参数来指定存储区域中用来存储冗余数据的子区域的位置。
另外本发明实施例提供的方法中还可以包括:
步骤S104:当所述存储区域中的子区域的数据发生失效后,将所述存储区域中其他的子区域的数据和用作存储冗余数据的子区域中的冗余数据进行相应的RAID运算,恢复失效数据。
本发明实施例方法可以根据实际需要对各个步骤顺序进行调整。
根据本发明实施例,能够在节省系统成本的前提下,提高数据的可靠性。
本发明实施例还相应提供一种固态硬盘,在该固态硬盘内实现RAID,该硬盘可以包括存储控制器和存储介质,存储控制器和存储介质相连接,上述述存储介质包括:
多个存储区域,每个存储区域中包括多个子区域,每个存储区域分别构建成独立磁盘冗余阵列,其中,所述每个存储区域的子区域中包括:根据该存储区域构建的独立磁盘冗余阵列的级别和预先设定的参数,确定的用于存储冗余数据的子区域。
这样在不增加额外的SSD盘的情况下,本发明实施例提供的方法在SSD盘内部实现了RAID,节约了成本,而且可以通过预先设定的参数和RAID的级别灵活选择用于存储冗余数据的子区域,所以不会如现有技术中对固定SSD盘内部同一部分的过多擦写,从而提高数据的可靠性。进一步地,由于各个存储区域中构建RAID相对独立,使得用户可以根据需求选择在不同的存储区域构建级别的RAID容错备份方案,所以灵活性也很大。
在本发明不同实施例中,根据上述划分存储区域方式的不同,实现RAID的方式也不同,下面结合这些不同方式,对本发明实施例进行详细描述。
实施例一
在介绍本实施例前,首先介绍一下SSD盘内的组织结构。SSD盘包括多个Flash单元,其中Flash单元横向分成各个ROW,可以记为ROW 1、ROW2、ROW 3......ROW N,纵向分成各个Flash通道(Flash Channel),可以记为FC 1、FC 2、FC 3......FC M。其中,ROW是Flash进行数据组织结构管理的单位,每个ROW内包含多个Flash单元,分别对应各个Flash通道,每个ROW内Flash的一定量的数据组成一个软件内部管理数据的单位。Flash通道是Flash控制器与Flash单元进行交互的通道。Flash控制芯片以Flash通道为单位对Flash单元进行管理控制,每条Flash通道上包括多个Flash单元,分别对应各个ROW。
图2示出了本实施例提供的利用SSD盘实现独立磁盘冗余阵列的示意图,如图2所示,本实施例中根据SSD盘内Flash通道划分存储区域,并在各个Flash通道内分别构建RAID。每个Flash通道内各个ROW对应的Flash单元作为存储区域中的子区域。其中,根据各个Flash通道构建的RAID的级别,设置不同数目的用于存储冗余数据的Flash单元,这些用于存储冗余数据的Flash单元可以在Flash通道内原有的Flash单元中选择,也可以另外增加几个Flash单元在相应的Flash通道中。图2中特别地,以额外增加Flash单元作为Flash通道中存储冗余数据的Flash单元为例,用户可以根据需要在不同的Flash通道中构建不同级别的RAID,例如,如图2所示,在FC 0内,设置两个存储冗余数据的Flash单元,而其他的Flash通道中设置一个存储冗余数据的Flash单元。
下面以其中一个Flash通道为例说明上述SSD盘内读写和数据恢复的过程。图3示出了一个Flash通道中内数据读写的示意图,图3中以Flash通道FC0为例,在每个FC内部的某个Flash单元读写操作时,根据RAID的级别,利用RAID运算得到包含校验值的冗余数据,将所述冗余数据存入该FC内部的用于存储冗余数据的Flash单元中(图中记为Flash0)。图4示出了一个Flash通道内恢复数据的示意图,当SSD盘内一个Flash单元发生数据失效现象,或者读取数据发生了不可纠正的ECC(Error Checking and Correcting,错误检查和纠正)时,此时可以利用FC0中余下的Flash单元中的数据以及用于存储冗余数据的Flash单元中的冗余数据,进行相应的RAID运算,恢复失效Flash数据,达到容错恢复和高可靠性的存储系统的应用目的。
本发明实施例的各个单元可以集成于一体,也可以分离部署。上述单元可以合并为一个单元,也可以进一步拆分成多个子单元。
根据本实施例,能够在降低RAID系统成本的前提下,保证数据的可靠性。
实施例二
图5示出了本实施例提供的利用SSD盘实现独立磁盘冗余阵列的示意图,如图5所示,本实施例中根据SSD盘中的ROW划分存储区域,并在各个ROW内分别构建RAID。每个ROW内的各个Flash通道对应的Flash单元作为存储区域的子区域。其中,根据各个ROW构建的RAID的级别,设置不同数目的用于存储冗余数据的Flash单元,这些用于存储冗余数据的Flash单元可以在ROW内原有的Flash单元中进行选择,也可以另外增加一个Flash单元在相应的ROW内。图5特别地,以额外增加Flash单元作为ROW内存储冗余数据的Flash单元为例,用户可以根据需要在不同的ROW内构建不同级别的RAID,如图5所示,在ROW0内设置一个用于存储冗余数据的Flash单元,而其他的ROW内设置两个用于存储冗余数据的Flash单元。
下面以其中一个ROW为例说明上述SSD盘内读写和数据恢复的过程。图6示出了一个ROW内数据读写的示意图,图6中ROW0为例,在每个ROW内部的某个Flash单元读写操作时,根据RAID的级别,利用RAID运算得到包含校验值的冗余数据,将所述冗余数据存入该ROW内部的用于存储冗余数据的Flash单元中。图7示出了一个ROW内恢复数据的示意图,当SSD盘内一个Flash单元发生数据失效现象,或者读取数据发生了不可纠正的ECC(Error Checking and Correcting,错误检查和纠正)时,此时可以利用FC0中余下的Flash单元中的数据以及用于存储冗余数据的Flash单元中的冗余数据,进行相应的RAID运算,恢复失效Flash数据,达到容错恢复和高可靠性的存储系统的应用目的。
本发明实施例的各个单元可以集成于一体,也可以分离部署。上述单元可以合并为一个单元,也可以进一步拆分成多个子单元。
根据本实施例,能够在降低RAID系统成本的前提下,保证数据的可靠性。
需要说明的是,上述两个实施例中,子区域都分别对应Flash单元,本领域技术人员应该能够理解,子区域也可以是一个Flash单元中的块(Sector)。
实施例三
本实施例与前几个实施例的区别在于:不采用SSD盘内原有的组织结构进行划分存储区域,而是以任意存储单元的集合为单位进行划分存储区域,并在该存储区域上构建RAID。在实施例中划分的存储区域是一个逻辑结构,每个存储区域中可以包括不同的ROW或者不同的FC中的部分,也可以包括不同Flash单元内的部分,对每个划定的存储区域可以各自构建RAID,由此可见本实施例提供的方案在实现RAID方面更加灵活。实际当中可以通过软件对上述存储区域进行划分。本实施例中数据读写和数据恢复的过程与实施例一中和实施例二中的相应方法类似,这里不再赘述。
本发明实施例的各个单元可以集成于一体,也可以分离部署。上述单元可以合并为一个单元,也可以进一步拆分成多个子单元。
实施例四
本实施例四提供一种电子设备,如图8所示,该电子设备800包括固态硬盘801和中央处理器CPU802,固态硬盘801与中央处理器CPU802相连接,固态硬盘801用于存储数据,中央处理器CPU802用于对固态硬盘801中存储的数据进行处理。
其中固态硬盘801中包括:多个存储区域,每个存储区域中包括多个子区域,每个存储区域分别构建成独立磁盘冗余阵列,其中,所述每个存储区域的子区域中包括:根据该存储区域构建的独立磁盘冗余阵列的级别和预先设定的参数,确定的用于存储冗余数据的子区域。
在实际应用中,本实施例中的电子设备的类型可以包括:计算机、或服务器、或路由器、或交换机、或基站、或基站控制器、或数字用户线路接入复用器、或归属位置寄存器、或手机、或个人数码助理、或机顶盒。
本实施例提供的电子设备中在不增加额外的SSD盘的情况下,本发明实施例提供的方法在SSD盘内部实现了RAID,节约了成本,而且可以通过预先设定的参数和RAID的级别灵活选择用于存储冗余数据的子区域,所以不会如现有技术中对固定SSD盘内部同一部分的过多擦写,从而提高数据的可靠性。进一步地,由于各个存储区域中构建RAID相对独立,使得用户可以根据需求选择在不同的存储区域构建级别的RAID容错备份方案,所以灵活性也很大。
综上所述,通过本发明实施例能够降低构建RAID系统成本的前提下,保证数据的可靠性。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。