法律状态公告日
法律状态信息
法律状态
2016-10-12
授权
授权
2016-09-28
专利申请权的转移 IPC(主分类):G06F3/06 登记生效日:20160905 变更前: 变更后: 申请日:20130718
专利申请权、专利权的转移
2015-08-05
专利申请权的转移 IPC(主分类):G06F3/06 变更前: 变更后: 登记生效日:20150716 申请日:20130718
专利申请权、专利权的转移
2014-08-13
实质审查的生效 IPC(主分类):G06F3/06 申请日:20130718
实质审查的生效
2014-07-16
公开
公开
技术领域
本发明属于海量存储技术领域中的数据处理方法,尤其涉及一种磁盘阵列设 备的配置方法及组装及磁盘插入处理方法。
背景技术
独立磁盘冗余阵列(Redundant Array of Independent Disks),简称RAID, 是指多块独立的物理磁盘按不同的方式组合起来所形成的一个逻辑磁盘。
目前,现有技术普遍按照磁盘盘符信息来组装RAID或按磁盘所保存的信息 处理磁盘插入事件;
按照磁盘盘符的信息来组装RAID或处理磁盘插入事件的具体过程是:
预先配置含有盘符的RAID配置文件mdadm.conf,其配置文件内容如下:
DEVICE/dev/sd[deg]
ARRAY/dev/md0 level=raid5 num-devices=3metadata=0.90spares=1UUID=05f05cb4:22fc604b:515e60f7:3fel4bb5
其中,sd[deg]表示将系统中的物理磁盘sdd、sde、sdg组装成独立磁盘冗 余阵列;
如上所述,现有技术在处理磁盘组装或插入事件时,都需要读取磁盘的盘符。 在磁盘阵列设备中,由于大量使用磁盘,比如单一系统经常使用几十或几百块 硬盘。某一数据端口下的磁盘经常发生盘符改变或被更换。如果按含有磁盘盘 符的配置信息来组装独立磁盘冗余阵列或处理磁盘插入事件,当独立磁盘冗余 阵列中的磁盘因某种原因改变盘符,例如图3中的磁盘由sdg变为sdh,则组装 过程中,发现sdg磁盘不存在,导致独立磁盘冗余阵列不能按配置文件的盘符 组装或处理磁盘插入事件。
在组装磁盘阵列设备时,由于找不到配置文件中包含的盘符,因此,不能完 成独立磁盘冗余阵列组装。
在处理插入事件时,不能将插入事件检测到的磁盘自动插入到独立磁盘冗余 阵列中,或者强行将属于其它磁盘阵列设备的磁盘盘符插入本磁盘阵列设备中, 因而导致系统磁盘错乱。
因此,在现有技术中,需要操作者判断,此不同盘符代表的磁盘是否可以插 入到配置信息中的独立磁盘冗余阵列中,然后手动将其插入。对于操作者不在 现场的计算机系统,如嵌入式计算机系统,独立磁盘冗余阵列将永远不能将上 述磁盘自动插入,因而存在损坏风险。
现有技术按磁盘所保存的信息处理磁盘插入事件的具体过程是:
预先配置含有磁盘编号的独立磁盘冗余阵列的配置文件,常见的配置内容如 下:
VirtualDisk:/*磁盘A1和A2的RAID配置信息起始标记*/SLOT=0/*RAID 控制器A所在槽位号*/
RAID=0/*RAID级别,例如:RAID0、RAID1或RAID5*/ WRITEPOLICY=write_back/*写策略,例如:直写或回写等*/
READPOLICY=adaptive_read_ahead/*读策略,例如:预取、不预取或自适 应预取等*/
IOPOLICY=no_cached/*读策略/写策略所包含的10策略,使用緩存或不 使用cache等*/
PD=0,1/*RAID包含的磁盘编号*/
如上所述,当操作系统内核检测到磁盘插入事件时,通过检测组成独立磁 盘冗余阵列的多个磁盘中是否存在自身所存储的信息与自身磁盘编号所对应的 预先配置的独立磁盘冗余阵列的配置信息不符的新磁盘,当检测到上述多个磁 盘中存在上述新磁盘时,将与上述自身磁盘编号所对应的预先配置的独立磁盘 冗余阵列的配置信息写到上述新磁盘中,使得上述新磁盘成为上述独立磁盘冗 余阵列中的一个磁盘。当检测磁盘的指定区域存储的信息与自身硬盘编号所对 应的预先配置的独立磁盘冗余阵列的配置信息一致时,则说明插入的磁盘即为 之前从插入的磁盘的磁盘编号对应的位置拔出的磁盘,不执行任何操作。这样, 就可能导致磁盘阵列设备一直不能将此磁盘插入,而处于损坏的危险中。
因此,现有技术按磁盘所保存的信息处理磁盘插入事件时,需要检测多个磁 盘中是否存在自身所存储的信息与自身磁盘编号所对应的预先配置的独立磁盘 冗余阵列的配置信息是否相符。也就是说与磁盘本身存储的信息相关。磁盘本 身存储的信息可以决定是否成功处理插入事件。
发明内容
本发明为解决磁盘阵列设备工作稳定性较低的问题,提供了一种磁盘阵列设 备的配置方法及组装方法及磁盘插入处理方法;
本发明的技术方案如下;
本发明的第一个保护主题是:一种磁盘阵列设备的配置方法;
所述配置方法首先创建独立磁盘冗余阵列,其次提取所述独立磁盘冗余阵列 中各磁盘对应连接的物理端口,获取各所述磁盘对应的物理端口识别号,最后 将各所述物理端口识别号汇总,生成配置文件;
所述物理端口为SAS扩展器的物理端口或SAS卡的物理端口。
所述配置方法的第一种实施方式为:
所述物理端口为SAS扩展器的物理端口,即各所述磁盘分别与SAS扩展器的 物理端口相连接,各所述SAS扩展器分别与所述SAS卡的物理端口相连接;
所述配置方法的具体步骤为:
步骤1,在操作系统中使用RAID工具操作命令,创建独立磁盘冗余阵列;
RAID工具为multiple devices admin,简称为mdadm;
步骤2,获取所述独立磁盘冗余阵列中,各所述磁盘的物理端口识别号SAS PHY ID,其过程是:
步骤2-1,查找操作系统中系统文件夹目录下的内核信息,在所述内核信息 中获取:
1)SAS卡的编号;
2)SAS扩展器的编号;
3)SAS扩展器中与磁盘连接的物理端口编号;
内核信息包含在系统文件夹目录下的多个文件夹中;例如,SAS卡的物理端 口编号存放在/sys/class/sas_phy目录下,而与SAS卡的物理端口编号对应的 磁盘盘符信息存放在其识别号下面的子目录中。
步骤2-2,由所述步骤2-1获取的编号信息得到各所述磁盘的物理端口识别 号SAS PHY ID,如公式1所示:
SAS PHY ID=phy-A:B:C 1;
其中,A为SAS卡的编号,A的取值范围为0~主板能插入的SAS卡的数量减 1;B为SAS扩展器的编号,B的取值范围为0~254;C为SAS扩展器中与磁盘 连接的物理端口编号,C的取值范围是0~SAS扩展器的物理端口总数减1;
步骤3,生成配置文件;
将所述步骤2获取的各所述磁盘的物理端口识别号SAS PHY ID写入磁盘的 配置文件,所述配置文件的表达式如公式3、公式4所示:
mdx=[SAS PHY ID1,SAS PHY ID2,…,SAS PHY IDN] 3;
SAS PHY IDi=phy-Ai:Bi:Ci 4;
i=1、2、…N
其中,mdx表示所述独立磁盘冗余阵列的逻辑磁盘设备符号,x≥0;[SAS PHY ID1,SAS PHY ID2,…,SAS PHY IDN]表示所述独立磁盘冗余阵列中包含的全 部物理端口识别号SAS PHY ID;phy-Ai:Bi:Ci表示第i个磁盘的物理端口识别 号;
所述配置方法的第二种实施方式为:
所述物理端口为SAS卡的物理端口,即各所述磁盘分别与SAS卡的物理端口 相连接;
所述配置方法的具体步骤为:
步骤1,在操作系统中使用RAID工具操作命令,创建独立磁盘冗余阵列;
步骤2,获取所述独立磁盘冗余阵列中,各所述磁盘的物理端口识别号SAS PHY ID,其过程是:
步骤2-1,查找操作系统中系统文件夹目录下的内核信息,在所述内核信息 中获取:
1)SAS卡的编号;
2)SAS卡中与磁盘连接的物理端口编号;
步骤2-2,由所述步骤2-1获取的编号信息得到各所述磁盘的物理端口识别 号SAS PHY ID,如公式3所示:
SAS PHY ID=phy-D:E 3;
其中,D为SAS卡的编号,D的取值范围为0~主板能插入的SAS卡的数量减 1;E为SAS卡中与磁盘连接的物理端口彪悍,取值范围为0~SAS卡的物理端口 数量减1;
步骤3,生成配置文件;
将所述步骤2获取的各所述磁盘的物理端口识别号SAS PHY ID写入所述磁 盘的配置文件,所述配置文件的表达式如公式5、公式6所示:
mdx=[SAS PHY ID1,SAS PHY ID2,…,SAS PHY IDN] 5;
SAS PHY IDi=phy-Di:Ei 6;
i=1、2…N;
其中,mdx表示所述独立磁盘冗余阵列的逻辑磁盘设备符号,x≥0;[SAS PHY ID1,SAS PHY ID2,…,SAS PHY IDN]表示所述独立磁盘冗余阵列中包含的全 部物理端口识别号SAS PHY ID,phy-Di:Ei表示第i个磁盘的物理端口识别号;
在具体实施中:可以采用序号代替各所述物理端口的识别号,即所述配置文 件的表达式如公式7、公式8所示:
SAS PHY ID=phy-A:B:C=a 7;
SAS PHY ID=phy-D:E=b 8;
所述磁盘为SATA磁盘或SAS磁盘;
所述操作系统为Linux系统或Unix系统。
本发明的第二个保护主题是:利用生成的配置文件实现的磁盘阵列设备的组 装方法;
所述组装方法是在系统重新启动或磁盘盘符发生改变时,利用所述步骤4生 成的配置文件实现所述磁盘冗余阵列的组装,其具体步骤为:
步骤4-1,提取所述配置文件中的各物理端口识别号SAS PHY ID;
步骤4-2,根据所述步骤4-1提取的各物理端口识别号SAS PHY ID获取与各 物理端口对应连接的磁盘盘符信息;
步骤4-3,将所述步骤4-2中获取的各所述磁盘盘符信息对应的磁盘组装成 所述独立磁盘冗余阵列。
本发明的第三个保护主题是:利用生成的配置文件实现的磁盘阵列设备的磁 盘插入处理方法;
所述处理方法是在发生磁盘插入事件时,利用所述步骤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未包含在所述配置文件 中,则所述磁盘不插入所述独立磁盘冗余阵列。
本发明在组装独立磁盘冗余阵列或处理磁盘插入事件的过程中无需添加任 何硬件,仅与外在的物理端口识别号或序号相关,与磁盘盘符或磁盘本身存储 的信息无关;无论磁盘盘符怎样改变,无论磁盘指定区域是否含有配置信息或 配置信息怎样变化,均能实现按独立磁盘冗余阵列的配置文件信息重组或将新 磁盘插入独立磁盘冗余阵列;因此,本发明的方法不再需要对磁盘本身存储的 信息进行处理或配置,大大提高了磁盘阵列设备的工作稳定性。
附图说明
图1为本发明磁盘阵列设备的配置方法工作流程图;
图2为本发明磁盘阵列设备的组装方法工作流程图;
图3为本发明磁盘阵列设备的磁盘插入处理方法工作流程图;
下面结合附图和具体实施方式对本发明作进一步详细地说明,本发明的保护 范围不局限于下述的具体实施方式。
具体实施方式
将各所述磁盘分别与SAS扩展器的物理端口相连接,各所述SAS扩展器分别 与所述SAS卡的物理端口相连接;
如图1所示,一种磁盘阵列设备的配置方法,其具体步骤为:
步骤1,在Linux操作系统中,使用RAID工具操作命令,创建独立磁盘冗余 阵列;
步骤2,获取所述独立磁盘冗余阵列中,各所述磁盘的物理端口识别号SAS PHY ID,其过程是:
步骤2-1,查找操作系统中系统文件夹目录下的内核信息,在所述内核信息 中获取:
1)SAS卡的编号;
2)SAS扩展器的编号;
3)SAS扩展器中与磁盘连接的物理端口编号;
步骤2-2,由所述步骤2-1获取的编号信息得到各所述磁盘的物理端口识别 号SAS PHY ID,其分别为phy-0:0:11、phy-0:0:13、phy-0:0:16;
步骤3,生成配置文件;
将所述步骤2获取的各所述磁盘的物理端口识别号SAS PHY ID汇总,生成 配置文件,所述配置文件的程序片段为:
md0=PHY-0:0:11,PHY-0:0:13,PHY-0:0:16
如图2所示,利用生成的配置文件实现的磁盘阵列设备的组装方法;
所述组装方法的步骤为:
步骤4-1,提取所述配置文件中的物理端口的识别号SAS PHY ID;
步骤4-2,根据所述步骤4-1提取的各物理端口识别号SAS PHY ID获取与各 物理端口对应的磁盘盘符信息,其过程是:
读取系统中/sys/class/sas_phy/<SAS PHY-ID>/dev*/port/e*/t*/*0/目录 下的设备类型和设备符号目录文件,该文件中包含与各磁盘的物理端口识别号 SAS PHY ID对应的磁盘盘符信息;
步骤4-3,采用RAID工具操作命令,将所述步骤4-2中获取的各所述磁盘盘 符信息对应的磁盘组装成所述独立磁盘冗余阵列;
如图3所示,利用生成的配置文件实现的磁盘阵列设备的磁盘插入处理方法;
所述处理方法的步骤为:
步骤5-1,通过所述操作系统内核读取插入事件的磁盘盘符信息;
步骤5-2,查找所述操作系统的/sys目录下的内核信息,获取所述步骤5-1 的磁盘盘符信息对应的物理端口识别号SAS PHY ID;
步骤5-3,将所述步骤5-2获取的所述物理端口的识别号SAS PHY ID与所述 配置文件中的记录数据进行比对;
若所述步骤5-2获取的物理端口识别号SAS PHY ID包含在所述配置文件中, 则将所述磁盘插入所述独立磁盘冗余阵列;
若所述步骤5-2获取的物理端口识别号SAS PHY ID未包含在所述配置文件 中,则所述磁盘不插入所述独立磁盘冗余阵列。
本发明方法的测试过程如下:
1)独立磁盘冗余阵列组装测试:创建独立磁盘冗余阵列,配置文件中盘符 为sd[def],将sdf盘改变为sdg盘符,而物理端口识别号或序号不变;
按照本发明的磁盘阵列设备的组装方法重新组装独立磁盘冗余阵列,系统启 动后,sdg成功组装进入独立磁盘冗余阵列,独立磁盘冗余阵列重组后的系统界 面如下所示:
md:md0 stopped·
md:bind〈sde〉
md:bind〈sdg〉
md:bind〈sdd〉
raid5:device sdd operational as raid disk 0
raid5:device sdg operational as raid disk 2
raid5:device sde operational as raid disk 1
raid5:allocated 102976kB for md0
raid5:raid level 5 set md0active with3out of3devices,algorithm2
RAID5 conf printout:
---rd:3 wd:3
disk O,0:1,cev:sdd
disk 1,o:1,dev:sde
disk 2,o:1,dev:sdg
md0:detected capacity change from 0 to 20480000000
md0:
2)磁盘插入事件测试:操作系统内核检测到sdg磁盘插入事件后,通过对 比本方法的配置文件,将其插入独立磁盘冗余阵列设备md0中,将独立磁盘冗 余阵列恢复,保证了磁盘阵列设备处于完好状态,磁盘插入成功后的系统界面 如下所示:
scsi0:0:10:0:SATA:handie(0×0010),sas_addr(0×5000b05b00002/4b2),device_name(0×5000c5002fe8eb05)
scsi 0:0:10:0:SATA:enclosure_logical_id(0×500605b0000274bf),slot(18)
scsi 0:0:10:0:atapi(n),ncq(y),asyn_notify(n),smart(y),fua(y),sw_preserve(y)
scsi 0:0:10:O:qdepth(32),tagged(1),simple(1),ordered(0),scsi_level(7),cmd_que(1)
sd O:0:10:0:[sdg]3907029168 512_byte hardwsre sectors:(2.00TB/1.81TiB)
sd 0:0:10:0:[sdg]Write Protect is off
sd 0:0:10:0:[sdg]Mode Sense:7f 00 10 08
sd 0:0:10:0:[sdg]Write cache:enabled,read cache:enabled,supports DPO and FUA
sd 0:0:10:0:[sdg]3907029168 512_byte hardware sectors:(2.00TB/1.81TiB)
sd 0:0:10:0:[sdg]Write Protect is off
sd 0:0:10:0:[sdg]Mode Sense:7f 00 10 08
sd 0:0:10:0:[sdg]Write cache:enabled,read cache:enabled,suPPorts DPO and FUA
sdg:sdg1 sdg2
sdg:p1 size 4069234687 limited to end of disk
sd 0:0:10:0:[sdg]Attached SCSI disk
md:bind〈sdg〉
RAID5 conf printout:
---rd:3 wd:2
disk 0,o:1,dev:sdd
disk1,o:1,dev:sde
disk2,o:1,deV:5dg
md:recovery of RAID array md0
md:minimum_guaranteed_speed:1000KB/sec/disk.
md:using maximum available idle IO bandwidth(but not more than 2O00OOKB/sec)for recovery.
md:using 128k window,over a total of 10000000blocks.
md:md0:recoverydone·
RAID5 conf printout:
---rd:3 wd:3
disk 0,o:1,dev:sdd
disk1,o:1,dev:sde
disk2,o:1,dev:sdg
即无论新插入的磁盘盘符是什么,只要此物理端口识别号或序号包含于配置 文件相应的独立磁盘冗余阵列之内,就可正常将其插入。
上述技术方案只是本发明的一种实施方式,对于本领域内的技术人员而言, 在本发明公开了应用方法和原理的基础上,很容易做出各种类型的改进或变形, 而不仅限于本发明上述具体实施方式所描述的结构,因此前面描述的方式只是 优选地,而并不具有限制性的意义。
机译: 磁盘阵列设备和磁盘阵列设备的配置方法
机译: 磁盘阵列设备的高级配置方法和磁盘阵列设备
机译: 磁盘阵列设备,适用于该设备的逻辑磁盘重新配置方法