论文部分内容阅读
随着网络技术的飞速发展,公司、企业以及政府逐渐把他们的业务扩展到网络上。导致网络业务应用系统的规模越来越大,这体现在参与完成业务功能的计算机节点数目越来越多,业务应用覆盖区域越来越广,网络环境由早期的局域网逐渐扩展到广域网,形成了大规模的分布式应用系统。由于系统规模的不断扩大,系统本身发生不可预计的故障的可能性大大增加。同时,外在危险因素对系统的正常持续运行的影响也越来越大。自然灾害、意外的灾难都会对规模庞大的分布式应用系统造成致命伤害。而同时人们的生活越来越依赖于这种大规模的分布式应用系统,所以对于业务运行连续性的要求越来越高,使得业务系统的容灾工作成为目前分布式系统研究工作的一个焦点。
失效检测技术是容灾技术中的一个关键技术,是实现系统容灾的基础。快速、高效、准确的失效检测是能否实现有效容灾的前提和保障。本文针对面向容灾的失效检测技术进行了研究。首先本文详细介绍了失效检测的理论基础,包括几种典型的分布式系统的模型、失效检测模型和失效检测的分类方法等。着重讨论了失效检测的两个重要属性:完整性和准确性,以及针对这两个属性的级别分类。结合容灾的实际需求,提出了符合容灾系统实际环境的分布式系统模型和失效模型,在此基础上建立了面向容灾的失效检测模型。并根据建立的系统模型,证明了由于检测消息可能丢失的这个不确定性因素的存在,面向容灾的失效检测无法保证实现任何一个已知的准确性级别。进而提出了一个适用于容灾系统的新的失效检测的准确性级别——最大可能的准确。
由于分布式系统的规模不断扩大,失效检测系统也在向大规模的方向发展。本文针对于大规模失效检测所遇到的问题,分析了大规模失效检测服务应该满足的特性和新的要求;研究了现有的实现大规模失效检测服务的方法:层次式设计方法和流言式方法;讨论了它们的优点和局限性,尤其指出现有的这两种设计方法无法实现失效检测的完整性和准确性要求。结合本文提出的失效检测的新的级别要求提出了一个大规模失效检测系统的设计。
最后在一个实际的分布式容灾系统中实现了一个完整的失效检测系统,把失效检测功能分成多个部件共同完成,并利用动态缓冲池技术提高了失效检测的效率。在实现了高效失效检测的基础上,完成了基于数据流复制的容灾系统。