本發(fā)明涉及計(jì)算資源分配領(lǐng)域,尤其涉及一種針對(duì)虛擬網(wǎng)絡(luò)功能的自適應(yīng)計(jì)算資源分配方法。
背景技術(shù):
網(wǎng)絡(luò)中間盒(middlebox)在當(dāng)今的網(wǎng)絡(luò)架構(gòu)中扮演十分重要的角色,提供各種各樣的功能,包括:數(shù)據(jù)包轉(zhuǎn)發(fā)、流量整形、安全檢查、隱私保護(hù)、性能提升等。但同時(shí),它也存在著不少缺陷,比如:購(gòu)買費(fèi)用高、管理不便、可擴(kuò)展性差、難以直接部署新服務(wù)等。為了解決這些問(wèn)題,網(wǎng)絡(luò)功能虛擬化(nfv,networkfunctionvirtualization)被提出。
nfv的主要思想是利用虛擬化技術(shù),將傳統(tǒng)的基于硬件的、專用的網(wǎng)絡(luò)中間盒以軟件方式來(lái)實(shí)作,運(yùn)行在通用計(jì)算平臺(tái)上(如通用服務(wù)器),而不再局限于硬件架構(gòu)。這些基于軟件實(shí)現(xiàn)的網(wǎng)絡(luò)中間盒稱為虛擬網(wǎng)絡(luò)功能(vnf,virtualnetworkfunction)。網(wǎng)絡(luò)流量常常要經(jīng)過(guò)多個(gè)網(wǎng)絡(luò)中間盒,因此在nfv平臺(tái)中,網(wǎng)絡(luò)服務(wù)的提供是通過(guò)串聯(lián)多個(gè)vnf來(lái)構(gòu)成服務(wù)鏈(servicechain)。vnf的性能問(wèn)題是nfv的挑戰(zhàn)之一,當(dāng)前的趨勢(shì)是借助快速包處理框架(如dpdk)來(lái)提升性能,其特點(diǎn)是利用采用輪詢模式驅(qū)動(dòng)(pollmodedriver),利用輪詢來(lái)避免中斷處理的開(kāi)銷。
在nfv架構(gòu)中,有一個(gè)虛擬化層負(fù)責(zé)將物理資源抽象成虛擬資源。虛擬資源通常以虛擬機(jī)(vm,virtualmachine)的形式呈現(xiàn)給上層,并由kvm、xen等虛擬機(jī)監(jiān)控器(vmm,virtualmachinemonitor)進(jìn)行管理。vnf被部署在vm中,由vmm負(fù)責(zé)提供各種虛擬資源。其中,虛擬計(jì)算資源的提供與分配由vmm調(diào)度器完成。但是,vmm調(diào)度器是為普通虛擬機(jī)設(shè)計(jì)的,其資源分配策略是公平分配,不能很好地適用于vnf。
注意到vnf的工作是由進(jìn)入它的數(shù)據(jù)包(ingresspackets)來(lái)觸發(fā)的,我們可以知道,vnf的計(jì)算資源需求由兩個(gè)主要因素決定:一是入包速率,二是該vnf的類型。因此,對(duì)于一個(gè)服務(wù)鏈來(lái)說(shuō),它的各個(gè)vnf的計(jì)算資源需求很有可能是不同的。然而,現(xiàn)有的vmm調(diào)度器在分配計(jì)算資源時(shí)將公平性放在第一位,這樣的公平分配可能會(huì)造成某些vnf的資源短缺、某些vnf的資源過(guò)剩,從而影響服務(wù)鏈的整體性能。
因此,本領(lǐng)域的技術(shù)人員致力于開(kāi)發(fā)一種針對(duì)虛擬網(wǎng)絡(luò)功能的自適應(yīng)計(jì)算資源分配方法,基于vnf的實(shí)際需求來(lái)分配計(jì)算資源,消除公平分配所造成的性能瓶頸。
技術(shù)實(shí)現(xiàn)要素:
有鑒于現(xiàn)有技術(shù)的上述缺陷,本發(fā)明所要解決的技術(shù)問(wèn)題是開(kāi)發(fā)一種針對(duì)虛擬網(wǎng)絡(luò)功能的自適應(yīng)計(jì)算資源分配方法,基于vnf的實(shí)際需求來(lái)分配計(jì)算資源,消除公平分配所造成的性能瓶頸。
為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種針對(duì)虛擬網(wǎng)絡(luò)功能的自適應(yīng)計(jì)算資源分配方法,包括以下兩個(gè)步驟:
步驟一、預(yù)測(cè)vnf實(shí)時(shí)計(jì)算資源需求;
步驟二、基于vnf的資源需求,重新分配計(jì)算資源。
進(jìn)一步地,步驟一具體包括:
步驟1.1、離線分析不同類型的vnf,得到計(jì)算資源需求量和入包速率之間的參數(shù)關(guān)系;
步驟1.2、在線監(jiān)控每個(gè)vnf的網(wǎng)絡(luò)流量信息,結(jié)合步驟1.1中的參數(shù),預(yù)測(cè)vnf的計(jì)算資源需求量。
進(jìn)一步地,計(jì)算資源分配方法包括直接分配法和增量分配法。
進(jìn)一步地,步驟二采用增量分配法的具體步驟包括:
步驟2.1、統(tǒng)計(jì)每個(gè)vnf的計(jì)算資源實(shí)際使用量,然后計(jì)算每個(gè)vnf的計(jì)算資源實(shí)際使用量和計(jì)算資源需求量之間的差值,找到差值最小的vnf;
步驟2.2、修改差值最小的vnf對(duì)應(yīng)的vcpu線程的優(yōu)先級(jí),給差值最小的vnf增加計(jì)算資源供應(yīng)量,消除性能瓶頸。
進(jìn)一步地,直接分配法具體為:計(jì)算各個(gè)vnf的計(jì)算資源需求的比例,將系統(tǒng)的總計(jì)算資源按照比例向vnf進(jìn)行分配。
進(jìn)一步地,自適應(yīng)計(jì)算資源分配方法使用smpvm和多隊(duì)列網(wǎng)卡。
進(jìn)一步地,不對(duì)vmm調(diào)度器的底層邏輯進(jìn)行修改,借助vmm調(diào)度器所提供的任務(wù)優(yōu)先級(jí)機(jī)制實(shí)現(xiàn)不均衡計(jì)算資源分配。
進(jìn)一步地,通過(guò)調(diào)節(jié)底層vcpu線程的優(yōu)先級(jí),使得任務(wù)獲得更多或更少的計(jì)算資源,實(shí)現(xiàn)為上層vnf分配不同數(shù)量的計(jì)算資源。
技術(shù)效果
通過(guò)監(jiān)測(cè)vnf的網(wǎng)絡(luò)流量信息,并結(jié)合vnf的類型做離線分析,預(yù)測(cè)vnf的實(shí)時(shí)計(jì)算資源需求;再基于實(shí)際需求為vnf重新分配計(jì)算資源,消除傳統(tǒng)公平分配機(jī)制所帶來(lái)的性能瓶頸。在重新分配計(jì)算資源時(shí),既可以采用直接分配法,也可以采用增量分配法,通過(guò)設(shè)置任務(wù)優(yōu)先級(jí)為各個(gè)vnf分配不同數(shù)量的計(jì)算資源,提升網(wǎng)絡(luò)服務(wù)鏈的整體性能。
以下將結(jié)合附圖對(duì)本發(fā)明的構(gòu)思、具體結(jié)構(gòu)及產(chǎn)生的技術(shù)效果作進(jìn)一步說(shuō)明,以充分地了解本發(fā)明的目的、特征和效果。
附圖說(shuō)明
圖1是本發(fā)明的一個(gè)較佳實(shí)施例的一種針對(duì)虛擬網(wǎng)絡(luò)功能的自適應(yīng)計(jì)算資源分配方法的流程示意圖。
具體實(shí)施方式
單個(gè)vnf可能由多個(gè)內(nèi)部組件構(gòu)成,每個(gè)組件可以部署在一個(gè)單獨(dú)的vm中。為了便于表述和理解,本發(fā)明中僅考慮最常見(jiàn)的“一對(duì)一”部署模型,即一個(gè)vnf部署在一個(gè)vm中。
考慮到網(wǎng)絡(luò)流量是隨時(shí)變化的,而vnf對(duì)計(jì)算資源的需求也隨著網(wǎng)絡(luò)流量的變化而變化,本發(fā)明中的vm采用對(duì)成多處理器(smp,symmetricmulti-processor)架構(gòu)。smpvm的一個(gè)重要特性是它能夠很好地適應(yīng)變化的資源需求。當(dāng)工作負(fù)載較低時(shí),smpvm可以和其它vm共享物理核;隨著工作負(fù)載的升高,smpvm可以選擇減少共享,甚至讓每個(gè)虛擬cpu(vcpu,virtualcpu)獨(dú)占一個(gè)物理核。
與此同時(shí),為了充分利用vm的多個(gè)vcpu,每個(gè)vm配備多隊(duì)列網(wǎng)卡。接收端擴(kuò)展(rss,receivesidescaling)技術(shù)負(fù)責(zé)將進(jìn)入vm的數(shù)據(jù)包均分至各個(gè)隊(duì)列,然后由每個(gè)vcpu負(fù)責(zé)處理一個(gè)單獨(dú)的接收/發(fā)送隊(duì)列。vm中的vnf借助快速包處理框架和網(wǎng)卡交互,采用輪詢代替中斷,高效地收發(fā)數(shù)據(jù)包。
如圖1所示,本發(fā)明的一較佳實(shí)施例提供了一種針對(duì)虛擬網(wǎng)絡(luò)功能的自適應(yīng)計(jì)算資源分配方法,包括以下兩個(gè)步驟:
步驟一、預(yù)測(cè)vnf實(shí)時(shí)計(jì)算資源需求;
步驟1.1、離線分析不同類型的vnf,得到計(jì)算資源需求量和入包速率之間的參數(shù)關(guān)系;
步驟1.2、在線監(jiān)控每個(gè)vnf的網(wǎng)絡(luò)流量信息,結(jié)合步驟1.1中的參數(shù),預(yù)測(cè)vnf的計(jì)算資源需求量。
步驟二、基于vnf的資源需求,重新分配計(jì)算資源。
其中步驟二中,計(jì)算資源分配方法包括直接分配法和增量分配法。
步驟二采用增量分配法的具體步驟包括:
步驟2.1、統(tǒng)計(jì)每個(gè)vnf的計(jì)算資源實(shí)際使用量,然后計(jì)算每個(gè)vnf的計(jì)算資源實(shí)際使用量和計(jì)算資源需求量之間的差值,找到差值最小的vnf;
步驟2.2、修改差值最小的vnf對(duì)應(yīng)的vcpu線程的優(yōu)先級(jí),給差值最小的vnf增加計(jì)算資源供應(yīng)量,消除性能瓶頸。當(dāng)定位瓶頸vnf之后,適當(dāng)增加它的計(jì)算資源供應(yīng)量,待系統(tǒng)穩(wěn)定之后再尋找下一個(gè)瓶頸,如此循環(huán)往復(fù)。
步驟二采用直接分配法具體為:計(jì)算各個(gè)vnf的計(jì)算資源需求的比例,將系統(tǒng)的總計(jì)算資源按照比例向vnf進(jìn)行分配。
本發(fā)明的一種針對(duì)虛擬網(wǎng)絡(luò)功能的自適應(yīng)計(jì)算資源分配方法使用smpvm和多隊(duì)列網(wǎng)卡。不對(duì)vmm調(diào)度器的底層邏輯進(jìn)行修改,在重新分配計(jì)算資源時(shí),往往需要為各個(gè)vnf分配不同數(shù)量的計(jì)算資源,借助vmm調(diào)度器所提供的任務(wù)優(yōu)先級(jí)機(jī)制實(shí)現(xiàn)不均衡計(jì)算資源分配。任務(wù)的優(yōu)先級(jí)越高,它所獲得的計(jì)算資源就越多。通過(guò)調(diào)節(jié)底層vcpu線程的優(yōu)先級(jí),使得任務(wù)獲得更多或更少的計(jì)算資源,實(shí)現(xiàn)為上層vnf分配不同數(shù)量的計(jì)算資源。
本發(fā)明的一種針對(duì)虛擬網(wǎng)絡(luò)功能的自適應(yīng)計(jì)算資源分配方法通過(guò)監(jiān)測(cè)vnf的網(wǎng)絡(luò)流量信息,并結(jié)合vnf的類型做離線分析,預(yù)測(cè)vnf的實(shí)時(shí)計(jì)算資源需求;再基于此實(shí)際需求為vnf重新分配計(jì)算資源,消除傳統(tǒng)公平分配機(jī)制所帶來(lái)的性能瓶頸。在重新分配計(jì)算資源時(shí),既可以采用直接分配法,也可以采用增量分配法,通過(guò)設(shè)置任務(wù)優(yōu)先級(jí)為各個(gè)vnf分配不同數(shù)量的計(jì)算資源,提升網(wǎng)絡(luò)服務(wù)鏈的整體性能。
以上詳細(xì)描述了本發(fā)明的較佳具體實(shí)施例。應(yīng)當(dāng)理解,本領(lǐng)域的普通技術(shù)人員無(wú)需創(chuàng)造性勞動(dòng)就可以根據(jù)本發(fā)明的構(gòu)思作出諸多修改和變化。因此,凡本技術(shù)領(lǐng)域中技術(shù)人員依本發(fā)明的構(gòu)思在現(xiàn)有技術(shù)的基礎(chǔ)上通過(guò)邏輯分析、推理或者有限的實(shí)驗(yàn)可以得到的技術(shù)方案,皆應(yīng)在由權(quán)利要求書所確定的保護(hù)范圍內(nèi)。