一种存储阵列系统及其数据操作方法

文档序号:6573880阅读:233来源:国知局
专利名称:一种存储阵列系统及其数据操作方法
技术领域
本发明涉及数据存储技术,更具体地说,涉及一种存储阵列系统及其数据操作方法。
背景技术
独立冗余磁盘阵列(RAID)是一种由多块独立硬盘(物理硬盘)按特定方式组合而成的存储设备,因其存储空间远大于单块硬盘,所以常常应用于海量数据的存储。随着研究的不断深入,技术人员已开发出多个RAID级别,在提供海量存储空间的同时,还在数据读写速度和数据存储安全性等方面作出了大量改进。目前常用的RAID级别有RAID0、RAID1、RAID3和RAID5。通过RAID技术,我们可以1、通过把多个硬盘组织成一个逻辑卷,来提供硬盘跨越功能;2、通过把数据分块(Block),并行读写,来提高访问速度;3、通过提供镜像或校验,来实现容错功能。
实现RAID级别的关键部件是存储控制器,它负责管理系统中的所有硬盘,使这些硬盘按照指定的方式读写数据。因此,存储控制器的效率和可靠性直接关系到整个RAID系统的性能。现有技术多采用双存储控制器方案来提高RAID系统的可靠性。
图1是目前常见的双控制器RAID系统的结构示意图。如图1所示,该系统包括一个硬盘组和主、备两个存储控制器。这两个存储控制器均可提供外部访问通道,但在正常情况下只有主控制器响应外部访问请求。备用控制器通过镜像通道与主控制器相连,用于在主控制器出现异常时接管对系统的控制。尽管可提供备份功能,但这种系统的缺陷也十分明显,即当外部访问量较大时,存储控制器的效率将成为性能瓶颈,无法依靠扩展存储控制器数量的方式来提高系统性能。
在一些高端应用中,还可以使用分布式存储控制器来管理RAID系统中各硬盘的操作。
图2是现有技术使用分布式存储控制器的RAID系统的结构示意图。如图2所示,该系统包括存储控制器和硬盘组。其中,存储控制器包含接收外部访问请求的主机接口、高速缓存、硬盘接口。通过添加快速读写设备如高速缓存,存储控制器的效率得以提高,但同时成本也随之大幅增加,因此,分布式存储控制器RAID是一种高端存储设备,架构复杂,成本高。此外,受高速缓存接口的限制,主机接口和硬盘接口控制器的数量有限。
RAID系统的另一重要部件是硬盘组。目前应用的RAID技术多采用数据分块技术(striping)来提高读写速度,该技术将数据同时平均分为多个数据块,然后按顺序同时写入多个硬盘,以提高存储效率。由于数据块大小均一样,因此要求硬盘组中各个硬盘具有相同大小的存储空间,若大小不一致,则整个硬盘组的空间大小只能按最小硬盘的容量与硬盘个数的乘积来计算,这样就会造成存储空间的浪费。例如,一个由1块160G、1块120G,2块80G硬盘组成的硬盘组,整个存储空间的大小只能按80G*4=320G来计算,这样一来就造成(160G-80G)+(120G-80G)=120G的存储空间被浪费。
因此,现有技术无法通过低成本的扩充存储控制器来提高系统性能,也无法在硬盘组中各硬盘空间大小不一样时充分利用存储空间。

发明内容
本发明要解决的技术问题在于,针对现有技术无法通过低成本扩充存储控制器来提高系统性能以及无法充分利用存储空间大小不一的硬盘组的缺陷,提供一种存储阵列系统以及应用于该系统的数据操作方法。
一种存储阵列系统,包括逻辑RAID控制器和与所述逻辑RAID控制器相连的至少两个存储控制器,每个存储控制器连接有至少一个物理存储单元,每个物理存储单元包含至少一个逻辑存储单元;所述逻辑RAID控制器通过控制至少两个存储控制器,将分属这至少两个存储控制器所连接的物理存储单元的至少两个逻辑存储单元组成逻辑存储阵列。
一种存储阵列系统中的数据操作方法,包括如下步骤S1、逻辑RAID控制器接收数据操作命令,确定需要操作的逻辑存储阵列以及与该逻辑存储阵列相关联的存储控制器;S2、所述逻辑RAID控制器控制上述存储控制器对该逻辑存储阵列所含逻辑存储单元对应的物理存储单元进行所述数据操作命令指示的操作。
本发明技术方案通过逻辑RAID控制器来控制存储控制器,使用逻辑存储单元来构建逻辑存储阵列,可通过扩充存储控制器的数量来提高系统性能,并可随意设定逻辑存储单元的大小及每个逻辑存储阵列中逻辑存储单元的数量,以此来充分利用每块硬盘的存储空间,且构建方式灵活。


下面将结合附图及实施例对本发明作进一步说明,附图中图1是目前常见的双控制器RAID系统的结构示意图;图2是现有技术使用分布式存储控制器的RAID系统的结构示意图;图3是本发明存储阵列系统一实施例的物理结构示意图;图4是本发明存储阵列系统一实施例的逻辑结构示意图;图5是本发明存储阵列系统一实施例数据操作过程的流程图;图6是图4存储阵列系统中部分数据的存储情况示意图;图7是图6存储阵列系统中数据恢复过程的示意图;图8是图4中存储阵列系统新增SCU和对应物理存储单元后的物理结构示意图;图9是图4中存储阵列系统新增SCU和对应物理存储单元后数据的存储情况示意图。
具体实施例方式
图3是本发明存储阵列系统一实施例的物理结构示意图。如图3所示,本发明介绍的存储阵列系统包括逻辑RAID控制器,和通过业务通道与逻辑RAID控制器相连的多个存储控制器(SCU)。每个SCU都连接有硬盘组,每个硬盘组包括至少一块硬盘(物理存储单元)。逻辑RAID控制器可由软件或者硬件实现,既可以安装在存储阵列系统的机框中,也可以安装在与存储阵列系统相连的访问服务器上。同时,各个SCU既可安装在同一机框中,也可在需提高容灾性时分散安装于不同位置,然后通过网络如IP网络与连接逻辑RAID控制器的业务通道相连。每个SCU只能访问其所连接的硬盘组,不能直接访问其他存储控制器所连接的硬盘组。每个SCU及其所连接的硬盘组单独构成RAID,该RAID可配置成任意RAID级别。除此之外,每个SCU所连接的硬盘组还可以按照JBOD(简单磁盘捆绑)方式提供存储空间。
本发明的技术方案将每个SCU下的每块硬盘划分为至少一个逻辑存储单元(LUN)。在逻辑RAID控制器和相关联SCU的控制下,分属不同SCU所连接的硬盘的、具有相同大小存储空间的多个逻辑存储单元在逻辑上组成逻辑RAID(逻辑存储阵列),该逻辑RAID可配置成任意RAID级别。以图4为例,存储阵列系统包括4个SCU(SCU1-SCU4),SCU1下连接硬盘1和硬盘2,SCU2下连接硬盘3和硬盘4,SCU3下连接硬盘5和硬盘6,SCU4下连接硬盘7和硬盘8。硬盘1划分为4个逻辑存储单元(LUN1-LUN4),硬盘2划分为1个逻辑存储单元(LUN5),硬盘3划分为4个逻辑存储单元(LUN1-LUN4),硬盘4划分为1个逻辑存储单元(LUN5),硬盘5划分为2个逻辑存储单元(LUN1-LUN2),硬盘6划分为2个逻辑存储单元(LUN3-LUN4),硬盘7划分为2个逻辑存储单元(LUN1-LUN2),硬盘8划分为2个逻辑存储单元(LUN3-LUN4)。在构建逻辑RAID时,硬盘1、3、5、7的LUN1具有相同大小的存储空间,它们构成逻辑RAID R1,硬盘1、3、5、7的LUN2具有相同大小的存储空间,它们构成逻辑RAID R2,硬盘1、3、6的LUN4具有相同大小的存储空间,它们构成逻辑RAID R3,硬盘3、6、8的LUN3具有相同大小的存储空间,它们构成逻辑RAID R4,硬盘1的LUN3、硬盘2的LUN5、硬盘4的LUN5和硬盘8的LUN4具有相同大小的存储空间,它们构成逻辑RAID R5。根据实际需要,逻辑RAID R1、R2、R3、R4和R5可配置成任意RAID级别。
从结构上看,本发明介绍的存储阵列系统的基本存储单位是逻辑存储单元,而非现有技术中的硬盘,逻辑存储单元的大小可根据具体需要随意设定,且系统中每个逻辑RAID无需覆盖所有硬盘组,只要保证同一逻辑RAID中逻辑存储单元的大小一致即可。这样方式的好处在于,在使用不同大小的硬盘构建存储阵列系统时,大硬盘多出的存储空间可单独划分逻辑存储单元,构建逻辑RAID,因此,磁盘浪费的数量更小。
下面便结合图5对本发明存储阵列系统的数据操作过程进行描述。
图5是本发明存储阵列系统一实施例数据操作过程的流程图。如图5所示,在步骤500,逻辑RAID控制器收到外部访问请求,即数据操作命令,其中包括对应数据的存储位置、数据名和操作的类型。数据的存储位置是指数据的逻辑存储位置,例如特定目录下的特定数据,操作类型可以是读操作、写操作、数据恢复操作,或者数据迁移操作等;随后,在步骤502,逻辑RAID控制器使用数据存储位置查询第一映射表,确定需要操作的逻辑RAID。第一映射表包括数据存储位置字段、逻辑RAID名字段和存储控制器名字段,其结构如下

表1通过查找第一映射表,逻辑RAID控制器可确定需要操作的逻辑RAID以及与该逻辑RAID相关联的存储控制器;在步骤504,逻辑RAID控制器使用需操作逻辑RAID的名称查询第二映射表,确定需操作逻辑RAID的RAID级别。第二映射表包括逻辑RAID名字段和RAID级别字段,其结构如下

表2在确定了需要操作的逻辑RAID的RAID级别后,在步骤506,逻辑RAID控制器向与该逻辑RAID相关联的SCU发出数据操作子命令,其中包括需操作逻辑RAID的名称和数据操作命令中的数据名和数据操作类型;在步骤508,相关联SCU收到该数据操作子命令后,使用需操作逻辑RAID的名称查询第三映射表,确定需操作逻辑RAID所在的逻辑存储单元。第三映射表包括逻辑RAID名字段和逻辑存储单元名字段,其结构如下

表3在确定需操作逻辑RAID所在的逻辑存储单元后,在步骤510,SCU查询该逻辑存储单元对应的第四映射表,确定上述数据名对应数据的物理地址。SCU中存储有与其所连接硬盘组中各个逻辑存储单元对应的多个第四映射表,该表包括数据名字段和物理地址字段,其结构如下

表4在确定上述数据名对应数据的物理地址后,在步骤512,SCU根据需操作逻辑RAID的RAID级别,对对应数据进行数据操作类型指示的操作。
图6是图4存储阵列系统中部分数据的存储情况示意图。在图6中,逻辑RAID R1由硬盘1、3、5、7的LUN1组成,其RAID级别设置为RAID5。R1中存有4份数据Data1、Data2、Data3、Data4。在存储Data1过程中,逻辑RAID控制器将其分为3个数据块A1、B1、C1,分发给SCU1~SCU3,存储到对应的LUN1中。在存储各自数据的同时,SCU1~SCU3将所存储的数据发给SCU4,生成校验数据P1,存储于SCU4对应的LUN1中。Data2、Data3、Data4的存储过程与Data1类似,区别仅在于需要按照RAID5的要求将生成的校验数据轮流保留在不同的逻辑存储单元中。因此,为Data2生成的校验数据P2保存在SCU3对应的LUN1中;为Data3生成的校验数据P3保存在SCU2对应的LUN1中;为Data4生成的校验数据P4保存在SCU1对应的LUN1中。
图7是图6存储阵列系统中数据恢复过程的示意图。当与SCU1相关联的LUN1发生故障导致数据丢失时,存储阵列系统进入降级模式。当故障修复后,逻辑RAID控制器发出数据恢复指令,使用SCU2~SCU4中的数据恢复SCU1所连LUN1中的数据。例如,在恢复数据块A1时,SCU2~SCU4将存储的数据块B1、C1和校验数据P1发往SCU1,SCU1使用这些数据重新生成A1,并将其存储在其LUN1中。数据块A2、A3的恢复过程与A1相同。在恢复数据P4时,SCU1只需对SCU2~SCU4发来的数据块B4、C4和A4重新计算生成校验数据P4即可,然后将其存储于自己的LUN1中。
图8是图4中存储阵列系统新增SCU和对应物理存储单元后的物理结构示意图。如图8所示,该存储阵列系统在图4中原有存储阵列系统基础上新增SCU5和硬盘9,该硬盘9划分为两个逻辑存储单元LUN1和LUN2,其存储空间大小分别与原有逻辑RAID R1和R2中逻辑存储单元大小相同,并合并入逻辑RAID R1和R2中。下面结合图9,以逻辑RAID R1为例,说明新增SCU5和硬盘9之后的数据迁移过程。原有逻辑RAID R1中各LUN中的数据存储情况请参见图6。
图9是图4中存储阵列系统新增SCU和对应物理存储单元后数据的存储情况示意图。在新增SCU5和硬盘9之后,除了需要对相关映射表(如第一映射表、第三映射表和第四映射表)作出相应改变外,原来存储于SCU1~SCU4对应LUN1中的数据也要重新分配。以下仅对数据重新分配过程进行描述。在新增SCU5和硬盘9之后,逻辑RAID控制器发出数据迁移指令,重新读取SCU1~SCU3中的数据块A1、B1和C1之后删除这些数据,将读取的数据块合并后生成Data1,删除SCU4中的校验数据P1。随后,逻辑RAID控制器将Data1重新分成4个数据块a1、b1、c1和d1,存储于SCU1~SCU4对应的LUN1中,并生成校验数据p1,存储于SCU5对应的LUN1中。Data2、Data3、Data4的重新分配过程与Data1类似。由上述数据迁移过程可以看出,本发明存储阵列系统可根据需要方便的增加SCU和硬盘,以提高系统的整体性能。
本发明技术方案通过逻辑RAID控制器来控制存储控制器,使用逻辑存储单元来构建逻辑存储阵列,可通过扩充存储控制器的数量来提高系统性能,并可随意设定逻辑存储单元的大小及每个逻辑存储阵列中逻辑存储单元的数量,以此来充分利用每块硬盘的存储空间,且构建方式灵活。
权利要求
1.一种存储阵列系统,其特征在于,包括逻辑RAID控制器和与所述逻辑RAID控制器相连的至少两个存储控制器,每个存储控制器连接有至少一个物理存储单元,每个物理存储单元包含至少一个逻辑存储单元;所述逻辑RAID控制器通过控制至少两个存储控制器,将分属这至少两个存储控制器所连接的物理存储单元的至少两个逻辑存储单元组成逻辑存储阵列。
2.根据权利要求1所述的存储阵列系统,其特征在于,所述逻辑RAID控制器用于接收数据操作命令,确定需要操作的逻辑存储阵列以及与该逻辑存储阵列相关联的存储控制器,控制所述相关联的存储控制器对与该逻辑存储阵列所含逻辑存储单元对应的物理存储单元进行所述数据操作命令指示的操作。
3.根据权利要求2所述的存储阵列系统,其特征在于,所述数据操作命令包括数据存储位置、数据名和数据操作类型。
4.根据权利要求3所述的存储阵列系统,其特征在于,所述逻辑RAID控制器中存储有第一映射表,其中包括数据存储位置字段和逻辑存储阵列名字段。
5.根据权利要求4所述的存储阵列系统,其特征在于,所述第一映射表还包括存储控制器名字段。
6.根据权利要求5所述的存储阵列系统,其特征在于,所述存储控制器中存储有第三映射表,其中包括逻辑存储阵列名字段和逻辑存储单元名字段。
7.根据权利要求6所述的存储阵列系统,其特征在于,所述存储控制器中存储有与其相连的物理存储单元中每个逻辑存储单元的第四映射表,其中包括数据名字段和物理地址字段。
8.根据权利要求1所述的存储阵列系统,其特征在于,每个逻辑存储阵列所包含的逻辑存储单元具有相同大小的存储空间。
9.根据权利要求1所述的存储阵列系统,其特征在于,每个存储控制器与其所连接的物理存储单元组成RAID,或者以JBOD方式存储数据。
10.根据权利要求1所述的存储阵列系统,其特征在于,每个存储控制器通过业务通道与所述逻辑RAID控制器相连。
11.根据权利要求10所述的存储阵列系统,其特征在于,每个存储控制器通过网络与所述业务通道相连。
12.一种存储阵列系统中的数据操作方法,其特征在于,包括如下步骤S1、逻辑RAID控制器接收数据操作命令,确定需要操作的逻辑存储阵列以及与该逻辑存储阵列相关联的存储控制器;S2、所述逻辑RAID控制器控制上述存储控制器对该逻辑存储阵列所含逻辑存储单元对应的物理存储单元进行所述数据操作命令指示的操作。
13.根据权利要求12所述的方法,其特征在于,所述数据操作命令包括数据存储位置、数据名和数据操作类型。
14.根据权利要求13所述的方法,其特征在于,所述步骤S1包括S11、所述逻辑RAID控制器接收所述数据操作命令,提取其中的数据存储位置;S12、所述逻辑RAID控制器根据所述数据存储位置查找第一映射表,确定所述逻辑存储阵列和所述存储控制器。
15.根据权利要求14所述的方法,其特征在于,所述第一映射表包括数据存储位置字段和逻辑存储阵列名字段。
16.根据权利要求15所述的方法,其特征在于,所述第一映射表包括和存储控制器名字段。
17.根据权利要求16所述的方法,其特征在于,所述步骤S2包括S21、所述逻辑RAID控制器向所述存储控制器发出数据操作子命令,该命令中包括所述逻辑存储阵列的名称和所述数据操作命令中的数据名和数据操作类型;S22、所述存储控制器根据该数据操作子命令查找所述逻辑存储阵列的第三映射表,确定该逻辑存储阵列的逻辑存储单元;S23、所述存储控制器查找上述逻辑存储单元的第四映射表,确定所述数据名对应数据的物理地址,进行所述数据操作类型指示的操作。
18.根据权利要求17所述的方法,其特征在于,所述第三映射表包括逻辑存储阵列名字段和逻辑存储单元名字段。
19.根据权利要求18所述的方法,其特征在于,所述第四映射表包括数据名字段和物理地址字段。
全文摘要
本发明涉及数据存储技术,针对现有存储阵列无法有效节省存储空间和无法低成本扩充等缺陷,提供一种存储阵列系统,包括逻辑RAID控制器和相连的至少两个存储控制器,每个存储控制器连接有至少一个包含至少一个逻辑存储单元的物理存储单元,逻辑RAID控制器控制至少两个存储控制器,将分属这至少两个存储控制器所连接物理存储单元的至少两个逻辑存储单元组成逻辑存储阵列。本发明还提供了一种存储阵列系统中的数据操作方法。本发明用逻辑存储单元构建逻辑存储阵列,可方便的扩充存储控制器的数量,并可充分利用硬盘存储空间,且构建方式灵活。
文档编号G06F3/06GK101055511SQ20071007448
公开日2007年10月17日 申请日期2007年5月16日 优先权日2007年5月16日
发明者胡鹏 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1