国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種控制器負載均衡方法及裝置與流程

      文檔序號:11156966閱讀:1137來源:國知局
      一種控制器負載均衡方法及裝置與制造工藝

      本發(fā)明涉及計算機網絡技術領域,特別是涉及一種控制器負載均衡方法及裝置。



      背景技術:

      SDN(Software Defined Network,軟件定義網絡)是未來網絡中一種重要的新型網絡架構。該架構的核心思想是將網絡設備控制面與數(shù)據(jù)面分離并集中到一個中心化的控制器上,控制器擁有對整個SDN網絡的宏觀視角,并提供管理視圖和編程接口來控制整個SDN網絡??刂破髂軌驗榻粨Q機計算轉發(fā)數(shù)據(jù)包或流所需要的流表項,而交換機則只需按照流表項對數(shù)據(jù)包進行轉發(fā)。這樣,交換機設備可以得到簡化,節(jié)約了設備開銷,同時,整個網絡的可控制性和可管理性也得到了提高。但網絡規(guī)模較大時,單個控制器由于其在擴展性和可靠性方面的局限,使它成為SDN網絡的瓶頸,所以需要由多個控制器組成的控制平面來實現(xiàn)對整個網絡的控制,其中,上述控制器中的一個可以是該控制平面的超級控制器,用于對該控制平面的控制器進行管理。

      在多控制器的SDN網絡中,控制器各自控制著網絡中部分交換機,在通常情況下,每個交換機只需與一個控制器保持連接,但是為了負載均衡和容錯目的,一個交換機至少同時與兩個控制器保持連接。通過控制器之間的協(xié)作,控制層面中的超級控制器會為每個交換機指定一個主控制器,將連接的其他控制器設置為此交換機的從控制器,這樣解決了單一控制器帶來的可靠性和可擴展性問題。但由于交換機到控制器的映射都是靜態(tài)的,從而使得控制層面很難適應網絡流量的變化。在這種情況下,一旦某個控制器超負載,則該控制器對于交換機的流請求響應時間會不斷增加,甚至可能會超過規(guī)定的時間,從而影響網絡性能,因此,在多控制器的SDN網絡中,均衡控制器之間負載分布是至關重要的。

      目前,基于交換機遷移策略的控制器負載均衡方案是主要解決方法之一,這種方法的原理是將過載控制器的一部分負載通過遷移交換機的方式來遷移到負載較輕的控制器上,從而實現(xiàn)控制器負載均衡的目的。該方法具體為:在當前周期內,根據(jù)記載的所有控制器的負載值和預設的負載閾值,確定過載控制器;在該過載控制器所控制的交換機中,選擇一個交換機確定為待遷移交換機;從確定的待遷移交換機的從控制器中選擇一個控制器,確定為目標控制器;將待遷移交換機遷移到該目標控制器上。上述方法中,在遷移交換機后,該過載控制器可能仍然會過載,但是在一個周期內中,只能對一個過載控制器的一個交換機進行一次遷移,需要在接下來的周期內,對該過載控制器進行負載遷移,會導致該過載控制器長時間處于過載的狀態(tài),降低了負載均衡的時間效率。



      技術實現(xiàn)要素:

      本發(fā)明實施例的目的在于提供一種控制器負載均衡方法及裝置,以提高負載均衡的時間效率。具體技術方案如下:

      第一方面,為了達到上述目的,本發(fā)明實施例公開了一種控制器負載均衡方法,所述方法包括:

      在當前周期內,從過載控制器中選擇一個過載控制器,確定為第一控制器,其中,所述過載控制器為:根據(jù)本地記錄的各個控制器的負載值和預先設置的第一負載閾值,從各個控制器中確定的控制器;

      從所述第一控制器所控制的交換機中,確定待遷移交換機;

      將所確定的待遷移交換機劃分為交換機組,其中,每一交換機組中包括至少一個交換機;

      針對每一交換機組,從該交換機組的所有交換機共有的從控制器中,為該交換機組選擇一個從控制器,作為該交換機組的目標控制器;

      向所述第一控制器和每個目標控制器發(fā)送遷移信息,以使得所述第一控制器將每一交換機組中的交換機遷移至對應的目標控制器上。

      可選的,在所述向所述過載控制器和每個目標控制器發(fā)送遷移信息的步驟之后,所述方法還包括:

      判斷所述當前周期是否結束;

      如果否,確定在所述當前周期內是否重新獲取了各個控制器的負載值;

      如果獲取,將本地記錄的各個控制器的負載值更新為最新獲取的各個控制器的負載值,并返回執(zhí)行所述在當前周期內,從過載控制器中選擇一個過載控制器,確定為第一控制器的步驟;

      如果沒有獲取,從未被確定為所述第一控制器的過載控制器中重新選擇一個過載控制器,將所述第一控制器更新為重新選擇的過載控制器,并返回執(zhí)行所述從所述第一控制器所控制的交換機中,確定待遷移交換機的步驟。

      可選的,所述從所述第一控制器所控制的交換機中,確定待遷移交換機的步驟,包括:

      根據(jù)本地記錄的各個控制器的負載值,估算所述第一控制器的待遷移負載值;

      獲取所述第一控制器所控制的各個交換機的負載值;

      根據(jù)所述待遷移負載值和所獲取的交換機的負載值,將所述第一控制器所控制的交換機劃分為交換機集合;

      判斷所劃分得到的交換機集合是否只有一個;

      如果是,將劃分得到的交換機集合中的交換機確定為待遷移交換機;

      如果否,從劃分得到的交換機集合中選擇一個交換機集合,作為目標交換機集合;并將所述目標交換機集合中的交換機確定為待遷移交換機。

      可選的,所述根據(jù)所述待遷移負載值和所獲取的交換機的負載值,將所述第一控制器所控制的交換機劃分為交換機集合的步驟,包括:

      在所獲取的交換機的負載值中,確定總和最接近所述待遷移負載值的負載值組合;

      將所確定的負載值組合中的負載值對應的交換機劃分至同一個交換機集合中。

      可選的,所述根據(jù)本地記錄的各個控制器的負載值,估算所述第一控制器的待遷移負載值的步驟,包括:

      根據(jù)本地記錄的各個控制器的負載值,采用如下公式估算所述第一控制器的待遷移負載值;

      Target=Poverloaded-Paverage

      其中,Target為所述待遷移負載值,Poverloaded為所述第一控制器的負載程度,是根據(jù)本地記錄的所述第一控制器的負載值和預設的第一控制器能承受的最大負載值計算得到的;Paverage為當前網絡的平均負載程度,是是根據(jù)本地記錄的各個控制器的負載值的平均值及預設的網絡能承受的最大負載值計算得到的。

      可選的,所述從劃分得到的交換機集合中選擇一個交換機集合,作為目標交換機集合的步驟,包括:

      獲取劃分得到的每一交換機集合中的各個交換機分別到所述第一控制器的距離;

      針對每一交換機集合,計算該交換機集合中各交換機對應的距離的總和;

      選擇最大的總和對應的交換機集合作為目標交換機集合。

      可選的,所述將所確定的待遷移交換機劃分為交換機組的步驟,包括:

      根據(jù)所獲取的距離和預設的貪婪算法,對所確定的待遷移交換機進行分組處理,得到待遷移組;

      判斷所得到的待遷移組的數(shù)量是否大于第二控制器的數(shù)量,其中,所述第二控制器為:各個待遷移交換機共有的從控制器中,本地記錄的負載值小于預先設置的第二負載閾值的從控制器;

      如果是,對所得到的待遷移組進行合并處理,得到數(shù)量不大于所述第二控制器的數(shù)量的待遷移組;并將合并處理后的待遷移組確定為交換機組;

      如果否,將所得到的遷移組確定為交換機組。

      可選的,所述對所得到的待遷移組進行合并處理,得到數(shù)量不大于所述第二控制器的數(shù)量的待遷移組的步驟,包括:

      從所得到的待遷移組中選擇一個待遷移組,確定為目標待遷移組;

      在除所述目標遷移組之外的其他待遷移組中,確定與所述目標遷移組合并后距離方差最小的待遷移組;

      將所述目標待遷移組和所確定的待遷移組合并為一個新的待遷移組;

      判斷待遷移組的數(shù)量是否大于所述第二控制器的數(shù)量;

      如果是,在合并后的待遷移組中選擇一個待遷移組,將所述目標待遷移組更新為所選擇的待遷移組;返回執(zhí)行所述在除所述目標遷移組之外的其他待遷移組中,確定與所述目標遷移組合并后距離方差最小的待遷移組的步驟。

      可選的,所述針對每一交換機組,從該交換機組的所有交換機共有的從控制器中,為該交換機組選擇一個從控制器,作為該交換機組的目標控制器的步驟,包括:

      利用以下公式,針對每一交換機組,計算每一第二控制器針對該交換機組的數(shù)據(jù)值:

      Cn=ω1×|Ln+Lk-LAverage|+ω2×Hk

      其中,Cn為第二控制器n針對交換機組k的數(shù)據(jù)值,Ln為第二控制器n的負載壓力值,Lk為交換機組k的平均負載壓力值,LAverage為當前網絡平均負載壓力值,Hk為交換機組k到第二控制器n的距離,ω1和ω2分別為預設權重,其和為1;

      針對每一交換機組,確定該交換機組中數(shù)據(jù)值最小的第二控制器,作為該交換機組的目標控制器。

      第二方面,為了達到上述目的,本發(fā)明實施例公開了一種控制器負載均衡裝置,所述裝置包括:

      第一確定模塊,用于在當前周期內,從過載控制器中選擇一個過載控制器,確定為第一控制器,其中,所述過載控制器為:根據(jù)本地記錄的各個控制器的負載值和預先設置的第一負載閾值,從各個控制器中確定的控制器;

      第二確定模塊,用于從所述第一控制器所控制的交換機中,確定待遷移交換機;

      劃分模塊,用于將所確定的待遷移交換機劃分為交換機組,其中,每一交換機組中包括至少一個交換機;

      選擇模塊,用于針對每一交換機組,從該交換機組的所有交換機共有的從控制器中,為該交換機組選擇一個從控制器,作為該交換機組的目標控制器;

      發(fā)送模塊,用于向所述第一控制器和每個目標控制器發(fā)送遷移信息,以使得所述第一控制器將每一交換機組中的交換機遷移至對應的目標控制器上。

      可選的,所述裝置還包括:

      判斷模塊,用于判斷所述當前周期是否結束;

      第三確定模塊,用于在所述判斷模塊的判斷結果為否的情況下,確定在所述當前周期內是否重新獲取了各個控制器的負載值;

      第一更新模塊,用于在所述第三確定模塊的確定結果為獲取的情況下,將本地記錄的各個控制器的負載值更新為最新獲取的各個控制器的負載值,并返回執(zhí)行所述第一確定模塊;

      第二更新模塊,用于在所述第三確定模塊的確定結果為沒有獲取的情況下,從未被確定為所述第一控制器的過載控制器中重新選擇一個過載控制器,將所述第一控制器更新為重新選擇的過載控制器,并返回執(zhí)行所述第二確定模塊。

      可選的,所述第二確定模塊,包括:

      估算子模塊,用于根據(jù)本地記錄的各個控制器的負載值,估算所述第一控制器的待遷移負載值;

      獲取子模塊,用于獲取所述第一控制器所控制的各個交換機的負載值;

      劃分子模塊,用于根據(jù)所述待遷移負載值和所獲取的交換機的負載值,將所述第一控制器所控制的交換機劃分為交換機集合;

      第一判斷子模塊,用于判斷所劃分得到的交換機集合是否只有一個;

      第一確定子模塊,用于在所述第一判斷子模塊的判斷結果為是的情況下,將劃分得到的交換機集合中的交換機確定為待遷移交換機;

      第二確定子模塊,用于在所述第一判斷子模塊的判斷結果為否的情況下,從劃分得到的交換機集合中選擇一個交換機集合,作為目標交換機集合;并將所述目標交換機集合中的交換機確定為待遷移交換機。

      可選的,所述劃分子模塊,包括:

      第一確定單元,用于在所獲取的交換機的負載值中,確定總和最接近所述待遷移負載值的負載值組合;

      劃分單元,用于將所確定的負載值組合中的負載值對應的交換機劃分至同一個交換機集合中。

      可選的,所述估算子模塊,具體用于:

      根據(jù)本地記錄的各個控制器的負載值,采用如下公式估算所述第一控制器的待遷移負載值;

      Target=Poverloaded-Paverage

      其中,Target為所述待遷移負載值,Poverloaded為所述第一控制器的負載程度,是根據(jù)本地記錄的所述第一控制器的負載值和預設的第一控制器能承受的最大負載值計算得到的;Paverage為當前網絡的平均負載程度,是根據(jù)本地記錄的各個控制器的負載值的平均值及預設的網絡能承受的最大負載值計算得到的。

      可選的,所述第二確定子模塊,包括:

      獲取單元,用于獲取劃分得到的每一交換機集合中的各個交換機分別到所述第一控制器的距離;

      計算單元,用于針對每一交換機集合,計算該交換機集合中各交換機對應的距離的總和;

      選擇單元,用于選擇最大的總和對應的交換機集合作為目標交換機集合;

      第二確定單元,用于將所述目標交換機集合中的交換機確定為待遷移交換機。

      可選的,所述劃分模塊,包括:

      分組處理子模塊,用于根據(jù)所獲取的距離和預設的貪婪算法,對所確定的待遷移交換機進行分組處理,得到待遷移組;

      第二判斷子模塊,用于判斷所得到的待遷移組的數(shù)量是否大于第二控制器的數(shù)量,其中,所述第二控制器為:各個待遷移交換機共有的從控制器中,本地記錄的負載值小于預先設置的第二負載閾值的從控制器;

      第三確定子模塊,用于在所述第二判斷子模塊的判斷結果為是的情況下,對所得到的待遷移組進行合并處理,得到數(shù)量不大于所述第二控制器的數(shù)量的待遷移組;并將合并處理后的待遷移組確定為交換機組;

      第四確定子模塊,用于在所述第二判斷子模塊的判斷結果為否的情況下,將所得到的遷移組確定為交換機組。

      可選的,所述第三確定子模塊,包括:

      第三確定單元,用于從所得到的待遷移組中選擇一個待遷移組,確定為目標待遷移組;

      第四確定單元,用于在除所述目標遷移組之外的其他待遷移組中,確定與所述目標遷移組合并后距離方差最小的待遷移組;

      合并單元,用于將所述目標待遷移組和所確定的待遷移組合并為一個新的待遷移組;

      判斷單元,用于判斷待遷移組的數(shù)量是否大于所述第二控制器的數(shù)量;

      更新單元,用于在所述判斷單元的判斷結果為是的情況下,在合并后的待遷移組中選擇一個待遷移組,將所述目標待遷移組更新為所選擇的待遷移組;返回執(zhí)行第四確定單元。

      可選的,所述選擇模塊,包括:

      計算子模塊,用于利用以下公式,針對每一交換機組,計算每一第二控制器針對該交換機組的數(shù)據(jù)值:

      Cn=ω1×|Ln+Lk-LAverage|+ω2×Hk

      其中,Cn為第二控制器n針對交換機組k的數(shù)據(jù)值,Ln為第二控制器n的負載壓力值,Lk為交換機組k的平均負載壓力值,LAverage為當前網絡平均負載壓力值,Hk為交換機組k到第二控制器n的距離,ω1和ω2分別為預設權重,其和為1;

      第五確定子模塊,用于針對每一交換機組,確定該交換機組中數(shù)據(jù)值最小的第二控制器,作為該交換機組的目標控制器。

      本發(fā)明實施例提供的一種控制器負載均衡方法及裝置,可以從過載控制器中選擇一個過載控制器作為第一控制器,然后,從該第一控制器所控制的交換機中,確定待遷移機交換機,再將待遷移交換機劃分為交換機組,然后,為每一交換機組確定一個目標控制器,最后,將交換機組中的交換機遷移至對應的目標控制器上。相較于現(xiàn)有技術中,遷移針對第一控制器只遷移一個交換機,本發(fā)明實施例是將一個交換機組作為一個整體確定目標控制器,從而實現(xiàn)交換機組的整體遷移,進而提高了負載均衡的時間效率。當然,實施本發(fā)明的任一產品或方法并不一定需要同時達到以上所述的所有優(yōu)點。

      附圖說明

      為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

      圖1為本發(fā)明實施例提供的控制器負載均衡方法的第一種流程示意圖;

      圖2為第一種SDN網絡架構的拓撲示意圖;

      圖3為進行交換機組劃分后的第二種SDN網絡局部結構的拓撲示意圖;

      圖4為進行分組處理后的第三種SDN網絡局部結構的拓撲示意圖;

      圖5為本發(fā)明實施例提供的控制器負載均衡方法的第二種流程示意圖;

      圖6為第四種SDN網絡結構的拓撲示意圖;

      圖7為控制器B負載值的方差隨時間變化的曲線圖;

      圖8為控制器B負載值隨時間變化的曲線圖;

      圖9為本發(fā)明實施例提供的控制器負載均衡方法的第一種結構示意圖;

      圖10為本發(fā)明實施例提供的控制器負載均衡方法的第二種結構示意圖。

      具體實施方式

      下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。

      為解決現(xiàn)有技術存在的問題,本發(fā)明實施例提供了一種控制器負載均衡方法及裝置,下面首先對本發(fā)明實施例提供的一種控制器負載均衡方法進行詳細說明。

      圖1為本發(fā)明實施例提供的控制器負載均衡方法的第一種流程示意圖,方法包括:

      S101:在當前周期內,從過載控制器中選擇一個過載控制器,確定為第一控制器,其中,所述過載控制器為:根據(jù)本地記錄的各個控制器的負載值和預先設置的第一負載閾值,從各個控制器中確定的控制器。

      首先,對本發(fā)明實施例所用的SDN網絡架構進行說明。該網絡架構包括控制層面和數(shù)據(jù)層面,控制層面與數(shù)據(jù)層面分離??刂茖用姘ㄒ粋€超級控制器和多個控制器,需要說明的是,在本發(fā)明實施例中所說的控制器是相對于超級控制器來說的普通控制器。數(shù)據(jù)層面中包括多個交換機,交換機與控制器邏輯連接。超級控制器在交換機連接的控制器中,指定一個控制器作為該交換機的主控制器,該交換機連接的其他控制器為該交換機的從控制器。示例性的,圖2為第一種SDN網絡架構的拓撲示意圖,從圖2可知,交換機S1連接的控制器有控制器C1、C2、C3和C4,當前對于交換機S1來說,控制器C1是主控制器,控制器C2、C3和C4是從控制器。超級控制器分別與控制器C1、C2、C3和C4連接,使得超級控制器可以從控制器中獲取信息。需要說明的是,本發(fā)明實施例提供的控制器負載均衡方法可以應用于超級控制器。

      需要說明的是,周期是從網絡啟動時開始計算,將預先設置的時間間隔作為一個周期,示例性的,預先設置的時間間隔可以為2毫秒,即2毫秒為一個周期。在本發(fā)明實施例中,本地記錄的各個控制器的負載值是周期性獲取的。各個控制器中運行了負載監(jiān)測模塊,該負載監(jiān)測模塊用于測量自身的負載值,并且將測量得到的負載值周期性地推送給超級控制器。需要說明的是,這里所說的周期性和上述所說的周期不是相同的概念,這里所說的周期的時間間隔可以小于上述所說的周期時間間隔,當然,也可以不小于上述所說的周期時間間隔。

      需要說明的是,如果根據(jù)本地記錄的各個控制器的負載值和預先設置的第一負載閾值,沒有確定出過載控制器,則說明目前各個控制器均處于負載均衡狀態(tài),不需要進行對控制器進行負載均衡。第一負載閾值是根據(jù)實際情況確定的負載值,如果一個控制器的負載值大于第一負載閾值,則該控制器為過載控制器。本領域技術人員可以理解的是,在確定第一控制器的時候,可以在過載控制器中隨機選擇一個過載控制器,也可以在過載控制器中選擇負載值最大的控制器。如果一個控制器的負載過大,會影響網絡性能,選擇負載值最大的控制器作為第一控制器,這樣可以大大減少過載對網絡性能的影響。

      需要說明的是,針對記錄的同一組各個控制器的負載值確定的過載控制器,如果一個過載控制器被確定為第一控制器,該過載控制器不會再次被確定為第一控制器。針對記錄的同一組各個控制器的負載值確定的過載控制器,是一個過載控制器集合。當一個過載控制器被確定為第一控制器,則將該過載控制器從過載控制器集合中刪除。

      S102:從所述第一控制器所控制的交換機中,確定待遷移交換機。

      具體的,從所述第一控制器所控制的交換機中,確定待遷移交換機的步驟,包括:

      根據(jù)本地記錄的各個控制器的負載值,估算所述第一控制器的待遷移負載值;

      獲取所述第一控制器所控制的各個交換機的負載值;

      根據(jù)所述待遷移負載值和所獲取的交換機的負載值,將所述第一控制器所控制的交換機劃分為交換機集合;

      判斷所劃分得到的交換機集合是否只有一個;

      如果是,將劃分得到的交換機集合中的交換機確定為待遷移交換機;

      如果否,從劃分得到的交換機集合中選擇一個交換機集合,作為目標交換機集合;并將所述目標交換機集合中的交換機確定為待遷移交換機。

      本領域技術人員可以理解的是,將控制器所控制的交換機遷移走,可以降低控制器的負載,實現(xiàn)控制器的負載均衡。但是需要估算第一控制器的待遷移負載值,進而確定遷移哪些交換機。

      超級控制器可以從第一控制器中獲取第一控制器控制的各個交換機的負載值,根據(jù)待遷移負載值和所獲取的交換機的負載值,可以將第一控制器所控制的交換機劃分為交換機集合。具體的,可以在交換機的負載值中,確定總和接近待遷移負載值的負載值組合,將負載值組合中的負載值對應的交換機劃分至同一個交換機集合中。當然,并不僅限于上述示例,還存在其他方式將交換機劃分為交換機集合。

      如果劃分得到的交換機集合只有一個,則可以將該交換機集合中交換機確定為待遷移交換機。如果劃分得到的交換機集合有多個,遷移一個交換機集合中交換機,就可以實現(xiàn)負載均衡。如果將所有交換機集合中的交換機均遷移至其他的控制器上,會影響整個網絡的負載均衡。所以需要在多個交換機集合中選擇一個交換機集合,作為目標交換機集合,將目標交換機集合中的交換機確定為待遷移交換機。

      具體的,所述根據(jù)本地記錄的各個控制器的負載值,估算所述第一控制器的待遷移負載值的步驟,包括:

      根據(jù)本地記錄的各個控制器的負載值,采用如下公式估算所述第一控制器的待遷移負載值;

      Target=Poverloaded-Paverage

      其中,Target為所述待遷移負載值,Poverloaded為所述第一控制器的負載程度,是根據(jù)本地記錄的所述第一控制器的負載值和預設的第一控制器能承受的最大負載值計算得到的;Paverage為當前網絡的平均負載程度,是根據(jù)本地記錄的各個控制器的負載值的平均值及預設的網絡能承受的最大負載值計算得到的。

      在實際應用中,第一控制器能承受的最大負載值是預先設置的,可以是根據(jù)實際情況設置,針對不同的控制器,可以設置相同的能承受的最大負載值,也可以設置不同的能承受的最大負載值。網絡能承受的最大負載值可以是根據(jù)預設的各個控制器能承受的最大負載值的平均值確定的,還可以是通過其他方式預先確定的,在這里不進行限定。

      具體的,Poverloaded可以通過以下公式計算得到:

      Poverloaded=Lj/Lmax

      其中,Lj為本地記載的第一控制器的負載值,第一控制器為控制器j,Lmax為預設的第一控制器能承受的最大負載值。

      需要說明的是,Paverage也可以利用與上述相同的原理計算得到,具體的,Paverage的計算公式為:

      Paverage=Nv/Nmax

      其中,Nv為本地記錄的各個控制器的負載值的平均值,Nmax為預設的網絡能承受的最大負載值。

      具體的,所述根據(jù)所述待遷移負載值和所獲取的交換機的負載值,將所述第一控制器所控制的交換機劃分為交換機集合的步驟,包括:

      在所獲取的交換機的負載值中,確定總和最接近所述待遷移負載值的負載值組合;

      將所確定的負載值組合中的負載值對應的交換機劃分至同一個交換機集合中。

      需要說明的是,負載值組合中的負載值的總和不能超過待遷移負載值。

      示例性的,第一控制器為控制器C8,待遷移負載值為15%,控制器C8控制的交換機分別為交換機S11、S12、S13、S14和S15,交換機的負載值可以為該交換機發(fā)送的PACKET-IN(數(shù)據(jù)包傳入)包的數(shù)量占控制器接收到的包數(shù)量的百分比。具體的,交換機S11、S12、S13、S14和S15分別為7%、8%、2%、5%和30%。在這5個負載值中,確定總和最接近15%的負載值組合。確定出了負載值組合1和負載值組合2,負載值組合1中的負載值分別為8%和7%,負載值組合2中的負載值分別為8%、2%和5%。將交換機S11和S12劃分至交換機集合1中,交換機S12、S13和S14劃分至交換機集合2。具體的,進行交換機組劃分后的第二種SDN網絡局部結構的拓撲示意圖,可以如圖3所示。

      具體的,所述從劃分得到的交換機集合中選擇一個交換機集合,作為目標交換機集合的步驟,包括:

      獲取劃分得到的每一交換機集合中的各個交換機分別到所述第一控制器的距離;

      針對每一交換機集合,計算該交換機集合中各交換機對應的距離的總和;

      選擇最大的總和對應的交換機集合作為目標交換機集合。

      在本發(fā)明實施例中,超級控制器可以從每個控制器獲取自身分別到各個交換機的距離,獲取的距離中包含了每一交換機集合中的各個交換機分別到第一控制器的距離。

      計算交換機集合中的各交換機對應的距離的總和,可以采用如下公式:

      Dq=∑Dij

      其中,Dq為交換機集合q中的各交換機對應的距離的總和,Dij為交換機集合q中交換機i到第一控制器j的距離。

      延續(xù)上述示例,交換機S11、S12、S13和S14到控制器C8的距離為6hops(躍點數(shù))、4hops、2hops和3hops,則交換機集合1中各交換機對應的距離的總和為10hops,交換機集合2中各交換機對應的距離的總和為9hops。在本發(fā)明實施例中,選擇總和最大對應的交換機集合作為目標交換機集合,目標交換機集合為交換機集合1,確定的待遷移交換機為交換機S11和S12。

      在本發(fā)明實施例中,之所以選擇距離最大對應的交換機集合為目標交換機集合,是因為交換機距離控制器越遠,管理成本會也高。相對于選擇遷移距離比較近的交換機,遷移距離比較遠的交換機會降低管理成本,提高網絡性能。

      S103:將所確定的待遷移交換機劃分為交換機組,其中,每一交換機組中包括至少一個交換機。

      具體的,根據(jù)所獲取的距離和預設的貪婪算法,對所確定的待遷移交換機進行分組處理,得到待遷移組;

      判斷所得到的待遷移組的數(shù)量是否大于第二控制器的數(shù)量,其中,所述第二控制器為:各個待遷移交換機共有的從控制器中,本地記錄的負載值小于預先設置的第二負載閾值的從控制器;

      如果是,對所得到的待遷移組進行合并處理,得到數(shù)量不大于所述第二控制器的數(shù)量的待遷移組;并將合并處理后的待遷移組確定為交換機組;

      如果否,將所得到的遷移組確定為交換機組。

      需要說明的是,貪婪算法又稱貪心算法,在對問題求解時,總是做出在當前看來是最好的選擇。不從整體最優(yōu)上加以考慮,而是從局部出發(fā),獲取局部最優(yōu)解。在本發(fā)明實施例中,貪婪算法是按照待遷移交換機中的交換機到第一控制器之間的距離進行分組處理,獲得待遷移組。具體的,可以將遷移交換機組中,到第一控制器的距離最接近的交換機兩兩分為一組,當然,還可以將到第一控制器的距離最接近的兩個以上交換機分為一組。需要說明的是,待遷移組相互之間不存在相同的交換機,對待遷移交換機進行分組處理之后,可能會存在只有一個交換機的待遷移組。

      示例性的,第一控制器為控制器C5,待遷移交換機為交換機S21、S22、S23、S24、S25、S26和S27。交換機S21、S22、S23、S24、S25、S26和S27到控制器C5的距離分別為6hops、2hops、8hops、7hops、15hops、10hops和12hops。將上述距離中最接近的兩個距離對應的交換機劃分到一組,對上述7個交換機進行分組處理,得到4個待遷移組。具體的,進行分組處理后的第三種SDN網絡局部結構的拓撲示意圖,可以如圖4所示,待遷移組1包括交換機S21和S22交換機,待遷移組包括交換機S23和S24,待遷移組包括交換機S25,待遷移組包括交換機S26和S27。

      在本發(fā)明實施例中,在對待遷移交換機進行分組處理,得到待遷移組后,還需要判斷待遷移組的數(shù)量是否大于第二控制器的數(shù)量,是因為對待遷移交換機進行分組處理,主要想要在第二控制器中,為每一待遷移組選擇一個目標控制器。如果待遷移交換機組的數(shù)量大于第二控制器的數(shù)量,第二控制器的數(shù)量不足以分配給待遷移組,從而失去了對待遷移組分組處理的意義。此時,需要對得到的待遷移組進行合并,得到數(shù)量不大于第二控制器數(shù)量的待遷移組。

      如果待遷移組的數(shù)量不大于第二控制器的數(shù)量,則將待遷移組確定為交換機組。

      具體的,所述對所得到的待遷移組進行合并處理,得到數(shù)量不大于所述第二控制器的數(shù)量的待遷移組的步驟,包括:

      從所得到的待遷移組中選擇一個待遷移組,確定為目標待遷移組;

      在除所述目標遷移組之外的其他待遷移組中,確定與所述目標遷移組合并后距離方差最小的待遷移組;

      將所述目標待遷移組和所確定的待遷移組合并為一個新的待遷移組;

      判斷待遷移組的數(shù)量是否大于所述第二控制器的數(shù)量;

      如果是,在合并后的待遷移組中選擇一個待遷移組,將所述目標待遷移組更新為所選擇的待遷移組;返回執(zhí)行所述在除所述目標遷移組之外的其他待遷移組中,確定與所述目標遷移組合并后距離方差最小的待遷移組的步驟。

      在本發(fā)明實施例中,當待遷移組的數(shù)量大于第二控制器的數(shù)量,需要對待遷移組進行合并處理,在進行合并處理時,可以先在待遷移組中選擇一個待遷移組,作為目標待遷移組。具體的,可以是隨機一個待遷移組作為目標控制器,可以是將選擇待遷移組中交換機對應的距離中,總和最小的待遷移組作為目標待遷移組,當然,并不僅限于上述方法,還有其他方法選擇目標待遷移組。

      延續(xù)上述示例,目標遷移組為待遷移組1,第二控制器有3個,分別計算待遷移組1分別與待遷移組2、待遷移組3和待遷移組4合并,合并后的待遷移組中交換機到第一控制器的距離的方差。在得到的3個方差值分別為6.92、44.33和19.67,根據(jù)所得到的方差值,確定待遷移組1和待遷移組2進行合并。因為將這兩個待遷移組合并,得到的新的待遷移組,新的待遷移組中的交換機到第一控制器的距離的方差最小。此時,待遷移組數(shù)量為3個,分別為合并后的待遷移組1、待遷移組3和待遷移組4。合并后的待遷移組1中包括交換機S21、S22、S23和S24。待遷移組的數(shù)量等于第二控制器的數(shù)量,將這3個待遷移組確定為交換機組,交換機組1為合并后的待遷移組1,交換機組2為待遷移組2,交換機組3為待遷移組3。

      需要說明的是,如果在一次合并之后,如果待遷移交換組的數(shù)量還大于第二控制器的數(shù)量,則需要繼續(xù)進行合并。具體的,可以在合并后的待遷移組中選擇一個待遷移組,將目標待遷移組更新為所選擇的待遷移組;返回執(zhí)行在除目標遷移組之外的其他待遷移組中,確定與目標遷移組合并后距離方差最小的待遷移組的步驟。

      S104:針對每一交換機組,從該交換機組的所有交換機共有的從控制器中,為該交換機組選擇一個從控制器,作為該交換機組的目標控制器。

      所述針對每一交換機組,從該交換機組的所有交換機共有的從控制器中,為該交換機組選擇一個從控制器,作為該交換機組的目標控制器的步驟,包括:

      利用以下公式,針對每一交換機組,計算每一第二控制器針對該交換機組的數(shù)據(jù)值:

      Cn=ω1×|Ln+Lk-LAverage|+ω2×Hk

      其中,Cn為第二控制器n的數(shù)據(jù)值,Ln為第二控制器n的負載壓力值、Lk為交換機組k的平均負載壓力值,LAverage為當前網絡平均負載壓力值,Hk為交換機組k到第二控制器n的距離,ω1和ω2分別為預設權重,其和為1;

      針對每一交換機組,確定該交換機組中數(shù)據(jù)值最小的第二控制器,作為該交換機組的目標控制器。

      在本發(fā)明實施例中,為每一交換機組確定目標控制器時,需要在每一交換機組所有交換機共有的從控制器中,確定目標控制器。進一步地,在各個交換機組中交換機共有的從控制器中,為每一個交換機組確定一個目標控制器。為了在遷移交換機組后,目標控制器不過載,需要在各個交換機組中交換機共有的,負載值低于第二負載閾值的從控制器中確定目標控制器。即可以在第二控制器中為每一交換機組確定一個目標控制器。因為第二控制器的負載值小于第二負載閾值,說明第二控制器中的每一控制器均是輕負載控制器,保證了第二控制器中的控制器不會因為增加了遷移的交換機組的負載值而過載。

      具體的,在第二控制器中確定每一交換機組對應的目標控制器的方法可以為:針對每一交換機組,計算每一第二控制器針對該交換機組的數(shù)據(jù)值。延續(xù)上述示例,計算3個第二控制器針對交換機組1的數(shù)據(jù)值,在計算得到的3個數(shù)據(jù)值中,確定最小的數(shù)據(jù)值對應的第二控制器。交換機組1的目標控制器為所確定的第二控制器。針對交換機組2和交換機組3,重復上述步驟,分別確定交換機組2和交換機組3的目標控制器。

      S105:向所述第一控制器和每個目標控制器發(fā)送遷移信息,以使得所述第一控制器將每一交換機組中的交換機遷移至對應的目標控制器上。

      在現(xiàn)有技術中,是將第一控制器所控制的交換機中,負載最重的交換機遷移至目標控制器。這樣導致目標控制器過載的概率增大,從而引起交換機頻繁遷移的問題。在本發(fā)明實施例中,可以將交換機組中的交換機遷移至目標控制器上,目標控制器是根據(jù)上述公式計算出來的數(shù)據(jù)值,在第二控制器中確定的。這樣能保證目標控制器不會過載,從而,避免交換機頻繁遷移的問題。

      在本發(fā)明實施例中,超級控制器向第一控制器發(fā)送遷移信息,第一控制器將接收到遷移消息后,將自己對于所有交換機組中的交換機的狀態(tài)從主控制器狀態(tài)變更為從控制器狀態(tài),同時,將每一交換機組中的交換機遷移至對應的目標控制器上。超級控制器向每一目標控制器發(fā)送遷移消息,目標控制器在將接收到遷移消息后,對于自身對應的交換機組,將狀態(tài)由從控制器狀態(tài)切換至主控制器狀態(tài)。需要說明的是,對交換機組進行遷移的方法與現(xiàn)有技術中交換機遷移方法原理相同,在這里不對交換機組的詳細遷移過程進行贅述。

      在本發(fā)明實施例中,通過計算得到的待遷移負載值,確定待遷移交換機,并對待遷移交換機進行分組,得到交換機組。針對每一交換機組,確定一個目標控制器,在將所有的交換機組遷移走之后,第一控制器從過載狀態(tài)變?yōu)樨撦d均衡狀態(tài),而且,目標控制器也不會過載。在一個周期內即可實現(xiàn)第一控制器的負載均衡,相較于現(xiàn)有技術中,可能需要在幾個周期之后才能實現(xiàn)第一控制器的負載均衡,本發(fā)明實施例提高了負載均衡的時間效率。

      應用本發(fā)明實施例,可以從過載控制器中選擇一個過載控制器作為第一控制器,然后,從該第一控制器所控制的交換機中,確定待遷移機交換機,再將待遷移交換機劃分為交換機組,然后,為每一交換機組確定一個目標控制器,最后,將交換機組中的交換機遷移至對應的目標控制器上。相較于現(xiàn)有技術中,遷移針對第一控制器只遷移一個交換機,本發(fā)明實施例是將一個交換機組作為一個整體確定目標控制器,從而實現(xiàn)交換機組的整體遷移,進而提高了負載均衡的時間效率。

      圖5為本發(fā)明實施例所提供的控制器負載均衡方法的第二種流程示意圖?;趫D1所提供的實施例,本發(fā)明實施例所提供的一種控制器負載均衡方法,在S105之后,還包括S110、S111、S112和S113,其中,

      S106:判斷所述當前周期是否結束;如果否,執(zhí)行S107。

      在本發(fā)明實施例中,如果當前周期沒有結束,則執(zhí)行S107。如果當前周期結束,則進入下一個周期,可以理解為進入下一個周期,對于超級控制器來說就是當前周期。獲取各個控制器負載值的周期與當前周期的時間間隔并沒有直接關系,可以在進入下一個周期之后,才重新獲取到各個控制器的負載值;也可以在進入到下一個周期之前,重新獲取各個控制器的負載值。不管在什么時候重新獲取各個控制器的負載值,針對獲取的同一組負載值確定的過載控制器,一個過載控制器只能被確定為第一控制器一次。

      S107:確定在所述當前周期內是否重新獲取了各個控制器的負載值;如果獲取,執(zhí)行S108,如果沒有獲取,執(zhí)行S109。

      在當前周期內,在執(zhí)行S101至S106的時,重新獲取了各個控制器的負載值,使用的還是記錄的各個控制器的負載值,而不是重新獲取的各個控制器的負載值。

      S108:將本地記錄的各個控制器的負載值更新為最新獲取的各個控制器的負載值,并返回執(zhí)行S101。

      因為在當前周期內,可能多次重新獲取了各個控制的負載值,在執(zhí)行S101和S106過程中,使用的是本地記錄的各個控制器的負載值,在這個過程中,各個控制器的負載值很有可能發(fā)生了變化,因此,將本地記錄的各個控制器的負載值更新為最新獲取的各個控制器的負載值。在更新完成之后,則返回執(zhí)行S101。

      S109:從未被確定為所述第一控制器的過載控制器中重新選擇一個過載控制器,將所述第一控制器更新為重新選擇的過載控制器,并返回執(zhí)行S102。

      在當前周期內,如果沒有重新獲取各個控制器的負載值,則需要在從未被確定為第一控制器的過載中重新選擇一個過載控制器,可以選擇過載次重的過載控制器,當然,也可以隨機在沒有被確定為第一控制器的過載控制器中選擇一個過載控制器,將第一控制器更新為重新選擇的過載控制器,并返回執(zhí)行S102。

      應用本發(fā)明實施例,可以從過載控制器中選擇一個過載控制器作為第一控制器,然后,從該第一控制器所控制的交換機中,確定待遷移機交換機,再將待遷移交換機劃分為交換機組,然后,為每一交換機組確定一個目標控制器,最后,將交換機組中的交換機遷移至對應的目標控制器上。相較于現(xiàn)有技術中,遷移針對第一控制器只遷移一個交換機,本發(fā)明實施例是將一個交換機組作為一個整體確定目標控制器,從而實現(xiàn)交換機組的整體遷移,進而提高了負載均衡的時間效率。

      下面通過一個具體實例,對本發(fā)明實施例提供的負載均衡的方法進行說明。

      圖6為第四種SDN網絡結構的拓撲示意圖,控制器A為超級控制器,控制器B、C和D均是普通控制器,每一交換機有一個主控制器,兩個從控制器,在圖中僅以交換機S10為例進行了示意。交換機S10的主控制器為控制器B,從控制器為控制器C和D。在本具體實例中,控制器B、C和D的第一負載閾值為8000pps(Packets per Second,數(shù)據(jù)包每秒)。采用以下4個方案進行比較,進而驗證本發(fā)明實施例提供的控制器負載均衡的方法:方案Ⅰ:采用現(xiàn)有技術中的方案,選擇負載最重的交換機進行遷移;方案Ⅱ:采用本發(fā)明實施例中的確定待遷移交換機的方法,但不對待遷移交換機進行分組處理,為每一待遷移交換機確定一個目標控制器,并進行遷移;方案Ⅲ:采用本發(fā)明實施例提供的負載均衡的方法;方案Ⅳ:采用現(xiàn)有技術中的方案,交換機到控制器的映射是靜態(tài)映射,即不進行交換機的遷移。

      在本具體實例中,首先驗證的是交換機頻繁遷移問題,利用方案I和方案III來驗證。驗證中,使用控制器負載的方差來評估網絡的均衡性,控制器負載值的方差越小,則控制器的均衡性越高。在相同的條件下,針對控制器B,對方案I和方案III進行仿真,控制器B負載值的方差隨時間變化的曲線圖如圖7所示。圖中的兩條曲線分別表示方案I和方案III中控制器B的負載值方差隨時間的變化規(guī)律,其中,曲線201是利用方案III提供的方法,控制器B負載值的方差隨時間變化的曲線,曲線202是利用方案I提供的方法,控制器B負載值的方差隨時間變化的曲線。從0秒到56秒,控制器B的負載值小于第一負載閾值,在56秒時控制器B所控制交換機的主機傳輸指令使其發(fā)送更多數(shù)據(jù)流。于是,在56秒到57秒之間,控制器B的負載值超過了第一負載閾值。在方案I中,在控制器B控制的交換機中,選擇最重的交換機來遷移,控制器B的負載在61秒時刻降低,但是由于出現(xiàn)了交換機的頻繁遷移情況使得控制器B周期性地出現(xiàn)過載現(xiàn)象。因此,在57秒到70秒之間,控制器B的負載值方差比較大,直到70秒時降低,這時交換機的頻繁遷移結束。在方案III中,該方案選擇兩個交換機來遷移并且同時遷移它們,控制器B的負載在61秒時刻降低。比較兩個方案,在控制器B過載后,相對于方案I中控制器B的負載值的方差,方案III中的控制器B的負載值的方差較小且較穩(wěn)定。因此得出,本發(fā)明實施例提供的控制器負載均衡方法可以避免交換機頻繁問題。

      在本發(fā)明實施例中,驗證交換機整體遷移提高時間效率的問題時,將控制器過載時刻到恢復正常時刻之間的時間定義為均衡完成時間。利用方案II、III和IV中的均衡的完成時間進行驗證。在相同的條件下,針對控制器B,對方案Ⅱ、方案Ⅲ和方案Ⅳ進行仿真,控制器B負載值隨時間變化的曲線圖如圖8所示,圖中的三條曲線分別表示方案II、III和IV中控制器B的負載值隨時間的變化規(guī)律,其中,曲線301是利用方案IV提供的方法,控制器B負載值隨時間變化的曲線,曲線302是利用方案II提供的方法,控制器B負載值隨時間變化的曲線,曲線303是利用方案III提供的方法,控制器B負載值隨時間變化的曲線。在圖8中,控制器B負載值的單位是K(Kilo,千)pps,。在0秒到56秒之間,控制器B的負載值是小于第一負載閾值的,在56秒時,控制器B所控交換機的主機傳輸指令使其發(fā)送更多數(shù)據(jù)流。于是,控制器B的負載值在56秒到57秒之間超過了第一負載閾值。在方案II中,有兩個交換機需要一一被遷移,這兩次遷移分別在61秒和65秒時被完成。在方案III中,兩個交換機同時被遷移,遷移是在61秒時完成的。在方案IV中,控制器B負載的降低是一個比較緩慢的過程,直到71秒時負載才恢復正常。因此,本發(fā)明實施例提供的控制器負載均衡方法可以提高負載均衡的時間效率。

      與圖1所示的方法實施例相對應,圖9為本發(fā)明實施例提供的控制器負載均衡方法的第一種結構示意圖,該裝置包括:第一確定模塊401、第二確定模塊402、劃分模塊403、選擇模塊404和發(fā)送模塊405,其中,

      第一確定模塊401,用于在當前周期內,從過載控制器中選擇一個過載控制器,確定為第一控制器,其中,所述過載控制器為:根據(jù)本地記錄的各個控制器的負載值和預先設置的第一負載閾值,從各個控制器中確定的控制器;

      第二確定模塊402,用于從所述第一控制器所控制的交換機中,確定待遷移交換機;

      劃分模塊403,用于將所確定的待遷移交換機劃分為交換機組,其中,每一交換機組中包括至少一個交換機;

      選擇模塊404,用于針對每一交換機組,從該交換機組的所有交換機共有的從控制器中,為該交換機組選擇一個從控制器,作為該交換機組的目標控制器;

      發(fā)送模塊405,用于向所述第一控制器和每個目標控制器發(fā)送遷移信息,以使得所述第一控制器將每一交換機組中的交換機遷移至對應的目標控制器上。

      具體的,所述第二確定模塊402,包括估算子模塊、獲取子模塊、劃分子模塊、第一判斷子模塊、第一確定子模塊和第二確定子模塊(圖中未示出)。

      估算子模塊,用于根據(jù)本地記錄的各個控制器的負載值,估算所述第一控制器的待遷移負載值;

      獲取子模塊,用于獲取所述第一控制器所控制的各個交換機的負載值;

      劃分子模塊,用于根據(jù)所述待遷移負載值和所獲取的交換機的負載值,將所述第一控制器所控制的交換機劃分為交換機集合;

      第一判斷子模塊,用于判斷所劃分得到的交換機集合是否只有一個;

      第一確定子模塊,用于在所述第一判斷子模塊的判斷結果為是的情況下,將劃分得到的交換機集合中的交換機確定為待遷移交換機;

      第二確定子模塊,用于在所述第一判斷子模塊的判斷結果為否的情況下,從劃分得到的交換機集合中選擇一個交換機集合,作為目標交換機集合;并將所述目標交換機集合中的交換機確定為待遷移交換機。

      具體的,所述劃分子模塊,包括第一確定單元和劃分單元(圖中未示出)。

      第一確定單元,用于在所獲取的交換機的負載值中,確定總和最接近所述待遷移負載值的負載值組合;

      劃分單元,用于將所確定的負載值組合中的負載值對應的交換機劃分至同一個交換機集合中。

      具體的,所述估算子模塊,具體用于:

      根據(jù)本地記錄的各個控制器的負載值,采用如下公式估算所述第一控制器的待遷移負載值;

      Target=Poverloaded-Paverage

      其中,Target為所述待遷移負載值,Poverloaded為所述第一控制器的負載程度,是根據(jù)本地記錄的所述第一控制器的負載值和預設的第一控制器能承受的最大負載值計算得到的;Paverage為當前網絡的平均負載程度,是根據(jù)本地記錄的各個控制器的負載值的平均值及預設的網絡能承受的最大負載值計算得到的。

      具體的,所述第二確定子模塊,包括獲取單元、計算單元、選擇單元和第二確定單元(圖中未示出)。

      獲取單元,用于獲取劃分得到的每一交換機集合中的各個交換機分別到所述第一控制器的距離;

      計算單元,用于針對每一交換機集合,計算該交換機集合中各交換機對應的距離的總和;

      選擇單元,用于選擇最大的總和對應的交換機集合作為目標交換機集合;

      第二確定單元,用于將所述目標交換機集合中的交換機確定為待遷移交換機。

      具體的,所述劃分模塊403,還包括分組處理子模塊、第二判斷子模塊、第三確定子模塊和第四確定子模塊(圖中未示出)。

      分組處理子模塊,用于根據(jù)所獲取的距離和預設的貪婪算法,對所確定的待遷移交換機進行分組處理,得到待遷移組;

      第二判斷子模塊,用于判斷所得到的待遷移組的數(shù)量是否大于第二控制器的數(shù)量,其中,所述第二控制器為:各個待遷移交換機共有的從控制器中,本地記錄的負載值小于預先設置的第二負載閾值的從控制器;

      第三確定子模塊,用于在所述第二判斷子模塊的判斷結果為是的情況下,對所得到的待遷移組進行合并處理,得到數(shù)量不大于所述第二控制器的數(shù)量的待遷移組;并將合并處理后的待遷移組確定為交換機組;

      第四確定子模塊,用于在所述第二判斷子模塊的判斷結果為否的情況下,將所得到的遷移組確定為交換機組。

      具體的,所述第三確定子模塊,包括第三確定單元、第四確定單元、合并單元、判斷單元和更新單元(圖中未示出)。

      第三確定單元,用于從所得到的待遷移組中選擇一個待遷移組,確定為目標待遷移組;

      第四確定單元,用于在除所述目標遷移組之外的其他待遷移組中,確定與所述目標遷移組合并后距離方差最小的待遷移組;

      合并單元,用于將所述目標待遷移組和所確定的待遷移組合并為一個新的待遷移組;

      判斷單元,用于判斷待遷移組的數(shù)量是否大于所述第二控制器的數(shù)量;

      更新單元,用于在所述判斷單元的判斷結果為是的情況下,在合并后的待遷移組中選擇一個待遷移組,將所述目標待遷移組更新為所選擇的待遷移組;返回執(zhí)行第四確定單元。

      具體的,所述選擇模塊404,包括計算子模塊和第五確定子模塊(圖中未示出)。

      計算子模塊,用于利用以下公式,針對每一交換機組,計算每一第二控制器針對該交換機組的數(shù)據(jù)值:

      Cn=ω1×|Ln+Lk-LAverage|+ω2×Hk

      其中,Cn為第二控制器n的數(shù)據(jù)值,Ln為第二控制器n的負載壓力值、Lk為交換機組k的平均負載壓力值,LAverage為當前網絡平均負載壓力值,Hk為交換機組k到第二控制器n的距離,ω1和ω2分別為預設權重,其和為1;

      第五確定子模塊,用于針對每一交換機組,確定該交換機組中數(shù)據(jù)值最小的第二控制器,作為該交換機組的目標控制器。

      應用本發(fā)明實施例,可以從過載控制器中選擇一個過載控制器作為第一控制器,然后,從該第一控制器所控制的交換機中,確定待遷移機交換機,再將待遷移交換機劃分為交換機組,然后,為每一交換機組確定一個目標控制器,最后,將交換機組中的交換機遷移至對應的目標控制器上。相較于現(xiàn)有技術中,遷移針對第一控制器只遷移一個交換機,本發(fā)明實施例是將一個交換機組作為一個整體確定目標控制器,從而實現(xiàn)交換機組的整體遷移,進而提高了負載均衡的時間效率。

      與圖5所示的方法實施例相對應,圖10為本發(fā)明實施例提供的控制器負載均衡方法的第二種結構示意圖,該裝置還包括判斷模塊406、第三確定模塊407、第一更新模塊408和第二更新模塊409,其中,

      判斷模塊406,用于判斷所述當前周期是否結束;

      第三確定模塊407,用于在所述判斷模塊406的判斷結果為否的情況下,確定在所述當前周期內是否重新獲取了各個控制器的負載值;

      第一更新模塊408,用于在所述第三確定模塊407的確定結果為獲取的情況下,將本地記錄的各個控制器的負載值更新為最新獲取的各個控制器的負載值,并返回執(zhí)行所述第一確定模塊401;

      第二更新模塊409,用于在所述第三確定模塊407的確定結果為沒有獲取的情況下,從未被確定為所述第一控制器的過載控制器中重新選擇一個過載控制器,將所述第一控制器更新為重新選擇的過載控制器,并返回執(zhí)行所述第二確定模塊402。

      應用本發(fā)明實施例,可以從過載控制器中選擇一個過載控制器作為第一控制器,然后,從該第一控制器所控制的交換機中,確定待遷移機交換機,再將待遷移交換機劃分為交換機組,然后,為每一交換機組確定一個目標控制器,最后,將交換機組中的交換機遷移至對應的目標控制器上。相較于現(xiàn)有技術中,遷移針對第一控制器只遷移一個交換機,本發(fā)明實施例是將一個交換機組作為一個整體確定目標控制器,從而實現(xiàn)交換機組的整體遷移,進而提高了負載均衡的時間效率。

      需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。

      本說明書中的各個實施例均采用相關的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于系統(tǒng)實施例而言,由于其基本相似于方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。

      以上所述僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內所作的任何修改、等同替換、改進等,均包含在本發(fā)明的保護范圍內。

      當前第1頁1 2 3 
      網友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1