基于OpenStack的累积型失效检测方法P-FD的研究和应用

2018-02-28 02:51李雪莉
信息安全研究 2018年2期
关键词:检测时间进程阈值

李雪莉

(四川大学计算机学院 成都 610065)

失效检测是系统可靠性保障的基本技术[1],它是一种应用或者子系统,负责在分布式系统中检测节点失效,它是分布式系统中的基础模块,用来确保容错性.传统的失效检测通过发送心跳信息和设定超时时间进行检测[2].OpenStack是一个先进的、开源的以基础设施为服务(IaaS)的开源云计算软件[3],它提供多种服务.OpenStack中的失效检测方法是基于传统的心跳和超时机制部署,但固定的超时时间设定以及怀疑度的简单二元结果不能适应云计算环境下实时且动态变化的网络状况,导致误判率较高.

针对传统失效检测方法存在的误判问题,Chen等人[4]和Bertier等人[5]提出了自适应失效检测方法,它主要考虑到了网络变化情况:Chen等人提出的Chen-FD方法首先是对心跳到达时间进行抽样,利用抽样估算下一个心跳到达的时间,其Δto是基于估算加安全边界α.Bertier等人提出的Bertier-FD方法和Chen等人的方法类似,只是它的Δto的计算是结合Chen的估算加上网络往返时间计算安全边界值α.这种自适应检测方法相对于传统的超时检测考虑了网络通信质量的变化,提供了较好的估计方法来预测下一个心跳的到达时间.但是固定的安全边界值以及网络往返时间并不能准确地反映动态变化的网络情况,因而不能很好地减少因网络延迟而造成的误判.

本文因此研究了累积型失效检测方法,提出了一种基于正太分布并带二次确认机制的累积型失效检测算法P-FD.P-FD检测方法使用了与大多数广域网特征相符的正太分布[6]作为心跳到达间隔时间的分布假设,并根据时间累积计算怀疑度,因此能更好地适应实时变化的网络环境;同时,采用Pull和阈值结合的二次确认策略,极大地降低了误判率.本文通过实验用该检测方法替换现有心跳检测算法,并部署在OpenStack云平台上,在确保检测准确率的前提下削弱了网络延迟以及丢包对平台失效检测的影响,降低了误判率.

1 P-FD累积型失效检测方法

累积型失效检测方法提供了在大型分布式系统中比较灵活的失效检测机制[7],基于过去心跳间隔到达时间的分布,输出一个累积的与时间相关的怀疑度的值,而不是二元结果(信任或怀疑)对节点是否失效进行判断.如果一个进程确实崩溃了,这个值可以保证随着时间累积并趋向于无穷大.

P-FD方法是一种基于正太分布[8]同时结合Pull方法进行二次确认的按照时间累积计算怀疑度的失效检测方法,是对累积型失效检测的一种实现方法.它使用心跳检测作为基本检测策略,并假定心跳间隔到达时间服从正太分布.

如图1所示,怀疑度基于上一次心跳信息的时间计算,一个进程的怀疑度是渐进上升的.

图1 P-FD方法示意图

一个应用可以根据自己的服务质量需求设置自己的阈值,当怀疑度超过阈值时怀疑节点失效同时触发二次确认机制,二次确认失效后判定失效.进行失效检测的监控节点和被监控节点无需建立永久连接,所以使用UDP连接进行通信.假定2台节点是时间同步的,具体检测流程如下:

1) 首先采样心跳到达时间.被监控进程(p进程)给每个心跳信息添加一个序列号,用于监控的进程(q进程)将心跳到达时间存储到固定大小(N,N可以配置)的滑动窗口中,每当新的心跳到来,其到达时间就被存储到这个窗口中,然后将相对最旧的心跳消息从当前窗口中删除.

2) 用这些样本来确定后面心跳间隔的分布,根据滑动窗口中的数据可以计算心跳到达间隔时间.

3) 不断确定心跳间隔的平均值μ和方差σ.

4) 利用这些间隔时间计算当前失效怀疑度S值,S通过式(1)计算:

(1)

其中,tlast是最新收到心跳的时间,tnow是当前时间,Plater(t)是下一次心跳从上一次心跳再经过t时间后到达的概率,其含义为如果在时间tnow判断节点失效,则误判可能性为P=Plater(tnow-Tlast),也就是心跳在tnow之后到达的概率.所以P越大说明误判概率越大,而0

(2)

=1-F(t),

(3)

其中,F(t) 是μ和方差σ2正态分布的累积分布函数.

5) 比较S的值和其阈值λ,阈值λ根据不同应用需求给出.阈值λ对应的超时检测时间记为Tfirst.如果S>λ,我们将采用Pull方法,即进程q主动向进程p发送一个检测消息,进程p收到进程q的询问消息后,返回一个响应,如果进程q在一个Tfirst等待时间内没有收到p的响应,则判定p失效.采用Pull方法主动检测心跳,可以缩短一定的检测时间.

2 实 验

本次实验的目标是研究不同阈值λ对P-FD方法的影响,其次比较P-FD方法和Chen-FD以及OpenStack平台自身使用的失效检测方法的误判率.

2.1 评价标准

为了量化表示检测速度和准确度,Chen等人[9]提出了一系列指标来规范失效检测器的服务质量,以下2个主要指标用来描述失效检测器的服务质量:

1) 检测时间.表示从某个进程崩溃时刻开始到该进程被怀疑所经过的时间.

2) 误判率.表示每单位时间失效检测方法出错数,即失效检测方法出错的频率.

我们的实验将基于以上2个指标描述和对比失效检测算法的效率.

2.2 实验环境

本实验采用OpenStack云平台的Kilo版本,部署如下:有2个节点,一个是计算节点,即被监控的节点;另一个是控制节点,用于监控节点的状态.2个节点硬件和软件配置如表1 所示:

表1 节点软硬件配置情况

2个节点相互通信时在本地产生一定的延迟,用来模拟互联网中的网络延迟,延迟数据来自广域网,所有消息都通过UDP协议传送,对百度进行ping响应测试,历时9 h,共采集4万条数据,已发送36 537条,接收36 380条,其中丢失157条,丢包率为0.42%,最小响应时间50 ms,最大响应时间3 286 ms,平均值74 ms,我们在每小时拿到的数据中各随机取2 000条记录,共18 000条作为心跳信息延迟时间,心跳记录的分布如图2所示.从数据特点来看,满足云计算环境下网络信息延迟和丢包特点.

图2 心跳延迟时间分布

2.3 实验结果

在OpenStack中应用P-FD失效检测方法,取发送周期Δt=1 s,滑动窗口N=1 000,对P-FD算法进行检测.其阈值λ和误判率(采用了对数刻度)如图3所示,阈值λ和检测时间如图4所示.

图3 阈值λ和误判率

图4 阈值λ和检测时间

综合考虑检测时间和误判率,在P-FD中,取阈值λ=9.之后与OpenStack现有失效检测方法以及Chen-FD算法进行对比,实验结果如图5所示:

图5 3种方法检测时间和误判率对比

2.4 实验分析

图3和图4表明当阈值λ取值越大,其误判率越低而检测时间越长.实验结果基本符合理论研究分析,证明P-FD算法可以根据不同的服务质量需求对阈值进行设置,适用性广泛.从图3可以看出,λ∈[8,12]之间误判率显著降低.图4显示当阈值λ∈[9,16],检测时间显著增加.实验证明当λ=9时,检测时间较短且误判率较低.

图5显示了3种失效检测方法的检测时间和误判率对比.从图5可以看出,OpenStack本身的失效检测方法在云环境下效率不好,因为它并没有考虑到网络变化情况,将一些因为网络延迟导致的心跳信息延迟也当作失效,所以误判率高.而P-FD相对于Chen-FD具有更低的误判率,误判率相同时P-FD方法检测时间更短.实验表明,使用累积型失效检测方法和Pull二次确认机制有效降低了复杂不稳定网络环境下的误判率.因此将其应用到OpenStack平台上是可行的.

3 结束语

失效检测对于OpenStack这种有高可用需求的云平台而言是一个重要组成部分,需要适应云平台下复杂不稳定的网络状况.但是OpenStack现有失效检测方法的实现只适应于较好且稳定的网络状况,不能适应云计算下复杂且实时变化的网络环境,误判率高.将基于累积型失效检测的P-FD方法应用到OpenStack平台中能够更好地适应大型云计算模式中动态且不稳定的网络环境,降低了误判率.

[1]Liu J, Wu Z, Wu J, et al. A Weibull distribution accrual failure detector for cloud computing[J]. PloS One, 2017, 12(3): e0173666

[2]殷家琪. 基于虚拟机的快速故障恢复技术的研究[D]. 哈尔滨: 哈尔滨工业大学, 2013

[3]刘飞宇. OpenStack 云平台下的虚拟机监控与控制的研究与实现[D]. 成都: 电子科技大学计算机应用技术学院, 2013

[4]Chen N J, Wei J, Yang B, et al. Adaptive failure detection in Web application server[J]. Journal of Software, 2005, 16(11): 1929-1938

[5]Bertier M, Marin O, Sens P. Implementation and performance evaluation of an adaptable failure detector[C] //Proc of Int Conf on Dependable Systems and Networks, Piscataway, NJ: IEEE, 2002: 354-363

[6]Casimiro A, Verissimo P. Using the timely computing base for dependable QoS adaptation[C] //Proc of the 20th IEEE Symp on Reliable Distributed Systems. Piscataway, NJ: IEEE, 2001: 208-217

[7]Défago X, Urbán P, Hayashibara N, et al. Definition and specification of accrual failure detectors[C] //Proc of Int Conf on Dependable Systems and Networks. Piscataway, NJ: IEEE, 2005: 206-215

[8]Hayashibara N, Defago X, Yared R, et al. The/spl phi/accrual failure detector[C] //Proc of the 23rd IEEE Int Symp on Reliable Distributed Systems. Piscataway, NJ: IEEE, 2004: 66-78

[9]Chen W, Toueg S, Aguilera M K. On the quality of service of failure detectors[J]. IEEE Trans on Computers, 2002, 51(1): 13-32

猜你喜欢
检测时间进程阈值
采用红细胞沉降率和C-反应蛋白作为假体周围感染的阈值
对两种细菌鉴定法在血液检验中的应用效果进行分析
债券市场对外开放的进程与展望
小波阈值去噪在深小孔钻削声发射信号处理中的应用
新型溶血素与传统溶血素在临床血常规检验中的应用研究
改革开放进程中的国际收支统计
ABL90血气分析仪在急诊科的应用研究
不同检测时长对粉煤灰砌块放射性检测结果的影响
基于迟滞比较器的双阈值稳压供电控制电路
一种改进的小波阈值降噪方法