两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種多核環(huán)境下的虛擬機(jī)調(diào)度方法

文檔序號(hào):6584979閱讀:575來(lái)源:國(guó)知局
專利名稱:一種多核環(huán)境下的虛擬機(jī)調(diào)度方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種虛擬機(jī)調(diào)度方法,尤其涉及一種多核環(huán)境下的虛擬機(jī)調(diào)度方法,
屬于計(jì)算機(jī)操作系統(tǒng)與虛擬化技術(shù)領(lǐng)域。
背景技術(shù)
隨著多核處理器技術(shù)的進(jìn)步,單個(gè)處理器上集成的處理器核數(shù)量逐年增加,服務(wù) 器的計(jì)算能力越來(lái)越強(qiáng),目前一般的服務(wù)器至少也是4-16核,處理器核的增加使得單個(gè)服 務(wù)器上可以匯聚更多的應(yīng)用。同時(shí)基于服務(wù)器虛擬化技術(shù)的取得了前所未有的關(guān)注,虛擬 化技術(shù)的基本思想是,通過(guò)虛擬機(jī)監(jiān)視器(VMM)軟件對(duì)底層的硬件資源進(jìn)行管理,并提供 多個(gè)相互隔離的虛擬硬件執(zhí)行環(huán)境(VM),這樣使得在同一臺(tái)物理主機(jī)上運(yùn)行多個(gè)不同的應(yīng) 用(OS)。 虛擬化技術(shù)起源于大型機(jī),早在上世紀(jì)60年代,IBM公司就發(fā)明了一種操作系統(tǒng) 虛擬機(jī)技術(shù),在已有的計(jì)算機(jī)層次上新增虛擬機(jī)中間層,截獲上層軟件對(duì)底層接口的調(diào)用, 并對(duì)該調(diào)用重新做出解釋和處理,從而實(shí)現(xiàn)新的不同于已有軟件或硬件提供的功能。采用 虛擬化技術(shù)可以屏蔽硬件平臺(tái)的動(dòng)態(tài)性和異構(gòu)性,支持硬件資源的共享和服務(wù),并為每個(gè) 用戶提供屬于個(gè)人的獨(dú)立、隔離的計(jì)算環(huán)境;可以實(shí)現(xiàn)整合服務(wù)器,節(jié)省資金提高資源利用 率;可以實(shí)現(xiàn)故障隔離,提高系統(tǒng)的安全性。 虛擬化技術(shù)的一個(gè)重要的應(yīng)用就是服務(wù)器整合,最大限度地提高硬件資源的利用 率,降低能源開(kāi)銷,減少運(yùn)行成本。服務(wù)器整合通常是指在一臺(tái)物理服務(wù)器上運(yùn)行多個(gè)應(yīng)用 服務(wù)來(lái)實(shí)現(xiàn)。因此在服務(wù)器的處理器數(shù)量增加的同時(shí),服務(wù)器上的應(yīng)用服務(wù)數(shù)量和種類也 在增加, 一個(gè)應(yīng)用服務(wù)對(duì)應(yīng)了一個(gè)虛擬機(jī),此時(shí)虛擬機(jī)調(diào)度的問(wèn)題日益突出,表現(xiàn)為
如何為每種應(yīng)用分配所需要的計(jì)算資源并使得系統(tǒng)的計(jì)算資源得到最好的利用。 如實(shí)時(shí)應(yīng)用需要周期性得到一定的計(jì)算資源,批處理應(yīng)用則希望得到長(zhǎng)時(shí)間計(jì)算資源;
如何為相互關(guān)聯(lián)的應(yīng)用提供適當(dāng)?shù)年P(guān)聯(lián)調(diào)度,確保關(guān)聯(lián)的應(yīng)用的整體性能。如經(jīng) 典的3層結(jié)構(gòu)企業(yè)應(yīng)用需要在Web邏輯層、數(shù)據(jù)層之間進(jìn)行協(xié)同。 傳統(tǒng)的虛擬機(jī)調(diào)度方法首先考慮的是系統(tǒng)的資源利用率與分配的公平性,并 沒(méi)有考慮到不同應(yīng)用的虛擬機(jī)資源的需求差異?,F(xiàn)存有三種比較著名的調(diào)度算法, BVT(BorrowedVirtual Time)調(diào)度算法、SEDF(Simple Earliest Deadline First)調(diào)度 算法和Credit調(diào)度算法。它們各有優(yōu)缺點(diǎn),但是都沒(méi)能考慮到對(duì)不同應(yīng)用類型的調(diào)度。 如BVT(BorrowedVirtual Time)調(diào)度算法是一種公平性優(yōu)先的調(diào)度算法,讓負(fù)載大的 VCPU(虛擬處理器)和負(fù)載小的VCPU獲得幾乎同樣多的CPU時(shí)間,就可能會(huì)出現(xiàn)分配給負(fù) 載大的VCPU的真實(shí)CPU時(shí)間不夠,而分配給負(fù)載小的VCPU的真實(shí)CPU時(shí)間有剩余,造成 了 CPU資源的浪費(fèi),沒(méi)有最大程度的利用CPU資源,也沒(méi)有考慮到不同應(yīng)用的不同需求;而 SEDF雖然解決了 BVT的問(wèn)題,但是只能對(duì)每個(gè)CPU分別進(jìn)行SEDF調(diào)度,在多核情況下,該 算法不能較好的完成負(fù)載平衡,同時(shí)也忽略了不同應(yīng)用對(duì)資源的不同需求;最后Credit調(diào) 度算法,可以將CPU時(shí)間公平高效地分配給各個(gè)虛擬CPU ;也可以用SMP的方式將各個(gè)物理CPU分配給各個(gè)虛擬CPU,實(shí)現(xiàn)負(fù)載平衡;但是,同樣Credit調(diào)度算法也沒(méi)有將應(yīng)用的類型 作為調(diào)度的一個(gè)考慮方面。 因此在當(dāng)前服務(wù)器多核技術(shù)的發(fā)展以及服務(wù)器上應(yīng)用服務(wù)數(shù)量聚增情況下,單一 虛擬機(jī)調(diào)度算法已經(jīng)無(wú)法滿足資源的有效利用以及應(yīng)用高效運(yùn)行的需求。 一種調(diào)度算法可 能對(duì)一種類型的應(yīng)用有效但是當(dāng)多種類型的應(yīng)用在一起調(diào)度時(shí)就會(huì)產(chǎn)生資源分配的不合 理,如BVT算法比較適合實(shí)時(shí)應(yīng)用,但是當(dāng)實(shí)時(shí)應(yīng)用和批處理應(yīng)用在一起時(shí)就會(huì)產(chǎn)生資源 分配不合理的情況。

發(fā)明內(nèi)容
本發(fā)明提出了一種多核環(huán)境下的虛擬機(jī)調(diào)度方法,該方法是在現(xiàn)有的虛擬機(jī)監(jiān)視 器(VMM)中加入了四個(gè)模塊,即調(diào)度初始化模塊、CPU狀態(tài)監(jiān)控模塊、調(diào)度決策模塊以及CPU 動(dòng)態(tài)分區(qū)模塊。系統(tǒng)加電啟動(dòng)時(shí),控制終端和客戶虛擬機(jī)通過(guò)控制接口進(jìn)行通信。首先由 控制終端通知VMM的控制接口觸發(fā)調(diào)度初始化模塊將所有的CPU枚舉出來(lái),然后根據(jù)系統(tǒng) 預(yù)設(shè)支持的調(diào)度策略類型通過(guò)CPU動(dòng)態(tài)分區(qū)模塊將CPU進(jìn)行分區(qū),并由調(diào)度決策模塊對(duì)各 個(gè)分區(qū)指定相應(yīng)的調(diào)度策略;初始化分區(qū)時(shí),CPU動(dòng)態(tài)分區(qū)模塊為每種預(yù)設(shè)調(diào)度策略類型 的分區(qū)分得最小CPU資源(資源的最小值一般由管理員設(shè)定,默認(rèn)為l),剩余的CPU資源將 被放到空閑分區(qū)中。當(dāng)有新的虛擬機(jī)被創(chuàng)建時(shí),CPU動(dòng)態(tài)分區(qū)模塊根據(jù)虛擬機(jī)的調(diào)度參數(shù), 將其加入到相應(yīng)的分區(qū)進(jìn)行調(diào)度。當(dāng)系統(tǒng)運(yùn)行時(shí),CPU狀態(tài)監(jiān)控模塊監(jiān)控各分區(qū)的負(fù)載情 況,當(dāng)某個(gè)分區(qū)CPU負(fù)載過(guò)大,或過(guò)小時(shí),都會(huì)觸發(fā)CPU動(dòng)態(tài)分區(qū)模塊,對(duì)分區(qū)的大小進(jìn)行調(diào) 整。 本發(fā)明提供的一種多核環(huán)境下的虛擬機(jī)調(diào)度方法包含以下執(zhí)行步驟 步驟1 :加電啟動(dòng)初始化;系統(tǒng)啟動(dòng)時(shí)調(diào)度初始化模塊加載,做好初始化工作,本
步驟包含以下兩個(gè)操作 步驟1. 1枚舉CPU并讀取預(yù)設(shè)調(diào)度策略類型;在系統(tǒng)加電完成啟動(dòng)的時(shí)候,調(diào)度初 始化模塊加載,并將系統(tǒng)中的所有CPU枚舉出來(lái),同時(shí)讀取系統(tǒng)中預(yù)設(shè)的調(diào)度策略類型;
步驟1. 2為系統(tǒng)進(jìn)行初始分區(qū);調(diào)度初始化模塊在獲得調(diào)度策略類型后,由CPU動(dòng) 態(tài)分區(qū)模塊為每種調(diào)度策略類型分得資源最小值的分區(qū),同時(shí)建立空閑分區(qū)用以放置剩下 的CPU資源,完成系統(tǒng)初始分區(qū); 步驟2 :創(chuàng)建虛擬機(jī);當(dāng)系統(tǒng)創(chuàng)建虛擬機(jī)時(shí),調(diào)度決策模塊會(huì)讀取虛擬機(jī)的調(diào)度參 數(shù),將虛擬機(jī)加入到相應(yīng)的分區(qū),本步驟包含以下兩個(gè)操作 步驟2. 1調(diào)度決策模塊讀取調(diào)度參數(shù);當(dāng)新創(chuàng)建虛擬機(jī)時(shí),系統(tǒng)會(huì)根據(jù)虛擬機(jī)應(yīng) 用的類型在配置文件中制定調(diào)度參數(shù),調(diào)度決策模塊會(huì)主動(dòng)讀取虛擬機(jī)的配置文件獲得調(diào) 度參數(shù); 步驟2. 2將虛擬機(jī)加入到相應(yīng)的分區(qū);當(dāng)調(diào)度參數(shù)獲得后,調(diào)度決策模塊通過(guò)調(diào)
度參數(shù)查找相應(yīng)的分區(qū),當(dāng)相應(yīng)的分區(qū)存在時(shí),CPU動(dòng)態(tài)分區(qū)模塊直接將該虛擬機(jī)加入到相
應(yīng)的分區(qū)調(diào)度,當(dāng)調(diào)度參數(shù)對(duì)應(yīng)的分區(qū)不存在時(shí),CPU動(dòng)態(tài)分區(qū)模塊從空閑分區(qū)中分出一個(gè)
新的分區(qū)用作該調(diào)度策略類型分區(qū),并將該虛擬機(jī)加入調(diào)度; 步驟3 :虛擬機(jī)調(diào)度;系統(tǒng)運(yùn)行時(shí),本步驟具體包括以下操作 步驟3. 1虛擬機(jī)在各自分區(qū)內(nèi)調(diào)動(dòng);運(yùn)行的虛擬機(jī)只能在指定的CPU分區(qū)中進(jìn)行調(diào)度,調(diào)度決策模塊根據(jù)各個(gè)分區(qū)的調(diào)度算法對(duì)各分區(qū)中的虛擬機(jī)進(jìn)行調(diào)度;
步驟3. 2監(jiān)控各分區(qū)負(fù)載情況并動(dòng)態(tài)調(diào)整分區(qū)大?。籆PU狀態(tài)監(jiān)控模塊監(jiān)視著各 分區(qū)的CPU資源利用情況,當(dāng)某個(gè)分區(qū)的CPU負(fù)載過(guò)大時(shí),CPU狀態(tài)監(jiān)控模塊觸發(fā)CPU動(dòng)態(tài) 分區(qū)模塊,CPU動(dòng)態(tài)分區(qū)模塊從空閑分區(qū)中分出CPU資源到負(fù)載過(guò)大的分區(qū),當(dāng)空閑分區(qū)為 空時(shí),從負(fù)載較小的分區(qū)中分出CPU資源到負(fù)載過(guò)大的分區(qū)中,當(dāng)有分區(qū)的CPU負(fù)載過(guò)小 時(shí),CPU動(dòng)態(tài)分區(qū)模塊會(huì)將負(fù)載小的分區(qū)資源回收到空閑分區(qū),縮小負(fù)載小的分區(qū)資源。
所述的一種基于多核環(huán)境下的虛擬機(jī)調(diào)度方法,其特征在于,步驟1中所述的調(diào) 度策略類型包括BVT調(diào)度算法和SEDF調(diào)度算法。 所述的一種基于多核環(huán)境下的虛擬機(jī)調(diào)度方法,其特征在于,步驟1中所述的資 源最小值,該值由管理員設(shè)定,默認(rèn)為1個(gè)CPU。 所述的一種基于多核環(huán)境下的虛擬機(jī)調(diào)度方法,其特征在于,步驟2中所述的調(diào) 度參數(shù)是指虛擬機(jī)應(yīng)用所適合的調(diào)度策略。 所述的一種基于多核環(huán)境下的虛擬機(jī)調(diào)度方法,其特征在于,步驟3.2中所述的 調(diào)整分區(qū)的大小,默認(rèn)每次調(diào)整分區(qū)的大小為一個(gè)CPU資源,特殊情況下,當(dāng)某一分區(qū)的負(fù) 載為0%時(shí),則表明該分區(qū)沒(méi)有虛擬機(jī)調(diào)度,則CPU動(dòng)態(tài)分區(qū)模塊刪除該分區(qū),并將資源回 收到空閑分區(qū)中。 相比現(xiàn)有技術(shù)本發(fā)明具有以下優(yōu)點(diǎn)和積極效果
(1)提高調(diào)度的效率 傳統(tǒng)的虛擬機(jī)調(diào)度大都采用全局統(tǒng)一調(diào)度方法,各個(gè)CPU都采用了相同的調(diào)度策
略和參數(shù)設(shè)置。在實(shí)際應(yīng)用中,不同的應(yīng)用對(duì)資源的要求是不同的,不同的資源需求需要相
應(yīng)的調(diào)度策略才能達(dá)到資源充分利用的目的,如實(shí)時(shí)系統(tǒng)要求周期性的分配時(shí)間片,而批
處理系統(tǒng)則要求連續(xù)的分配時(shí)間片,這兩種應(yīng)用就需要不同的調(diào)度策略。本發(fā)明將CPU資
源按照調(diào)度策略類型進(jìn)行分區(qū),使用相同調(diào)度策略的虛擬機(jī)在同一個(gè)分區(qū)中進(jìn)行調(diào)度,這
樣提高了調(diào)度的效率。
(2)更好的利用資源 本發(fā)明提出的CPU分區(qū)是動(dòng)態(tài)的,CPU狀態(tài)監(jiān)控模塊會(huì)實(shí)時(shí)監(jiān)控各分區(qū)的CPU負(fù) 載情況,對(duì)于負(fù)載大的分區(qū),會(huì)觸發(fā)CPU動(dòng)態(tài)分區(qū)模塊將空閑分區(qū)中的CPU分配給負(fù)載大的 分區(qū);對(duì)于負(fù)載小的分區(qū),會(huì)觸發(fā)CPU動(dòng)態(tài)分區(qū)模塊將負(fù)載小的分區(qū)的資源回收一部分到 空閑分區(qū)中。通過(guò)動(dòng)態(tài)調(diào)整分區(qū)的大小達(dá)到資源負(fù)載均衡的目的,實(shí)現(xiàn)了資源的充分利用, 減少了資源的浪費(fèi)。


圖1是本發(fā)明多核環(huán)境下虛擬機(jī)調(diào)度方法模型的模塊結(jié)構(gòu)示意圖; 圖2是本發(fā)明提出的一種多核環(huán)境下的虛擬機(jī)調(diào)度方法整體系統(tǒng)執(zhí)行步驟流程
圖; 圖3是本發(fā)明提出的一種多核環(huán)境下的虛擬機(jī)調(diào)度方法加電啟動(dòng)初始化執(zhí)行步 驟流程圖。
具體實(shí)施例方式
下面結(jié)合附圖對(duì)本發(fā)明進(jìn)行進(jìn)一步的詳細(xì)說(shuō)明。 如圖1所示,本發(fā)明提出的一種多核環(huán)境下的虛擬機(jī)調(diào)度方法在現(xiàn)有虛擬機(jī)監(jiān)視 器V匪1中加入四個(gè)新的模塊CPU動(dòng)態(tài)分區(qū)模塊2,調(diào)度初始化模塊3,調(diào)度決策模塊4,CPU 狀態(tài)監(jiān)控模塊5。 CPU動(dòng)態(tài)分區(qū)模塊2,負(fù)責(zé)對(duì)CPU資源按照調(diào)度策略類型進(jìn)行分區(qū),并動(dòng)態(tài)地調(diào)整 各分區(qū)的大小,以及向各個(gè)分區(qū)中加入新增的虛擬機(jī)。首先根據(jù)調(diào)度初始化模塊3傳遞過(guò) 來(lái)的CPU信息和預(yù)設(shè)調(diào)度策略類型信息,對(duì)系統(tǒng)CPU進(jìn)行初始分區(qū),分區(qū)的個(gè)數(shù)為調(diào)度策略 類型的個(gè)數(shù)加1,因?yàn)樾枰粋€(gè)空閑分區(qū),初始時(shí)為非空閑分區(qū)分得最小的CPU資源,資源 的最小值一般有管理員設(shè)定,默認(rèn)為l,其余的CPU放在空閑分區(qū)。當(dāng)系統(tǒng)在運(yùn)行時(shí),CPU動(dòng) 態(tài)分區(qū)模塊2根據(jù)調(diào)度決策模塊4和CPU狀態(tài)監(jiān)控模塊5傳遞過(guò)來(lái)的信息,對(duì)CPU分區(qū)資 源進(jìn)行動(dòng)態(tài)的調(diào)整,使各分區(qū)負(fù)載達(dá)到負(fù)載均衡。 調(diào)度初始化模塊3,主要功能是在系統(tǒng)加電啟動(dòng)的時(shí)候由控制接口 6進(jìn)行加載,負(fù) 責(zé)枚舉所有的CPU,然后再通過(guò)控制接口 6讀取系統(tǒng)預(yù)設(shè)支持的調(diào)度策略類型,并將所有的 CPU信息以及預(yù)設(shè)調(diào)度策略類型信息傳遞給CPU動(dòng)態(tài)分區(qū)模塊2。 調(diào)度決策模塊4,是在虛擬機(jī)創(chuàng)建時(shí),讀取虛擬機(jī)的調(diào)度參數(shù),隨后提供給CPU動(dòng) 態(tài)分區(qū)模塊2,由CPU動(dòng)態(tài)分區(qū)模塊2將虛擬機(jī)加入到相應(yīng)的分區(qū);當(dāng)在系統(tǒng)運(yùn)行時(shí),負(fù)責(zé) 在每個(gè)分區(qū)內(nèi)對(duì)虛擬機(jī)進(jìn)行調(diào)度。首先在創(chuàng)建虛擬機(jī)時(shí),調(diào)度決策模塊4通過(guò)控制接口 6 讀取客戶虛擬機(jī)8的調(diào)度參數(shù),并將調(diào)度參數(shù)提供給CPU動(dòng)態(tài)分區(qū)模塊2,然后CPU動(dòng)態(tài)分 區(qū)模塊2根據(jù)調(diào)度參數(shù)查找該調(diào)度策略類型的分區(qū)是否存在,若存在,則將該客戶虛擬機(jī)8 加入到該分區(qū),若不存在,則CPU動(dòng)態(tài)分區(qū)模塊2先建立此調(diào)度策略類型對(duì)應(yīng)的分區(qū),再將 客戶虛擬機(jī)8加入到此分區(qū)。當(dāng)系統(tǒng)在運(yùn)行時(shí),調(diào)度決策模塊4負(fù)責(zé)在每個(gè)分區(qū)內(nèi)對(duì)客戶 虛擬機(jī)進(jìn)行調(diào)度,保證每個(gè)分區(qū)內(nèi)的客戶虛擬機(jī)采用相應(yīng)的調(diào)度策略進(jìn)行調(diào)度。
CPU狀態(tài)監(jiān)控模塊5,在系統(tǒng)運(yùn)行過(guò)程中監(jiān)控各分區(qū)CPU負(fù)載情況,并通知CPU動(dòng) 態(tài)分區(qū)模塊2對(duì)分區(qū)資源進(jìn)行動(dòng)態(tài)調(diào)整。系統(tǒng)默認(rèn)為每個(gè)分區(qū)的負(fù)載大小設(shè)置了上下限, 如上限為90%,下線為40%,當(dāng)某一分區(qū)負(fù)載大于90%時(shí),通知CPU動(dòng)態(tài)分區(qū)模塊2, CPU 動(dòng)態(tài)分區(qū)模塊2從空閑分區(qū)中分配資源到負(fù)載大的分區(qū),默認(rèn)每次分配一個(gè)CPU資源;當(dāng)某 一分區(qū)負(fù)載小于40%時(shí),通知CPU動(dòng)態(tài)分區(qū)模塊2,CPU動(dòng)態(tài)分區(qū)模塊2從負(fù)載小的分區(qū)中 回收資源到空閑分區(qū)中,默認(rèn)每次回收一個(gè)CPU資源,但是必須保證負(fù)載小的分區(qū)中最少 有一個(gè)CPU資源。在特殊情況下,當(dāng)某一分區(qū)的負(fù)載為0%時(shí),則表明該分區(qū)沒(méi)有虛擬機(jī)調(diào) 度,則CPU動(dòng)態(tài)分區(qū)模塊2刪除該分區(qū),并將資源回收到空閑分區(qū)中。
本發(fā)明提出一種多核環(huán)境下的虛擬機(jī)調(diào)度方法,如圖2所示,包含以下步驟
步驟1 :加電啟動(dòng)初始化,其流程圖如圖3所示。系統(tǒng)啟動(dòng)時(shí)調(diào)度初始化模塊3加 載,做好初始化工作。本步驟包含以下兩個(gè)操作步驟l. l枚舉CPU并讀取預(yù)設(shè)調(diào)度策略類 型;步驟1. 2為系統(tǒng)進(jìn)行初始分區(qū)。 步驟l. 1枚舉CPU并讀取預(yù)設(shè)調(diào)度策略類型;當(dāng)系統(tǒng)加電完成啟動(dòng),控制終端7加 載調(diào)度初始化模塊3,調(diào)度初始化模塊3將系統(tǒng)中的所有CPU枚舉出來(lái),同時(shí)讀取系統(tǒng)中預(yù) 設(shè)的調(diào)度策略類型,例如系統(tǒng)預(yù)設(shè)的調(diào)度策略類型有Credit、BVT和SEDF。
步驟1. 2為系統(tǒng)進(jìn)行初始分區(qū);調(diào)度初始化模塊3在獲得調(diào)度策略類型后,由CPU動(dòng)態(tài)分區(qū)模塊2為每種調(diào)度策略類型分得資源最小值的分區(qū),資源的最小值一般由管理員 設(shè)定,默認(rèn)為1個(gè)CPU。同時(shí)建立空閑分區(qū)放置剩下的CPU資源,完成系統(tǒng)初始分區(qū)。例如 當(dāng)預(yù)設(shè)的調(diào)度策略類型有BVT和SEDF時(shí),系統(tǒng)會(huì)將CPU資源分成3個(gè)分區(qū),分別為第一調(diào) 度策略分區(qū)(調(diào)度策略類型為BVT)、第二調(diào)度策略分區(qū)(調(diào)度策略類型為SEDF)和空閑分 區(qū),其中第一調(diào)度策略分區(qū)和第二調(diào)度策略分區(qū)初始的資源數(shù)量均為1個(gè)CPU資源,其余的 CPU都放在空閑分區(qū)中。
步驟2 :創(chuàng)建虛擬機(jī),如圖2所示;當(dāng)系統(tǒng)創(chuàng)建客戶虛擬機(jī)8時(shí),調(diào)度決策模塊4會(huì) 讀取客戶虛擬機(jī)8的調(diào)度參數(shù),將客戶虛擬機(jī)8加入到相應(yīng)的分區(qū)。本步驟包含以下操作 步驟2. 1調(diào)度決策模塊讀取調(diào)度參數(shù);步驟2. 2將虛擬機(jī)加入到相應(yīng)的分區(qū)。
步驟2. 1調(diào)度決策模塊讀取調(diào)度參數(shù) 如圖2所示,當(dāng)客戶虛擬機(jī)8創(chuàng)建時(shí),系統(tǒng)會(huì)根據(jù)客戶虛擬機(jī)8應(yīng)用的類型在配置 文件中制定調(diào)度參數(shù),所謂的調(diào)度參數(shù)就是指客戶虛擬機(jī)8應(yīng)用所適合的調(diào)度策略,例如 實(shí)時(shí)應(yīng)用適合用BVT調(diào)度策略,那么調(diào)度參數(shù)就將被設(shè)置成"BVT";調(diào)度決策模塊4會(huì)主動(dòng) 讀取客戶虛擬機(jī)8的配置文件獲得調(diào)度參數(shù)。例如,如圖l所示,創(chuàng)建一個(gè)客戶虛擬機(jī)8,該 虛擬機(jī)是要作為一個(gè)Voip的應(yīng)用,在客戶虛擬機(jī)8的配置文件中將調(diào)度參數(shù)設(shè)置成"BVT", 調(diào)度決策模塊4會(huì)主動(dòng)讀取該虛擬機(jī)的配置文件獲得調(diào)度參數(shù)"BVT"。
步驟2. 2將虛擬機(jī)加入到相應(yīng)的分區(qū) 當(dāng)調(diào)度參數(shù)獲得后,調(diào)度決策模塊4通過(guò)調(diào)度參數(shù)查找相應(yīng)的分區(qū),當(dāng)相應(yīng)的分區(qū) 存在時(shí),即將客戶虛擬機(jī)8加入到該分區(qū)調(diào)度,例如當(dāng)BVT調(diào)度策略對(duì)應(yīng)的分區(qū)即第一調(diào)度策 略分區(qū)存在時(shí),如圖l所示,客戶虛擬機(jī)8將被加入到第一調(diào)度策略分區(qū)中;當(dāng)相應(yīng)的分區(qū)不 存在時(shí),CPU動(dòng)態(tài)分區(qū)模塊2為該調(diào)度策略類型新建一個(gè)分區(qū),并將該虛擬機(jī)加入到該分區(qū), 例如,當(dāng)BVT調(diào)度策略對(duì)應(yīng)的分區(qū)不存在時(shí),將會(huì)建立BVT調(diào)度策略對(duì)應(yīng)的分區(qū),并為其分配 最小資源即1個(gè)CPU資源,然后將客戶虛擬機(jī)8加入到BVT調(diào)度策略對(duì)應(yīng)的分區(qū)中。
步驟3虛擬機(jī)調(diào)度,如圖2所示;系統(tǒng)運(yùn)行時(shí),CPU狀態(tài)監(jiān)控模塊5,調(diào)度決策模塊 4、 CPU動(dòng)態(tài)分區(qū)模塊2各行其職對(duì)客戶虛擬機(jī)8進(jìn)行調(diào)度,該步驟包括以下操作步驟3. 1 虛擬機(jī)在各自分區(qū)內(nèi)調(diào)動(dòng);步驟3.2監(jiān)控各分區(qū)負(fù)載情況并動(dòng)態(tài)調(diào)整分區(qū)大小。
步驟3. 1虛擬機(jī)在各自分區(qū)內(nèi)調(diào)動(dòng); 在系統(tǒng)運(yùn)行時(shí),調(diào)度決策模塊4在各分區(qū)內(nèi)對(duì)各虛擬機(jī)進(jìn)行調(diào)度,各個(gè)分區(qū)采用 不同的調(diào)度策略,例如,在BVT調(diào)度策略對(duì)應(yīng)的分區(qū)內(nèi)的客戶虛擬機(jī),只能在該分區(qū)中采用 BVT調(diào)度策略進(jìn)行調(diào)度。 步驟3. 2監(jiān)控各分區(qū)負(fù)載情況并動(dòng)態(tài)調(diào)整分區(qū)大??; CPU狀態(tài)監(jiān)控模塊5對(duì)各分區(qū)的負(fù)載進(jìn)行監(jiān)控,當(dāng)有分區(qū)的負(fù)載過(guò)大時(shí),會(huì)激活 CPU動(dòng)態(tài)分區(qū)模塊2檢查空閑分區(qū),在空閑分區(qū)不為空的情況下,會(huì)將空閑分區(qū)中資源(默 認(rèn)每次分配1個(gè)CPU資源)分配給負(fù)載過(guò)大分區(qū),擴(kuò)大負(fù)載過(guò)大分區(qū)的資源,若空閑分區(qū)為 空時(shí),會(huì)獲取負(fù)載相對(duì)小的分區(qū)資源(默認(rèn)每次分出一個(gè)CPU資源)分配給負(fù)載過(guò)大的分 區(qū),擴(kuò)大負(fù)載過(guò)大分區(qū)的資源;當(dāng)有分區(qū)的負(fù)載過(guò)小時(shí),CPU動(dòng)態(tài)分區(qū)模塊2會(huì)將負(fù)載小的 分區(qū)資源回收到空閑分區(qū)(默認(rèn)每次回收一個(gè)CPU資源),縮小負(fù)載小的分區(qū)資源,在特殊 情況下,當(dāng)某一分區(qū)的負(fù)載為0X時(shí),則表明該分區(qū)沒(méi)有虛擬機(jī)調(diào)度,則CPU動(dòng)態(tài)分區(qū)模塊2 刪除該分區(qū),并將資源回收到空閑分區(qū)中。
權(quán)利要求
一種基于多核環(huán)境下的虛擬機(jī)調(diào)度方法,其特征在于,該方法在現(xiàn)有的虛擬機(jī)監(jiān)視器VMM中加入了調(diào)度初始化模塊、CPU狀態(tài)監(jiān)控模塊、調(diào)度決策模塊以及CPU動(dòng)態(tài)分區(qū)模塊,具體包含以下執(zhí)行步驟步驟1加電啟動(dòng)初始化;系統(tǒng)啟動(dòng)時(shí)調(diào)度初始化模塊加載,做好初始化工作,本步驟包含以下兩個(gè)操作步驟1.1枚舉CPU并讀取預(yù)設(shè)調(diào)度策略類型;在系統(tǒng)加電完成啟動(dòng)的時(shí)候,調(diào)度初始化模塊加載,并將系統(tǒng)中的所有CPU枚舉出來(lái),同時(shí)讀取系統(tǒng)中預(yù)設(shè)的調(diào)度策略類型;步驟1.2為系統(tǒng)進(jìn)行初始分區(qū);調(diào)度初始化模塊在獲得調(diào)度策略類型后,由CPU動(dòng)態(tài)分區(qū)模塊為每種調(diào)度策略類型分得資源最小值的分區(qū),同時(shí)建立空閑分區(qū)用以放置剩下的CPU資源,完成系統(tǒng)初始分區(qū);步驟2創(chuàng)建虛擬機(jī);當(dāng)系統(tǒng)創(chuàng)建虛擬機(jī)時(shí),調(diào)度決策模塊會(huì)讀取虛擬機(jī)的調(diào)度參數(shù),將虛擬機(jī)加入到相應(yīng)的分區(qū),本步驟包含以下兩個(gè)操作步驟2.1調(diào)度決策模塊讀取調(diào)度參數(shù);當(dāng)新創(chuàng)建虛擬機(jī)時(shí),系統(tǒng)會(huì)根據(jù)虛擬機(jī)應(yīng)用的類型在配置文件中制定調(diào)度參數(shù),調(diào)度決策模塊會(huì)主動(dòng)讀取虛擬機(jī)的配置文件獲得調(diào)度參數(shù);步驟2.2將虛擬機(jī)加入到相應(yīng)的分區(qū);當(dāng)調(diào)度參數(shù)獲得后,調(diào)度決策模塊通過(guò)調(diào)度參數(shù)查找相應(yīng)的分區(qū),當(dāng)相應(yīng)的分區(qū)存在時(shí),CPU動(dòng)態(tài)分區(qū)模塊直接將該虛擬機(jī)加入到相應(yīng)的分區(qū)調(diào)度,當(dāng)調(diào)度參數(shù)對(duì)應(yīng)的分區(qū)不存在時(shí),CPU動(dòng)態(tài)分區(qū)模塊從空閑分區(qū)中分出一個(gè)新的分區(qū)用作該調(diào)度策略類型分區(qū),并將該虛擬機(jī)加入調(diào)度;步驟3虛擬機(jī)調(diào)度;系統(tǒng)運(yùn)行時(shí),本步驟具體包括以下操作步驟3.1虛擬機(jī)在各自分區(qū)內(nèi)調(diào)動(dòng);運(yùn)行的虛擬機(jī)只能在指定的CPU分區(qū)中進(jìn)行調(diào)度,調(diào)度決策模塊根據(jù)各個(gè)分區(qū)的調(diào)度算法對(duì)各分區(qū)中的虛擬機(jī)進(jìn)行調(diào)度;步驟3.2監(jiān)控各分區(qū)負(fù)載情況并動(dòng)態(tài)調(diào)整分區(qū)大?。籆PU狀態(tài)監(jiān)控模塊監(jiān)視著各分區(qū)的CPU資源利用情況,當(dāng)某個(gè)分區(qū)的CPU負(fù)載過(guò)大時(shí),CPU狀態(tài)監(jiān)控模塊觸發(fā)CPU動(dòng)態(tài)分區(qū)模塊,CPU動(dòng)態(tài)分區(qū)模塊從空閑分區(qū)中分出CPU資源到負(fù)載過(guò)大的分區(qū),當(dāng)空閑分區(qū)為空時(shí),從負(fù)載較小的分區(qū)中分出CPU資源到負(fù)載過(guò)大的分區(qū)中,當(dāng)有分區(qū)的CPU負(fù)載過(guò)小時(shí),CPU動(dòng)態(tài)分區(qū)模塊會(huì)將負(fù)載小的分區(qū)資源回收到空閑分區(qū),縮小負(fù)載小的分區(qū)資源。
2. 根據(jù)權(quán)利要求1所述的一種基于多核環(huán)境下的虛擬機(jī)調(diào)度方法,其特征在于,步驟1 中所述的調(diào)度策略類型包括Credit調(diào)度算法、BVT調(diào)度算法和SEDF調(diào)度算法。
3. 根據(jù)權(quán)利要求1所述的一種基于多核環(huán)境下的虛擬機(jī)調(diào)度方法,其特征在于,步驟1 中所述的資源最小值,該值由管理員設(shè)定,默認(rèn)為l個(gè)CPU。
4. 根據(jù)權(quán)利要求1所述的一種基于多核環(huán)境下的虛擬機(jī)調(diào)度方法,其特征在于,步驟2 中所述的調(diào)度參數(shù)是指虛擬機(jī)應(yīng)用所適合的調(diào)度策略。
5. 根據(jù)權(quán)利要求1所述的一種基于多核環(huán)境下的虛擬機(jī)調(diào)度方法,其特征在于,步驟 3. 2中所述的調(diào)整分區(qū)的大小,默認(rèn)每次調(diào)整分區(qū)的大小為一個(gè)CPU資源,特殊情況下,當(dāng) 某一分區(qū)的負(fù)載為OX時(shí),則表明該分區(qū)沒(méi)有虛擬機(jī)調(diào)度,則CPU動(dòng)態(tài)分區(qū)模塊刪除該分 區(qū),并將資源回收到空閑分區(qū)中。
全文摘要
本發(fā)明提出了一種多核環(huán)境下的虛擬機(jī)調(diào)度方法,該方法是在系統(tǒng)啟動(dòng)時(shí)將CPU資源按照調(diào)度策略類型進(jìn)行分區(qū),并在系統(tǒng)運(yùn)行時(shí)實(shí)時(shí)監(jiān)控各分區(qū)的CPU負(fù)載情況,動(dòng)態(tài)調(diào)整分區(qū)CPU資源的大小。本發(fā)明中,使用相同調(diào)度策略的虛擬機(jī)在同一個(gè)分區(qū)中進(jìn)行調(diào)度,這樣提高了調(diào)度的效率,通過(guò)動(dòng)態(tài)調(diào)整分區(qū)CPU資源的大小達(dá)到資源負(fù)載均衡的目的,實(shí)現(xiàn)了資源的充分利用,減少了資源的浪費(fèi)。
文檔編號(hào)G06F9/455GK101706743SQ20091024137
公開(kāi)日2010年5月12日 申請(qǐng)日期2009年12月7日 優(yōu)先權(quán)日2009年12月7日
發(fā)明者張炯, 王素梅, 白躍斌, 陳賢欽, 龍翔 申請(qǐng)人:北京航空航天大學(xué)
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
贵阳市| 勐海县| 三门峡市| 三明市| 永城市| 东源县| 同江市| 忻城县| 万山特区| 望江县| 卓尼县| 镇平县| 万载县| 宁海县| 垫江县| 滁州市| 浙江省| 阿鲁科尔沁旗| 哈巴河县| 滦平县| 克山县| 桂阳县| 华阴市| 土默特左旗| 江孜县| 商河县| 永年县| 平山县| 湟源县| 沧源| 常德市| 高陵县| 乐陵市| 汤原县| 隆回县| 科技| 都江堰市| 通化县| 顺平县| 铜川市| 肃南|