[0163] S5. 3,根據(jù)上述流表統(tǒng)計信息集合,超級節(jié)點針對每個交換機累計獲得5個時間 戳的流表統(tǒng)計Fi、F2、F3、F4、Fs,即獲得了送樣的數(shù)據(jù);Fi = {控制器編號、交換機編號、時間 戳X、流表統(tǒng)計刊。
[0164] S5. 4,若上述5個時間戳的控制器流量中流表統(tǒng)計總和最大的郝一個大于控制器 的歷史流表統(tǒng)計Hifm。、,貝。
[0165] S5. 5,對集群控制器中各控制器管控的每個交換機,使用式1-1的最小二乘法數(shù) 學(xué)模型,并根據(jù)公式1-2和1-3計算得出下一時間戳的各個交換機的流表統(tǒng)計信息;
[0166] S5. 6,為了使得預(yù)估值更加接近實際值,取一周內(nèi)該時間戳的流表統(tǒng)計實際測量 值,與預(yù)估值求和取平均;
[0167] S6,根據(jù)時間戳,超級節(jié)點從集群分布式共享存儲系統(tǒng)中讀取每個控制器上報的 除packet_in之外的其他OF交互信息統(tǒng)計(W后簡稱其他OF信息),通過W下子步驟來實 現(xiàn):
[0168] S6. 1,確定時間戳個數(shù)N,即嘗試獲取N個時間戳的完整其他OF信息統(tǒng)計集合; 所述完整其它OF信息集合是指同一控制器同一時間戳的所有不同的交換機與控制器的除 packet_in之外的所有OF交互統(tǒng)計信息且時間戳是最近的;
[0169] S6. 2,若獲取時間戳的完整其它OF信息統(tǒng)計集合不到N個,循環(huán)執(zhí)行S2,直到獲取 到N個時間戳的其它OF信息統(tǒng)計集合;
[0170] S6. 3,根據(jù)上述其它OF信息統(tǒng)計集合,超級節(jié)點針對每個交換機累計獲得N個時 間戳的其它OF信息統(tǒng)計Mi、M2、……、Mw,即獲得了送樣的數(shù)據(jù);Mi= {控制器編號、交換機 編號、時間戳X、其它OF信息統(tǒng)計刊。
[0171] S6. 4,若上述N個時間戳的控制器其它OF信息統(tǒng)計最大的郝一個大于控制器的歷 史其它OF信息統(tǒng)計,貝U
[0172] S6. 5,對集群控制器中各控制器管控的每個交換機,使用最小二乘法數(shù)學(xué)模型 (見式1-1)通過回歸分析計算得出下一時間戳的各個交換機的其它OF統(tǒng)計信息計 算公式見式1-2和式1-3。
[0173] S6. 6,為了使得預(yù)估值更加接近實際值,根據(jù)樣本數(shù)據(jù)的取樣周期,取實際測量前 幾個周期內(nèi)該時間戳交換機的其它OF統(tǒng)計信息的實際值,然后與預(yù)估值求和取平均,得到 更加精確的預(yù)估值。
[0174] S7,根據(jù)實際數(shù)據(jù)使用公式1-4、1-5和1-6計算得出PpHi、PfHi和Pmhi,分別與通過 公式1-7、1-8和1-9計算得出的PpHy、P?、和Pmh,進行比較,根據(jù)比較的結(jié)果大小調(diào)整各個控 制器管控的交換機,實現(xiàn)負載均衡,該步驟通過W下子步驟來實現(xiàn):
[01巧]S7. 1,本實施例假設(shè)系數(shù)X = l,y = 0,即根據(jù)每個交換機上報的packet_in報文 為依據(jù),來調(diào)整管控的交換機個數(shù);
[0176] S7. 2,要待調(diào)動交換機池設(shè)為空;通過獲取到的5個時間戳的packet-in報文數(shù)計 算得到;PpHi = 1. 〇9,PpH2 = 0. 39,PpH3 = 1. 11 ;計算控制器總預(yù)估接收到的packet-in報文 數(shù)與總最大packet-in報文數(shù)之比Pphv = 0. 95 ;控制器的負載壓力表分別為表4所示。上 述待調(diào)動交換機池裝載送樣的元素 EP:: = {轉(zhuǎn)出控制器編號,交換機編號,packet-in報 文數(shù),轉(zhuǎn)入控制器編號}。
[0177] 表4根據(jù)packet-in報文得出的控制器負載壓力表 [017 引
[0179] S7. 3,根據(jù)公式1-10和1-11可得Pi = PpHi,Pv = PpHv,參照Pi W降序?qū)Ω鱾€控制 器執(zhí)行S7. 4,執(zhí)行完畢后執(zhí)行S7. 7。
[0180] S7. 4,對于各個控制器,當其Pi大于Py時,執(zhí)行S7. 5,否則執(zhí)行S7. 6 ;
[0181] S7. 5,計算應(yīng)調(diào)出的交換機列表,該步驟通過W下子步驟來實現(xiàn):
[0182] S7. 5. 1,本實施是按照控制器收到的各個交換機的packet_in報文數(shù)據(jù)為依據(jù), 來調(diào)整管控的交換機個數(shù),根據(jù)公式1-12可得;Bmiw = 1地PMUe ;
[0183] S7. 5. 2,然后根據(jù)公式1-13計算町。。<,,根據(jù)Bm。,,多對該控制器管控的交換機升序 排列,獲得交換機隊列;
[0184] S7. 5. 3,從上述隊列中自上而下選擇交換機;
[01財 S7. 5. 4,累計計算要移出交換機BiCMt總化若不大于Bmuc則繼續(xù)執(zhí)行S7. 5. 4,否 則執(zhí)行S7. 5. 5 ;
[0186] S7. 5. 5,將送些待調(diào)動的交換機編號,連同控制器編號,BiCMt加入到待調(diào)動交換機 池,其中轉(zhuǎn)入控制器編號為空,此時獲得的待掉動列表如表5所示;
[0187] 表5實例1調(diào)整前控制器資源共享區(qū)域待調(diào)動池表
[0189] S7. 6,計算應(yīng)調(diào)入的交換機列表,該步驟通過W下子步驟來實現(xiàn):
[0190] S7. 6. 1,本實施例是按照控制器收到的各個交換機上報的packet_in報文數(shù)據(jù)為 依據(jù),來調(diào)整管控的交換機個數(shù),根據(jù)公式1-14可得Buu。= 1地PUU。;
[01川 S7. 6. 2,根據(jù)Buiw大小對控制器做降序排列,然后依次根據(jù)控制器負載調(diào)入交換 機,具體由W下子步驟實現(xiàn):
[0192] S7. 6. 2. 1,根據(jù)待調(diào)動交換機池 Bi。。,,大小對交換機做降序排列,獲得交換機隊 列;
[0193] S7. 6. 2. 2,針對每一個控制器,從上述隊列中自上而下選擇交換機,分別將Bmext與 Si…e進行比較,若Binext〉Buize,貝IJ選擇下一個交換機,若Bmext<Buize,貝叫尋待調(diào)動交換機池中 與送個交換機對應(yīng)的元素的轉(zhuǎn)入控制器編號設(shè)為本控制器編號,同時Buu。= Buiw-BmMt, 然后檢查下一個交換機,直到檢查到最后一個交換機,具體步驟見流程圖4所示,此時獲得 的待掉動列表如表6所示;
[0194] 表6實例1調(diào)整后控制器資源共享區(qū)域待調(diào)動池表
[0195]
[0196] S7. 7,重構(gòu)對應(yīng)交換機,實現(xiàn)負載均衡,該步驟通過W下子步驟來實現(xiàn):
[0197] S7. 7. 1,超級節(jié)點對待調(diào)動交換機池中每一元素,若轉(zhuǎn)入控制器編號不為空,則向 轉(zhuǎn)出控制器編號對應(yīng)的交換機和轉(zhuǎn)入控制器編號轉(zhuǎn)移交換機命令并執(zhí)行S7. 7. 2,否則略過 此元素;
[019引 S7. 7. 2,依據(jù)slave-master機制調(diào)換,實現(xiàn)交換機調(diào)度;所述slave-master機制 調(diào)換有化enFlow協(xié)議設(shè)定,用于改變多控制器控制時不同控制器的角色;結(jié)束后的流量狀 態(tài)如表7所示。
[0199] 表7實例1中根據(jù)packet_in報文調(diào)整后各控制器負載壓力表
[0201] S8,本次調(diào)度結(jié)束,下一時間間隔重復(fù)執(zhí)行S2。
[0202] 實施例2 :
[0203] W圖6為例,域內(nèi)分布有SDN控制器節(jié)點A、B、C。A控制器節(jié)點管控的交換機包括 SWl、sw2和sw3 ;B控制器節(jié)點管控的交換機包括sw4和sw5 ;C控制器節(jié)點管控的交換機包 括sw6、sw7和sw8 ;下面開始詳細描述本優(yōu)選實施例。
[0204] SI,集群控制器調(diào)度開始:控制器設(shè)置packet-in數(shù)量的歷史最大值為Hipm。,、流表 數(shù)的歷史最大值為Hifm。、和其它OF消息的歷史最大值為,并分別設(shè)為0。
[0205] S2,采用集群控制器中信息收集模塊收集樣本信息,本實例采集的樣本數(shù)據(jù)為一 周內(nèi)某天一個時間段不同時間戳的統(tǒng)計信息。同時采集之前一周內(nèi)該時段內(nèi)的實際測量信 息作為參考,使得預(yù)估信息更加接近實際值。收集樣本數(shù)據(jù)信息由W下子步驟實現(xiàn):
[0206] S2. 1,在相同的時間間隔內(nèi),由集群中的超級節(jié)點發(fā)起所管控集群的控制器的信 息收集命令;集群所有控制器A,B,C開始向其管控的交換機收集packet-in報文個數(shù)和統(tǒng) 計向每個交換機下發(fā)的流表數(shù)及其它OF消息;
[0207] S2. 2,當控制器收集到所有管控交換機的統(tǒng)計信息,開始向集群分布式共享存儲 系統(tǒng)發(fā)送流表、packet_in和其他OF消息的統(tǒng)計信息,分別記為Fi、Pi和Mi,其中Fi包括: 控制器編號,交換機標號,交換機流表統(tǒng)計,時間戳;Pl包括;控制器編號、交換機標號、交換 機上送的packet-in報文數(shù)、時間戳;Mi包括;控制器編號、交換機標號、交換機與控制器除 packet_in之外的其他OF信息、時間戳。所述時間戳是指收集到所有管控交換機的應(yīng)答消 息的時刻。所有信息會作為歷史參考或及時預(yù)測使用。
[020引 S3,超級節(jié)點使用控制器中的數(shù)據(jù)處理模塊根據(jù)最小二乘法的數(shù)學(xué)模型預(yù)測下一 個時間間隔內(nèi)各個控制器下的交換機上報的packet-in報文數(shù)、控制器向交換機下發(fā)的流 表數(shù)及其它OF消息,分別通過步驟S4、步驟S5和步驟S6來實現(xiàn):
[0209] S4,根據(jù)時間戳,超級節(jié)點A從集群分布式共享存儲系統(tǒng)中讀取每個控制器上報 的packet-in報文統(tǒng)計信息,通過W下子步驟來實現(xiàn):
[0210] S4. 1,送里取時間戳個數(shù)N = 5,即嘗試獲取5個時間戳的完整packet-in報文統(tǒng) 計信息集合;所述完整packet-in報文統(tǒng)計信息集合是指同一控制器同一時間戳的所有不 同的交換機上報的packet-in報文統(tǒng)計信息且時間戳是最近的;
[0211] S4. 2,若獲取時間戳的完整packet-in報文統(tǒng)計信息集合不到5個,循環(huán)執(zhí)行S2, 直到獲取到5個時間戳的packet-in報文統(tǒng)計信息集合;
[0212] S4. 3,根據(jù)上述packet-in報文統(tǒng)計信息集合,超級節(jié)點針對每個交換機累計獲 得5個時間戳的packet-in報文的信息統(tǒng)計Pi、P2、P3、P4、P5,即獲得了送樣的數(shù)據(jù):Pi = {控制器編號、交換機編號、時間戳X、packet-in報文統(tǒng)計信息刊;
[0213] S4. 4,若上述5個時間戳的控巧[J器中packet-in報文信息統(tǒng) 計總和最大的郝一個大于控制器的歷史packet-in報文統(tǒng)計Hipm。,,則
[0214] S4. 5,對集群控制器管控下的每個交換機,使用式1-1的最小二乘法數(shù)學(xué)模型, 并根據(jù)公式1-2和1-3計算得出下一個時間戳的各個交換機的packet-in報文統(tǒng)計信息 P. .
[021引 S4. 6,為了使得預(yù)估值更加接近實際值,取一周內(nèi)該時間戳的接收到的packet-in 報文數(shù)量實際測量值,與預(yù)估值求和取平均。
[0216] S5,根據(jù)時間戳,超級節(jié)點A從集群分布式共享存儲系統(tǒng)中讀取每個控制器上報 的流表統(tǒng)計信息,通過W下子步驟來實現(xiàn):
[0217] S5. 1,送里取時間戳個數(shù)N= 5,即嘗試獲取5個時間戳的完整流表統(tǒng)計信息集合; 所述完整流表統(tǒng)計信息集合是指同一控制器同一時間戳向所有不同的交換機下發(fā)的流表 統(tǒng)計信息且時間戳是最近的;
[021引S5. 2,若獲取時間戳的完整流表統(tǒng)計信息集合不到5個,循環(huán)執(zhí)行S2,直到獲取到 5個時間戳的流表統(tǒng)計信息集合;
[0219] S5. 3,根據(jù)上述流表統(tǒng)計信息集合,超級節(jié)點針對每個交換機累計獲得5個時間 戳的流表統(tǒng)計Fi、F2、F3、F4、Fs,即獲得了送樣的數(shù)據(jù);Fi = {控制器編號、交換機編號、時間 戳X、流表統(tǒng)計刊;
[0220] S5. 4,若上述5個時間戳的控制器流量中流表統(tǒng)計總和最大的郝一個大于控制器 的歷史流表統(tǒng)計
[0221] S5. 5,對集群控制器中各控制器管控的每個交換機,使用式1-1的最小二乘法數(shù) 學(xué)模型,并根據(jù)公式1-2和1-3計算得出下一時間戳的各個交換機的流表統(tǒng)計信息;
[0222] S5. 6,為了使得預(yù)估值更加接近實際值,取一周內(nèi)該時間戳的流表統(tǒng)計實際測量 值,與預(yù)估值求和取平均。
[0223] S6,根據(jù)時間戳,超級節(jié)點從集群分布式共享存儲系統(tǒng)中讀取每個控制器上報的 除packet_in之外的其他OF交互信息統(tǒng)計(W后簡稱其他OF信息),通過W下子步驟來實 現(xiàn):
[0224] S6. 1,確定時間戳個數(shù)N,即嘗試獲取N個時間戳的完整其他OF信息統(tǒng)計集合; 所述完整其它OF信息集合是指同一控制器同一時間戳的所有不同的交換機與控制器的除 packet_in之外的所有OF交互統(tǒng)計信息且時間戳是最近的;
[0225] S6. 2,若獲取時間戳的完整其它OF信息統(tǒng)計集合不到N個,循環(huán)執(zhí)行S2,直到獲取 到N個時間戳的其它OF信息統(tǒng)計集合;
[0226] S6. 3,根據(jù)上述其它OF信息