磁盘冗余阵列设备的自动重建方法

文档序号:6512775阅读:417来源:国知局
专利名称:磁盘冗余阵列设备的自动重建方法
技术领域
本发明涉及一种自动重建方法,特别是关于一种基于硬盘位置的磁盘冗余阵列的自动重建方法。
背景技术
磁盘冗余阵列(Redundant Arrays of Inexpensive Disks;RAID,以下仅以RAID代替)设备,使用若干硬盘,组成一个单独的储存设备,提供更大的容量、更快的存取速度或数据冗余功能。这些硬盘称为这个RAID设备的成员(Member)硬盘。根据其数据组织方式的不同,分为Linear、RAID-0、RAID-1、RAID-5等。其中RAID-1和RAID-5提供了数据冗余功能。
如图1所示,是RAID设备的状态和重建操作。数据冗余功能是指,当RAID设备的一个或多个成员损坏时,这个RAID设备上的数据仍然保持完好无损。这时的RAID设备进入降级(Degraded)状态,应该尽早对其进行重建(Rebuild)工作。重建工作,就是使用一个新的硬盘,取代原来坏掉的硬盘,使RAID设备恢复到正常(Normal)状态。
当前市场上使用RAID设备的各种产品,包括NAS(Network-attachedStorage)、SAN(Storage Area Network)等储存服务器,以及其它产品。
而这些产品的自动重建(Auto-Rebuild)功能,是依靠热备援(HotSpare)功能实现。如图2所示,热备援是在指RAID设备中,包含的若干个特殊的硬盘,这些硬盘不是RAID设备的成员硬盘,所以不用于储存用户数据,而是在RAID设备降级时,自动顶替坏掉的成员硬盘,重建RAID设备。而这块热备援,就变成了RAID设备的成员硬盘。这种自动重建的缺点是,要占用多余的硬盘。

发明内容
鉴于以上的问题,本发明的主要目的在于提供一种RAID设备的自动重建方法,当一个RAID设备降级的时候,没有现成的热备援,就需要用新硬盘重建RAID设备,我们可以依据硬盘的位置信息,实现这种情况下的自动重建;即,只要有新硬盘插在正确的位置上,系统就自动地对RAID设备进行重建操作。这一功能在支持硬盘“热插拔”(Hot-swap)的系统上尤其有用。
为达上述目的,本发明提出一种RAID设备的自动重建方法,此RAID设备包含多个成员硬盘并应用于储存设备上,且此储存设备还包含多个硬盘位置来设置硬盘,其步骤包含首先,读取储存设备的配置信息,而储存位置的配置信息包括了可用于自动重建的硬盘位置;再去查询储存设备的状态信息;然后,根据储存设备的状态信息,刷新储存设备的配置信息;最后,根据储存设备的配置信息,当RAID设备具有降级的成员硬盘时,从可用于自动重建的硬盘位置除来加入一个新硬盘,而重建RAID设备。
有关本发明的特征与实作,现配合图示作最佳实施例详细说明如下。


图1为先前技术的RAID设备的状态和重建操作的示意图;图2为先前技术的基于热备用的自动重建的示意图;图3是本发明的RAID设备的自动重建方法的流程图;图4是本发明中IDE总线位置示意图;图5是本发明的储存设备状态信息查询程序的流程图;图6是本发明的自动重建程序的流程图;图7是本发明的具备流程控制的自动重建方法的流程图;图8是本发明的实施例的支持自动重建功能的NAS服务器;图9是本发明的实施例的第一种选择的示意图;及图10是本发明的实施例的第二种选择的示意图。
其中,附图标记说明如下步骤100读取储存设备的配置信息(存储设备配置信息查询程序)步骤200查询储存设备的状态信息(存储设备状态信息查询程序)步骤210获取所有硬盘的位置信息(硬盘位置信息查询程序)步骤211获取硬盘列表(硬盘列表查询程序)
步骤212根据硬盘的类型,分别获取其位置信息(硬盘位置信息取得程序)步骤220查询RAID设备的状态信息(RAID设备状态信息查询程序)步骤300刷新储存设备的配置信息(储存设备配置信息刷新程序)步骤400根据储存设备的配置信息,在RAID设备降级时,自硬盘位置处加入新硬盘,重建RAID设备(自动重建程序)步骤410确认RAID设备的成员硬盘是否降级步骤420确认是否有可用于自动重建的新硬盘步骤430重建降级的RAID设备的成员硬盘步骤500控制自动重建过程的操作频率(流程控制程序)具体实施方式
请参照图3所示,本发明所提供的RAID(磁盘冗余阵列)设备的自动重建方法,是应用于使用RAID技术的储存设备,如NAS、SAN等储存服务器,或其它产品上,其步骤包含(A)储存设备配置信息查询程序(步骤100)首先,读取储存设备的配置信息;(B)储存设备状态信息查询程序(步骤200)接着,查询储存设备的状态信息,其中主要包括RAID设备的状态和所有硬盘的位置信息;(C)储存设备配置信息刷新程序(步骤300)根据状态信息,刷新储存设备的配置信息(Configuration);以及(D)自动重建程序(步骤400)根据配置信息,将储存设备的硬盘位置上的新硬盘加入为RAID设备的成员硬盘,而重建RAID设备。
以下即对于本发明如何实现基于硬盘位置的RAID设备的自动重建作一详细说明。
(A)储存设备配置信息查询程序(步骤100)这个程序(步骤100)用于读取储存设备的配置信息。最重要的配置信息是RAID设备的配置信息,尤其是可以用于自动重建的硬盘位置列表。当然,也可以包括其它类型的配置信息。
请参照图4,对IDE硬盘,其位置可以用IDE总线位置记录。IDE总线可以有多个通道(Channel),最常用的个人计算机(PC)的IDE总线一般有2个通道,称为主通道(Primary)和从通道(Secondary)。而使用IDE硬盘的储存服务器,如NAS和SAN,IDE总线可以有多于2个的通道。每个IDE通道可以连接2块IDE硬盘,分别称为主盘和从盘。这样,有几个IDE通道,就可以有双倍的IDE硬盘个数。知道了IDE硬盘的通道号,以及它的主/从属性,也就知道了IDE硬盘的总线位置。
对SCSI硬盘,其位置可以用SCSI总线位置记录。SCSI总线位置信息是一个4-D(Dimensional,维度)的坐标(主机(Host),通道(Channel),Id,Lun)。
主机(Host)对应于SCSI硬盘所连接的SCSI控制器(SCSI Adapter),即SCSI卡或SCSI控制芯片。每个SCSI控制器都有自己的名字,一般是其厂商的名字,如BusLogic,或其型号,如AAR81XX。每个SCSI控制器在LINUX系统中有一个属于自己的数字编号。这个编号并不固定,是LINUX系统依据启动顺序对各个SCSI控制器从0开始依次安排的。
Channel是通道,每个SCSI控制器可以有若干通道。每个通道有一个属于自己的数字编号。
Id是设备编号,每个通道上可以连接若干设备,当然也可以是硬盘。每个设备有一个属于自己的数字编号。
Lun(Logical Unit Number)是逻辑单元编号,每个SCSI设备可以有若干逻辑单元,实现子设备的功能。每个逻辑单元有一个属于自己的数字编号。
举例而言,(BusLogic,0,0,0)就是一个SCSI硬盘的位置,表示这个硬盘的SCSI控制器是BusLogic,通道号为0,设备号为0,逻辑单元编号为0。
例如下面的配置信息,就记录了一个RAID设备的可用于自动重建的硬盘位置信息列表。
<RAID1>
<AutoRebuild Type=”IDE”Position=”Channel2,Master”>
<AutoRebuild Type=”IDE”Position=”Channel3,Master”>
<AutoRebuild Type=”SCSI”Position=”BusLogic,0,2,0”>
<AutoRebuild Type=”SCSI”Position=”BusLogic,0,3,0”>
</RAID1>
其中记录了4个可以用于自动重建的硬盘的位置信息的列表。表示有2块IDE硬盘和2块SCSI硬盘可以用于RAID设备的重建操作。它们的位置信息被记录在各自的位置(Position)变量之中。
(B)储存设备状态信息查询程序(步骤200)储存设备的状态信息,主要包括RAID设备的状态,和所有硬盘的位置信息。
如图5所示,储存设备状态信息查询程序(步骤200)包含硬盘位置信息查询程序(步骤210)与RAID设备状态信息查询程序(步骤220),而硬盘位置信息查询程序(步骤210)包含有硬盘列表查询程序(步骤211)以及硬盘位置信息取得程序(步骤212)。
其中,要获取所有硬盘的位置信息(步骤210),首先要获取系统中的所有硬盘设备的列表(步骤211),然后根据每块硬盘的类型,分别获取其位置信息(步骤212)。
硬盘列表查询程序(步骤211)负责获取系统中的所有硬盘设备的列表,在LINUX下,读取/proc/partitions文件即可获得所有硬盘的设备名,如“hde”、“sda”等等。
硬盘位置信息取得程序(步骤212),需要根据硬盘的类型分别做处理。在LINUX下,对IDE硬盘,其设备名以“hd”开头。其设备名的后半部分与其总线位置一一对应第一个通道的主盘(Master),对应设备名为hda;第一个通道的从盘(Slave),对应设备名为hdb;第二个通道的主盘(Master),对应设备名为hdc;第二个通道的从盘(Slave),对应设备名为hdd;第三个通道的主盘(Master),对应设备名为hde;第三个通道的从盘(Slave),对应设备名为hdf;第四个通道的主盘(Master),对应设备名为hdg;第四个通道的从盘(Slave),对应设备名为hdh;……所以,知道了IDE硬盘的设备名,也就知道了IDE硬盘的位置。而对SCSI硬盘,在LINUX下有专门的系统API(Application ProgrammingInterface)用于获取其位置信息,调用ioctl的SCSI_IOCTL_GET_IDLUN功能即可。但此时获取的是数字的4-D坐标,如果要获取主机(Host)的名称,还要读取/proc/scsi/下的目录结构信息,做匹配即可。
RAID设备状态信息查询程序(步骤220),用于查询RAID设备的状态信息。尤其要查询RAID设备是否降级,以及RAID设备当前的成员硬盘列表。在LINUX下,读取/proc/mdstat文件即可。
(C)储存设备配置信息刷新程序(步骤300)储存设备配置信息刷新程序(步骤300)的用途是,根据刚才所获取的储存设备的状态信息,刷新储存设备的配置信息,尤其是要根据RAID设备的状态信息刷新RAID设备的成员硬盘列表。这样可以在下一次系统重新启动时,为启动RAID设备提供参考。
(D)自动重建程序(步骤400)如图6所示,这是最核心的功能,首先确认RAID设备的成员硬盘是否降级?(步骤410),再确认是否有可用于自动重建的硬盘?(步骤420),并基于前面已经做完的充分的准备操作,确定哪些硬盘位置上的硬盘可用于重建RAID设备,并使用这些硬盘重建降级的RAID设备的成员硬盘。(步骤430)由于这个新硬盘开始时不是RAID设备的热备援,不包含在RAID设备中,所以减少了RAID设备占用的硬盘个数。这块硬盘在未被占用时,可以用来创建其它的RAID设备。
而重建操作要使用RAID工具的指定接口。在LINUX下,对软件实现的RAID设备,使用raid-tools中的raidhotadd命令即可。
此外,如图7所示,本发明所提供的RAID设备的自动重建方法更可包含一流程控制程序(步骤500),用于控制系统进行RAID操作的频率。根据需求,可以进行如下三种流程控制1.控制操作次数可以是任意次,甚至无穷多次。如果是无穷多次,这个进程最好放在系统后台运行。
2.控制两次操作之间的时间间隔;比如1秒或5秒,以减轻系统的负担。
3.检验是否要退出操作如果在需求中考虑到了用户要求系统停止运行,或者系统关机的情况,就要判断这些事件是否发生,以决定是否停止操作。
而且,本发明还由一实施例来对于本发明的实施方式协助说明。
首先,如图8所示,假设有一台支持我们的自动重建功能的NAS(Network-attached Storage)服务器,它提供了4个硬盘插槽,而且这些硬盘插槽的总线位置都是固定的,都支持热插拔。如图,对四个插槽上的硬盘,我们从左至右分别命名其为HDD1、HDD2、HDD3、HDD4。
假设开始时HDD1和HDD2中插有硬盘,HDD3和HDD4为空。通过NAS的操作接口,使用硬盘HDD1和HDD2创建一个RAID-1设备,我们将这个RAID设备命名为MD1。在创建MD1时,我们指定HDD1、HDD2和HDD3可以用作MD1的自动重建。我们指定其使用基于硬盘位置的自动重建,而不是使用热备援,因为此时插槽HDD3上甚至没有硬盘。
再假设在使用了一段时间之后,硬盘HDD2损坏,就会导致MD1降级,其成员硬盘只剩下HDD1。这时,我们有2种选择,可以重建这个RAID设备,使其恢复完整。
第一种选择是,如图9所示,拔掉HDD2中已经坏掉的硬盘,将一个新硬盘插进HDD2。操作完成!此时的MD1仍由HDD1和HDD2组成。
第二种选择是,如图10所示,直接将一个新硬盘插进HDD3。操作完成!此时MD1由HDD1和HDD3组成。
此外还有一种方式,那就是在降级之前就在HDD3中插入空硬盘。那么,在降级时的自动重建操作会自动进行,其效果相当于使用热备援。
综合上述,本发明所提供的RAID(磁盘冗余阵列)设备的自动重建方法,具有下列优点1、对支持硬盘热插拔的系统,可以完善系统功能。
2、操作简单,容易掌握。因为这种重建操作基于硬盘的位置,用户只要将硬盘插对位置即可完成操作。
3、不依赖热备援,所以平时不占用多余的硬盘。
虽然本发明以前述的较佳实施例揭露如上,但是其并非用以限定本发明,任何本技术领域的普通技术人员,在不脱离本发明的精神和范围内,所作出的等效结构变化,均包含在本发明的专利范围内。
权利要求
1.一种RAID设备的自动重建方法,该RAID设备包含多个成员硬盘并应用于一储存设备上,该储存设备还包含多个硬盘位置以设置多个硬盘,其特征在于,包括如下步骤读取该储存设备的配置信息,且该储存设备的配置信息包含一可用于自动重建的硬盘位置;查询该储存设备的状态信息;根据该储存设备的状态信息,刷新该储存设备的配置信息;及根据该储存设备的配置信息,在该RAID设备的该些成员硬盘中具有一降级的成员硬盘时,自该可用于自动重建的硬盘位置处加入一新硬盘,以重建该RAID设备。
2.如权利要求1所述的RAID设备的自动重建方法,其特征在于,该储存设备的状态信息包括该RAID设备的状态与该RAID设备的该些成员硬盘与该储存设备的该些硬盘的位置信息。
3.如权利要求1所述的RAID设备的自动重建方法,其特征在于,该查询储存设备的状态信息的步骤,包含下列步骤获取该RAID设备的该些成员硬盘与该储存设备的该些硬盘的位置信息;及查询该RAID设备的状态信息。
4.如权利要求3所述的RAID设备的自动重建方法,其特征在于,该获取该RAID设备的该些成员硬盘与该储存设备的该些硬盘的位置信息的步骤,包含下列步骤获取该RAID设备的该些成员硬盘与该储存设备的该些硬盘的列表;及根据该些成员硬盘与该些硬盘的类型,分别获取其位置信息。
5.如权利要求3所述的RAID设备的自动重建方法,其特征在于,该RAID设备的状态信息包含用于判断该RAID设备的该些成员硬盘是否降级的信息与该RAID设备的该些成员硬盘的列表。
6.如权利要求1所述的RAID设备的自动重建方法,其特征在于,该重建该RAID设备的步骤,包含下列步骤确认该RAID设备的该些成员硬盘是否降级;确认是否有可用于自动重建的该新硬盘;及重建降级的该RAID设备的成员硬盘。
7.如权利要求1所述的RAID设备的自动重建方法,其特征在于,还包括一控制该RAID设备的自动重建过程的操作频率的步骤。
全文摘要
一种RAID设备的自动重建方法,该RAID设备包含多个成员硬盘并应用于一储存设备上,该储存设备还包含多个硬盘位置以设置多个硬盘,该方法包括如下步骤读取该储存设备的配置信息,且该储存设备的配置信息包含一可用于自动重建的硬盘位置;查询该储存设备的状态信息;根据该储存设备的状态信息,刷新该储存设备的配置信息;及根据该储存设备的配置信息,在该RAID设备的该些成员硬盘中具有一降级的成员硬盘时,自该可用于自动重建的硬盘位置处加入一新硬盘,以重建该RAID设备。故在RAID设备降级时,只要在正确的位置上插上新的硬盘,即可自动地对RAID设备进行重建操作,平时并不会占用到多余的硬盘,从而避免硬件资源的浪费。
文档编号G06F3/06GK1808365SQ20051000456
公开日2006年7月26日 申请日期2005年1月17日 优先权日2005年1月17日
发明者刘文涵, 宋建福, 李东海 申请人:英业达股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1