论文部分内容阅读
在军事领域、商业领域和自然科学研究等领域中,需要计算机具有很高的可靠性。提高计算机的可靠性对计算机计算结果的正确性、连续运行的稳定性有着重要的意义。目前在高可用计算机的应用领域中,使用集群技术构建的单一系统映像集群逐渐占据主流地位。单一系统映像集群采用透明的方式对用户提供强大的容错能力和单一的系统视图,使用户在获得系统提供的高可靠性的同时能够更方便的使用集群。目前流行的高可用集群多数采用了在用户级实现的检查点容错技术,然而在用户级实现的检查点容错软件对程序缺乏透明性且在功能上有较多限制;在操作系统内核级则可以对应用程序实现透明的、进程粒度的检查点备份,并且由于在内核空间中可以方便的获取所有和进程状态相关的数据,因此能够实现功能更完备、备份及恢复效率更高的检查点构件。另外,目前存在的使用检查点容错技术的集群普遍简单的集成了开源组件,并采用简单的全局检查点算法来实现集群的检查点子系统,缺乏针对集群应用背景环境设计的高效的全局检查点算法。尽管在分布式环境下的全局检查点策略算法已经有不少的研究成果,然而由于不同的算法有各自的局限性:或因系统的规模增大导致效率下降,或因进程间消息数目增加导致性能降低,在集群检查点容错的实际应用中效果并不理想。本文从整个集群软件体系结构宏观的角度对单一系统映像集群检查点子系统进行构成和功能上的分析,在对单机检查点软件和全局检查点算法进行研究的基础上,提出了基于Linux内核的增量检查点策略和一种针对集群应用环境的基于通信单元划分的检查点算法。算法提出了静态和动态两种不同的划分策略,针对动态的划分策略采用启发式的多层图划分的方法划分通信单元,并根据协同式检查点算法和基于日志消息的非协同检查点算法的不同特点,将两者分别应用于通信单元内部和通信单元之间。基于通信单元划分的检查点算法结合了协同式检查点算法和基于日志消息的非协同检查点算法的优点,在进程规模增大和进程间消息数目增加时仍保持良好的可扩展性和较低的时空开销。提出的基于Linux内核的增量检查点策略则能够进一步的降低检查点备份的空间开销,能够很好的用于单一系统映像集群的检查点备份和卷回恢复的实现。本文的对比仿真实验结果显示了基于通信单元划分的检查点算法具有更低的时间开销和更好的可扩展性,适合于构建高效的集群检查点子系统。