[发明专利]一种链路切换方法和系统有效
申请号: | 201510587827.1 | 申请日: | 2015-09-15 |
公开(公告)号: | CN105045674B | 公开(公告)日: | 2018-11-20 |
发明(设计)人: | 武毅 | 申请(专利权)人: | 浪潮(北京)电子信息产业有限公司 |
主分类号: | G06F11/07 | 分类号: | G06F11/07 |
代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 解婷婷;曲鹏 |
地址: | 100085 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 切换 方法 系统 | ||
本发明一种链路切换方法和系统,包括:在Qlogic层实时检测链路状态。当检测到链路出现故障时,触发netlink机制并向Qlogic层中预创建的套接字socket里发送故障信息。通过预创建的守护线程实时检测socket,并接收该故障信息。根据该故障信息中包含的链路切换指令在Multipath工具层选择新的链路。当新的链路选择完成后,发送将出现故障的链路切换到新的链路的第一通知信息。根据第一通知信息在multipath内核层将被中断的IO块指向新的链路,并向SCSI层发送进行链路切换的第二通知信息。根据第二通知信息在SCSI层执行链路切换。通过本发明的方案,能够有效地提高IO效率。
技术领域
本发明涉及linux领域,具体涉及一种链路切换方法和系统。
背景技术
在linux技术飞速发展的今天,几乎所有的服务器均是采用linux操作系统。而存储是服务器不可或缺的硬件产品,在目前的IO应用中,服务器和存储之间的IO路径失效是经常发生的问题,为正常的IO操作带来很多不便,如何在IO路径失效时快速有效地在多条链路之间进行切换是本领域技术人员亟需解决的问题。
发明内容
为了解决上述问题,本发明提出了一种链路切换方法和系统,能够有效地提高IO效率。
为了达到上述目的,本发明提出了一种链路切换方法,该方法包括:
在Qlogic层实时检测链路状态。
当检测到链路出现故障时,触发netlink机制,并向Qlogic层中预创建的套接字socket里面发送故障信息。
通过Multipath工具层中预创建的守护线程实时检测socket,并接收socket中的该故障信息。
根据该故障信息中包含的链路切换指令在Multipath工具层选择新的链路。
当新的链路选择完成后,向multipath内核层发送将出现故障的链路切换到新的链路的第一通知信息。
根据第一通知信息在multipath内核层将被中断的IO块指向新的链路,并向SCSI层发送进行链路切换的第二通知信息。
根据第二通知信息在SCSI层执行链路切换。
优选地,该方法还包括:
当检测到链路出现故障时,在Qlogic层触发与出现故障的链路相对应的中断机制,中止出现故障的链路上的当前IO块的传输。
优选地,新的链路是指未出现故障的空闲链路中优先级最高的链路。
优选地,该方法还包括:
根据第二通知信息在SCSI层执行链路切换后,重新将IO块发送给Qlogic层,并通过切换后的新的链路在Qlogic层下发给相应的底层存储设备。
为了达到上述目的,本发明还提出了一种链路切换系统,该系统包括:检测模块、触发模块、接收模块、选择模块、第一发送模块、第二发送模块和切换模块。
检测模块,用于在Qlogic层实时检测链路状态。
触发模块,用于当检测到链路出现故障时,触发netlink机制,并向Qlogic层中预创建的套接字socket里面发送故障信息。;
接收模块,用于通过Multipath工具层中预创建的守护线程实时检测socket,并接收socket中的故障信息。
选择模块,用于根据故障信息中包含的链路切换指令在Multipath工具层选择新的链路。
第一发送模块,用于当新的链路选择完成后,向multipath内核层发送将出现故障的链路切换到新的链路的第一通知信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮(北京)电子信息产业有限公司,未经浪潮(北京)电子信息产业有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510587827.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:基于智能操作系统的应用程序配置方法
- 下一篇:一种数据移动的方法及装置