999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種虛擬化集群心跳算法

2015-09-23 21:52:35劉明錦
現(xiàn)代電子技術(shù) 2015年17期

劉明錦

摘 要: 隨著虛擬化技術(shù)逐漸在數(shù)據(jù)中心環(huán)境中的普及,虛擬化系統(tǒng)的容災(zāi)成效日益成為人們關(guān)注的焦點(diǎn),而虛擬化集群的心跳算法是關(guān)系虛擬化容災(zāi)成效的關(guān)鍵技術(shù)之一。研究了一種虛擬化的心跳算法,該算法通過利用所有網(wǎng)絡(luò)節(jié)點(diǎn)有序的進(jìn)行網(wǎng)絡(luò)心跳檢測,輸出一個(gè)布爾值,負(fù)責(zé)裁判進(jìn)程的Master主機(jī)根據(jù)該值判斷節(jié)點(diǎn)是否出現(xiàn)故障,可用于快速檢測出集群環(huán)境中節(jié)點(diǎn)的故障。

關(guān)鍵詞: 虛擬化; 集群; 心跳; 高可用性

中圖分類號: TN711?34 文獻(xiàn)標(biāo)識碼: A 文章編號: 1004?373X(2015)17?0110?04

Heartbeat algorithm for virtualization cluster

LIU Mingjin

(Sichuan Water Conservancy Vocational and Technical College, Chengdu 611231, China)

Abstract: As the gradual popularization of virtualization technology in data centre environment, disaster tolerance effect of the virtualization system has become the focus concerned by people increasingly, and the heartbeat algorithm of virtualization cluster is one of the key technologies to influence the disaster tolerance effect of virtualization. A heartbeat algorithm of virtualization is studied in this paper. The algorithm detects network heartbeats in order by using all network nodes, and then outputs a Boolean value. According to this value, the fault of the node is judged by the Master host which is in charge of progress judgment. It can be used to detect the fault of node in cluster environment rapidly.

Keywords: virtualization; cluster; heartbeat; high availability

0 引 言

現(xiàn)在是云計(jì)算的時(shí)代,而虛擬化是云計(jì)算的基礎(chǔ)。為了保障數(shù)據(jù)的安全性,采用虛擬化技術(shù)之后一般都需要做基于虛擬化的高可用性集群,其中心跳檢測技術(shù)是高可用性集群中非常關(guān)鍵的技術(shù),能夠在一定的時(shí)間內(nèi)準(zhǔn)確地檢測出物理服務(wù)器的可用狀態(tài)(存活或者宕機(jī))的心跳檢測技術(shù)是實(shí)現(xiàn)高可用性的前提和保障。本文提出了一種新的虛擬化的心跳優(yōu)化算法(Method of Virtualization High Availability,MVHHA),該算法通過集群內(nèi)物理主機(jī)定期發(fā)出代表可用性的[α]值,利用HA預(yù)設(shè)的失效閾值與[α]值進(jìn)行比較判斷數(shù)據(jù)中心內(nèi)節(jié)點(diǎn)的狀況,該算法可用于采用虛擬化技術(shù)的高可用集群中主機(jī)的存活檢測。

在虛擬化領(lǐng)域,常用的檢測方法是由一臺Master主機(jī)(Master由虛擬化集群建立之初由集群選定)在設(shè)定的時(shí)間內(nèi)(5 s為一個(gè)檢測周期)進(jìn)行HA內(nèi)的主機(jī)存活檢測,檢測結(jié)果輸出一個(gè)Boolean value布爾值,通過該值的狀態(tài)判斷主機(jī)是否存活。通常情況下,主機(jī)存活的檢測往往在HA高可用性過程(HA高可用性過程包括主機(jī)存活檢測、失效后的主機(jī)解鎖、接管以及業(yè)務(wù)恢復(fù)等)中占用時(shí)間最長。這種方法比較簡單直觀,但是檢測效率較低、檢測時(shí)間過長,在一些對于高可用性要求較為嚴(yán)苛的環(huán)境中不利于業(yè)務(wù)的遷移。

1 算法描述

MVHHA算法主要在虛擬化集群的高可用性環(huán)境下通過心跳信號檢測主機(jī)的存活情況。該算法將檢測進(jìn)程和裁判進(jìn)程分開。檢測進(jìn)程[pi](∑(i=1~n))在集群內(nèi)的節(jié)點(diǎn)(主機(jī))中運(yùn)行,監(jiān)控自身節(jié)點(diǎn)的運(yùn)行狀況,同時(shí)通過進(jìn)程[pi]檢測集群內(nèi)的其他節(jié)點(diǎn)狀況。進(jìn)程[pi]定期向其他節(jié)點(diǎn)上的[pi](∑(i=2~n))發(fā)送心跳檢測包,其他節(jié)點(diǎn)的檢測進(jìn)程收到該包之后,返回一個(gè)Boolean。如果在規(guī)定時(shí)間內(nèi),該進(jìn)程收到了其他所有檢測進(jìn)程返回的數(shù)據(jù)包,表示集群可用。如果沒有收到某一臺節(jié)點(diǎn)的心跳檢測包,立刻報(bào)告給負(fù)責(zé)裁判進(jìn)程的Master主機(jī),由Master主機(jī)的裁判進(jìn)程q進(jìn)行記錄,并返回記錄給報(bào)告故障的進(jìn)程[pi。]

為了避免因?yàn)榫W(wǎng)絡(luò)狀況惡化或者主機(jī)問題出現(xiàn)的誤報(bào),檢測進(jìn)程采用單獨(dú)的網(wǎng)絡(luò)進(jìn)行信號傳輸,同時(shí),該算法要求檢測進(jìn)程[pi]在收到檢測請求時(shí),會比對檢測信號的[pi]進(jìn)程序號,如果是進(jìn)程序號為[pi-1]的檢測進(jìn)程發(fā)出的信號,那么在返回Boolean值之后,[pi]會在預(yù)設(shè)周期[Ti]內(nèi)進(jìn)行下一次的心跳檢測。

同時(shí),為了防止Master宕機(jī)引起的集群崩塌(單點(diǎn)故障),[pi](i>1)在發(fā)送報(bào)告給Master時(shí),如果在規(guī)定時(shí)間t內(nèi)沒有收到Master主機(jī)的[pi](i=1)檢測進(jìn)程的回應(yīng),將報(bào)告發(fā)送給[pi+1](i=1)即可。

該算法使用了集群內(nèi)的所有節(jié)點(diǎn)進(jìn)行多維度的檢測,能夠快速檢測出集群內(nèi)的節(jié)點(diǎn)故障,便于HA高可用性節(jié)點(diǎn)上的虛擬機(jī)迅速定位和遷移。

2 算法分析

MVHHA算法可以用模型實(shí)現(xiàn),如圖1所示。

其檢測過程如下:

(1) 檢測首先由Master調(diào)用檢測進(jìn)程[pi](i=1),經(jīng)過預(yù)設(shè)的間隔時(shí)間[ΔTi]向集群內(nèi)的其他所有節(jié)點(diǎn)[p1n(i+1)]發(fā)送檢測數(shù)據(jù)包,[?i]表示檢測數(shù)據(jù)包的發(fā)送時(shí)間。

(2) 其他節(jié)點(diǎn)收到數(shù)據(jù)包之后向請求節(jié)點(diǎn)返回一個(gè)確認(rèn)信息的數(shù)據(jù)包,[δi]表示從數(shù)據(jù)包發(fā)出到得到請求所消耗的時(shí)間。

(3) 如果節(jié)點(diǎn)的檢測進(jìn)程在規(guī)定的時(shí)間[ΔTi]內(nèi)收到節(jié)點(diǎn)的回復(fù),表示該節(jié)點(diǎn)狀態(tài)正常。

(4) 如果節(jié)點(diǎn)的檢測進(jìn)程沒有在規(guī)定的時(shí)間[ΔTi]內(nèi)收到節(jié)點(diǎn)的回復(fù),表示該節(jié)點(diǎn)狀態(tài)不正常,檢測進(jìn)程啟動報(bào)告機(jī)制,向Master進(jìn)行節(jié)點(diǎn)失效匯報(bào)。

(5) 在下一個(gè)間隔時(shí)間[ΔTi],由下一個(gè)節(jié)點(diǎn)的檢測進(jìn)程[pi+1]向集群內(nèi)的其他所有節(jié)點(diǎn)[p1ni]發(fā)送檢測數(shù)據(jù)包,[?i+1]表示檢測數(shù)據(jù)包的發(fā)送時(shí)間。

(6) 在所有節(jié)點(diǎn)的檢測都完畢之后,又重新從Master節(jié)點(diǎn)的檢測進(jìn)程開始檢測,進(jìn)行循環(huán)操作。

(7) Master在收到2個(gè)以上節(jié)點(diǎn)的失效報(bào)告時(shí),即確定該節(jié)點(diǎn)不可用,隨即啟用高可用性HA的應(yīng)急機(jī)制,進(jìn)行虛擬機(jī)的遷移,保障業(yè)務(wù)的連續(xù)性。

其心跳檢測過程總耗時(shí)為[T,]可以表示為:

[T=inΔTi,][ΔTi]為單個(gè)節(jié)點(diǎn)檢測需要的時(shí)間

由此可以看出,整個(gè)集群進(jìn)行一次心跳檢測的時(shí)間[T]的多少取決于集群中節(jié)點(diǎn)數(shù)量[n]和[ΔTi]。因此要提高整個(gè)集群的檢測效率,在不影響工作的情況下,需要計(jì)算[ΔTi]的最佳值。

這里采用[ΔTi]的算法:[ΔTi=max2×nΔTi×bM×β, 1nδin,]推演出:

[ΔTi=max2nbMβ, 1nδin]

式中:[n]表示節(jié)點(diǎn)數(shù)量;[b]表示心跳檢測包的大小;[M]表示網(wǎng)絡(luò)帶寬;[β]表示網(wǎng)絡(luò)正常運(yùn)行閾值。引入[β]是為了解決在網(wǎng)絡(luò)端,心跳檢測和返回?cái)?shù)據(jù)不會因?yàn)榫W(wǎng)絡(luò)擁塞而導(dǎo)致不能夠正確到達(dá)。

3 算法測試

根據(jù)對優(yōu)化算法的設(shè)想,結(jié)合Matlab的Simulink工具進(jìn)行了MVHHA算法的仿真,如圖2所示。

圖2 Simulink仿真模型

在圖2中可以看出,系統(tǒng)設(shè)置了3個(gè)sFuncation函數(shù)Process1,Process2和Process3。用這三個(gè)函數(shù)模擬集群環(huán)境下的節(jié)點(diǎn),通過對這三個(gè)函數(shù)設(shè)置不同的在線概率值,模擬節(jié)點(diǎn)的ON/OFF狀態(tài),其中對在線節(jié)點(diǎn)的概率設(shè)置如下:

Function [Broadcast_Master_1,Broadcast_Slave_1,Repaly_Slave_1] = Process1(Receive_replay_1,Receive_broadcast_1)

%#codegen

coder.extrinsic(′rand()′);

Probability=1; %設(shè)定在線概率

Message_length=32; %設(shè)定心跳檢測數(shù)據(jù)包大小為32 b

Broadcast_Master_1=zeros(Message_length,1);

%初始化對Master廣播

Broadcast_Slave_1=zeros(Message_length,1);

%初始化本機(jī)詢問廣播

Repaly_Slave_1=zeros(Message_length,1)-1;

%初始化收到的回復(fù)

Broadcast_Slave_1=zeros(Message_length,1)+1;

%發(fā)送廣播給Slave詢問其狀態(tài)

if(sum(Receive_broadcast_1)~=0)

%若收到來自其他主機(jī)的詢問廣播,則發(fā)送自己的狀態(tài),在

線概率為Probability

if(rand()<=Probability)

Repaly_Slave_1=zeros(Message_length,1)+1;

% 若在線,回復(fù)全1的廣播

else

Repaly_Slave_1=zeros(Message_length,1);

%否則,回復(fù)全零不在線

end

else

Repaly_Slave_1=zeros(Message_length,1)?1;

%未收到來自其他Slave的詢問廣播

end

%Repaly_Slave_1 %測試數(shù)據(jù)

if(sum(Receive_replay_1)==0)

%如果收到存在宕機(jī)的Slave,報(bào)告該信息給Master

Broadcast_Master_1=zeros(Message_length,1)+1;

End

而Process2設(shè)置如下:

Function [Broadcast_Master_2,Broadcast_Slave_2,Repaly_Slave_2] = Process2(Receive_replay_2,Receive_broadcast_2)

%#codegen

coder.extrinsic(′rand()′);

Probability =0; %在線概率

Message_length=512; %數(shù)據(jù)包大小為512 b

Broadcast_Master_2=zeros(Message_length,1);

%初始化對Master廣播

Broadcast_Slave_2=zeros(Message_length,1);

%初始化本機(jī)詢問廣播

Repaly_Slave_2=zeros(Message_length,1)-1;

%初始化收到的回復(fù)

Broadcast_Slave_2=zeros(Message_length,1)+1;

%發(fā)送廣播給Slave詢問其狀態(tài)

if(sum(Receive_broadcast_2)~=0)

%若受到來自其他主機(jī)的詢問廣播,則發(fā)送自己的狀態(tài),在

線概率為Probability

if(rand()<=Probability)

Repaly_Slave_2=zeros(Message_length,1)+1;

%若在線,回復(fù)全1的廣播

else

Repaly_Slave_2=zeros(Message_length,1);

%否則,回復(fù)全零不在線

end

else

Repaly_Slave_2=zeros(Message_length,1)?1;

%未收到其他Slave的詢問廣播

end

Repaly_Slave_2 %測試數(shù)據(jù)

if(sum(Receive_replay_2)==0)

%如果收到存在宕機(jī)的Slave,報(bào)告該信息給Master

Broadcast_Master_2=zeros(Message_length,1)+1;

end

由此可以看到:Process1和Process3的在線概率為1,在線概率的單位是100%,1表示這臺電腦在線,Process2的在線概率為0,表示這臺電腦宕機(jī)了。

初始數(shù)據(jù)包大小為32位。

Process中的Broadcast_Slave表示對其他Slave主機(jī)的詢問信息,在發(fā)送這個(gè)詢問信息時(shí),進(jìn)行了時(shí)間延遲處理,對第二個(gè)和第三個(gè)Process采用了延時(shí)器對數(shù)據(jù)發(fā)送進(jìn)行延遲,參數(shù)設(shè)置如下:

Delay length:(dialog)=2

Sample time (?1 for inherited)=0.1(抽樣時(shí)間)

Broadcast_Slave發(fā)送的數(shù)據(jù)進(jìn)行了處理,主要是為了避免空值,增加了一個(gè)常數(shù)容器,值為Zero(512,1),還增加了一個(gè)電磁波發(fā)生器。這兩個(gè)容器與輸入的信號經(jīng)過一個(gè)開關(guān)進(jìn)行處理,開關(guān)的取樣時(shí)間也是0.1 s,如圖3所示。

Repaly_Slave表示當(dāng)收到其他Slave發(fā)送的消息時(shí)需要進(jìn)行回復(fù)。回復(fù)給每臺主機(jī)時(shí),需要經(jīng)過Adjust進(jìn)行數(shù)據(jù)的處理,處理過程如圖4所示。

如果Slave的Broadcast_Slave發(fā)送消息之后, Receive_replay收到有宕機(jī)的事件,那么立即報(bào)告給Master。在Master端為了更加明顯地顯示Master收到的內(nèi)容和波形圖,分別用To Workspace輸出結(jié)果和scope顯示波形圖,To Workspace中的輸出結(jié)果如圖5所示。

從圖5中可以看到,在第2行和第4行時(shí)即0.2 s和0.4 s時(shí),Master分別收到了來自第一臺Slave和第3臺Slave的報(bào)告,至此,關(guān)于心跳優(yōu)化算法的虛擬仿真完成。

原來的心跳信號在5 s內(nèi)由Master主機(jī)發(fā)送1次心跳檢測,也就是說如果出現(xiàn)主機(jī)宕機(jī)情況,檢測時(shí)間至少需要5 s以上,在采用了優(yōu)化算法之后,由于采用了類似分布式檢測的優(yōu)化算法,在[ΔTi]的間隔內(nèi)由不同的主機(jī)按照一定的序號進(jìn)行集群內(nèi)的循環(huán)心跳信號檢測,如果在[ΔTi]時(shí)間之內(nèi)有主機(jī)宕機(jī),即可檢測出來。

該算法相對于原來算法有著以下優(yōu)勢:

(1) 快速定位。可以在很短的時(shí)間內(nèi)判定主機(jī)出現(xiàn)故障,快速定位故障主機(jī)。

(2) 時(shí)間減少。原算法需要進(jìn)行檢測3次(防止誤判),每次5 s,整個(gè)過程耗時(shí)15 s。而采用集群內(nèi)其他主機(jī)一同參與檢測過程,檢測次數(shù)為2次,耗時(shí)為[2ΔTi]秒(設(shè)定[ΔTi]的時(shí)間小于1 s)。

(3) 增加檢測正確性。以往都是由Master主機(jī)進(jìn)行心跳檢測,如果出現(xiàn)網(wǎng)絡(luò)掉包等故障時(shí),可能會出現(xiàn)報(bào)錯(cuò)的情況,而進(jìn)行優(yōu)化后,可以提供一個(gè)所有主機(jī)參與的檢測結(jié)果,提供了更高的正確性。

(4) 增加了集群的穩(wěn)定性。如果出現(xiàn)故障的主機(jī)是Master,那么Slave主機(jī)會馬上進(jìn)行Master主機(jī)的選舉,避免了HA過程出現(xiàn)更長時(shí)間的等待,增加了集群的穩(wěn)定性。

4 結(jié) 語

本文提出了一種虛擬化集群的心跳算法,通過該算法對心跳檢測流程進(jìn)行改進(jìn),可以極大地減少節(jié)點(diǎn)故障的檢測時(shí)間,它克服了傳統(tǒng)心跳機(jī)制耗用時(shí)間較長、效率低下的問題,同時(shí)解決了大規(guī)模節(jié)點(diǎn)狀態(tài)下的網(wǎng)絡(luò)擁塞問題,具有檢測效率高、準(zhǔn)確性高,具有伸縮彈性等特點(diǎn)。同時(shí),如何利用子網(wǎng)的劃分提高網(wǎng)絡(luò)心跳檢測的效率仍然是一個(gè)值得深入研究的課題。

參考文獻(xiàn)

[1] 王欣.VMware軟件虛擬化研究及應(yīng)用[J].數(shù)據(jù)通信,2012(6):30?32.

[2] 何禹,胡宇鴻,王一波.虛擬化技術(shù)在校園網(wǎng)數(shù)據(jù)中心的應(yīng)用[J].電子科技大學(xué)學(xué)報(bào),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ì)算環(huán)境下虛擬機(jī)資源負(fù)載均衡方法[J].2010,36(16):30?32.

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

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

[8] NICOL II W B, BOKOR B R, HAGGAR P F, et al. Avatar cloning in a virtual world: US, 8584024 B2 [P]. 20013?11?12.

[9] 王德軍,王麗娜.容災(zāi)系統(tǒng)研究[J].計(jì)算機(jī)工程,2005,31(6):43?45.

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

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

主站蜘蛛池模板: 极品性荡少妇一区二区色欲| 国产丝袜啪啪| 777午夜精品电影免费看| 热re99久久精品国99热| 五月婷婷丁香色| 久久综合色播五月男人的天堂| 凹凸精品免费精品视频| 亚洲精品人成网线在线 | 香蕉综合在线视频91| 99视频有精品视频免费观看| av一区二区三区高清久久| 四虎综合网| 在线精品亚洲国产| 国产91高清视频| 国产亚洲欧美在线人成aaaa| 亚洲 欧美 中文 AⅤ在线视频| 综合人妻久久一区二区精品| 欧美色丁香| 久久人搡人人玩人妻精品| 欧美成人二区| 四虎国产精品永久一区| 中国特黄美女一级视频| 久久综合亚洲鲁鲁九月天| 亚洲欧美成人| 99性视频| 97久久人人超碰国产精品| 天天色天天综合| 国产剧情伊人| 性欧美久久| 亚洲中文字幕久久精品无码一区| 99视频精品全国免费品| 人人妻人人澡人人爽欧美一区| 国产第一页免费浮力影院| 一级毛片在线播放免费| 91九色国产在线| 国产精品密蕾丝视频| 又污又黄又无遮挡网站| 免费国产高清视频| 久久久久久午夜精品| 成人欧美在线观看| 国产十八禁在线观看免费| 亚洲综合九九| 无码中文字幕加勒比高清| 国产99免费视频| 97久久超碰极品视觉盛宴| 国产精品免费久久久久影院无码| 一边摸一边做爽的视频17国产| 亚洲欧美在线综合一区二区三区| 高清不卡毛片| 91探花在线观看国产最新| 性激烈欧美三级在线播放| 亚洲bt欧美bt精品| 手机永久AV在线播放| 成人夜夜嗨| 午夜高清国产拍精品| 亚洲福利片无码最新在线播放| 成人久久18免费网站| 欧美午夜小视频| 精品久久国产综合精麻豆| 一本大道东京热无码av| 精品国产污污免费网站| 亚洲婷婷六月| 看国产一级毛片| 71pao成人国产永久免费视频| 国产女人喷水视频| 亚洲中文字幕久久无码精品A| 天天综合色网| 91丝袜乱伦| 22sihu国产精品视频影视资讯| 天天综合色网| 国产你懂得| 91系列在线观看| 午夜国产不卡在线观看视频| 亚洲人成高清| 亚洲一区毛片| 国产午夜福利亚洲第一| 免费国产无遮挡又黄又爽| 久99久热只有精品国产15| 久久久久免费看成人影片| 亚洲乱伦视频| 国产欧美日韩在线在线不卡视频| 国产午夜福利亚洲第一|