本發(fā)明涉及計算機網(wǎng)絡(luò)
技術(shù)領(lǐng)域:
:,尤其涉及一種基于云計算和sdn網(wǎng)絡(luò)的負(fù)載均衡控制方法及系統(tǒng)。
背景技術(shù):
::負(fù)載均衡是網(wǎng)絡(luò)數(shù)據(jù)處理方面的一門重要的技術(shù)手段。利用負(fù)載均衡可以擴展網(wǎng)絡(luò)設(shè)備和服務(wù)器的帶寬、增加吞吐量、加強網(wǎng)絡(luò)數(shù)據(jù)處理能力、提高網(wǎng)絡(luò)的靈活性和可用性。基于云計算和sdn網(wǎng)絡(luò)使用代理軟件如nignx等的方案作為負(fù)載均衡是現(xiàn)有方案中較為常見的。但該方案中使用的是雙向代理,通常性能上存在一定的瓶頸,而且非常消耗宿主機的資源。使用代理軟件作為負(fù)載均衡,一般地需要對代理軟件進(jìn)行二次開發(fā)以應(yīng)對性能不高等問題。二次開發(fā)帶來的問題也是顯而易見的,穩(wěn)定性不高,需要一定的開發(fā)成本等等一系列的問題。再者,現(xiàn)有的云計算上的負(fù)載均衡方案缺乏彈性,對于網(wǎng)絡(luò)數(shù)據(jù)的突發(fā)增多的情況,或者在網(wǎng)絡(luò)數(shù)據(jù)不多時需要降低負(fù)載均衡占用云資源的時候,往往都需要人工手動處理。在現(xiàn)有負(fù)載均衡的方案中,除了上述基于代理軟件實現(xiàn),有一種基于linux操作系統(tǒng)內(nèi)核ipvs模塊的高性能lvs負(fù)載均衡,該負(fù)載均衡方案可以實現(xiàn)單向代理。單向代理,即客戶端發(fā)送請求到負(fù)載均衡后,負(fù)載均衡只需負(fù)責(zé)將請求均衡分發(fā)到后端機器,而后端機器的響應(yīng)數(shù)據(jù)不需要再經(jīng)過負(fù)載均衡進(jìn)行轉(zhuǎn)發(fā),響應(yīng)數(shù)據(jù)直接響應(yīng)到客戶端。同時,其基于ipvs模塊實現(xiàn),數(shù)據(jù)在網(wǎng)絡(luò)協(xié)議棧的網(wǎng)絡(luò)層就轉(zhuǎn)發(fā)離開,轉(zhuǎn)發(fā)網(wǎng)絡(luò)數(shù)據(jù)的路徑對比使用代理軟件要短很多??墒?,現(xiàn)有的lvs負(fù)載均衡方案因為其復(fù)雜網(wǎng)絡(luò)數(shù)據(jù)流通路徑和復(fù)雜的配置,對于現(xiàn)有的云網(wǎng)絡(luò)來說比較難實現(xiàn),因此通常只存在于傳統(tǒng)網(wǎng)絡(luò)當(dāng)中。技術(shù)實現(xiàn)要素:本發(fā)明的目的在于針對上述現(xiàn)有技術(shù)中的負(fù)載均衡方案缺乏彈性,負(fù)載均衡性能不高等問題,提出了一種基于云計算和sdn網(wǎng)絡(luò)的負(fù)載均衡控制方法及系統(tǒng),使得負(fù)載均衡具備彈性,有效提高負(fù)載均衡性能。一方面,本發(fā)明提供一種基于云計算和sdn網(wǎng)絡(luò)的負(fù)載均衡控制方法,包括:云平臺創(chuàng)建負(fù)載均衡實例并添加后端實例,向sdn控制器注冊所述負(fù)載均衡實例,并對所述后端實例添加虛擬ip;云平臺下發(fā)負(fù)載均衡配置信息至負(fù)載均衡實例;負(fù)載均衡實例根據(jù)所述負(fù)載均衡配置信息,在ovs上配置grouptable;根據(jù)所述grouptable選擇后端實例接收網(wǎng)絡(luò)數(shù)據(jù),并修改網(wǎng)絡(luò)數(shù)據(jù)目標(biāo)mac地址為對應(yīng)的后端實例的mac地址,修改目標(biāo)ip為所述虛擬ip;為所述grouptable配置flowtable,通過所述flowtable將網(wǎng)絡(luò)數(shù)據(jù)導(dǎo)向所述grouptable中;sdn控制器接收客戶端發(fā)送的訪問請求,并根據(jù)預(yù)設(shè)規(guī)則將所述訪問請求發(fā)送至負(fù)載均衡實例;sdn控制器判斷所述訪問請求是否為負(fù)載均衡實例發(fā)出;如果是,則sdn控制器根據(jù)修改后的網(wǎng)絡(luò)數(shù)據(jù)目標(biāo)mac地址尋找對應(yīng)的后端實例,下發(fā)正向規(guī)則使得所述訪問請求到達(dá)后端實例,并下發(fā)反向規(guī)則將后端實例的響應(yīng)發(fā)送至客戶端。進(jìn)一步地,所述云平臺向sdn控制器注冊所述負(fù)載均衡實例的注冊信息包括負(fù)載均衡字段,用于區(qū)別所述負(fù)載均衡實例和后端實例。進(jìn)一步地,所述負(fù)載均衡配置信息包括后端實例信息;負(fù)載均衡實例根據(jù)所述負(fù)載均衡配置信息,在ovs上配置grouptable,包括:創(chuàng)建group,類型選擇select,并創(chuàng)建與各個后端實例對應(yīng)的bucket。進(jìn)一步地,根據(jù)所述grouptable選擇后端實例接收網(wǎng)絡(luò)數(shù)據(jù),包括:根據(jù)類型選擇隨機執(zhí)行其中一個bucket。進(jìn)一步地,所述方法還包括:負(fù)載均衡實例實時監(jiān)控網(wǎng)絡(luò)數(shù)據(jù)流量,當(dāng)所述網(wǎng)絡(luò)數(shù)據(jù)流量超過最高預(yù)設(shè)閾值或小于最低預(yù)設(shè)閾值,則負(fù)載均衡實例自適應(yīng)調(diào)整自身所占用的cpu數(shù)量和內(nèi)存。另一方面,本發(fā)明還提供一種基于云計算和sdn網(wǎng)絡(luò)的負(fù)載均衡控制系統(tǒng),包括:云平臺,用于創(chuàng)建負(fù)載均衡實例并添加后端實例,向sdn控制器注冊所述負(fù)載均衡實例,對所述后端實例添加虛擬ip,下發(fā)負(fù)載均衡配置信息至負(fù)載均衡實例;負(fù)載均衡實例,用于根據(jù)所述負(fù)載均衡配置信息,在ovs上配置grouptable,根據(jù)所述grouptable選擇后端實例接收網(wǎng)絡(luò)數(shù)據(jù),并修改網(wǎng)絡(luò)數(shù)據(jù)目標(biāo)mac地址為對應(yīng)的后端實例的mac地址,修改目標(biāo)ip為所述虛擬ip,為所述grouptable配置flowtable,通過所述flowtable將網(wǎng)絡(luò)數(shù)據(jù)導(dǎo)向所述grouptable中;sdn控制器,用于接收客戶端發(fā)送的訪問請求,并根據(jù)預(yù)設(shè)規(guī)則將所述訪問請求發(fā)送至負(fù)載均衡實例,判斷所述訪問請求是否為負(fù)載均衡實例發(fā)出,如果是,則sdn控制器根據(jù)修改后的網(wǎng)絡(luò)數(shù)據(jù)目標(biāo)mac地址尋找對應(yīng)的后端實例,下發(fā)正向規(guī)則使得所述訪問請求到達(dá)后端實例,并下發(fā)反向規(guī)則將后端實例的響應(yīng)發(fā)送至客戶端。進(jìn)一步地,所述云平臺向sdn控制器注冊所述負(fù)載均衡實例的注冊信息包括負(fù)載均衡字段,用于區(qū)別所述負(fù)載均衡實例和后端實例。進(jìn)一步地,所述負(fù)載均衡實例還用于創(chuàng)建group,類型選擇select,并創(chuàng)建與各個后端實例對應(yīng)的bucket。進(jìn)一步地,所述負(fù)載均衡實例還用于根據(jù)類型選擇隨機執(zhí)行其中一個bucket。進(jìn)一步地,負(fù)載均衡實例還用于實時監(jiān)控網(wǎng)絡(luò)數(shù)據(jù)流量,當(dāng)所述網(wǎng)絡(luò)數(shù)據(jù)流量超過最高預(yù)設(shè)閾值或小于最低預(yù)設(shè)閾值,則負(fù)載均衡實例自適應(yīng)調(diào)整自身所占用的cpu數(shù)量和內(nèi)存。本發(fā)明提供的基于云計算和sdn網(wǎng)絡(luò)的負(fù)載均衡控制方法及系統(tǒng),至少包括如下有益效果:(1)基于云計算和sdn網(wǎng)絡(luò)的ovs負(fù)載均衡實例具備了彈性,可隨著流量的多少動態(tài)調(diào)整實例的規(guī)模,利用ovs實現(xiàn)單向代理的負(fù)載均衡,消除了雙向代理模式對負(fù)載均衡系統(tǒng)帶來的資源消耗,提高了負(fù)載均衡的性能;(2)實現(xiàn)了在虛擬機上搭建ovs作為負(fù)載均衡,增加了ovs在網(wǎng)絡(luò)處理方面的用途,可為后續(xù)基于ovs的網(wǎng)絡(luò)開發(fā)者提供可參考的藍(lán)本;(3)sdn控制器在下發(fā)正向規(guī)則的同時下發(fā)反向規(guī)則,減少網(wǎng)絡(luò)數(shù)據(jù)包在到達(dá)sdn控制器后的詢問次數(shù),從而降低了sdn控制器壓力,提升了網(wǎng)絡(luò)數(shù)據(jù)的流通速度。附圖說明圖1為本發(fā)明提供的基于云計算和sdn網(wǎng)絡(luò)的負(fù)載均衡控制方法一種實施例的流程圖。圖2為本發(fā)明提供的基于云計算和sdn網(wǎng)絡(luò)的負(fù)載均衡控制方法中負(fù)載均衡實例上ovs的工作原理示意圖。圖3為本發(fā)明提供的基于云計算和sdn網(wǎng)絡(luò)的負(fù)載均衡控制方法中sdn控制器的工作流程示意圖。圖4為本發(fā)明提供的基于云計算和sdn網(wǎng)絡(luò)的負(fù)載均衡控制系統(tǒng)一種實施例的結(jié)構(gòu)示意圖。具體實施方式為使本發(fā)明的目的、技術(shù)方案及效果更加清楚、明確,以下參照附圖并舉實施例對本發(fā)明進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。實施例一參考圖1,本實施例提供一種基于云計算和sdn網(wǎng)絡(luò)的負(fù)載均衡控制方法,包括:步驟s101,云平臺創(chuàng)建負(fù)載均衡實例并添加后端實例,向sdn控制器注冊所述負(fù)載均衡實例,并對所述后端實例添加虛擬ip;步驟s102,云平臺下發(fā)負(fù)載均衡配置信息至負(fù)載均衡實例;步驟s103,負(fù)載均衡實例根據(jù)所述負(fù)載均衡配置信息,在ovs上配置grouptable;步驟s104,根據(jù)所述grouptable選擇后端實例接收網(wǎng)絡(luò)數(shù)據(jù),并修改網(wǎng)絡(luò)數(shù)據(jù)目標(biāo)mac地址為對應(yīng)的后端實例的mac地址,修改目標(biāo)ip為所述虛擬ip;步驟s105,為所述grouptable配置flowtable,通過所述flowtable將網(wǎng)絡(luò)數(shù)據(jù)導(dǎo)向所述grouptable中;步驟s106,sdn控制器接收客戶端發(fā)送的訪問請求,并根據(jù)預(yù)設(shè)規(guī)則將所述訪問請求發(fā)送至負(fù)載均衡實例;步驟s107,sdn控制器判斷所述訪問請求是否為負(fù)載均衡實例發(fā)出;步驟s108,如果是,則sdn控制器根據(jù)修改后的網(wǎng)絡(luò)數(shù)據(jù)目標(biāo)mac地址尋找對應(yīng)的后端實例,下發(fā)正向規(guī)則使得所述訪問請求到達(dá)后端實例,并下發(fā)反向規(guī)則將后端實例的響應(yīng)發(fā)送至客戶端。openvswitch是現(xiàn)有sdn網(wǎng)絡(luò)中一個重要的組件,簡稱ovs,是一個虛擬交換軟件,主要用于虛擬機vm環(huán)境,作為一個虛擬交換機,支持xen/xenserver,kvm,andvirtualbox多種虛擬化技術(shù)。ovs通常是基于物理機器傳遞虛擬機vm之間的流量,以及實現(xiàn)vm和外界網(wǎng)絡(luò)的通信。具體地,步驟s101中,云平臺創(chuàng)建負(fù)載均衡實例并添加后端實例,其中后端實例的回環(huán)網(wǎng)卡上添加一個指定的虛擬ip(如1.1.1.1),該虛擬ip是負(fù)載均衡網(wǎng)絡(luò)數(shù)據(jù)到達(dá)時使用的,不會對其他網(wǎng)絡(luò)數(shù)據(jù)產(chǎn)生影響。云平臺向sdn控制器注冊負(fù)載均衡實例的網(wǎng)卡,注冊信息包括了負(fù)載均衡字段,用于當(dāng)sdn控制器在接收到網(wǎng)絡(luò)數(shù)據(jù)時區(qū)分該網(wǎng)絡(luò)數(shù)據(jù)是負(fù)載均衡實例還是后端實例。進(jìn)一步地,步驟s102中,云平臺下發(fā)負(fù)載均衡配置信息至負(fù)載均衡實例,負(fù)載均衡配置信息包括后端實例信息、監(jiān)聽的端口等信息。進(jìn)一步地,步驟s103中,負(fù)載均衡實例根據(jù)所述負(fù)載均衡配置信息,在ovs上配置grouptable,包括:創(chuàng)建group,類型選擇select,并創(chuàng)建與各個后端實例對應(yīng)的bucket。進(jìn)一步地,步驟s104中,根據(jù)所述grouptable選擇后端實例接收網(wǎng)絡(luò)數(shù)據(jù),包括:根據(jù)類型選擇隨機執(zhí)行其中一個bucket;并修改網(wǎng)絡(luò)數(shù)據(jù)目標(biāo)mac地址為對應(yīng)的后端實例的mac地址,修改目標(biāo)ip為所述虛擬ip,最后向外發(fā)送。進(jìn)一步地,步驟s105中,參考圖2,為所述grouptable配置flowtable,創(chuàng)建flow,根據(jù)負(fù)載均衡信息匹配目標(biāo)端口和協(xié)議類型,通過所述flowtable將網(wǎng)絡(luò)數(shù)據(jù)導(dǎo)向所述grouptable中。進(jìn)一步地,參考圖3,步驟s106-步驟s108中,客戶端發(fā)送訪問請求時,sdn控制器下發(fā)預(yù)設(shè)規(guī)則讓訪問請求到達(dá)負(fù)載均衡實例,當(dāng)該預(yù)設(shè)請求經(jīng)過負(fù)載均衡實例處理后,sdn控制器根據(jù)網(wǎng)卡信息和訪問請求的源ip判斷該訪問請求是否為負(fù)載均衡實例發(fā)出,如果是,則sdn控制器根據(jù)修改后的目標(biāo)mac地址找到目標(biāo)后端實例,并下發(fā)正向規(guī)則讓訪問請求到達(dá)目標(biāo)后端實例,同時,下發(fā)反向規(guī)則,反向規(guī)則中匹配指定的虛擬ip,并修改源ip為負(fù)載均衡實例的ip,讓后端實例的響應(yīng)數(shù)據(jù)到達(dá)客戶端;如果否,則sdn控制器忽略該訪問請求。作為一種優(yōu)選的實施方式,所述方法還包括:負(fù)載均衡實例實時監(jiān)控網(wǎng)絡(luò)數(shù)據(jù)流量,當(dāng)所述網(wǎng)絡(luò)數(shù)據(jù)流量超過最高預(yù)設(shè)閾值或小于最低預(yù)設(shè)閾值,則負(fù)載均衡實例自適應(yīng)調(diào)整自身所占用的cpu數(shù)量和內(nèi)存。本實施例提供的基于云計算和sdn網(wǎng)絡(luò)的負(fù)載均衡控制方法,至少包括如下有益效果:(1)基于云計算和sdn網(wǎng)絡(luò)的ovs負(fù)載均衡實例具備了彈性,可隨著流量的多少動態(tài)調(diào)整實例的規(guī)模,利用ovs實現(xiàn)單向代理的負(fù)載均衡,消除了雙向代理模式對負(fù)載均衡系統(tǒng)帶來的資源消耗,提高了負(fù)載均衡的性能;(2)實現(xiàn)了在虛擬機上搭建ovs作為負(fù)載均衡,增加了ovs在網(wǎng)絡(luò)處理方面的用途,可為后續(xù)基于ovs的網(wǎng)絡(luò)開發(fā)者提供可參考的藍(lán)本;(3)sdn控制器在下發(fā)正向規(guī)則的同時下發(fā)反向規(guī)則,減少網(wǎng)絡(luò)數(shù)據(jù)包在到達(dá)sdn控制器后的詢問次數(shù),從而降低了sdn控制器壓力,提升了網(wǎng)絡(luò)數(shù)據(jù)的流通速度。實施例二參考圖4,本實施例提供一種基于云計算和sdn網(wǎng)絡(luò)的負(fù)載均衡控制系統(tǒng),包括:云平臺1,用于創(chuàng)建負(fù)載均衡實例并添加后端實例,向sdn控制器注冊所述負(fù)載均衡實例,對所述后端實例添加虛擬ip,下發(fā)負(fù)載均衡配置信息至負(fù)載均衡實例;負(fù)載均衡實例2,用于根據(jù)所述負(fù)載均衡配置信息,在ovs上配置grouptable,根據(jù)所述grouptable選擇后端實例接收網(wǎng)絡(luò)數(shù)據(jù),并修改網(wǎng)絡(luò)數(shù)據(jù)目標(biāo)mac地址為對應(yīng)的后端實例的mac地址,修改目標(biāo)ip為所述虛擬ip,為所述grouptable配置flowtable,通過所述flowtable將網(wǎng)絡(luò)數(shù)據(jù)導(dǎo)向所述grouptable中;sdn控制器3,用于接收客戶端發(fā)送的訪問請求,并根據(jù)預(yù)設(shè)規(guī)則將所述訪問請求發(fā)送至負(fù)載均衡實例,判斷所述訪問請求是否為負(fù)載均衡實例發(fā)出,如果是,則sdn控制器根據(jù)修改后的網(wǎng)絡(luò)數(shù)據(jù)目標(biāo)mac地址尋找對應(yīng)的后端實例,下發(fā)正向規(guī)則使得所述訪問請求到達(dá)后端實例,并下發(fā)反向規(guī)則將后端實例的響應(yīng)發(fā)送至客戶端。進(jìn)一步地,云平臺1向sdn控制器注冊所述負(fù)載均衡實例的注冊信息包括負(fù)載均衡字段,用于區(qū)別所述負(fù)載均衡實例和后端實例。進(jìn)一步地,負(fù)載均衡實例2還用于創(chuàng)建group,類型選擇select,并創(chuàng)建與各個后端實例對應(yīng)的bucket。進(jìn)一步地,負(fù)載均衡實例2還用于根據(jù)類型選擇隨機執(zhí)行其中一個bucket。進(jìn)一步地,負(fù)載均衡實例2還用于實時監(jiān)控網(wǎng)絡(luò)數(shù)據(jù)流量,當(dāng)所述網(wǎng)絡(luò)數(shù)據(jù)流量超過最高預(yù)設(shè)閾值或小于最低預(yù)設(shè)閾值,則負(fù)載均衡實例自適應(yīng)調(diào)整自身所占用的cpu數(shù)量和內(nèi)存。本實施例提供的基于云計算和sdn網(wǎng)絡(luò)的負(fù)載均衡控制系統(tǒng),至少包括如下有益效果:(1)基于云計算和sdn網(wǎng)絡(luò)的ovs負(fù)載均衡實例具備了彈性,可隨著流量的多少動態(tài)調(diào)整實例的規(guī)模,利用ovs實現(xiàn)單向代理的負(fù)載均衡,消除了雙向代理模式對負(fù)載均衡系統(tǒng)帶來的資源消耗,提高了負(fù)載均衡的性能;(2)實現(xiàn)了在虛擬機上搭建ovs作為負(fù)載均衡,增加了ovs在網(wǎng)絡(luò)處理方面的用途,可為后續(xù)基于ovs的網(wǎng)絡(luò)開發(fā)者提供可參考的藍(lán)本;(3)sdn控制器在下發(fā)正向規(guī)則的同時下發(fā)反向規(guī)則,減少網(wǎng)絡(luò)數(shù)據(jù)包在到達(dá)sdn控制器后的詢問次數(shù),從而降低了sdn控制器壓力,提升了網(wǎng)絡(luò)數(shù)據(jù)的流通速度。應(yīng)當(dāng)理解的是,對本領(lǐng)域普通技術(shù)人員來說,可以根據(jù)上述說明加以改進(jìn)或變換,而所有這些改進(jìn)和變換都應(yīng)屬于本發(fā)明所附權(quán)利要求的保護(hù)范圍。當(dāng)前第1頁12當(dāng)前第1頁12