欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種虛擬化環(huán)境中的準入控制與負載均衡方法

文檔序號:6430654閱讀:188來源:國知局
專利名稱:一種虛擬化環(huán)境中的準入控制與負載均衡方法
技術領域
本發(fā)明涉及實時嵌入式系統(tǒng)中的多核和虛擬化技術,尤其是一種虛擬化環(huán)境中的準入控制與負載均衡方法。
背景技術
虛擬化技術已經(jīng)被普遍應用于服務器與桌面系統(tǒng),隨著嵌入式系統(tǒng)芯片性能的提高((如多核芯片的大量出現(xiàn)),虛擬化技術在嵌入式系統(tǒng)中的應用也越來越成為學術界和工業(yè)界的研究熱點。Xen是劍橋大學教授Ian等發(fā)起的一個開源的虛擬機項目,其性能接近單機操作系統(tǒng)(Native Operating System)的性能。Xen由于其優(yōu)越的性能和開源性,所以被業(yè)界廣泛看好,被認為是未來最有前途的一款虛擬機管理軟件。在Xen中,一個虛擬機(domain)可能有一個或多個虛擬處理器(VCPU),每個VCPU 被映射到一個物理處理器(PCPU)上。在Xen虛擬機管理器中,當domain啟動時,Xen虛擬機管理器按照循環(huán)分配的方式將VCPU映射到PCPU上,不考慮每個PCPU上是否超載的問題。附圖1顯示了 Xen系統(tǒng)中原來的VCPU分配方法及結果,在Xen虛擬化環(huán)境中,有兩個 PCPU 分別是 Core-I 和 Core_2 ;5 個 VCPU :VCPU0-VCPU4, 5 個 VCPU 的 CPU 利用率分別是 75%、10%、20%、50%、20%。按照 Xen 原來的循環(huán) VCPU 分配方法,Core-I PCPU 上會有 VCPU0、 VCPU2、VCPU4三個VCPU,總的VCPU負載為115%,將超載,而Core_2 PCPU的VCPU負載僅為 60%, CPU資源仍有剩余。從圖中可以看到Corel和Core3都出現(xiàn)了超載情況。Xen3. O以后實現(xiàn)了兩種的調度器中,一種調度器是基于信度(Credit)調度器,支持PCPU間VCPU的遷移。如果一個PCPU進入IDLE狀態(tài),調度器會檢查它相鄰的PCPU是否有需要調度的VCPU,如果它相鄰的PCPU上有處于UNDER狀態(tài)的VCPU在等待PCPU資源, 則調度器會強行將相鄰的PCPU上的VCPU賦給IDLE PCPU,這樣系統(tǒng)可以充分利用系統(tǒng)資源。但是,VCPU的遷移會帶來額外的開銷,如處理上下文切換、快存(Cache)的刷新等。另外,Credit調度器中的調度算法不是實時調度算法,不能滿足實時嵌入式系統(tǒng)所要求的實時性。Xen中的另一種調度器是簡單最早截止期優(yōu)先(SEDF)調度器,可以支持實時調度器。但是,SEDF調度器不支持PCPU間VCPU的遷移,這樣可能會導致負載的不均衡。另外, 如果一個實時任務被分配到一個P⑶上,超過了這個PCPU的最大處理器資源限制,則實時任務的時間需求將無法被滿足,實時系統(tǒng)的實時性也將無法被保證。為了滿足多核硬件平臺下,嵌入式實時系統(tǒng)對虛擬化的需求,本發(fā)明設計和實現(xiàn)了一種Xen虛擬化環(huán)境中的準入控制與負載均衡方法,以保證虛擬化環(huán)境中實時嵌入式系統(tǒng)所要求的實時性和各物理處理器上負載的均衡。

發(fā)明內容
本發(fā)明的目的正是要解決上述技術存在的不足,而提供一種在多核硬件平臺下 Xen虛擬化環(huán)境中的準入控制與負載均衡方法,滿足多核硬件平臺下虛擬化環(huán)境對嵌入式實時系統(tǒng)硬實時任務的時間需求的支持,對Xen虛擬機中的調度算法進行改進,實現(xiàn)了準入控制和負載均衡機制。本發(fā)明解決其技術問題采用的技術方案這種虛擬化環(huán)境中的準入控制與負載均衡方法,包括以下步驟
步驟一修改Xen虛擬機中的簡單最早截止期優(yōu)先SEDF調度算法,實現(xiàn)非工作保養(yǎng)模式NWC下的分區(qū)最早截止期優(yōu)先的調度算法NWC-PEDF ;保證虛擬機環(huán)境下嵌入式實時系統(tǒng)中硬實時應用的實時需求。在Xen虛擬機調度中實現(xiàn)非工作保養(yǎng)模式(NWC),防止工作保養(yǎng)模式下因為某個實時虛擬機因為超載而過多占用處理器(CPU)資源所導致的CPU資源分配的不可控性。步驟二 對每個物理處理器引入準入控制機制,控制每個物理處理器PCPU上分配的Xen虛擬處理器VCPU的負載不會超過本物理處理器所能夠承受的最大值;
步驟三采用首次適應(即從上次首次適應結束時開始)的策略來控制Xen虛擬化環(huán)境中的VCPU到多核硬件平臺上PCPU的分配映射;以保證PCPU上負載的均衡性,并盡量減小 VCPU分配所帶來的時間開銷。步驟四提供對調整VCPU調度參數(shù)的支持機制,允許管理員根據(jù)運行過程中虛擬機負載的變化情況調整VCPU的調度參數(shù),并根據(jù)管理員所做的參數(shù)的調整進行系統(tǒng)可調度性檢查和VCPU負載在PCPU上的調整,能夠更好滿足系統(tǒng)的適應性。作為優(yōu)選,修改Xen中的SEDF調度算法,實現(xiàn)分區(qū)最早截止期優(yōu)先的調度算法 (PEDF)。在Xen虛擬機環(huán)境下,每個虛擬處理器VCPU固定被分配到一個物理處理器PCPU 上,并只能夠在其對應的PCPU上運行或進行狀態(tài)的轉換;每個物理處理器PCPU都有自己最大的處理器資源值、自身的虛擬處理器(VCPU)負載隊列,以減小調度和遷移開銷;每個 PCPU獨立按照最早截止期優(yōu)先的調度算法對自身的VCPU負載隊列進行調度,以保證虛擬機環(huán)境下嵌入式實時系統(tǒng)中硬實時應用的實時需求。作為優(yōu)選,在Xen虛擬機調度中實現(xiàn)非工作保養(yǎng)模式(NWC)。為每個虛擬機對應的虛擬處理器(VCPU)都設置固定的CPU資源份額,在Xen虛擬機環(huán)境下,每個虛擬處理器 (VCPU)實際占用的處理器(CPU)資源都不能超過其自身固定的CPU資源份額,以防止在工作保養(yǎng)模式(WC)下某個實時虛擬機因為超載而過多占用CPU資源所導致的CPU資源分配的不可控性。作為優(yōu)選,采用首次適應(從上次首次適應結束時開始)的策略,處理Xen虛擬化環(huán)境中的虛擬處理器(VCPU)負載到多核硬件平臺上物理處理器(PCPU)的分配映射問題, 保證PCPU上負載的均衡性,并盡量減小VCPU分配所帶來的時間開銷。對多核硬件平臺上的物理處理器(PCPU)編號,在對虛擬處理器(VCPU)負載進行初始化分配到PCPU上時,第一個VCPU從第一個PCPU開始,尋找能夠滿足VCPU負載需求的PCPU,將VCPU分配給該物理PCPU ;之后的VCPU依次從前一個VCPU所分配的PCPU的下一個PCPU開始,尋找能夠滿足VCPU負載需求的PCPU,將VCPU分配給該物理PCPU。當虛擬處理器(VCPU)的調度參數(shù)發(fā)生調整需要修改VCPU到PCPU的映射關系時,從VCPU原來所在的PCPU的下一個PCPU開始,尋找能夠滿足VCPU負載需求的PCPU,將VCPU分配給該物理PCPU。作為優(yōu)選,對每個物理處理器(PCPU)引入準入控制機制,控制每個PCPU上分配的 VCPU的負載不會超過該PCPU的資源的最大值,保證每個PCPU上的VCPU的負載在非工作保養(yǎng)模式下的最早截止期優(yōu)先(NWC-PEDF)調度算法下均是可調度的,從而使實時應用的實時性能夠得到保障。初始時設置每個物理處理器PCPU的最大可用的CPU資源值為100。當通過首次適應(從上次首次適應結束時開始)的策略,嘗試將VCPU負載分配給PCPU時,會檢查PCPU上是否剩余有足夠的CPU資源可以滿足VCPU負載的需求,如果PCPU上剩余有足夠的CPU資源可以滿足VCPU負載的需求,則該PCPU接受此VCPU負載;否則該PCPU拒絕接受此VCPU負載,繼續(xù)檢查下一個PCPU上是否剩余有足夠的CPU資源可以滿足VCPU負載的需求。如果能夠找到可以滿足VCPU負載需求的PCPU,則建立此VCPU,并將VCPU負載分配給該PCPU ;如果找不到可以滿足VCPU負載需求的PCPU,則拒絕建立此VCPU,并返回相應信肩、O作為優(yōu)選,提供對調整VCPU調度參數(shù)的支持機制,允許管理員在VCPU初始化之后,根據(jù)運行過程中虛擬機負載的變化情況調整VCPU的調度參數(shù);并能夠對管理員所調整的VCPU的調度參數(shù)進行合格性檢查,保證系統(tǒng)的可調度性。當管理員修改了 VCPU的調度參數(shù)(VCPU 所能夠使用的 PCPU (Affinity PCPU),周期(Period),周期內 CPU 時間(Slice)) 后,系統(tǒng)將會檢查VCPU原來所在的PCPU上是否能夠滿足修改后VCPU負載的CPU資源需求, 如果能夠滿足,則保持原來的VCPU和PCPU的分配關系不變,并根據(jù)修改后VCPU負載的CPU 需求更新PCPU上剩余的CPU資源值;如果VCPU原來所在的PCPU不能夠滿足修改后VCPU 負載的CPU資源需求,則從VCPU原來所在的PCPU的下一個PCPU開始,根據(jù)首次適應策略, 尋找能夠滿足修改后的VCPU負載CPU資源需求的PCPU,如果能夠找到這樣的PCPU,則將次 VCPU分配給該PCPU,并更新VCPU原來所在PCPU和現(xiàn)在所在PCPU上的剩余CPU資源值;如果沒有PCPU能夠滿足修改后VCPU負載的CPU資源需求,則保持VCPU原來的調度參數(shù)和與 PCPU的分配關系,拒絕VCPU調度參數(shù)的調整,并返回相應信息給用戶。本發(fā)明具有如下優(yōu)點
一.本發(fā)明在Xen中實現(xiàn)了具有準入控制的分區(qū)最早截止期優(yōu)先的調度算法,是硬實時調度算法,為Xen虛擬機在嵌入式硬實時系統(tǒng)中的應用提供了保障。二.在本發(fā)明中,采用非工作保養(yǎng)(NWC)模式,可以保證每個實時虛擬機固定的 CPU資源份額,防止了在工作保養(yǎng)(WC)模式下某個實時虛擬機因為超載而過多占用CPU資源。三.在本發(fā)明中,采用的是多核調度算法中的分區(qū)調度算法PEDF,每個物理CPU上都有自己獨立的VCPU負載隊列,減少了遷移開銷,降低了調度開銷。四.在本發(fā)明中,對每個物理處理器均采用了準入控制機制來控制其上的VCPU負載不會超過物理處理器的最大資源限制,保證了每個物理處理器上的VCPU負載的集合均是可調度的,從而使實時應用的實時性得到了保證。五.在本發(fā)明中,采用從上次首次適應結束時開始的首次適應的策略來控制VCPU 在物理處理器上的分配,其時間開銷比較小并且能夠較好保證每個物理處理器上負載的均衡與最好適應分配算法相比,在每個物理處理器上負載的均衡性上難分伯仲,但是時間開銷??;與最差適應分配算法相比,時間開銷更小,并且每個物理處理器上負載的均衡性更好。六.在本發(fā)明中,支持管理員根據(jù)運行過程中虛擬機負載的變化情況調整VCPU的調度參數(shù),并對管理員所做的參數(shù)的調整進行系統(tǒng)可調度性檢查,能夠更好滿足系統(tǒng)的適應性和安全性。


圖1 :Xen系統(tǒng)中原來的VCPU分配方法及結果示意圖2 =Xen虛擬機調度中實現(xiàn)準入控制機制和負載均衡機制的架構圖。圖3 =AC-PEDF調度算法下VCPU的狀態(tài)轉換示意圖4 =AC-PEDF調度算法下VCPU初始化時分配PCPU的過程示意圖; 圖5 =AC-PEDF調度算法下VCPU的調度參數(shù)(slice,period)發(fā)生改變時,VCPU到PCPU 的映射的調整過程示意圖
圖6 =AC-PEDF調度算法下,根據(jù)具有準入控制機制的首次適應算法,調整VCPU和PCPU 的映射關系的過程示意圖
圖7 =AC-PEDF調度算法下改變VCPU所對應的affinity PCPU時,VCPU到PCPU的映射的調整過程示意圖8 =AC-PEDF調度算法下,根據(jù)具有準入控制機制的首次適應算法,尋找有足夠剩余 CPU資源的PCPU的過程示意圖9 =AC-PEDF調度算法下實驗案例中VCPU在PCPU上的初始分配情況示意圖; 圖10 =AC-PEDF調度算法下VCPU在PCPU上的運行情況示意圖; 圖11 :AC-PEDF調度算法下,修改RT-VCPU2、RT_VCPU3的調度參數(shù)后,VCPU在PCPU上的分配情況示意圖。注(本發(fā)明中實現(xiàn)準入控制和負載均衡機制的Xen虛擬機中的調度算法簡稱為 AC-PEDF)。
具體實施例方式下面結合附圖和實施例對本發(fā)明作進一步說明
本發(fā)明為滿足多核硬件平臺下嵌入式實時系統(tǒng)硬實時任務在虛擬化環(huán)境中的時間需求,在Xen4. 0. 1虛擬機平臺中實現(xiàn)了一種具有準入控制和負載均衡機制的分區(qū)最早截止期優(yōu)先(EDF)調度方法。其實現(xiàn)架構圖如圖1所示。具體實施過程分為如下三個部分
一.在Xen中實現(xiàn)NWC模式下的分區(qū)最早截止期優(yōu)先的調度算法NW-PEDF 1.實現(xiàn)調度器中的VCPU調度接口
每個VCPU可配置的調度參數(shù)為(period,slice), period表示VCPU的周期,slice表示VCPU每個周期內最多可以獲得的CPU執(zhí)行時間,slice的值小于等于period。不支持 Work Conserving模式,S卩,每個VCPU擁有固定的CPU份額,即使CPU空閑,每個周期內運行的時間特不能超過slice時間單位。另夕卜每個 VCPU 還有四個參數(shù) cpu_util, deadline, cpu_time, next_begin,用于內部調度控制。cpu_util表示VCPU的CPU資源份額(也成VCPU的CPU利用率),等于 (slice*100)/period。deadline表示vcpu在當前周期內的絕對截止時間,cpu_time表示 VCPU在當前周期內已經(jīng)運行的CPU時間,next_begin表示VCPU下個周期開始的時間。
實現(xiàn)調度器中的PCPU調度接口
為每個物理處理器核(PCPU)設置一個int類型的參數(shù)cpujemainer,一個變量 runningVCPUo cpu_remainer用來表示當前物理處理器核上還剩余的CPU資源,cpu_ remainer參數(shù)的取值范圍為0到100,0表示CPU資源已經(jīng)用完,100表示最大CPU資源; runningVCPU用來記錄前物理處理器核上當前正在運行的VCPU。另外,為每個PCPU設置兩個隊列,ReadyQ和ReleaseQ。ReleaseQ隊列用來存放該PCPU上所有未就緒的VCPU,當VCPU剛剛分配到PCPU上、還沒有到達釋放時間,或者 VCPU用完本周期內的slice運行時間時就進入未就緒狀態(tài),進入ReleaseQ。ReadyQ隊列用來存放處于就緒狀態(tài)但沒有在CPU上運行的VCPU,就緒狀態(tài)是指VCPU在當前周期內的運行時間小于slice時間單位,還有剩余的CPU時間可以運行。ReadyQ隊列上的VCPU的根據(jù) VCPU的絕對截止時間進行排序,絕對截止時間最小的VCPU位于隊首。ReadyQ隊列的VCPU 根據(jù)VCPU的下周期的開始時間進行排序,下周期開始時間最早的VCPU位于隊首。每次當有新的就緒VCPU的絕對截止期小于當前正在運行的VCPU或當前正在運行的VCPU的時間片用完時,就重新進行調度,選取ReadyQ隊列隊首VCPU運行,并將當前正在運行的VCPU放入就入就緒隊列ReadyQ或ReleaseQ。NWC模式下的分區(qū)最早截止期優(yōu)先的調度算法VCPU 的狀態(tài)轉換圖如附圖3所示。二.采用首次適應(從上次首次適應結束時開始)的策略來完成VCPU到PCPU的分配算法的設計和實現(xiàn)。對每個物理CPU,引入準入機制,控制每個物理CPU上分配的虛擬 CPU(VCPU)的負載不會超過本物理CPU所能夠承受的最大值,保證每個物理CPU上的虛擬 CPU(VCPU)的負載在AC-PEDF調度算法下均是可調度的,進而使實時應用的實時性能夠得到保障。初始化時分配PCPU的過程
圖4說明了 VCPU初始化時分配PCPU的過程。當有新的VCPU產生時,均采用默認的調度參數(shù)period和slice完成對VCPU的初始化工作,并計算其CPU利用率cpu_util。然后選取PCPU,根據(jù)從上次首次適應結束時開始的策略來選擇PCPU,將VCPU放入該PCPU的隊列。如果VCPU的建立會導致所有符合VCPU親和(Affinity)性質的PCPU的超載,則拒絕建立此VCPU,并向上層返回錯誤信息。具體過程如下
(1)選擇從上次首次適應結束時選取的PCPU的下一個PCPU;
(2)檢查該PCPU是否已被初始化。如果該PCPU還沒有初始化,則對該PCPU分配相應的AC-PEDF_PCPU調度數(shù)據(jù)結構,并初始化PCPU的cpu_remainer參數(shù)為100,即表示PCPU 上有最多的CPU資源。否則進行第(3)步。(3)比較PCPU的cpu_remainer參數(shù)與VCPU的cpu_util的大小。如果PCPU上有足夠的剩余CPU資源可以分配給VCPU,即cpu_remainer>=cpu_util,則將VCPU分配到該 PCPU,同時PCPU的cpu_remainer將減少cpu_util,結束選擇。否則,該PCPU上剩余的CPU 資源已經(jīng)不能夠滿足VCPU的CPU需求,進行第(4)步。(4)如果已經(jīng)遍歷完VCPU所對應的所有Affinity PCPU,進入第(5)步;否則,選取該PCPU的下一個PCPU,重新從第(2)步開始執(zhí)行。(5)說明VCPU所對應的所有Affinity PCPU均沒有足夠的CPU資源可以提供給 VCPU,則拒絕產生此VCPU,向上層返回拒絕建立該VCPU信息。以防止該VCPU均會導致任何滿足VCPU的Affintity性質的PCPU上的資源超載。結束。2.當出現(xiàn)domain銷毀或VCPU銷毀時
將回收VCPU所占用的CPU資源,將VCPU原來對應的PCPU的剩余CPU可利用率增加, 增加值為被銷毀的VCPU原來占用的CPU資源份額。三.實現(xiàn)對調整VCPU調度參數(shù)的支持機制,允許管理員在VCPU初始化之后,根據(jù)運行過程中虛擬機負載的變化情況調整VCPU的調度參數(shù),能夠更好滿足系統(tǒng)的適應性和擴展性。當VCPU的調度參數(shù)(slice,period)發(fā)生改變時
圖5說明了 VCPU的調度參數(shù)(slice,period)發(fā)生改變時,VCPU到PCPU的映射的調整過程。當VCPU的調度參數(shù)(slice,period)發(fā)生改變時,具體調整過程如下
1)將VCPU從當前PCPU的隊列中移出,并重新初始化VCPU的調度參數(shù) deadline=period, cpu_time=0, next_begin=0o2)計算VCPU的CPU利用率cpu_util的改變值,記VCPU原來的CPU利用率為old_ cpu_util, VCPU 改變后的 CPU 禾Ij用率為 new_cpu_util,d_cpu_uti 1 =new_cpu_uti 1 -ο 1 d_ cp_util??紤]以下四種情況
(1)當VCPU的cpu_util參數(shù)保持不變(即d_cpu_util =0)時,原來的VCPU和PCPU的映射關系保持不變,將VCPU放回PCPU的ReleaseQ。(2)當VCPU的cpu_util參數(shù)變小(即d_cpu_util <0)時,保持原來的VCPU和 PCPU的映射關系,另外,將PCPU的cpu_remainer參數(shù)增加VCPU的cpu_util參數(shù)的減小值 d_cpu_util,將 VCPU 放回 PCPU 的 ReleaseQ。(3)當VCPU的cpu_util參數(shù)變大,并且原來的PCPU上仍有足夠的CPU資源可以補充給 VCPU (即 d_cpu_util >0 并且 cpu_remainer >= d_cpu_util)時,保持原來的 VCPU 和PCPU的映射關系,另外,將PCPU的cpu_remainer參數(shù)減少VCPU的cpu_util參數(shù)的減小值 d_cpu_util,將 VCPU 放回 PCPU 的 ReleaseQ。(4)當VCPU的cpu_util參數(shù)變大,并且原來的PCPU沒有足夠的cpu_remainer (即 d_cpu_util >0 并且 cpu_remainer < d_cpu_util)時,需要改變 VCPU 和 PCPU 的映射關系。3 )圖6說明如何改變VCPU和PCPU的映射關系,具體步驟如下
(1)回收VCPU原來占用的CPU資源,將VCPU原來對應的PCPU的剩余CPU可利用率增加,增加值為被銷毀的VCPU原來占用的CPU資源份額。(2)從VCPU當前所在的PCPU的下一個PCPU開始,根據(jù)具有準入控制機制的首次適應方法,尋找有足夠剩余CPU資源的滿足VCPU affinity的PCPU (cpu_remainer>=cpu_ util).如果找到有足夠剩余CPU資源的PCPU,進入第(3)步;否則進入第(4)步。(3)建立VCPU與PCPU新的映射關系,并更新新PCPU的CPU剩余資源newpcpu. cpu_remainer=newpcpu. cpu_remainer-vcpu. cpu_util,原來所在 PCPU 的 CPU 乘丨J 余資源 οldpcpu. cpu_remainer=oldpcpu. cpu_remainer+vcpu. cpu_util ;將該 VCPU 放入新 PCPU 的 ReleaseQ。結束。(4)說明VCPU所對應的所有Affinity PCPU均沒有足夠的CPU資源可以提供給 VCPU,則拒絕此VCPU的調度參數(shù)的改變,將該VCPU放回原來所在PCPU的ReleaseQ ;并向上層返回拒絕修改VCPU調度參數(shù)信息。以防止該VCPU調度參數(shù)的調度改變導致PCPU上 VCPU負載的不可調度性。結束。當修改VCPU所對應的affinity pcpu時,
圖7說明了 VCPU所對應的affinity PCPU發(fā)生改變時,VCPU到PCPU的映射的調整過程。根據(jù)從上次首次適應結束時開始的策略尋找有足夠剩余CPU資源的PCPU,調整VCPU和 PCPU的映射關系。(1)將VCPU原來的PCPU的隊列中移出,并重新初始化VCPU的調度參數(shù) deadline=period, cpu_time=0, next_begin=0o(2)檢查VCPU原來所在PCPU是否屬于VCPU的affinity PCPU。如果VCPU原來所在PCPU屬于VCPU的affinity PCPU,保持原來的VCPU和PCPU的映射關系,并將VCPU放回 PCPU 的 ReleaseQ。結束。(3)如果VCPU原來所在PCPU不屬于VCPU的affinity PCPU,從VCPU當前所在的 PCPU的下一個PCPU開始,根據(jù)具有準入控制機制的首次適應方法,尋找有足夠剩余CPU資源的PCPU,調整VCPU和PCPU的映射關系。根據(jù)具有準入控制機制的首次適應方法,尋找有足夠剩余CPU資源的PCPU流程圖如圖8。下面通過一個在Intel酷睿15雙核處理器的Xen4. 01平臺上運行的實例說明本發(fā)明的工作過程。在本案例中有兩個物理CPU核PCPU,分別是Core-I和Core_2,初始狀態(tài)下,DomO 具有1個VCPU,是D0M0-VCPU0 (20, 15),位于在Core-I上。在Xen虛擬機上依次創(chuàng)建有4 個實時虛擬機,它們對應四個VCPU分別是RT-VCPU1 (50, 5),RT-VCPU2 (20, 10),RT-VCPU3 (15,3),RT-VCPU4 (30,6)。案例中初始時VCPU在PCPU上的分配情況應如圖9所示。從圖9中可以看至lj,Core-I 上有 D0M0-VCPU0 和 RT-VCPU3,Core-I 上 VCPU 負載總值為 95% ;Core-2 上有 RT-VCPU1、RT-VCPU2 和 RT-VCPU4, Core-2 上 VCPU 負載總值為 80%。兩個 PCPU 上均無出現(xiàn)超載。VCPU在PCPU上的運行情況應如圖10所示。從圖10中可以看到,D0M0-VCPU0 和RT-VCPU3在Core-I上按照最早截止期優(yōu)先(EDF)的調度方法進行運行,RT-VCPUU RT-VCPU2和RT-VCPU4在Core-2上按照最早截止期優(yōu)先(EDF)的調度方法進行運行,所有的VCPU都能在自身的截止期內運行結束,保證了所有實時任務的實時性。當修改RT-VCPU2的調度參數(shù)為RT-VCPU2 (20, 5)、RT-VCPU3的調度參數(shù)為 RT-VCPU3 (15,6)時,VCPU在PCPU上的分配情況應如圖11所示。調整RT-VCPU2調度參數(shù)后,RT-VCPU2的CPU利用率變小,Core-2能夠滿足其CPU資源的需求,因此,RT-VCPU2仍分配在Core-2上;調整RT-VCPU3調度參數(shù)后,RT-VCPU2的CPU利用率變?yōu)?0%,增大20%, RT-VCPU3原來所在的PCPU Core-I不能夠滿足其CPU資源的需求,因此需要改變RT-VCPU3 所在的PCPU,此時Core-2上剩余的CPU資源為45%,能夠滿足RT-VCPU3的CPU資源需求,因此,將RT-VCPU3分配在Core-2上。從圖11中可以看到,最終PCPU上VCPU的分配結果為 Core-I 上有 D0M0-VCPU0,Core-I 上 VCPU 負載總值為 75% ;Core-2 上有 RT_VCPU1、RT_VCPU4、 RT-VCPU2和RT-VCPU3,Core-2上VCPU負載總值為95%。兩個PCPU上均無出現(xiàn)超載。雖然通過上述具體實例對本發(fā)明進行了說明,但是本發(fā)明并不局限于上述實例,對于本領域的相關人員,可以根據(jù)本發(fā)明的技術方案和思想,作出其他各種改變和變形,而所有這些都應該屬于本發(fā)明權利要求的保護范圍內。
權利要求
1.一種虛擬化環(huán)境中的準入控制與負載均衡方法,其特征在于包括以下步驟步驟一修改Xen虛擬機中的簡單最早截止期優(yōu)先SEDF調度算法,實現(xiàn)非工作保養(yǎng)模式NWC下的分區(qū)最早截止期優(yōu)先的調度算法NWC-PEDF ;步驟二 對每個物理處理器引入準入控制機制,控制每個物理處理器PCPU上分配的 Xen虛擬處理器VCPU的負載不會超過本物理處理器所能夠承受的最大值;步驟三采用首次適應,即從上次首次適應結束時開始的策略來控制Xen虛擬化環(huán)境中的VCPU到多核硬件平臺上PCPU的分配映射;步驟四提供對調整VCPU調度參數(shù)的支持機制,允許管理員根據(jù)運行過程中虛擬機負載的變化情況調整VCPU的調度參數(shù),并根據(jù)管理員所做的參數(shù)的調整進行系統(tǒng)可調度性檢查和VCPU負載在PCPU上的調整。
2.根據(jù)權利要求1所述的虛擬化環(huán)境中的準入控制與負載均衡方法,其特征在于在步驟一中,在Xen虛擬機環(huán)境下,每個虛擬處理器VCPU固定被分配到一個物理處理器PCPU 上,并只能夠在其對應的PCPU上運行或進行狀態(tài)的轉換;每個物理處理器PCPU都有自己最大的處理器資源值、自身的虛擬處理器VCPU負載隊列;每個PCPU獨立按照最早截止期優(yōu)先的調度算法進行調度VCPU,以保證虛擬機環(huán)境下嵌入式實時系統(tǒng)中硬實時應用的實時需求。
3.根據(jù)權利要求1所述的虛擬化環(huán)境中的準入控制與負載均衡方法,其特征在于在 Xen虛擬機調度中實現(xiàn)非工作保養(yǎng)模式,為每個虛擬機對應的虛擬處理器VCPU都設置固定的CPU資源份額,在Xen虛擬機環(huán)境下,每個虛擬處理器VCPU實際占用的處理器CPU資源都不會超過其自身固定的CPU資源份額。
4.根據(jù)權利要求1所述的虛擬化環(huán)境中的準入控制與負載均衡方法,其特征在于對多核硬件平臺上的物理處理器PCPU編號,在對虛擬處理器VCPU負載進行初始化分配到 PCPU上時,第一個VCPU從第一個PCPU開始,尋找能夠滿足VCPU負載需求的PCPU,將VCPU 分配給該物理PCPU ;之后的VCPU依次從前一個VCPU所分配的PCPU的下一個PCPU開始, 尋找能夠滿足VCPU負載需求的PCPU,將VCPU分配給該物理PCPU ;當虛擬處理器VCPU的調度參數(shù)發(fā)生調整需要修改VCPU到PCPU的映射關系時,從VCPU原來所在的PCPU的下一個 PCPU開始,尋找能夠滿足VCPU負載需求的PCPU,將VCPU分配給該物理PCPU。
5.根據(jù)權利要求1所述的虛擬化環(huán)境中的準入控制與負載均衡方法,其特征在于對每個物理處理器PCPU引入準入控制機制,控制每個PCPU上分配的VCPU的負載不會超過該 PCPU的資源的最大值,保證每個PCPU上的VCPU的負載在非工作保養(yǎng)模式下的最早截止期優(yōu)先NWC-PEDF調度算法下均是可調度的;初始時設置每個物理處理器PCPU的最大可用的 CPU資源值為100,當通過首次適應的策略,嘗試將VCPU負載分配給PCPU時,會檢查PCPU上是否剩余有足夠的CPU資源可以滿足VCPU負載的需求,如果PCPU上剩余有足夠的CPU資源可以滿足VCPU負載的需求,則該PCPU接受此VCPU負載;否則該PCPU拒絕接受此VCPU 負載,繼續(xù)檢查下一個PCPU上是否剩余有足夠的CPU資源可以滿足VCPU負載的需求;如果能夠找到可以滿足VCPU負載需求的PCPU,則建立此VCPU,并將VCPU負載分配給該PCPU ; 如果找不到可以滿足VCPU負載需求的PCPU,則拒絕建立此VCPU,并返回相應信息。
6.根據(jù)權利要求1所述的虛擬化環(huán)境中的準入控制與負載均衡方法,其特征在于在步驟四中,當管理員修改了 VCPU的調度參數(shù),即VCPU所能夠使用的PCPU,周期Period,周期內CPU時間后,系統(tǒng)將會檢查VCPU原來所在的PCPU上是否能夠滿足修改后VCPU負載的 CPU資源需求,如果能夠滿足,則保持原來的VCPU和PCPU的分配關系不變,并根據(jù)修改后 VCPU負載的CPU需求更新PCPU上剩余的CPU資源值;如果VCPU原來所在的PCPU不能夠滿足修改后VCPU負載的CPU資源需求,則從VCPU原來所在的PCPU的下一個PCPU開始,根據(jù)首次適應策略,尋找能夠滿足修改后的VCPU負載CPU資源需求的PCPU,如果能夠找到這樣的PCPU,則將次VCPU分配給該PCPU,并更新VCPU原來所在PCPU和現(xiàn)在所在PCPU上的剩余CPU資源值;如果沒有PCPU能夠滿足修改后VCPU負載的CPU資源需求,則保持VCPU原來的調度參數(shù)和與PCPU的分配關系,拒絕VCPU調度參數(shù)的調整,并返回相應信息給用戶。
全文摘要
本發(fā)明涉及一種虛擬化環(huán)境中的準入控制與負載均衡方法,包括以下步驟1修改Xen虛擬機中的簡單最早截止期優(yōu)先調度算法,實現(xiàn)非工作保養(yǎng)模式下的分區(qū)最早截止期優(yōu)先的調度算法NWC-PEDF;2對每個物理處理器引入準入控制機制,控制每個物理處理器上分配的Xen虛擬處理器的負載;3采用首次適應的策略來控制Xen虛擬化環(huán)境中的VCPU到多核硬件平臺上PCPU的分配映射,以保證每個PCPU上負載的均衡;4提供對調整VCPU調度參數(shù)的支持機制,允許管理員根據(jù)運行過程中虛擬機負載的變化情況調整VCPU的調度參數(shù)。本發(fā)明的優(yōu)點滿足多核硬件平臺下虛擬化環(huán)境對嵌入式實時系統(tǒng)硬實時任務的時間需求的支持,對Xen虛擬機中的調度算法進行改進,實現(xiàn)了準入控制和負載均衡機制。
文檔編號G06F9/50GK102270159SQ20111022981
公開日2011年12月7日 申請日期2011年8月11日 優(yōu)先權日2011年8月11日
發(fā)明者張勁超, 李紅, 王超, 趙慶玲, 顧宗華 申請人:浙江大學
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
左贡县| 宜都市| 定兴县| 普兰县| 南华县| 蛟河市| 专栏| 广南县| 固阳县| 武宣县| 阜平县| 胶州市| 锡林浩特市| 台东县| 辽源市| 徐水县| 湖北省| 东源县| 漾濞| 永顺县| 阜阳市| 许昌市| 长宁区| 独山县| 三台县| 佛教| 玛纳斯县| 大名县| 曲水县| 丰顺县| 和平县| 衡阳市| 鹰潭市| 合作市| 兴安盟| 饶河县| 禄丰县| 穆棱市| 丘北县| 泸溪县| 托克逊县|