負載均衡的方法及裝置的制造方法
【技術領域】
[0001] 本發(fā)明涉及通信領域,具體而言,涉及一種負載均衡的方法及裝置。
【背景技術】
[000引軟件定義網絡(Software Defined Networks,簡稱為SDN)技術最初是由美國斯坦 福大學clean slate研究組提出的一種新型網絡創(chuàng)新架構。其核必技術化enflow(簡稱為 0巧協(xié)議通過將網絡設備控制面與數據面分離開來的方式,實現了網絡流量的靈活控制,為 核必網絡及應用的創(chuàng)新提供了良好的平臺。
[0003] SDN網絡由H部分組成;包括SDN控制器、安全通道和SDN交換機。SDN控制器是 根據化enFlow協(xié)議設計的網絡控制軟件,用于管理數據流、配置網絡設備、制定流表(Flow T油Ie)、承擔網絡業(yè)務與網絡設備間的通訊。一個域中可W有多個控制器,但一般只有一 個控制器處在控制、管理狀態(tài)。SDN交換機由SDN控制器管控,保存有控制器制定的流表, 并通過查詢流表表項來決定對報文的處理方式,包括轉發(fā)、緩存、提交控制器或丟棄等。 化enFlow協(xié)議下的安全通道用來連接交換機和控制器,W供二者進行通信。
[0004] 隨著SDN技術的發(fā)展,SDN控制器集群技術也得到了越來越多的應用。在SDN網 絡多控制器架構下,各個控制器控制一定數量的交換機,如果某個控制器管控的交換機上 報的packet-in報文過多或者下發(fā)的流表數量及與交換機的OF交互信息量過大,將會導致 該控制器在某時刻產生較大的控制流,送種情況將會使得該控制器成為整個控制器集群處 理網絡流量的瓶頸,影響整個控制器集群的性能。
[0005] 在網絡流量波動較大時,某個控制器下的交換機會上報大量的packet-in報文 (OpenFlow協(xié)議的一種專用報文,??谟脕韺⑽茨芷ヅ渖系牧髁?,或者指定匹配的流量,發(fā) 送給控制器)或者其它OF的penFlow)消息,控制器也可能會下發(fā)大量流表,而其他的控制 器只接收到少量的packet-in報文和其它OF消息,此時該控制器下發(fā)的流表數量也不多, 送就可能導致某些控制器控制過載,而某些控制器遠遠未達到控制負載飽和狀態(tài)。為了緩 解送種情況的發(fā)生,需要時刻對各個控制器管控的交換機進行調整,時刻實現控制器的負 載均衡,提高整個控制器集群的控制性能。
[0006] 相關技術僅僅提出了在多個控制器間增加共享存儲區(qū)域來實現控制器間通信,并 未實現控制器負載均衡,然而當網絡流量波動較大時,出現控制器負載不均的問題尚未得 到解決。
[0007] 針對相關技術中集群SDN控制器負載不均的問題,目前尚未提出有效的解決方 案。
【發(fā)明內容】
[0008] 本發(fā)明提供了一種負載均衡的方法及裝置,W至少解決相關技術中集群SDN控制 器負載不均的問題。
[0009] 根據本發(fā)明的一個實施例,提供了一種負載均衡的方法,包括:收集集群軟件定義 網絡SDN控制器的每個SDN控制器中管控的多個交換機的表征參數的數據;根據所述多個 交換機的表征參數的數據,預估所述多個交換機的所述表征參數在下一時刻的數據;根據 預估的所述多個交換機的所述表征參數在下一時刻的數據,對所述集群SDN控制器的各個 SDN控制器進行負載均衡。
[0010] 本實施例中,所述表征參數包括W下至少之一;packet-in報文、流表數和其他OF 消息。
[0011] 本實施例中,預估所述多個交換機的所述表征參數在下一時刻的數據包括:使用 最小二乘法預估所述多個交換機的所述表征參數在下一時刻的數據。
[0012] 本實施例中,使用最小二乘法預估所述多個交換機的所述表征參數在下一時刻的 數據包括:對每個交換機,使用如下最小二乘法數學模型計算得出所述每個交換機的所述 表征參數在下一時刻的數據;y = a +目*X,其中X為所述表征參數在當前時刻的數據,y為 所述表征參數在下一時刻的數據;參數a和目值按照如下公式計算:
[0014] 其中n為當前統(tǒng)計周期中的時刻個數,X為時刻對應的時間戳,Y為每個交換機的 所述表征參數的值。
[0015] 本實施例中,所述表征參數的數據包括表征參數的樣本歷史數據W及所述表征參 數在當前統(tǒng)計周期中各個時刻的數據;根據所述多個交換機的表征參數的數據,預估所述 多個交換機的所述表征參數在下一時刻的數據包括:根據所述多個交換機的表征參數的樣 本歷史數據W及所述表征參數在當前統(tǒng)計周期中各個時刻的數據,預估所述多個交換機的 所述表征參數在下一時刻的數據。
[0016] 本實施例中,預估所述多個交換機的所述表征參數在下一時刻的數據包括:根據 所述表征參數在當前統(tǒng)計周期中各個時刻的數據,預估所述多個交換機的所述表征參數在 下一時刻的數據;將所述表征參數的樣本歷史數據與預估的所述表征參數在下一時刻的數 據求和取平均。
[0017] 本實施例中,根據預估的所述多個交換機的所述表征參數在下一時刻的數據,對 所述集群SDN控制器的各個SDN控制器進行負載均衡包括;根據預估的所述多個交換機的 所述表征參數在下一時刻的數據,計算每個控制器對于所述表征參數的預估值與其對應的 歷史最大值的比值P? :計算整個控制器集群對于所述表征參數的總預估值與總最大值的 比值Pyh,:將Pyhi與P?,進行比較,并根據比較的結果調整控制器管控的交換機。
[001引本實施例中,Pyhi通過W下公式計算:
其中n為各個控制器管控的交換機個數,為控制器管理 的各個交換機對于所述表征參數的預估值,Hiym。、為控制器管理的各個交換機對于所述表征 參數的歷史最大值;和/或,PYHy通過W下公式計算:
其中m表示控制器個數,n表示各個控制器管控的交換機個數, Ym。、,為控制器管理的各個交換機對于所述表征參數的預估值,Hum。、為管理的各個交換機控 制器對于所述表征參數的歷史最大值。
[0021] 本實施例中,將P?與P?、進行比較,并根據比較的結果調整控制器管控的交換機 包括:對多個不同的表征參數設置比例系數,其中,所述比例系數用于表示各個表征參數在 比較過程中所占的比重。
[0022] 本實施例中,將P?與P?、進行比較,并根據比較的結果調整控制器管控的交換機 包括;對于各個控制器,當其Pyhi大于PYHy時,計算應調出的交換機,并根據計算結果調出交 換機;和/或,對于各個控制器,當其P?小于P?,時,計算應調入的交換機,并根據計算結 果調入交換機。
[0023] 本實施例中,計算應調出的交換機,并根據計算結果調出交換機包括:對于控制器 計算;皿,設為ByMu。,并根據之前設置的比例系數得到Bmiw,其中所述比例 1 系數用于表示多個表征參數在比較過程中所占的比重;根據對每個交換機的預估數據得出 Bmeyt = Ym。、,;根據町。。、1的值對該控制器管控的交換機升序排列,獲得交換機隊列;從所述 交換機隊列中自上而下選擇交換機,并累計計算要移出交換機的總和,若不大于Bmu。 則繼續(xù)選擇交換機;將選擇的待調動的交換機加入到待調動交換機池,其中所述待調動交 換機池用于存儲待調動的交換機信息。
[0024] 本實施例中,計算應入的交換機,并根據計算結果調入交換機包括;對于控制器計 算Myma* * PyH、'…IW,設為Byuu。,并根據之前設置的比例系數得到Buu。,其中所述比例 1 系數用于表示多個表征參數在比較過程中所占的比重;根據Buu。的值對控制器做降序排 列,然后依次根據控制器負載調入交換機。
[00巧]本實施例中,依次根據控制器負載調入交換機包括;根據待調動交換機池中各個 待調動交換機的BmMt的值對交換機做降序排列,獲得交換機隊列,其中所述待調動交換機 池用于存儲待調動的交換機信息;針對每一個控制器,從上述隊列中自上而下選擇交換機, 分別將與Buu。進行比較,若則選擇下一個交換機,若則將待調 動交換機池中與送個交換機對應的元素的轉入控制器編號設為本控制器編號,同時Buu。= Bisi,然后檢查下一個交換機,直至最后一個交換機。
[0026] 根據本發(fā)明的另一實施例,提供了一種負載均衡的裝置,包括:收集模塊,用于收 集集群軟件定義網絡SDN控制器的每個SDN控制器中管控的多個交換機的表征參數的數 據;預估模塊,用于根據所述多個交換機的表征參數的數據,預估所述多個交換機的所述表 征參數在下一時刻的數據;負載均衡模塊,用于根據預估的所述多個交換機的所述表征參 數在下一時刻的數據,對所述集群SDN控制器的各個SDN控制器進行負載均衡。
[0027] 通過本發(fā)明,采用收集集群軟件定義網絡SDN控制器的每個SDN控制器中管控的 多個交換機的表征參數的數據;根據所述多個交換機的表征參數的數據,預估所述多個交 換機的所述表征參數在下一時刻的數據;根據預估的所述多個交換機的所述表征參數在下 一時刻的數據,對所述集群SDN控制器的各個SDN控制器進行負載均衡的方式,解決了相關 技術中集群SDN控制器負載不均的問題,通過預估的數據進行負載均衡,該方式可實現性 強,提升了集群SDN控制器的資源使用效率。
【附圖說明】
[0028] 此處所說明的附圖用來提供對本發(fā)明的進一步理解,構成本申請的一部分,本發(fā) 明的示意性實施例及其說明用于解釋本發(fā)明,并不構成對本發(fā)明的不當限定。在附圖中:
[0029] 圖1是根據本發(fā)明實施例的負載均衡的方法的流程圖;
[0030] 圖2是根據本發(fā)明實施例的負載均衡的裝置的結構款圖;
[0031] 圖3是根據本發(fā)明優(yōu)選實施例的SDN控制器的結構框圖;
[0032] 圖4是根據本發(fā)明優(yōu)選實施例的將交換機調入控制器的流程圖;
[0033] 圖5是根據本發(fā)明優(yōu)選實施例的集群控制器負載均衡調度流程圖;
[0034] 圖6是根據本發(fā)明優(yōu)選實施例1的域內控制器及交換機分配示意圖;
[0035] 圖7是根據本發(fā)明優(yōu)選實施例3的域內層疊控制器及交換機分配示意圖。
【具體實施方式】
[0036] 下文中將參考附圖并結合實施例來詳細說明本發(fā)明。需要說明的是,在不沖突的 情況下,本申請中的實施例及實施例中的特征可W相互組合。
[0037] 相關技術僅僅提出了在多個控制器間增加共享存儲區(qū)域來實現控制器間通信,并 未實現控制器負載均衡,然而當網絡流量波動較大時,出現控制器負載不均的問題尚未得 到解決,本實施例通過網絡流量預測和調度各個控制器管控交換機的方法解決了該問題。
[0038] 在本實施例中,提供了一種負載均衡的方法,圖1是根據本發(fā)明實施例的負載均 衡的方法的流程圖,如圖1所示,該方法包括如下步驟:
[003引步驟S102,收集集群軟件定義網絡(SDN)控制器的每個SDN控制器中管控的多個 交換機的表征參數的數據;
[0040] 步驟S104,根據所述多個交換機的表征參數的數據,預估所述多個交換機的所述 表征參數在下一時刻的數據;
[0041] 步驟S106,根據預估的所述多個交換機的所述表征參數在下一時刻的數據,對所 述集群SDN控制器的各個SDN控制器進行負載均衡。
[0042] 本實施例通過上述步驟,對每個SDN控制器中管控的多個交換機的表征參數的數 據進行收集,并根據收集的數據對下一時刻的數據進行預估,然后根據預估的表征參數下 一時刻的數據對各個SDN控制器進行負載均衡,從而實現了集群SDN控制器的負載均衡,解 決了相關技術中集群SDN控制器負載不均的問題,通過預估的數據進行負載均衡,該方式 可實現性強,提升了集群SDN控制器的資源使用效率。
[0043] 本實施例中,所述表征參數包括W下至少之一;packet-in報文、流表數和其他OF 消息。
[0044] 本實施例中,預估所述多個交換機的所述表征參數在下一時刻的數據包括:使用 最小二乘法預估所述多個交換機的所述表征參數在下一時刻的數據。
[0045] 本實施例中,使用最小二乘法預估所述多個交換機的所述表征參數在下一時刻的 數據包括:對每個交換機,使用如下最小二乘法數學模型計算得出所述每個交換機的所述 表征參數在下一時刻的數據;y = a +目*X,其中X為所述表征參數在當前時刻的數據,y為 所述表征參數在下一時刻的數據;參數a和目值按照如下公式計算:
[0047] 其中n為當前統(tǒng)計周期中的時刻個數,X為時刻對應的時間戳,Y為每個交換機的 所述表征參數的值。
[0048] 本實施例中,所述表征參數的數據包括表征參數的樣本歷史數據W及所述表征參 數在當前統(tǒng)計周期中各個時刻的數據;根據所述多個交換機的表征參數的數據,預估所述 多個交換機的所述表征參數在下一時刻的數據包括:根據所述多個交換機的表征參數的樣 本歷史數據W及所述表征參數在當前統(tǒng)計周期中各個時刻的數據,預