国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種基于角色的高可用虛擬機(jī)池化管理系統(tǒng)的制作方法

      文檔序號:6510266閱讀:267來源:國知局
      一種基于角色的高可用虛擬機(jī)池化管理系統(tǒng)的制作方法
      【專利摘要】一種基于角色的高可用虛擬機(jī)池化管理系統(tǒng),所述虛擬機(jī)池化管理方法中包括主節(jié)點(diǎn)即master節(jié)點(diǎn)、從節(jié)點(diǎn)即slave節(jié)點(diǎn)和備份節(jié)點(diǎn)即backup節(jié)點(diǎn);master節(jié)點(diǎn)是虛擬機(jī)資源池的唯一邏輯入口,負(fù)責(zé)管理資源池中的所有節(jié)點(diǎn);slave節(jié)點(diǎn)主要負(fù)責(zé)本節(jié)點(diǎn)的虛擬機(jī)生命周期的管理;backup節(jié)點(diǎn)用于備份master節(jié)點(diǎn)的狀態(tài)信息,保證與master節(jié)點(diǎn)的狀態(tài)信息一致,并在master節(jié)點(diǎn)失效時接管其工作;所述虛擬機(jī)池化管理過程中各個節(jié)點(diǎn)會隨著不同條件在三種角色,即master節(jié)點(diǎn)、從節(jié)點(diǎn)slave和備份節(jié)點(diǎn)backup中轉(zhuǎn)換;通過序列法保障系統(tǒng)中只有一個master節(jié)點(diǎn)和備份節(jié)點(diǎn),以及通過雙向異步通信機(jī)制來保障master節(jié)點(diǎn)和備份節(jié)點(diǎn)的數(shù)據(jù)一致性。本發(fā)明提高了虛擬化系統(tǒng)的可靠性以及管理的靈活性。
      【專利說明】一種基于角色的高可用虛擬機(jī)池化管理系統(tǒng)
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及一種基于角色的高可用虛擬機(jī)池化管理系統(tǒng),該系統(tǒng)擴(kuò)展了傳統(tǒng)的故障切換集群高可用保障技術(shù),用于解決虛擬機(jī)池化管理的單點(diǎn)失效導(dǎo)致的故障恢復(fù)時間長和管理復(fù)雜的問題,屬于軟件【技術(shù)領(lǐng)域】。
      【背景技術(shù)】
      [0002]虛擬機(jī)能夠?yàn)椴僮飨到y(tǒng)和應(yīng)用程序提供一個虛擬的計(jì)算機(jī)系統(tǒng),它所構(gòu)造的運(yùn)行環(huán)境能夠運(yùn)行一個完整的操作系統(tǒng),對上層的應(yīng)用程序完全透明。虛擬機(jī)池化管理是指以統(tǒng)一管理視角提供虛擬機(jī)生命周期管理和資源按需提供的虛擬化技術(shù)。近幾年來,虛擬機(jī)池化管理已成為構(gòu)建主流云計(jì)算平臺的關(guān)鍵技術(shù)之一。
      [0003]虛擬機(jī)池化管理普遍米取master/slave的管理模式,通過統(tǒng)一的邏輯入口來管理整個資源池中節(jié)點(diǎn)(本發(fā)明中的節(jié)點(diǎn)指的是物理服務(wù)器)及運(yùn)行其上的虛擬機(jī)。代表的產(chǎn)品有 Microsoft Hyper-V, Citrix XenServer 和 VMware vSphere 等。通過虛擬機(jī)池化管理帶來以下幾個優(yōu)點(diǎn):(I)虛擬機(jī)對節(jié)點(diǎn)的資源使用率是動態(tài)變化的,虛擬機(jī)資源池中的節(jié)點(diǎn)作為硬件資源提供給虛擬機(jī)使用。當(dāng)某個時刻某個節(jié)點(diǎn)上的虛擬機(jī)消耗資源相對過高時,可以通過虛擬機(jī)在線遷移技術(shù)將它遷移到其它資源相對充裕的節(jié)點(diǎn)上,整個遷移過程對用戶透明,保障資源的合理分配;(2)虛擬機(jī)池化管理通常采用“共享存儲”的模式。所謂“共享存儲”,是指虛擬機(jī)資源池中所有虛擬機(jī)磁盤文件會統(tǒng)一存儲在磁盤陣列或其它存儲設(shè)備上,各節(jié)點(diǎn)僅能通過網(wǎng)絡(luò)連接存儲設(shè)備實(shí)現(xiàn)虛擬機(jī)的實(shí)例化(內(nèi)存態(tài))。在這種管理模式下,當(dāng)節(jié)點(diǎn)宕機(jī)導(dǎo)致運(yùn)行其上的虛擬機(jī)不可用時,容易通過虛擬機(jī)實(shí)例在其它節(jié)點(diǎn)重啟的模式實(shí)現(xiàn)虛擬機(jī)的高可用。
      [0004]虛擬機(jī)池化管理帶了管理簡單優(yōu)點(diǎn)的同時,也引入了風(fēng)險集中,單點(diǎn)失效問題。在master/slave管理模式下,master節(jié)點(diǎn)保存了虛擬機(jī)資源池所有節(jié)點(diǎn)的全局狀態(tài)信息,因此master節(jié)點(diǎn)宕機(jī)可能導(dǎo)致整個虛擬機(jī)資源池不可用或虛擬機(jī)資源池重裝等嚴(yán)重后果。單點(diǎn)失效問題涉及到系統(tǒng)的高可用,高可用保障方法可以分為以下四大類(ChanH,Chieu T.An approach to high availability for cloud servers with snapshotmechanism[C]//Proceedings of the Industrial Track of the13th ACM/IFIP/USENIXInternational Middleware Conference.ACM, 2012:6.):鏡像技術(shù)(Mirroring)、復(fù)制技術(shù)(Replication)、故障切換集群(Failover clustering)和快照技術(shù)(snapshot)。
      [0005]鏡像技術(shù)是指設(shè)置主節(jié)點(diǎn)和鏡像節(jié)點(diǎn),鏡像節(jié)點(diǎn)每隔一段時間從主節(jié)點(diǎn)主動取數(shù)據(jù)備份到自身。復(fù)制技術(shù)是基于訂閱者的模式,主節(jié)點(diǎn)在自身狀態(tài)信息發(fā)生變化時主動發(fā)送給所有訂閱的備份節(jié)點(diǎn),通知其更新狀態(tài)信息。故障切換集群通過多個節(jié)點(diǎn)組成一個集群,集群中任何一個節(jié)點(diǎn)發(fā)生故障都可以由其他節(jié)點(diǎn)接管??煺占夹g(shù)是通過節(jié)點(diǎn)每隔一段時間備份一個還原點(diǎn),當(dāng)節(jié)點(diǎn)發(fā)生故障后可以通過這個備份的還原點(diǎn)來恢復(fù)系統(tǒng)。
      [0006]鏡像技術(shù)和復(fù)制技術(shù)被HDFS文件系統(tǒng)(Borthakur Dj Gray Jj SarmaJ S,et al.Apache Hadoop goes realtime at Facebook[C]//Proceedings ofthe2011 international conference on Management of data.ACM, 2011:1071-1080.)用于解決NameNode節(jié)點(diǎn)的單點(diǎn)失效問題。通過設(shè)置一個備份節(jié)點(diǎn),當(dāng)用戶對文件系統(tǒng)進(jìn)行寫操作導(dǎo)致文件系統(tǒng)的目錄結(jié)構(gòu)發(fā)生改變時,主NameNode通過復(fù)制技術(shù)將這一操作請求寫入一個NFS共享節(jié)點(diǎn)上,然后備份的節(jié)點(diǎn)通過鏡像技術(shù)不斷的讀取NFS共享節(jié)點(diǎn)上的操作請求執(zhí)行,保障與主NameNode節(jié)點(diǎn)上保存的信息一致,在主節(jié)點(diǎn)失效時能接管其工作,但是這種方式備份節(jié)點(diǎn)是靜態(tài)指定,缺乏靈活性,并且NFS節(jié)點(diǎn)也是個單點(diǎn)問題。
      [0007]故障切換集群被廣泛應(yīng)用與XenServer和vSphere虛擬機(jī)池化管理系統(tǒng)中,通過slave節(jié)點(diǎn)來探知master節(jié)點(diǎn)是否失效,當(dāng)某個slave節(jié)點(diǎn)探知到master節(jié)點(diǎn)失效時,通過一定的選舉算法,比如 Bully 算法(Garcia-Molina H.Elections in a distributedcomputing system [J].Computers, IEEE Transactions on, 1982, 100(1):48-59)選舉出一個新的節(jié)點(diǎn)充當(dāng)master節(jié)點(diǎn)恢復(fù)之前保存的數(shù)據(jù),繼續(xù)管理資源池中的成員節(jié)點(diǎn)和虛擬機(jī)。由于新的master節(jié)點(diǎn)是通過所有的slave節(jié)點(diǎn)在故障發(fā)生后根據(jù)選舉算法協(xié)同選舉出來的,所以恢復(fù)時間相對較長。
      [0008]此外的快照技術(shù)(snapshot),如果在設(shè)置的還原點(diǎn)之前需要備份數(shù)據(jù)改變并且發(fā)生故障,系統(tǒng)將難以恢復(fù)到故障發(fā)生之前的狀態(tài)。
      [0009]綜上所述,上述幾種方法中存在的缺乏靈活性和故障恢復(fù)時間長的缺點(diǎn)。

      【發(fā)明內(nèi)容】

      [0010]本發(fā)明技術(shù)解決問題:克服現(xiàn)有技術(shù)的不足,提供一種基于角色的虛擬機(jī)池高可用系統(tǒng),提高了系統(tǒng)的靈活性和減少故障的恢復(fù)時間。
      [0011]本發(fā)明技術(shù)解決方案:一種基于角色的高可用虛擬機(jī)池化管理系統(tǒng),通過序列法保障系統(tǒng)中只有一個master節(jié)點(diǎn)和備份節(jié)點(diǎn),以及通過雙向異步通信機(jī)制來保障master節(jié)點(diǎn)和備份節(jié)點(diǎn)的數(shù)據(jù)一致性。
      [0012]通過增加一個backup節(jié)點(diǎn)的角色,這個節(jié)點(diǎn)由master節(jié)點(diǎn)主動選舉出來,然后master節(jié)點(diǎn)失效由backup節(jié)點(diǎn)主動接管其工作,這樣達(dá)到backup節(jié)點(diǎn)自動選取和master節(jié)點(diǎn)主動替換的效果。如圖1所示,該系統(tǒng)包括三個模塊:
      [0013]I)節(jié)點(diǎn)管理模塊:負(fù)責(zé)本節(jié)點(diǎn)的虛擬機(jī)的生命周期管理,包括虛擬機(jī)的創(chuàng)建,關(guān)閉,啟動,遷移,周期性地監(jiān)聽本節(jié)點(diǎn)和運(yùn)行其上的每個虛擬機(jī)的資源使用情況,并寫入本地的文件方便遠(yuǎn)程客戶端解析;周期性地向master節(jié)點(diǎn)和backup節(jié)點(diǎn)發(fā)送狀態(tài)信息,狀態(tài)信息包括運(yùn)行了哪些虛擬機(jī),虛擬機(jī)關(guān)聯(lián)的磁盤文件等;
      [0014]2)資源池管理模塊:負(fù)責(zé)管理虛擬機(jī)資源池中的每個節(jié)點(diǎn),如監(jiān)聽資源池中每個節(jié)點(diǎn)是否有效。根據(jù)用戶的請求轉(zhuǎn)發(fā)給目標(biāo)節(jié)點(diǎn)進(jìn)行相應(yīng)的操作。提供虛擬機(jī)資源池的建立和彈性資源供給,即節(jié)點(diǎn)的添加和退出;
      [0015]3)高可用管理模塊:在master節(jié)點(diǎn)上,高可用模塊負(fù)載監(jiān)聽backup節(jié)點(diǎn)的是否有效,當(dāng)無效時,選舉出新的備份節(jié)點(diǎn)繼續(xù)監(jiān)聽。在backup節(jié)點(diǎn)上,高可用模塊負(fù)載監(jiān)聽master節(jié)點(diǎn)是否有效,當(dāng)無效時主動接管其工作,并廣播給虛擬機(jī)資源池中的所有節(jié)點(diǎn)這一變化。master節(jié)點(diǎn)和backup節(jié)點(diǎn)同時負(fù)責(zé)接收來自slave節(jié)點(diǎn)的心跳信息,根據(jù)心跳信息來更新自身保存的狀態(tài)信息。
      [0016]在基于角色的雙機(jī)熱備高可用系統(tǒng)中,主要涉及到兩種方法和一種機(jī)制,分別是基于角色的雙機(jī)熱備方法、序列法和雙向異步通信機(jī)制。通過基于角色的雙機(jī)熱備方法消除master節(jié)點(diǎn)單點(diǎn)失效問題帶來的服務(wù)間斷。通過序列法保障資源池中只有一個master節(jié)點(diǎn)提供與用戶交互的入口。通過雙向異步通信機(jī)制保障master節(jié)點(diǎn)和backup節(jié)點(diǎn)兩者的狀態(tài)信息的一致性。
      [0017]以下是詳細(xì)描述。
      [0018]3.1基于角色的節(jié)點(diǎn)描述和轉(zhuǎn)換關(guān)系,如圖2所示。
      [0019]為了方便后面的表述,本文用三元組P=〈Number, Role, Squence〉來描述每個節(jié)點(diǎn),其中不同的元素的具體含義如下:
      [0020]I) Number,即節(jié)點(diǎn)的編號,如資源池中一共有三個節(jié)點(diǎn),用NI,N2和N3來分別表示這三個節(jié)點(diǎn);
      [0021]2)Role,即節(jié)點(diǎn)的角色,這里有master, backup和slave三種角色,每種角色執(zhí)行不同功能;
      [0022]3) Squence,即節(jié)點(diǎn)的時間序號,每個節(jié)點(diǎn)都會有一個時間序號。
      [0023]例如,<N3,backup, 35>表示第3個節(jié)點(diǎn)的角色為backup,并且它的時間序號為35。
      [0024]虛擬機(jī)資源池中的每個節(jié)點(diǎn)都賦予了一定的角色,每個角色具有不同的功能。分別如下:
      [0025]I) master節(jié)點(diǎn)也稱為主節(jié)點(diǎn),它是虛擬機(jī)資源池的唯一邏輯入口,負(fù)責(zé)管理資源池中的所有節(jié)點(diǎn);
      [0026]2) slave節(jié)點(diǎn)主要負(fù)責(zé)本節(jié)點(diǎn)的虛擬機(jī)生命周期的管理;
      [0027]3)backup節(jié)點(diǎn)用于備份master節(jié)點(diǎn)的狀態(tài)信息,保證與master節(jié)點(diǎn)的狀態(tài)信息一致,并在master節(jié)點(diǎn)失效時接管其工作。
      [0028]資源池中各個節(jié)點(diǎn)所處的角色并不是固定的,而是隨著不同條件在三種角色中轉(zhuǎn)換,轉(zhuǎn)換關(guān)系如圖2所示,其中none表示節(jié)點(diǎn)不賦予任何角色,不在虛擬機(jī)資源池中:
      [0029](I)用戶建立虛擬機(jī)資源池時指定一個none節(jié)點(diǎn)作為master節(jié)點(diǎn);
      [0030](2)當(dāng)用戶需要將一個none節(jié)點(diǎn)加入虛擬機(jī)資源池時,該節(jié)點(diǎn)從none轉(zhuǎn)變?yōu)閟lave節(jié)點(diǎn),成為資源池中的成員節(jié)點(diǎn);
      [0031](3)用戶將某個節(jié)點(diǎn)從虛擬機(jī)資源池中移除后,該節(jié)點(diǎn)由slave節(jié)點(diǎn)轉(zhuǎn)化為none節(jié)點(diǎn),不再屬于這個虛擬機(jī)資源池;
      [0032](4)當(dāng)虛擬機(jī)資源池中的backup節(jié)點(diǎn)未被選取或者之前選取的backup節(jié)點(diǎn)失效時,由master節(jié)點(diǎn)選舉出一個有效的slave節(jié)點(diǎn),使其成為backup節(jié)點(diǎn);
      [0033](5)當(dāng)backup節(jié)點(diǎn)探測到虛擬機(jī)資源池中的master節(jié)點(diǎn)失效時,主動轉(zhuǎn)換為master,接管master節(jié)點(diǎn)的工作;
      [0034](6)當(dāng)backup節(jié)點(diǎn)故障恢復(fù)后,重新回到資源池中,轉(zhuǎn)變?yōu)閟lave節(jié)點(diǎn)。
      [0035](7)當(dāng)master節(jié)點(diǎn)故障恢復(fù)后,重新回到虛擬機(jī)資源池中,并轉(zhuǎn)變?yōu)閟lave節(jié)點(diǎn);
      [0036]3.2基于角色的雙機(jī)熱備方法
      [0037]master/slave模式下要消除單點(diǎn)失效問題,關(guān)鍵是在master節(jié)點(diǎn)發(fā)生故障時,能夠有一個節(jié)點(diǎn)被選舉出來主動接管其工作。本發(fā)明實(shí)現(xiàn)的基于角色的雙機(jī)熱備方法,該方法實(shí)現(xiàn)在master節(jié)點(diǎn)和backup節(jié)點(diǎn)的高可用模塊,具體的算法如圖3所示,其中定義Si (I≤i≤η)為虛擬機(jī)池中的第i個節(jié)點(diǎn)。[0038]如果節(jié)點(diǎn)的角色為master時,具體執(zhí)行步驟如下:
      [0039]Dmaster節(jié)點(diǎn)監(jiān)聽backup節(jié)點(diǎn)是否有效或者未選舉,如果backup節(jié)點(diǎn)有效則轉(zhuǎn)步驟I)繼續(xù)監(jiān)聽這個節(jié)點(diǎn),如果無效則轉(zhuǎn)步驟2);
      [0040]2) master節(jié)點(diǎn)遍歷資源池中的所有節(jié)點(diǎn),若發(fā)現(xiàn)一個有效的節(jié)點(diǎn),將這個節(jié)點(diǎn)角色轉(zhuǎn)換為backup,并將保存的狀態(tài)信息備份到這個節(jié)點(diǎn)上,轉(zhuǎn)步驟I)監(jiān)聽這個backup節(jié)點(diǎn)。否則這次選舉失敗轉(zhuǎn)步驟2)繼續(xù)進(jìn)行選舉。
      [0041]如果節(jié)點(diǎn)的角色為backup時,具體執(zhí)行步驟如下:
      [0042]l)backup節(jié)點(diǎn)監(jiān)聽資源池中的master節(jié)點(diǎn)是否有效,如果有效則轉(zhuǎn)步驟I)繼續(xù)進(jìn)行監(jiān)聽,如果無效則轉(zhuǎn)步驟2);
      [0043]2) backup節(jié)點(diǎn)將自身角色轉(zhuǎn)換為master節(jié)點(diǎn),并開啟對應(yīng)master節(jié)點(diǎn)的服務(wù),同時通知資源池中其他節(jié)點(diǎn)master節(jié)點(diǎn)發(fā)生了變化。
      [0044]3.3序列法
      [0045]在基于角色的雙機(jī)熱備方法中,master節(jié)點(diǎn)和backup節(jié)點(diǎn)的失效判定是通過一定的時間內(nèi)能否接收到對方的響應(yīng)消息來判定的。如果節(jié)點(diǎn)連接的網(wǎng)絡(luò)短暫不可用,或者節(jié)點(diǎn)過于繁忙導(dǎo)致不能及時響應(yīng)請求,則會被判定為發(fā)生宕機(jī)現(xiàn)象。這樣會導(dǎo)致資源池中出現(xiàn)多個master節(jié)點(diǎn)和backup節(jié)點(diǎn)的情況,造成多個master和backup節(jié)點(diǎn)之間保存的數(shù)據(jù)不一致的現(xiàn)象。
      [0046]傳統(tǒng)的解決方法是通過仲裁的方式,即設(shè)置一個參考的IP,當(dāng)master節(jié)點(diǎn)連接的網(wǎng)絡(luò)發(fā)生故障時,master節(jié)點(diǎn)ping參考IP失敗,則轉(zhuǎn)換為slave節(jié)點(diǎn),而backup節(jié)點(diǎn)ping參考IP成功,貝1J轉(zhuǎn)換為master節(jié)點(diǎn)選取出新的backup節(jié)點(diǎn)。當(dāng)backup節(jié)點(diǎn)連接的網(wǎng)絡(luò)發(fā)生故障時,master節(jié)點(diǎn)ping參考IP成功,則選取出新的backup節(jié)點(diǎn),而backup節(jié)點(diǎn)ping參考IP失敗,則轉(zhuǎn)換為slave節(jié)點(diǎn)。但是這種方法不能解決節(jié)點(diǎn)繁忙的情況,節(jié)點(diǎn)繁忙時ping命令也不能及時執(zhí)行。
      [0047]為了解決這個問題,保障上述的方法有效,發(fā)明了序列法。具體的規(guī)定如下:
      [0048](I) slave節(jié)點(diǎn)的序列號為O ;
      [0049](2)當(dāng)每個節(jié)點(diǎn)被重新初始化時序列號都為O。
      [0050]該方法實(shí)現(xiàn)于master節(jié)點(diǎn)的高可用模塊,具體的算法如圖4所示,其中定義Sequence (i)表示第i個節(jié)點(diǎn)的序列號。以master節(jié)點(diǎn)表示為〈Ni, master, k>為例,它選舉出第j個有效節(jié)點(diǎn)為backup節(jié)點(diǎn),將這個節(jié)點(diǎn)的序列號設(shè)置為k+Ι,此時這個j結(jié)點(diǎn)表示為〈Nj, backup, k+l>。Master節(jié)點(diǎn)即〈Ni, master, k>每隔一段時間會檢查資源池中的每個節(jié)點(diǎn),若發(fā)現(xiàn)某個節(jié)點(diǎn)的角色不為slave,并且序列號小于等于自身,則通知這個節(jié)點(diǎn)關(guān)閉角色對應(yīng)的服務(wù),轉(zhuǎn)換為slave節(jié)點(diǎn)??梢钥吹焦?jié)點(diǎn)〈Ni, master, k>只會把角色不為slave,并且序列號小于等于k的節(jié)點(diǎn)轉(zhuǎn)換為slave節(jié)點(diǎn),并不會影響到由它選舉出來的〈Nj, backup, k+l>備份節(jié)點(diǎn)。通過序列法能夠保障資源池中只有一個master節(jié)點(diǎn)和backup節(jié)點(diǎn)。
      [0051]3.4雙向異步通信機(jī)制,如圖10所示
      [0052]系統(tǒng)采用基于角色的雙機(jī)熱備的方法來保障master節(jié)點(diǎn)的高可用,最重要的是保證backup節(jié)點(diǎn)和master節(jié)點(diǎn)保存的狀態(tài)信息的一致性,這樣backup節(jié)點(diǎn)才能無故障的接管master節(jié)點(diǎn)的工作。[0053]為了保證這兩個節(jié)點(diǎn)的狀態(tài)信息的一致性,發(fā)明了一種雙向異步通信機(jī)制,來自客戶端的操作請求發(fā)送給master節(jié)點(diǎn),由它轉(zhuǎn)發(fā)給slave節(jié)點(diǎn),slave節(jié)點(diǎn)完成操作后發(fā)送響應(yīng)消息給master,由master將響應(yīng)消息發(fā)送給客戶端。slave節(jié)點(diǎn)每隔一段時間將自身的狀態(tài)信息發(fā)送給master和backup節(jié)點(diǎn),master和backup節(jié)點(diǎn)收到來自slave的狀態(tài)信息,則更新保存的狀態(tài)信息。這樣,即使在master節(jié)點(diǎn)巖機(jī)時,slave節(jié)點(diǎn)也能將本節(jié)點(diǎn)的狀態(tài)信息及時通知給新的master節(jié)點(diǎn)。同時master節(jié)點(diǎn)每隔一段時間廣播一個消息給資源池中的所有節(jié)點(diǎn),使得每個節(jié)點(diǎn)都能知道m(xù)aster和backup節(jié)點(diǎn)的目標(biāo)地址,避免某個節(jié)點(diǎn)巖機(jī)恢復(fù)的過程中master節(jié)點(diǎn)和backup節(jié)點(diǎn)的地址發(fā)生變化時,不能將狀態(tài)信息發(fā)送到正確的目標(biāo)地址。
      [0054]與現(xiàn)有技術(shù)相比,本發(fā)明具有如下技術(shù)優(yōu)勢:
      [0055](I)本發(fā)明中的master節(jié)點(diǎn)的故障判斷和接管,backup節(jié)點(diǎn)的故障檢測和主動選取都是有系統(tǒng)自身完成,無需人工干預(yù),能夠有效地解決單點(diǎn)失效問題。同時由于backup節(jié)點(diǎn)是由master節(jié)點(diǎn)在正常提供服務(wù)的過程中選舉出來的,相比傳統(tǒng)方法master節(jié)點(diǎn)出現(xiàn)故障后由其他節(jié)點(diǎn)探知然后協(xié)調(diào)選舉出一個節(jié)點(diǎn)接管,本發(fā)明中的方法故障恢復(fù)時間短。
      [0056](2)本發(fā)明中的序列法,能夠保障資源池中只存在一個master節(jié)點(diǎn)和backup節(jié)點(diǎn)。相比現(xiàn)有的技術(shù),能夠處理由于節(jié)點(diǎn)服務(wù)繁忙帶來的“假死”現(xiàn)象。
      [0057](3)本發(fā)明才用了雙向異步通信機(jī)制來保證master節(jié)點(diǎn)和backup節(jié)點(diǎn)的數(shù)據(jù)一致性,能在通過slave節(jié)點(diǎn)發(fā)送的狀態(tài)信息,來恢復(fù)整個資源池的全局狀態(tài)信息。
      [0058](4)上述幾種方法中存在的缺乏靈活性和故障恢復(fù)時間長的缺點(diǎn)。本發(fā)明基于故障切換集群技術(shù),實(shí)現(xiàn)了一種基于角色的雙機(jī)熱備的高可用系統(tǒng)。該系統(tǒng)通過備份節(jié)點(diǎn)的自動選舉和master節(jié)點(diǎn)故障的主動接管替換的方式提高了系統(tǒng)的靈活性和減少故障的恢復(fù)時間。通過序列法保障系統(tǒng)中只有一個master節(jié)點(diǎn)和備份結(jié)點(diǎn),以及通過雙向異步通信機(jī)制來保障master節(jié)點(diǎn)和備份節(jié)點(diǎn)的數(shù)據(jù)一致性。
      [0059](5)在基于角色的雙機(jī)熱備方法中,master節(jié)點(diǎn)和backup節(jié)點(diǎn)的失效判定是通過一定的時間內(nèi)能否接收到對方的響應(yīng)消息來判定的。如果節(jié)點(diǎn)連接的網(wǎng)絡(luò)短暫不可用,或者節(jié)點(diǎn)過于繁忙導(dǎo)致不能及時響應(yīng)請求,則會被判定為發(fā)生宕機(jī)現(xiàn)象。這樣會導(dǎo)致資源池中出現(xiàn)多個master節(jié)點(diǎn)和backup節(jié)點(diǎn)的情況,造成多個master和backup節(jié)點(diǎn)之間保存的數(shù)據(jù)不一致的現(xiàn)象。
      [0060](6)傳統(tǒng)的解決方法是通過仲裁的方式,即設(shè)置一個參考的IP,當(dāng)master節(jié)點(diǎn)連接的網(wǎng)絡(luò)發(fā)生故障時,master節(jié)點(diǎn)ping參考IP失敗,則轉(zhuǎn)換為slave節(jié)點(diǎn),而backup節(jié)點(diǎn)ping參考IP成功,則轉(zhuǎn)換為master節(jié)點(diǎn)選取出新的backup節(jié)點(diǎn)。當(dāng)backup節(jié)點(diǎn)連接的網(wǎng)絡(luò)發(fā)生故障時,master節(jié)點(diǎn)ping參考IP成功,貝U選取出新的backup節(jié)點(diǎn),而backup節(jié)點(diǎn)ping參考IP失敗,則轉(zhuǎn)換為slave節(jié)點(diǎn)。但是這種方法不能解決節(jié)點(diǎn)繁忙的情況,節(jié)點(diǎn)繁忙時Ping命令也不能及時執(zhí)行。為了解決這個問題,發(fā)明了序列法。
      【專利附圖】

      【附圖說明】
      [0061]圖1為本發(fā)明系統(tǒng)的組成框圖;
      [0062]圖2為本發(fā)明中角色轉(zhuǎn)換圖;[0063]圖3為本發(fā)明中本基于角色的節(jié)點(diǎn)選舉替換算法;
      [0064]圖4為本發(fā)明中序列法算法;
      [0065]圖5為本發(fā)明中序列法處理master節(jié)點(diǎn)網(wǎng)絡(luò)故障示例圖;
      [0066]圖6為本發(fā)明中序列法處理master節(jié)點(diǎn)“假死”示例圖;
      [0067]圖7為本發(fā)明中序列法處理backup節(jié)點(diǎn)網(wǎng)絡(luò)故障示例圖;
      [0068]圖8為本發(fā)明中序列法處理backup節(jié)點(diǎn)“假死”示例圖;
      [0069]圖9為本發(fā)明中的基于角色的雙機(jī)熱備的處理過程圖;
      [0070]圖10為本發(fā)明中雙向異步通信機(jī)制的處理過程圖。
      【具體實(shí)施方式】
      [0071]本發(fā)明基于角色的虛擬機(jī)池高可用保障技術(shù)及系統(tǒng),通過master和backup節(jié)點(diǎn)的故障檢測,故障恢復(fù),能夠有效地解決單點(diǎn)失效問題。以下結(jié)合具體實(shí)施例和附圖對本發(fā)明進(jìn)行詳細(xì)說明。
      [0072]在系統(tǒng)的高可用模塊中,通過基于角色的雙機(jī)熱備的處理方法,來保障資源池中master節(jié)點(diǎn)巖機(jī)時,有一個有效的backup節(jié)點(diǎn)接管它的工作,保障系統(tǒng)能夠正常提供服務(wù),以下是根據(jù)具體的場景實(shí)例進(jìn)行闡述。
      [0073]1.基于角色的雙機(jī)熱備的處理過程,如圖3所示。
      [0074]在3.1節(jié)定義三元組的基礎(chǔ)上,改變第三元來,用來表示節(jié)點(diǎn)是否有效(invalid表示無效,valid表示有效),假設(shè)資源池中有5個節(jié)點(diǎn),分別表示為〈N:, master, valid), <N2, backup, valid>, <N3, slave, invalid), <N4, slave, invalid)和 <N5, slave, valid>,如圖9(a)所示。
      [0075](I)當(dāng)隊(duì)節(jié)點(diǎn)出現(xiàn)故障時,即表示為〈I backup, invalid〉, N1節(jié)點(diǎn)探知其無效,開始遍歷資源池中的節(jié)點(diǎn),選舉出有效節(jié)點(diǎn);
      [0076](2)如圖9 (b)所示,遍歷到〈Na slave, invalid〉時,發(fā)現(xiàn)其無效繼續(xù)遍歷。當(dāng)遍歷到〈ΝΑ slave, invalid)時,發(fā)現(xiàn)其無效繼續(xù)遍歷。當(dāng)遍歷到<N5, slave, valid)時,發(fā)現(xiàn)其有效,則將狀態(tài)信息備份到這個節(jié)點(diǎn)上,并將其角色轉(zhuǎn)換為backup,結(jié)束此次選舉,此時N5 節(jié)點(diǎn)表示為 <N5, backup, valid〉;
      [0077](3)如圖9 (c)所示,當(dāng)N1節(jié)點(diǎn)出現(xiàn)故障,即表示為〈NI, master, invalid), N5節(jié)點(diǎn)探知其無效,則將自身轉(zhuǎn)換為master的角色,即表示為<N5, master, valid〉;
      [0078](4) N5節(jié)點(diǎn)始遍歷資源池中的節(jié)點(diǎn),選舉出有效節(jié)點(diǎn)。當(dāng)遍歷到(N1, master, invalid〉時,發(fā)現(xiàn)其無效繼續(xù)遍歷。當(dāng)遍歷到<N2, backup, invalid〉時,發(fā)現(xiàn)其無效繼續(xù)遍歷。當(dāng)遍歷到〈I slave, invalid〉時,發(fā)現(xiàn)其無效繼續(xù)遍歷。當(dāng)遍歷到<N4, slave, invalid)時,發(fā)現(xiàn)其無效繼續(xù)遍歷。N5節(jié)點(diǎn)在這次遍歷過程沒有發(fā)現(xiàn)有效的節(jié)點(diǎn),將進(jìn)行新的一輪的遍歷;
      [0079](5)如圖9(d)所示,若某個時刻N(yùn)3節(jié)點(diǎn)故障恢復(fù)成為有效節(jié)點(diǎn),即表示為<N3, slave, valid〉。它將被N5節(jié)點(diǎn)探知到,轉(zhuǎn)換為backup節(jié)點(diǎn),即為<N3, backup, valid),則N5節(jié)點(diǎn)完成選舉;
      [0080](6)如圖(9e)所示,當(dāng)某個時刻N(yùn)1節(jié)點(diǎn)和N2節(jié)點(diǎn)故障恢復(fù),它們都將轉(zhuǎn)換為slave節(jié)點(diǎn),即分別表示為〈N:, slave, valid〉和 <N2, slave, valid〉。[0081]在系統(tǒng)的高可用模塊中,通過序列法,來克服網(wǎng)絡(luò)故障帶來的資源池中出現(xiàn)多個maste節(jié)點(diǎn)沖突的情況,保障資源池中只有一個master節(jié)點(diǎn)來管理整個資源池的節(jié)點(diǎn)和虛擬機(jī)。以下是根據(jù)具體的場景實(shí)例來詳細(xì)闡述這個方法的處理過程。
      [0082]2.序列法的處理過程,如圖4所示。
      [0083]當(dāng)master節(jié)點(diǎn)出現(xiàn)網(wǎng)絡(luò)故障時如圖5所示:
      [0084](I)當(dāng)〈隊(duì),master, k>出現(xiàn)網(wǎng)絡(luò)故障,由它選舉出來的〈N」, backup, k+l>得不到它的響應(yīng)消息,同時〈N” master, k>也不能選取出新的節(jié)點(diǎn)充當(dāng)backup節(jié)點(diǎn);
      [0085](2) <Nj, backup, k+l> 而轉(zhuǎn)變?yōu)椤碞j,master,k+l>,然后選取出一個<Nk, backup, k+2> ;
      [0086](3)若〈隊(duì),master, k>的網(wǎng)絡(luò)恢復(fù),它會選取出〈隊(duì),backup, k+l> ;
      [0087](4)由于〈N」, master, k+l>是序列號最大的master節(jié)點(diǎn),它會通知Ni和N1節(jié)點(diǎn)關(guān)閉相應(yīng)服務(wù),轉(zhuǎn)換為slave節(jié)點(diǎn);
      [0088]當(dāng)master節(jié)點(diǎn)出現(xiàn)“假死”現(xiàn)象時如圖6所示,與上述不同在步驟3),當(dāng)<Ni; master, k> “假死”現(xiàn)象消除時,單方向監(jiān)聽節(jié)點(diǎn)b是否有效。最終會在步驟4)中,用<Nj, master, k+l>通知其轉(zhuǎn)換為slave節(jié)點(diǎn)。
      [0089]當(dāng)backup節(jié)點(diǎn)出現(xiàn)網(wǎng)絡(luò)故障時如圖7所示:
      [0090](I)當(dāng)〈N」, backup, k>出現(xiàn)網(wǎng)絡(luò)故障時,不能得到〈隊(duì),master, k_l>響應(yīng)消息,同時〈隊(duì),master, k_l>也不能得到〈N」, backup, k>的響應(yīng)消息;
      [0091](2)由于網(wǎng)絡(luò)故障,〈N」, backup, k>轉(zhuǎn)換為〈N」, master, k>并且不能選取出新的節(jié)點(diǎn)作為backup節(jié)點(diǎn)。而〈隊(duì),master, k_l>會重新選舉一個新節(jié)點(diǎn)<Nk, backup, k> ;
      [0092](3)當(dāng)節(jié)點(diǎn)N」網(wǎng)絡(luò)恢復(fù)時,選舉出一個新節(jié)點(diǎn)〈隊(duì),backup, k+l> ;
      [0093](4)由于〈隊(duì),master, k>是序列號最大的master節(jié)點(diǎn),它會通知N」和Nk節(jié)點(diǎn)關(guān)閉相應(yīng)服務(wù),轉(zhuǎn)換為slave節(jié)點(diǎn)。
      [0094]當(dāng)backup節(jié)點(diǎn)出現(xiàn)“假死”現(xiàn)象時如圖8所示:
      [0095](I)當(dāng)〈N」, backup, k>出現(xiàn)“假死”現(xiàn)象,<Ni; master, k~l>不能得到它的響應(yīng)消息,〈N」, backup, k>此刻也暫時停止監(jiān)聽〈隊(duì),master, k_l> ;
      [0096](2)由于〈隊(duì),master, k_l>不能得到N」節(jié)點(diǎn)的響應(yīng)消息,貝U選舉出<Nk, backup, k> ;
      [0097](3)Ν」節(jié)點(diǎn)的“假死”現(xiàn)象消除,它會單方向監(jiān)聽Ni節(jié)點(diǎn);
      [0098](4)當(dāng)Ni節(jié)點(diǎn)出現(xiàn)巖機(jī)時,N」節(jié)點(diǎn)和Nk節(jié)點(diǎn)都能探知Ni發(fā)生故障;
      [0099](5)由于得不到Ni節(jié)點(diǎn)的響應(yīng),Nk節(jié)點(diǎn)轉(zhuǎn)換為<Nk,master,k>,選舉出一個新節(jié)點(diǎn)<Nm, backup, k+l>。同時Nj節(jié)點(diǎn)轉(zhuǎn)換為〈N」, master, k>,選舉出一個新節(jié)點(diǎn)<Nn, backup, k+l>。當(dāng)N」節(jié)點(diǎn)通知Nk節(jié)點(diǎn)轉(zhuǎn)換為slave節(jié)點(diǎn)時,Nk轉(zhuǎn)換為<Nk, slave, 0>,Nm節(jié)點(diǎn)單方向監(jiān)聽Nk節(jié)點(diǎn)。當(dāng)Nk節(jié)點(diǎn)出現(xiàn)巖機(jī),Nm節(jié)點(diǎn)會成為序列號最大的master節(jié)點(diǎn),通知%和Nn節(jié)點(diǎn)轉(zhuǎn)換為slave節(jié)點(diǎn)。當(dāng)Nk節(jié)點(diǎn)通知%節(jié)點(diǎn)轉(zhuǎn)換為slave節(jié)點(diǎn)的情況與上述類似。
      [0100]3.雙向異步通信機(jī)制的處理過程,如圖10所示。
      [0101]定義VM(i,j)表示第i個節(jié)點(diǎn)上的第j個虛擬機(jī)。假設(shè)資源池中有5個節(jié)點(diǎn)和3個虛擬機(jī),這 5 個節(jié)點(diǎn)分別表示為〈N” master, valid〉,<N2, backup, valid〉,<N3, slave, valid>, <N4, slave, valid〉和 <N5, slave, valid〉, 3 個虛擬機(jī)分別表示為 VM(4, I), VM(4, 2)和VM(5, 1),如圖 10(a)所示。
      [0102](I)客戶端通知(N1, master, valid〉節(jié)點(diǎn),要求將N4節(jié)點(diǎn)上的第I個虛擬機(jī)遷移到N5節(jié)點(diǎn)上;
      [0103](2)如圖10 (b)所示,N1節(jié)點(diǎn)將操作請求轉(zhuǎn)發(fā)給N4節(jié)點(diǎn),N4節(jié)點(diǎn)接收這個操作請求開始將VM(4,I)虛擬機(jī)遷移到N5節(jié)點(diǎn);
      [0104](3)如圖10(c)所示,在遷移的過程中,N1節(jié)點(diǎn)發(fā)生宕機(jī)故障,即表示為(N1, master, invalid〉,此時遷移過程還在進(jìn)行,而N2節(jié)點(diǎn)成為master節(jié)點(diǎn),即為<N2, master, valid)。同時N2節(jié)點(diǎn)選舉出N3節(jié)點(diǎn)充當(dāng)backup節(jié)點(diǎn),此時N3節(jié)點(diǎn)表示為<N3, backup, valid> ;
      [0105](4)此時遷移過程完成,VM(4,I)成為VM(5,2),N4和N5節(jié)點(diǎn)將自身的狀態(tài)信息通知給N1和N2節(jié)點(diǎn)。由于N1節(jié)點(diǎn)宕機(jī),它將不接受來自N4和N5的狀態(tài)信息。Master節(jié)點(diǎn)N2接收到來自N4和N5的狀態(tài)信息進(jìn)行更新,則它保存的虛擬機(jī)的狀態(tài)信息為VM(4,2),VM(5, I)和VM(5,2)。而backup節(jié)點(diǎn)N3接收不到來自N4和N5的狀態(tài)信息,則它保存的虛擬機(jī)的狀態(tài)信息還是為VM(4,1),VM(4,2)和VM(5,I);
      [0106](5)N2節(jié)點(diǎn)遍歷資源池中的所有節(jié)點(diǎn),并將master節(jié)點(diǎn)N2和backup節(jié)點(diǎn)N3的位置信息通知給這些節(jié)點(diǎn);
      [0107](6) N4節(jié)點(diǎn)和N5節(jié)點(diǎn)接收到來自master節(jié)點(diǎn)N2發(fā)送的位置信息,則開始將自身的狀態(tài)信息發(fā)送N2和N3節(jié)點(diǎn);
      [0108](7)如圖10 (d)所示,N3節(jié)點(diǎn)接收到來自N4和N5節(jié)點(diǎn)的狀態(tài)信息進(jìn)行更新,則它保存的虛擬機(jī)的狀態(tài)信息為VM(4,2),VM(5,I)和VM(5,2),與N2節(jié)點(diǎn)的狀態(tài)信息一致;
      [0109](8)如圖10(d)所示,隊(duì)節(jié)點(diǎn)宕機(jī)恢復(fù)后將成為slave節(jié)點(diǎn),即表示為〈N” slave, valid),此時它會將自身的狀態(tài)信息發(fā)送給N1和N2節(jié)點(diǎn)。當(dāng)N1將接收到來自master節(jié)點(diǎn)N2發(fā)送的位置信息,開始將自身的狀態(tài)信息發(fā)送給N2和N3節(jié)點(diǎn)。
      [0110]本發(fā)明未詳細(xì)闡述部分屬于本領(lǐng)域公知技術(shù)。
      [0111]以上所述,僅為本發(fā)明部分【具體實(shí)施方式】,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本領(lǐng)域的人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。
      【權(quán)利要求】
      1.一種基于角色的高可用虛擬機(jī)池化管理系統(tǒng),其特征在于:所述虛擬機(jī)池化中包括主節(jié)點(diǎn)即master節(jié)點(diǎn)、從節(jié)點(diǎn)即slave節(jié)點(diǎn)和備份節(jié)點(diǎn)即backup節(jié)點(diǎn);master節(jié)點(diǎn)是虛擬機(jī)資源池的唯一邏輯入口,負(fù)責(zé)管理資源池中的所有節(jié)點(diǎn);slaVe節(jié)點(diǎn)主要負(fù)責(zé)本節(jié)點(diǎn)的虛擬機(jī)生命周期的管理;backup節(jié)點(diǎn)用于備份master節(jié)點(diǎn)的狀態(tài)信息,保證與master節(jié)點(diǎn)的狀態(tài)信息一致,并在master節(jié)點(diǎn)失效時接管其工作;所述虛擬機(jī)池化中各個節(jié)點(diǎn)所處的角色并不是固定的,而是隨著不同條件在三種角色,即master節(jié)點(diǎn)、從節(jié)點(diǎn)slave和備份節(jié)點(diǎn)backup中轉(zhuǎn)換; 所述每個節(jié)點(diǎn)均包括節(jié)點(diǎn)管理模塊、資源池管理模塊和高可用管理模塊;每個節(jié)點(diǎn)均包括若干個虛擬機(jī); 節(jié)點(diǎn)管理模塊:負(fù)責(zé)本節(jié)點(diǎn)的虛擬機(jī)的生命周期管理,包括虛擬機(jī)的創(chuàng)建、關(guān)閉、啟動、遷移,周期性地監(jiān)聽本節(jié)點(diǎn)和運(yùn)行其上的每個虛擬機(jī)的資源使用情況,并寫入本地的文件方便遠(yuǎn)程客戶端解析;周期性地向master節(jié)點(diǎn)和backup節(jié)點(diǎn)發(fā)送狀態(tài)信息,狀態(tài)信息包括運(yùn)行了哪些虛擬機(jī),虛擬機(jī)關(guān)聯(lián)的磁盤文件;同時還接收來自master節(jié)點(diǎn)的操作請求,根據(jù)這個轉(zhuǎn)發(fā)的請求在本節(jié)點(diǎn)完成相應(yīng)的操作; 資源池管理模塊:當(dāng)節(jié)點(diǎn)作為master時,該模塊功能開啟,負(fù)責(zé)管理虛擬機(jī)資源池中的每個節(jié)點(diǎn)即slave和backup節(jié)點(diǎn),接受來自slave和backup節(jié)點(diǎn)的狀態(tài)信息,判定它們是否有效;同時負(fù)責(zé)接收用戶的請求,將請求轉(zhuǎn)發(fā)給正確的目標(biāo)節(jié)點(diǎn); 高可用管理模塊:當(dāng)節(jié)點(diǎn)為master節(jié)點(diǎn)和backup節(jié)點(diǎn)時,該模塊功能開啟,該模塊通過基于角色的雙機(jī)熱備方法,保障在master節(jié)點(diǎn)巖機(jī)時,系統(tǒng)能迅速恢復(fù)功能服務(wù);通過序列法來保障資源池中只有 一個master節(jié)點(diǎn)和backup節(jié)點(diǎn),利用雙向異步通信機(jī)制來保障master節(jié)點(diǎn)和backup節(jié)點(diǎn)兩者狀態(tài)信息的一致性; 上述模塊中,資源池管理模塊和高可用管理模塊共同負(fù)責(zé)管理各個節(jié)點(diǎn)在三種角色中的轉(zhuǎn)換。
      2.根據(jù)要求I所述的一種基于角色的高可用虛擬機(jī)池化管理系統(tǒng),其特征在于:所述虛擬機(jī)池化中各個節(jié)點(diǎn)在三種角色,即master節(jié)點(diǎn)、從節(jié)點(diǎn)slave和備份節(jié)點(diǎn)backup中轉(zhuǎn)換過程如下: 用三元組P=〈Number, Role, Squence〉來描述每個節(jié)點(diǎn),其中不同的元素的具體含義如下:Number,即節(jié)點(diǎn)的編號,虛擬機(jī)池化中一共有三個節(jié)點(diǎn),用NI,N2和N3來分別表示master, backup 和 slave 這三個節(jié)點(diǎn);Role,即節(jié)點(diǎn)的角色,master, backup 和 slave 三種角色,每種角色執(zhí)行不同功能;Squence,即節(jié)點(diǎn)的時間序號,每個節(jié)點(diǎn)都會有一個時間序號,實(shí)現(xiàn)步驟如下: (1)用戶建立虛擬機(jī)池化時指定一個none節(jié)點(diǎn)作為master節(jié)點(diǎn); (2)當(dāng)用戶需要將一個none節(jié)點(diǎn)加入虛擬機(jī)池化時,該節(jié)點(diǎn)從none轉(zhuǎn)變?yōu)閟lave節(jié)點(diǎn),成為虛擬機(jī)池化中的成員節(jié)點(diǎn); (3)用戶將某個節(jié)點(diǎn)從虛擬機(jī)池化中移除后,該節(jié)點(diǎn)由slave節(jié)點(diǎn)轉(zhuǎn)化為none節(jié)點(diǎn),不再屬于這個虛擬機(jī)池化; (4)當(dāng)虛擬機(jī)池化中的backup節(jié)點(diǎn)未被選取或者之前選取的backup節(jié)點(diǎn)失效時,由master節(jié)點(diǎn)選舉出一個有效的slave節(jié)點(diǎn),使其成為backup節(jié)點(diǎn); (5)當(dāng)backup節(jié)點(diǎn)探測到虛擬機(jī)池化中的master節(jié)點(diǎn)失效時,主動轉(zhuǎn)換為master,接管master節(jié)點(diǎn)的工作; (6)當(dāng)backup節(jié)點(diǎn)故障恢復(fù)后,重新回到虛擬機(jī)池化中,轉(zhuǎn)變?yōu)閟lave節(jié)點(diǎn); (7)當(dāng)master節(jié)點(diǎn)故障恢復(fù)后,重新回到虛擬機(jī)池化中,并轉(zhuǎn)變?yōu)閟lave節(jié)點(diǎn)。
      3.根據(jù)要求I所述的一種基于角色的高可用虛擬機(jī)池化管理系統(tǒng),其特征在于:所述基于角色的雙機(jī)熱備方法具體如下:其中定義Si為虛擬機(jī)池中的第i個節(jié)點(diǎn),I < i < η ; 如果節(jié)點(diǎn)的角色為master時,具體執(zhí)行步驟如下: (I) master節(jié)點(diǎn)監(jiān)聽backup節(jié)點(diǎn)是否有效或者未選舉,如果backuo節(jié)點(diǎn)有效則轉(zhuǎn)步(I)繼續(xù)監(jiān)聽這個節(jié)點(diǎn),如果無效則轉(zhuǎn)步驟(2); (2 )master節(jié)點(diǎn)遍歷資源池中的所有節(jié)點(diǎn),若發(fā)現(xiàn)一個有效的節(jié)點(diǎn),將這個節(jié)點(diǎn)角色轉(zhuǎn)換為backup,并將保存的狀態(tài)信息備份到這個節(jié)點(diǎn)上,轉(zhuǎn)步驟(I)監(jiān)聽這個backup節(jié)點(diǎn),否則這次選舉失敗轉(zhuǎn)步驟(2)繼續(xù)進(jìn)行選舉; 如果節(jié)點(diǎn)的角色為backup時,具體執(zhí)行步驟如下: (1)backup節(jié)點(diǎn)監(jiān)聽資源池中的master節(jié)點(diǎn)是否有效,如果有效則轉(zhuǎn)步驟(I)繼續(xù)進(jìn)行監(jiān)聽,如果無效則轉(zhuǎn)步驟(2); (2)backup節(jié)點(diǎn)將自身角色轉(zhuǎn)換為master節(jié)點(diǎn),并開啟對應(yīng)master節(jié)點(diǎn)的服務(wù),同時通知資源池中其他節(jié)點(diǎn)master節(jié)點(diǎn)發(fā)生了變化。
      4.根據(jù)要求I所述 的一種基于角色的高可用虛擬機(jī)池化管理系統(tǒng),其特征在于:所述序列法具體實(shí)現(xiàn)如下: (1)slave節(jié)點(diǎn)的序列號為O ; (2)當(dāng)每個節(jié)點(diǎn)被重新初始化時序列號都為O; 其中定義Sequence⑴表示第i個節(jié)點(diǎn)的序列號,以master節(jié)點(diǎn)表示為〈Ni, master, k>為例,它選舉出第j個有效節(jié)點(diǎn)為backup節(jié)點(diǎn),將這個節(jié)點(diǎn)的序列號設(shè)置為k+Ι,此時這個j結(jié)點(diǎn)表示為〈Nj, backup, k+l> ;Master節(jié)點(diǎn)即〈Ni, master, k>每隔一段時間會檢查資源池中的每個節(jié)點(diǎn),若發(fā)現(xiàn)某個節(jié)點(diǎn)的角色不為slave,并且序列號小于等于自身,貝1J通知這個節(jié)點(diǎn)關(guān)閉角色對應(yīng)的服務(wù),轉(zhuǎn)換為slave節(jié)點(diǎn),節(jié)點(diǎn)〈Ni, master, k>只會把角色不為slave,并且序列號小于等于k的節(jié)點(diǎn)轉(zhuǎn)換為slave節(jié)點(diǎn),并不會影響到由它選舉出來的〈Nj, backup, k+l>備份節(jié)點(diǎn),通過序列法能夠保障資源池中只有一個master節(jié)點(diǎn)和backup節(jié)點(diǎn)ο
      5.根據(jù)要求I所述的一種基于角色的高可用虛擬機(jī)池化管理系統(tǒng),其特征在于:所述雙向異步通信機(jī)制具體實(shí)現(xiàn)如下:來自客戶端的操作請求發(fā)送給master節(jié)點(diǎn),由它轉(zhuǎn)發(fā)給slave節(jié)點(diǎn),slave節(jié)點(diǎn)完成操作后發(fā)送響應(yīng)消息給master,由master將響應(yīng)消息發(fā)送給客戶端。slave節(jié)點(diǎn)每隔一段時間將自身的狀態(tài)信息發(fā)送給master和backup節(jié)點(diǎn),master和backup節(jié)點(diǎn)收到來自slave的狀態(tài)信息,則更新保存的狀態(tài)信息,這樣即使在master節(jié)點(diǎn)巖機(jī)時,slave節(jié)點(diǎn)也能將本節(jié)點(diǎn)的狀態(tài)信息及時通知給新的master節(jié)點(diǎn);同時master節(jié)點(diǎn)每隔一段時間廣播一個消息給資源池中的所有節(jié)點(diǎn),使得每個節(jié)點(diǎn)都能知道m(xù)aster和backup節(jié)點(diǎn)的目標(biāo)地址,避免某個節(jié)點(diǎn)巖機(jī)恢復(fù)的過程中master節(jié)點(diǎn)和backup節(jié)點(diǎn)的地址發(fā)生變化時,不能將狀態(tài)信息發(fā)送到正確的目標(biāo)地址。
      【文檔編號】G06F9/455GK103457775SQ201310398784
      【公開日】2013年12月18日 申請日期:2013年9月5日 優(yōu)先權(quán)日:2013年9月5日
      【發(fā)明者】黃濤, 張文博, 鐘華, 羅濤, 吳恒, 徐繼偉 申請人:中國科學(xué)院軟件研究所
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1