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

虛擬化環(huán)境中動(dòng)態(tài)磁盤(pán)帶寬分配方法

文檔序號(hào):6428662閱讀:164來(lái)源:國(guó)知局
專利名稱:虛擬化環(huán)境中動(dòng)態(tài)磁盤(pán)帶寬分配方法
技術(shù)領(lǐng)域
本發(fā)明屬于XEN虛擬化平臺(tái)以及磁盤(pán)IO子系統(tǒng)領(lǐng)域,涉及一種對(duì)現(xiàn)有XEN磁盤(pán)IO 子系統(tǒng)的改進(jìn)方法,具體為一種虛擬化環(huán)境中動(dòng)態(tài)的磁盤(pán)帶寬分配方法,它綜合考慮IO服務(wù)請(qǐng)求的優(yōu)先級(jí)別和虛擬機(jī)的實(shí)際帶寬需求來(lái)動(dòng)態(tài)分配帶寬,為虛擬機(jī)提供磁盤(pán)帶寬資源的服務(wù)質(zhì)量保證,并提高磁盤(pán)帶寬的資源利用率。
背景技術(shù)
隨著計(jì)算機(jī)硬件技術(shù)的飛速發(fā)展,單個(gè)PC機(jī)或者服務(wù)器的服務(wù)處理能力也在成倍增長(zhǎng),通過(guò)虛擬化技術(shù),可以在一臺(tái)物理機(jī)上運(yùn)行Linux,Windows等不同的操作系統(tǒng),虛擬化技術(shù)能夠?qū)崿F(xiàn)對(duì)服務(wù)器的整合,將各種應(yīng)用服務(wù)聚合在一起,從而提高各種軟硬件資源的利用率,并能節(jié)約大量的IT成本,提高企業(yè)數(shù)據(jù)的安全性和管理效率。隨著虛擬化技術(shù)的快速發(fā)展,虛擬化技術(shù)作為一種資源的管理方案,已被廣泛地應(yīng)用到數(shù)據(jù)中心,分布式計(jì)算等環(huán)境中。隨著硬件技術(shù)的不斷進(jìn)步以及虛擬化技術(shù)的不斷發(fā)展,用戶會(huì)在一臺(tái)物理機(jī)上部署更多的虛擬機(jī),在其上運(yùn)行更多的應(yīng)用程序。同時(shí),這些應(yīng)用程序的類型也多種多樣,例如計(jì)算密集型,IO密集型,時(shí)延敏感型等。不同類型的應(yīng)用程序,它們對(duì)系統(tǒng)的資源需求也不相同計(jì)算密集型的程序需要更多的CPU資源,IO密集型需要更多的IO資源,時(shí)延敏感型需要優(yōu)先獲得請(qǐng)求資源。因此,每個(gè)虛擬機(jī)的IO帶寬需求各不相同。并且,虛擬機(jī)中運(yùn)行的不同服務(wù)程序,不同的服務(wù)程序其優(yōu)先級(jí)別也不同,對(duì)應(yīng)的IO服務(wù)權(quán)重也不同。另外, 各個(gè)虛擬機(jī)中的應(yīng)用程序類型是在不斷發(fā)生變化的。而目前的XEN虛擬平臺(tái)中,對(duì)于IO資源(包括磁盤(pán)帶寬資源)是一種完全公平的帶寬分配策略,即將總帶寬平均分配給虛擬機(jī)。 因此,我們無(wú)法根據(jù)應(yīng)用程序的IO服務(wù)權(quán)重和實(shí)際帶寬需求為虛擬機(jī)動(dòng)態(tài)地分配帶寬。這里的優(yōu)先級(jí)別和IO服務(wù)權(quán)重由管理員人為設(shè)定,設(shè)定的原則為虛擬機(jī)中應(yīng)用程序的優(yōu)先級(jí)別越高,該虛擬機(jī)對(duì)應(yīng)的IO服務(wù)權(quán)重也越大。如圖1所示,在XEN虛擬化平臺(tái)下,客戶虛擬機(jī)利用XEN提供的事件通道,授權(quán)表, IO設(shè)備環(huán)等機(jī)制,通過(guò)前端的虛擬塊設(shè)備驅(qū)動(dòng)(以下簡(jiǎn)稱VBD)與位于特權(quán)虛擬機(jī)的后端 VBD通信,而在特權(quán)虛擬機(jī)里,后端驅(qū)動(dòng)將客戶虛擬機(jī)的IO請(qǐng)求轉(zhuǎn)發(fā)給本地驅(qū)動(dòng),本地驅(qū)動(dòng)通過(guò)Linux中的IO調(diào)度程序,將IO請(qǐng)求遞交給實(shí)際的磁盤(pán)驅(qū)動(dòng)從而實(shí)現(xiàn)磁盤(pán)的IO請(qǐng)求服務(wù)。在該體系結(jié)構(gòu)下,所有客戶虛擬機(jī)的IO請(qǐng)求都是通過(guò)特權(quán)虛擬機(jī)中產(chǎn)生的一個(gè)后端驅(qū)動(dòng)產(chǎn)生守護(hù)進(jìn)程來(lái)轉(zhuǎn)發(fā)的,這些進(jìn)程與特權(quán)虛擬機(jī)中的普通IO進(jìn)程并無(wú)區(qū)別,因此客戶虛擬機(jī)獲得IO帶寬會(huì)受到特權(quán)虛擬機(jī)中其他進(jìn)程的影響。另外,在特權(quán)虛擬機(jī)中磁盤(pán)的調(diào)度算法為“CFQ(完全公平隊(duì)列)”算法,所有IO進(jìn)程公平分配磁盤(pán)帶寬,因此各個(gè)虛擬機(jī)獲得的磁盤(pán)帶寬基本相同。

發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種虛擬化環(huán)境中動(dòng)態(tài)磁盤(pán)帶寬分配方法,該方法為不同優(yōu)先級(jí)別的虛擬機(jī)提供多等級(jí)的磁盤(pán)服務(wù)質(zhì)量(Q0Q保證,通過(guò)指定各個(gè)虛擬機(jī)具體的服務(wù)優(yōu)先級(jí)別或權(quán)重,減少各個(gè)虛擬機(jī)磁盤(pán)IO服務(wù)的相互影響,提高虛擬機(jī)的隔離性。本發(fā)明提供的一種虛擬化環(huán)境中動(dòng)態(tài)磁盤(pán)帶寬分配方法包括下述步驟(1)初始化時(shí),在后端驅(qū)動(dòng)處為每個(gè)虛擬機(jī)的IO設(shè)備環(huán)分配一個(gè)令牌桶,并根據(jù)各個(gè)虛擬機(jī)的服務(wù)優(yōu)先級(jí)別和權(quán)重分配相應(yīng)的令牌數(shù),同時(shí)為所有的虛擬機(jī)配備一個(gè)公用令牌桶,其初始令牌數(shù)為零,設(shè)t為最近一次分配令牌的時(shí)間,記錄初始化分配時(shí)間t的值;(2)各個(gè)虛擬機(jī)的前端驅(qū)動(dòng)接收來(lái)自客戶虛擬機(jī)上層應(yīng)用程序的磁盤(pán)IO讀寫(xiě)請(qǐng)求;(3)前端驅(qū)動(dòng)將IO請(qǐng)求放置在各個(gè)虛擬機(jī)的IO設(shè)備環(huán)中,并通知后端驅(qū)動(dòng);(4)當(dāng)各個(gè)客戶虛擬機(jī)通過(guò)后端代理進(jìn)程(在特權(quán)虛擬機(jī)即后端中,每個(gè)客戶虛擬機(jī)都對(duì)應(yīng)一個(gè)進(jìn)程作為代理來(lái)請(qǐng)求磁盤(pán)IO服務(wù))從其IO設(shè)備環(huán)上讀取IO請(qǐng)求并向后端驅(qū)動(dòng)遞交IO請(qǐng)求時(shí),判斷該虛擬機(jī)對(duì)應(yīng)的令牌桶是否為空,若為空,則轉(zhuǎn)至步驟(5);否則根據(jù)IO請(qǐng)求的大小計(jì)算該IO請(qǐng)求所消耗的令牌數(shù),然后從該虛擬機(jī)的令牌桶中減去相應(yīng)的令牌數(shù),并將IO請(qǐng)求遞交給后端驅(qū)動(dòng)處理,轉(zhuǎn)至步驟(7);(5)判斷公用令牌桶是否為空,若為空,則轉(zhuǎn)至步驟(6),否則,根據(jù)IO請(qǐng)求的大小計(jì)算其消耗的令牌數(shù),從公用令牌桶減去相應(yīng)的令牌數(shù),并將IO請(qǐng)求遞交給后端驅(qū)動(dòng)處理,轉(zhuǎn)至步驟(7);(6)阻塞其IO請(qǐng)求,轉(zhuǎn)至步驟(9);(7)后端驅(qū)動(dòng)將IO請(qǐng)求遞交給本地驅(qū)動(dòng),本地磁盤(pán)驅(qū)動(dòng)訪問(wèn)真實(shí)的磁盤(pán)設(shè)備,IO 請(qǐng)求得到服務(wù);(8)后端驅(qū)動(dòng)通知前端驅(qū)動(dòng)IO請(qǐng)求服務(wù)完成,前端驅(qū)動(dòng)向客戶虛擬機(jī)報(bào)告IO操作完成;(9)取當(dāng)前時(shí)間t’,若t’ -t > At時(shí)間,則將各個(gè)令牌桶中剩余的令牌添加到共用令牌桶中,同時(shí)重新分配令牌,根據(jù)各個(gè)令牌桶中剩余的令牌數(shù),相應(yīng)地減少其本次所分配的令牌數(shù),更新t = t’,轉(zhuǎn)至步驟(10);其中,At為兩次相鄰的令牌分配之間的時(shí)間間隔;(10)判斷是否退出系統(tǒng),若是,則轉(zhuǎn)至步驟(11),否則轉(zhuǎn)至步驟G),繼續(xù)服務(wù)虛擬機(jī)的IO請(qǐng)求;(11)流程結(jié)束。本發(fā)明針對(duì)目前XEN虛擬化平臺(tái)完全公平的磁盤(pán)帶寬分配機(jī)制的缺陷,提出利用動(dòng)態(tài)磁盤(pán)的帶寬分配方法,來(lái)盡可能地滿足各個(gè)虛擬機(jī)對(duì)磁盤(pán)帶寬的需求,同時(shí)為不同優(yōu)先級(jí)別的虛擬機(jī)提供多等級(jí)的磁盤(pán)帶寬服務(wù)質(zhì)量(QM)保證。不同于XEN中的完全公平的磁盤(pán)帶寬分配方法,本發(fā)明將分配給虛擬機(jī)的磁盤(pán)帶寬與運(yùn)行在其上的服務(wù)程序的優(yōu)先級(jí)別相對(duì)應(yīng),在磁盤(pán)帶寬不足的情況下,按比例的將磁盤(pán)帶寬分配給虛擬機(jī)。同時(shí)當(dāng)各個(gè)虛擬機(jī)的應(yīng)用程序類型發(fā)生變化時(shí),根據(jù)各個(gè)虛擬機(jī)的實(shí)際帶寬需求,動(dòng)態(tài)地調(diào)整帶寬分配的比例??傊C合各個(gè)虛擬機(jī)的服務(wù)優(yōu)先級(jí)別以及實(shí)際的帶寬需求,實(shí)現(xiàn)磁盤(pán)帶寬在各個(gè)虛擬機(jī)之間的動(dòng)態(tài)按需分配,為虛擬機(jī)的磁盤(pán)讀寫(xiě)提供服務(wù)質(zhì)量(QM)保證,同時(shí)提高整個(gè)虛擬環(huán)境的磁盤(pán)帶寬利用率。
本發(fā)明主要針對(duì)XEN現(xiàn)有的磁盤(pán)帶寬分配方法的缺陷,通過(guò)改進(jìn)已有的令牌桶算法(令牌桶算法是網(wǎng)絡(luò)流量整形和速率限制中最常使用的一種算法)來(lái)為客戶虛擬機(jī)中的應(yīng)用程序提供磁盤(pán)帶寬分配技術(shù),本發(fā)明根據(jù)客戶虛擬機(jī)的服務(wù)優(yōu)先級(jí)別和實(shí)際的帶寬需求,為其分配一個(gè)令牌桶和對(duì)應(yīng)數(shù)量的令牌,通過(guò)動(dòng)態(tài)調(diào)整各個(gè)虛擬機(jī)所分配的令牌數(shù),完成磁盤(pán)帶寬在各個(gè)虛擬機(jī)之間的動(dòng)態(tài)調(diào)整,且這種動(dòng)態(tài)調(diào)整根據(jù)虛擬機(jī)不斷變化的實(shí)際需求自發(fā)完成的。另外本發(fā)明增加了一個(gè)公用令牌桶,所有虛擬機(jī)可以共享這部分帶寬,從而更加靈活地調(diào)整帶寬在各個(gè)虛擬機(jī)之間的分配。


圖1為XEN平臺(tái)下IO體系結(jié)構(gòu);圖2為引入本發(fā)明后XEN的前后端驅(qū)動(dòng)模型;圖3為本發(fā)明的體系結(jié)構(gòu);圖4為本發(fā)明方法的流程圖;圖5為動(dòng)態(tài)分配令牌策略的流程圖。
具體實(shí)施例方式本發(fā)明的主要原理是在現(xiàn)有的XEN前后端驅(qū)動(dòng)模型(如圖2所示)的基礎(chǔ)上,在特權(quán)虛擬機(jī)即后端,為每個(gè)客戶虛擬機(jī)分配一個(gè)令牌桶,每隔一段時(shí)間,根據(jù)所有客戶虛擬機(jī)的服務(wù)的優(yōu)先級(jí)別以及帶寬需求進(jìn)行綜合考慮,為每個(gè)客戶虛擬機(jī)的令牌桶重新分配令牌。當(dāng)客戶虛擬機(jī)請(qǐng)求IO服務(wù)時(shí),判斷其令牌桶中是否剩余令牌,若有,則從令牌桶中扣除與IO請(qǐng)求大小相應(yīng)的令牌數(shù),接受其IO請(qǐng)求;否則阻塞其IO請(qǐng)求。另外為了實(shí)現(xiàn)帶寬的動(dòng)態(tài)分配,特增加一個(gè)公用令牌桶。若有客戶虛擬機(jī)出現(xiàn)帶寬剩余的情況,就將其剩余的令牌存放在公用令牌桶。同時(shí)公用令牌桶中的令牌可以供所有客戶虛擬機(jī)使用,這樣可以按照各個(gè)客戶虛擬機(jī)的實(shí)際帶寬需求,動(dòng)態(tài)地調(diào)整各個(gè)客戶虛擬機(jī)所分得的磁盤(pán)帶寬,實(shí)現(xiàn)磁盤(pán)帶寬在各個(gè)客戶虛擬機(jī)之間的共享。該發(fā)明的關(guān)鍵技術(shù)主要有兩點(diǎn)一是管理客戶虛擬機(jī)的IO設(shè)備環(huán),以及對(duì)IO請(qǐng)求的調(diào)度策略;二是根據(jù)客戶虛擬機(jī)不斷變化的帶寬需求來(lái)分配和動(dòng)態(tài)調(diào)整每個(gè)虛擬機(jī)的令牌數(shù)的策略。下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明做進(jìn)一步說(shuō)明。如圖2所示,本發(fā)明的磁盤(pán)帶寬分配方法,通過(guò)IO控制作用于前端驅(qū)動(dòng)模塊和后端驅(qū)動(dòng)模塊之間,它負(fù)責(zé)管理所有客戶虛擬機(jī)的IO設(shè)備環(huán),并確定所有IO請(qǐng)求的服務(wù)先后順序,向后端驅(qū)動(dòng)遞交IO請(qǐng)求??蛻籼摂M機(jī)的IO請(qǐng)求服務(wù)的先后順序以及其調(diào)度策略(1)在系統(tǒng)磁盤(pán)帶寬充足的條件下,對(duì)于所有客戶虛擬機(jī)的IO請(qǐng)求服務(wù)按照客戶虛擬機(jī)IO到來(lái)的先后順序進(jìn)行服務(wù)。(2)當(dāng)磁盤(pán)帶寬不足時(shí),優(yōu)先服務(wù)優(yōu)先級(jí)別最高的客戶虛擬機(jī),也即是令牌桶中剩余令牌數(shù)最多的客戶虛擬機(jī),即遍歷所有客戶虛擬機(jī)對(duì)應(yīng)的令牌桶,取其中令牌數(shù)最大的客戶虛擬機(jī)。(3)對(duì)于令牌桶為空的客戶虛擬機(jī),只有在非空令牌桶所對(duì)應(yīng)的客戶虛擬機(jī)沒(méi)有 IO請(qǐng)求條件下,才可以從公用令牌桶中獲取令牌服務(wù)其IO請(qǐng)求。
5
(4)若公用令牌桶也為空,則阻塞令牌桶為空的虛擬機(jī)的IO請(qǐng)求。通過(guò)上述的IO 調(diào)度策略,在優(yōu)先滿足優(yōu)先界別較高虛擬機(jī)的IO服務(wù)請(qǐng)求基礎(chǔ)上,當(dāng)出現(xiàn)優(yōu)先級(jí)別較高的虛擬機(jī)磁盤(pán)帶寬剩余的情況時(shí),通過(guò)公用令牌桶的方式使其他虛擬機(jī)更大獲得更多的磁盤(pán)帶寬。圖4中給出了本發(fā)明方法的具體流程圖,詳細(xì)說(shuō)明如下(1)初始化時(shí),在后端驅(qū)動(dòng)處為每個(gè)虛擬機(jī)的IO設(shè)備環(huán)分配一個(gè)令牌桶,并根據(jù)各個(gè)虛擬機(jī)的服務(wù)優(yōu)先級(jí)別和權(quán)重分配相應(yīng)的令牌數(shù),同時(shí)為所有的虛擬機(jī)配備一個(gè)公用令牌桶,其初始令牌數(shù)為零,設(shè)t為最近一次分配令牌的時(shí)間,記錄初始化分配時(shí)間t的值; (這里的令牌桶和令牌的概念與網(wǎng)絡(luò)流量整形和速率限制中使用的令牌桶算法中的令牌桶和令牌的概念類似,主要區(qū)別為本方法作用于磁盤(pán)IO請(qǐng)求,而后者作用于網(wǎng)絡(luò)IO數(shù)據(jù)包。)假設(shè)系統(tǒng)的總帶寬為50MB/S,IO請(qǐng)求(每個(gè)IO請(qǐng)求的數(shù)據(jù)包括許多個(gè)扇區(qū)sector)中一個(gè)扇區(qū)大小為512Byte的數(shù)據(jù)消耗一個(gè)令牌,那么設(shè)定總令牌數(shù)為 3,000, 000,每隔30s重新為虛擬機(jī)分配一次令牌。運(yùn)行三個(gè)虛擬機(jī),且管理員為三個(gè)虛擬機(jī)設(shè)定的服務(wù)優(yōu)先級(jí)別或權(quán)重為5 3 2,那么在初始化階段三個(gè)虛擬機(jī)分配的令牌數(shù)依次為 1500000,900000,200000。(2)各個(gè)虛擬機(jī)的前端驅(qū)動(dòng)接收來(lái)自客戶虛擬機(jī)上層應(yīng)用程序的磁盤(pán)IO讀寫(xiě)請(qǐng)求;(3)前端驅(qū)動(dòng)將IO請(qǐng)求放置在各個(gè)虛擬機(jī)的IO設(shè)備環(huán)中,如圖2所示,并通知后端驅(qū)動(dòng);(4)當(dāng)各個(gè)客戶虛擬機(jī)通過(guò)后端代理進(jìn)程(在特權(quán)虛擬機(jī)中,每個(gè)客戶虛擬機(jī)都有一個(gè)后端代理進(jìn)程為其轉(zhuǎn)發(fā)IO請(qǐng)求)從其IO設(shè)備環(huán)上讀取IO請(qǐng)求向后端驅(qū)動(dòng)遞交IO 請(qǐng)求時(shí),判斷該虛擬機(jī)對(duì)應(yīng)的令牌桶是否為空,若為空,則轉(zhuǎn)至步驟(5);否則根據(jù)IO請(qǐng)求的大小(其對(duì)應(yīng)的磁盤(pán)扇區(qū)數(shù))計(jì)算該IO請(qǐng)求所消耗的令牌數(shù)(每個(gè)扇區(qū)對(duì)應(yīng)一個(gè)令牌), 然后從該虛擬機(jī)的令牌桶中減去相應(yīng)的令牌數(shù),并將IO請(qǐng)求遞交給后端驅(qū)動(dòng)處理,轉(zhuǎn)至步驟⑵;(5)判斷公用令牌桶是否為空,若為空,則轉(zhuǎn)至步驟(6),否則,根據(jù)IO請(qǐng)求的大小計(jì)算其消耗的令牌數(shù),從公用令牌桶減去相應(yīng)的令牌數(shù),并將IO請(qǐng)求遞交給后端驅(qū)動(dòng)處理,轉(zhuǎn)至步驟(7);(6)阻塞其IO請(qǐng)求,轉(zhuǎn)至步驟(9);(7)后端驅(qū)動(dòng)將IO請(qǐng)求遞交給本地驅(qū)動(dòng),本地磁盤(pán)驅(qū)動(dòng)訪問(wèn)真實(shí)的磁盤(pán)設(shè)備,IO 請(qǐng)求得到服務(wù);(8)后端設(shè)備驅(qū)動(dòng)通知前端數(shù)據(jù)已經(jīng)準(zhǔn)備就緒,前端向客戶虛擬機(jī)報(bào)告IO操作完成;(9)取當(dāng)前時(shí)間t’,若t’ -t > At時(shí)間,則將各個(gè)令牌桶中剩余的令牌添加到共用令牌桶中,同時(shí)重新分配令牌,根據(jù)各個(gè)令牌桶中剩余的令牌數(shù),相應(yīng)地減少其本次所分配的令牌數(shù),更新t = t’,轉(zhuǎn)至步驟(10);該步驟根據(jù)各個(gè)虛擬機(jī)之前的令牌使用數(shù)目,來(lái)反應(yīng)虛擬機(jī)實(shí)際對(duì)磁盤(pán)帶寬的需求程度,并重新分配令牌,實(shí)現(xiàn)磁盤(pán)帶寬在各個(gè)虛擬機(jī)之間的按需分配。Δ t的選取和重分配令牌策略將會(huì)在下文詳細(xì)闡述。
(10)判斷是否退出系統(tǒng),若是,則轉(zhuǎn)至步驟(11)否則轉(zhuǎn)至步驟,繼續(xù)服務(wù)虛擬機(jī)的IO請(qǐng)求;(11)流程結(jié)束。Δ t為重新分配令牌的時(shí)間間隔(即兩次相鄰的令牌分配之間的時(shí)間間隔) At時(shí)間的選取與初始分配的總令牌數(shù)以及系統(tǒng)的總帶寬有關(guān),一般情況下選取的范圍為 30s-60s。當(dāng)系統(tǒng)磁盤(pán)總帶寬和At時(shí)間的選取確定后,總令牌數(shù)的計(jì)算方法如下假定系統(tǒng)磁盤(pán)總帶寬為60MB/s, At = 30s,那么總令牌數(shù)為60*106*30/512 = 3. 5*106。Δ t時(shí)間后會(huì)為各個(gè)虛擬機(jī)重新分配令牌,如圖5所示,為每個(gè)虛擬機(jī)重新分令牌時(shí),按照下述過(guò)程進(jìn)行(1)判斷該虛擬機(jī)在At時(shí)間內(nèi)上次分配的令牌是否使用完,若未使用完,則將剩余的令牌數(shù)m填充到公用令牌桶中;此情況說(shuō)明該虛擬機(jī)的實(shí)際帶寬需求小于所分配的帶寬,應(yīng)該在下個(gè)時(shí)間間隔內(nèi)減少其令牌分配數(shù)目,減少的數(shù)目為m,同時(shí)公用令牌桶中增加的令牌數(shù)為m。否則,轉(zhuǎn)至過(guò)程O(píng))。(2)判斷該虛擬機(jī)使用完令牌的時(shí)間T(上次分配令牌的時(shí)間減去令牌使用完的時(shí)間)與At的比值即T/At是否小于r(r表示該虛擬機(jī)使用完令牌的時(shí)間與At的接近程度,r越接近于1說(shuō)明虛擬機(jī)使用令牌的速度與它的令牌分配速度越接近,也即分配的令牌剛好能夠滿足虛擬機(jī)的需求,這里r取值范圍為0. 8至1,優(yōu)選范圍為0. 9至1,小于r說(shuō)明該虛擬機(jī)使用令牌速度過(guò)快,不能滿足該虛擬機(jī)的磁盤(pán)帶寬需求)。若大于等于,則維持上次所分配的令牌數(shù);此情況說(shuō)明該虛擬機(jī)的實(shí)際帶寬需求基本等于所分配的帶寬,可以滿足帶寬需求。否則,轉(zhuǎn)至過(guò)程(3)。(3)判斷公用令牌桶令牌數(shù)是否大于0,若大于,則從公用令牌桶中取出c/n個(gè)令牌分配給該虛擬機(jī),即公用令牌桶令牌數(shù)減少c/n,該虛擬機(jī)的令牌數(shù)增加c/n。這里的c 為當(dāng)前公用令牌桶中的令牌數(shù),η系統(tǒng)中運(yùn)行的虛擬機(jī)個(gè)數(shù)。否則,轉(zhuǎn)至過(guò)程0)。(4)維持該虛擬機(jī)上次所分配的令牌數(shù)不變。下面結(jié)合一個(gè)具體實(shí)例來(lái)進(jìn)行說(shuō)明如圖3所示在XEN虛擬化平臺(tái)中運(yùn)行3個(gè)客戶虛擬機(jī)虛擬機(jī)1、虛擬機(jī)2和虛擬機(jī)3,這3個(gè)虛擬機(jī)均需要對(duì)磁盤(pán)進(jìn)行讀寫(xiě)操作。在XEN虛擬化平臺(tái)中,所有客戶虛擬機(jī)的磁盤(pán)讀寫(xiě)操作都必須經(jīng)過(guò)特權(quán)虛擬機(jī),特權(quán)虛擬機(jī)擁護(hù)實(shí)際的磁盤(pán)操作功能。各個(gè)客戶虛擬機(jī)之間無(wú)法感知彼此的存在,因此各自的IO讀寫(xiě)操作時(shí)相互獨(dú)立的。在后端為各個(gè)虛擬機(jī)分配一個(gè)令牌桶,并根據(jù)各個(gè)虛擬機(jī)中應(yīng)用程序的服務(wù)優(yōu)先級(jí)別以及實(shí)際的帶寬需求相應(yīng)的令牌數(shù),同時(shí)為所有的虛擬機(jī)配備一個(gè)公用令牌桶,其初始令牌數(shù)為零。這里假設(shè)系統(tǒng)的總帶寬為50MB/S,IO請(qǐng)求(每個(gè)IO請(qǐng)求的數(shù)據(jù)包括許多個(gè)扇區(qū)sector)中一個(gè)扇區(qū)大小為512Byte的數(shù)據(jù)消耗一個(gè)令牌,那么設(shè)定總令牌數(shù)為3,000, 000,每隔30s重新為虛擬機(jī)分配一次令牌。管理員為三個(gè)虛擬機(jī)設(shè)定的服務(wù)優(yōu)先級(jí)別或權(quán)重為5 2 3,那么在初始化階段三個(gè)虛擬機(jī)分配的令牌數(shù)依次為1500000,600000,900000。當(dāng)磁盤(pán)的實(shí)際物理帶寬能夠滿足所有客戶虛擬機(jī)的帶寬需求時(shí),對(duì)于所有虛擬機(jī)的IO請(qǐng)求服務(wù)按其到達(dá)的優(yōu)先順序進(jìn)行服務(wù)。IO控制模塊并不對(duì)虛擬機(jī)的IO請(qǐng)求進(jìn)行控制。當(dāng)客戶虛擬機(jī)的磁盤(pán)帶寬需求增大時(shí),磁盤(pán)物理帶寬顯然無(wú)法滿足所有虛擬機(jī)的帶寬需求,此時(shí)IO控制模塊將發(fā)揮作用。IO控制模塊在對(duì)虛擬機(jī)IO請(qǐng)求進(jìn)行調(diào)度時(shí),首先選取令牌數(shù)最大的虛擬機(jī)的IO請(qǐng)求,即虛擬機(jī)1的IO請(qǐng)求,并將其遞交給后端驅(qū)動(dòng)。同時(shí),從虛擬機(jī)1令牌桶中扣除該IO請(qǐng)求對(duì)應(yīng)的令牌數(shù)。對(duì)于虛擬機(jī)2來(lái)說(shuō),只有在虛擬機(jī) 1和虛擬機(jī)3無(wú)IO請(qǐng)求且公用令牌桶令牌數(shù)不為零的情況下,才能從公用令牌桶中獲取令牌,得到磁盤(pán)讀寫(xiě)服務(wù)。若公用令牌桶為空,則IO控制模塊阻塞其IO請(qǐng)求。At時(shí)間后(這里假定為30s),將各個(gè)令牌桶中剩余的令牌添加到共用令牌桶中, 同時(shí)重新分配令牌,根據(jù)各個(gè)令牌桶中剩余的令牌數(shù),相應(yīng)地減少其本次所分配的令牌數(shù)。 本例中虛擬機(jī)1剩余的令牌數(shù)最多,而虛擬機(jī)2帶寬顯然無(wú)法滿足其需求,因此在分配令牌時(shí)就應(yīng)該減少虛擬機(jī)1的令牌數(shù),而增加虛擬機(jī)2的令牌數(shù)。通過(guò)這種動(dòng)態(tài)調(diào)整和引入公用令牌桶的方法就可以實(shí)現(xiàn)帶寬在各個(gè)虛擬機(jī)之間的動(dòng)態(tài)共享,提高磁盤(pán)帶寬利用率??傊景l(fā)明方法能夠根據(jù)虛擬機(jī)應(yīng)用程序的優(yōu)先級(jí)別和實(shí)際帶寬需求來(lái)動(dòng)態(tài)分配帶寬,為虛擬機(jī)提供磁盤(pán)帶寬資源的服務(wù)質(zhì)量保證,并提高磁盤(pán)帶寬的資源利用率。既能夠?yàn)樘摂M機(jī)提供固定比例的帶寬分配機(jī)制,同時(shí)在虛擬機(jī)中的應(yīng)用程序和實(shí)際帶寬需求發(fā)生變化時(shí),又能夠動(dòng)態(tài)調(diào)整它們之間的分配比例,真正地完成磁盤(pán)帶寬在各個(gè)虛擬機(jī)之間的動(dòng)態(tài)分配。
權(quán)利要求
1.一種虛擬化環(huán)境中動(dòng)態(tài)磁盤(pán)帶寬分配方法,包括下述步驟(1)初始化時(shí),在后端驅(qū)動(dòng)處為每個(gè)虛擬機(jī)的IO設(shè)備環(huán)分配一個(gè)令牌桶,并根據(jù)各個(gè)虛擬機(jī)的服務(wù)優(yōu)先級(jí)別和權(quán)重分配相應(yīng)的令牌數(shù),同時(shí)為所有的虛擬機(jī)配備一個(gè)公用令牌桶,其初始令牌數(shù)為零,設(shè)t為最近一次分配令牌的時(shí)間,記錄初始化分配時(shí)間t的值;(2)各個(gè)虛擬機(jī)的前端驅(qū)動(dòng)接收來(lái)自客戶虛擬機(jī)上層應(yīng)用程序的磁盤(pán)IO讀寫(xiě)請(qǐng)求;(3)前端驅(qū)動(dòng)將IO請(qǐng)求放置在各個(gè)虛擬機(jī)的IO設(shè)備環(huán)中,并通知后端驅(qū)動(dòng);(4)當(dāng)各個(gè)客戶虛擬機(jī)通過(guò)后端代理進(jìn)程從其IO設(shè)備環(huán)上讀取IO請(qǐng)求并向后端驅(qū)動(dòng)遞交IO請(qǐng)求時(shí),判斷該虛擬機(jī)對(duì)應(yīng)的令牌桶是否為空,若為空,則轉(zhuǎn)至步驟(5);否則根據(jù) IO請(qǐng)求的大小計(jì)算該IO請(qǐng)求所消耗的令牌數(shù),然后從該虛擬機(jī)的令牌桶中減去相應(yīng)的令牌數(shù),并將IO請(qǐng)求遞交給后端驅(qū)動(dòng)處理,轉(zhuǎn)至步驟(7);(5)判斷公用令牌桶是否為空,若為空,則轉(zhuǎn)至步驟(6),否則,根據(jù)IO請(qǐng)求的大小計(jì)算其消耗的令牌數(shù),從公用令牌桶減去相應(yīng)的令牌數(shù),并將IO請(qǐng)求遞交給后端驅(qū)動(dòng)處理,轉(zhuǎn)至步驟(7);(6)阻塞其IO請(qǐng)求,轉(zhuǎn)至步驟(9);(7)后端驅(qū)動(dòng)將IO請(qǐng)求遞交給本地驅(qū)動(dòng),本地磁盤(pán)驅(qū)動(dòng)訪問(wèn)真實(shí)的磁盤(pán)設(shè)備,IO請(qǐng)求得到服務(wù);(8)后端驅(qū)動(dòng)通知前端驅(qū)動(dòng)IO請(qǐng)求服務(wù)完成,前端驅(qū)動(dòng)向客戶虛擬機(jī)報(bào)告IO操作完成;(9)取當(dāng)前時(shí)間t’,若t’-t > At時(shí)間,則將各個(gè)令牌桶中剩余的令牌添加到共用令牌桶中,同時(shí)重新分配令牌,根據(jù)各個(gè)令牌桶中剩余的令牌數(shù),相應(yīng)地減少其本次所分配的令牌數(shù),更新t = t’,轉(zhuǎn)至步驟(10);其中,At為兩次相鄰的令牌分配之間的時(shí)間間隔,一般情況下選取的范圍為30s-60s ;(10)判斷是否退出系統(tǒng),若是,則轉(zhuǎn)至步驟(11),否則轉(zhuǎn)至步驟G),繼續(xù)服務(wù)虛擬機(jī)的IO請(qǐng)求;(11)流程結(jié)束。
2.根據(jù)權(quán)利要求1所述的一種虛擬化環(huán)境中動(dòng)態(tài)磁盤(pán)帶寬分配方法,其特征在于,步驟(9)中,按照下述過(guò)程重新分配令牌(1)判斷該虛擬機(jī)在At時(shí)間內(nèi)上次分配的令牌是否使用完,若未使用完,則將剩余的令牌數(shù)m填充到公用令牌桶中,否則,轉(zhuǎn)至步驟O);(2)判斷該虛擬機(jī)使用完令牌的時(shí)間T與At的比值即TMt是否小于0.9,若大于, 則維持上次所分配的令牌數(shù);否則,轉(zhuǎn)至步驟(3);(3)判斷公用令牌桶令牌數(shù)是否大于0,若大于,則從公用令牌桶取出c/n個(gè)令牌分配給該虛擬機(jī),c為當(dāng)前公用令牌桶中的令牌數(shù),η系統(tǒng)中運(yùn)行的虛擬機(jī)個(gè)數(shù),否則,轉(zhuǎn)至步驟 ⑷;維持該虛擬機(jī)上次所分配的令牌數(shù)不變。
全文摘要
本發(fā)明公開(kāi)了一種虛擬化環(huán)境中動(dòng)態(tài)磁盤(pán)帶寬分配方法。目前XEN中的磁盤(pán)資源管理方法是一種完全公平的帶寬分配方法,考慮各個(gè)虛擬機(jī)的應(yīng)用程序類型以及實(shí)際的帶寬需求,并不能充分利用有限的磁盤(pán)帶寬資源;同時(shí),在特權(quán)虛擬機(jī)中,各個(gè)虛擬機(jī)對(duì)應(yīng)于一個(gè)后端IO進(jìn)程,這樣造成虛擬機(jī)的帶寬后受到特權(quán)虛擬機(jī)中其他進(jìn)程的影響。本發(fā)明能夠充分利用磁盤(pán)的物理帶寬,能夠按照各個(gè)虛擬機(jī)的實(shí)際帶寬需求為其分配相應(yīng)的帶寬。同時(shí)在虛擬機(jī)的帶寬需求發(fā)生變化時(shí),通過(guò)動(dòng)態(tài)的令牌分配方法也可以動(dòng)態(tài)地調(diào)整其所分配的帶寬,從而實(shí)現(xiàn)了真正的磁盤(pán)帶寬的動(dòng)態(tài)按需分配,更好地為虛擬機(jī)提供磁盤(pán)帶寬服務(wù)保證。
文檔編號(hào)G06F3/06GK102270104SQ20111019907
公開(kāi)日2011年12月7日 申請(qǐng)日期2011年7月14日 優(yōu)先權(quán)日2011年7月14日
發(fā)明者岑文峰, 曹文治, 曹杰, 柯西江, 王希斌, 謝夏, 趙璐, 金海 申請(qǐng)人:華中科技大學(xué)
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
锦州市| 泸州市| 商都县| 玛多县| 长泰县| 芦溪县| 临邑县| 常德市| 封丘县| 财经| 蒙山县| 新巴尔虎左旗| 武陟县| 文昌市| 平定县| 景东| 正宁县| 柏乡县| 哈密市| 奉节县| 岳阳县| 宝清县| 定兴县| 水城县| 新闻| 弋阳县| 栾城县| 白银市| 铜川市| 西林县| 怀来县| 盘山县| 嫩江县| 垫江县| 开封市| 德州市| 中西区| 上杭县| 敦化市| 蒲江县| 额敏县|