一種云計(jì)算平臺(tái)下的虛擬機(jī)分布式任務(wù)調(diào)度方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種云計(jì)算平臺(tái)下的虛擬機(jī)分布式任務(wù)調(diào)度方法,包括以下情況:①當(dāng)物理服務(wù)器宕機(jī)事件時(shí),將該物理服務(wù)器上的負(fù)載遷移到正常的物理服務(wù)器上;②當(dāng)某個(gè)物理服務(wù)器的負(fù)載較高時(shí),在應(yīng)用不中斷的情況下,將偏高的負(fù)載遷移到負(fù)載偏低的物理服務(wù)器上;③當(dāng)某個(gè)物理服務(wù)器的負(fù)載較小時(shí),在應(yīng)用不中斷的情況下,將該物理服務(wù)器上的負(fù)載遷移到其他物理服務(wù)器上,并將空閑出來(lái)的物理服務(wù)器進(jìn)行休眠或關(guān)機(jī)。本發(fā)明實(shí)現(xiàn)了調(diào)度方式的多樣性及靈活性;從虛擬化VCPU映射機(jī)制上整體考慮資源均衡調(diào)度,實(shí)現(xiàn)了虛擬機(jī)的在線(xiàn)遷移、高可用以及負(fù)載均衡;從虛擬化VCPU映射機(jī)制上整體考慮省電調(diào)度,實(shí)現(xiàn)了虛擬機(jī)的經(jīng)濟(jì)運(yùn)行,達(dá)到了節(jié)能的效果。
【專(zhuān)利說(shuō)明】一種云計(jì)算平臺(tái)下的虛擬機(jī)分布式任務(wù)調(diào)度方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及云計(jì)算領(lǐng)域,特別是涉及一種云計(jì)算平臺(tái)下的虛擬機(jī)分布式任務(wù)調(diào)度方法。
【背景技術(shù)】
[0002]當(dāng)前,云計(jì)算作為一種新興的商業(yè)計(jì)算模式,已經(jīng)成為學(xué)術(shù)界和各大IT廠(chǎng)商的研究熱點(diǎn)。云計(jì)算是目前研究應(yīng)用最廣泛的分布式應(yīng)用系統(tǒng),它將計(jì)算能力分布在大量服務(wù)器構(gòu)成的資源池上,用戶(hù)能夠按需獲取計(jì)算、存儲(chǔ)和通信服務(wù)。針對(duì)當(dāng)前云計(jì)算虛擬機(jī)任務(wù)調(diào)度問(wèn)題的研究中所存在的任務(wù)模型的單一性以及任務(wù)調(diào)度算法性能較低,且不能夠兼顧云計(jì)算QoS (Quality of Service,服務(wù)質(zhì)量)需求的情況,如何合理分配云資源,高效的進(jìn)行虛擬機(jī)任務(wù)調(diào)度是云計(jì)算研究領(lǐng)域的關(guān)鍵問(wèn)題。
[0003]傳統(tǒng)的針對(duì)資源均衡的調(diào)度機(jī)制是基于單個(gè)虛擬機(jī)CPU負(fù)載進(jìn)行調(diào)度,將某個(gè)(PU負(fù)載較高的虛擬機(jī)遷移到其他物理服務(wù)器上。這種傳統(tǒng)的調(diào)度機(jī)制存在很大弊端:①由于虛擬機(jī)VCPU將映射到物理服務(wù)器的某個(gè)CPU核上,虛擬機(jī)負(fù)載較高時(shí),也只能影響物理服務(wù)器映射的幾個(gè)CPU核,不會(huì)影響映射到其他核的虛擬機(jī)運(yùn)行,即使遷移到其他物理服務(wù)器上,如果該物理服務(wù)器的運(yùn)算能力與原物理服務(wù)器的運(yùn)算能力相同,遷移后也不會(huì)有改善;②虛擬機(jī)負(fù)載過(guò)高可能是瞬時(shí)高峰,遷移過(guò)程中本身會(huì)到來(lái)CPU計(jì)算損耗以及大量IO負(fù)載;③傳統(tǒng)方式的調(diào)度機(jī)制沒(méi)有從整體上進(jìn)行考慮,采用“拆東墻補(bǔ)西墻”的方式達(dá)不到資源均衡的效果。
[0004]傳統(tǒng)的針對(duì)省電的調(diào)度機(jī)制是基于虛擬機(jī)CPU負(fù)載以及物理服務(wù)器CPU負(fù)載進(jìn)行調(diào)度,并沒(méi)有從整體考慮,以及從CPU整體負(fù)載發(fā)展趨勢(shì)考慮。這種針對(duì)省電的調(diào)度機(jī)制存在很大弊端:因?yàn)樗查g的峰值以及谷值容易引起錯(cuò)誤判斷,而宿主機(jī)啟停需要很長(zhǎng)時(shí)間,一般在十分鐘以上,頻繁啟動(dòng)和停止需要消耗平時(shí)十倍的能耗,不但不節(jié)能反而影響業(yè)務(wù)運(yùn)行。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種云計(jì)算平臺(tái)下的虛擬機(jī)分布式任務(wù)調(diào)度方法,調(diào)度方式多樣,靈活性強(qiáng);從虛擬化VCPU映射機(jī)制上整體考慮資源均衡調(diào)度,實(shí)現(xiàn)了虛擬機(jī)的在線(xiàn)遷移、高可用以及負(fù)載均衡;從虛擬化VCPU映射機(jī)制上整體考慮省電調(diào)度,實(shí)現(xiàn)了虛擬機(jī)的經(jīng)濟(jì)運(yùn)行,達(dá)到了節(jié)能的效果。
[0006]本發(fā)明的目的是通過(guò)以下技術(shù)方案來(lái)實(shí)現(xiàn)的:一種云計(jì)算平臺(tái)下的虛擬機(jī)分布式任務(wù)調(diào)度方法,它包括以下情況:①當(dāng)物理服務(wù)器宕機(jī)事件時(shí),將該出現(xiàn)宕機(jī)事件的物理服務(wù)器上的負(fù)載遷移到正常的物理服務(wù)器上;②當(dāng)某個(gè)物理服務(wù)器的負(fù)載較高時(shí),在應(yīng)用不中斷的情況下,將偏高的負(fù)載遷移到負(fù)載偏低的物理服務(wù)器上;③當(dāng)某個(gè)物理服務(wù)器的負(fù)載較小時(shí),在應(yīng)用不中斷的情況下,將該物理服務(wù)器上的負(fù)載遷移到其他物理服務(wù)器上,并將空閑出來(lái)的物理服務(wù)器進(jìn)行休眠或關(guān)機(jī),降低能耗。[0007]其中,將出現(xiàn)宕機(jī)事件的物理服務(wù)器上的負(fù)載遷移到正常的物理服務(wù)器上,包括以下具體步驟:
S11:主管理服務(wù)器和多個(gè)位于資源池的物理服務(wù)器建立連接保持通訊;
S12:各物理服務(wù)器每隔一段時(shí)間tl持續(xù)的向主管理服務(wù)器發(fā)送心跳線(xiàn);
S13:主管理服務(wù)器檢查各物理服務(wù)器的心跳線(xiàn)請(qǐng)求,若在預(yù)設(shè)時(shí)間t2后沒(méi)有收到某物理服務(wù)器的心跳線(xiàn)請(qǐng)求,發(fā)現(xiàn)某物理服務(wù)器的心跳異常,則自動(dòng)探測(cè)該物理服務(wù)器網(wǎng)絡(luò)是否連通,若檢測(cè)到網(wǎng)絡(luò)中斷,并在一段時(shí)間內(nèi)沒(méi)有恢復(fù),則觸發(fā)物理服務(wù)器宕機(jī)事件,從而啟動(dòng)HA機(jī)制,自動(dòng)的將該物理服務(wù)器上的負(fù)載轉(zhuǎn)移到其他物理服務(wù)器上重新運(yùn)行。
[0008]將偏高的負(fù)載遷移到負(fù)載偏低的物理服務(wù)器上,包括以下具體步驟:
S21:主管理服務(wù)器和多個(gè)位于資源池的物理服務(wù)器建立連接保持通訊;
S22:主管理服務(wù)器實(shí)時(shí)監(jiān)控各物理服務(wù)器上負(fù)載的運(yùn)行情況,計(jì)算資源池中各物理服務(wù)器的負(fù)載LC,計(jì)算公式為:
負(fù)載LC= SUM (虛擬機(jī)VCPU數(shù))/物理服務(wù)器CPU核數(shù);
S23:對(duì)上述步驟計(jì)算所得的負(fù)載LC進(jìn)行排序,即SORT(LC);
S24:判斷MAX(LC)是否大于預(yù)設(shè)的調(diào)度閥值SF,若大于預(yù)設(shè)的調(diào)度閥值SF,則進(jìn)入下一步,若小于或等于預(yù)設(shè)的調(diào)度閥值SF,則調(diào)度結(jié)束;
S25:從MAX (LC)物理服務(wù)器中選取MINV=MIN (虛擬機(jī)VCPU),判斷“MIN (LC)- MIN (虛擬機(jī)VCPU) ”是否小于或等于調(diào)度閥值SF,若“MIN(LC) -MIN (虛擬機(jī)VCPU)≤調(diào)度閥值SF”,則進(jìn)入下一步,否則調(diào)度結(jié)束;
S26:將選取的虛擬機(jī)從MAX (LC)物理服務(wù)器遷移到MIN(LC)物理服務(wù)器上,并計(jì)算遷移后MAX (LC)物理服務(wù)器及MIN (LC)物理服務(wù)器的負(fù)載LC:
MIN (LC) = (MIN (LC) *物理服務(wù)器CPU核數(shù)+MINV) /物理服務(wù)器CPU核數(shù);
MAX (LC) = (MIN (LC) *物理服務(wù)器CPU核數(shù)-MINV) /物理服務(wù)器CPU核數(shù);
然后,進(jìn)入步驟S22,開(kāi)始下一輪計(jì)算。
[0009]將負(fù)載較小的物理服務(wù)器上的負(fù)載遷移到其他物理服務(wù)器上,并將空閑出來(lái)的物理服務(wù)器進(jìn)行休眠或關(guān)機(jī),包括以下具體步驟:
S31:主管理服務(wù)器和多個(gè)位于資源池的物理服務(wù)器建立連接保持通訊;
S32:主管理服務(wù)器實(shí)時(shí)監(jiān)控各物理服務(wù)器上負(fù)載的運(yùn)行情況,計(jì)算資源池中各物理服務(wù)器的負(fù)載LC,計(jì)算公式為:
負(fù)載LC=SUM (虛擬機(jī)VCPU數(shù))/物理服務(wù)器CPU核數(shù);
S33:判斷SUM(LC)是否大于“調(diào)度閥值SF*物理服務(wù)器數(shù)”,若“SUM(LC)≤調(diào)度閥值SF*物理服務(wù)器數(shù)”則進(jìn)入下一步,若“SUM(LC) >調(diào)度閥值SF*物理服務(wù)器數(shù)”,則進(jìn)行如下操作:
從資源池中選擇停止?fàn)顟B(tài)的物理服務(wù)器,進(jìn)入資源均衡調(diào)度,將虛擬機(jī)從負(fù)載較高的物理服務(wù)器遷移到負(fù)載較低的物理服務(wù)器上,直到計(jì)算SUM(LC)≤調(diào)度閥值SF*物理服務(wù)器CPU核數(shù),或者資源池已無(wú)資源為止;
S34:判斷“SUM(LC) <調(diào)度閥值SF* (物理服務(wù)器數(shù)-2)”是否成立,若“SUM(LC) <調(diào)度閥值SF* (物理服務(wù)器數(shù)-2) ”,則進(jìn)入下一步,若“SUM(LC)≤調(diào)度閥值SF* (物理服務(wù)器數(shù)-2)”,則調(diào)度結(jié)束; 535:依次判斷負(fù)載LC==O是否成立,若負(fù)載LC==O,從集合(LC)中移出,并調(diào)度該物理服務(wù)器,將該物理服務(wù)器進(jìn)行停止操作,對(duì)集合(LC)按照計(jì)算的負(fù)載LC進(jìn)行排序,SPSORT (LC);
536:依次從MIN (LC)物理服務(wù)器中選取一個(gè)虛擬機(jī)VC=HOST OF (虛擬機(jī)VCPU),依次從集合(LC)中,由大到小順序選取物理服務(wù)器計(jì)算:
MIN (LC) = (MIN (LC) *物理服務(wù)器CPU核數(shù)-VC) /物理服務(wù)器CPU核數(shù);
CHOICE (LC) = (CHOICE (LC) *物理服務(wù)器CPU核數(shù)+VC) /物理服務(wù)器CPU核數(shù);
并遷移該虛擬機(jī);
然后進(jìn)入步驟S33,開(kāi)始下一輪計(jì)算。
[0010]所述主管理服務(wù)器和各物理服務(wù)器構(gòu)成一種server-agent架構(gòu)體系的分布式調(diào)度機(jī)制,主管理服務(wù)器和各物理服務(wù)器均內(nèi)嵌腳本解析語(yǔ)言,并實(shí)現(xiàn)一種task-tasklet框架分布式計(jì)算模型,主管理服務(wù)器執(zhí)行task部分代碼,將上下文參數(shù)、tasklet部分代碼轉(zhuǎn)發(fā)到各物理服務(wù)器上進(jìn)行執(zhí)行,整個(gè)過(guò)程采用異步方式,通過(guò)分布式事件機(jī)制發(fā)送不同階段的事件觸發(fā)執(zhí)行代碼從而完成信息以及過(guò)程的同步。
[0011]本發(fā)明的有益效果是:本發(fā)明從多種情況下進(jìn)行任務(wù)調(diào)度,實(shí)現(xiàn)了調(diào)度方式的多樣性及靈活性;從虛擬化VCPU映射機(jī)制上整體考慮資源均衡調(diào)度,實(shí)現(xiàn)了虛擬機(jī)的在線(xiàn)遷移、高可用以及負(fù)載均衡;從虛擬化VCPU映射機(jī)制上整體考慮省電調(diào)度,實(shí)現(xiàn)了虛擬機(jī)的經(jīng)濟(jì)運(yùn)行,達(dá)到了節(jié)能的效果。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0012]圖1為本發(fā)明將出現(xiàn)宕機(jī)事件的物理服務(wù)器上的負(fù)載遷移到正常的物理服務(wù)器情況下的方法流程圖;
圖2為本發(fā)明將偏高的負(fù)載遷移到負(fù)載偏低的物理服務(wù)器情況下的方法流程圖;
圖3為本發(fā)明將負(fù)載較小的物理服務(wù)器上的負(fù)載遷移到其他物理服務(wù)器并將空閑出來(lái)的物理服務(wù)器進(jìn)行休眠或關(guān)機(jī)情況下的方法流程圖。
【具體實(shí)施方式】
[0013]下面結(jié)合附圖進(jìn)一步詳細(xì)描述本發(fā)明的技術(shù)方案,但本發(fā)明的保護(hù)范圍不局限于以下所述。
[0014]一種云計(jì)算平臺(tái)下的虛擬機(jī)分布式任務(wù)調(diào)度方法,它包括以下情況:①當(dāng)物理服務(wù)器宕機(jī)事件時(shí),將該出現(xiàn)宕機(jī)事件的物理服務(wù)器上的負(fù)載遷移到正常的物理服務(wù)器上;
②當(dāng)某個(gè)物理服務(wù)器的負(fù)載較高時(shí),在應(yīng)用不中斷的情況下,將偏高的負(fù)載遷移到負(fù)載偏低的物理服務(wù)器上;③當(dāng)某個(gè)物理服務(wù)器的負(fù)載較小時(shí),在應(yīng)用不中斷的情況下,將該物理服務(wù)器上的負(fù)載遷移到其他物理服務(wù)器上,并將空閑出來(lái)的物理服務(wù)器進(jìn)行休眠或關(guān)機(jī),降低能耗。
[0015]所述主管理服務(wù)器和各物理服務(wù)器構(gòu)成一種server-agent架構(gòu)體系的分布式調(diào)度機(jī)制,主管理服務(wù)器和各物理服務(wù)器均內(nèi)嵌腳本解析語(yǔ)言,并實(shí)現(xiàn)一種task-tasklet框架分布式計(jì)算模型,主管理服務(wù)器執(zhí)行task部分代碼,將上下文參數(shù)、tasklet部分代碼轉(zhuǎn)發(fā)到各物理服務(wù)器上進(jìn)行執(zhí)行,整個(gè)過(guò)程采用異步方式,通過(guò)分布式事件機(jī)制發(fā)送不同階段的事件觸發(fā)執(zhí)行代碼從而完成信息以及過(guò)程的同步。
[0016]如圖1所示,將出現(xiàn)宕機(jī)事件的物理服務(wù)器上的負(fù)載遷移到正常的物理服務(wù)器上,包括以下具體步驟:
511:主管理服務(wù)器和多個(gè)位于資源池的物理服務(wù)器建立連接保持通訊;
512:各物理服務(wù)器每隔一段時(shí)間tl,通過(guò)管理網(wǎng)持續(xù)的向主管理服務(wù)器發(fā)送心跳線(xiàn);
513:主管理服務(wù)器檢查各物理服務(wù)器的心跳線(xiàn)請(qǐng)求,若在預(yù)設(shè)時(shí)間t2后沒(méi)有收到某物理服務(wù)器的心跳線(xiàn)請(qǐng)求,發(fā)現(xiàn)某物理服務(wù)器的心跳異常,則自動(dòng)探測(cè)該物理服務(wù)器所在網(wǎng)絡(luò)(應(yīng)用網(wǎng))是否連通,此時(shí)物理服務(wù)器會(huì)自動(dòng)的檢查應(yīng)用網(wǎng)是否中斷,若網(wǎng)絡(luò)中斷,并在一段時(shí)間內(nèi)沒(méi)有恢復(fù),則觸發(fā)物理服務(wù)器宕機(jī)事件,從而啟動(dòng)HA機(jī)制,自動(dòng)的將該物理服務(wù)器上的負(fù)載轉(zhuǎn)移到其他物理服務(wù)器上重新運(yùn)行,出現(xiàn)宕機(jī)事件的物理服務(wù)器被強(qiáng)行停止。[0017]主管理服務(wù)器和各物理服務(wù)器構(gòu)成的server-agent架構(gòu),將資源調(diào)度與心跳檢查分離,結(jié)構(gòu)清晰,更易于管理配置,并且可以構(gòu)建超過(guò)100個(gè)節(jié)點(diǎn)的大型集群,而傳統(tǒng)的一般最大規(guī)模不能超過(guò)32個(gè)節(jié)點(diǎn)。另外,主管理服務(wù)器只負(fù)責(zé)管理資源調(diào)度,即使主管理服務(wù)器出現(xiàn)宕機(jī),物理服務(wù)器也能正常運(yùn)行,只是脫離了管理,不會(huì)出現(xiàn)物理服務(wù)器崩潰的現(xiàn)象。
[0018]如圖2所示,將偏高的負(fù)載遷移到負(fù)載偏低的物理服務(wù)器上,包括以下具體步驟:
521:主管理服務(wù)器和多個(gè)位于資源池的物理服務(wù)器建立連接保持通訊;
522:主管理服務(wù)器實(shí)時(shí)監(jiān)控各物理服務(wù)器上負(fù)載的運(yùn)行情況,即監(jiān)控每個(gè)物理服務(wù)器上運(yùn)行虛擬機(jī)狀態(tài),并計(jì)算資源池中各物理服務(wù)器的負(fù)載LC,計(jì)算公式為:
負(fù)載LC= SUM (虛擬機(jī)VCPU數(shù))/物理服務(wù)器CPU核數(shù);
523:對(duì)上述步驟計(jì)算所得的負(fù)載LC進(jìn)行排序,即SORT (LC);
524:判斷MAX(LC)是否大于預(yù)設(shè)的調(diào)度閥值SF,若大于預(yù)設(shè)的調(diào)度閥值SF,則進(jìn)入下一步,若小于或等于預(yù)設(shè)的調(diào)度閥值SF,則調(diào)度結(jié)束;一般來(lái)說(shuō),虛擬機(jī)VCPU數(shù)/物理服務(wù)器CPU核數(shù)為3時(shí)為物理服務(wù)器CPU利用最佳參數(shù),小于1,則表示有部分物理服務(wù)器CPU核可能空閑;
525:從MAX (LC)物理服務(wù)器中選取MINV=MIN (虛擬機(jī)VCPU),判斷“MIN (LC)- MIN (虛擬機(jī)VCPU) ”是否小于或等于調(diào)度閥值SF,若“MIN(LC) -MIN (虛擬機(jī)VCPU)≤調(diào)度閥值SF”,則進(jìn)入下一步,否則調(diào)度結(jié)束;
S26:將選取的虛擬機(jī)從MAX (LC)物理服務(wù)器遷移到MIN(LC)物理服務(wù)器上,并計(jì)算遷移后MAX(LC)物理服務(wù)器及MIN(LC)物理服務(wù)器的負(fù)載LC:
MIN (LC) = (MIN (LC) *物理服務(wù)器CPU核數(shù)+MINV) /物理服務(wù)器CPU核數(shù);
MAX (LC) = (MIN (LC) *物理服務(wù)器CPU核數(shù)-MINV) /物理服務(wù)器CPU核數(shù);
然后,進(jìn)入步驟S22,開(kāi)始下一輪計(jì)算。
[0019]如圖3所示,將負(fù)載較小的物理服務(wù)器上的負(fù)載遷移到其他物理服務(wù)器上,并將空閑出來(lái)的物理服務(wù)器進(jìn)行休眠或關(guān)機(jī),包括以下具體步驟:
531:主管理服務(wù)器和多個(gè)位于資源池的物理服務(wù)器建立連接保持通訊;
532:主管理服務(wù)器實(shí)時(shí)監(jiān)控各物理服務(wù)器上負(fù)載的運(yùn)行情況,計(jì)算資源池中各物理服務(wù)器的負(fù)載LC,計(jì)算公式為:負(fù)載LC=SUM (虛擬機(jī)VCPU數(shù))/物理服務(wù)器CPU核數(shù);
533:判斷SUM(LC)是否大于“調(diào)度閥值SF*物理服務(wù)器數(shù)”,若“SUM(LC)≤調(diào)度閥值SF*物理服務(wù)器數(shù)”則進(jìn)入下一步,若“SUM(LC) >調(diào)度閥值SF*物理服務(wù)器數(shù)”,則先進(jìn)行如下操作:
從資源池中選擇停止?fàn)顟B(tài)的物理服務(wù)器,進(jìn)入資源均衡調(diào)度,將虛擬機(jī)從負(fù)載較高的物理服務(wù)器遷移到負(fù)載較低的物理服務(wù)器上,直到計(jì)算SUM(LC)≤調(diào)度閥值SF*物理服務(wù)器CPU核數(shù),或者資源池已無(wú)資源為止;
534:判斷“SUM(LC) <調(diào)度閥值SF* (物理服務(wù)器數(shù)-2)”是否成立,若“SUM(LC) <調(diào)度閥值SF* (物理服務(wù)器數(shù)-2) ”,則進(jìn)入下一步,若“SUM (LC)≥調(diào)度閥值SF* (物理服務(wù)器數(shù)-2)”,則調(diào)度結(jié)束;一般會(huì)預(yù)留一定容量,來(lái)應(yīng)對(duì)業(yè)務(wù)突發(fā)訪(fǎng)問(wèn)需求,此處預(yù)留容量為I ;
535:依次判斷負(fù)載LC==O是否成立,若負(fù)載LC==O,從集合(LC)中移出,并調(diào)度該物理服務(wù)器,將該物理服務(wù)器進(jìn)行停止操作,對(duì)集合(LC)按照計(jì)算的負(fù)載LC進(jìn)行排序,即SORT (LC);
536:依次從MIN (LC)物理服務(wù)器中選取一個(gè)虛擬機(jī)VC=HOST OF (虛擬機(jī)VCPU),依次從集合(LC)中,由大到小順序選取物理服務(wù)器計(jì)算:
MIN (LC) = (MIN (LC) *物理服務(wù)器CPU核數(shù)-VC) /物理服務(wù)器CPU核數(shù);
CHOICE (LC) = (CHOICE (LC) *物理服務(wù)器CPU核數(shù)+VC) /物理服務(wù)器CPU核數(shù);
并遷移該虛擬機(jī);
然后進(jìn)入步驟S33,開(kāi)始下一輪計(jì)算。
【權(quán)利要求】
1. 一種云計(jì)算平臺(tái)下的虛擬機(jī)分布式任務(wù)調(diào)度方法,其特征在于:它包括以下情況:①當(dāng)物理服務(wù)器宕機(jī)事件時(shí),將該出現(xiàn)宕機(jī)事件的物理服務(wù)器上的負(fù)載遷移到正常的物理服務(wù)器上;②當(dāng)某個(gè)物理服務(wù)器的負(fù)載較高時(shí),在應(yīng)用不中斷的情況下,將偏高的負(fù)載遷移到負(fù)載偏低的物理服務(wù)器上;③當(dāng)某個(gè)物理服務(wù)器的負(fù)載較小時(shí),在應(yīng)用不中斷的情況下,將該物理服務(wù)器上的負(fù)載遷移到其他物理服務(wù)器上,并將空閑出來(lái)的物理服務(wù)器進(jìn)行休眠或關(guān)機(jī),降低能耗; 其中,將出現(xiàn)宕機(jī)事件的物理服務(wù)器上的負(fù)載遷移到正常的物理服務(wù)器上,包括以下具體步驟: 511:主管理服務(wù)器和多個(gè)位于資源池的物理服務(wù)器建立連接保持通訊; 512:各物理服務(wù)器每隔一段時(shí)間tl持續(xù)的向主管理服務(wù)器發(fā)送心跳線(xiàn); 513:主管理服務(wù)器檢查各物理服務(wù)器的心跳線(xiàn)請(qǐng)求,若在預(yù)設(shè)時(shí)間t2后沒(méi)有收到某物理服務(wù)器的心跳線(xiàn)請(qǐng)求,發(fā)現(xiàn)某物理服務(wù)器的心跳異常,則自動(dòng)探測(cè)該物理服務(wù)器網(wǎng)絡(luò)是否連通,若檢測(cè)到網(wǎng)絡(luò)中斷,并在一段時(shí)間內(nèi)沒(méi)有恢復(fù),則觸發(fā)物理服務(wù)器宕機(jī)事件,從而啟動(dòng)HA機(jī)制,自動(dòng)的將該物理服務(wù)器上的負(fù)載轉(zhuǎn)移到其他物理服務(wù)器上重新運(yùn)行; 將偏高的負(fù)載遷移到負(fù)載偏低的物理服務(wù)器上,包括以下具體步驟: 521:主管理服務(wù)器和多個(gè)位于資源池的物理服務(wù)器建立連接保持通訊; 522:主管理服務(wù)器實(shí)時(shí)監(jiān)控各物理服務(wù)器上負(fù)載的運(yùn)行情況,計(jì)算資源池中各物理服務(wù)器的負(fù)載LC,計(jì)算公式為: 負(fù)載LC= SUM (虛擬機(jī)VCPU數(shù))/物理服務(wù)器CPU核數(shù); 523:對(duì)上述步驟計(jì)算所得的負(fù)載LC進(jìn)行排序,即SORT (LC); 524:判斷MAX(LC)是否大于預(yù)設(shè)的調(diào)度閥值SF,若大于預(yù)設(shè)的調(diào)度閥值SF,則進(jìn)入下一步,若小于或等于預(yù)設(shè)的調(diào)度閥值SF,則調(diào)度結(jié)束; 525:從MAX (LC)物理服務(wù)器中選取MINV=MIN (虛擬機(jī)VCPU),判斷“MIN (LC)- MIN (虛擬機(jī)VCPU) ”是否小于或等于調(diào)度閥值SF,若“MIN(LC) -MIN (虛擬機(jī)VCPU)≤調(diào)度閥值SF”,則進(jìn)入下一步,否則調(diào)度結(jié)束; 526:將選取的虛擬機(jī)從MAX (LC)物理服務(wù)器遷移到MIN(LC)物理服務(wù)器上,并計(jì)算遷移后MAX (LC)物理服務(wù)器及MIN(LC)物理服務(wù)器的負(fù)載LC: MIN (LC) = (MIN (LC) *物理服務(wù)器CPU核數(shù)+MINV) /物理服務(wù)器CPU核數(shù); MAX (LC) = (MIN (LC) *物理服務(wù)器CPU核數(shù)-MINV) /物理服務(wù)器CPU核數(shù); 然后,進(jìn)入步驟S22,開(kāi)始下一輪計(jì)算; 將負(fù)載較小的物理服務(wù)器上的負(fù)載遷移到其他物理服務(wù)器上,并將空閑出來(lái)的物理服務(wù)器進(jìn)行休眠或關(guān)機(jī),包括以下具體步驟: 531:主管理服務(wù)器和多個(gè)位于資源池的物理服務(wù)器建立連接保持通訊; 532:主管理服務(wù)器實(shí)時(shí)監(jiān)控各物理服務(wù)器上負(fù)載的運(yùn)行情況,計(jì)算資源池中各物理服務(wù)器的負(fù)載LC,計(jì)算公式為: 負(fù)載LC=SUM (虛擬機(jī)VCPU數(shù))/物理服務(wù)器CPU核數(shù); 533:判斷SUM(LC)是否大于“調(diào)度閥值SF*物理服務(wù)器數(shù)”,若“SUM(LC)≤調(diào)度閥值SF*物理服務(wù)器數(shù)”則進(jìn)入下一步,若“SUM(LC) >調(diào)度閥值SF*物理服務(wù)器數(shù)”,則進(jìn)行如下操作:從資源池中選擇停止?fàn)顟B(tài)的物理服務(wù)器,進(jìn)入資源均衡調(diào)度,將虛擬機(jī)從負(fù)載較高的物理服務(wù)器遷移到負(fù)載較低的物理服務(wù)器上,直到計(jì)算SUM(LC)≤調(diào)度閥值SF*物理服務(wù)器CPU核數(shù),或者資源池已無(wú)資源為止; 534:判斷“SUM(LC) <調(diào)度閥值SF* (物理服務(wù)器數(shù)-2)”是否成立,若“SUM(LC) <調(diào)度閥值SF* (物理服務(wù)器數(shù)-2) ”,則進(jìn)入下一步,若“SUM(LC)≥調(diào)度閥值SF* (物理服務(wù)器數(shù)-2)”,則調(diào)度結(jié)束; 535:依次判斷負(fù)載LC==O是否 成立,若負(fù)載LC==O,從集合(LC)中移出,并調(diào)度該物理服務(wù)器,將該物理服務(wù)器進(jìn)行停止操作,對(duì)集合(LC)按照計(jì)算的負(fù)載LC進(jìn)行排序,即SORT (LC); 536:依次從MIN(LC)物理服務(wù)器中選取一個(gè)虛擬機(jī)VC=HOST OF (虛擬機(jī)VCPU),依次從集合(LC)中,由大到小順序選取物理服務(wù)器計(jì)算: MIN (LC) = (MIN (LC) *物理服務(wù)器CPU核數(shù)-VC) /物理服務(wù)器CPU核數(shù); CHOICE (LC) = (CHOICE (LC) *物理服務(wù)器CPU核數(shù)+VC) /物理服務(wù)器CPU核數(shù); 并遷移該虛擬機(jī); 然后進(jìn)入步驟S33,開(kāi)始下一輪計(jì)算。
2.根據(jù)權(quán)利要求1所述的一種云計(jì)算平臺(tái)下的虛擬機(jī)分布式任務(wù)調(diào)度方法,其特征在于:所述主管理服務(wù)器和各物理服務(wù)器構(gòu)成一種server-agent架構(gòu)體系的分布式調(diào)度機(jī)制,主管理服務(wù)器和各物理服務(wù)器均內(nèi)嵌腳本解析語(yǔ)言,并實(shí)現(xiàn)一種task-tasklet框架分布式計(jì)算模型,主管理服務(wù)器執(zhí)行task部分代碼,將上下文參數(shù)、tasklet部分代碼轉(zhuǎn)發(fā)到各物理服務(wù)器上進(jìn)行執(zhí)行,整個(gè)過(guò)程采用異步方式,通過(guò)分布式事件機(jī)制發(fā)送不同階段的事件觸發(fā)執(zhí)行代碼從而完成信息以及過(guò)程的同步。
【文檔編號(hào)】H04L29/08GK103957231SQ201410099845
【公開(kāi)日】2014年7月30日 申請(qǐng)日期:2014年3月18日 優(yōu)先權(quán)日:2014年3月18日
【發(fā)明者】李凡, 柳岸, 王流一, 王鐵軍 申請(qǐng)人:成都盛思睿信息技術(shù)有限公司