專(zhuān)利名稱:虛擬化平臺(tái)下i/o通道的調(diào)整方法和調(diào)整裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及虛擬化技術(shù)領(lǐng)域,尤其涉及虛擬化平臺(tái)下i/o通道的調(diào)整方法和調(diào)整
裝直。
背景技術(shù):
虛擬化是將計(jì)算機(jī)物理資源如服務(wù)器、網(wǎng)絡(luò)、內(nèi)存及存儲(chǔ)等予以抽象、轉(zhuǎn)換后呈現(xiàn)出來(lái),使用戶可以比原本的組態(tài)更好的方式來(lái)應(yīng)用這些資源。這些資源的新虛擬部分是不受現(xiàn)有資源的架設(shè)方式,地域或物理組態(tài)所限制。物理存在的宿主機(jī)HOST運(yùn)行多個(gè)虛擬機(jī)(Virtual Machine,簡(jiǎn)稱為VM),HOST管理所有的物理硬件設(shè)備及資源,將一個(gè)獨(dú)占設(shè)備虛擬成多個(gè)虛擬設(shè)備,供多個(gè)用戶線程同時(shí)使用,每個(gè)用戶能夠看到的設(shè)備就是虛擬設(shè)備,物理硬件設(shè)備對(duì)用戶透明。虛擬化環(huán)境下,VM并不能直接訪問(wèn)硬件設(shè)備,HOST為VM提供連通硬件設(shè)備的數(shù)據(jù)通路,即I/O通道。本發(fā)明中,通道包括VM的前端設(shè)備Front Device和VM的后端設(shè)備Back Device之間的數(shù)據(jù)通道、以及VM的后端設(shè)備和HOST的本地設(shè)備N(xiāo)ative Device之間的數(shù)據(jù)通道;其中,VM的前端設(shè)備是虛擬機(jī)中看到的設(shè)備,實(shí)際是HOST為VM模擬的設(shè)備;VM的后端設(shè)備是HOST操作系統(tǒng)中與VM的前端設(shè)備相對(duì)接的軟件模擬設(shè)備;H0ST的本地設(shè)備N(xiāo)ative Device是HOST的物理設(shè)備。圖1描述了現(xiàn)有技術(shù)中一種虛擬化平臺(tái)下簡(jiǎn)單多1/0通道技術(shù),圖1中以兩個(gè)虛擬機(jī)VMl和VM2為例,VM的前端設(shè)備和后端設(shè)備之間有多個(gè)1/0通道(圖1中以兩個(gè)1/0通道為例),數(shù)據(jù)處理模塊是VM的前端設(shè)備和后端設(shè)備之間的橋梁,用于數(shù)據(jù)拷貝、數(shù)據(jù)過(guò)濾或是其他數(shù)據(jù)處理業(yè)務(wù),包括多個(gè)工作線程(圖1中以兩個(gè)工作線程為例),工作線程的個(gè)數(shù)和VM的前端設(shè)備和后端設(shè)備之間1/0通道的個(gè)數(shù)相同,且其中每個(gè)1/0通道對(duì)應(yīng)一個(gè)工作線程,VM的后端設(shè)備與網(wǎng)橋Bridge之間以及網(wǎng)橋Bridge與本地設(shè)備N(xiāo)ative Device之間是單通道,VM的后端設(shè)備通過(guò)該單通道實(shí)現(xiàn)與本地設(shè)備N(xiāo)ative Device之間的數(shù)據(jù)傳輸。發(fā)明人發(fā)現(xiàn)上述現(xiàn)有技術(shù)至少存在如下技術(shù)問(wèn)題:VM的前端設(shè)備和后端設(shè)備之間的I/o通道個(gè)數(shù)是在創(chuàng)建VM的時(shí)候確定,VM整個(gè)生命周期中該1/0通道個(gè)數(shù)不能改變,因此VM的前端設(shè)備和后端設(shè)備之間的1/0通道所占用的通道資源也不能改變,當(dāng)VM的前端設(shè)備和后端設(shè)備之間的1/0吞吐量發(fā)生變化時(shí),無(wú)法調(diào)整1/0通道資源,在1/0吞吐量下降時(shí),無(wú)法釋放空閑的1/0通道資源,造成1/0通道資源浪費(fèi);在1/0吞吐量增加時(shí),無(wú)法增加1/0通道資源,1/0通道數(shù)據(jù)傳輸能力無(wú)法提高,系統(tǒng)性能下降。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供虛擬化平臺(tái)下1/0通道的調(diào)整方法和HOST調(diào)整裝置,以實(shí)現(xiàn)動(dòng)態(tài)地調(diào)整多個(gè)VM的前端設(shè)備和后端設(shè)備之間1/0通道資源的分配,從而提高系統(tǒng)性能。第一方面,本發(fā)明提供了一種虛擬化平臺(tái)下1/0通道的調(diào)整方法,包括:
宿主機(jī)HOST統(tǒng)計(jì)運(yùn)行在所述HOST上的多個(gè)虛擬機(jī)VM當(dāng)前時(shí)刻的平均I/O吞吐量;在當(dāng)前時(shí)刻的平均I/O吞吐量大于第一閾值時(shí),所述HOST在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間增加用于處理VM的工作線程,以使得增加工作線程后的所述多個(gè)VM的平均I/O吞吐量小于第一閾值;或者,在當(dāng)前時(shí)刻的平均I/O吞吐量小于第二閾值時(shí),所述HOST在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程,以使得減少工作線程后的所述多個(gè)VM的平均I/O吞吐量大于第二閾值;其中,所述第一閾值大于所述第二閾值;所述HOST根據(jù)增加或減少后的用于處理VM的工作線程,分別調(diào)整所述多個(gè)VM的前端設(shè)備中的隊(duì)列與用于處理VM的工作線程的對(duì)應(yīng)關(guān)系,和所述多個(gè)VM的后端設(shè)備中的隊(duì)列與用于處理VM的工作線程的對(duì)應(yīng)關(guān)系,以便于在所述多個(gè)VM的前端設(shè)備和所述多個(gè)VM的后端設(shè)備之間形成多個(gè)數(shù)據(jù)傳輸通道。在第一種可能的實(shí)現(xiàn)方式中,結(jié)合第一方面,如果當(dāng)前時(shí)刻的平均1/0吞吐量大于第一閾值,所述HOST在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間增加用于處理VM的工作線程的步驟之前,進(jìn)一步包括:所述HOST將在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間增加用于處理VM的工作線程所帶來(lái)的CPU利用率的增長(zhǎng)和所帶來(lái)的1/0吞吐量的增長(zhǎng)進(jìn)行比較;如果所述1/0吞吐量的增長(zhǎng)大于CPU利用率的增長(zhǎng),則執(zhí)行所述HOST在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間增加用于處理VM的工作線程的步驟。在第二種可能的實(shí)現(xiàn)方式中,結(jié)合第一方面,如果當(dāng)前時(shí)刻的平均1/0吞吐量小于第二閾值,所述HOST在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程的步驟之前,進(jìn)一步包括:所述HOST判斷在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程所帶來(lái)的CPU利用率的減少是否導(dǎo)致無(wú)法響應(yīng)所述多個(gè)VM的吞吐量;如果在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程所帶來(lái)的CPU利用率的減少不會(huì)導(dǎo)致無(wú)法響應(yīng)所述多個(gè)VM的吞吐量,則執(zhí)行所述HOST在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程的步驟。在第三種可能的實(shí)現(xiàn)方式中,結(jié)合第一方面或第一方面的第一種或第二種可能的實(shí)現(xiàn)方式,所述HOST根據(jù)增加或減少后的用于處理VM的工作線程,分別調(diào)整所述多個(gè)VM的前端設(shè)備中的隊(duì)列與用于處理VM的工作線程的對(duì)應(yīng)關(guān)系,和所述多個(gè)VM的后端設(shè)備中的隊(duì)列與用于處理VM的工作線程的對(duì)應(yīng)關(guān)系,包括:在增加或減少后的用于處理VM的工作線程的數(shù)量小于運(yùn)行在所述HOST上VM的數(shù)量時(shí),所述HOST將所述每個(gè)工作線程分別對(duì)應(yīng)每個(gè)VM的前端設(shè)備中一個(gè)隊(duì)列和每個(gè)VM的后端設(shè)備中一個(gè)隊(duì)列;或者,在增加或減少后的用于處理VM的工作線程的數(shù)量大于或等于運(yùn)行在所述HOST上VM的數(shù)量時(shí),所述HOST將獨(dú)占工作線程對(duì)應(yīng)一個(gè)VM的前端設(shè)備和后端設(shè)備中一個(gè)隊(duì)列、以及將共享工作線程對(duì)應(yīng)至少兩個(gè)VM的前端設(shè)備和后端設(shè)備中沒(méi)有被所述獨(dú)占工作線程對(duì)應(yīng)的隊(duì)列,所述用于處理VM的工作線程包括所述獨(dú)占工作線程和所述共享工作線程。在第四種可能的實(shí)現(xiàn)方式中,結(jié)合第一方面或第一方面的第一種或第二種或第三種可能的實(shí)現(xiàn)方式,所述HOST根據(jù)增加或減少后的用于處理VM的工作線程,分別調(diào)整所述多個(gè)VM的前端設(shè)備中的隊(duì)列與用于處理VM的工作線程的對(duì)應(yīng)關(guān)系,和所述多個(gè)VM的后端設(shè)備中的隊(duì)列與用于處理VM的工作線程的對(duì)應(yīng)關(guān)系之后,所述方法還包括:所述HOST調(diào)整所述多個(gè)VM的后端設(shè)備中的隊(duì)列和所述HOST中本地設(shè)備N(xiāo)ativeDevice中的隊(duì)列的對(duì)應(yīng)關(guān)系,以便于在所述多個(gè)VM的后端設(shè)備和所述Native Device之間形成多個(gè)數(shù)據(jù)傳輸通道。第二方面,本發(fā)明提供了一種虛擬化平臺(tái)下I/O通道的調(diào)整裝置HOST,HOST包括:統(tǒng)計(jì)模塊,用于統(tǒng)計(jì)運(yùn)行在宿主機(jī)HOST上的多個(gè)虛擬機(jī)VM當(dāng)前時(shí)刻的平均1/0吞吐量;處理模塊,與所述統(tǒng)計(jì)模塊連接,用于在所述統(tǒng)計(jì)模塊統(tǒng)計(jì)的當(dāng)前時(shí)刻的平均I/o吞吐量大于第一閾值時(shí),在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間增加用于處理VM的工作線程,以使得增加工作線程后的所述多個(gè)VM的平均1/0吞吐量小于第一閾值;或者,用于在所述統(tǒng)計(jì)模塊統(tǒng)計(jì)的當(dāng)前時(shí)刻的平均1/0吞吐量小于第二閾值時(shí),在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程,以使得減少工作線程后的所述多個(gè)VM的平均1/0吞吐量大于第二閾值;其中,所述第一閾值大于所述第二閾值;第一調(diào)整模塊,與所述處理模塊連接,用于根據(jù)所述處理模塊增加或減少后的用于處理VM的工作線程,分別調(diào)整所述多個(gè)VM的前端設(shè)備中的隊(duì)列與用于處理VM的工作線程的對(duì)應(yīng)關(guān)系,和所述多個(gè)VM的后端設(shè)備中的隊(duì)列與用于處理VM的工作線程的對(duì)應(yīng)關(guān)系,以便于在所述多個(gè)VM的前端設(shè)備和所述多個(gè)VM的后端設(shè)備之間形成多個(gè)數(shù)據(jù)傳輸通道。在第一種可能的實(shí)現(xiàn)方式中,結(jié)合第一方面,所述調(diào)整裝置還包括:判斷模塊,用于在所述統(tǒng)計(jì)模塊統(tǒng)計(jì)的當(dāng)前時(shí)刻的平均1/0吞吐量大于第一閾值時(shí),將在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間增加用于處理VM的工作線程所帶來(lái)的CPU利用率的增長(zhǎng)和所帶來(lái)的1/0吞吐量的增長(zhǎng)進(jìn)行比較;所述處理模塊,還用于如果所述1/0吞吐量的增長(zhǎng)大于CPU利用率的增長(zhǎng),在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間增加用于處理VM的工作線程,以使得增加工作線程后的所述多個(gè)VM的平均1/0吞吐量小于第一閾值。在第二種可能的實(shí)現(xiàn)方式中,結(jié)合第一方面,所述調(diào)整裝置還包括:判斷模塊,用于在所述統(tǒng)計(jì)模塊統(tǒng)計(jì)的當(dāng)前時(shí)刻的平均1/0吞吐量小于第二閾值時(shí),判斷在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程所帶來(lái)的(PU利用率的減少是否導(dǎo)致無(wú)法響應(yīng)所述多個(gè)VM的吞吐量;所述處理模塊,還用于如果在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程所帶來(lái)的CPU利用率的減少不會(huì)導(dǎo)致無(wú)法響應(yīng)所述多個(gè)VM的吞吐量,在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程,以使得減少工作線程后的所述多個(gè)VM的平均1/0吞吐量大于第二閾值。在第三種可能的實(shí)現(xiàn)方式中,結(jié)合第一方面或第一方面的第一種或第二種可能的實(shí)現(xiàn)方式,所述第一調(diào)整模塊具體用于:在增加或減少后的用于處理VM的工作線程的數(shù)量小于運(yùn)行在所述HOST上VM的數(shù)量時(shí),將所述每個(gè)工作線程分別對(duì)應(yīng)每個(gè)VM的前端設(shè)備中一個(gè)隊(duì)列和每個(gè)VM的后端設(shè)備中一個(gè)隊(duì)列;或者,在增加或減少后的用于處理VM的工作線程的數(shù)量大于或等于運(yùn)行在所述HOST上VM的數(shù)量時(shí),將獨(dú)占工作線程對(duì)應(yīng)一個(gè)VM的前端設(shè)備和后端設(shè)備中一個(gè)隊(duì)列、以及將共享工作線程對(duì)應(yīng)至少兩個(gè)VM的前端設(shè)備和后端設(shè)備中沒(méi)有被所述獨(dú)占工作線程對(duì)應(yīng)的隊(duì)列,所述用于處理VM的工作線程包括所述獨(dú)占工作線程和所述共享工作線程。在第四種可能的實(shí)現(xiàn)方式中,結(jié)合第一方面或第一方面的第一種或第二種或第三種可能的實(shí)現(xiàn)方式,所述調(diào)整裝置還包括:第二調(diào)整模塊,用于調(diào)整所述多個(gè)VM的后端設(shè)備中的隊(duì)列和所述HOST中本地設(shè)備N(xiāo)ative Device中的隊(duì)列的對(duì)應(yīng)關(guān)系,以便于在所述多個(gè)VM的后端設(shè)備和所述NativeDevice之間形成多個(gè)數(shù)據(jù)傳輸通道。第三方面,本發(fā)明提供了一種宿主機(jī)HOST,其特征在于,所述HOST包括:本地設(shè)備N(xiāo)ative Device,運(yùn)行在所述Native Device之上的多個(gè)虛擬機(jī)VM的前端設(shè)備和后端設(shè)備,以及位于所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間的數(shù)據(jù)處理模塊,其中:所述數(shù)據(jù)處理模塊用于:統(tǒng)計(jì)所述多個(gè)VM當(dāng)前時(shí)刻的平均I/O吞吐量;在當(dāng)前時(shí)刻的平均I/O吞吐量大于第一閾值時(shí),在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間增加用于處理VM的工作線程,以使得增加工作線程后的所述多個(gè)VM的平均I/O吞吐量小于第一閾值;或者,在當(dāng)前時(shí)刻的平均I/O吞吐量小于第二閾值時(shí),所述HOST在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程,以使得減少工作線程后的所述多個(gè)VM的平均I/O吞吐量大于第二閾值;其中,所述第一閾值大于所述第二閾值;根據(jù)增加或減少后的用于處理VM的工作線程,分別調(diào)整所述多個(gè)VM的前端設(shè)備中的隊(duì)列與用于處理VM的工作線程的對(duì)應(yīng)關(guān)系,和所述多個(gè)VM的后端設(shè)備中的隊(duì)列與用于處理VM的工作線程的對(duì)應(yīng)關(guān)系,以便于在所述多個(gè)VM的前端設(shè)備和所述多個(gè)VM的后端設(shè)備之間形成多個(gè)數(shù)據(jù)傳輸通道。在第一種可能的實(shí)現(xiàn)方式中,結(jié)合第三方面,所述數(shù)據(jù)處理模塊還用于:將在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間增加用于處理VM的工作線程所帶來(lái)的CPU利用率的增長(zhǎng)和所帶來(lái)的I/O吞吐量的增長(zhǎng)進(jìn)行比較;如果所述I/O吞吐量的增長(zhǎng)大于CPU利用率的增長(zhǎng),在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間增加用于處理VM的工作線程,以使得增加工作線程后的所述多個(gè)VM的平均I/O吞吐量小于第一閾值。在第二種可能的實(shí)現(xiàn)方式中,結(jié)合第三方面,所述數(shù)據(jù)處理模塊還用于:判斷在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程所帶來(lái)的CPU利用率的減少是否導(dǎo)致無(wú)法響應(yīng)所述多個(gè)VM的吞吐量;如果在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程所帶來(lái)的CPU利用率的減少不會(huì)導(dǎo)致無(wú)法響應(yīng)所述多個(gè)VM的吞吐量,在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程,以使得減少工作線程后的所述多個(gè)VM的平均I/O吞吐量大于第二閾值??梢?jiàn),在本發(fā)明的實(shí)施例中,根據(jù)當(dāng)前時(shí)刻多個(gè)VM的平均I/O吞吐量判斷是否在該多個(gè)VM的前端設(shè)備和后端設(shè)備之間增加或減少用于處理VM的工作線程,在當(dāng)前時(shí)刻多個(gè)VM的平均I/O吞吐量大于第一閾值時(shí),增加用于處理VM的工作線程,即增加I/O通道資源,提高I/O通道的數(shù)據(jù)傳輸能力;在當(dāng)前時(shí)刻多個(gè)VM的平均I/O吞吐量小于第二閾值時(shí),減少用于處理VM的工作線程,即減少I(mǎi)/O通道資源,避免I/O通道資源浪費(fèi)。進(jìn)一步,HOST通過(guò)調(diào)整多個(gè)VM的后端設(shè)備中的隊(duì)列和宿主機(jī)HOST中本地設(shè)備N(xiāo)ative Device中隊(duì)列的對(duì)應(yīng)關(guān)系,在多個(gè)VM的后端設(shè)備和該本地設(shè)備N(xiāo)ative Device之間形成多個(gè)數(shù)據(jù)傳輸通道,從而實(shí)現(xiàn)了多個(gè)VM的前端設(shè)備和該HOST中本地設(shè)備N(xiāo)ativeDevice之間的多條I/O通道,提高了該多個(gè)VM的前端設(shè)備和該HOST中本地設(shè)備N(xiāo)ativeDevice之間的數(shù)據(jù)傳輸能力。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為現(xiàn)有技術(shù)中一種虛擬化平臺(tái)下簡(jiǎn)單多I/O通道技術(shù)的架構(gòu)圖;圖2為本發(fā)明一個(gè)實(shí)施例提供的虛擬化平臺(tái)下I/O通道的調(diào)整方法流程圖;圖3為本發(fā)明提供的虛擬化平臺(tái)下多個(gè)VM的前端設(shè)備和后端設(shè)備之間I/O工作模式為共享模式的架構(gòu)圖;圖4為本發(fā)明提供的虛擬化平臺(tái)下多個(gè)VM的前端設(shè)備和后端設(shè)備之間I/O工作模式為混合模式的架構(gòu)圖;圖5為本發(fā)明一個(gè)實(shí)施例提供的虛擬化平臺(tái)下I/O通道的調(diào)整裝置的結(jié)構(gòu)示意圖;圖6為本發(fā)明另一個(gè)實(shí)施例提供的虛擬化平臺(tái)下I/O通道的調(diào)整裝置的結(jié)構(gòu)示意圖。圖7為本發(fā)明一個(gè)實(shí)施例提供的宿主機(jī)HOST的結(jié)構(gòu)示意圖。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。為了方便理解本發(fā)明實(shí)施例,首先在此介紹本發(fā)明實(shí)施例描述中會(huì)引入的幾個(gè)要素。宿主機(jī)HOST:作為管理層,用以完成硬件資源的管理、分配;為虛擬機(jī)呈現(xiàn)虛擬硬件平臺(tái);其中,虛擬硬件平臺(tái)對(duì)其上運(yùn)行的各個(gè)虛擬機(jī)提供各種硬件資源,如提供虛擬處理器(如VCPU)、虛擬內(nèi)存、虛擬磁盤(pán)、虛擬網(wǎng)卡等等。其中,該虛擬磁盤(pán)可對(duì)應(yīng)HOST的一個(gè)文件或者一個(gè)邏輯塊設(shè)備。虛擬機(jī)運(yùn)行在HOST為其準(zhǔn)備的虛擬硬件平臺(tái)上,HOST上運(yùn)行一個(gè)或多個(gè)虛擬機(jī)。虛擬機(jī)VM:通過(guò)虛擬機(jī)軟件可以在一臺(tái)物理計(jì)算機(jī)上模擬出一臺(tái)或者多臺(tái)虛擬的計(jì)算機(jī),而這些虛擬機(jī)就像真正的計(jì)算機(jī)那樣進(jìn)行工作,虛擬機(jī)上可以安裝操作系統(tǒng)和應(yīng)用程序,虛擬機(jī)還可訪問(wèn)網(wǎng)絡(luò)資源。對(duì)于在虛擬機(jī)中運(yùn)行的應(yīng)用程序而言,虛擬機(jī)就像是在真正的計(jì)算機(jī)中進(jìn)行工作。數(shù)據(jù)處理模塊:本發(fā)明中,在VM的前端設(shè)備和后端設(shè)備之間引入了數(shù)據(jù)處理模塊,數(shù)據(jù)處理模塊用于處理VM的前端設(shè)備和后端設(shè)備之間的數(shù)據(jù)傳輸,通過(guò)工作線程來(lái)處理VM的前端設(shè)備和后端設(shè)備中隊(duì)列的數(shù)據(jù)。數(shù)據(jù)處理模塊一般是通過(guò)軟件實(shí)現(xiàn),即通過(guò)處理器讀取特殊功能的軟件代碼指令來(lái)實(shí)現(xiàn)。本地設(shè)備N(xiāo)ative Device:虛擬化環(huán)境運(yùn)行的硬件平臺(tái)。其中,該Native Device可包括多種硬件,例如某計(jì)算節(jié)點(diǎn)的Native Device可包括處理器(如CPU)和內(nèi)存,還可以包括網(wǎng)卡、存儲(chǔ)器等等高速/低速輸入/輸出(I/O, Input/Output)設(shè)備。網(wǎng)橋Bridge:位于VM的后端設(shè)備和宿主機(jī)HOST的本地設(shè)備N(xiāo)ative Device之間的網(wǎng)絡(luò)設(shè)備或軟件,實(shí)現(xiàn)VM的后端設(shè)備和宿主機(jī)HOST的本地設(shè)備N(xiāo)ative Device之間的網(wǎng)絡(luò)互連,對(duì)數(shù)據(jù)幀進(jìn)行轉(zhuǎn)發(fā)。圖2描述了本發(fā)明實(shí)施例提供的虛擬化平臺(tái)下I/O通道的調(diào)整方法的流程,具體包括:S201、宿主機(jī)HOST統(tǒng)計(jì)運(yùn)行在該HOST上的多個(gè)虛擬機(jī)VM當(dāng)前時(shí)刻的平均1/0吞吐量。具體的,HOST可以通過(guò)先統(tǒng)計(jì)運(yùn)行在該HOST上的多個(gè)VM當(dāng)前時(shí)刻的總的1/0吞吐量,再除以運(yùn)行在該HOST上的虛擬機(jī)的數(shù)量,得到當(dāng)前時(shí)刻該多個(gè)VM的平均1/0吞吐量。S202、在當(dāng)前時(shí)刻的平均1/0吞吐量大于第一閾值時(shí),該HOST在該多個(gè)VM的前端設(shè)備和后端設(shè)備之間增加用于處理VM的工作線程;或者,在當(dāng)前時(shí)刻的平均1/0吞吐量小于第二閾值時(shí),該HOST在該多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程。其中,在該多個(gè)VM的前端設(shè)備和后端設(shè)備之間增加用于處理VM的工作線程,以使得增加工作線程后的該多個(gè)VM的平均1/0吞吐量大于第一閾值;在該多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程,以使得減少工作線程后的該多個(gè)VM的平均1/0吞吐量大于第二閾值。第一閾值大于第二閾值,第一閾值用于指示該多個(gè)VM的平均I/O吞吐量的上限值,第二閾值用于指示該多個(gè)VM的平均1/0吞吐量的下限值,即第一閾值反映的是單個(gè)VM最多所能承受的1/0吞吐量的上限,第二閾值反映的是單個(gè)VM最少應(yīng)該承受的1/0吞吐量的下限。進(jìn)一步,如果當(dāng)前時(shí)刻的平均1/0吞吐量大于第一閾值,該HOST在該多個(gè)VM的前端設(shè)備和后端設(shè)備之間增加用于處理VM的工作線程的步驟之前,還包括:改HOST將在該多個(gè)VM的前端設(shè)備和后端設(shè)備之間增加用于處理VM的工作線程所帶來(lái)的CPU利用率的增長(zhǎng)和所帶來(lái)的1/0吞吐量的增長(zhǎng)進(jìn)行比較;如果1/0吞吐量的增長(zhǎng)大于CPU利用率的增長(zhǎng),則執(zhí)行該HOST在該多個(gè)VM的前端設(shè)備和后端設(shè)備之間增加用于處理VM的工作線程的步驟。其中,所帶來(lái)的CPU利用率的增長(zhǎng)是指增加用于處理VM的工作線程相對(duì)于沒(méi)有增加用于處理VM的工作線程所增加的CPU利用率,可以用CPU利用率的增長(zhǎng)量和/或CPU利用率的增長(zhǎng)率來(lái)表示;所帶來(lái)的I/o吞吐量的增長(zhǎng)是指增加用于處理VM的工作線程相對(duì)于沒(méi)有增加用于處理VM的工作線程所增加處理的1/0吞吐量,可以用1/0吞吐量的增長(zhǎng)量和/或1/0吞吐量的增長(zhǎng)率來(lái)表示。需要說(shuō)明的是,本發(fā)明對(duì)于具體如何比較CPU利用率的增長(zhǎng)和1/0吞吐量的增長(zhǎng)不做限定,這里示例性的給出兩種衡量辦法,如果1/0吞吐量的增長(zhǎng)量大于CPU利用率的增長(zhǎng)量,或者1/0吞吐量的增長(zhǎng)率大于CPU利用率的增長(zhǎng)率,則確定增加用于處理VM的工作線程。
進(jìn)一步,如果當(dāng)前時(shí)刻的平均I/O吞吐量小于第二閾值,該HOST在該多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程的步驟之前,還包括:改HOST判斷在該多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程所帶來(lái)的CPU利用率的減少是否導(dǎo)致無(wú)法響應(yīng)該多個(gè)VM的吞吐量;如果在該多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程所帶來(lái)的CPU利用率的減少不會(huì)導(dǎo)致無(wú)法響應(yīng)該多個(gè)VM的吞吐量,則執(zhí)行該HOST在該多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程的步驟。即,如果所帶來(lái)的CPU利用率的減少會(huì)導(dǎo)致無(wú)法響應(yīng)該多個(gè)VM的吞吐量,則不減少工作線程。 可選地,還可以為該多個(gè)VM設(shè)置優(yōu)先級(jí),使得享有高優(yōu)先級(jí)的VM保持對(duì)工作線程的獨(dú)占,享有專(zhuān)有I/o通道,無(wú)論宿主機(jī)HOST整體I/O負(fù)載如何,高優(yōu)先級(jí)的VM獨(dú)占的I/O通道資源不受影響;對(duì)于優(yōu)先級(jí)級(jí)別相同的W,則按照上述增加或減少工作線程的方法進(jìn)行處理。需要說(shuō)明的是,在本發(fā)明中,I/O通道資源包括用于處理VM的工作線程,以及VM的iu端設(shè)備和后端設(shè)備中的隊(duì)列。S203、該HOST根據(jù)增加或減少后的用于處理VM的工作線程,分別調(diào)整該多個(gè)VM的前端設(shè)備和后端設(shè)備中的隊(duì)列與用于處理VM的工作線程的對(duì)應(yīng)關(guān)系。其中,上述對(duì)應(yīng)關(guān)系包括:該多個(gè)VM的前端設(shè)備中的隊(duì)列與用于處理VM的工作線程的對(duì)應(yīng)關(guān)系,和該多個(gè)VM的后端設(shè)備中的隊(duì)列與用于處理VM的工作線程的對(duì)應(yīng)關(guān)系,該HOST分別調(diào)整該對(duì)應(yīng)關(guān)系以便于在該多個(gè)VM的前端設(shè)備和該多個(gè)VM的后端設(shè)備之間形成多個(gè)數(shù)據(jù)傳輸通道。具體的,該HOST根據(jù)增加或減少后的用于處理VM的工作線程,分別調(diào)整該多個(gè)VM的前端設(shè)備中的隊(duì)列與用于處理VM的工作線程的對(duì)應(yīng)關(guān)系,和該多個(gè)VM的后端設(shè)備中的隊(duì)列與用于處理VM的工作線程的對(duì)應(yīng)關(guān)系,包括:在增加或減少后的用于處理VM的工作線程的數(shù)量小于運(yùn)行在HOST上VM的數(shù)量時(shí),該HOST將每個(gè)工作線程分別對(duì)應(yīng)每個(gè)VM的前端設(shè)備中一個(gè)隊(duì)列和每個(gè)VM的后端設(shè)備中一個(gè)隊(duì)列;或者,在增加或減少后的用于處理VM的工作線程的數(shù)量大于或等于運(yùn)行在HOST上VM的數(shù)量時(shí),該HOST將獨(dú)占工作線程對(duì)應(yīng)一個(gè)VM的前端設(shè)備和后端設(shè)備中一個(gè)隊(duì)列、以及將共享工作線程對(duì)應(yīng)至少兩個(gè)VM的前端設(shè)備和后端設(shè)備中沒(méi)有被獨(dú)占工作線程對(duì)應(yīng)的隊(duì)列;其中,用于處理VM的工作線程包括獨(dú)占工作線程和共享工作線程。需要說(shuō)明的是,上述兩種調(diào)整模式分別對(duì)應(yīng)共享模式和混合模式,關(guān)于共享模式和混合模式具體可見(jiàn)圖3和圖4所不的描述。進(jìn)一步,在HOST根據(jù)增加或減少后的用于處理VM的工作線程,分別調(diào)整所述多個(gè)VM的前端設(shè)備中的隊(duì)列與用于處理VM的工作線程的對(duì)應(yīng)關(guān)系,和所述多個(gè)VM的后端設(shè)備中的隊(duì)列與用于處理VM的工作線程的對(duì)應(yīng)關(guān)系之后,該虛擬化平臺(tái)下1/0通道的調(diào)整方法還包括:該HOST調(diào)整該多個(gè)VM的后端設(shè)備中的隊(duì)列和HOST中本地設(shè)備N(xiāo)ative Device中的隊(duì)列的對(duì)應(yīng)關(guān)系,以便于在該多個(gè)VM的后端設(shè)備和該Native Device之間形成多個(gè)數(shù)據(jù)傳輸通道。具體的,現(xiàn)有技術(shù)中,Native Device可以具有多個(gè)隊(duì)列,VM的后端設(shè)備中的數(shù)據(jù)在進(jìn)入該Native Device時(shí)會(huì)進(jìn)行隊(duì)列的選擇,以通過(guò)不同的隊(duì)列實(shí)現(xiàn)數(shù)據(jù)傳輸,該技術(shù)可以由該Native Device中的硬件驅(qū)動(dòng)實(shí)現(xiàn)??紤]到本發(fā)明中,由于VM的后端設(shè)備中也具有多個(gè)隊(duì)列,因此該Native Device在通過(guò)網(wǎng)橋Bridge向VM的后端設(shè)備中發(fā)送數(shù)據(jù)時(shí),也可以選擇VM的后端設(shè)備中的多個(gè)隊(duì)列,以實(shí)現(xiàn)在VM的后端設(shè)備和該Native Device之間形成多個(gè)數(shù)據(jù)傳輸通道。因此調(diào)整該多個(gè)VM的后端設(shè)備中的隊(duì)列和HOST中本地設(shè)備N(xiāo)ativeDevice中的隊(duì)列的對(duì)應(yīng)關(guān)系實(shí)際上是,Native Device在通過(guò)網(wǎng)橋Bridge向VM的后端設(shè)備中發(fā)送數(shù)據(jù)時(shí),如何選擇VM的后端設(shè)備中的隊(duì)列。針對(duì)如何選擇VM的后端設(shè)備中的隊(duì)列,可以根據(jù)該Native Device中隊(duì)列接收VM的后端設(shè)備中隊(duì)列發(fā)送數(shù)據(jù)時(shí)隊(duì)列之間的對(duì)應(yīng)關(guān)系,反向選擇VM的后端設(shè)備中的隊(duì)列,以保持VM的后端設(shè)備中隊(duì)列和Native Device中隊(duì)列之間互相傳輸數(shù)據(jù)的通道的一致性;或者,該Native Device重新根據(jù)數(shù)據(jù)流的屬性(如來(lái)自同一源端或其他)選擇VM的后端設(shè)備中不同的隊(duì)列。本發(fā)明通過(guò)上述選擇方式以實(shí)現(xiàn)調(diào)整該多個(gè)VM的后端設(shè)備中的隊(duì)列和HOST中本地設(shè)備N(xiāo)ative Device中的隊(duì)列的對(duì)應(yīng)關(guān)系。由于在該多個(gè)VM的后端設(shè)備和該HOST中本地設(shè)備N(xiāo)ative Device之間通過(guò)調(diào)整隊(duì)列的對(duì)應(yīng)關(guān)系,在該多個(gè)VM的后端設(shè)備和本地設(shè)備N(xiāo)ative Device之間形成多個(gè)數(shù)據(jù)傳輸通道,實(shí)現(xiàn)了該多個(gè)VM的前端設(shè)備和該HOST中本地設(shè)備N(xiāo)ative Device之間的多條I/O通道,可以提高該多個(gè)VM和該HOST本地設(shè)備N(xiāo)ative Device之間的數(shù)據(jù)傳輸能力。在上述實(shí)施例可知,HOST根據(jù)當(dāng)前時(shí)刻多個(gè)VM的平均1/0吞吐量判斷是否在該多個(gè)VM的前端設(shè)備和后端設(shè)備之間增加或減少用于處理VM的工作線程,在當(dāng)前時(shí)刻多個(gè)VM的平均1/0吞吐量大于第一閾值時(shí),增加用于處理VM的工作線程,即增加1/0通道資源,提高1/0通道的數(shù)據(jù)傳輸能力;在當(dāng)前時(shí)刻多個(gè)VM的平均1/0吞吐量小于第二閾值時(shí),減少用于處理VM的工作線程,即減少1/0通道資源,避免1/0通道資源浪費(fèi)??紤]到根據(jù)當(dāng)前時(shí)刻的平均1/0吞吐量增加或減少后的1/0通道資源的有限性,特別是I/o通道資源中工作線程的有限性,根據(jù)1/0通道資源中工作線程的數(shù)量和運(yùn)行在宿主機(jī)HOST中VM的數(shù)量,本發(fā)明在上述多個(gè)VM的前端設(shè)備和后端設(shè)備之間設(shè)置了兩種I/O工作模式,包括共享模式和混合模式,并且該兩種I/o工作模式是可以互相切換,當(dāng)滿足一定條件時(shí),可以由一種工作模式切換到另一種工作模式。針對(duì)共享模式,在用于處理VM的工作線程的數(shù)量小于運(yùn)行在該HOST上VM的數(shù)量時(shí),HOST將多個(gè)VM的前端設(shè)備和后端設(shè)備之間1/0工作模式調(diào)整為共享模式,即數(shù)據(jù)處理模塊上的工作線程采取共享模式來(lái)處理該多個(gè)VM的前端設(shè)備和后端設(shè)備中隊(duì)列的數(shù)據(jù),具體的,數(shù)據(jù)處理模塊上的工作線程分別對(duì)應(yīng)運(yùn)行在HOST上每個(gè)VM的前端設(shè)備中一個(gè)隊(duì)列和每個(gè)VM后端設(shè)備中一個(gè)隊(duì)列。圖3為VM的前端設(shè)備和后端設(shè)備之間1/0工作模式為共享模式的示意圖,由圖可知,運(yùn)行在宿主機(jī)HOST上的VM分別為VM1、VM2和VM3,數(shù)據(jù)處理模塊上的工作線程分別為工作線程I和工作線程2,其中,工作線程I分別處理VM1、VM2和VM3中前端設(shè)備和后端設(shè)備中的隊(duì)列1,工作線程2分別處理VM1、VM2和VM3中前端設(shè)備和后端設(shè)備中的隊(duì)列2。針對(duì)混合模式,在用于處理VM的工作線程的數(shù)量大于或等于運(yùn)行在該HOST上VM的數(shù)量時(shí),HOST將該多個(gè)VM的前端設(shè)備和后端設(shè)備之間1/0工作模式調(diào)整為混合模式,即數(shù)據(jù)處理模塊上的工作線程采取混合模式來(lái)處理VM的前端設(shè)備和后端設(shè)備中隊(duì)列的數(shù)據(jù),具體的,可以將數(shù)據(jù)處理模塊上的工作線程分為獨(dú)占工作線程和共享工作線程兩種,其中,獨(dú)占工作線程用于單獨(dú)處理一個(gè)VM的前端設(shè)備和后端設(shè)備中一個(gè)隊(duì)列的數(shù)據(jù),共享工作線程用于共享處理至少兩個(gè)VM的前端設(shè)備和后端設(shè)備中沒(méi)有被獨(dú)占工作線程處理的隊(duì)列的數(shù)據(jù)。圖4為VM的前端設(shè)備和后端設(shè)備之間I/O工作模式為混合模式的示意圖,由圖可知,運(yùn)行在宿主機(jī)HOST上的VM分別為VMl、VM2和VM3,數(shù)據(jù)處理模塊上的工作線程有4個(gè),包括獨(dú)占工作線程1、獨(dú)占工作線程2、獨(dú)占工作線程3和共享工作線程1,其中,獨(dú)占工作線程I單獨(dú)處理VMl中前端設(shè)備和后端設(shè)備中隊(duì)列I的數(shù)據(jù),獨(dú)占工作線程2單獨(dú)處理VM2中前端設(shè)備和后端設(shè)備中隊(duì)列I的數(shù)據(jù),獨(dú)占工作線程3單獨(dú)處理VM3中前端設(shè)備和后端設(shè)備中隊(duì)列I的數(shù)據(jù),共享工作線程共享處理VMl、VM2和VM3中每個(gè)VM的前端設(shè)備和后端設(shè)備中隊(duì)列2的數(shù)據(jù)。圖4僅示意了共享工作線程處理至少兩個(gè)VM中每個(gè)VM的前端設(shè)備和后端設(shè)備中一個(gè)隊(duì)列的數(shù)據(jù)的情形,共享工作線程還可以處理其他情形下多個(gè)隊(duì)列的數(shù)據(jù),本發(fā)明對(duì)比不做限制。進(jìn)一步,由圖3和圖4可知,除了上述在多個(gè)VM的前端設(shè)備和后端設(shè)備之間形成多個(gè)I/O通道,宿主機(jī)HOST還通過(guò)調(diào)整該多個(gè)VM的后端設(shè)備中的隊(duì)列和該HOST中本地設(shè)備N(xiāo)ative Device中隊(duì)列的對(duì)應(yīng)關(guān)系,在該多個(gè)VM的后端設(shè)備和該本地設(shè)備N(xiāo)ativeDevice之間形成多個(gè)數(shù)據(jù)傳輸通道,從而實(shí)現(xiàn)了多個(gè)VM的前端設(shè)備和該HOST中本地設(shè)備N(xiāo)ative Device之間的多條I/O通道,提高了該多個(gè)VM的前端設(shè)備和該HOST中本地設(shè)備N(xiāo)ative Device之間的數(shù)據(jù)傳輸能力。針對(duì)上述虛擬化平臺(tái)下1/0通道的調(diào)整方法,本發(fā)明下述實(shí)施例提供了虛擬化平臺(tái)下1/0通道的調(diào)整裝置的結(jié)構(gòu)。圖5描述了本發(fā)明實(shí)施例提供的虛擬化平臺(tái)下1/0通道的調(diào)整裝置500的結(jié)構(gòu),該調(diào)整裝置500具體包括:統(tǒng)計(jì)模塊501,用于統(tǒng)計(jì)運(yùn)行在宿主機(jī)HOST上的多個(gè)虛擬機(jī)VM當(dāng)前時(shí)刻的平均
1/0吞吐量。處理模塊502,與統(tǒng)計(jì)模塊5001連接,用于在統(tǒng)計(jì)模塊501統(tǒng)計(jì)的當(dāng)前時(shí)刻的平均1/0吞吐量大于第一閾值時(shí),在該多個(gè)VM的前端設(shè)備和后端設(shè)備之間增加用于處理VM的工作線程,以使得增加工作線程后的該多個(gè)VM的平均1/0吞吐量小于第一閾值;或者,用于在統(tǒng)計(jì)模塊501統(tǒng)計(jì)的當(dāng)前時(shí)刻的平均1/0吞吐量小于第二閾值時(shí),在該多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程,以使得減少工作線程后的該多個(gè)VM的平均1/0吞吐量大于第二閾值;其中,第一閾值大于第二閾值。第一調(diào)整模塊503,與處理模塊502連接,用于根據(jù)處理模塊502增加或減少后的用于處理VM的工作線程,分別調(diào)整該多個(gè)VM的前端設(shè)備中的隊(duì)列與用于處理VM的工作線程的對(duì)應(yīng)關(guān)系,和該多個(gè)VM的后端設(shè)備中的隊(duì)列與用于處理VM的工作線程的對(duì)應(yīng)關(guān)系,以便于在該多個(gè)VM的前端設(shè)備和該多個(gè)VM的后端設(shè)備之間形成多個(gè)數(shù)據(jù)傳輸通道??蛇x的,該調(diào)整裝置500還包括:判斷模塊504,用于在統(tǒng)計(jì)模塊501統(tǒng)計(jì)的當(dāng)前時(shí)刻的平均1/0吞吐量大于第一閾值時(shí),將在該多個(gè)VM的前端設(shè)備和后端設(shè)備之間增加用于處理VM的工作線程所帶來(lái)的CPU利用率的增長(zhǎng)和所帶來(lái)的1/0吞吐量的增長(zhǎng)進(jìn)行比較;
處理模塊502,還用于在判斷模塊504判斷如果所述I/O吞吐量的增長(zhǎng)大于CPU利用率的增長(zhǎng),在該多個(gè)VM的前端設(shè)備和后端設(shè)備之間增加用于處理VM的工作線程,以使得增加工作線程后的該多個(gè)VM的平均I/O吞吐量小于第一閾值??蛇x的,該調(diào)整裝置500還包括:判斷模塊504,用于在統(tǒng)計(jì)模塊501統(tǒng)計(jì)的當(dāng)前時(shí)刻的平均I/O吞吐量小于第二閾值時(shí),判斷在該多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程所帶來(lái)的CPU利用率的減少是否導(dǎo)致無(wú)法響應(yīng)該多個(gè)VM的吞吐量;處理模塊502,還用于在判斷模塊504判斷如果在該多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程所帶來(lái)的CPU利用率的減少不會(huì)導(dǎo)致無(wú)法響應(yīng)該多個(gè)VM的吞吐量,在該多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程,以使得減少工作線程后的該多個(gè)VM的平均I/O吞吐量大于第二閾值。進(jìn)一步,第一調(diào)整模塊503具體用于:在增加或減少后的用于處理VM的工作線程的數(shù)量小于運(yùn)行在該HOST上VM的數(shù)量時(shí),將每個(gè)工作線程分別對(duì)應(yīng)每個(gè)VM的前端設(shè)備中一個(gè)隊(duì)列和每個(gè)VM的后端設(shè)備中一個(gè)隊(duì)列;或者,在增加或減少后的用于處理VM的工作線程的數(shù)量大于或等于運(yùn)行在該HOST上VM的數(shù)量時(shí),將獨(dú)占工作線程對(duì)應(yīng)一個(gè)VM的前端設(shè)備和后端設(shè)備中一個(gè)隊(duì)列、以及將共享工作線程對(duì)應(yīng)至少兩個(gè)VM的前端設(shè)備和后端設(shè)備中沒(méi)有被獨(dú)占工作線程對(duì)應(yīng)的隊(duì)列,其中,用于處理VM的工作線程包括獨(dú)占工作線程和共享工作線程。進(jìn)一步,調(diào)整裝置500還包括第二調(diào)整模塊505,用于調(diào)整該多個(gè)VM的后端設(shè)備中的隊(duì)列和HOST中本地設(shè)備N(xiāo)ative Device中的隊(duì)列的對(duì)應(yīng)關(guān)系,以便于在該多個(gè)VM的后端設(shè)備和該Native Device之間形成多個(gè)數(shù)據(jù)傳輸通道。由于第二調(diào)整模塊505在該多個(gè)VM的后端設(shè)備和宿主機(jī)HOST中本地設(shè)備N(xiāo)ativeDevice之間形成了多個(gè)數(shù)據(jù)通道,實(shí)現(xiàn)了該多個(gè)VM的前端設(shè)備和HOST中本地設(shè)備N(xiāo)ativeDevice之間的多條1/0通道,提高該多個(gè)VM和HOST本地設(shè)備N(xiāo)ative Device之間的數(shù)據(jù)傳輸能力。由上述實(shí)施例可知,該虛擬化平臺(tái)下1/0通道的調(diào)整裝置根據(jù)當(dāng)前時(shí)刻多個(gè)VM的平均1/0吞吐量判斷是否在該多個(gè)VM的前端設(shè)備和后端設(shè)備之間增加或減少用于處理VM的工作線程,在當(dāng)前時(shí)刻多個(gè)VM的平均1/0吞吐量大于第一閾值時(shí),增加用于處理VM的工作線程,即增加1/0通道資源,提高1/0通道的數(shù)據(jù)傳輸能力;在當(dāng)前時(shí)刻多個(gè)VM的平均I/O吞吐量小于第二閾值時(shí),減少用于處理VM的工作線程,即減少1/0通道資源,避免1/0通道資源浪費(fèi)。圖6描述了本發(fā)明另一個(gè)實(shí)施例提供的虛擬化平臺(tái)下1/0通道的調(diào)整裝置600的結(jié)構(gòu),該調(diào)整裝置600包括:至少一個(gè)處理器601,例如CPU,至少一個(gè)網(wǎng)絡(luò)接口 604或者其他用戶接口 603,存儲(chǔ)器605,至少一個(gè)通信總線602。通信總線602用于實(shí)現(xiàn)這些組件之間的連接通信。該H0ST600可選的包含用戶接口 603,包括顯示器,鍵盤(pán)或者點(diǎn)擊設(shè)備(例如,鼠標(biāo),軌跡球(trackball),觸感板或者觸感顯示屏)。存儲(chǔ)器605可能包含高速RAM存儲(chǔ)器,也可能還包括非不穩(wěn)定的存儲(chǔ)器(non-volatile memory),例如至少一個(gè)磁盤(pán)存儲(chǔ)器。存儲(chǔ)器605可選的可以包含至少一個(gè)位于遠(yuǎn)離前述處理器601的存儲(chǔ)裝置。在一些實(shí)施方式中,存儲(chǔ)器605還可以包括操作系統(tǒng)606,包含各種程序,用于實(shí)現(xiàn)各種基礎(chǔ)業(yè)務(wù)以及處理基于硬件的任務(wù)。具體地,處理器601用于:統(tǒng)計(jì)運(yùn)行在宿主機(jī)HOST上的多個(gè)虛擬機(jī)VM當(dāng)前時(shí)刻的平均I/O吞吐量;在當(dāng)前時(shí)刻的平均I/O吞吐量大于第一閾值時(shí),在該多個(gè)VM的前端設(shè)備和后端設(shè)備之間增加用于處理VM的工作線程,以使得增加工作線程后的該多個(gè)VM的平均I/O吞吐量小于第一閾值;或者,在當(dāng)前時(shí)刻的平均I/O吞吐量小于第二閾值時(shí),在該多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程,以使得減少工作線程后的該多個(gè)VM的平均I/O吞吐量大于第二閾值;其中,第一閾值大于第二閾值;根據(jù)增加或減少后的用于處理VM的工作線程,分別調(diào)整該多個(gè)VM的前端設(shè)備中的隊(duì)列與用于處理VM的工作線程的對(duì)應(yīng)關(guān)系,和該多個(gè)VM的后端設(shè)備中的隊(duì)列與用于處理VM的工作線程的對(duì)應(yīng)關(guān)系,以便于在該多個(gè)VM的前端設(shè)備和該多個(gè)VM的后端設(shè)備之間形成多個(gè)數(shù)據(jù)傳輸通道。進(jìn)一步,如果當(dāng)前時(shí)刻的平均I/O吞吐量大于第一閾值,處理器601在該多個(gè)VM的前端設(shè)備和后端設(shè)備之間增加用于處理VM的工作線程的步驟之前,還包括:將在該多個(gè)VM的前端設(shè)備和后端設(shè)備之間增加用于處理VM的工作線程所帶來(lái)的CPU利用率的增長(zhǎng)和所帶來(lái)的I/O吞吐量的增長(zhǎng)進(jìn)行比較;如果I/O吞吐量的增長(zhǎng)大于CPU利用率的增長(zhǎng),則執(zhí)行在該多個(gè)VM的前端設(shè)備和后端設(shè)備之間增加用于處理VM的工作線程的步驟。如果當(dāng)前時(shí)刻的平均I/O吞吐量小于第二閾值,處理器601在該多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程的步驟之前,還包括:判斷在該多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程所帶來(lái)的CPU利用率的減少是否導(dǎo)致無(wú)法響應(yīng)該多個(gè)VM的吞吐量;如果在該多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程所帶來(lái)的CPU利用率的減少不會(huì)導(dǎo)致無(wú)法響應(yīng)該多個(gè)VM的吞吐量,則執(zhí)行在該多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程的步驟。進(jìn)一步,處理器601用于根據(jù)增加或減少后的用于處理VM的工作線程,分別調(diào)整該多個(gè)VM的前端設(shè)備中的隊(duì)列與用于處理VM的工作線程的對(duì)應(yīng)關(guān)系,和該多個(gè)VM的后端設(shè)備中的隊(duì)列與用于處理VM的工作線程的對(duì)應(yīng)關(guān)系,包括:在增加或減少后的用于處理VM的工作線程的數(shù)量小于運(yùn)行在HOST上VM的數(shù)量時(shí),將每個(gè)工作線程分別對(duì)應(yīng)每個(gè)VM的前端設(shè)備中一個(gè)隊(duì)列和每個(gè)VM的后端設(shè)備中一個(gè)隊(duì)列;或者,在增加或減少后的用于處理VM的工作線程的數(shù)量大于或等于運(yùn)行在HOST上VM的數(shù)量時(shí),將獨(dú)占工作線程對(duì)應(yīng)一個(gè)VM的前端設(shè)備和后端設(shè)備中一個(gè)隊(duì)列、以及將共享工作線程對(duì)應(yīng)至少兩個(gè)VM的前端設(shè)備和后端設(shè)備中沒(méi)有被獨(dú)占工作線程對(duì)應(yīng)的隊(duì)列;其中,用于處理VM的工作線程包括獨(dú)占工作線程和共享工作線程。進(jìn)一步,處理器601,還用于調(diào)整該多個(gè)VM的后端設(shè)備中的隊(duì)列和HOST中本地設(shè)備N(xiāo)ative Device中的隊(duì)列的對(duì)應(yīng)關(guān)系,以便于在該多個(gè)VM的后端設(shè)備和該NativeDevice之間形成多個(gè)數(shù)據(jù)傳輸通道。由上述實(shí)施例可知,該虛擬化平臺(tái)下I/O通道的調(diào)整裝置根據(jù)當(dāng)前時(shí)刻多個(gè)VM的平均I/O吞吐量判斷是否在該多個(gè)VM的前端設(shè)備和后端設(shè)備之間增加或減少用于處理VM的工作線程,在當(dāng)前時(shí)刻多個(gè)VM的平均I/O吞吐量大于第一閾值時(shí),增加用于處理VM的工作線程,即增加I/O通道資源,提高I/O通道的數(shù)據(jù)傳輸能力;在當(dāng)前時(shí)刻多個(gè)VM的平均I/O吞吐量小于第二閾值時(shí),減少用于處理VM的工作線程,即減少I(mǎi)/O通道資源,避免I/O通道資源浪費(fèi)。需要說(shuō)明的是,上述本發(fā)明實(shí)施例揭示的方法可以應(yīng)用于處理器601中,或者說(shuō)由處理器601實(shí)現(xiàn)。處理器601可能是一種集成電路芯片,具有指令和數(shù)據(jù)的執(zhí)行能力,以及信號(hào)的處理能力。在實(shí)現(xiàn)過(guò)程中,上述方法的各步驟可以通過(guò)處理器601中的硬件的集成邏輯電路或者軟件形式的指令完成。上述的處理器可以是通用處理器(CPU)、數(shù)字信號(hào)處理器(DSP)、專(zhuān)用集成電路(ASIC)、現(xiàn)成可編程門(mén)陣列(FPGA)或者其他可編程邏輯器件、分立門(mén)或者晶體管邏輯器件、分立硬件組件??梢詫?shí)現(xiàn)或者執(zhí)行本發(fā)明實(shí)施例中的公開(kāi)的各方法、步驟及邏輯框圖。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器等。結(jié)合本發(fā)明實(shí)施例所公開(kāi)的方法的步驟可以直接體現(xiàn)為硬件處理器執(zhí)行完成,或者用處理器中的硬件及軟件模塊組合執(zhí)行完成。軟件模塊可以位于隨機(jī)存儲(chǔ)器,閃存、只讀存儲(chǔ)器,可編程只讀存儲(chǔ)器或者電可擦寫(xiě)可編程存儲(chǔ)器、寄存器等本領(lǐng)域成熟的存儲(chǔ)介質(zhì)中。該存儲(chǔ)介質(zhì)位于存儲(chǔ)器605,處理器讀取存儲(chǔ)器605中的信息,結(jié)合其硬件完成上述方法的步驟。圖7描述了本發(fā)明一個(gè)實(shí)施例提供的宿主機(jī)H0ST700的結(jié)構(gòu),該HOST包括本地設(shè)備N(xiāo)ative Device705,運(yùn)行在該Native Device705之上的多個(gè)虛擬機(jī)VM的前端設(shè)備和后端設(shè)備,位于該多個(gè)VM的前端設(shè)備和后端設(shè)備之間的數(shù)據(jù)處理模塊702,以及位于該多個(gè)VM的后端設(shè)備和該Native Device705之間的網(wǎng)橋Bridge704。其中,多個(gè)VM的前端設(shè)備,包括VMl前端設(shè)備7011和VM2前端設(shè)備7012 ;多個(gè)VM的后端設(shè)備,包括VMl后端設(shè)備7031和VM2后端設(shè)備7032 ;網(wǎng)橋Bridge704位于VM的后端設(shè)備和宿主機(jī)HOST的本地設(shè)備N(xiāo)ativeDevice之間的網(wǎng)絡(luò)設(shè)備或軟件,實(shí)現(xiàn)VM的后端設(shè)備和宿主機(jī)HOST的本地設(shè)備N(xiāo)ative Device之間的網(wǎng)絡(luò)互連,對(duì)數(shù)據(jù)幀進(jìn)行轉(zhuǎn)發(fā);本地設(shè)備N(xiāo)ative Device705為虛擬化環(huán)境運(yùn)行的硬件平臺(tái),該Native Device可包括多種硬件,例如某計(jì)算節(jié)點(diǎn)的Native Device可包括處理器(如CPU)和內(nèi)存,還可以包括網(wǎng)卡、存儲(chǔ)器等等高速/低速輸入/輸出(I/O, Input/Output)設(shè)備。數(shù)據(jù)處理模塊702用于:統(tǒng)計(jì)該多個(gè)VM當(dāng)前時(shí)刻的平均I/O吞吐量;在當(dāng)前時(shí)刻的平均I/O吞吐量大于第一閾值時(shí),在該多個(gè)VM的前端設(shè)備和后端設(shè)備之間增加用于處理VM的工作線程,以使得增加工作線程后的該多個(gè)VM的平均I/O吞吐量小于第一閾值;或者,在當(dāng)前時(shí)刻的平均I/O吞吐量小于第二閾值時(shí),在該多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程,以使得減少工作線程后的該多個(gè)VM的平均I/O吞吐量大于第二閾值;其中,第一閾值大于第二閾值;根據(jù)增加或減少后的用于處理VM的工作線程,分別調(diào)整該多個(gè)VM的前端設(shè)備中的隊(duì)列與用于處理VM的工作線程的對(duì)應(yīng)關(guān)系,和該多個(gè)VM的后端設(shè)備中的隊(duì)列與用于處理VM的工作線程的對(duì)應(yīng)關(guān)系,以便于在該多個(gè)VM的前端設(shè)備和該多個(gè)VM的后端設(shè)備之間形成多個(gè)數(shù)據(jù)傳輸通道??蛇x的,數(shù)據(jù)處理模塊702還用于:將在該多個(gè)VM的前端設(shè)備和后端設(shè)備之間增加用于處理VM的工作線程所帶來(lái)的(PU利用率的增長(zhǎng)和所帶來(lái)的I/O吞吐量的增長(zhǎng)進(jìn)行比較;如果I/O吞吐量的增長(zhǎng)大于CPU利用率的增長(zhǎng),在該多個(gè)VM的前端設(shè)備和后端設(shè)備之間增加用于處理VM的工作線程,以使得增加工作線程后的該多個(gè)VM的平均I/O吞吐量小于第一閾值??蛇x的,數(shù)據(jù)處理模塊702還用于:判斷在該多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程所帶來(lái)的CPU利用率的減少是否導(dǎo)致無(wú)法響應(yīng)該多個(gè)VM的吞吐量;如果在該多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程所帶來(lái)的CPU利用率的減少不會(huì)導(dǎo)致無(wú)法響應(yīng)該多個(gè)VM的吞吐量,在該多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程,以使得減少工作線程后的該多個(gè)VM的平均I/O吞吐量大于第二閾值。需要說(shuō)明的是,數(shù)據(jù)處理模塊702可以執(zhí)行實(shí)施例一中揭示的方法,本發(fā)明在此不予贅述,不能理解成是對(duì)本實(shí)施例一中揭示的方法的限制;并且,數(shù)據(jù)處理模塊702 —般是軟件實(shí)現(xiàn),即通過(guò)處理器讀取特殊功能的軟件代碼指令來(lái)實(shí)現(xiàn),數(shù)據(jù)處理單元702用軟件方法實(shí)現(xiàn)只是本發(fā)明的一個(gè)較佳的實(shí)現(xiàn)方案,本領(lǐng)域技術(shù)人員同樣可以用處理器(如CPU, DSP)之類(lèi)的硬件邏輯來(lái)實(shí)現(xiàn)數(shù)據(jù)處理單元702的軟件方法,本發(fā)明對(duì)此不做限制。由上述實(shí)施例可知,宿主機(jī)HOST根據(jù)當(dāng)前時(shí)刻多個(gè)VM的平均I/O吞吐量判斷是否在該多個(gè)VM的前端設(shè)備和后端設(shè)備之間增加或減少用于處理VM的工作線程,在當(dāng)前時(shí)刻多個(gè)VM的平均I/O吞吐量大于第一閾值時(shí),增加用于處理VM的工作線程,即增加I/O通道資源,提高I/O通道的數(shù)據(jù)傳輸能力;在當(dāng)前時(shí)刻多個(gè)VM的平均I/O吞吐量小于第二閾值時(shí),減少用于處理VM的工作線程,即減少I(mǎi)/O通道資源,避免I/O通道資源浪費(fèi)。最后應(yīng)說(shuō)明的是:以上各實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述各實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。
權(quán)利要求
1.一種虛擬化平臺(tái)下I/o通道的調(diào)整方法,其特征在于,包括: 宿主機(jī)HOST統(tǒng)計(jì)運(yùn)行在所述HOST上的多個(gè)虛擬機(jī)VM當(dāng)前時(shí)刻的平均I/O吞吐量; 在當(dāng)前時(shí)刻的平均I/O吞吐量大于第一閾值時(shí),所述HOST在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間增加用于處理VM的工作線程,以使得增加工作線程后的所述多個(gè)VM的平均I/O吞吐量小于第一閾值;或者,在當(dāng)前時(shí)刻的平均I/O吞吐量小于第二閾值時(shí),所述HOST在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程,以使得減少工作線程后的所述多個(gè)VM的平均I/O吞吐量大于第二閾值;其中,所述第一閾值大于所述第二閾值; 所述HOST根據(jù)增加或減少后的用于處理VM的工作線程,分別調(diào)整所述多個(gè)VM的前端設(shè)備中的隊(duì)列與用于處理VM的工作線程的對(duì)應(yīng)關(guān)系,和所述多個(gè)VM的后端設(shè)備中的隊(duì)列與用于處理VM的工作線程的對(duì)應(yīng)關(guān)系,以便于在所述多個(gè)VM的前端設(shè)備和所述多個(gè)VM的后端設(shè)備之間形成多個(gè)數(shù)據(jù)傳輸通道。
2.如權(quán)利要求1所述的方法,其特征在于,如果當(dāng)前時(shí)刻的平均I/O吞吐量大于第一閾值,所述HOST在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間增加用于處理VM的工作線程的步驟之前,進(jìn)一步包括: 所述HOST將在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間增加用于處理VM的工作線程所帶來(lái)的CPU利用率的增長(zhǎng)和所帶來(lái)的I/O吞吐量的增長(zhǎng)進(jìn)行比較; 如果所述I/O吞吐量的增長(zhǎng)大于CPU利用率的增長(zhǎng),則執(zhí)行所述HOST在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間增加用于處理VM的工作線程的步驟。
3.如權(quán)利要求1所述的方法,其特征在于,如果當(dāng)前時(shí)刻的平均I/O吞吐量小于第二閾值,所述HOST在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程的步驟之前,進(jìn)一步包括: 所述HOST判斷在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程所帶來(lái)的CPU利用率的減少是否導(dǎo)致無(wú)法響應(yīng)所述多個(gè)VM的吞吐量; 如果在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程所帶來(lái)的CPU利用率的減少不會(huì)導(dǎo)致無(wú)法響應(yīng)所述多個(gè)VM的吞吐量,則執(zhí)行所述HOST在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程的步驟。
4.如權(quán)利要求1-3任一項(xiàng)所述的方法,其特征在于,所述HOST根據(jù)增加或減少后的用于處理VM的工作線程,分別調(diào)整所述多個(gè)VM的前端設(shè)備中的隊(duì)列與用于處理VM的工作線程的對(duì)應(yīng)關(guān)系,和所述多個(gè)VM的后端設(shè)備中的隊(duì)列與用于處理VM的工作線程的對(duì)應(yīng)關(guān)系,包括: 在增加或減少后的用于處理VM的工作線程的數(shù)量小于運(yùn)行在所述HOST上VM的數(shù)量時(shí),所述HOST將所述每個(gè)工作線程分別對(duì)應(yīng)每個(gè)VM的前端設(shè)備中一個(gè)隊(duì)列和每個(gè)VM的后端設(shè)備中一個(gè)隊(duì)列;或者, 在增加或減少后的用于處理VM的工作線程的數(shù)量大于或等于運(yùn)行在所述HOST上VM的數(shù)量時(shí),所述HOST將獨(dú)占工作線程對(duì)應(yīng)一個(gè)VM的前端設(shè)備和后端設(shè)備中一個(gè)隊(duì)列、以及將共享工作線程對(duì)應(yīng)至少兩個(gè)VM的前端設(shè)備和后端設(shè)備中沒(méi)有被所述獨(dú)占工作線程對(duì)應(yīng)的隊(duì)列,所述用于處理VM的工作線程包括所述獨(dú)占工作線程和所述共享工作線程。
5.如權(quán)利要求1-4任一項(xiàng)所述的方法,其特征在于,所述HOST根據(jù)增加或減少后的用于處理VM的工作線程,分別調(diào)整所述多個(gè)VM的前端設(shè)備中的隊(duì)列與用于處理VM的工作線程的對(duì)應(yīng)關(guān)系,和所述多個(gè)VM的后端設(shè)備中的隊(duì)列與用于處理VM的工作線程的對(duì)應(yīng)關(guān)系之后,所述方法還包括: 所述HOST調(diào)整所述多個(gè)VM的后端設(shè)備中的隊(duì)列和所述HOST中本地設(shè)備N(xiāo)at i veDevice中的隊(duì)列的對(duì)應(yīng)關(guān)系,以便于在所述多個(gè)VM的后端設(shè)備和所述Native Device之間形成多個(gè)數(shù)據(jù)傳輸通道。
6.一種虛擬化平臺(tái)下I/O通道的調(diào)整裝置,其特征在于,包括: 統(tǒng)計(jì)模塊,用于統(tǒng)計(jì)運(yùn)行 在宿主機(jī)HOST上的多個(gè)虛擬機(jī)VM當(dāng)前時(shí)刻的平均I/O吞吐量; 處理模塊,與所述統(tǒng)計(jì)模塊連接,用于在所述統(tǒng)計(jì)模塊統(tǒng)計(jì)的當(dāng)前時(shí)刻的平均I/o吞吐量大于第一閾值時(shí),在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間增加用于處理VM的工作線程,以使得增加工作線程后的所述多個(gè)VM的平均I/O吞吐量小于第一閾值;或者,用于在所述統(tǒng)計(jì)模塊統(tǒng)計(jì)的當(dāng)前時(shí)刻的平均I/O吞吐量小于第二閾值時(shí),在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程,以使得減少工作線程后的所述多個(gè)VM的平均I/O吞吐量大于第二閾值;其中,所述第一閾值大于所述第二閾值; 第一調(diào)整模塊,與所述處理模塊連接,用于根據(jù)所述處理模塊增加或減少后的用于處理VM的工作線程,分別調(diào)整所述多個(gè)VM的前端設(shè)備中的隊(duì)列與用于處理VM的工作線程的對(duì)應(yīng)關(guān)系,和所述多個(gè)VM的后端設(shè)備中的隊(duì)列與用于處理VM的工作線程的對(duì)應(yīng)關(guān)系,以便于在所述多個(gè)VM的前端設(shè)備和所述多個(gè)VM的后端設(shè)備之間形成多個(gè)數(shù)據(jù)傳輸通道。
7.如權(quán)利要求6所述的調(diào)整裝置,其特征在于,所述調(diào)整裝置還包括: 判斷模塊,用于在所述統(tǒng)計(jì)模塊統(tǒng)計(jì)的當(dāng)前時(shí)刻的平均I/O吞吐量大于第一閾值時(shí),將在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間增加用于處理VM的工作線程所帶來(lái)的CPU利用率的增長(zhǎng)和所帶來(lái)的I/O吞吐量的增長(zhǎng)進(jìn)行比較; 所述處理模塊,還用于如果所述I/O吞吐量的增長(zhǎng)大于CPU利用率的增長(zhǎng),在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間增加用于處理VM的工作線程,以使得增加工作線程后的所述多個(gè)VM的平均I/O吞吐量小于第一閾值。
8.如權(quán)利要求6所述的調(diào)整裝置,其特征在于,所述調(diào)整裝置還包括: 判斷模塊,用于在所述統(tǒng)計(jì)模塊統(tǒng)計(jì)的當(dāng)前時(shí)刻的平均I/O吞吐量小于第二閾值時(shí),判斷在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程所帶來(lái)的CPU利用率的減少是否導(dǎo)致無(wú)法響應(yīng)所述多個(gè)VM的吞吐量; 所述處理模塊,還用于如果在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程所帶來(lái)的CPU利用率的減少不會(huì)導(dǎo)致無(wú)法響應(yīng)所述多個(gè)VM的吞吐量,在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程,以使得減少工作線程后的所述多個(gè)VM的平均I/O吞吐量大于第二閾值。
9.如權(quán)利要求6-8任一所述的調(diào)整裝置,其特征在于,所述第一調(diào)整模塊具體用于: 在增加或減少后的用于處理VM的工作線程的數(shù)量小于運(yùn)行在所述HOST上VM的數(shù)量時(shí),將所述每個(gè)工作線程分別對(duì)應(yīng)每個(gè)VM的前端設(shè)備中一個(gè)隊(duì)列和每個(gè)VM的后端設(shè)備中一個(gè)隊(duì)列;或者, 在增加或減少后的用于處理VM的工作線程的數(shù)量大于或等于運(yùn)行在所述HOST上VM的數(shù)量時(shí),將獨(dú)占工作線程對(duì)應(yīng)一個(gè)VM的前端設(shè)備和后端設(shè)備中一個(gè)隊(duì)列、以及將共享工作線程對(duì)應(yīng)至少兩個(gè)VM的前端設(shè)備和后端設(shè)備中沒(méi)有被所述獨(dú)占工作線程對(duì)應(yīng)的隊(duì)列,所述用于處理VM的工作線程包括所述獨(dú)占工作線程和所述共享工作線程。
10.如權(quán)利要求6-9任一所述的調(diào)整裝置,其特征在于,所述調(diào)整裝置還包括: 第二調(diào)整模塊,用于調(diào)整所述多個(gè)VM的后端設(shè)備中的隊(duì)列和所述HOST中本地設(shè)備N(xiāo)ative Device中的隊(duì)列的對(duì)應(yīng)關(guān)系,以便于在所述多個(gè)VM的后端設(shè)備和所述NativeDevice之間形成多個(gè)數(shù)據(jù)傳輸通道。
11.一種宿主機(jī)HOST,其特征在于,所述HOST包括:本地設(shè)備N(xiāo)ativeDevice,運(yùn)行在所述Native Device之上的多個(gè)虛擬機(jī)VM的前端設(shè)備和后端設(shè)備,位于所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間的數(shù)據(jù)處理模塊,以及位于所述多個(gè)VM的后端設(shè)備和所述NativeDevice之間的網(wǎng)橋Bridge,其中: 所述數(shù)據(jù)處理模塊用于: 統(tǒng)計(jì)所述多個(gè)VM當(dāng)前時(shí)刻的平均I/O吞吐量; 在當(dāng)前時(shí)刻的平均I/O吞吐量大于第一閾值時(shí),在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間增加用于處理VM的工作線程,以使得增加工作線程后的所述多個(gè)VM的平均I/O吞吐量小于第一閾值;或者,在當(dāng)前時(shí)刻的平均I/O吞吐量小于第二閾值時(shí),HOST在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程,以使得減少工作線程后的所述多個(gè)VM的平均I/O吞吐量大于第二閾值;其中,所述第一閾值大于所述第二閾值; 根據(jù)增加或減少后的用于處理VM的工作線程,分別調(diào)整所述多個(gè)VM的前端設(shè)備中的隊(duì)列與用于處理VM的工作線程的對(duì)應(yīng)關(guān)系,和所述多個(gè)VM的后端設(shè)備中的隊(duì)列與用于處理VM的工作線程的對(duì)應(yīng)關(guān)系, 以便于在所述多個(gè)VM的前端設(shè)備和所述多個(gè)VM的后端設(shè)備之間形成多個(gè)數(shù)據(jù)傳輸通道。
12.如權(quán)利要求11所述的HOST,其特征在于,所述數(shù)據(jù)處理模塊還用于: 將在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間增加用于處理VM的工作線程所帶來(lái)的CPU利用率的增長(zhǎng)和所帶來(lái)的I/O吞吐量的增長(zhǎng)進(jìn)行比較; 如果所述I/O吞吐量的增長(zhǎng)大于CPU利用率的增長(zhǎng),在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間增加用于處理VM的工作線程,以使得增加工作線程后的所述多個(gè)VM的平均I/O吞吐量小于第一閾值。
13.如權(quán)利要求11所述的HOST,其特征在于,所述數(shù)據(jù)處理模塊還用于: 判斷在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程所帶來(lái)的CPU利用率的減少是否導(dǎo)致無(wú)法響應(yīng)所述多個(gè)VM的吞吐量; 如果在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程所帶來(lái)的(PU利用率的減少不會(huì)導(dǎo)致無(wú)法響應(yīng)所述多個(gè)VM的吞吐量,在所述多個(gè)VM的前端設(shè)備和后端設(shè)備之間減少用于處理VM的工作線程,以使得減少工作線程后的所述多個(gè)VM的平均I/O吞吐量大于第二閾值。
全文摘要
本發(fā)明提供了虛擬化平臺(tái)下I/O通道的調(diào)整方法和調(diào)整裝置,應(yīng)用于虛擬化技術(shù)領(lǐng)域,I/O通道的調(diào)整方法包括宿主機(jī)HOS統(tǒng)計(jì)運(yùn)行在該HOST上的多個(gè)虛擬機(jī)VM當(dāng)前時(shí)刻的平均I/O吞吐量;該HOST根據(jù)當(dāng)前時(shí)刻的平均I/O吞吐量在該多個(gè)VM的前端設(shè)備和后端設(shè)備之間增加或減少用于處理VM的工作線程;該HOST調(diào)整該多個(gè)VM的前端設(shè)備和后端設(shè)備中的隊(duì)列與用于處理VM的工作線程的對(duì)應(yīng)關(guān)系。應(yīng)用本發(fā)明,根據(jù)運(yùn)行在HOST上多個(gè)VM的I/O吞吐量動(dòng)態(tài)調(diào)整該多個(gè)VM的前端設(shè)備和后端設(shè)備之間的I/O通道所占用的I/O通道資源,在I/O吞吐量下降時(shí),釋放空閑的I/O通道資源,避免I/O通道資源浪費(fèi);在I/O吞吐量增加時(shí),增加I/O通道資源,提高I/O通道的數(shù)據(jù)傳輸能力。
文檔編號(hào)G06F13/20GK103116517SQ20131002731
公開(kāi)日2013年5月22日 申請(qǐng)日期2013年1月24日 優(yōu)先權(quán)日2013年1月24日
發(fā)明者張潔, 金鑫 申請(qǐng)人:華為技術(shù)有限公司