亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種虛擬化集群心跳算法

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

        劉明錦

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

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

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

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

        1 算法描述

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

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

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

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

        2 算法分析

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

        其檢測過程如下:

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

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

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

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

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

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

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

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

        [T=inΔTi,][ΔTi]為單個節(jié)點檢測需要的時間

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

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

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

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

        3 算法測試

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

        圖2 Simulink仿真模型

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

        %初始化本機詢問廣播

        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)

        %若收到來自其他主機的詢問廣播,則發(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)

        %如果收到存在宕機的Slave,報告該信息給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);

        %初始化本機詢問廣播

        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)

        %若受到來自其他主機的詢問廣播,則發(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)

        %如果收到存在宕機的Slave,報告該信息給Master

        Broadcast_Master_2=zeros(Message_length,1)+1;

        end

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

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

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

        Delay length:(dialog)=2

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

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

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

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

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

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

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

        (1) 快速定位??梢栽诤芏痰臅r間內(nèi)判定主機出現(xiàn)故障,快速定位故障主機。

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

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

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

        4 結(jié) 語

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

        參考文獻

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

        [2] 何禹,胡宇鴻,王一波.虛擬化技術(shù)在校園網(wǎng)數(shù)據(jù)中心的應(yīng)用[J].電子科技大學(xué)學(xué)報,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] 劉媛媛,高慶一,陳陽.虛擬計算環(huán)境下虛擬機資源負(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].計算機工程,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.

        亚洲欧美另类自拍| 国产精品免费一区二区三区四区| 天堂网www资源在线| 夜夜揉揉日日人人| 爆乳午夜福利视频精品| 亚洲一区二区三区熟妇| 国产成人av一区二区三区在线观看 | 久久久久久亚洲AV成人无码国产| av天堂一区二区三区精品| 公厕偷拍一区二区三区四区五区 | 一道本久久综合久久鬼色| 国产精品网站在线观看免费传媒 | 精品人妻夜夜爽一区二区| 国产自拍视频在线观看网站| 水蜜桃精品一二三| 无码少妇一区二区三区芒果| 久久99国产精品尤物| 亚洲精品一区二区视频| 一二三区无线乱码中文在线| 无码人妻精品一区二区在线视频 | 亚洲av无码一区二区三区四区| 亚洲ⅤA中文字幕无码| 亚洲国产成人va在线观看天堂| 久久久久国产精品| 自拍偷自拍亚洲精品播放| 亚洲国产精品亚洲高清| 手机免费在线观看av网址| 在线不卡av片免费观看| 国产精品情侣露脸av在线播放| 国产av精选一区二区| 亚洲av一二三四区四色婷婷| 国产高潮刺激叫喊视频| 精品蜜桃视频在线观看| 国产成人久久精品一区二区三区| 国产精选污视频在线观看| 亚洲精品高清你懂的| 青青草最新在线视频观看| 绝顶高潮合集videos| 欧美不卡视频一区发布| 一片内射视频在线观看| 一二三四区中文字幕在线|