国产精品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ì)算中虛擬機(jī)的控制方法及裝置的制作方法

      文檔序號(hào):6398547閱讀:167來源:國(guó)知局

      專利名稱::一種云計(jì)算中虛擬機(jī)的控制方法及裝置的制作方法
      技術(shù)領(lǐng)域
      :本發(fā)明涉及服務(wù)器虛擬化領(lǐng)域,尤其涉及一種云計(jì)算中虛擬機(jī)的控制方法及裝置。
      背景技術(shù)
      :云計(jì)算是一種IT資源的交付和使用模式,是指通過網(wǎng)絡(luò)以按需、彈性的方式獲得所需的硬件、平臺(tái)、軟件以及服務(wù)等資源,提供資源的網(wǎng)絡(luò)被稱為“云”,其計(jì)算能力通常采用分布式的大規(guī)模集群和服務(wù)器虛擬化軟件搭建?!霸啤敝械馁Y源在用戶看來可以無限擴(kuò)展,并且可以隨時(shí)獲取、按需使用、隨時(shí)擴(kuò)展、按量付費(fèi)。云計(jì)算的主要內(nèi)容包括設(shè)施即服務(wù)(IaaS)、平臺(tái)即服務(wù)(PaaS)和軟件即服務(wù)(SaaS)等。設(shè)施即服務(wù)(IaaS)是云計(jì)算走向?qū)嵱玫牡谝徊?,它提供給用戶的服務(wù)是對(duì)所有基礎(chǔ)設(shè)施的使用,包括計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)等資源,用戶能夠部署和運(yùn)行任意軟件,包括操作系統(tǒng)和應(yīng)用程序。IaaS用戶無需關(guān)心底層任何的云計(jì)算基礎(chǔ)設(shè)施,只需關(guān)心操作系統(tǒng)的選擇、儲(chǔ)存空間的大小以及上層應(yīng)用的部署,也能控制一定限制的網(wǎng)絡(luò)組件(例如,防火墻、負(fù)載均衡器、DHCP、路由和VLAN等)。虛擬化技術(shù)作為IaaS的關(guān)鍵支撐技術(shù)之一,其重點(diǎn)是虛擬拆分技術(shù),即將大型的計(jì)算機(jī)拆分成為若干獨(dú)立的虛擬機(jī),在一個(gè)基礎(chǔ)設(shè)施上為不同的用戶提供服務(wù)?!霸啤钡膹椥阅芰?、資源快速供給主要基于虛擬化的技術(shù)實(shí)現(xiàn),目前主流的Amazon(亞馬遜)、Google(谷歌)、Microsoft(微軟)、阿里、盛大都以虛擬機(jī)的方式構(gòu)建他們的IaaS服務(wù)。虛擬機(jī)的控制是IaaS和服務(wù)器虛擬化面臨的首要問題,可靠的虛擬機(jī)控制功能是構(gòu)建IaaS服務(wù)和服務(wù)器虛擬化的基石,它負(fù)責(zé)控制虛擬機(jī)的運(yùn)行狀態(tài),決定虛擬機(jī)的行為方式。在云計(jì)算環(huán)境下,并發(fā)操作、故障多發(fā)、操作復(fù)雜成為常態(tài),虛擬機(jī)控制需要適應(yīng)這種環(huán)境,處理可能發(fā)生的各種問題?,F(xiàn)有的虛擬機(jī)控制功能均無法達(dá)到對(duì)虛擬機(jī)的完善控制,導(dǎo)致虛擬機(jī)在運(yùn)行過程中經(jīng)常發(fā)生各種問題,影響了用戶的使用。
      發(fā)明內(nèi)容本發(fā)明要解決的技術(shù)問題是提供一種云計(jì)算中虛擬機(jī)的控制方法及裝置,能夠適應(yīng)云計(jì)算環(huán)境,使虛擬機(jī)能夠穩(wěn)定運(yùn)行。為解決上述技術(shù)問題,本發(fā)明的一種云計(jì)算中虛擬機(jī)的控制方法,包括根據(jù)業(yè)務(wù)邏輯為虛擬機(jī)構(gòu)造用于確定虛擬機(jī)狀態(tài)遷移的狀態(tài)機(jī),所述狀態(tài)機(jī)中的每個(gè)狀態(tài)對(duì)應(yīng)有在該狀態(tài)下能夠接受的事件;獲取虛擬機(jī)的當(dāng)前狀態(tài),根據(jù)所述狀態(tài)機(jī)判斷虛擬機(jī)要觸發(fā)的事件是否是虛擬機(jī)在當(dāng)前狀態(tài)下能夠接受的事件,如果是,則從所述狀態(tài)機(jī)中確定事件觸發(fā)后,虛擬機(jī)的下一個(gè)狀態(tài),將虛擬機(jī)的當(dāng)前狀態(tài)轉(zhuǎn)移到確定的下一個(gè)狀態(tài)。進(jìn)一步地,還包括在所述狀態(tài)機(jī)中的每個(gè)狀態(tài)中封裝有虛擬機(jī)進(jìn)入該狀態(tài)后需執(zhí)行的操作序列;在將虛擬機(jī)的當(dāng)前狀態(tài)轉(zhuǎn)移到確定的下一個(gè)狀態(tài)后,判斷虛擬機(jī)的當(dāng)前狀態(tài)是否具有超時(shí)屬性,如果具有超時(shí)屬性,注冊(cè)并啟動(dòng)一定時(shí)器,執(zhí)行在進(jìn)入當(dāng)前狀態(tài)后需執(zhí)行的操作序列,如果執(zhí)行成功,則終止所述定時(shí)器,向所述虛擬機(jī)發(fā)送操作成功事件;如果執(zhí)行失敗,則終止所述定時(shí)器,向所述虛擬機(jī)發(fā)送操作失敗事件。進(jìn)一步地,還包括在判斷虛擬機(jī)的當(dāng)前狀態(tài)具有超時(shí)屬性后,根據(jù)所述狀態(tài)機(jī)確定所述定時(shí)器超時(shí)后虛擬機(jī)的狀態(tài),如果所述定時(shí)器超時(shí),則向所述虛擬機(jī)發(fā)送超時(shí)事件,將虛擬機(jī)的當(dāng)前狀態(tài)轉(zhuǎn)移到確定的超時(shí)后虛擬機(jī)的狀態(tài)。進(jìn)一步地,還包括在將虛擬機(jī)的當(dāng)前狀態(tài)轉(zhuǎn)移到確定的下一個(gè)狀態(tài)后,判斷虛擬機(jī)的當(dāng)前狀態(tài)是否為穩(wěn)態(tài),如果是,則針對(duì)所述虛擬機(jī)要觸發(fā)的事件本次對(duì)所述虛擬機(jī)的控制過程結(jié)束。進(jìn)一步地,根據(jù)業(yè)務(wù)邏輯為虛擬機(jī)構(gòu)造用于確定虛擬機(jī)狀態(tài)遷移的狀態(tài)機(jī),包括根據(jù)業(yè)務(wù)邏輯在虛擬機(jī)的可觀測(cè)狀態(tài)之間加入輔助狀態(tài),確定在每個(gè)可觀測(cè)狀態(tài)和輔助狀態(tài)下能夠接受的事件;確定在每個(gè)可觀測(cè)狀態(tài)和輔助狀態(tài)下觸發(fā)能夠接受的事件成功之后的狀態(tài)、觸發(fā)能夠接受的事件失敗之后的狀態(tài)和觸發(fā)能夠接受的事件超時(shí)之后的狀態(tài),以及輔助狀態(tài)超時(shí)之后的狀態(tài),得到虛擬機(jī)的狀態(tài)機(jī)。進(jìn)一步地,一種云計(jì)算中虛擬機(jī)的控制裝置,包括狀態(tài)機(jī)確定單元、第一判斷單元和狀態(tài)轉(zhuǎn)移單元,其中所述狀態(tài)機(jī)確定單元,用于根據(jù)業(yè)務(wù)邏輯為虛擬機(jī)構(gòu)造用于確定虛擬機(jī)狀態(tài)遷移的狀態(tài)機(jī),所述狀態(tài)機(jī)中的每個(gè)狀態(tài)對(duì)應(yīng)有在該狀態(tài)下能夠接受的事件;所述第一判斷單元,用于獲取虛擬機(jī)的當(dāng)前狀態(tài),根據(jù)所述狀態(tài)機(jī)確定單元確定的狀態(tài)機(jī)判斷虛擬機(jī)要觸發(fā)的事件是否是虛擬機(jī)在當(dāng)前狀態(tài)下能夠接受的事件;所述狀態(tài)轉(zhuǎn)移單元,用于在所述第一判斷單元判斷虛擬機(jī)要觸發(fā)的事件是虛擬機(jī)在當(dāng)前狀態(tài)下能夠接受的事件時(shí),從所述狀態(tài)機(jī)中確定事件觸發(fā)后,虛擬機(jī)的下一個(gè)狀態(tài),將虛擬機(jī)的當(dāng)前狀態(tài)轉(zhuǎn)移到確定的下一個(gè)狀態(tài)。進(jìn)一步地,還包括操作序列執(zhí)行單元,其中所述操作序列執(zhí)行單元,用于在所述狀態(tài)轉(zhuǎn)移單元將虛擬機(jī)的當(dāng)前狀態(tài)轉(zhuǎn)移到確定的下一個(gè)狀態(tài)后,判斷虛擬機(jī)的當(dāng)前狀態(tài)是否具有超時(shí)屬性,如果具有超時(shí)屬性,注冊(cè)并啟動(dòng)一定時(shí)器,執(zhí)行在進(jìn)入當(dāng)前狀態(tài)后需執(zhí)行的操作序列,如果執(zhí)行成功,則終止所述定時(shí)器,向所述虛擬機(jī)發(fā)送操作成功事件;如果執(zhí)行失敗,則終止所述定時(shí)器,向所述虛擬機(jī)發(fā)送操作失敗事件。進(jìn)一步地,還包括超時(shí)處理單元,其中所述超時(shí)處理單元,用于在所述操作序列執(zhí)行單元判斷虛擬機(jī)的當(dāng)前狀態(tài)具有超時(shí)屬性后,根據(jù)所述狀態(tài)機(jī)確定所述定時(shí)器超時(shí)后虛擬機(jī)的狀態(tài),如果所述定時(shí)器超時(shí),則向所述虛擬機(jī)發(fā)送超時(shí)事件,將虛擬機(jī)的當(dāng)前狀態(tài)轉(zhuǎn)移到確定的超時(shí)后虛擬機(jī)的狀態(tài)。進(jìn)一步地,還包括第二判斷單元,其中所述第二判斷單元,用于在所述狀態(tài)轉(zhuǎn)移單元將虛擬機(jī)的當(dāng)前狀態(tài)轉(zhuǎn)移到確定的下一個(gè)狀態(tài)后,判斷虛擬機(jī)的當(dāng)前狀態(tài)是否為穩(wěn)態(tài),如果是,則針對(duì)所述虛擬機(jī)要觸發(fā)的事件本次對(duì)所述虛擬機(jī)的控制過程結(jié)束。進(jìn)一步地,所述狀態(tài)機(jī)確定單元,具體用于根據(jù)業(yè)務(wù)邏輯在虛擬機(jī)的可觀測(cè)狀態(tài)之間加入輔助狀態(tài),確定在每個(gè)可觀測(cè)狀態(tài)和輔助狀態(tài)下能夠接受的事件;確定在每個(gè)可觀測(cè)狀態(tài)和輔助狀態(tài)下觸發(fā)能夠接受的事件成功之后的狀態(tài)、觸發(fā)能夠接受的事件失敗之后的狀態(tài)和觸發(fā)能夠接受的事件超時(shí)之后的狀態(tài),以及輔助狀態(tài)超時(shí)之后的狀態(tài),得到虛擬機(jī)的狀態(tài)機(jī)。綜上所述,本發(fā)明通過狀態(tài)機(jī)控制虛擬機(jī)的行為,將虛擬機(jī)的行為控制集中起來,從狀態(tài)角度出發(fā),驅(qū)動(dòng)虛擬機(jī)的操作行為變化,使得其他模塊無需關(guān)心虛擬機(jī)的內(nèi)部運(yùn)作模式,只需通知虛擬機(jī)要執(zhí)行的動(dòng)作即可,這種方法可以顯著降低構(gòu)建大型的服務(wù)器虛擬化系統(tǒng)的復(fù)雜度,簡(jiǎn)化虛擬機(jī)的操作,提高虛擬機(jī)控制的擴(kuò)展性。圖1為本發(fā)明實(shí)施方式的云計(jì)算中虛擬機(jī)的控制方法的流程圖;圖2為本發(fā)明實(shí)施方式在虛擬機(jī)開啟過程中加入輔助狀態(tài)的示意圖;圖3為本發(fā)明實(shí)施方式的云計(jì)算中虛擬機(jī)的控制裝置的架構(gòu)圖。具體實(shí)施例方式本實(shí)施方式提出了一種基于狀態(tài)機(jī)的虛擬機(jī)控制方法,用于完成云計(jì)算中虛擬機(jī)的控制功能,能夠解決復(fù)雜環(huán)境下的虛擬機(jī)操作帶來的問題,對(duì)虛擬機(jī)的控制是整個(gè)資源池內(nèi)部虛擬機(jī)操作的入口與核心,本實(shí)施方式將虛擬機(jī)的行為控制集中處理,簡(jiǎn)化了構(gòu)建服務(wù)器虛擬化系統(tǒng)和云計(jì)算IaaS平臺(tái)的業(yè)務(wù)邏輯。本文基于虛擬機(jī)的可觀測(cè)狀態(tài),結(jié)合業(yè)務(wù)邏輯進(jìn)行擴(kuò)展,形成業(yè)務(wù)相關(guān)的虛擬機(jī)行為狀態(tài)機(jī),以狀態(tài)機(jī)為核心進(jìn)行虛擬機(jī)的控制,控制虛擬機(jī)的行為動(dòng)作。下面結(jié)合附圖對(duì)本實(shí)施方式的虛擬機(jī)的控制方法進(jìn)行詳細(xì)說明。本實(shí)施方式的基于狀態(tài)的虛擬機(jī)的控制方法,從虛擬機(jī)的可觀測(cè)狀態(tài)出發(fā),根據(jù)業(yè)務(wù)需求進(jìn)行狀態(tài)擴(kuò)展,形成完整的狀態(tài)機(jī),然后根據(jù)這一狀態(tài)機(jī)驅(qū)動(dòng)虛擬機(jī)的行為過程。觸發(fā)虛擬機(jī)狀態(tài)轉(zhuǎn)移的條件稱為事件,在狀態(tài)機(jī)中的每個(gè)狀態(tài)的內(nèi)部封裝虛擬機(jī)進(jìn)入狀態(tài)后需執(zhí)行的操作序列和虛擬機(jī)退出狀態(tài)后需執(zhí)行的操作序列。如圖1所示,本實(shí)施方式的云計(jì)算中虛擬機(jī)的控制方法,包括步驟101:根據(jù)業(yè)務(wù)邏輯為虛擬機(jī)構(gòu)造用于確定虛擬機(jī)狀態(tài)遷移的狀態(tài)機(jī);構(gòu)造狀態(tài)機(jī)的過程包括步驟1011:根據(jù)業(yè)務(wù)邏輯在虛擬機(jī)的可觀測(cè)狀態(tài)之間加入輔助狀態(tài);以XEN(—種虛擬機(jī)監(jiān)視器)為例,虛擬機(jī)的可觀測(cè)狀態(tài)包括以下幾種類型(I)Running(運(yùn)行),虛擬機(jī)正在某個(gè)CPU上運(yùn)行;(2)Blocked(阻塞),虛擬機(jī)由于等待IO(輸入輸出)或者進(jìn)入休眠狀態(tài),而被阻塞;(3)Paused(暫停),虛擬機(jī)暫停,執(zhí)行pause事件的結(jié)果;(4)Shutdown(關(guān)閉),虛擬機(jī)關(guān)閉;(5)Crashed(崩潰),虛擬機(jī)崩潰,未能正常進(jìn)入Shutdown狀態(tài);(6)Daying(終止),虛擬機(jī)正在終止,但未完全進(jìn)入Shutdown或者Crashed狀態(tài)。可觀測(cè)狀態(tài)是底層虛擬機(jī)監(jiān)視器可以提供的基本狀態(tài),由于這些狀態(tài)不夠精細(xì),或者距離業(yè)務(wù)邏輯需求較遠(yuǎn),需要基于這些可觀測(cè)狀態(tài)插入輔助狀態(tài)。增加輔助狀態(tài)可以考慮以下幾個(gè)因素(I)虛擬機(jī)精細(xì)狀態(tài)要求?,F(xiàn)在主流的服務(wù)器虛擬化平臺(tái)提供安裝在虛擬機(jī)內(nèi)的代理(例如VMware的VMTools),除了提供設(shè)備驅(qū)動(dòng)優(yōu)化、虛擬機(jī)與物理機(jī)通信等功能之外,還有一個(gè)功能是提供虛擬機(jī)的精細(xì)狀態(tài),例如從加電到可以對(duì)外提供服務(wù),這個(gè)狀態(tài)就能通過代理獲得,這為虛擬機(jī)監(jiān)視器提供了額外的狀態(tài)支撐。(2)業(yè)務(wù)邏輯精確控制要求。劃分狀態(tài)的主要目的在于限定狀態(tài)可以接受的事件的集合,進(jìn)行細(xì)粒度的操作控制,有利于保持整個(gè)系統(tǒng)的穩(wěn)定性,因此通過分析業(yè)務(wù)邏輯需求,結(jié)合虛擬機(jī)監(jiān)視器的操作執(zhí)行情況,可以有目的的增加輔助狀態(tài),控制操作執(zhí)行的精細(xì)先決條件。(3)業(yè)務(wù)邏輯階段劃分要求。在一些情況下,為了簡(jiǎn)化業(yè)務(wù)邏輯,會(huì)對(duì)復(fù)雜過程進(jìn)行問題拆分,形成多個(gè)階段,為了實(shí)現(xiàn)上的一致性,需要對(duì)虛擬機(jī)的狀態(tài)轉(zhuǎn)移過程進(jìn)行拆分,增加相應(yīng)的輔助狀態(tài),與業(yè)務(wù)邏輯階段劃分對(duì)應(yīng)。上述三種因素需要綜合考慮,輔助狀態(tài)的增加可能涉及多個(gè)因素。如圖2所示,以虛擬機(jī)開啟過程為例,狀態(tài)變化始于Shutdown終于Running,但是對(duì)于虛擬機(jī)開啟業(yè)務(wù)流程來說,需要在狀態(tài)Shutdown和Running之間進(jìn)行一些操作(資源調(diào)度、資源準(zhǔn)備和資源檢查等),因此需要增加一個(gè)輔助狀態(tài)Pending對(duì)應(yīng)這些操作(因素3),同時(shí)考慮到在虛擬機(jī)對(duì)外提供正常服務(wù)之前,執(zhí)行快照操作沒有意義,因此我們?cè)黾右粋€(gè)Boot狀態(tài),以區(qū)別于可以執(zhí)行快照操作的Running狀態(tài)(因素2和和因素I)。至此就形成了從Shutdown到Running的完整狀態(tài)。步驟1012:確定在每個(gè)可觀測(cè)狀態(tài)和輔助狀態(tài)下能夠接受的事件;本實(shí)施方式通過定義不同狀態(tài)下能夠接受的事件,可以實(shí)現(xiàn)對(duì)一些事件的限制。例如,Shutdown狀態(tài)能夠接受的事件包含啟動(dòng)事件,但是連續(xù)兩次對(duì)處于Shutdown狀態(tài)的虛擬機(jī)執(zhí)行啟動(dòng)事件就會(huì)被禁止,因?yàn)?,在第一次啟?dòng)之后,虛擬機(jī)進(jìn)入Pending狀態(tài),在啟動(dòng)事件不屬于Pending狀態(tài)能夠接受的事件的情況下,會(huì)禁止第二次的啟動(dòng)事件,可以避免并發(fā)操作帶來的問題。再比如,對(duì)于某些服務(wù)器虛擬化系統(tǒng)來說,對(duì)處于啟動(dòng)過程中的虛擬機(jī)使用pause事件,可能造成無法預(yù)料的后果,在增加Boot狀態(tài)后,可以不將pause事件定義為Boot狀態(tài)能夠接受的事件,這樣就可以消除在虛擬機(jī)啟動(dòng)過程中使虛擬機(jī)執(zhí)行pause操作的可倉(cāng)泛。本實(shí)施方式中可以將狀態(tài)進(jìn)行分類,包括穩(wěn)態(tài)和暫態(tài)??捎^測(cè)狀態(tài)可劃分為穩(wěn)態(tài),如果沒有外部操作驅(qū)動(dòng),虛擬機(jī)會(huì)一直處于這個(gè)狀態(tài)。輔助狀態(tài)可劃分為暫態(tài),處于暫態(tài)的虛擬機(jī)往往需要完成業(yè)務(wù)相關(guān)的一系列操作或者等待超時(shí)(即過程性的暫態(tài)和超時(shí)性的暫態(tài)),操作順利完成或者超時(shí)則需要進(jìn)入下一個(gè)狀態(tài)。無論是穩(wěn)態(tài)還是暫態(tài),還需要明確以下內(nèi)容步驟1013:確定在每個(gè)可觀測(cè)狀態(tài)和輔助狀態(tài)下觸發(fā)能夠接受的事件成功之后的狀態(tài)、觸發(fā)能夠接受的事件失敗之后的狀態(tài)和觸發(fā)能夠接受的事件超時(shí)之后的狀態(tài),以及輔助狀態(tài)超時(shí)之后的轉(zhuǎn)移狀態(tài),得到虛擬機(jī)完整的狀態(tài)機(jī);觸發(fā)能夠接受的事件超時(shí)是指,在一定時(shí)間內(nèi)未接收到事件執(zhí)行成功或失敗的反饋。通過分析具體業(yè)務(wù),我們可以逐步在可觀測(cè)狀態(tài)之上添加輔助狀態(tài),進(jìn)而形成一個(gè)完整的業(yè)務(wù)狀態(tài)機(jī),這是使用虛擬機(jī)控制方法的基礎(chǔ)。確定上述內(nèi)容之后,可以按照下面的過程處理虛擬機(jī)的操作。步驟102:獲取虛擬機(jī)的當(dāng)前狀態(tài),判斷虛擬機(jī)要觸發(fā)的事件是否為當(dāng)前狀態(tài)的能夠接受的事件,如果不是,則返回錯(cuò)誤;步驟103:根據(jù)虛擬機(jī)的當(dāng)前狀態(tài)和虛擬機(jī)要觸發(fā)的事件,從狀態(tài)機(jī)中確定虛擬機(jī)的下一個(gè)狀態(tài);下一個(gè)狀態(tài)可以通過當(dāng)前狀態(tài)和事件唯一確定;步驟104:將虛擬機(jī)的當(dāng)前狀態(tài)轉(zhuǎn)移到從狀態(tài)機(jī)中確定的下一個(gè)狀態(tài);該轉(zhuǎn)移過程是原子操作的過程;步驟105:判斷虛擬機(jī)的當(dāng)前狀態(tài)(就是轉(zhuǎn)移后的狀態(tài))是否為穩(wěn)態(tài),如果是,則返回成功;步驟106:如果當(dāng)前狀態(tài)具有超時(shí)屬性,則獲取超時(shí)后的虛擬機(jī)的狀態(tài);步驟107:注冊(cè)并啟動(dòng)一定時(shí)器,并且,儲(chǔ)存超時(shí)后的轉(zhuǎn)移狀態(tài);步驟108:執(zhí)行在進(jìn)入當(dāng)前狀態(tài)后需執(zhí)行的操作序列,如果成功,則執(zhí)行步驟109,否則執(zhí)行步驟110;步驟109:終止超時(shí)時(shí)鐘,向虛擬機(jī)發(fā)送操作成功事件;步驟110:終止超時(shí)時(shí)鐘,向虛擬機(jī)發(fā)送操作失敗事件;步驟111:如果定時(shí)器超時(shí),則向虛擬機(jī)發(fā)送超時(shí)事件,將虛擬機(jī)的當(dāng)前狀態(tài)轉(zhuǎn)移到確定的超時(shí)后虛擬機(jī)的狀態(tài)。//VM代表某個(gè)虛擬機(jī),E代表事件,例如虛擬機(jī)啟動(dòng)事件;Execute(VM,E){//獲取虛擬機(jī)VM的當(dāng)前狀態(tài)state=CiirrentState(VM);//判斷當(dāng)前狀態(tài)是否能夠接受E這個(gè)事件//如果不能接受,則返回錯(cuò)誤//注意,這個(gè)判斷是與虛擬機(jī)無關(guān)if(!accept(state,E))returnerror;//獲得事件觸發(fā)后的下一個(gè)狀態(tài)nextState=next(state,E);//轉(zhuǎn)移虛擬機(jī)狀態(tài),該操作必須是原子的//轉(zhuǎn)移成功之后虛擬機(jī)的當(dāng)前狀態(tài)變?yōu)閚extState,即新的狀態(tài)transState(VM,state,nextState);`Il判斷是否為穩(wěn)態(tài),如果是,則返回操作成功if(stableState(nextState)){returnok;}//如果下一個(gè)狀態(tài)具有超時(shí)屬性,注冊(cè)一個(gè)時(shí)鐘用于觸發(fā)超時(shí)動(dòng)作if(timeout(nextState))J//獲取超時(shí)后的狀態(tài)IiextTimeoutState—next(VM,nextState,TIMEOUT);//為狀態(tài)活動(dòng)計(jì)時(shí),如果超時(shí)則調(diào)用OnTimeoutregister(timer,VM,nextState,nextTimeoutState);}//執(zhí)行在進(jìn)入當(dāng)前狀態(tài)后需執(zhí)行的操作序列if(doStatcEntryAction(VM,ncxtStatc)==SUCC){//終止時(shí)鐘stop(timer)://執(zhí)行成功,發(fā)送觸發(fā)事件Execute(VM,E-SUCC);)else{//終止時(shí)鐘stop(tiiner);//執(zhí)行失敗,發(fā)送觸發(fā)事件Execute(VM,E-FAIL);}}//時(shí)鐘超時(shí)操作OiiTimeoultVM,state){Execute(VM,TIMEOUT);}如圖3所示,本實(shí)施方式還提供了一種云計(jì)算中虛擬機(jī)的控制裝置,包括狀態(tài)機(jī)確定單元、第一判斷單元和狀態(tài)轉(zhuǎn)移單元,其中狀態(tài)機(jī)確定單元,用于根據(jù)業(yè)務(wù)邏輯為虛擬機(jī)構(gòu)造用于確定虛擬機(jī)狀態(tài)遷移的狀態(tài)機(jī),狀態(tài)機(jī)中的每個(gè)狀態(tài)對(duì)應(yīng)有在該狀態(tài)下能夠接受的事件;第一判斷單元,用于獲取虛擬機(jī)的當(dāng)前狀態(tài),根據(jù)狀態(tài)機(jī)確定單元確定的狀態(tài)機(jī)判斷虛擬機(jī)要觸發(fā)的事件是否是虛擬機(jī)在當(dāng)前狀態(tài)下能夠接受的事件;狀態(tài)轉(zhuǎn)移單元,用于在第一判斷單元判斷虛擬機(jī)要觸發(fā)的事件是虛擬機(jī)在當(dāng)前狀態(tài)下能夠接受的事件時(shí),從狀態(tài)機(jī)中確定事件觸發(fā)后,虛擬機(jī)的下一個(gè)狀態(tài),將虛擬機(jī)的當(dāng)前狀態(tài)轉(zhuǎn)移到確定的下一個(gè)狀態(tài)。該裝置還包括操作序列執(zhí)行單元,其中操作序列執(zhí)行單元,用于在狀態(tài)轉(zhuǎn)移單元將虛擬機(jī)的當(dāng)前狀態(tài)轉(zhuǎn)移到確定的下一個(gè)狀態(tài)后,判斷虛擬機(jī)的當(dāng)前狀態(tài)是否具有超時(shí)屬性,如果具有超時(shí)屬性,注冊(cè)并啟動(dòng)一定時(shí)器,執(zhí)行在進(jìn)入當(dāng)前狀態(tài)后需執(zhí)行的操作序列,如果執(zhí)行成功,則終止定時(shí)器,向虛擬機(jī)發(fā)送操作成功事件;如果執(zhí)行失敗,則終止定時(shí)器,向虛擬機(jī)發(fā)送操作失敗事件。該裝置還包括超時(shí)處理單元,其中超時(shí)處理單元,用于在操作序列執(zhí)行單元判斷虛擬機(jī)的當(dāng)前狀態(tài)具有超時(shí)屬性后,根據(jù)狀態(tài)機(jī)確定定時(shí)器超時(shí)后虛擬機(jī)的狀態(tài),如果定時(shí)器超時(shí),則向虛擬機(jī)發(fā)送超時(shí)事件,將虛擬機(jī)的當(dāng)前狀態(tài)轉(zhuǎn)移到確定的超時(shí)后虛擬機(jī)的狀態(tài)。該裝置還包括第二判斷單元,其中第二判斷單元,用于在狀態(tài)轉(zhuǎn)移單元將虛擬機(jī)的當(dāng)前狀態(tài)轉(zhuǎn)移到確定的下一個(gè)狀態(tài)后,判斷虛擬機(jī)的當(dāng)前狀態(tài)是否為穩(wěn)態(tài),如果是,則針對(duì)虛擬機(jī)要觸發(fā)的事件本次對(duì)虛擬機(jī)的控制過程結(jié)束。狀態(tài)機(jī)確定單元,具體用于根據(jù)業(yè)務(wù)邏輯在虛擬機(jī)的可觀測(cè)狀態(tài)之間加入輔助狀態(tài),確定在每個(gè)可觀測(cè)狀態(tài)和輔助狀態(tài)下能夠接受的事件;確定在每個(gè)可觀測(cè)狀態(tài)和輔助狀態(tài)下觸發(fā)能夠接受的事件成功之后的狀態(tài)、觸發(fā)能夠接受的事件失敗之后的狀態(tài)和觸發(fā)能夠接受的事件超時(shí)之后的狀態(tài),以及輔助狀態(tài)超時(shí)之后的狀態(tài),得到虛擬機(jī)的狀態(tài)機(jī)。顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計(jì)算裝置來實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,或者分布在多個(gè)計(jì)算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來實(shí)現(xiàn),從而可以將它們存儲(chǔ)在存儲(chǔ)裝置中由計(jì)算裝置來執(zhí)行,或者將它們分別制作成各個(gè)集成電路模塊,或者將它們中的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。以上該僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。權(quán)利要求1.一種云計(jì)算中虛擬機(jī)的控制方法,包括根據(jù)業(yè)務(wù)邏輯為虛擬機(jī)構(gòu)造用于確定虛擬機(jī)狀態(tài)遷移的狀態(tài)機(jī),所述狀態(tài)機(jī)中的每個(gè)狀態(tài)對(duì)應(yīng)有在該狀態(tài)下能夠接受的事件;獲取虛擬機(jī)的當(dāng)前狀態(tài),根據(jù)所述狀態(tài)機(jī)判斷虛擬機(jī)要觸發(fā)的事件是否是虛擬機(jī)在當(dāng)前狀態(tài)下能夠接受的事件,如果是,則從所述狀態(tài)機(jī)中確定事件觸發(fā)后,虛擬機(jī)的下一個(gè)狀態(tài),將虛擬機(jī)的當(dāng)前狀態(tài)轉(zhuǎn)移到確定的下一個(gè)狀態(tài)。2.如權(quán)利要求1所述的方法,其特征在于,還包括在所述狀態(tài)機(jī)中的每個(gè)狀態(tài)中封裝有虛擬機(jī)進(jìn)入該狀態(tài)后需執(zhí)行的操作序列;在將虛擬機(jī)的當(dāng)前狀態(tài)轉(zhuǎn)移到確定的下一個(gè)狀態(tài)后,判斷虛擬機(jī)的當(dāng)前狀態(tài)是否具有超時(shí)屬性,如果具有超時(shí)屬性,注冊(cè)并啟動(dòng)一定時(shí)器,執(zhí)行在進(jìn)入當(dāng)前狀態(tài)后需執(zhí)行的操作序列,如果執(zhí)行成功,則終止所述定時(shí)器,向所述虛擬機(jī)發(fā)送操作成功事件;如果執(zhí)行失敗,則終止所述定時(shí)器,向所述虛擬機(jī)發(fā)送操作失敗事件。3.如權(quán)利要求2所述的方法,其特征在于,還包括在判斷虛擬機(jī)的當(dāng)前狀態(tài)具有超時(shí)屬性后,根據(jù)所述狀態(tài)機(jī)確定所述定時(shí)器超時(shí)后虛擬機(jī)的狀態(tài),如果所述定時(shí)器超時(shí),則向所述虛擬機(jī)發(fā)送超時(shí)事件,將虛擬機(jī)的當(dāng)前狀態(tài)轉(zhuǎn)移到確定的超時(shí)后虛擬機(jī)的狀態(tài)。4.如權(quán)利要求1所述的方法,其特征在于,還包括在將虛擬機(jī)的當(dāng)前狀態(tài)轉(zhuǎn)移到確定的下一個(gè)狀態(tài)后,判斷虛擬機(jī)的當(dāng)前狀態(tài)是否為穩(wěn)態(tài),如果是,則針對(duì)所述虛擬機(jī)要觸發(fā)的事件本次對(duì)所述虛擬機(jī)的控制過程結(jié)束。5.如權(quán)利要求1所述的方法,其特征在于,根據(jù)業(yè)務(wù)邏輯為虛擬機(jī)構(gòu)造用于確定虛擬機(jī)狀態(tài)遷移的狀態(tài)機(jī),包括根據(jù)業(yè)務(wù)邏輯在虛擬機(jī)的可觀測(cè)狀態(tài)之間加入輔助狀態(tài),確定在每個(gè)可觀測(cè)狀態(tài)和輔助狀態(tài)下能夠接受的事件;確定在每個(gè)可觀測(cè)狀態(tài)和輔助狀態(tài)下觸發(fā)能夠接受的事件成功之后的狀態(tài)、觸發(fā)能夠接受的事件失敗之后的狀態(tài)和觸發(fā)能夠接受的事件超時(shí)之后的狀態(tài),以及輔助狀態(tài)超時(shí)之后的狀態(tài),得到虛擬機(jī)的狀態(tài)機(jī)。6.一種云計(jì)算中虛擬機(jī)的控制裝置,包括狀態(tài)機(jī)確定單元、第一判斷單元和狀態(tài)轉(zhuǎn)移單元,其中所述狀態(tài)機(jī)確定單元,用于根據(jù)業(yè)務(wù)邏輯為虛擬機(jī)構(gòu)造用于確定虛擬機(jī)狀態(tài)遷移的狀態(tài)機(jī),所述狀態(tài)機(jī)中的每個(gè)狀態(tài)對(duì)應(yīng)有在該狀態(tài)下能夠接受的事件;所述第一判斷單元,用于獲取虛擬機(jī)的當(dāng)前狀態(tài),根據(jù)所述狀態(tài)機(jī)確定單元確定的狀態(tài)機(jī)判斷虛擬機(jī)要觸發(fā)的事件是否是虛擬機(jī)在當(dāng)前狀態(tài)下能夠接受的事件;所述狀態(tài)轉(zhuǎn)移單元,用于在所述第一判斷單元判斷虛擬機(jī)要觸發(fā)的事件是虛擬機(jī)在當(dāng)前狀態(tài)下能夠接受的事件時(shí),從所述狀態(tài)機(jī)中確定事件觸發(fā)后,虛擬機(jī)的下一個(gè)狀態(tài),將虛擬機(jī)的當(dāng)前狀態(tài)轉(zhuǎn)移到確定的下一個(gè)狀態(tài)。7.如權(quán)利要求6所述的裝置,其特征在于,還包括操作序列執(zhí)行單元,其中所述操作序列執(zhí)行單元,用于在所述狀態(tài)轉(zhuǎn)移單元將虛擬機(jī)的當(dāng)前狀態(tài)轉(zhuǎn)移到確定的下一個(gè)狀態(tài)后,判斷虛擬機(jī)的當(dāng)前狀態(tài)是否具有超時(shí)屬性,如果具有超時(shí)屬性,注冊(cè)并啟動(dòng)一定時(shí)器,執(zhí)行在進(jìn)入當(dāng)前狀態(tài)后需執(zhí)行的操作序列,如果執(zhí)行成功,則終止所述定時(shí)器,向所述虛擬機(jī)發(fā)送操作成功事件;如果執(zhí)行失敗,則終止所述定時(shí)器,向所述虛擬機(jī)發(fā)送操作失敗事件。8.如權(quán)利要求7所述的裝置,其特征在于,還包括超時(shí)處理單元,其中所述超時(shí)處理單元,用于在所述操作序列執(zhí)行單元判斷虛擬機(jī)的當(dāng)前狀態(tài)具有超時(shí)屬性后,根據(jù)所述狀態(tài)機(jī)確定所述定時(shí)器超時(shí)后虛擬機(jī)的狀態(tài),如果所述定時(shí)器超時(shí),則向所述虛擬機(jī)發(fā)送超時(shí)事件,將虛擬機(jī)的當(dāng)前狀態(tài)轉(zhuǎn)移到確定的超時(shí)后虛擬機(jī)的狀態(tài)。9.如權(quán)利要求6所述的裝置,其特征在于,還包括第二判斷單元,其中所述第二判斷單元,用于在所述狀態(tài)轉(zhuǎn)移單元將虛擬機(jī)的當(dāng)前狀態(tài)轉(zhuǎn)移到確定的下一個(gè)狀態(tài)后,判斷虛擬機(jī)的當(dāng)前狀態(tài)是否為穩(wěn)態(tài),如果是,則針對(duì)所述虛擬機(jī)要觸發(fā)的事件本次對(duì)所述虛擬機(jī)的控制過程結(jié)束。10.如權(quán)利要求6所述的裝置,其特征在于所述狀態(tài)機(jī)確定單元,具體用于根據(jù)業(yè)務(wù)邏輯在虛擬機(jī)的可觀測(cè)狀態(tài)之間加入輔助狀態(tài),確定在每個(gè)可觀測(cè)狀態(tài)和輔助狀態(tài)下能夠接受的事件;確定在每個(gè)可觀測(cè)狀態(tài)和輔助狀態(tài)下觸發(fā)能夠接受的事件成功之后的狀態(tài)、觸發(fā)能夠接受的事件失敗之后的狀態(tài)和觸發(fā)能夠接受的事件超時(shí)之后的狀態(tài),以及輔助狀態(tài)超時(shí)之后的狀態(tài),得到虛擬機(jī)的狀態(tài)機(jī)。全文摘要本發(fā)明公開了一種云計(jì)算中虛擬機(jī)的控制方法及裝置,包括根據(jù)業(yè)務(wù)邏輯為虛擬機(jī)構(gòu)造用于確定虛擬機(jī)狀態(tài)遷移的狀態(tài)機(jī),所述狀態(tài)機(jī)中的每個(gè)狀態(tài)對(duì)應(yīng)有在該狀態(tài)下能夠接受的事件;獲取虛擬機(jī)的當(dāng)前狀態(tài),根據(jù)所述狀態(tài)機(jī)判斷虛擬機(jī)要觸發(fā)的事件是否是虛擬機(jī)在當(dāng)前狀態(tài)下能夠接受的事件,如果是,則從所述狀態(tài)機(jī)中確定事件觸發(fā)后,虛擬機(jī)的下一個(gè)狀態(tài),將虛擬機(jī)的當(dāng)前狀態(tài)轉(zhuǎn)移到確定的下一個(gè)狀態(tài)。本發(fā)明從狀態(tài)角度出發(fā),驅(qū)動(dòng)虛擬機(jī)的操作行為變化,使得其他模塊無需關(guān)心虛擬機(jī)的內(nèi)部運(yùn)作模式,只需通知虛擬機(jī)要執(zhí)行的動(dòng)作即可,這種方法可以顯著降低構(gòu)建大型的服務(wù)器虛擬化系統(tǒng)的復(fù)雜度,簡(jiǎn)化虛擬機(jī)的操作,提高虛擬機(jī)控制的擴(kuò)展性。文檔編號(hào)G06F9/455GK103064739SQ201310028489公開日2013年4月24日申請(qǐng)日期2013年1月24日優(yōu)先權(quán)日2013年1月24日發(fā)明者顏秉珩申請(qǐng)人:浪潮(北京)電子信息產(chǎn)業(yè)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1