[发明专利]一种计算机故障管理系统的容错方法有效
申请号: | 201110277680.8 | 申请日: | 2011-09-19 |
公开(公告)号: | CN102364448A | 公开(公告)日: | 2012-02-29 |
发明(设计)人: | 刘斌;张东 | 申请(专利权)人: | 浪潮电子信息产业股份有限公司 |
主分类号: | G06F11/07 | 分类号: | G06F11/07 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 250014 山东*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明提供一种计算机故障管理系统的容错框架,分为用户空间和内核空间两部分,包括故障管理核心单元1)、检查点处理模块2)、故障管理冗余单元3)、代理接收模块4)、代理发送模块5)、内核故障管理核心单元6)、内核事件传输通道7)、内核故障处理模块8)和内核故障管理冗余单元9)组成。 | ||
搜索关键词: | 一种 计算机 故障 管理 系统 容错 方法 | ||
【主权项】:
一种计算机故障管理系统的容错方法, 其特征在于以故障管理系统为中心,提供一套完整的容错框架,使其既能保证故障管理系统服务自身的可靠性,也能保证在操作系统内核Panic的情况下故障管理系统仍能够进行紧急处理,从而提高系统的整体可用性,该框架分为用户空间和内核空间两部分,其中:用户空间包括:故障管理核心单元1),故障管理冗余单元2),代理接收模块3)和代理发送模块4),其中:故障管理核心单元1):是整个框架在用户空间部分的核心,负责错误收集、故障诊断以及故障处理,包括故障隔离、故障恢复和故障修复;采用检查点机制,定期保存当前错误处理状态信息;故障管理核心单元由错误检测模块(1)、事件分发模块(2)、诊断引擎模块(3)、故障处理模块(4)和检查点处理单元(5)组成,其中:错误检测模块(1),针对系统不同组件部署多个错误检测模块,具体组件涉及文件系统、应用程序和服务以及提供用户空间检测手段的硬件组件,错误检测模块主动将自己生成的错误事件加入事件分发模块事件缓冲区;事件分发模块(2),负责向故障管理核心单元各模块主动分发事件,事件包括错误事件和故障事件,事件分发模块遍历事件缓冲区中每一个事件,如果是错误事件,则将事件发给诊断引擎模块的归并单元,如果是故障事件,则查询故障处理模块哈希表,将故障事件发给指定故障处理模块;诊断引擎模块(3),包含一套诊断规则,针对每一类故障事件创建一个归并单元,由归并单元产生故障事件,并加入事件分发模块的事件缓冲区;故障处理模块(4),针对系统不同组件部署多个故障处理模块,组件涉及CPU、内存和I/O以及应用程序,故障处理方式包括故障隔离、故障恢复和故障修复,根据故障处理结果选择更优的故障处理方式;检查点处理单元(5),由检查点信息收集模块①、检查点创建模块②和检查点回滚模块③组成;检查点处理单元负责收集故障管理核心单元各组件信息,创建检查点消息以及回滚检查点;故障管理冗余单元2):是故障管理核心单元的冗余组件,负责接收故障管理核心单元的心跳及监控故障管理核心单元的工作状态;定期将故障管理核心单元的检查点信息保存至检查点文件中,故障管理冗余单元和故障管理核心单元相互监听对方心跳,当心跳超时,故障管理冗余单元则立即重启对方单元的执行进程,故障管理冗余单元工作流程如下:a)交互模块接收检查点处理单元发送的检查点消息,保存至检查点消息缓冲区,当消息数目达到预设阀值时,由信息保存模块将消息缓冲区中所有消息保存至检查点文件;b)交互模块接受检查点处理单元的消息请求,从检查点消息缓冲区或检查点文件中获取指定检查点消息并发送给检查点处理单元;代理接收模块3):代理接收模块位于用户空间,是故障管理系统用户空间和内核空间的通信代理,负责接收来自内核空间的错误事件;生成内核标准错误事件并加入事件分发模块事件缓冲区,采用Netlink机制与内核事件传输通道通信,模块由故障管理核心单元执行进程初始化,独立运行;代理发送模块4):代理发送模块位于用户空间,是故障管理系统用户空间和内核空间的通信代理,负责将内核标准错误事件的诊断结果发送给内核事件传输通道,再由内核事件传输通道将内核错误事件的诊断结果发送给内核空间故障处理模块,代理发送模块采用Netlink机制与内核事件传输通道通信,由故障管理核心单元执行进程初始化,独立运行;内核空间包括:内核故障管理核心单元5),含内核事件传输通道6),内核故障处理模块7),内核故障管理冗余单元8),其中:内核故障管理核心单元5):是整个框架在内核空间部分的核心,内核故障管理核心单元由内核事件传输通道和内核故障处理模块组成,负责对内核错误事件的收集、分发和故障处理,采用一个内核线程、一组接口和应用规范的方式,内核错误检测源,包括内核模块、驱动程序和内核部件,通过这组接口和应用规范,使用故障管理系统提供的故障管理功能,其中,通过在中断下半部和内核代码中添加回调函数的方法,获得内核错误检测源的原始错误信息,回调函数调用的一组接口实际是对内核事件传输通道的封装,应用规范指内核错误事件,包括一般事件和紧急事件的故障处理规则;内核故障管理核心单元工作流程如下:a)内核事件传输通道获得原始错误信息;b)内核事件传输通道判断原始错误事件类型,如果是一般事件,则将原始事件发送给代理接收模块,如果是紧急事件,则直接交给内核故障处理模块;c)内核故障处理模块处理紧急事件以及来自用户空间的标准故障事件;为了保证内核故障管理核心单元执行线程可靠运行,采用在系统启动时,隔离处于两个不同NUMA域中的两个逻辑CPU单独运行内核故障管理核心单元执行线程的方法,CPU选择策略如下:a)根据ACPI提供的SRAT表,在第一个节点任意选择一个CPU;b)根据距离表,再找出与此相距最远的一个CPU;选择距离最远CPU的目的是为了减少由于两个CPU同时出错而造成故障管理系统无法正常运行的可能性;内核事件传输通道6):是故障管理系统用户空间和内核空间的信息传递接口,采用Netlink机制实现;内核事件传输通道封装成一组接口,在内核模块、驱动程序和内核部件的中断下半部和内核代码中以回调函数形式被调用,与用户空间代理接收模块和代理发送模块传递事件信息;内核故障处理模块7):分为内核紧急事件处理和一般事件处理,经内核故障管理核心单元判断,如果是内核紧急事件,则直接由内核故障处理模块处理,包括采用Kexec机制快速重启一个新内核;如果是一般事件,则经由故障管理系统用户空间诊断后,再由内核故障处理模块处理,包括调用内核空间功能函数;其中:(1)针对某些MCA机制对致命错误恢复不成功,PCIE AER机制对致命错误恢复不成功,内核发生致命错误情况,在这种情况下内核执行Panic处理,截断Panic处理,由内核故障处理模块处理,执行Kexec机制快速重启一个新内核;(2)针对MCA、PCIE AER、SCSI EH机制成功恢复可恢复错误,以及内核发生非紧急错误情况,经过用户空间故障管理核心单元诊断后,最终交给内核故障处理模块处理,处理方式包括:CPU Offline、PCIE Offline、内存页隔离;内核故障管理冗余单元8):是内核故障管理核心单元5)的冗余组件,负责监控内核故障管理核心单元的工作状态,内核故障管理冗余单元和内核故障管理核心单元之间采用心跳连接,负责接收内核故障管理核心单元的心跳,以监控内核故障管理核心单元的工作状态;内核故障管理冗余单元8)执行线程运行在另一个隔离的逻辑CPU上,且与运行内核故障管理核心单元执行线程的逻辑CPU距离最远,减少由于两个CPU同时出错造成故障管理系统无法正常运行的可能性;内核故障管理冗余单元8)执行线程监听内核故障管理核心单元执行线程的心跳,当检测到心跳超时,内核故障管理冗余单元立即担当内核故障管理核心单元的角色,取代原来的内核故障管理核心单元继续工作,同时,初始化一个新的内核故障管理冗余单元,并将其迁移到另一个隔离的CPU上运行。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮电子信息产业股份有限公司,未经浪潮电子信息产业股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201110277680.8/,转载请声明来源钻瓜专利网。