一種基于數(shù)據(jù)面流量預(yù)測(cè)的多控制器節(jié)能優(yōu)化方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉軟件定義網(wǎng)絡(luò)技術(shù)領(lǐng)域,為改善多控制器SDN網(wǎng)絡(luò)中各個(gè)控制器節(jié)能情 況,提出了一種基于數(shù)據(jù)面流量預(yù)測(cè)的多控制器節(jié)能優(yōu)化方法。
【背景技術(shù)】
[0002] 在多控制器的SDN網(wǎng)絡(luò)架構(gòu),當(dāng)網(wǎng)絡(luò)流量出現(xiàn)較大下降時(shí),例如進(jìn)入深夜時(shí),控制 器集群中的一些控制器所負(fù)載的網(wǎng)絡(luò)壓力不大,可以歸并到集群中的其他一些控制器上 去,從而減少集群控制器內(nèi)活動(dòng)控制器的數(shù)量,從而減少集群控制器的能源消耗,使得整體 SDN網(wǎng)絡(luò)集群控制器更加的節(jié)能環(huán)保。
[0003] 本發(fā)明的內(nèi)容涉及以下SDN中的已有概念或技術(shù):
[0004] SDN控制器是根據(jù)OpenFlow協(xié)議設(shè)計(jì)的網(wǎng)絡(luò)控制軟件,用于管理數(shù)據(jù)流、配置網(wǎng) 絡(luò)設(shè)備、制定流表(FlowTable)、承擔(dān)網(wǎng)絡(luò)業(yè)務(wù)與網(wǎng)絡(luò)設(shè)備間的通訊。一個(gè)域中可以有多個(gè) 控制器,但一般只有一個(gè)控制器處在控制、管理狀態(tài)。
[0005] SDN中的交換機(jī)也支持OpenFlow協(xié)議。OpenFlow交換機(jī)由SDN控制器管控,保存 有控制器制定的流表,并通過查詢流表表項(xiàng)來決定對(duì)報(bào)文的處理方式,包括轉(zhuǎn)發(fā)、緩存、提 交控制器或丟棄等。
[0006] OpenFlow協(xié)議下的安全通道用來連接交換機(jī)和控制器,以供二者進(jìn)行通信。
[0007] 現(xiàn)有工作僅僅提出了在多個(gè)控制器間增加共享存儲(chǔ)區(qū)域來實(shí)現(xiàn)控制器間通信,并 未實(shí)現(xiàn)控制器負(fù)載均衡,然而當(dāng)網(wǎng)絡(luò)流量波動(dòng)較大時(shí),出現(xiàn)負(fù)載不均的問題尚未得到解決。
【發(fā)明內(nèi)容】
[0008] 本發(fā)明的目的在于針對(duì)現(xiàn)有技術(shù)的不足,提供一種基于數(shù)據(jù)面流量預(yù)測(cè)的多控制 器節(jié)能優(yōu)化方法。
[0009] 本發(fā)明的目的是通過以下技術(shù)方案來實(shí)現(xiàn)的:本發(fā)明應(yīng)用在SDN網(wǎng)絡(luò)域內(nèi),且該 域內(nèi)有多個(gè)控制器處在管控狀態(tài),對(duì)某一交換機(jī)而言只有唯一一個(gè)管控控制器。本發(fā)明方 法包括以下步驟:
[0010] (1)集群控制器調(diào)度:集群中的超級(jí)節(jié)點(diǎn)初始默認(rèn)各個(gè)控制器的最大管控流量 Himax為0 ;所述管控流量是指由這個(gè)控制器管控的所有交換機(jī)的流量之和,i為控制器編 號(hào);
[0011] ⑵在每個(gè)時(shí)間間隔t內(nèi),由超級(jí)節(jié)點(diǎn)發(fā)起所管控集群的控制器調(diào)度,發(fā)出信息收 集命令,集群中所有控制器上報(bào)此時(shí)其流量特征,該步驟通過以下子步驟來實(shí)現(xiàn):
[0012] (2. 1)控制器利用安全通道,向其管控的所有交換機(jī)發(fā)送查詢消息;
[0013] (2. 2)當(dāng)控制器收集到其管控的所有交換機(jī)的應(yīng)答消息,向集群分布式共享存儲(chǔ) 系統(tǒng)發(fā)送流量統(tǒng)計(jì)信息,所述流量統(tǒng)計(jì)信息包括:控制器編號(hào)、交換機(jī)標(biāo)號(hào)、交換機(jī)流量和 時(shí)間戳;所述時(shí)間戳是指控制器收集到其管控的所有交換機(jī)的應(yīng)答消息的時(shí)刻;
[0014] (3)超級(jí)節(jié)點(diǎn)預(yù)測(cè)下一個(gè)時(shí)間間隔t內(nèi)各個(gè)控制器的流量狀態(tài),該步驟通過以下 子步驟來實(shí)現(xiàn):
[0015] (3. 1)根據(jù)時(shí)間戳,超級(jí)節(jié)點(diǎn)從集群分布式共享存儲(chǔ)系統(tǒng)中讀取每個(gè)控制器的流 量統(tǒng)計(jì)信息,嘗試獲取N個(gè)時(shí)間戳的完整報(bào)文集合;所述完整報(bào)文集合是指同一控制器同 一時(shí)間戳的所有不同的交換機(jī)流量報(bào)文且時(shí)間戳是除去已獲取完整報(bào)文集合外最新的;其 中,N為5到30的整數(shù);
[0016] (3.2)若獲取時(shí)間戳的完整報(bào)文集合不到N個(gè),則執(zhí)行步驟2;
[0017] (3. 3)根據(jù)步驟3. 1獲取的N個(gè)時(shí)間戳的完整報(bào)文集合,對(duì)某個(gè)控制器i,超級(jí)節(jié) 點(diǎn)獲得其N個(gè)時(shí)刻的流量總和TXpTX2、TX3、TX4、TX5......TXN,即獲得了這樣的數(shù)據(jù):TXj:: ={時(shí)間戳管控流量Tj,j為1到N的整數(shù),指代所述的N個(gè)時(shí)刻;所述管控流量T# 表此控制器管控的所有交換機(jī)、在時(shí)間戳為&時(shí)的流量之和;
[0018] (3. 4)若步驟3. 3中,對(duì)控制器i收集到的N個(gè)管控流量中,最大的那一個(gè)Tj比 該控制器的歷史最大還大,則將H廣51賦值為此T」,即氏_=max{H廣\ 1\,T2,T3,T4, T5......TN};(3. 5)使用最小二乘法,通過回歸分析預(yù)測(cè)下一時(shí)刻的各個(gè)控制器的管控流 量IT'即對(duì)于控制器i,其Tin6Xt=a+ 0 * (XN+t),其中XN+t表示所預(yù)測(cè)的時(shí)刻,即XN的下一時(shí)刻,a、0為兩個(gè)計(jì)算參數(shù),其值為:
[0021] 式中L為步驟3. 3所收集的控制器的管控流量,X^為步驟3. 3所收集的時(shí)間戳;
[0022] (4)計(jì)算是否需要進(jìn)行控制器節(jié)能,將控制器列表根據(jù)其Himax從大到小排列,對(duì)于 某一臺(tái)控制器i,當(dāng)滿足時(shí),執(zhí)行步驟5,否則繼續(xù)遍歷控制器列表,都不滿 足執(zhí)行步驟6;其中//fax為所有M臺(tái)交換機(jī)的歷史最大流量之和,為所有M臺(tái)交換 機(jī)的下一時(shí)間片預(yù)測(cè)流量之和,即:
[0023]
[0024] 式中的T廣IPH廣分別由步驟3. 5和步驟1定義;
[0025] (5)檢測(cè)某控制器x所管控的交換機(jī)是否能被完全重映射,該步驟通過以下子步 驟來實(shí)現(xiàn):(5. 1)遍歷控制器x所管控的交換機(jī)列表,對(duì)其中每一個(gè)交換機(jī)s,遍歷集群內(nèi) 除x外的其余控制器,對(duì)其中每一個(gè)控制器i,定義=<ax - 5; - ,式中11廣和 T廣xt分別在步驟1和步驟3. 5中定義,S3為交換機(jī)s的流量;將Li從大到小排列,選擇其 中QX)且Q最小的控制器i,若存在,則將交換機(jī)s重映射到控制器i上,并向待調(diào)度交換 池寫入這樣一條元素(x,s,i),表示將控制器x管控的交換機(jī)s,調(diào)度到控制器i上,同時(shí)設(shè) arp next_ rp next | c1 !i - 1 i
[0026] (5. 2)若對(duì)于控制器x管控的每一交換機(jī)s都可以得到步驟5. 1所述的控制器i 及對(duì)應(yīng)的待調(diào)度交換池元素,則認(rèn)為該控制器可以被完全重映射,執(zhí)行步驟5. 3,否則返回 步驟4 ;
[0027] (5. 3)重構(gòu)步驟5. 1中得到的待調(diào)度交換池中所有交換機(jī):依據(jù)slave-master主 備控制機(jī)制,對(duì)于待調(diào)度交換池中每一條元素(x,s,i),將s的master即主控制器設(shè)置為 i,將s的salve即后備控制器設(shè)置為X,實(shí)現(xiàn)交換機(jī)調(diào)度;所述slave-master主備控制機(jī) 制由OpenFlow協(xié)議定義,用于在多控制器集群控制時(shí)改變不同控制器的角色;
[0028] (5. 4)控制器x進(jìn)入休眠狀態(tài);
[0029] (6)本次調(diào)度結(jié)束,下一時(shí)間間隔從步驟2開始執(zhí)行;通過重復(fù)執(zhí)行步驟2~步驟 5,將需要節(jié)能的控制器上的所有交換機(jī),基于流量預(yù)測(cè)以及所承載的流量記錄,智能調(diào)度 切換到其余控制器上,實(shí)現(xiàn)了動(dòng)態(tài)調(diào)整集群控制器中活動(dòng)控制器的數(shù)量,從而改善網(wǎng)絡(luò)節(jié) 能表現(xiàn)。
[0030] 本發(fā)明創(chuàng)建了一種集群內(nèi)的控制器之間就流量問題彼此通信的方式,并基于流量 預(yù)測(cè)以及所承載的流量記錄,動(dòng)態(tài)的調(diào)整集群控制器中活動(dòng)控制器的數(shù)量,從而實(shí)現(xiàn)集群 控制器的節(jié)能環(huán)保。本發(fā)明的創(chuàng)新點(diǎn)在于:本發(fā)明方法的使用將使得網(wǎng)絡(luò)處于空閑狀態(tài) 下,提高SDN集群控制器節(jié)能表現(xiàn),使得集群控制器更加綠色環(huán)保。反觀現(xiàn)有的SDN集群控 制器,如OpenDaylight等,并未考慮到由網(wǎng)絡(luò)流量降低導(dǎo)致的多余控制器額外消耗能源問 題。因此,在現(xiàn)有SDN集群控制器中使用本發(fā)明方法,將改善網(wǎng)絡(luò)節(jié)能表現(xiàn)。
【附圖說明】
[0031] 圖1是本發(fā)明方法總流程圖。
【具體實(shí)施方式】
[0032] 下面以超級(jí)節(jié)點(diǎn)A,域內(nèi)SDN控制器節(jié)點(diǎn)B,C的流量分配為例,結(jié)合表1~表4詳 細(xì)描述本發(fā)明。
[0033] 如圖1所示,本發(fā)明一種基于數(shù)據(jù)面流量預(yù)測(cè)的多控制器節(jié)能優(yōu)化方法,包括以 下步驟:
[0034] (1)集群控制器調(diào)度:集群中的超級(jí)節(jié)點(diǎn)A初始默認(rèn)各個(gè)控制器的最大管控流量 氏眶為0 ;
[0035] (2)在相同的時(shí)間間隔t內(nèi),由集群中的超級(jí)節(jié)點(diǎn)A發(fā)起所管控集群的控制器調(diào) 度,發(fā)出信息收集命令;集群所有控制器A,B,C開始上報(bào)此時(shí)其流量特征,該步驟通過以下 子步驟來實(shí)現(xiàn):
[0036] (2. 1)控制器利用安全通道,向其管控的所有交換機(jī)發(fā)送查詢消息;
[0037] (2. 2)當(dāng)控制器收集到其管控的所有交換機(jī)的應(yīng)答消息,向集群分布式共享存儲(chǔ) 系統(tǒng)發(fā)送流量統(tǒng)計(jì)信息,其中包括:控制器編號(hào)、交換機(jī)標(biāo)號(hào)、交換機(jī)流量和時(shí)間戳;所述 時(shí)間戳是指收集到所有所有管控交換機(jī)的應(yīng)答消息的時(shí)刻,假設(shè)收到的信息如表1所示;
[0038] 表1初始統(tǒng)計(jì)流量表
[0039]
[0040] (3)超級(jí)節(jié)點(diǎn)預(yù)測(cè)下一個(gè)時(shí)間間隔t內(nèi)各個(gè)控制器的流量狀態(tài),該步驟通過以下 子步驟來實(shí)現(xiàn):
[0041] (3. 1)根據(jù)時(shí)間戳,超級(jí)節(jié)點(diǎn)從集群分布式共享存儲(chǔ)系統(tǒng)中讀取每個(gè)控制器流量 狀態(tài)報(bào)文,為了便于說明流程,這里取N=5;嘗試獲取5個(gè)時(shí)間戳的完整報(bào)文集合;所述完 整報(bào)文集合是指同一控制器同一時(shí)間戳的所有不同的交換機(jī)流量報(bào)文且時(shí)間戳是除去已 獲取完整報(bào)文集合外最新的;
[0042] (3. 2)若獲取時(shí)間戳的完整報(bào)文集合不到5個(gè),則執(zhí)行步驟2 ;