[发明专利]服务于操作系统核心层的容错计算机系统数据比较方法无效
| 申请号: | 201010103349.X | 申请日: | 2010-01-29 |
| 公开(公告)号: | CN101794242A | 公开(公告)日: | 2010-08-04 |
| 发明(设计)人: | 张兴军;董小社;雷济凯;胡冰;王恩东;胡雷钧;孙江斌;张东;田佳;赵晓昳;伍卫国 | 申请(专利权)人: | 西安交通大学;山东高效能服务器和存储研究院 |
| 主分类号: | G06F11/00 | 分类号: | G06F11/00 |
| 代理公司: | 西安通大专利代理有限责任公司 61200 | 代理人: | 徐文权 |
| 地址: | 710049*** | 国省代码: | 陕西;61 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 服务 操作系统 核心 容错 计算机系统 数据 比较 方法 | ||
技术领域
本发明属于计算机领域,涉及计算机容错技术与数据比较技术,特别涉 及一种服务于操作系统核心层的容错计算机系统数据比较方法。
背景技术
随着计算机、互联网技术的飞速发展,信息化已深入到社会的方方面面, 计算机技术在提高工作效率、促进信息交流等方面极大地改变了人们的生活 方式,但同时也使人们对它产生了越来越多的依赖,一次计算机系统的故障 可能带来无法估量的损失。对那些需要保障信息安全和提供不间断信息服务 的机构来说,例如证券、制造、通信、银行、运输,业务系统的可靠性和不 间断性显得尤为重要。如何提高计算机系统的可靠性与可用性,从而保障各 种关键应用持续运营,达到永续经营的良性循环,已成为信息领域的一个重 要问题。容错计算机及相关技术正是在这种客观需求下应运而生,利用容错 计算机能避免因服务器故障而引发的数以万计的经济损失。
容错计算机是在冗余资源(硬件冗余、时间冗余、信息冗余、软件冗余) 的基础上,通过设计合理的体系结构,在系统软件的有效管理下而形成的高 可靠、高可用计算机。故障检测是实现容错计算机系统的关键技术之一,而 对任务数据的比较、表决是错误发现的主要手段。
对数据的比较、表决主要有基于硬件和基于软件两种方式。基于硬件的 方法在系统中增加比较芯片,芯片中包含比较或投票逻辑,对所有待写出的 数据进行比较、表决,这种方式发现错误及时,但设计复杂,实现成本高。 基于软件的方法在库函数或者应用程序中设置比较、表决点,对任务的中间 结果和最后输出进行一致性判断,这种方式系统设计简单,但对应用透明性 差,给编程人员和用户带来了额外的负担。
发明内容
本发明的目的在于针对上述现有技术的缺点和不足,提供了一种服务于 操作系统核心层的容错计算机系统数据比较方法,本发明能对容错系统中冗 余任务的状态和数据结果进行一致性比较,同时记录冗余任务的同步比较信 息。
为了实现上述任务,本发明采用如下的技术解决方案:在Linux操作系 统内核中创建内核态守护进程ft_syner,执行比较器逻辑,为冗余进程提供 数据比较服务;冗余进程在执行写操作时,分别准备好待写数据,再由主进 程将待写数据封装为消息包,然后将消息包添加入冗余进程和数据比较器通 信通道,并主动唤醒数据比较器ft_syner进行数据比较,在数据比较器 ft_syner完成数据比较后,冗余进程通过检测消息包中的比较结果字段获得 比较结果。
所述的通信通道,实现方式如下:在Linux操作系统内核中创建事件链 表ft_syner_event_list,冗余进程和数据比较器通过事件链表 ft_syner_event_list实现通信。
数据比较器和冗余进程以生存者-消费者方式工作,冗余进程将待比较 的数据按协议格式整理为消息包后挂接在事件链表ft_syner_event_list中, 比较器从该事件链表ft_syner_event_list中取下消息包,从中提取数据信息 进行比较。
所述的消息包的格式为:
typedef struct{
struct list_head list;
short ft_msg_type;
struct task_struct*p1;
struct task_struct*p2;
void*master_data;
long master_data_len;
void*slave_data;
long slave_data_len;
short error;
}ft_syner_event_msg;
其中,list为链表头,用于将消息包挂入事件链表,采用list_head为Linux 内核通用链表结构,消息包的插入、删除操作使用内核中的list_add()和 list_del()完成;
ft_msg_type为消息类型,表示消息包来自于哪一类系统调用,具体值 定义如下:
#define FT_WRITE 1 //write()系统调用
#define FT_WRITEV 2 //writev()系统调用
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安交通大学;山东高效能服务器和存储研究院,未经西安交通大学;山东高效能服务器和存储研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010103349.X/2.html,转载请声明来源钻瓜专利网。





