本發明專利技術公開了一種虛擬機高可用實現方法和裝置,包括:構建虛擬機集群的專用同步網絡,并將虛擬機集群中的每一虛擬機節點與專用同步網絡建立連接;獲取每一虛擬機節點的當前屬性信息,并計算當前屬性信息的狀態指紋信息;基于多數平均投票算法模型,對所有虛擬機節點的狀態指紋信息進行投票,并將得票最多的虛擬機節點作為同步樣本;將得票最多的虛擬機節點的樣本狀態指紋信息同步至虛擬機集群中的其他虛擬機節點。若用戶當前連接的虛擬機節點因發生故障中斷時,基于專用同步網絡的信息同步機制,用戶可直接重新連接至集群中的任意一個虛擬機節點,不存在任何的數據丟失,從而大大提升了用戶在切換虛擬機節點的可靠性。提升了用戶在切換虛擬機節點的可靠性。提升了用戶在切換虛擬機節點的可靠性。
【技術實現步驟摘要】
一種虛擬機高可用實現方法、裝置和設備
[0001]本專利技術屬于計算機
,具體涉及一種虛擬機高可用實現方法、裝置和設備。
技術介紹
[0002]虛擬機HA(High Availability,高可用性)功能是指為虛擬機上運行的應用程序提供高可用性的功能。如果服務器出現故障,受到影響的虛擬機會在其他擁有多余容量的生產服務器上重新啟動,有效降低停機時間和服務中斷時間。
[0003]其中,HA功能允許一個集群中在資源許可的情況下,將出現故障的虛擬化主機(安裝了虛擬化軟件的物理服務器,下同)上面的虛擬機在其他的虛擬化主機上啟動起來,其間的業務時間間斷為:VM系統啟動時間+應用啟動時間+通常不超過15秒的心跳檢測時間,通常這個總的中斷時間都能夠保持在3分鐘內。
[0004]現有技術中,常見的HA工作機制是由放置在每臺虛擬化主機上的代理程序不斷向群集中的其他主機發出“心跳信號”,一旦“心跳信號”終止,所有受影響的虛擬機將在其他主機上重啟。例如目前最為常用的VMware虛擬化軟件中,可以通過安裝VMtools對虛擬機的運行狀態進行監控,并通過VMtools發出監控信號,如果在規定時間內沒有收到信號則說明該虛擬化主機異常,將自動重啟上面的虛擬機。
[0005]然而,上述虛擬機同步的方式并不能保證用戶操作和數據的嚴格同步,在發生虛擬機故障進行切換時,始終存在數據丟失的情況,導致同步效果不甚理想。
技術實現思路
[0006]本專利技術的目的是提供一種虛擬機高可用實現方法、裝置和設備,用以解決現有技術中存在的至少一個技術問題。
[0007]為了實現上述目的,本專利技術采用以下技術方案:
[0008]第一方面,本專利技術提供一種虛擬機高可用實現方法,包括:
[0009]構建虛擬機集群的專用同步網絡,并將虛擬機集群中的每一虛擬機節點與所述專用同步網絡建立連接;
[0010]獲取每一虛擬機節點的當前屬性信息,并計算所述當前屬性信息的狀態指紋信息;
[0011]基于多數平均投票算法模型,對所有虛擬機節點的狀態指紋信息進行投票,并將得票最多的虛擬機節點作為同步樣本;
[0012]將得票最多的虛擬機節點的樣本狀態指紋信息同步至虛擬機集群中的其他虛擬機節點。
[0013]在一種可能的設計中,所述方法還包括:
[0014]對所述樣本狀態指紋信息的同步結果進行校驗;
[0015]當某虛擬機節點同步后的狀態指紋信息異于所述樣本狀態指紋信息時,對該虛擬機節點的狀態指紋信息進行再次同步。
[0016]在一種可能的設計中,將虛擬機集群中的每一虛擬機節點與所述專用同步網絡建立連接,包括:
[0017]為虛擬機集群中的每一所述虛擬機節點添加各自的同步網卡;
[0018]每一虛擬機節點通過各自的同步網卡建立與所述專用同步網絡的連接。
[0019]在一種可能的設計中,計算所述當前屬性信息的狀態指紋信息,包括:
[0020]基于所述當前屬性信息更新所述狀態指紋信息;
[0021]利用哈希算法計算所述狀態指紋信息的每一單向特征指紋信息;
[0022]將每一所述單向特征指紋信息進行拼接合成,得到對應虛擬機節點的狀態指紋矩陣。
[0023]在一種可能的設計中,基于多數平均投票算法模型,對所有虛擬機節點的狀態指紋信息進行投票,并將得票最多的虛擬機節點作為同步樣本,包括:
[0024]利用裁決服務器中的裁決器,獲取每一所述虛擬機節點的狀態指紋矩陣;
[0025]將每一所述狀態指紋矩陣進行特征值比對,并將具有相同特征值的虛擬機節點進行計數;
[0026]設置每一虛擬機節點的權重;其中,與用戶正在連接的虛擬機節點的權重大于未與用戶連接的虛擬機節點的權重;
[0027]對所有虛擬機節點進行加權計算,獲取加權后歸一化得票最多的虛擬機節點,將該虛擬機節點作為同步樣本。
[0028]在一種可能的設計中,將具有相同特征值的虛擬機節點進行計數,包括:
[0029]設置一個計數器count和保存最多特征值的變量majority;
[0030]若count等于0,則將當前值設置為數組的當前特征值,將majority賦值為1;
[0031]若majority和數組的當前特征值相同,則count的數量加一,否則count數量減一;
[0032]重復上述步驟,直到掃描完數組;
[0033]若count賦值為0,再次從頭掃描數組,如果數組特征值與majority的值相同則count數量加一,直到掃描完數組;
[0034]若此時count的值大于等于n/2,則返回majority的值,反之則返回
?
1,其中,n為總票數。
[0035]在一種可能的設計中,所述當前屬性信息包括用戶輸入信息和當前狀態信息。
[0036]第二方面,本專利技術提供一種虛擬機高可用實現裝置,包括:
[0037]網絡連接模塊,用于構建虛擬機集群的專用同步網絡,并將虛擬機集群中的每一虛擬機節點與所述專用同步網絡建立連接;
[0038]狀態指紋計算模塊,用于獲取每一虛擬機節點的當前屬性信息,并計算所述當前屬性信息的狀態指紋信息;
[0039]投票模塊,用于基于多數平均投票算法模型,對所有虛擬機節點的狀態指紋信息進行投票,并將得票最多的虛擬機節點作為同步樣本;
[0040]信息同步模塊,用于將得票最多的虛擬機節點的樣本狀態指紋信息同步至虛擬機集群中的其他虛擬機節點。
[0041]在一種可能的設計中,所述裝置還包括:
[0042]校驗模塊,用于對所述樣本狀態指紋信息的同步結果進行校驗;
[0043]二次同步模塊,用于當某虛擬機節點同步后的狀態指紋信息異于所述樣本狀態指紋信息時,對該虛擬機節點的狀態指紋信息進行再次同步。
[0044]在一種可能的設計中,在將虛擬機集群中的每一虛擬機節點與所述專用同步網絡建立連接時,所述網絡連接模塊具體用于:
[0045]為虛擬機集群中的每一所述虛擬機節點添加各自的同步網卡;
[0046]每一虛擬機節點通過各自的同步網卡建立與所述專用同步網絡的連接。
[0047]在一種可能的設計中,在計算所述當前屬性信息的狀態指紋信息時,所述狀態指紋計算模塊具體用于:
[0048]基于所述當前屬性信息更新所述狀態指紋信息;
[0049]利用哈希算法計算所述狀態指紋信息的每一單向特征指紋信息;
[0050]將每一所述單向特征指紋信息進行拼接合成,得到對應虛擬機節點的狀態指紋矩陣。
[0051]在一種可能的設計中,在基于多數平均投票算法模型,對所有虛擬機節點的狀態指紋信息進行投票,并將得票最多的虛擬機節點作為同步樣本時,所述投票模塊具體用于:
[0052]利用裁決服務器中的裁決器,獲取每一所述虛擬機節點的狀態指紋矩陣;
[0053]將每一所述狀態指紋矩陣進行特本文檔來自技高網...
【技術保護點】
【技術特征摘要】
1.一種虛擬機高可用實現方法,其特征在于,包括:構建虛擬機集群的專用同步網絡,并將虛擬機集群中的每一虛擬機節點與所述專用同步網絡建立連接;獲取每一虛擬機節點的當前屬性信息,并計算所述當前屬性信息的狀態指紋信息;基于多數平均投票算法模型,對所有虛擬機節點的狀態指紋信息進行投票,并將得票最多的虛擬機節點作為同步樣本;將得票最多的虛擬機節點的樣本狀態指紋信息同步至虛擬機集群中的其他虛擬機節點。2.根據權利要求1所述的虛擬機高可用實現方法,其特征在于,所述方法還包括:對所述樣本狀態指紋信息的同步結果進行校驗;當某虛擬機節點同步后的狀態指紋信息異于所述樣本狀態指紋信息時,對該虛擬機節點的狀態指紋信息進行再次同步。3.根據權利要求1所述的虛擬機高可用實現方法,其特征在于,將虛擬機集群中的每一虛擬機節點與所述專用同步網絡建立連接,包括:為虛擬機集群中的每一所述虛擬機節點添加各自的同步網卡;每一虛擬機節點通過各自的同步網卡建立與所述專用同步網絡的連接。4.根據權利要求1所述的虛擬機高可用實現方法,其特征在于,計算所述當前屬性信息的狀態指紋信息,包括:基于所述當前屬性信息更新所述狀態指紋信息;利用哈希算法計算所述狀態指紋信息的每一單向特征指紋信息;將每一所述單向特征指紋信息進行拼接合成,得到對應虛擬機節點的狀態指紋矩陣。5.根據權利要求4所述的虛擬機高可用實現方法,其特征在于,基于多數平均投票算法模型,對所有虛擬機節點的狀態指紋信息進行投票,并將得票最多的虛擬機節點作為同步樣本,包括:利用裁決服務器中的裁決器,獲取每一所述虛擬機節點的狀態指紋矩陣;將每一所述狀態指紋矩陣進行特征值比對,并將具有相同特征值的虛擬機節點進行計數;設置每一虛擬機節點的權重;其中,與用戶正在連接的虛擬機節點的權重大于未與用戶連接的虛擬機節點的權重;對所有虛擬機節點進行加權計算,得到加權后歸一化得票最多的虛擬機節點,將該虛擬機節點作為同步樣本。6.根據權利要求5所述的虛擬機高可用實現方法...
【專利技術屬性】
技術研發人員:羅慧,
申請(專利權)人:羅慧,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。