一種云計(jì)算內(nèi)存資源分配方法
【專利摘要】本發(fā)明公開(kāi)一種云計(jì)算內(nèi)存資源分配方法,云主機(jī)和集群環(huán)境的虛擬機(jī)在運(yùn)行過(guò)程中,通過(guò)Domain0判斷內(nèi)存狀態(tài),如果Domain0內(nèi)存資源足夠且集群中各虛擬機(jī)的內(nèi)存資源充足,則進(jìn)行內(nèi)存自發(fā)調(diào)節(jié);如果Domain0內(nèi)存資源不足,則從其他Domain U中回收內(nèi)存資源,再進(jìn)行內(nèi)存競(jìng)價(jià)調(diào)節(jié);如果集群中虛擬機(jī)處于內(nèi)存資源緊缺,則進(jìn)行內(nèi)存競(jìng)價(jià)調(diào)節(jié)。
【專利說(shuō)明】
一種云計(jì)算內(nèi)存資源分配方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及云計(jì)算虛擬機(jī)技術(shù)領(lǐng)域,尤其涉及云計(jì)算內(nèi)存資源分配方法。
【背景技術(shù)】
[0002] 云計(jì)算主要分為三種服務(wù)服務(wù)層次:(1)基礎(chǔ)設(shè)施即服務(wù)(IaaS); (2)平臺(tái)即服務(wù) (PaaS);(3)軟件即服務(wù)(SaaShlaaS主要采用系統(tǒng)虛擬化技術(shù),通過(guò)虛擬化技術(shù),將一個(gè)或 多個(gè)數(shù)據(jù)中心的硬件資源虛擬化并形成一個(gè)高效靈活的資源池,從而降低基礎(chǔ)設(shè)施的成 本、延緩數(shù)據(jù)中心擴(kuò)建的時(shí)間,以便于提升整個(gè)集群環(huán)境的性能。
[0003] 虛擬技術(shù)的引入改變了傳統(tǒng)計(jì)算機(jī)的架構(gòu),計(jì)算機(jī)架構(gòu)不再是通過(guò)系統(tǒng)來(lái)分配硬 件資源,而是通過(guò)虛擬機(jī)監(jiān)控器即Hypervisor來(lái)分配硬件資源。虛擬機(jī)監(jiān)控器運(yùn)行在硬件 資源的上一層,它主要包括了對(duì)內(nèi)存、CPU以及I/O設(shè)備等資源的虛擬化。從虛擬機(jī)監(jiān)控器角 度來(lái)看,集群環(huán)境中的虛擬機(jī)類似于傳統(tǒng)計(jì)算機(jī)架構(gòu)中的應(yīng)用程序,而虛擬機(jī)監(jiān)控器像0S 一樣,為虛擬機(jī)分配資源。
[0004] 云用戶可以按需分配和調(diào)度資源,從而提高資源的利用率,提升服務(wù)質(zhì)量,并降低 云用戶的總體擁有成本。但由于物理服務(wù)器的資源邊界限制了資源的全局優(yōu)化能力,尤其 是內(nèi)存資源的大小,總是容易成為物理服務(wù)器資源的瓶頸,限制云計(jì)算的大規(guī)模發(fā)展。
[0005] 目前,Xen、VMware、KVM等雖然提供了氣球驅(qū)動(dòng)、頁(yè)面交換和內(nèi)存共享等機(jī)制來(lái)動(dòng) 態(tài)調(diào)整虛擬機(jī)的內(nèi)存,但缺乏對(duì)云計(jì)算內(nèi)存資源的實(shí)時(shí)監(jiān)測(cè),缺乏從全局角度進(jìn)行多虛擬 機(jī)之間的內(nèi)存協(xié)同管理,容易造成過(guò)多的性能損失。
【發(fā)明內(nèi)容】
[0006] 為了解決上述問(wèn)題,本發(fā)明提供一種云計(jì)算內(nèi)存資源分配方法,采用Xen中的氣球 驅(qū)動(dòng)機(jī)制作為內(nèi)存調(diào)節(jié)機(jī)制,使用XenStore完成各部分間的數(shù)據(jù)交互。
[0007] -種云計(jì)算內(nèi)存資源分配方法,包括
[0008] S1、首先分配內(nèi)存給DomainO,在DomainO內(nèi)存足夠的前提下,再分配內(nèi)存給其他 Domain U;
[0009] S2、若DomainO內(nèi)存資源足夠且集群中各虛擬機(jī)的內(nèi)存資源充足,則進(jìn)行內(nèi)存自發(fā) 調(diào)節(jié);若運(yùn)行過(guò)程中,DomainO對(duì)內(nèi)存的需求增多,貝1J從其他Domain U中回收內(nèi)存資源,再進(jìn) 行內(nèi)存競(jìng)價(jià)調(diào)節(jié);若集群環(huán)境中內(nèi)存處于緊缺狀態(tài),即總內(nèi)存無(wú)法滿足所有虛擬機(jī)對(duì)內(nèi)存 的需求,則進(jìn)行內(nèi)存競(jìng)價(jià)調(diào)節(jié)。
[0010] 所述內(nèi)存自發(fā)調(diào)節(jié)具體是指,
[0011] all、假設(shè)Domain 0統(tǒng)計(jì)集群環(huán)境中虛擬機(jī)的數(shù)量為N;
[0012] al2、將集群環(huán)境中的空閑內(nèi)存Mfree平均分為N+2份,每臺(tái)虛擬機(jī)得到Mfree/(N+2); [0013] al3、將剩下的空閑內(nèi)存Mfree/(N+2)內(nèi)存分配給Domain 0〇
[0014]所述內(nèi)存競(jìng)價(jià)調(diào)節(jié)是指,
[0015] a21、Domain0標(biāo)記集群環(huán)境中虛擬機(jī)序列為:K = 1,2,3,4,5,6."n;
[0016] &22、0〇11^;[110分配給每臺(tái)虛擬機(jī)的內(nèi)存大小為也=1]11,1]12,1]13,1114,11^"1]111;
[0017] a23、集群環(huán)境中仍待分配的內(nèi)存記為Sk;
[0018] a24、DomainO獲取Pk(Mk),Pk(Mk)表示分配Mk內(nèi)存給虛擬機(jī)VMk獲得的性能收益;
[0022]則有使得 PKMO+PKMd+Ps (M3)+"_+Pn(Mn)達(dá)到最大。
[0023]本發(fā)明提出了一種云環(huán)境下的內(nèi)存資源分配方法,該方法能夠快速響應(yīng)云環(huán)境中 的虛擬機(jī)對(duì)內(nèi)存需求的動(dòng)態(tài)變化,并且針對(duì)不同的內(nèi)存狀態(tài)信息,能夠采取相應(yīng)的內(nèi)存分 配方法。通過(guò)本發(fā)明,內(nèi)存資源能夠被充分的分配給虛擬機(jī),進(jìn)而提高整個(gè)云環(huán)境中的性 能。
【附圖說(shuō)明】
[0024] 圖1為本發(fā)明實(shí)施例云計(jì)算內(nèi)存資源分配方法流程圖。
【具體實(shí)施方式】
[0025] 為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì) 本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并 不用于限定本發(fā)明。
[0026]本實(shí)施例部署在Xen環(huán)境中,云系統(tǒng)中包括了虛擬機(jī)監(jiān)測(cè)模塊、物理機(jī)監(jiān)測(cè)模塊以 及消息組織模塊和內(nèi)存分配模塊。
[0027] Domain 0主要負(fù)責(zé)虛擬機(jī)的創(chuàng)建、管理和配置工作,并完成設(shè)備驅(qū)動(dòng),相對(duì)于其他 Domain U更加重要。因此,無(wú)論是內(nèi)存緊缺情況還是內(nèi)存充裕的情況下,都需要優(yōu)先分配內(nèi) 存給Domain 0。在滿足Domain 0內(nèi)存需要的前提下,再考慮其他Domain U對(duì)內(nèi)存的需求。
[0028]虛擬機(jī)監(jiān)測(cè)模塊:部署在虛擬機(jī)中,用于監(jiān)視虛擬機(jī)中內(nèi)存的占用情況,及虛擬機(jī) 的性能信息,并預(yù)估下一階段將需要占用多大內(nèi)存以及占用所得內(nèi)存帶來(lái)的性能收益值。 [0029]物理機(jī)監(jiān)測(cè)模塊:部署Domain 0上,用來(lái)監(jiān)測(cè)物理機(jī)主機(jī)中的總內(nèi)存值和空閑內(nèi) 存值,以及運(yùn)行的所有客戶操作系統(tǒng)的最大內(nèi)存信息。
[0030]消息組織模塊:主要將監(jiān)視模塊獲得的信息組織成預(yù)定義格式的消息,再將消息 發(fā)送給DomainO。
[0031]內(nèi)存分配模塊:部署在Domain 0上,針對(duì)不同內(nèi)存狀態(tài)信息,調(diào)用不同的內(nèi)存分配 方法。當(dāng)Domain 0內(nèi)存需求無(wú)法滿足時(shí),從其他Domain U中回收內(nèi)存,并進(jìn)行全局競(jìng)價(jià)調(diào) 節(jié);當(dāng)Domain 0滿足后,若內(nèi)存處于緊缺狀態(tài),Domain 0采取全局競(jìng)價(jià)調(diào)節(jié)方法;當(dāng)Domain 0滿足內(nèi)存需求后,若內(nèi)存處于充裕狀態(tài),則采取自發(fā)調(diào)節(jié)方法。
[0032] 如圖1所示,云主機(jī)和集群中的虛擬機(jī)在運(yùn)行過(guò)程中,通過(guò)DomainO獲取集群環(huán)境 中的信息如虛擬機(jī)數(shù)量、總內(nèi)存大小及已占用的內(nèi)存大小,虛擬機(jī)監(jiān)視器和物理機(jī)監(jiān)視器 讀取本地內(nèi)存信息和虛擬機(jī)性能信息,消息組織模塊將監(jiān)視器獲得的信息按照預(yù)定義的格 式發(fā)送給DomainO JornainO判斷內(nèi)存狀態(tài),如果DomainO內(nèi)存資源足夠且集群中各虛擬機(jī)的 內(nèi)存資源充足,則進(jìn)行內(nèi)存自發(fā)調(diào)節(jié);如果DomainO內(nèi)存資源不足,則從其他Domain U中回 收內(nèi)存資源,再進(jìn)行內(nèi)存競(jìng)價(jià)調(diào)節(jié);如果集群中虛擬機(jī)處于內(nèi)存資源緊缺,則進(jìn)行內(nèi)存競(jìng)價(jià) 調(diào)節(jié)。分配好內(nèi)存資源后,程序得以繼續(xù)運(yùn)行。
[0033] 內(nèi)存自發(fā)調(diào)節(jié)的過(guò)程為:假設(shè)Domain 0統(tǒng)計(jì)集群環(huán)境中虛擬機(jī)的數(shù)量為N;將集群 環(huán)境中的空閑內(nèi)存Mfree平均分為N+2份,每臺(tái)虛擬機(jī)得至ljMfree/(N+2)內(nèi)存;將剩下的空閑內(nèi) 存Mf ree/(N+2)內(nèi)存分配給Domain 0〇
[0034] 內(nèi)存競(jìng)價(jià)調(diào)節(jié)的過(guò)程為:DomainO標(biāo)記集群環(huán)境中虛擬機(jī)序列為:K= 1,2,3,4,5, 6,"n;、DomainO分配給每臺(tái)虛擬機(jī)的內(nèi)存大小為:Mk = mi,m2,m3,m4,m5,"mn;DomianO獲取仍 待分配的內(nèi)存Sk;DomainO獲取Pk(Mk),Pk(Mk)表示分配Mk內(nèi)存給虛擬機(jī)VMk獲得的性能收益; 設(shè) 乂沉為卜+ ,則有 //(民-)= max{似民-,MA-=叉; /: (&) = max $ (Mt) + /二(& - )},則有 fn (Sn) = max [ Pn (Mn) ],fn-i (Sn-i) = Pn-i (Mn-i) +fn (Sn),使得 PKMO+PKMd+PXM3)-…+Pn(Mn)達(dá)到最大。
[0035] 本發(fā)明方案所公開(kāi)的技術(shù)手段不僅限于上述實(shí)施方式所公開(kāi)的技術(shù)手段,還包括 由以上技術(shù)特征任意組合所組成的技術(shù)方案。
【主權(quán)項(xiàng)】
1. 一種云計(jì)算內(nèi)存資源分配方法,其特征在于,包括 51、 首先分配內(nèi)存給DomainO,在DomainO內(nèi)存足夠的前提下,再分配內(nèi)存給其他 DomainU; 52、 若DomainO內(nèi)存資源足夠且集群中各虛擬機(jī)的內(nèi)存資源充足,則進(jìn)行內(nèi)存自發(fā)調(diào) 節(jié);若運(yùn)行過(guò)程中,DomainO對(duì)內(nèi)存的需求增多,貝1J從其他DomainU中回收內(nèi)存資源,再進(jìn)行 內(nèi)存競(jìng)價(jià)調(diào)節(jié);若集群環(huán)境中內(nèi)存處于緊缺狀態(tài),即總內(nèi)存無(wú)法滿足所有虛擬機(jī)對(duì)內(nèi)存的 需求,則進(jìn)行內(nèi)存競(jìng)價(jià)調(diào)節(jié)。2. 根據(jù)權(quán)利要求1所述的云計(jì)算內(nèi)存資源分配方法,其特征在于:所述內(nèi)存自發(fā)調(diào)節(jié)具 體是指, all、假設(shè)Domain 0統(tǒng)計(jì)集群環(huán)境中虛擬機(jī)的數(shù)量為N; al 2、將集群環(huán)境中的空閑內(nèi)存Mfree平均分為N+2份,每臺(tái)虛擬機(jī)得到Mfree/ ( N+2 ); al3、將剩余空閑內(nèi)存2*Mfree/(N+2)分配給Domain 0〇3. 根據(jù)權(quán)利要求1所述的云計(jì)算內(nèi)存資源分配方法,其特征在于:所述內(nèi)存競(jìng)價(jià)調(diào)節(jié)是 指, a21、DomainO標(biāo)記集群環(huán)境中虛擬機(jī)序列為:K=l,2,3,4,5,6'"n; 已22、0〇11^;[110分配給每臺(tái)虛擬機(jī)的內(nèi)存大小為也=1]11,1]12,1]13,1114,1]15,"1]111; a23、集群環(huán)境中仍待分配的內(nèi)存記為Sk; a24、DomainO獲取Pk(Mk),Pk(Mk)表示分配Mk內(nèi)存給虛擬機(jī)VMk獲得的性能收益; a2 5、設(shè) A (乂―,叫)=4 (M ) + max 丨乙;"+乃風(fēng).)!,則有./:: (&)=細(xì)以 a26 n ,/t (Sl:) = max {P, (Mk) + /,,, (5, - Mk) j- 則有fn (Sn) = max [ Pn (Mn) ],fn-i (Sn-i) = Pn-i (Mn-i) +fn(Sn),使得Pi (Mi) +P2 (M2) +P3 (M3)+… +Pn(Mn)達(dá)到最大。
【文檔編號(hào)】G06F9/455GK106055410SQ201610397591
【公開(kāi)日】2016年10月26日
【申請(qǐng)日】2016年6月7日
【發(fā)明人】徐鶴, 丁曄, 李鵬, 王汝傳, 朱楓, 丁杰, 錢聰
【申請(qǐng)人】南京郵電大學(xué)