发明内容
本发明的技术任务是针对以上不足之处,提供一种实用性强、非对称双活双控系统的故障处理方法。
一种非对称双活双控系统的故障处理方法,基于非对称双活双控系统,该系统包括双控制器,即A控制器、B控制器,其实现过程为:
当前端链路故障中,某控制器接收到不属于自己的IO数据时,触发故障接管过程,完成归属权的切换;故障接管后,在前端链路故障恢复时,设置定时器,等状态保持一定时间后,进行下一次切换;故障控制器恢复正常,进行故障恢复时,根据lun是否回到初始状态来判断,哪些lun归属于对端。
在故障恢复和前端链路故障时,若控制器不宕机,由本控制器完成归属权切换前IO的下发;若控制器宕机,由对端控制器完成归属权切换前IO的下发。
在前端链路故障前,发送IO数据的控制器为A控制器,当故障发生时,与该A控制器完成归属权切换的对端控制器为B控制器,触发故障接管时,首先判断A控制器是否正常:如果异常,B控制器完成归属权切换,如果正常,则A控制器完成归属权切换。
当A控制器异常时,归属权切换前的IO由B控制器完成,其归属权切换过程为:
1)B控制器直接进行归属权切换;
2)该B控制器处理切换前对端IO的下发;
3)处理完成后,B控制器再进行后续接收IO的下发。
当A控制器正常时,归属权切换前的IO由A控制器完成,归属权切换过程为:
1)A控制器、B控制器均进行归属权切换;
2)A控制器处理归属权切换前IO的下发,并通知对端,即B控制器;
3)B控制器等待对端,即A控制器完成切换前IO的下发,收到确认信息后再进行后续接收到IO的下发。
当A控制器lun归属权由主切换至从时间超过一定时间,进入故障恢复过程,该时间为30min。
所述故障恢复过程的具体操作如下:
1)A控制器发起归属权切换请求;
2)B控制器响应该请求并进行IO下发,下发完成后告知A控制器;
3)A控制器收到IO下发完成的确认信号后,再处理后续收到的IO请求。
当A控制器由宕机恢复正常后,进入控制器故障恢复过程,具体操作如下:
1)B控制器将lun映射信息同步至A控制器;
2)B控制器针对归属权没有回到初始状态的lun,发起归属权切换请求;
3)A控制器根据归属权切换请求,配置alua并阻塞等待;
4)B控制器对归属权切换前的lun进行IO下发,完成后告知A控制器;
5)A控制器收到IO下发完成的ack信号后,再处理针对该lun的后续IO下发。
本发明的一种非对称双活双控系统的故障处理方法,具有以下优点:
本发明的一种非对称双活双控系统的故障处理方法,通过故障接管和故障恢复的设计,解决lun归属切换和谁下发故障前IO的问题,通用型强,使用方便,实用性强,易于推广。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明。
如附图1、图2、图3所示,本发明提供一种非对称双活双控系统的故障处理方法,该方法针对双控系统的前端链路和控制器故障,基于最新SCSI体系规范中的ALUA协议来进行多路径软件与存储阵列之间的交互。它将故障发生后的处理分两个阶段,即故障接管和故障恢复;对lun归属切换和谁下发故障前IO的问题进行了设计。
在本发明的方法中,通过设置定时器避免频繁插拔网线导致的归属权频繁切换问题;故障接管及故障恢复处理流程。
本发明基于非对称双活双控系统,该系统包括双控制器,即A控制器、B控制器,其实现过程为:
当前端链路故障中,某控制器接收到不属于自己的IO数据时,触发故障接管过程,完成归属权的切换;故障接管后,在前端链路故障恢复时,此处为避免频繁插拔网线导致的归属权切换问题,设置定时器,等状态保持一定时间后,进行下一次切换;故障控制器恢复正常,进行故障恢复时,根据lun是否回到初始状态来判断,哪些lun归属于对端。
在故障恢复和前端链路故障时,若控制器不宕机,由本控制器完成归属权切换前IO的下发;若控制器宕机,由对端控制器完成归属权切换前IO的下发。故障接管及故障恢复处理流程如图1至图3所示。
在前端链路故障前,发送IO数据的控制器为A控制器,当故障发生时,与该A控制器完成归属权切换的对端控制器为B控制器,触发故障接管时,首先判断A控制器是否正常:如果异常,B控制器完成归属权切换,如果正常,则A控制器完成归属权切换。
当A控制器异常时,归属权切换前的IO由B控制器完成,其归属权切换过程为:
1)B控制器直接进行归属权切换;
2)该B控制器处理切换前对端IO的下发;
3)处理完成后,B控制器再进行后续接收IO的下发。
当A控制器正常时,归属权切换前的IO由A控制器完成,归属权切换过程为:
1)A控制器、B控制器均进行归属权切换;
2)A控制器处理归属权切换前IO的下发,并通知对端,即B控制器;
3)B控制器等待对端,即A控制器完成切换前IO的下发,收到确认信息后再进行后续接收到IO的下发。
当A控制器lun归属权由主切换至从时间超过一定时间,进入故障恢复过程,该时间为30min。
所述故障恢复过程的具体操作如下:
1)A控制器发起归属权切换请求;
2)B控制器响应该请求并进行IO下发,下发完成后告知A控制器;
3)A控制器收到IO下发完成的确认信号后,再处理后续收到的IO请求。
当A控制器由宕机恢复正常后,进入控制器故障恢复过程,具体操作如下:
1)B控制器将lun映射信息同步至A控制器;
2)B控制器针对归属权没有回到初始状态的lun,发起归属权切换请求;
3)A控制器根据归属权切换请求,配置alua并阻塞等待;
4)B控制器对归属权切换前的lun进行IO下发,完成后告知A控制器;
5)A控制器收到IO下发完成的ack信号后,再处理针对该lun的后续IO下发。
在实际操作中,配置控制器A所在路径为主路径,控制器B所在路径为从路径,具体配置如下。
控制器A:
root@cy:/sys/kernel/scst_tgt/device_groups/dgroup1/target_groups/tgroup1#cat ~/alua.sh
cd /sys/kernel/scst_tgt/device_groups
echo create dgroup1 > mgmt
echo add disk01 > dgroup1/devices/mgmt
echo create tgroup1 > dgroup1/target_groups/mgmt
echo 1 > dgroup1/target_groups/tgroup1/group_id
echo add iqn.2006-10.net.vlnb:tgt > dgroup1/target_groups/tgroup1/mgmt
echo 1 > dgroup1/target_groups/tgroup1/iqn.2006-10.net.vlnb\:tgt/rel_tgt_id
echo 1 > dgroup1/target_groups/tgroup1/preferred
echo create tgroup2 > dgroup1/target_groups/mgmt
echo 2 > dgroup1/target_groups/tgroup2/group_id
echo add iqn.2007-10.net.vlnb:tgt > dgroup1/target_groups/tgroup2/mgmt
echo 2 > dgroup1/target_groups/tgroup2/iqn.2007-10.net.vlnb\:tgt/rel_tgt_id
root@cy:/sys/kernel/scst_tgt/device_groups/dgroup1/target_groups/tgroup1#ls
group_id iqn.2006-10.net.vlnb:tgt mgmt preferred state
控制器B:
root@cy:/sys/kernel/scst_tgt/device_groups/dgroup1/target_groups/tgroup1#cat ~/alua.sh
cd /sys/kernel/scst_tgt/device_groups
echo create dgroup1 > mgmt
echo add disk01 > dgroup1/devices/mgmt
echo create tgroup1 > dgroup1/target_groups/mgmt
echo 2 > dgroup1/target_groups/tgroup1/group_id
echo add iqn.2006-10.net.vlnb:tgt > dgroup1/target_groups/tgroup1/mgmt
echo 2 > dgroup1/target_groups/tgroup1/iqn.2006-10.net.vlnb\:tgt/rel_tgt_id
echo create tgroup2 > dgroup1/target_groups/mgmt
echo 1 > dgroup1/target_groups/tgroup2/group_id
echo add iqn.2007-10.net.vlnb:tgt > dgroup1/target_groups/tgroup2/mgmt
echo 1 > dgroup1/target_groups/tgroup2/iqn.2007-10.net.vlnb\:tgt/rel_tgt_id
root@cy:/sys/kernel/scst_tgt/device_groups/dgroup1/target_groups/tgroup1#ls
group_id iqn.2006-10.net.vlnb:tgt mgmt preferred state。
上述具体实施方式仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述具体实施方式,任何符合本发明的一种非对称双活双控系统的故障处理方法的权利要求书的且任何所述技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。