一种磁盘阵列设备的配置方法及组装及磁盘插入处理方法
【专利摘要】本发明为一种磁盘阵列设备的配置方法及组装及磁盘插入处理方法;该配置方法通过创建独立磁盘冗余阵列,提取独立磁盘冗余阵列中各磁盘对应的物理端口识别号,最后将各物理端口识别号汇总,生成配置文件;物理端口为SAS扩展器的物理端口或SAS卡的物理端口;在系统重新启动或磁盘盘符发生改变时,利用配置文件实现磁盘冗余阵列的组装;在发生磁盘插入事件时,利用配置文件实现对磁盘的插入处理;采用本发明方法组装磁盘阵列或处理磁盘插入事件的过程仅与外在的物理端口识别号或序号相关,与磁盘盘符或磁盘本身存储的信息无关;不再需要对磁盘本身存储的信息进行处理或配置,大大提高了磁盘阵列设备的工作稳定性。
【专利说明】一种磁盘阵列设备的配置方法及组装及磁盘插入处理方法
【技术领域】
[0001]本发明属于海量存储【技术领域】中的数据处理方法,尤其涉及一种磁盘阵列设备的配置方法及组装及磁盘插入处理方法。
【背景技术】
[0002]独立磁盘冗余阵列(RedundantArray of Independent Disks),简称 RAID,是指多块独立的物理磁盘按不同的方式组合起来所形成的一个逻辑磁盘。
[0003]目前,现有技术普遍按照磁盘盘符信息来组装RAID或按磁盘所保存的信息处理磁盘插入事件;
[0004]按照磁盘盘符的信息来组装RAID或处理磁盘插入事件的具体过程是:
[0005]预先配置含有盘符的RAID配置文件mdadm.conf,其配置文件内容如下:
[0006]DEVICE/dev/sd[deg]
[0007]ARRAY/dev/mdO level=raid5 num-devices=3metadata=0.90spares=lUUID=05f05cb4:22fc604b:515e60f7:3fel4bb5
[0008]其中,sd[deg]表示将系统中的物理磁盘sdd、sde、sdg组装成独立磁盘冗余阵列;
[0009]如上所述,现有技术在处理磁盘组装或插入事件时,都需要读取磁盘的盘符。在磁盘阵列设备中,由于大量使用磁盘,比如单一系统经常使用几十或几百块硬盘。某一数据端口下的磁盘经常发生盘符改变或被更换。如果按含有磁盘盘符的配置信息来组装独立磁盘冗余阵列或处理磁盘插入事件,当独立磁盘冗余阵列中的磁盘因某种原因改变盘符,例如图3中的磁盘由sdg变为sdh,则组装过程中,发现sdg磁盘不存在,导致独立磁盘冗余阵列不能按配置文件的盘符组装或处理磁盘插入事件。
[0010]在组装磁盘阵列设备时,由于找不到配置文件中包含的盘符,因此,不能完成独立磁盘冗余阵列组装。
[0011]在处理插入事件时,不能将插入事件检测到的磁盘自动插入到独立磁盘冗余阵列中,或者强行将属于其它磁盘阵列设备的磁盘盘符插入本磁盘阵列设备中,因而导致系统磁盘错乱。
[0012]因此,在现有技术中,需要操作者判断,此不同盘符代表的磁盘是否可以插入到配置信息中的独立磁盘冗余阵列中,然后手动将其插入。对于操作者不在现场的计算机系统,如嵌入式计算机系统,独立磁盘冗余阵列将永远不能将上述磁盘自动插入,因而存在损坏风险。
[0013]现有技术按磁盘所保存的信息处理磁盘插入事件的具体过程是:
[0014]预先配置含有磁盘编号的独立磁盘冗余阵列的配置文件,常见的配置内容如下:
[0015]VirtualDisk:/*磁盘Al和A2的RAID配置信息起始标记*/SL0T=0/*RAID控制器A所在槽位号*/
[0016]RAID=0/*RAID 级别,例如:RAID0、RAID1 或RAID5*/WRITEP0LICY=write_back/* 写策略,例如:直与或回与等*/[0017]READPOLICY=adaptive_read_ahead/*读策略,例如:预取、不预取或自适应预取
等*/
[0018]10P0LICY=no_CaChed/*读策略/写策略所包含的10策略,使用緩存或不使用cache等氺/
[0019]PD=O, 1/*RAID包含的磁盘编号*/
[0020]如上所述,当操作系统内核检测到磁盘插入事件时,通过检测组成独立磁盘冗余阵列的多个磁盘中是否存在自身所存储的信息与自身磁盘编号所对应的预先配置的独立磁盘冗余阵列的配置信息不符的新磁盘,当检测到上述多个磁盘中存在上述新磁盘时,将与上述自身磁盘编号所对应的预先配置的独立磁盘冗余阵列的配置信息写到上述新磁盘中,使得上述新磁盘成为上述独立磁盘冗余阵列中的一个磁盘。当检测磁盘的指定区域存储的信息与自身硬盘编号所对应的预先配置的独立磁盘冗余阵列的配置信息一致时,则说明插入的磁盘即为之前从插入的磁盘的磁盘编号对应的位置拔出的磁盘,不执行任何操作。这样,就可能导致磁盘阵列设备一直不能将此磁盘插入,而处于损坏的危险中。
[0021]因此,现有技术按磁盘所保存的信息处理磁盘插入事件时,需要检测多个磁盘中是否存在自身所存储的信息与自身磁盘编号所对应的预先配置的独立磁盘冗余阵列的配置信息是否相符。也就是说与磁盘本身存储的信息相关。磁盘本身存储的信息可以决定是否成功处理插入事件。
【发明内容】
[0022]本发明为解决磁盘阵列设备工作稳定性较低的问题,提供了一种磁盘阵列设备的配置方法及组装方法及磁盘插入处理方法;
[0023]本发明的技术方案如下;
[0024]本发明的第一个保护主题是:一种磁盘阵列设备的配置方法;
[0025]所述配置方法首先创建独立磁盘冗余阵列,其次提取所述独立磁盘冗余阵列中各磁盘对应连接的物理端口,获取各所述磁盘对应的物理端口识别号,最后将各所述物理端口识别号汇总,生成配置文件;
[0026]所述物理端口为SAS扩展器的物理端口或SAS卡的物理端口。
[0027]所述配置方法的第一种实施方式为:
[0028]所述物理端口为SAS扩展器的物理端口,即各所述磁盘分别与SAS扩展器的物理端口相连接,各所述SAS扩展器分别与所述SAS卡的物理端口相连接;
[0029]所述配置方法的具体步骤为:
[0030]步骤1,在操作系统中使用RAID工具操作命令,创建独立磁盘冗余阵列;
[0031]RAID 工具为 multiple devices admin,简称为 mdadm ;
[0032]步骤2,获取所述独立磁盘冗余阵列中,各所述磁盘的物理端口识别号SAS PHYID,其过程是:
[0033]步骤2-1,查找操作系统中系统文件夹目录下的内核信息,在所述内核信息中获取:
[0034]I) SAS卡的编号;
[0035]2) SAS扩展器的编号;[0036]3) SAS扩展器中与磁盘连接的物理端口编号;
[0037]内核信息包含在系统文件夹目录下的多个文件夹中;例如,SAS卡的物理端口编号存放在/sys/class/sas_phy目录下,而与SAS卡的物理端口编号对应的磁盘盘符信息存放在其识别号下面的子目录中。
[0038]步骤2-2,由所述步骤2-1获取的编号信息得到各所述磁盘的物理端口识别号SASPHY ID,如公式I所示:
[0039]SAS PHY ID=phy_A:B:C I ;
[0040]其中,A为SAS卡的编号,A的取值范围为O~主板能插入的SAS卡的数量减I ;B为SAS扩展器的编号,B的取值范围为O~254 ;C为SAS扩展器中与磁盘连接的物理端口编号,C的取值范围是O~SAS扩展器的物理端口总数减I ;
[0041 ] 步骤3,生成配置文件;
[0042]将所述步骤2获取的各所述磁盘的物理端口识别号SAS PHY ID写入磁盘的配置文件,所述配置文件的表达式如公式3、公式4所示:
[0043]mdx=[SAS PHY IDl,SAS PHY ID2, —, SAS PHY IDN] 3 ;
[0044]SAS PHY IDi=phy-A1:B1:Ci 4;
[0045]i=l、2、…N
[0046]其中,mdx表示所述独立磁盘冗余阵列的逻辑磁盘设备符号,x≥O ; [SAS PHYIDl,SAS PHY ID2,…,SAS PHY IDN]表示所述独立磁盘冗余阵列中包含的全部物理端口识别号SAS PHY ID ;phy-A1:B1:Ci表示第i个磁盘的物理端口识别号;
[0047]所述配置方法的第二种实施方式为:
[0048]所述物理端口为SAS卡的物理端口,即各所述磁盘分别与SAS卡的物理端口相连接;
[0049]所述配置方法的具体步骤为:
[0050]步骤1,在操作系统中使用RAID工具操作命令,创建独立磁盘冗余阵列;
[0051]步骤2,获取所述独立磁盘冗余阵列中,各所述磁盘的物理端口识别号SAS PHYID,其过程是:
[0052]步骤2-1,查找操作系统中系统文件夹目录下的内核信息,在所述内核信息中获取:
[0053]I) SAS卡的编号;
[0054]2) SAS卡中与磁盘连接的物理端口编号;
[0055]步骤2-2,由所述步骤2-1获取的编号信息得到各所述磁盘的物理端口识别号SASPHY ID,如公式3所示:
[0056]SAS PHY ID=phy-D:E 3 ;
[0057]其中,D为SAS卡的编号,D的取值范围为O~主板能插入的SAS卡的数量减I ;E为SAS卡中与磁盘连接的物理端口彪悍,取值范围为O~SAS卡的物理端口数量减I ;
[0058]步骤3,生成配置文件;
[0059]将所述步骤2获取的各所述磁盘的物理端口识别号SAS PHY ID写入所述磁盘的配置文件,所述配置文件的表达式如公式5、公式6所示:
[0060]mdx=[SAS PHY IDl,SAS PHY ID2, —, SAS PHY IDN] 5 ;[0061]SAS PHY IDi=phy-D1:Ei 6 ;
[0062]i=l、2…N;
[0063]其中,mdx表示所述独立磁盘冗余阵列的逻辑磁盘设备符号,x≥O ; [SAS PHYIDl,SAS PHY ID2,…,SAS PHY IDN]表示所述独立磁盘冗余阵列中包含的全部物理端口识别号SAS PHY ID, phy-D1: Ei表示第i个磁盘的物理端口识别号;
[0064]在具体实施中:可以采用序号代替各所述物理端口的识别号,即所述配置文件的表达式如公式7、公式8所示:
[0065]SAS PHY ID=phy-A:B:C=a 7 ;
[0066]SAS PHY ID=phy-D:E=b 8 ;
[0067]所述磁盘为SATA磁盘或SAS磁盘;
[0068]所述操作系统为Linux系统或Unix系统。
[0069]本发明的第二个保护主题是:利用生成的配置文件实现的磁盘阵列设备的组装方法;
[0070]所述组装方法是在系统重新启动或磁盘盘符发生改变时,利用所述步骤4生成的配置文件实现所述磁盘冗余阵列的组装,其具体步骤为:
[0071]步骤4-1,提取所述配置文件中的各物理端口识别号SAS PHY ID ;
[0072]步骤4-2,根据所述步骤4-1提取的各物理端口识别号SAS PHY ID获取与各物理端口对应连接的磁盘盘符信息;
[0073]步骤4-3,将所述步骤4-2中获取的各所述磁盘盘符信息对应的磁盘组装成所述独立磁盘冗余阵列。
[0074]本发明的第三个保护主题是:利用生成的配置文件实现的磁盘阵列设备的磁盘插入处理方法;
[0075]所述处理方法是在发生磁盘插入事件时,利用所述步骤4生成的配置文件实现磁盘的插入处理,其具体步骤为;
[0076]步骤5-1,获取插入事件的磁盘盘符信息;
[0077]步骤5-2,获取所述步骤5-1的磁盘盘符信息对应的物理端口识别号SAS PHY ID ;
[0078]步骤5-3,将所述步骤5-2获取的所述物理端口的识别号SAS PHY ID与所述配置文件中的记录数据进行比对;
[0079]若所述步骤5-2获取的物理端口识别号SAS PHY ID包含在所述配置文件中,则将所述磁盘插入所述独立磁盘冗余阵列;
[0080]若所述步骤5-2获取的物理端口识别号SAS PHY ID未包含在所述配置文件中,则所述磁盘不插入所述独立磁盘冗余阵列。
[0081]本发明在组装独立磁盘冗余阵列或处理磁盘插入事件的过程中无需添加任何硬件,仅与外在的物理端口识别号或序号相关,与磁盘盘符或磁盘本身存储的信息无关;无论磁盘盘符怎样改变,无论磁盘指定区域是否含有配置信息或配置信息怎样变化,均能实现按独立磁盘冗余阵列的配置文件信息重组或将新磁盘插入独立磁盘冗余阵列;因此,本发明的方法不再需要对磁盘本身存储的信息进行处理或配置,大大提高了磁盘阵列设备的工作稳定性。【专利附图】
【附图说明】
[0082]图1为本发明磁盘阵列设备的配置方法工作流程图;
[0083]图2为本发明磁盘阵列设备的组装方法工作流程图;
[0084]图3为本发明磁盘阵列设备的磁盘插入处理方法工作流程图;
[0085]下面结合附图和【具体实施方式】对本发明作进一步详细地说明,本发明的保护范围不局限于下述的【具体实施方式】。
【具体实施方式】
[0086]将各所述磁盘分别与SAS扩展器的物理端口相连接,各所述SAS扩展器分别与所述SAS卡的物理端口相连接;
[0087]如图1所示,一种磁盘阵列设备的配置方法,其具体步骤为:
[0088]步骤1,在Linux操作系统中,使用RAID工具操作命令,创建独立磁盘冗余阵列;
[0089]步骤2,获取所述独立磁盘冗余阵列中,各所述磁盘的物理端口识别号SAS PHYID,其过程是:
[0090]步骤2-1,查找操作系统中系统文件夹目录下的内核信息,在所述内核信息中获取:
[0091]I) SAS卡的编号;
[0092]2) SAS扩展器的编号;
[0093]3) SAS扩展器中与磁盘连接的物理端口编号;
[0094]步骤2-2,由所述步骤2-1获取的编号信息得到各所述磁盘的物理端口识别号SASPHY ID,其分别为 phy-0:0:11, phy-0:0:13, phy-0:0:16 ;
[0095]步骤3,生成配置文件;
[0096]将所述步骤2获取的各所述磁盘的物理端口识别号SAS PHY ID汇总,生成配置文件,所述配置文件的程序片段为:
[0097]md0=PHY-0:0:11, PHY-0:0:13, PHY-0:0:16
[0098]如图2所示,利用生成的配置文件实现的磁盘阵列设备的组装方法;
[0099]所述组装方法的步骤为:
[0100]步骤4-1,提取所述配置文件中的物理端口的识别号SAS PHY ID ;
[0101]步骤4-2,根据所述步骤4-1提取的各物理端口识别号SAS PHY ID获取与各物理端口对应的磁盘盘符信息,其过程是:
[0102]读取系统中/sys/class/sas_phy/〈SASPHY-1D>/dev*/port/e*/t*/*0/ 目录下的设备类型和设备符号目录文件,该文件中包含与各磁盘的物理端口识别号SAS PHY ID对应的磁盘盘符信息;
[0103]步骤4-3,采用RAID工具操作命令,将所述步骤4-2中获取的各所述磁盘盘符信息对应的磁盘组装成所述独立磁盘冗余阵列;
[0104]如图3所示,利用生成的配置文件实现的磁盘阵列设备的磁盘插入处理方法;
[0105]所述处理方法的步骤为:
[0106]步骤5-1,通过所述操作系统内核读取插入事件的磁盘盘符信息;
[0107]步骤5-2,查找所述操作系统的/sys目录下的内核信息,获取所述步骤5_1的磁盘盘符信息对应的物理端口识别号SAS PHY ID;
[0108]步骤5-3,将所述步骤5-2获取的所述物理端口的识别号SAS PHY ID与所述配置文件中的记录数据进行比对;
[0109]若所述步骤5-2获取的物理端口识别号SAS PHY ID包含在所述配置文件中,则将所述磁盘插入所述独立磁盘冗余阵列;
[0110]若所述步骤5-2获取的物理端口识别号SAS PHY ID未包含在所述配置文件中,则所述磁盘不插入所述独立磁盘冗余阵列。
[0111]本发明方法的测试过程如下:
[0112]I)独立磁盘冗余阵列组装测试:创建独立磁盘冗余阵列,配置文件中盘符为sd[def],将sdf盘改变为sdg盘符,而物理端口识别号或序号不变;
[0113]按照本发明的磁盘阵列设备的组装方法重新组装独立磁盘冗余阵列,系统启动后,sdg成功组装进入独立磁盘冗余阵列,独立磁盘冗余阵列重组后的系统界面如下所示:
[0114]md:md0 stopped.[0115]md:bind (sde)
[0116]md:bind (sdg)
[0117]md:bind (sdd)
[0118]raid5:device sdd operational as raid disk 0
[0119]raid5:device sdg operational as raid disk 2
[0120]raid5:device sde operational as raid disk I
[0121]raid5:allocated 102976kB for mdO
[0122]raid5:raid level 5 set mdOactive with3out of3devices,algorithm2
[0123]RAID5 conf printout:
[0124]rd:3 wd:3
[0125]disk 0,0:1,cev: sdd
[0126]disk I, o:1, dev: sde
[0127]disk 2,o: 1,dev: sdg
[0128]mdO:detected capacity change from 0 to 20480000000
[0129]mdO:
[0130]2)磁盘插入事件测试:操作系统内核检测到sdg磁盘插入事件后,通过对比本方法的配置文件,将其插入独立磁盘冗余阵列设备mdO中,将独立磁盘冗余阵列恢复,保证了磁盘阵列设备处于完好状态,磁盘插入成功后的系统界面如下所示:
[0131]
【权利要求】
1.一种磁盘阵列设备的配置方法,其特征在于: 所述配置方法首先创建独立磁盘冗余阵列,其次提取所述独立磁盘冗余阵列中各磁盘对应连接的物理端口,获取各所述磁盘对应的物理端口识别号,最后将各所述物理端口识别号汇总,生成配置文件; 所述物理端口为SAS扩展器的物理端口或SAS卡的物理端口 ; 所述配置方法用于针对物理端口识别号进行操作,不提取磁盘盘符或磁盘本身存储的信息,提高磁盘阵列设备的工作稳定性。
2.根据权利要求1所述的一种磁盘阵列设备的配置方法,其特征在于: 所述物理端口为SAS扩展器的物理端口,即各所述磁盘分别与SAS扩展器的物理端口相连接,各所述SAS扩展器分别与所述SAS卡的物理端口相连接; 所述配置方法的具体步骤为: 步骤1,在操作系统中使用RAID工具操作命令,创建独立磁盘冗余阵列; 步骤2,获取所述独立磁盘冗余阵列中,各所述磁盘的物理端口识别号SAS PHY ID,其过程是: 步骤2-1,查找操作系统中系统文件夹目录下的内核信息,在所述内核信息中获取: 1)SAS卡的编号; 2)SAS扩展器的编号; 3)SAS扩展器中与磁盘连接的物理端口编号; 步骤2-2,由所述步骤2-1获取的编号信息得到各所述磁盘的物理端口识别号SAS PHYID,如公式(I)所示: SAS PHY ID=phy-A:B:C (I); 其中,A为SAS卡的编号,A的取值范围为O~主板能插入的SAS卡的数量减I ;B为SAS扩展器的编号,B的取值范围为O~254 ;C为SAS扩展器中与磁盘连接的物理端口编号,C的取值范围是O~SAS扩展器的物理端口总数减I ; 步骤3,生成配置文件; 将所述步骤2获取的各所述磁盘的物理端口识别号SAS PHY ID写入磁盘的配置文件。
3.根据权利要求1所述的一种磁盘阵列设备的配置方法,其特征在于: 所述物理端口为SAS卡的物理端口,即各所述磁盘分别与SAS卡的物理端口相连接; 所述配置方法的具体步骤为: 步骤1,在操作系统中使用RAID工具操作命令,创建独立磁盘冗余阵列; 步骤2,获取所述独立磁盘冗余阵列中,各所述磁盘的物理端口识别号SAS PHY ID,其过程是: 步骤2-1,查找操作系统中系统文件夹目录下的内核信息,在所述内核信息中获取: 1)SAS卡的编号; 2)SAS卡中与磁盘连接的物理端口编号; 步骤2-2,由所述步骤2-1获取的编号信息得到各所述磁盘的物理端口识别号SAS PHYID,如公式(2)所示: SAS PHY ID=phy-D:E (2); 其中,D为SAS卡的编号,D的取值范围为O~主板能插入的SAS卡的数量减I ;E为SAS卡中与磁盘连接的物理端口编号,取值范围为O~SAS卡的物理端口数量减I ; 步骤3,生成配置文件; 将所述步骤2获取的各所述磁盘的物理端口识别号SAS PHY ID写入所述磁盘的配置文件。
4.根据权利要求1~3之一所述的一种磁盘阵列设备的配置方法,其特征在于: 所述磁盘为SAS磁盘或SATA磁盘; 所述操作系统为Linux系统或Unix系统。
5.利用权利要求1~4之一生成的配置文件实现的磁盘阵列设备的组装方法,其特征在于: 所述组装方法是在系统重新启动或磁盘盘符发生改变时,利用所述步骤4生成的配置文件实现所述磁盘冗余阵列的组装,其具体步骤为: 步骤4-1,提取所述配置文件中的各物理端口识别号SAS PHY ID; 步骤4-2,根据所述步骤4-1提取的各物理端口识别号SAS PHY ID获取与各物理端口对应连接的磁盘盘符信息; 步骤4-3,将所述步骤4-2中获取的各所述磁盘盘符信息对应的磁盘组装成所述独立磁盘冗余阵列。
6.利用权利要求1~4之一生成的配置文件实现的磁盘阵列设备的磁盘插入处理方法,其特征在于: 所述处理方法是在发生磁盘插入事件时,利用所述步骤4生成的配置文件实现磁盘的插入处理,其具体步骤为; 步骤5-1,获取插入事件的磁盘盘符信息; 步骤5-2,获取所述步骤5-1的磁盘盘符信息对应的物理端口识别号SAS PHY ID ;步骤5-3,将所述步骤5-2获取的所述物理端口的识别号SAS PHY ID与所述配置文件中的记录数据进行比对; 若所述步骤5-2获取的物理端口识别号SAS PHY ID包含在所述配置文件中,则将所述磁盘插入所述独立磁盘冗余阵列; 若所述步骤5-2获取的物理端口识别号SAS PHY ID未包含在所述配置文件中,则所述磁盘不插入所述独立磁盘冗余阵列。
【文档编号】G06F3/06GK103927126SQ201310301803
【公开日】2014年7月16日 申请日期:2013年7月18日 优先权日:2013年7月18日
【发明者】詹明德 申请人:詹明德