本申請(qǐng)涉及信息技術(shù)領(lǐng)域,尤其涉及一種任務(wù)遷移的方法及控制器。
背景技術(shù):
傳統(tǒng)信息技術(shù)(英文:informationtechnology,it)架構(gòu)中的網(wǎng)絡(luò),根據(jù)業(yè)務(wù)需求部署上線以后,如果業(yè)務(wù)需求發(fā)生變動(dòng),重新修改相應(yīng)網(wǎng)絡(luò)設(shè)備(路由器、交換機(jī)、防火墻)上的配置是一件非常繁瑣的事情。在互聯(lián)網(wǎng)/移動(dòng)互聯(lián)網(wǎng)瞬息萬(wàn)變的業(yè)務(wù)環(huán)境下,網(wǎng)絡(luò)的高穩(wěn)定與高性能還不足以滿足業(yè)務(wù)需求,靈活性和敏捷性反而更為關(guān)鍵。軟件定義網(wǎng)絡(luò)(英文:softwaredefinednetwork,sdn)所做的事是將網(wǎng)絡(luò)設(shè)備上的控制權(quán)分離出來(lái),由集中的控制器管理,無(wú)須依賴底層網(wǎng)絡(luò)設(shè)備(路由器、交換機(jī)、防火墻),屏蔽了來(lái)自底層網(wǎng)絡(luò)設(shè)備的差異。而控制權(quán)是完全開(kāi)放的,用戶可以自定義任何想實(shí)現(xiàn)的網(wǎng)絡(luò)路由和傳輸規(guī)則策略,從而更加靈活和智能。
對(duì)于目前的sdn網(wǎng)絡(luò)來(lái)說(shuō),現(xiàn)有的分布式系統(tǒng)為sdn控制器分配的任務(wù)不夠均衡,多個(gè)控制器之間的任務(wù)調(diào)度不夠靈活。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)實(shí)施例所要解決的技術(shù)問(wèn)題在于,提供一種任務(wù)遷移的方法及控制器,以期使得控制器集群系統(tǒng)中的任務(wù)分布更均衡,提升sdn網(wǎng)絡(luò)的整體性能。
第一方面,本申請(qǐng)的實(shí)施例提供了一種任務(wù)遷移的方法,應(yīng)用于控制器集群系統(tǒng)中,可包括:
控制器計(jì)算所述控制器上每一個(gè)任務(wù)遷移到所述控制器集群系統(tǒng)中其它控制器的衰減系數(shù);其中,任務(wù)的衰減系數(shù)與所述任務(wù)遷移所需要傳遞消息的數(shù)量以及消息傳遞時(shí)長(zhǎng)負(fù)相關(guān);
所述控制器根據(jù)所述衰減系數(shù)確定待遷移任務(wù)以及所述待遷移任務(wù)遷移的目標(biāo)控制器;
所述控制器將所述待遷移任務(wù)向所述目標(biāo)控制器進(jìn)行任務(wù)遷移。
由于衰減系數(shù)與任務(wù)遷移所需要傳遞消息的數(shù)量以及消息傳遞時(shí)長(zhǎng)負(fù)相關(guān),因此達(dá)到預(yù)設(shè)閾值被遷移的任務(wù)是一些傳遞消息的數(shù)量較少,消息傳遞時(shí)長(zhǎng)較短的任務(wù),遷移需要傳遞的消息數(shù)量較多,消息傳遞時(shí)長(zhǎng)較長(zhǎng)的任務(wù)則可以不遷移,從而優(yōu)化了控制器的處理效率,提高了控制器處理任務(wù)的能力,進(jìn)而提高整個(gè)系統(tǒng)處理任務(wù)的吞吐量,最終實(shí)現(xiàn)系統(tǒng)性能的整體提升。
在一種可能的實(shí)現(xiàn)方式中,觸發(fā)所述控制器計(jì)算所述控制器上每一個(gè)任務(wù)遷移到所述控制器集群系統(tǒng)中其它控制器的衰減系數(shù)的方式包括以下任意一種:
接收調(diào)度器分配的任務(wù);
接收所述控制器集群系統(tǒng)中其它控制器遷移的任務(wù);
所述控制器上的定時(shí)器配置的超時(shí)時(shí)間到達(dá)。
通過(guò)靈活的配置計(jì)算觸發(fā)方式,可以增加任務(wù)遷移的靈活性,提升sdn網(wǎng)絡(luò)的適應(yīng)性。
在一種可能的實(shí)現(xiàn)方式中,根據(jù)所述衰減系數(shù)確定待遷移任務(wù)以及所述待遷移任務(wù)遷移的目標(biāo)控制器,包括:
將所述控制器上衰減系數(shù)由大到小排在前n個(gè)的任務(wù)確定為待遷移任務(wù);n為大于或等于1的整數(shù);
根據(jù)所述待遷移任務(wù)的衰減系數(shù)確定所述待遷移任務(wù)遷移的目標(biāo)控制器。
由于控制器隨時(shí)可能接收到調(diào)度器分配的任務(wù)以及其它控制器遷移的任務(wù),因此,其接收的任務(wù)的rf排名可能隨時(shí)變化,在進(jìn)行遷移時(shí),可以設(shè)定n值來(lái)確定需要進(jìn)行遷移的任務(wù)的數(shù)量,再結(jié)合rf的大小確定具體要遷移哪些任務(wù),從而可以在任務(wù)遷移占用的資源極少的情況下,實(shí)現(xiàn)sdn網(wǎng)絡(luò)任務(wù)的合理調(diào)度,從而提升整個(gè)網(wǎng)絡(luò)的性能。
在一種可能的實(shí)現(xiàn)方式中,還包括:
當(dāng)所述控制器上的任務(wù)的衰減系數(shù)均小于預(yù)設(shè)閾值時(shí),停止任務(wù)遷移。
通過(guò)配置預(yù)設(shè)閾值來(lái)停止任務(wù)遷移,從而可以確保控制器上的任務(wù)衰減系數(shù)較大的都已遷移完成,提高了sdn網(wǎng)絡(luò)的性能。
在一種可能的實(shí)現(xiàn)方式中,還包括:
停止任務(wù)遷移后,將所述控制器上的任務(wù)數(shù)量與所述控制器集群系統(tǒng)中其它控制器上的任務(wù)數(shù)量分別進(jìn)行比較;
若任務(wù)數(shù)量之差達(dá)到預(yù)設(shè)的不平衡參數(shù),則降低所述預(yù)設(shè)閾值,再次進(jìn)行任務(wù)遷移。
通過(guò)增加各個(gè)控制器之間任務(wù)數(shù)量之差與不平衡參數(shù)的比較,可以根據(jù)比較結(jié)果靈活調(diào)整rf的預(yù)設(shè)閾值,從而確保任務(wù)遷移后各個(gè)控制器的任務(wù)數(shù)量比較均衡,調(diào)度方式更加靈活,利于提升各個(gè)控制器的任務(wù)處理效率,提升了sdn網(wǎng)絡(luò)的靈活性和工作效率。
第二方面,本申請(qǐng)的實(shí)施例提供了一種控制器,所述控制器為控制器集群系統(tǒng)中的任意一個(gè)控制器,可包括:
處理單元,用于計(jì)算所述控制器上每一個(gè)任務(wù)遷移到所述控制器集群系統(tǒng)中其它控制器的衰減系數(shù);其中,任務(wù)的衰減系數(shù)與所述任務(wù)遷移所需要傳遞消息的數(shù)量以及消息傳遞時(shí)長(zhǎng)負(fù)相關(guān);根據(jù)所述衰減系數(shù)確定待遷移任務(wù)以及所述待遷移任務(wù)遷移的目標(biāo)控制器;
收發(fā)單元,用于將所述待遷移任務(wù)向所述目標(biāo)控制器進(jìn)行任務(wù)遷移。
在一種可能的實(shí)現(xiàn)方式中,觸發(fā)所述處理單元計(jì)算所述控制器上每一個(gè)任務(wù)遷移到所述控制器集群系統(tǒng)中其它控制器的衰減系數(shù)的方式包括以下任意一種:
所述收發(fā)單元接收調(diào)度器分配的任務(wù);
所述收發(fā)單元接收所述控制器集群系統(tǒng)中其它控制器遷移的任務(wù);
所述控制器上的定時(shí)器配置的超時(shí)時(shí)間到達(dá)。
在一種可能的實(shí)現(xiàn)方式中,所述處理單元用于:
將所述控制器上衰減系數(shù)由大到小排在前n個(gè)的任務(wù)確定為待遷移任務(wù);n為大于或等于1的整數(shù);
根據(jù)所述待遷移任務(wù)的衰減系數(shù)確定所述待遷移任務(wù)遷移的目標(biāo)控制器。
在一種可能的實(shí)現(xiàn)方式中,所述收發(fā)單元還用于當(dāng)所述控制器上的任務(wù)的衰減系數(shù)均小于預(yù)設(shè)閾值時(shí),停止任務(wù)遷移。
在一種可能的實(shí)現(xiàn)方式中,所述處理單元還用于停止任務(wù)遷移后,將所述控制器上的任務(wù)數(shù)量與所述控制器集群系統(tǒng)中其它控制器上的任務(wù)數(shù)量分別進(jìn)行比較;
若任務(wù)數(shù)量之差達(dá)到預(yù)設(shè)的不平衡參數(shù),則降低所述預(yù)設(shè)閾值,再次進(jìn)行任務(wù)遷移。
第三方面,本申請(qǐng)的實(shí)施例提供了一種控制器,所述控制器為控制器集群系統(tǒng)中的任意一個(gè)控制器,可包括:
處理器、存儲(chǔ)器和總線,所述處理器和存儲(chǔ)器通過(guò)總線連接,其中,所述存儲(chǔ)器用于存儲(chǔ)一組程序代碼,所述處理器用于調(diào)用所述存儲(chǔ)器中存儲(chǔ)的程序代碼,執(zhí)行本申請(qǐng)實(shí)施例第一方面或第一方面任一實(shí)現(xiàn)方式中的步驟。
第四方面,本申請(qǐng)的實(shí)施例提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中存儲(chǔ)有指令,當(dāng)其在計(jì)算機(jī)上運(yùn)行時(shí),實(shí)現(xiàn)上述第一方面或第一方面的任意可能的實(shí)現(xiàn)方式中的方法。
附圖說(shuō)明
為了更清楚地說(shuō)明本申請(qǐng)實(shí)施例或背景技術(shù)中的技術(shù)方案,下面將對(duì)本申請(qǐng)實(shí)施例或背景技術(shù)中所需要使用的附圖進(jìn)行說(shuō)明。
圖1本申請(qǐng)實(shí)施例提供的一種sdn網(wǎng)絡(luò)的架構(gòu)示意圖;
圖2是本申請(qǐng)實(shí)施例提供的一種任務(wù)遷移的方法的流程示意圖;
圖3是本申請(qǐng)實(shí)施例提供的另一種任務(wù)遷移的方法的流程示意圖;
圖4是本申請(qǐng)實(shí)施例提供的又一種任務(wù)遷移的方法的流程示意圖;
圖5是本申請(qǐng)實(shí)施例提供的一種控制器的組成示意圖;
圖6是本申請(qǐng)實(shí)施例提供的另一種控制器的組成示意圖。
具體實(shí)施方式
下面結(jié)合本申請(qǐng)實(shí)施例中的附圖對(duì)本申請(qǐng)的實(shí)施例進(jìn)行描述。本申請(qǐng)的說(shuō)明書(shū)和權(quán)利要求書(shū)及上述附圖中的術(shù)語(yǔ)“包括”和“具有”以及它們?nèi)魏巫冃危鈭D在于覆蓋不排他的包含。例如包含了一系列步驟或單元的過(guò)程、方法、系統(tǒng)、產(chǎn)品或設(shè)備沒(méi)有限定于已列出的步驟或單元,而是可選地還包括沒(méi)有列出的步驟或單元,或可選地還包括對(duì)于這些過(guò)程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
請(qǐng)參見(jiàn)圖1,圖1是本發(fā)明實(shí)施例提供的一種sdn網(wǎng)絡(luò)的架構(gòu)示意圖,該sdn網(wǎng)絡(luò)中包括sdn的架構(gòu)自上而下可以分為五個(gè)部分:應(yīng)用層、北向接口、控制層、南向接口、網(wǎng)絡(luò)設(shè)備層。
應(yīng)用層:包括各種不同的業(yè)務(wù)和應(yīng)用,應(yīng)用層通過(guò)控制層提供的編程接口對(duì)底層設(shè)備進(jìn)行編程,開(kāi)發(fā)各種業(yè)務(wù)應(yīng)用,實(shí)現(xiàn)豐富多彩的業(yè)務(wù)創(chuàng)新。
北向接口:連接應(yīng)用層與控制層的接口,使得各項(xiàng)sdn應(yīng)用能夠便捷的調(diào)用底層的網(wǎng)絡(luò)資源。
控制層:是整個(gè)sdn網(wǎng)絡(luò)的核心,集中管理網(wǎng)絡(luò)中的所有設(shè)備,把整個(gè)網(wǎng)絡(luò)看做統(tǒng)一的資源池,根據(jù)用戶不同的需求以及全局網(wǎng)絡(luò)拓?fù)?,靈活動(dòng)態(tài)的分配資源。對(duì)下層,通過(guò)標(biāo)準(zhǔn)的協(xié)議與網(wǎng)絡(luò)設(shè)備層進(jìn)行通信;對(duì)上層,通過(guò)開(kāi)放接口向應(yīng)用層提供對(duì)網(wǎng)絡(luò)資源的控制能力。
南向接口:連接控制層與網(wǎng)絡(luò)設(shè)備的接口,實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)設(shè)備狀態(tài)、數(shù)據(jù)流量轉(zhuǎn)發(fā)的管控。
網(wǎng)絡(luò)設(shè)備層:即硬件設(shè)備層,包含組成整個(gè)it基礎(chǔ)架構(gòu)的網(wǎng)絡(luò)中的所有物理設(shè)備,比方說(shuō)交換機(jī)、路由器等等。網(wǎng)絡(luò)設(shè)備層主要負(fù)責(zé)數(shù)據(jù)處理、轉(zhuǎn)發(fā)等工作。
在本申請(qǐng)實(shí)施例中,控制層可包括調(diào)度器(英文“scheduler”)及由該調(diào)度器管理的一個(gè)以上的控制器(英文:controller),網(wǎng)絡(luò)設(shè)備層可以包括但不限于交換機(jī)(英文:switch)等網(wǎng)絡(luò)設(shè)備,如除了圖1所示的交換機(jī)之外,還可以包括諸如路由器、網(wǎng)關(guān)設(shè)備、安全設(shè)備等其它網(wǎng)絡(luò)設(shè)備。
需要說(shuō)明的時(shí),在本申請(qǐng)實(shí)施例中,控制器功能有多個(gè),控制器的一個(gè)功能可以理解為一個(gè)應(yīng)用,當(dāng)需要實(shí)現(xiàn)控制器的一個(gè)功能時(shí),調(diào)度器可以把一個(gè)與控制器的功能對(duì)應(yīng)的應(yīng)用分解成多個(gè)任務(wù),讓多個(gè)控制器去執(zhí)行上述多個(gè)任務(wù),從而完成一個(gè)應(yīng)用的功能。每一個(gè)任務(wù)之間可以用消息(英文:message)進(jìn)行傳遞;在控制器上執(zhí)行任務(wù)可以被消息或者控制器上設(shè)置的定時(shí)器超時(shí)誘發(fā)。由于現(xiàn)有的任務(wù)調(diào)度方式不夠靈活,無(wú)法充分發(fā)揮sdn網(wǎng)絡(luò)的性能。本申請(qǐng)?jiān)谡{(diào)度器進(jìn)行任務(wù)調(diào)度之后,控制器可以對(duì)任務(wù)進(jìn)行遷移,從而提升sdn網(wǎng)絡(luò)的性能。
下面將結(jié)合圖2-圖5對(duì)本申請(qǐng)的任務(wù)遷移的方法進(jìn)行詳細(xì)說(shuō)明。
圖2是本申請(qǐng)實(shí)施例提供的一種任務(wù)遷移的方法的流程示意圖,該方法應(yīng)用于控制器集群系統(tǒng)中,包括但不限于如下步驟:
s201,控制器計(jì)算所述控制器上每一個(gè)任務(wù)遷移到所述控制器集群系統(tǒng)中其它控制器的衰減系數(shù)(英文:reductionfactor,rf)。
其中,任務(wù)的衰減系數(shù)與所述任務(wù)遷移所需要傳遞消息的數(shù)量以及消息傳遞時(shí)長(zhǎng)負(fù)相關(guān)。即,對(duì)于所述控制器上的任意一個(gè)具體的任務(wù)而言,一個(gè)任務(wù)的衰減系數(shù)可以根據(jù)該任務(wù)遷移到控制器集群系統(tǒng)中某個(gè)具體的控制器時(shí)所需要傳遞消息的數(shù)量以及消息傳遞時(shí)長(zhǎng)確定。
例如,當(dāng)前控制器為第一控制器,其被分配了3個(gè)任務(wù),控制器集群系統(tǒng)中的控制器還包括第二控制器和第三控制器;則第一控制器可以計(jì)算這3個(gè)任務(wù)分別遷移到第二控制器和第三控制器的rf。
每個(gè)任務(wù)在進(jìn)行遷移時(shí)需要傳遞的消息的數(shù)量可能相同,也可能不同,例如,上述3個(gè)任務(wù)中,任務(wù)1需要傳遞2條消息,任務(wù)2需要傳遞3條消息,任務(wù)3需要傳遞3條消息。此處的消息傳遞時(shí)長(zhǎng)可以是兩個(gè)控制器之間傳遞一條消息的時(shí)長(zhǎng)。rf與任務(wù)遷移所需要傳遞消息的數(shù)量以及消息傳遞時(shí)長(zhǎng)負(fù)相關(guān)表示,傳遞消息的數(shù)量越多,rf值越小,消息傳遞時(shí)長(zhǎng)越大,rf值越小。其也可以稱為成反比,即傳遞消息的數(shù)量與rf值成反比,消息傳遞時(shí)長(zhǎng)與rf值成反比??蛇x地,其可以根據(jù)各種可能的公式進(jìn)行計(jì)算:如rf=n/(x*y),n為預(yù)設(shè)的正數(shù)調(diào)整因子,x為傳遞消息的數(shù)量,y為消息傳遞時(shí)長(zhǎng);或者rf=n/(x+y),或者其它可表示rf與x和y負(fù)相關(guān)的任意公式,本發(fā)明實(shí)施例不作任何限定。
需要說(shuō)明的是,此處的消息傳遞時(shí)長(zhǎng)也可以是根據(jù)兩個(gè)控制器之間遷移任務(wù)發(fā)送的多條消息的總消息傳遞時(shí)長(zhǎng),其同樣可以根據(jù)上述各種公式計(jì)算得到rf,此處不再贅述。
可選地,在步驟s201之前,還可以包括但不限于步驟s200,步驟s200可用于觸發(fā)控制器執(zhí)行計(jì)算衰減系數(shù)的步驟。
觸發(fā)所述控制器計(jì)算所述控制器上每一個(gè)任務(wù)遷移到所述控制器集群系統(tǒng)中其它控制器的衰減系數(shù)的方式可以包括但不限于以下任意一種:
控制器接收調(diào)度器分配的任務(wù)。
控制器接收所述控制器集群系統(tǒng)中其它控制器遷移的任務(wù);
控制器上的定時(shí)器配置的超時(shí)時(shí)間到達(dá)。
例如,若控制器接收調(diào)度器分配的任務(wù),即調(diào)度器進(jìn)行任務(wù)初始化分配。在進(jìn)行任務(wù)初始化分配時(shí),調(diào)度器可以將處理輸入輸出(英文:inputoutput,io)任務(wù)的線程就近分配給本地的控制器;可以將io任務(wù)可以放在本地,避免遷移,其它非io的任務(wù)可以遷移,當(dāng)然,io任務(wù)也可以根據(jù)用戶需求分配給任意控制器并進(jìn)行遷移,本發(fā)明實(shí)施例不作任何限定。
其它任務(wù)可以根據(jù)輪詢的方式分配給其它控制器;或者也可以根據(jù)當(dāng)前各個(gè)控制器的資源利用率如處理器利用率、內(nèi)存利用率等來(lái)進(jìn)行初始化分配,如給處理器利用率較大的控制器分配較少的任務(wù),給處理器利用率較小的控制器分配較多的任務(wù),本發(fā)明實(shí)施例同樣不作任何限定。任務(wù)初始化分配好之后,控制器節(jié)點(diǎn)將接收到調(diào)度器分配的任務(wù),此時(shí)便可以使用本申請(qǐng)實(shí)施例所述的方法來(lái)進(jìn)行任務(wù)遷移。
若接收控制器集群系統(tǒng)中其它控制器遷移的任務(wù),則其它控制器將會(huì)向當(dāng)前控制器發(fā)送消息,可以由消息觸發(fā)衰減系數(shù)計(jì)算;當(dāng)然,還可以通過(guò)在控制器上配置定時(shí)器的超時(shí)時(shí)間,當(dāng)超時(shí)時(shí)間到達(dá)時(shí)便執(zhí)行計(jì)算衰減系數(shù)的步驟。
s202,根據(jù)所述衰減系數(shù)確定待遷移任務(wù)以及所述待遷移任務(wù)遷移的目標(biāo)控制器。
s203,將所述待遷移任務(wù)向所述目標(biāo)控制器進(jìn)行任務(wù)遷移。
可選地,在步驟s202中,可以設(shè)定一個(gè)用于與衰減系數(shù)比較的預(yù)設(shè)閾值,例如,當(dāng)前控制器為第一控制器,當(dāng)?shù)谝豢刂破魃系娜蝿?wù)b由第一控制器遷移到第二控制器的rf最大且達(dá)到預(yù)設(shè)閾值時(shí),則可以確定該任務(wù)為待遷移任務(wù),遷移的目標(biāo)控制器為第二控制器?;蛘?,還可以將第一控制器上的所有任務(wù)根據(jù)衰減系數(shù)的大小排序,將排序靠前的n個(gè)任務(wù)確定為待遷移任務(wù),由于衰減系數(shù)是根據(jù)當(dāng)前控制器與目標(biāo)控制器之間的需要傳遞消息的數(shù)量和消息傳遞時(shí)長(zhǎng)確定的,因此,當(dāng)根據(jù)衰減系數(shù)確定了待傳輸任務(wù)之后,由衰減系數(shù)與目標(biāo)控制器的對(duì)應(yīng)關(guān)系也就可以確定目標(biāo)控制器。
若選擇使用預(yù)設(shè)閾值與衰減系數(shù)比較來(lái)確定待遷移任務(wù),例如,當(dāng)前控制器為第一控制器,其一共有3個(gè)任務(wù),調(diào)度器管理的其它控制器還包括第二控制器和第三控制器;則第一控制器可以計(jì)算這3個(gè)任務(wù)分別遷移到第二控制器和第三控制器的rf。任務(wù)1需要傳遞2條消息,任務(wù)2需要傳遞3條消息,任務(wù)3需要傳遞3條消息。第一控制器與第二控制器之間的消息傳遞時(shí)長(zhǎng)為2ms,第一控制器與第三控制器之間的消息傳遞時(shí)長(zhǎng)為4ms,如果使用rf=n/(x*y)的公式進(jìn)行計(jì)算,n取值為120。則可以得出3個(gè)任務(wù)分別進(jìn)行遷移時(shí)的rf:
rf112=120/2*2=30;
rf123=120/2*4=15;
rf212=120/3*2=20;
rf223=120/3*4=10;
rf312=120/3*2=20;
rf323=120/3*4=10;
其中,rfijk表示任務(wù)i從第j控制器遷移到第k控制器的衰減系數(shù)。
當(dāng)預(yù)設(shè)閾值為20的時(shí)候,則第一控制器上的任務(wù)1遷移到第二控制器為rf112=30,可以將任務(wù)1遷移到第二控制器,同理,可以將任務(wù)2和任務(wù)3也遷移到第二控制器上;當(dāng)預(yù)設(shè)閾值為15的時(shí)候,第一控制器可以將任務(wù)1遷移到第二控制器,也可以將任務(wù)1遷移到第三控制器,由于遷移到第二控制器的rf更大,因此可以遷移到第二控制器,當(dāng)然,還可以結(jié)合第二控制器上當(dāng)前的任務(wù)數(shù)量或資源利用率如處理器利用率同時(shí)進(jìn)行參照,當(dāng)?shù)诙刂破魃先蝿?wù)數(shù)量較多或資源利用率較高時(shí),也可以遷移到第三控制器。
可選地,當(dāng)前控制器如上述的第一控制器在進(jìn)行任務(wù)遷移時(shí),也可能會(huì)接收來(lái)自調(diào)度器分配的任務(wù)或所述其它控制器如第二控制器和/或第三控制器遷移的任務(wù)。此時(shí),第一控制器可以配置一個(gè)用于任務(wù)遷移的定時(shí)器,在定時(shí)器的超時(shí)時(shí)間內(nèi)對(duì)遷入的任務(wù)計(jì)算rf,并根據(jù)預(yù)設(shè)閾值判斷是否將其再次遷移;或者也可以在定時(shí)器的超時(shí)時(shí)間內(nèi)先不作處理,等待下一個(gè)超時(shí)時(shí)間進(jìn)行rf計(jì)算并決定是否遷移?;蛘?,還可以在接收到任一一個(gè)任務(wù)時(shí)進(jìn)行rf計(jì)算并決定是否遷移,本發(fā)明實(shí)施例不作任何限定。
在本實(shí)施例中,控制器可以計(jì)算每一個(gè)任務(wù)遷移到控制器集群系統(tǒng)中其它控制器的衰減系數(shù),然后根據(jù)衰減系數(shù)確定待遷移任務(wù)及遷移的目標(biāo)控制器并進(jìn)行遷移,由于衰減系數(shù)與任務(wù)遷移所需要傳遞消息的數(shù)量以及消息傳遞時(shí)長(zhǎng)負(fù)相關(guān),因此達(dá)到預(yù)設(shè)閾值被遷移的任務(wù)是一些傳遞消息的數(shù)量較少,消息傳遞時(shí)長(zhǎng)較短的任務(wù),遷移需要傳遞的消息數(shù)量較多,消息傳遞時(shí)長(zhǎng)較長(zhǎng)的任務(wù)則可以不遷移,從而優(yōu)化了控制器的處理效率,提高了控制器處理任務(wù)的能力,進(jìn)而提高整個(gè)系統(tǒng)處理任務(wù)的吞吐量,最終實(shí)現(xiàn)系統(tǒng)性能的整體提升。
圖3是本申請(qǐng)實(shí)施例提供的另一種任務(wù)遷移的方法的流程示意圖,步驟s301和步驟s201相同,s303與步驟s203相同,此處不再贅述。本實(shí)施例中,所述方法還可以包括但不限于如下步驟:
s302,將所述控制器上衰減系數(shù)由大到小排在前n個(gè)的任務(wù)確定為待遷移任務(wù),根據(jù)所述待遷移任務(wù)的衰減系數(shù)確定所述待遷移任務(wù)遷移的目標(biāo)控制器;n為大于或等于1的整數(shù)。
s304,當(dāng)所述控制器上的任務(wù)的衰減系數(shù)均小于預(yù)設(shè)閾值時(shí),停止任務(wù)遷移。
可選地,n可以由用戶實(shí)時(shí)設(shè)置,也可以由控制器生產(chǎn)廠家預(yù)先設(shè)定。上述預(yù)設(shè)閾值可以由用戶進(jìn)行實(shí)時(shí)設(shè)置,也可以由生產(chǎn)商在設(shè)備出廠時(shí)進(jìn)行默認(rèn)設(shè)置或者設(shè)置多個(gè)選項(xiàng)供用戶選擇,此處不作任何限定。
由于控制器隨時(shí)可能接收到調(diào)度器分配的任務(wù)以及其它控制器遷移的任務(wù),因此,其接收的任務(wù)的rf排名可能隨時(shí)變化,在進(jìn)行遷移時(shí),可以設(shè)定n值來(lái)確定需要進(jìn)行遷移的任務(wù)的數(shù)量,再結(jié)合rf的大小確定具體要遷移哪些任務(wù),當(dāng)任務(wù)遷移執(zhí)行到控制器上的任務(wù)的衰減系數(shù)均小于所述預(yù)設(shè)閾值時(shí),便可以停止任務(wù)遷移。
在本實(shí)施例中,描述了任務(wù)遷移的具體實(shí)現(xiàn)方式,通過(guò)上述方式可以在任務(wù)遷移占用的資源極少的情況下,實(shí)現(xiàn)sdn網(wǎng)絡(luò)任務(wù)的合理調(diào)度,從而提升整個(gè)網(wǎng)絡(luò)的性能。
圖4是本申請(qǐng)實(shí)施例提供的又一種任務(wù)遷移的方法的流程示意圖,步驟s401-s404步驟s301-s304相同,此處不再贅述。本實(shí)施例中,所述方法還可以包括但不限于如下步驟:
s405,停止任務(wù)遷移后,將所述控制器上的任務(wù)數(shù)量與所述控制器集群系統(tǒng)中其它控制器上的任務(wù)數(shù)量分別進(jìn)行比較。
s406,若任務(wù)數(shù)量之差達(dá)到預(yù)設(shè)的不平衡參數(shù),則降低所述預(yù)設(shè)閾值,再次進(jìn)行任務(wù)遷移。
需要說(shuō)明的是,所述控制器與任意一個(gè)其它控制器的任務(wù)數(shù)量之差達(dá)到預(yù)設(shè)的不平衡參數(shù),都可以觸發(fā)降低預(yù)設(shè)閾值,再次進(jìn)行任務(wù)遷移的步驟。
其中,任務(wù)數(shù)量也可以使用隊(duì)列長(zhǎng)度表征,如任務(wù)數(shù)量為10,則可以稱隊(duì)列長(zhǎng)度為10。
當(dāng)根據(jù)預(yù)設(shè)閾值進(jìn)行任務(wù)遷移之后,有可能出現(xiàn)控制器之間任務(wù)數(shù)量不均衡的情況,才因此,可以將控制器上的任務(wù)數(shù)量與其它控制器上的任務(wù)數(shù)量進(jìn)行比較。通過(guò)設(shè)定不平衡參數(shù),若任務(wù)數(shù)量之差達(dá)到預(yù)設(shè)的不平衡參數(shù),則說(shuō)明控制器之間的任務(wù)數(shù)量還不夠均衡,例如停止任務(wù)遷移后,第一控制器上的任務(wù)為3個(gè),第二控制器上的任務(wù)為10個(gè),第三控制器上的任務(wù)為2個(gè),則此時(shí)任務(wù)數(shù)量之差分別為7和8,若不平衡參數(shù)為2,則此時(shí)可以降低rf的預(yù)設(shè)閾值,再次按上述圖1-圖3中調(diào)度任務(wù)的方法進(jìn)行任務(wù)遷移,直至三個(gè)控制器之間的任務(wù)數(shù)量之差小于2。
下面以交換機(jī)加入網(wǎng)絡(luò)的應(yīng)用為例進(jìn)行說(shuō)明:
一個(gè)新的交換機(jī)加入網(wǎng)絡(luò)后會(huì)啟動(dòng)四個(gè)相應(yīng)的任務(wù),init、query、collect、route。這四個(gè)任務(wù)的作用分別如下:
init:負(fù)責(zé)接管剛加入的交換機(jī)
query:查詢交換的狀態(tài)
collect:收集交換機(jī)信息
route:針對(duì)搜集到的信息,調(diào)度器讓相應(yīng)的控制器下發(fā)流表,讓交換機(jī)根據(jù)更新的流表轉(zhuǎn)發(fā)數(shù)據(jù)包,使包的轉(zhuǎn)發(fā)更有效率。route這里是一個(gè)全局的操作,并不是針對(duì)某一個(gè)交換機(jī)做的操作,指的是所有交換機(jī)都更新流表,同時(shí)更改數(shù)據(jù)包的轉(zhuǎn)發(fā)對(duì)象。
交換機(jī)0(即新加入的交換機(jī))向調(diào)度器發(fā)送交換機(jī)加入消息;
調(diào)度器給交換機(jī)0選擇第一控制器,把init任務(wù)發(fā)送給第一控制器;
第一控制器執(zhí)行init任務(wù),接管交換機(jī)0;
調(diào)度器為query任務(wù)、collect任務(wù)用輪詢或其它的形式分別選擇一個(gè)控制器如分別選擇第二控制器或第三控制器;
調(diào)度器還可以根據(jù)初始分配的超時(shí)時(shí)間來(lái)為route任務(wù)選擇一個(gè)控制器如第二控制器;
當(dāng)任務(wù)初始化分配完成之后,各個(gè)控制器便可以計(jì)算自身的任務(wù)遷移到控制器集群系統(tǒng)中其它控制器的rf,例如query任務(wù)的遷移到第三控制器的rf較大,則可以將query任務(wù)遷移到第三控制器,如果任務(wù)遷移后各個(gè)控制器的任務(wù)數(shù)量不滿足不平衡參數(shù)的設(shè)定,則可以再次進(jìn)行遷移。
需要說(shuō)明的是,除了由控制器計(jì)算rf并決定是否進(jìn)行任務(wù)遷移之外,也可以由調(diào)度器進(jìn)行統(tǒng)一調(diào)度,此時(shí),各個(gè)控制器在計(jì)算了各自的任務(wù)遷移相關(guān)的rf之后,可以將rf上報(bào)給調(diào)度器,調(diào)度器根據(jù)預(yù)設(shè)閾值進(jìn)行統(tǒng)一調(diào)度和任務(wù)遷移;當(dāng)各個(gè)控制器的任務(wù)數(shù)量不均衡時(shí),也可以由調(diào)度器根據(jù)各個(gè)控制器的任務(wù)數(shù)量進(jìn)行全局調(diào)度,本發(fā)明實(shí)施例不作任何限定。
在本實(shí)施例中,增加了各個(gè)控制器之間任務(wù)數(shù)量之差與不平衡參數(shù)的比較,可以根據(jù)比較結(jié)果靈活調(diào)整rf的預(yù)設(shè)閾值,從而確保任務(wù)遷移后各個(gè)控制器的任務(wù)數(shù)量比較均衡,調(diào)度方式更加靈活,利于提升各個(gè)控制器的任務(wù)處理效率,提升了sdn網(wǎng)絡(luò)的靈活性和工作效率。
根據(jù)前述方法,圖5為本申請(qǐng)實(shí)施例提供的一種控制器的組成示意圖,所述控制器可以為控制器集群系統(tǒng)中的任意一個(gè)控制器,如圖5所示,所述控制器包括:
處理單元100,用于計(jì)算所述控制器上每一個(gè)任務(wù)遷移到所述控制器集群系統(tǒng)中其它控制器的衰減系數(shù);其中,任務(wù)的衰減系數(shù)與所述任務(wù)遷移所需要傳遞消息的數(shù)量以及消息傳遞時(shí)長(zhǎng)負(fù)相關(guān);根據(jù)所述衰減系數(shù)確定待遷移任務(wù)以及所述待遷移任務(wù)遷移的目標(biāo)控制器;
收發(fā)單元200,用于將所述待遷移任務(wù)向所述目標(biāo)控制器進(jìn)行任務(wù)遷移。
可選地,觸發(fā)所述處理單元100計(jì)算所述控制器上每一個(gè)任務(wù)遷移到所述控制器集群系統(tǒng)中其它控制器的衰減系數(shù)的方式包括以下任意一種:
所述收發(fā)單元200接收調(diào)度器分配的任務(wù);
所述收發(fā)單元200接收所述控制器集群系統(tǒng)中其它控制器遷移的任務(wù);
所述控制器上的定時(shí)器配置的超時(shí)時(shí)間到達(dá)。
可選地,所述處理單元100用于:
將所述控制器上衰減系數(shù)由大到小排在前n個(gè)的任務(wù)確定為待遷移任務(wù);n為大于或等于1的整數(shù);
根據(jù)所述待遷移任務(wù)的衰減系數(shù)確定所述待遷移任務(wù)遷移的目標(biāo)控制器。
可選地,所述收發(fā)單元200還用于當(dāng)所述控制器上的任務(wù)的衰減系數(shù)均小于預(yù)設(shè)閾值時(shí),停止任務(wù)遷移。
可選地,所述處理單元100還用于停止任務(wù)遷移后,將所述控制器上的任務(wù)數(shù)量與所述控制器集群系統(tǒng)中其它控制器上的任務(wù)數(shù)量分別進(jìn)行比較;
若任務(wù)數(shù)量之差達(dá)到預(yù)設(shè)的不平衡參數(shù),則降低所述預(yù)設(shè)閾值,再次進(jìn)行任務(wù)遷移。
根據(jù)前述方法,圖6為本申請(qǐng)實(shí)施例提供的另一種控制器的組成示意圖,所述控制器可以為控制器集群系統(tǒng)中的任意一個(gè)控制器,如圖6所示,該控制器可以包括處理器110、存儲(chǔ)器120和總線130。處理器110和存儲(chǔ)器120通過(guò)總線130連接,該存儲(chǔ)器120用于存儲(chǔ)指令,該處理器110用于執(zhí)行該存儲(chǔ)器120存儲(chǔ)的指令,以實(shí)現(xiàn)如上圖2-圖4對(duì)應(yīng)的方法中的步驟。
進(jìn)一步的,該控制器還可以包括、輸入口140和輸出口150。其中,處理器110、存儲(chǔ)器120、輸入口140和輸出口150可以通過(guò)總線130相連。
處理器110用于執(zhí)行該存儲(chǔ)器120存儲(chǔ)的指令,以控制輸入口140接收信號(hào),并控制輸出口150發(fā)送信號(hào),完成上述方法中控制器執(zhí)行的步驟。其中,輸入口140和輸出口150可以為相同或者不同的物理實(shí)體。為相同的物理實(shí)體時(shí),可以統(tǒng)稱為輸入輸出口。所述存儲(chǔ)器120可以集成在所述處理器110中,也可以與所述處理器110分開(kāi)設(shè)置。
作為一種實(shí)現(xiàn)方式,輸入口140和輸出口150的功能可以考慮通過(guò)收發(fā)電路或者收發(fā)的專用芯片實(shí)現(xiàn)。處理器110可以考慮通過(guò)專用處理芯片、處理電路、處理器或者通用芯片實(shí)現(xiàn)。
作為另一種實(shí)現(xiàn)方式,可以考慮使用通用計(jì)算機(jī)的方式來(lái)實(shí)現(xiàn)本申請(qǐng)實(shí)施例提供的控制器。即將實(shí)現(xiàn)處理器110,輸入口140和輸出口150功能的程序代碼存儲(chǔ)在存儲(chǔ)器中,通用處理器通過(guò)執(zhí)行存儲(chǔ)器中的代碼來(lái)實(shí)現(xiàn)處理器110,輸入口140和輸出口150的功能。
需要說(shuō)明的是,本實(shí)施例也可以基于通用的物理服務(wù)器結(jié)合網(wǎng)絡(luò)功能虛擬化(英文:networkfunctionvirtualization,nfv)技術(shù)實(shí)現(xiàn)的虛擬控制器,所述虛擬控制器可以是運(yùn)行有用于任務(wù)遷移功能的程序的虛擬機(jī)(英文:virtualmachine,vm),所述虛擬機(jī)部署在硬件設(shè)備上(例如,物理服務(wù)器)。虛擬機(jī)指通過(guò)軟件模擬的具有完整硬件系統(tǒng)功能的、運(yùn)行在一個(gè)完全隔離環(huán)境中的完整計(jì)算機(jī)系統(tǒng)。
該控制器所涉及的與本申請(qǐng)實(shí)施例提供的技術(shù)方案相關(guān)的概念,解釋和詳細(xì)說(shuō)明及其它步驟請(qǐng)參見(jiàn)前述方法或其它實(shí)施例中關(guān)于這些內(nèi)容的描述,此處不做贅述。
本領(lǐng)域技術(shù)人員可以理解,為了便于說(shuō)明,圖6僅示出了一個(gè)存儲(chǔ)器和處理器。在實(shí)際的控制器中,可以存在多個(gè)處理器和存儲(chǔ)器。存儲(chǔ)器也可以稱為存儲(chǔ)介質(zhì)或者存儲(chǔ)設(shè)備等,本發(fā)明實(shí)施例對(duì)此不做限制。
應(yīng)理解,在本申請(qǐng)實(shí)施例中,處理器可以是中央處理單元(centralprocessingunit,簡(jiǎn)稱為“cpu”),該處理器還可以是其它通用處理器、數(shù)字信號(hào)處理器(dsp)、專用集成電路(asic)、現(xiàn)成可編程門陣列(fpga)或者其它可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件等。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器等。
該存儲(chǔ)器可以包括只讀存儲(chǔ)器和隨機(jī)存取存儲(chǔ)器,并向處理器提供指令和數(shù)據(jù)。存儲(chǔ)器的一部分還可以包括非易失性隨機(jī)存取存儲(chǔ)器。
該總線除包括數(shù)據(jù)總線之外,還可以包括電源總線、控制總線和狀態(tài)信號(hào)總線等。但是為了清楚說(shuō)明起見(jiàn),在圖中將各種總線都標(biāo)為總線。
在實(shí)現(xiàn)過(guò)程中,上述方法的各步驟可以通過(guò)處理器中的硬件的集成邏輯電路或者軟件形式的指令完成。結(jié)合本申請(qǐng)實(shí)施例所公開(kāi)的方法的步驟可以直接體現(xiàn)為硬件處理器執(zhí)行完成,或者用處理器中的硬件及軟件模塊組合執(zhí)行完成。軟件模塊可以位于隨機(jī)存儲(chǔ)器,閃存、只讀存儲(chǔ)器,可編程只讀存儲(chǔ)器或者電可擦寫(xiě)可編程存儲(chǔ)器、寄存器等本領(lǐng)域成熟的存儲(chǔ)介質(zhì)中。該存儲(chǔ)介質(zhì)位于存儲(chǔ)器,處理器讀取存儲(chǔ)器中的信息,結(jié)合其硬件完成上述方法的步驟。為避免重復(fù),這里不再詳細(xì)描述。
根據(jù)本申請(qǐng)實(shí)施例提供的方法,本申請(qǐng)實(shí)施例還提供一種系統(tǒng),其包括前述的調(diào)度器和一個(gè)或多于一個(gè)控制器。
還應(yīng)理解,本文中涉及的第一、第二、第三、第四以及各種數(shù)字編號(hào)僅為描述方便進(jìn)行的區(qū)分,并不用來(lái)限制本發(fā)明實(shí)施例的范圍。
應(yīng)理解,本文中術(shù)語(yǔ)“和/或”,僅僅是一種描述關(guān)聯(lián)對(duì)象的關(guān)聯(lián)關(guān)系,表示可以存在三種關(guān)系,例如,a和/或b,可以表示:?jiǎn)为?dú)存在a,同時(shí)存在a和b,單獨(dú)存在b這三種情況。另外,本文中字符“/”,一般表示前后關(guān)聯(lián)對(duì)象是一種“或”的關(guān)系。
應(yīng)理解,在本申請(qǐng)的各種實(shí)施例中,上述各過(guò)程的序號(hào)的大小并不意味著執(zhí)行順序的先后,各過(guò)程的執(zhí)行順序應(yīng)以其功能和內(nèi)在邏輯確定,而不應(yīng)對(duì)本發(fā)明實(shí)施例的實(shí)施過(guò)程構(gòu)成任何限定。
本領(lǐng)域普通技術(shù)人員可以意識(shí)到,結(jié)合本文中所公開(kāi)的實(shí)施例描述的各種說(shuō)明性邏輯塊(illustrativelogicalblock)和步驟(step),能夠以電子硬件、或者計(jì)算機(jī)軟件和電子硬件的結(jié)合來(lái)實(shí)現(xiàn)。這些功能究竟以硬件還是軟件方式來(lái)執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來(lái)使用不同方法來(lái)實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng)、裝置和方法,可以通過(guò)其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過(guò)一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
在上述實(shí)施例中,可以全部或部分地通過(guò)軟件、硬件、固件或者其任意組合來(lái)實(shí)現(xiàn)。當(dāng)使用軟件實(shí)現(xiàn)時(shí),可以全部或部分地以計(jì)算機(jī)程序產(chǎn)品的形式實(shí)現(xiàn)。所述計(jì)算機(jī)程序產(chǎn)品包括一個(gè)或多個(gè)計(jì)算機(jī)指令。在計(jì)算機(jī)上加載和執(zhí)行所述計(jì)算機(jī)程序指令時(shí),全部或部分地產(chǎn)生按照本發(fā)明實(shí)施例所述的流程或功能。所述計(jì)算機(jī)可以是通用計(jì)算機(jī)、專用計(jì)算機(jī)、計(jì)算機(jī)網(wǎng)絡(luò)、或者其它可編程裝置。所述計(jì)算機(jī)指令可以存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,或者從一個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)向另一個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)傳輸,例如,所述計(jì)算機(jī)指令可以從一個(gè)網(wǎng)站站點(diǎn)、計(jì)算機(jī)、服務(wù)器或數(shù)據(jù)中心通過(guò)有線(例如同軸電纜、光纖、數(shù)字用戶線(dsl))或無(wú)線(例如紅外、無(wú)線、微波等)方式向另一個(gè)網(wǎng)站站點(diǎn)、計(jì)算機(jī)、服務(wù)器或數(shù)據(jù)中心進(jìn)行傳輸。所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是計(jì)算機(jī)能夠存取的任何可用介質(zhì)或者是包含一個(gè)或多個(gè)可用介質(zhì)集成的服務(wù)器、數(shù)據(jù)中心等數(shù)據(jù)存儲(chǔ)設(shè)備。所述可用介質(zhì)可以是磁性介質(zhì),(例如,軟盤、硬盤、磁帶)、光介質(zhì)(例如,dvd)、或者半導(dǎo)體介質(zhì)(例如固態(tài)硬盤solidstatedisk(ssd))等。
以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。