论文网
首页 理科毕业电气毕业正文

一种虚拟化集群心跳算法

  • 投稿丑小
  • 更新时间2015-09-28
  • 阅读量690次
  • 评分4
  • 90
  • 0

刘明锦

(四川水利职业技术学院,四川成都611231)

摘要:随着虚拟化技术逐渐在数据中心环境中的普及,虚拟化系统的容灾成效日益成为人们关注的焦点,而虚拟化集群的心跳算法是关系虚拟化容灾成效的关键技术之一。研究了一种虚拟化的心跳算法,该算法通过利用所有网络节点有序的进行网络心跳检测,输出一个布尔值,负责裁判进程的Master主机根据该值判断节点是否出现故障,可用于快速检测出集群环境中节点的故障。

教育期刊网 http://www.jyqkw.com
关键词 :虚拟化;集群;心跳;高可用性

中图分类号:TN711?34 文献标识码:A 文章编号:1004?373X(2015)17?0110?04

0 引言现在是云计算的时代,而虚拟化是云计算的基础。为了保障数据的安全性,采用虚拟化技术之后一般都需要做基于虚拟化的高可用性集群,其中心跳检测技术是高可用性集群中非常关键的技术,能够在一定的时间内准确地检测出物理服务器的可用状态(存活或者宕机)的心跳检测技术是实现高可用性的前提和保障。本文提出了一种新的虚拟化的心跳优化算法(Method ofVirtualization High Availability,MVHHA),该算法通过集群内物理主机定期发出代表可用性的α 值,利用HA预设的失效阈值与α 值进行比较判断数据中心内节点的状况,该算法可用于采用虚拟化技术的高可用集群中主机的存活检测。

在虚拟化领域,常用的检测方法是由一台Master主机(Master由虚拟化集群建立之初由集群选定)在设定的时间内(5 s为一个检测周期)进行HA内的主机存活检测,检测结果输出一个Boolean value布尔值,通过该值的状态判断主机是否存活。通常情况下,主机存活的检测往往在HA 高可用性过程(HA 高可用性过程包括主机存活检测、失效后的主机解锁、接管以及业务恢复等)中占用时间最长。这种方法比较简单直观,但是检测效率较低、检测时间过长,在一些对于高可用性要求较为严苛的环境中不利于业务的迁移。

1 算法描述

MVHHA 算法主要在虚拟化集群的高可用性环境下通过心跳信号检测主机的存活情况。该算法将检测进程和裁判进程分开。检测进程pi(Σ(i=1~n))在集群内的节点(主机)中运行,监控自身节点的运行状况,同时通过进程pi 检测集群内的其他节点状况。进程pi 定期向其他节点上的pi(Σ(i=2~n))发送心跳检测包,其他节点的检测进程收到该包之后,返回一个Boolean。如果在规定时间内,该进程收到了其他所有检测进程返回的数据包,表示集群可用。如果没有收到某一台节点的心跳检测包,立刻报告给负责裁判进程的Master 主机,由Master主机的裁判进程q 进行记录,并返回记录给报告故障的进程pi。

为了避免因为网络状况恶化或者主机问题出现的误报,检测进程采用单独的网络进行信号传输,同时,该算法要求检测进程pi 在收到检测请求时,会比对检测信号的pi 进程序号,如果是进程序号为pi - 1 的检测进程发出的信号,那么在返回Boolean值之后,pi 会在预设周期Ti 内进行下一次的心跳检测。

同时,为了防止Master宕机引起的集群崩塌(单点故障),pi(i>1)在发送报告给Master时,如果在规定时间t 内没有收到Master主机的pi(i=1)检测进程的回应,将报告发送给pi + 1(i=1)即可。

该算法使用了集群内的所有节点进行多维度的检测,能够快速检测出集群内的节点故障,便于HA 高可用性节点上的虚拟机迅速定位和迁移。

从图5中可以看到,在第2行和第4行时即0.2 s和0.4 s 时,Master 分别收到了来自第一台Slave 和第3 台Slave 的报告,至此,关于心跳优化算法的虚拟仿真完成。

原来的心跳信号在5 s内由Master主机发送1次心跳检测,也就是说如果出现主机宕机情况,检测时间至少需要5 s以上,在采用了优化算法之后,由于采用了类似分布式检测的优化算法,在ΔTi 的间隔内由不同的主机按照一定的序号进行集群内的循环心跳信号检测,如果在ΔTi 时间之内有主机宕机,即可检测出来。

该算法相对于原来算法有着以下优势:

(1)快速定位。可以在很短的时间内判定主机出现故障,快速定位故障主机。

(2)时间减少。原算法需要进行检测3次(防止误判),每次5 s,整个过程耗时15 s。而采用集群内其他主机一同参与检测过程,检测次数为2次,耗时为2ΔTi 秒(设定ΔTi 的时间小于1 s)。

(3)增加检测正确性。以往都是由Master 主机进行心跳检测,如果出现网络掉包等故障时,可能会出现报错的情况,而进行优化后,可以提供一个所有主机参与的检测结果,提供了更高的正确性。

(4)增加了集群的稳定性。如果出现故障的主机是Master,那么Slave 主机会马上进行Master 主机的选举,避免了HA 过程出现更长时间的等待,增加了集群的稳定性。

4 结语

本文提出了一种虚拟化集群的心跳算法,通过该算法对心跳检测流程进行改进,可以极大地减少节点故障的检测时间,它克服了传统心跳机制耗用时间较长、效率低下的问题,同时解决了大规模节点状态下的网络拥塞问题,具有检测效率高、准确性高,具有伸缩弹性等特点。同时,如何利用子网的划分提高网络心跳检测的效率仍然是一个值得深入研究的课题。

教育期刊网 http://www.jyqkw.com
参考文献

[1] 王欣.VMware软件虚拟化研究及应用[J].数据通信,2012(6):30?32.

[2] 何禹,胡宇鸿,王一波.虚拟化技术在校园网数据中心的应用[J].电子科技大学学报,2007,36(6):1461?1464.

[3] VMware.VMware文档[DB/OL].[2015?02?23].http://www.vmware.com/cn/support/support? resources/pubs.

[4] GULATI A. VMware distributed resource management:design,implementation,and lessons learned [EB/OL]. [2013 ?02 ?15].http://waldspurger.org/carl/papers/drs?vmtj?mar12.pdf.

[5] 刘媛媛,高庆一,陈阳.虚拟计算环境下虚拟机资源负载均衡方法[J].2010,36(16):30?32.

[6] KATSAROS D,PALLIS G. Cloud computing [J]. IEEE Net?work,2011,25(4):4?5.

[7] KTAMURA K,HOMMA H. Storage virtualization system andmethods:US,6857059 B2 [P]. 2007?12?13.

[8] NICOL II W B,BOKOR B R,HAGGAR P F,et al. Avatarcloning in a virtual world:US,8584024 B2 [P]. 20013?11?12.[9] 王德军,王丽娜.容灾系统研究[J].计算机工程,2005,31(6):43?45.

[10] LOVELAND S,DOW E M,LEFEVRE F,et al. Leve?ragingvirtualization to optimize high ? availability system configura?tions [J]. Journal of IBM Systems,2008,47(4):591?604.

[11] NATHUJI R,SCHWAN K. Virtual power:coordinated powermanagement in virtualized enterprise systems [C]// Procee ?dings of 2007 ACM SIGOPS Symposium on Operating Sys?tems Principles. [S.l.]:ACM,2007:265?278.