论文部分内容阅读
为了提高云服务的可靠性,目前学术界和工业界已经给出了一些解决方案。这些方案的基本流程是先检测故障,然后再恢复故障。然而由于传统的故障检测器采用了端到端的超时机制,导致检测故障的时间往往会超过恢复故障的时间,故障检测已经成为影响云服务容错性能的瓶颈;除此之外,传统的故障检测技术一般都是考虑小规模的一对一检测模型,而在云环境下则需要对整个数据中心的状态有一个全局性的视图,因此必须支持大规模的计算系统,对故障检测器的扩展性也提出了较高的要求;最后很多高可用服务都需要跨云部署,所以不同云环境之间的故障检测也是一个值得研究的问题。 基于分层的故障检测系统FDKeeper(Failure Detection Keeper),具有快速检测、高扩展性和开放性等特点。为了解决故障检测技术成为影响云服务容错性能瓶颈的问题,FDKeeper设计并实现了基于分层的故障检测机制,通过精细的分层,故障检测器可以充分利用每一层内部的信息,基于内部信息能够加快故障检测速度,增大故障检测准确性,减小误报噪声,提供详细的故障信息;为了支持大规模的计算系统,使故障检测器具有较高的扩展性,FDKeeper采用类似ZooKeeper的集群架构,具有较高的扩展性,能够支持大规模的计算系统,并设计了一种基于层次的故障管理模型,能够支持超大规模的计算系统;为了实现不同云环境的互相检测,FDKeeper设计并实现了开放的CDP(Cloud Detection Protocol)云服务故障检测协议,支持不同云环境之间的故障检测。 实验结果表明,FDKeeper的应用层/内核层故障检测时间小于600ms,虚拟机管理器/物理层故障检测时间小于2s,误报噪声小于0.27次/年,性能开销小于1%,各项指标均比现有的故障检测系统好,同时能够详细生成每层的故障描述信息,为故障恢复提供支持;在扩展性方面,实验结果表明,FDKeeper能够保证用于故障检测的节点与计算系统的规模呈线性关系,增长因子小于0.001。