本發(fā)明涉及一種通信技術(shù)領(lǐng)域,特別是涉及一種負(fù)載均衡方法及裝置。
背景技術(shù):
隨著通信技術(shù)的不斷發(fā)展,網(wǎng)卡技術(shù)越來(lái)越成熟。網(wǎng)卡是工作在鏈路層的網(wǎng)絡(luò)組件,是局域網(wǎng)中連接計(jì)算機(jī)和傳輸介質(zhì)的接口,不僅能實(shí)現(xiàn)與局域網(wǎng)傳輸介質(zhì)之間的物理連接和電信號(hào)匹配,還涉及幀的發(fā)送與接收、幀的封裝與拆封、介質(zhì)訪問(wèn)控制、數(shù)據(jù)的編碼與解碼以及數(shù)據(jù)緩存的功能等。
目前,新一代的網(wǎng)卡通常支持多個(gè)接收和發(fā)送隊(duì)列,即多隊(duì)列網(wǎng)卡。該網(wǎng)卡能夠?qū)⒔邮盏木W(wǎng)絡(luò)數(shù)據(jù)包分發(fā)到不同的隊(duì)列,進(jìn)而使得網(wǎng)絡(luò)流量能在數(shù)據(jù)處理器中不同的數(shù)據(jù)處理單元之間并行處理。具體地,網(wǎng)卡通過(guò)數(shù)據(jù)包分類(lèi)算法,來(lái)指定網(wǎng)絡(luò)數(shù)據(jù)包屬于哪個(gè)分類(lèi),每個(gè)分類(lèi)的數(shù)據(jù)包被送至一個(gè)指定的接收隊(duì)列中,數(shù)據(jù)處理器會(huì)對(duì)每個(gè)隊(duì)列中的數(shù)據(jù)包進(jìn)行處理,每個(gè)數(shù)據(jù)處理單元對(duì)應(yīng)處理一個(gè)隊(duì)列中的數(shù)據(jù)包,進(jìn)而使得每個(gè)數(shù)據(jù)處理單元處理各自的會(huì)話任務(wù)。
然而,通過(guò)上述數(shù)據(jù)包分類(lèi)算法進(jìn)行數(shù)據(jù)包分發(fā)時(shí),會(huì)存在數(shù)據(jù)流分發(fā)不均勻的情況,例如,根據(jù)提取數(shù)據(jù)包相應(yīng)字段,作為哈希函數(shù)的輸入?yún)?shù)進(jìn)行哈希運(yùn)算,并依據(jù)計(jì)算出的函數(shù)結(jié)果對(duì)數(shù)據(jù)包進(jìn)行分發(fā),會(huì)話任務(wù)會(huì)隨機(jī)分發(fā)給不同數(shù)據(jù)處理單元,會(huì)導(dǎo)致數(shù)據(jù)處理器中同時(shí)存在會(huì)話任務(wù)過(guò)多的數(shù)據(jù)處理單元和會(huì)話任務(wù)過(guò)少的數(shù)據(jù)數(shù)量單元。進(jìn)而會(huì)造成數(shù)據(jù)處理單元之間處理的會(huì)話數(shù)量不均衡的問(wèn)題,從而導(dǎo)致了不同數(shù)據(jù)處理單元之間負(fù)載不均衡,影響了數(shù)據(jù)處理器的處理效率。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明實(shí)施例提供了一種負(fù)載均衡方法及裝置,主要目的在于可以實(shí)現(xiàn)不同數(shù)據(jù)處理單元之間的負(fù)載均衡,可以提高數(shù)據(jù)處理器的處理效率。
依據(jù)本發(fā)明實(shí)施例一個(gè)方面,提供了一種負(fù)載均衡方法,該方法包括:
獲取數(shù)據(jù)處理器中數(shù)據(jù)處理單元的會(huì)話分配信息;
根據(jù)所述會(huì)話分配信息和預(yù)設(shè)負(fù)載均衡調(diào)度規(guī)則,生成數(shù)據(jù)處理單元之間負(fù)載均衡的會(huì)話調(diào)度信息;
根據(jù)所述會(huì)話調(diào)度信息進(jìn)行所述數(shù)據(jù)處理器中不同數(shù)據(jù)處理單元之間的會(huì)話遷移。
進(jìn)一步地,所述會(huì)話分配信息中包含所述數(shù)據(jù)處理器中數(shù)據(jù)處理單元的個(gè)數(shù),以及所述數(shù)據(jù)處理器中每個(gè)數(shù)據(jù)處理單元當(dāng)前處理的會(huì)話數(shù)量,所述根據(jù)所述會(huì)話分配信息和預(yù)設(shè)負(fù)載均衡調(diào)度規(guī)則,生成數(shù)據(jù)處理單元之間負(fù)載均衡的會(huì)話調(diào)度信息,具體包括:
根據(jù)所述會(huì)話數(shù)量、數(shù)據(jù)處理單元的個(gè)數(shù)和預(yù)設(shè)負(fù)載均衡調(diào)度規(guī)則,確定每個(gè)數(shù)據(jù)處理單元中需要遷移的會(huì)話以及與需要遷移的會(huì)話對(duì)應(yīng)的原數(shù)據(jù)處理單元和目標(biāo)數(shù)據(jù)處理單元;
根據(jù)所述需要遷移的會(huì)話以及與需要遷移的會(huì)話對(duì)應(yīng)的原數(shù)據(jù)處理單元和目標(biāo)數(shù)據(jù)處理單元,生成數(shù)據(jù)處理單元之間負(fù)載均衡的會(huì)話調(diào)度信息。
進(jìn)一步地,所述根據(jù)所述會(huì)話調(diào)度信息進(jìn)行所述數(shù)據(jù)處理器中不同數(shù)據(jù)處理單元之間的會(huì)話遷移,具體包括:
在原數(shù)據(jù)處理單元對(duì)需要遷移的會(huì)話的已接收數(shù)據(jù)包處理結(jié)束后,根據(jù)所述會(huì)話調(diào)度信息,將所述需要遷移的會(huì)話遷移到目標(biāo)數(shù)據(jù)處理單元。
進(jìn)一步地,所述根據(jù)所述會(huì)話調(diào)度信息進(jìn)行所述數(shù)據(jù)處理器中不同數(shù)據(jù)處理單元之間的會(huì)話遷移之后,所述方法還包括:
記錄遷移的會(huì)話對(duì)應(yīng)的目標(biāo)數(shù)據(jù)處理單元的標(biāo)識(shí)信息;
當(dāng)接收到與所述遷移的會(huì)話對(duì)應(yīng)的數(shù)據(jù)包時(shí),根據(jù)所述標(biāo)識(shí)信息,將所述數(shù)據(jù)包分配到所述目標(biāo)數(shù)據(jù)處理單元中進(jìn)行處理。
進(jìn)一步地,若所述數(shù)據(jù)處理器當(dāng)前采用的會(huì)話哈希表為局部會(huì)話哈希表,則所述方法還包括:
將被遷移會(huì)話的會(huì)話信息數(shù)據(jù)字段復(fù)制到與所述被遷移會(huì)話對(duì)應(yīng)的目標(biāo)數(shù)據(jù)處理單元的會(huì)話哈希表內(nèi)。
進(jìn)一步地,所述方法還包括:
在會(huì)話遷移完成后或建立新的會(huì)話處理任務(wù)時(shí),對(duì)所述數(shù)據(jù)處理器中數(shù)據(jù)處理單元的會(huì)話分配信息進(jìn)行更新。
進(jìn)一步地,所述獲取數(shù)據(jù)處理器中數(shù)據(jù)處理單元的會(huì)話分配信息,具體包括:
按照預(yù)設(shè)時(shí)間間隔獲取所述數(shù)據(jù)處理器中數(shù)據(jù)處理單元的會(huì)話分配信息。
依據(jù)本發(fā)明實(shí)施例另一個(gè)方面,提供了一種負(fù)載均衡裝置,該裝置包括:
獲取單元,用于獲取數(shù)據(jù)處理器中數(shù)據(jù)處理單元的會(huì)話分配信息;
生成單元,用于根據(jù)所述獲取單元獲取的會(huì)話分配信息和預(yù)設(shè)負(fù)載均衡調(diào)度規(guī)則,生成數(shù)據(jù)處理單元之間負(fù)載均衡的會(huì)話調(diào)度信息;
遷移單元,用于根據(jù)所述生成單元生成的會(huì)話調(diào)度信息進(jìn)行所述數(shù)據(jù)處理器中不同數(shù)據(jù)處理單元之間的會(huì)話遷移。
進(jìn)一步地,所述會(huì)話分配信息中包含所述數(shù)據(jù)處理器中數(shù)據(jù)處理單元的個(gè)數(shù),以及所述數(shù)據(jù)處理器中每個(gè)數(shù)據(jù)處理單元當(dāng)前處理的會(huì)話數(shù)量,所述生成單元具體包括:
確定模塊,用于根據(jù)所述會(huì)話數(shù)量、數(shù)據(jù)處理單元的個(gè)數(shù)和預(yù)設(shè)負(fù)載均衡調(diào)度規(guī)則,確定每個(gè)數(shù)據(jù)處理單元中需要遷移的會(huì)話以及與需要遷移的會(huì)話對(duì)應(yīng)的原數(shù)據(jù)處理單元和目標(biāo)數(shù)據(jù)處理單元;
生成模塊,用于根據(jù)所述確定模塊確定的需要遷移的會(huì)話以及與需要遷移的會(huì)話對(duì)應(yīng)的原數(shù)據(jù)處理單元和目標(biāo)數(shù)據(jù)處理單元,生成數(shù)據(jù)處理單元之間負(fù)載均衡的會(huì)話調(diào)度信息。
所述遷移單元,具體用于在原數(shù)據(jù)處理單元對(duì)需要遷移的會(huì)話的已接收數(shù)據(jù)包處理結(jié)束后,根據(jù)所述會(huì)話調(diào)度信息,將所述需要遷移的會(huì)話遷移到目標(biāo)數(shù)據(jù)處理單元。
進(jìn)一步地,所述裝置還包括:
記錄單元,用于記錄遷移的會(huì)話對(duì)應(yīng)的目標(biāo)數(shù)據(jù)處理單元的標(biāo)識(shí)信息;
分配單元,用于當(dāng)接收到與所述遷移的會(huì)話對(duì)應(yīng)的數(shù)據(jù)包時(shí),根據(jù)所述記錄單元記錄的標(biāo)識(shí)信息,將所述數(shù)據(jù)包分配到所述目標(biāo)數(shù)據(jù)處理單元中進(jìn)行處理。
進(jìn)一步地,所述裝置還包括:
復(fù)制單元,用于若所述數(shù)據(jù)處理器當(dāng)前采用的會(huì)話哈希表為局部會(huì)話哈希表,則將被遷移會(huì)話的會(huì)話信息數(shù)據(jù)字段復(fù)制到與所述被遷移會(huì)話對(duì)應(yīng)的目標(biāo)數(shù)據(jù)處理單元的會(huì)話哈希表內(nèi)。
進(jìn)一步地,所述裝置還包括:
更新單元,用于在會(huì)話遷移完成后或建立新的會(huì)話處理任務(wù)時(shí),對(duì)所述數(shù)據(jù)處理器中數(shù)據(jù)處理單元的會(huì)話分配信息進(jìn)行更新。
所述獲取單元,具體用于按照預(yù)設(shè)時(shí)間間隔獲取所述數(shù)據(jù)處理器中數(shù)據(jù)處理單元的會(huì)話分配信息。
借由上述技術(shù)方案,本發(fā)明實(shí)施例提供的技術(shù)方案至少具有下列優(yōu)點(diǎn):
本發(fā)明實(shí)施例提供的一種負(fù)載均衡方法及裝置,首先獲取數(shù)據(jù)處理器中數(shù)據(jù)處理單元的會(huì)話分配信息;然后根據(jù)所述會(huì)話分配信息和預(yù)設(shè)負(fù)載均衡調(diào)度規(guī)則,生成數(shù)據(jù)處理單元之間負(fù)載均衡的會(huì)話調(diào)度信息;最后根據(jù)所述會(huì)話調(diào)度信息進(jìn)行所述數(shù)據(jù)處理器中不同數(shù)據(jù)處理單元之間的會(huì)話遷移。本發(fā)明實(shí)施例依據(jù)數(shù)據(jù)處理器中數(shù)據(jù)處理單元的會(huì)話分配信息和預(yù)設(shè)負(fù)載均衡調(diào)度規(guī)則,生成會(huì)話調(diào)度信息,并根據(jù)該會(huì)話調(diào)度信息執(zhí)行會(huì)話遷移操作,以便實(shí)現(xiàn)數(shù)據(jù)處理器中各個(gè)數(shù)據(jù)處理單元的會(huì)話數(shù)量均衡,進(jìn)而可以實(shí)現(xiàn)不同數(shù)據(jù)處理單元之間負(fù)載均衡,從而可以提高數(shù)據(jù)處理器的處理效率。
上述說(shuō)明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說(shuō)明書(shū)的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式。
附圖說(shuō)明
通過(guò)閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:
圖1示出了本發(fā)明實(shí)施例提供的一種負(fù)載均衡方法流程示意圖;
圖2示出了本發(fā)明實(shí)施例提供的另一種負(fù)載均衡方法流程示意圖;
圖3示出了本發(fā)明實(shí)施例提供的一種具體處理流程示意圖;
圖4示出了本發(fā)明實(shí)施例提供的一種負(fù)載均衡裝置結(jié)構(gòu)示意圖;
圖5示出了本發(fā)明實(shí)施例提供的另一種負(fù)載均衡裝置結(jié)構(gòu)示意圖;
圖6示出了本發(fā)明實(shí)施例提供的一種負(fù)載均衡系統(tǒng)架構(gòu)的示意圖。
具體實(shí)施方式
下面將參照附圖更詳細(xì)地描述本公開(kāi)的示例性實(shí)施例。雖然附圖中顯示了本公開(kāi)的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開(kāi)而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開(kāi),并且能夠?qū)⒈竟_(kāi)的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
本發(fā)明實(shí)施例提供了一種負(fù)載均衡方法,可以實(shí)現(xiàn)不同數(shù)據(jù)處理單元之間的負(fù)載均衡,如圖1所示,所述方法包括:
101、獲取數(shù)據(jù)處理器中數(shù)據(jù)處理單元的會(huì)話分配信息。
其中,所述數(shù)據(jù)處理器可以實(shí)現(xiàn)針對(duì)網(wǎng)絡(luò)數(shù)據(jù)包主要安全業(yè)務(wù)的處理,安全業(yè)務(wù)不僅有基本連通性能功能,如交換、路由、代理等,還可以包括安全防護(hù)功能,如訪問(wèn)控制、攻擊防御、反病毒、應(yīng)用控制等。所述數(shù)據(jù)處理器可以包含多個(gè)數(shù)據(jù)處理單元,例如,X86架構(gòu)的多核CPU(Central Processing Unit,中央處理器)、ASIC(Application Specific Integrated Circuit,集成電路)架構(gòu)的包處理芯片組等,每個(gè)數(shù)據(jù)處理單元根據(jù)業(yè)務(wù)需求處理網(wǎng)絡(luò)數(shù)據(jù)流,具體可以執(zhí)行建立會(huì)話、轉(zhuǎn)發(fā)數(shù)據(jù)包等操作,每個(gè)數(shù)據(jù)處理單元存儲(chǔ)各自的會(huì)話信息數(shù)據(jù)。
所述會(huì)話分配信息中可以包含數(shù)據(jù)處理器中當(dāng)前處理的會(huì)話總數(shù),數(shù)據(jù)處理器中數(shù)據(jù)處理單元的個(gè)數(shù),以及數(shù)據(jù)處理器中每個(gè)數(shù)據(jù)處理單元當(dāng)前處理的會(huì)話數(shù)量等。
在本發(fā)明實(shí)施例中,可以從監(jiān)控日志信息中獲取數(shù)據(jù)處理器中數(shù)據(jù)處理單元的會(huì)話分配信息,該監(jiān)控日志信息中記錄了數(shù)據(jù)處理器當(dāng)前處理的會(huì)話任務(wù)分配情況。例如,從監(jiān)控日志信息中獲取得到會(huì)話分析信息,該會(huì)話分配信息中包含數(shù)據(jù)處理器中當(dāng)前處理10個(gè)會(huì)話任務(wù),該數(shù)據(jù)處理器有3個(gè)數(shù)據(jù)處理單元,分別為1號(hào)單元、2號(hào)單元、3號(hào)單元,1號(hào)單元當(dāng)前處理4個(gè)會(huì)話任務(wù),2號(hào)單元當(dāng)前處理1個(gè)會(huì)話處理任務(wù),3號(hào)單元當(dāng)前處理5個(gè)會(huì)話任務(wù)。
102、根據(jù)會(huì)話分配信息和預(yù)設(shè)負(fù)載均衡調(diào)度規(guī)則,生成數(shù)據(jù)處理單元之間負(fù)載均衡的會(huì)話調(diào)度信息。
其中,所述會(huì)話調(diào)度信息中可以包含需要遷移的會(huì)話、與該需要遷移的會(huì)話對(duì)應(yīng)的原數(shù)據(jù)處理單元和目標(biāo)數(shù)據(jù)處理單元等信息。例如,可以利用數(shù)據(jù)映射表的形式保存生成的會(huì)話調(diào)度信息,該數(shù)據(jù)映射表中的每一行包含需要遷移的一個(gè)會(huì)話,以及與這個(gè)會(huì)話對(duì)應(yīng)的原數(shù)據(jù)處理單元和目標(biāo)數(shù)據(jù)處理單元等字段。
所述預(yù)設(shè)負(fù)載均衡調(diào)度規(guī)則可以由技術(shù)人員預(yù)先進(jìn)行編寫(xiě)配置。在本發(fā)明實(shí)施例中,基于預(yù)設(shè)負(fù)載均衡調(diào)度規(guī)則,以當(dāng)前的會(huì)話分配情況作為參數(shù),可以執(zhí)行相應(yīng)的調(diào)度算法,生成數(shù)據(jù)處理單元之間負(fù)載均衡的會(huì)話調(diào)度信息。需要說(shuō)明的是,對(duì)于本發(fā)明實(shí)施例,可以支持多種調(diào)度算法,并且由于會(huì)話遷移過(guò)程開(kāi)銷(xiāo)較大,調(diào)度算法需要考慮遷移開(kāi)銷(xiāo),以便保證整體的會(huì)話遷移效率。
例如,獲取得到的會(huì)話分配信息中包含數(shù)據(jù)處理器當(dāng)前處理的10個(gè)會(huì)話任務(wù),該數(shù)據(jù)處理器有3個(gè)數(shù)據(jù)處理單元,分別為1號(hào)單元、2號(hào)單元、3號(hào)單元,1號(hào)單元當(dāng)前處理6個(gè)會(huì)話任務(wù),2號(hào)單元當(dāng)前處理3個(gè)會(huì)話處理任務(wù),3號(hào)單元當(dāng)前處理1個(gè)會(huì)話任務(wù),此時(shí)3個(gè)數(shù)據(jù)處理單元之間處理的會(huì)話數(shù)量不均衡,會(huì)導(dǎo)致3個(gè)數(shù)據(jù)處理單元之間負(fù)載不均衡。為了解決上述問(wèn)題,根據(jù)預(yù)設(shè)負(fù)載均衡調(diào)度規(guī)則,以當(dāng)前會(huì)話分配情況作為參數(shù),執(zhí)行負(fù)載均衡的調(diào)度算法,計(jì)算出需要遷移的會(huì)話及目標(biāo)數(shù)據(jù)處理單元等,并生成會(huì)話調(diào)度信息,該會(huì)話調(diào)度信息中包含1號(hào)單元中需要遷移的兩個(gè)會(huì)話任務(wù),以及與這兩個(gè)會(huì)話任務(wù)對(duì)應(yīng)的原數(shù)據(jù)處理單元(即1號(hào)單元)和目標(biāo)數(shù)據(jù)處理單元(即3號(hào)單元),以便實(shí)現(xiàn)將1號(hào)單元中的兩個(gè)會(huì)話任務(wù)遷移到3號(hào)單元中進(jìn)行處理,進(jìn)而實(shí)現(xiàn)3個(gè)數(shù)據(jù)處理單元之間的負(fù)載均衡。
在本發(fā)明實(shí)施例中,在執(zhí)行步驟102之前,還可以包括:根據(jù)會(huì)話分配信息確定當(dāng)前處理會(huì)話任務(wù)量最少的數(shù)據(jù)處理單元,由該數(shù)據(jù)處理單元執(zhí)行生成會(huì)話調(diào)度信息的操作,避免在當(dāng)前處理會(huì)話任務(wù)量較多的數(shù)據(jù)處理單元中執(zhí)行生成會(huì)話調(diào)度信息的操作,進(jìn)而可以減輕數(shù)據(jù)處理器的負(fù)載壓力。
103、根據(jù)會(huì)話調(diào)度信息進(jìn)行數(shù)據(jù)處理器中不同數(shù)據(jù)處理單元之間的會(huì)話遷移。
對(duì)于本發(fā)明實(shí)施例,在會(huì)話遷移的過(guò)程中,可以將會(huì)話信息數(shù)據(jù)進(jìn)行遷移,其中,該會(huì)話信息數(shù)據(jù)中可以包含五元組信息、數(shù)據(jù)包計(jì)數(shù)信息、進(jìn)出端口信息、會(huì)話狀態(tài)信息等。
在本發(fā)明實(shí)施例中,根據(jù)會(huì)話調(diào)度信息,操控?cái)?shù)據(jù)處理器中數(shù)據(jù)處理單元的會(huì)話任務(wù),將會(huì)話任務(wù)從一個(gè)數(shù)據(jù)處理單元遷移到另一個(gè)數(shù)據(jù)處理單元。
本發(fā)明實(shí)施例提供的一種負(fù)載均衡方法,首先獲取數(shù)據(jù)處理器中數(shù)據(jù)處理單元的會(huì)話分配信息;然后根據(jù)所述會(huì)話分配信息和預(yù)設(shè)負(fù)載均衡調(diào)度規(guī)則,生成數(shù)據(jù)處理單元之間負(fù)載均衡的會(huì)話調(diào)度信息;最后根據(jù)所述會(huì)話調(diào)度信息進(jìn)行所述數(shù)據(jù)處理器中不同數(shù)據(jù)處理單元之間的會(huì)話遷移。本發(fā)明實(shí)施例依據(jù)數(shù)據(jù)處理器中數(shù)據(jù)處理單元的會(huì)話分配信息和預(yù)設(shè)負(fù)載均衡調(diào)度規(guī)則,生成會(huì)話調(diào)度信息,并根據(jù)該會(huì)話調(diào)度信息執(zhí)行會(huì)話遷移操作,以便實(shí)現(xiàn)數(shù)據(jù)處理器中各個(gè)數(shù)據(jù)處理單元的會(huì)話數(shù)量均衡,進(jìn)而可以實(shí)現(xiàn)不同數(shù)據(jù)處理單元之間負(fù)載均衡,從而可以提高數(shù)據(jù)處理器的處理效率。
為了更好的對(duì)上述圖1所示的方法進(jìn)行理解,作為對(duì)上述實(shí)施方式的細(xì)化和擴(kuò)展,本發(fā)明實(shí)施例提供了另一種負(fù)載均衡方法,如圖2所示,所述方法包括:
201、獲取數(shù)據(jù)處理器中數(shù)據(jù)處理單元的會(huì)話分配信息。
多隊(duì)列網(wǎng)卡從網(wǎng)絡(luò)接收到數(shù)據(jù)包后,將所有的網(wǎng)絡(luò)數(shù)據(jù)包分類(lèi),不同類(lèi)別的數(shù)據(jù)流發(fā)送給數(shù)據(jù)處理器中的不同數(shù)據(jù)處理單元。為了實(shí)現(xiàn)不同數(shù)據(jù)處理單元之間負(fù)載均衡,可以獲取數(shù)據(jù)處理器中數(shù)據(jù)處理單元的會(huì)話分配信息,并依據(jù)該會(huì)話分配信息進(jìn)行會(huì)話遷移。
202、根據(jù)每個(gè)數(shù)據(jù)處理單元當(dāng)前處理的會(huì)話數(shù)量、數(shù)據(jù)處理單元的個(gè)數(shù)和預(yù)設(shè)負(fù)載均衡調(diào)度規(guī)則,確定每個(gè)數(shù)據(jù)處理單元中需要遷移的會(huì)話以及與需要遷移的會(huì)話對(duì)應(yīng)的原數(shù)據(jù)處理單元和目標(biāo)數(shù)據(jù)處理單元。
例如,獲取得到的會(huì)話分配信息中包含數(shù)據(jù)處理器當(dāng)前處理的10個(gè)會(huì)話任務(wù),該數(shù)據(jù)處理器有3個(gè)數(shù)據(jù)處理單元,分別為1號(hào)單元、2號(hào)單元、3號(hào)單元,1號(hào)單元當(dāng)前處理5個(gè)會(huì)話任務(wù),2號(hào)單元當(dāng)前處理0個(gè)會(huì)話任務(wù),3號(hào)單元當(dāng)前處理5個(gè)會(huì)話任務(wù),此時(shí)3個(gè)數(shù)據(jù)處理單元之間處理的會(huì)話數(shù)量不均衡,會(huì)導(dǎo)致3個(gè)數(shù)據(jù)處理單元之間負(fù)載不均衡。為了解決上述問(wèn)題,根據(jù)預(yù)設(shè)負(fù)載均衡調(diào)度規(guī)則,以每個(gè)數(shù)據(jù)處理單元當(dāng)前處理的會(huì)話數(shù)量、數(shù)據(jù)處理單元的個(gè)數(shù)等會(huì)話分配情況作為參數(shù),執(zhí)行負(fù)載均衡的調(diào)度算法,計(jì)算出需要遷移的會(huì)話、原數(shù)據(jù)處理單元、目標(biāo)數(shù)據(jù)處理單元。具體地,確定1號(hào)單元中需要遷移的一個(gè)會(huì)話任務(wù),及與這個(gè)會(huì)話任務(wù)對(duì)應(yīng)的原數(shù)據(jù)處理單元(即1號(hào)單元)和目標(biāo)數(shù)據(jù)處理單元(即2號(hào)單元);確定3號(hào)單元中需要遷移的兩個(gè)會(huì)話任務(wù),及與這兩個(gè)會(huì)話任務(wù)對(duì)應(yīng)的原數(shù)據(jù)處理單元(即3號(hào)單元)和目標(biāo)數(shù)據(jù)處理單元(即2號(hào)單元)。
203、根據(jù)需要遷移的會(huì)話以及與需要遷移的會(huì)話對(duì)應(yīng)的原數(shù)據(jù)處理單元和目標(biāo)數(shù)據(jù)處理單元,生成數(shù)據(jù)處理單元之間負(fù)載均衡的會(huì)話調(diào)度信息。
例如,數(shù)據(jù)處理器當(dāng)前處理的16個(gè)會(huì)話任務(wù),該數(shù)據(jù)處理器有4個(gè)數(shù)據(jù)處理單元,分別為1號(hào)單元、2號(hào)單元、3號(hào)單元、4號(hào)單元,1號(hào)單元當(dāng)前處理7個(gè)會(huì)話任務(wù),2號(hào)單元當(dāng)前處理4個(gè)會(huì)話任務(wù),3號(hào)單元當(dāng)前處理5個(gè)會(huì)話任務(wù),4號(hào)單元當(dāng)前處理0個(gè)會(huì)話任務(wù),為了實(shí)現(xiàn)這4個(gè)數(shù)據(jù)處理單元之間處理的會(huì)話數(shù)量均衡,根據(jù)預(yù)設(shè)負(fù)載均衡調(diào)度規(guī)則,以當(dāng)前會(huì)話分配情況作為參數(shù),執(zhí)行負(fù)載均衡的調(diào)度算法,計(jì)算出需要遷移的會(huì)話及目標(biāo)數(shù)據(jù)處理單元等,并生成會(huì)話調(diào)度信息,該會(huì)話調(diào)度信息中包含1號(hào)單元中需要遷移的三個(gè)會(huì)話任務(wù),及與這三個(gè)會(huì)話任務(wù)對(duì)應(yīng)的原數(shù)據(jù)處理單元(即1號(hào)單元)和目標(biāo)數(shù)據(jù)處理單元(即4號(hào)單元),還包含3號(hào)單元中需要遷移的一個(gè)會(huì)話任務(wù),及與這個(gè)會(huì)話任務(wù)對(duì)應(yīng)的原數(shù)據(jù)處理單元(即3號(hào)單元)和目標(biāo)數(shù)據(jù)處理單元(即4號(hào)單元)。
204、根據(jù)會(huì)話調(diào)度信息進(jìn)行數(shù)據(jù)處理器中不同數(shù)據(jù)處理單元之間的會(huì)話遷移。
進(jìn)一步地,以便于實(shí)現(xiàn)數(shù)據(jù)處理器中各個(gè)數(shù)據(jù)處理單元的會(huì)話數(shù)量均衡,進(jìn)而對(duì)數(shù)據(jù)流的分發(fā)處理達(dá)到相對(duì)均勻的狀態(tài),充分發(fā)揮數(shù)據(jù)處理器所有數(shù)據(jù)處理單元的處理能力,最大化數(shù)據(jù)處理器的處理效率。
在會(huì)話遷移的過(guò)程中,會(huì)話信息保存完整,與進(jìn)程遷移、虛擬機(jī)遷移等的過(guò)程相比,遷移過(guò)程簡(jiǎn)單,遷移效率高,并且不存在數(shù)據(jù)處理單元處理同步問(wèn)題。例如,會(huì)話遷移的過(guò)程是數(shù)據(jù)處理器中數(shù)據(jù)處理單元之間的操作,并非是數(shù)據(jù)處理單元共同從內(nèi)存等別的地方獲取數(shù)據(jù)進(jìn)行處理,不存在數(shù)據(jù)處理單元處理同步問(wèn)題。
具體地,所述步驟204具體可以包括:在原數(shù)據(jù)處理單元對(duì)需要遷移的會(huì)話的已接收數(shù)據(jù)包處理結(jié)束后,根據(jù)所述會(huì)話調(diào)度信息,將所述需要遷移的會(huì)話遷移到目標(biāo)數(shù)據(jù)處理單元。在會(huì)話過(guò)程中,會(huì)話任務(wù)通常由連續(xù)的數(shù)據(jù)包流組成,這些數(shù)據(jù)包會(huì)根據(jù)產(chǎn)生的時(shí)序被依次分配給對(duì)應(yīng)該會(huì)話任務(wù)的數(shù)據(jù)處理單元進(jìn)行處理。本實(shí)施例中,當(dāng)進(jìn)行會(huì)話遷移時(shí),對(duì)于原數(shù)據(jù)處理單元已經(jīng)接收到數(shù)據(jù)包,仍由原數(shù)據(jù)處理單元在會(huì)話遷移之前對(duì)其進(jìn)行處理,在將會(huì)話任務(wù)遷移到目標(biāo)數(shù)據(jù)處理單元后,該會(huì)話任務(wù)后續(xù)再產(chǎn)生的新的數(shù)據(jù)包則由目標(biāo)數(shù)據(jù)處理單元處理?,F(xiàn)有技術(shù)中,當(dāng)會(huì)話任務(wù)被分配給某個(gè)數(shù)據(jù)處理單元后,該會(huì)話任務(wù)的所有數(shù)據(jù)包均由該對(duì)應(yīng)的數(shù)據(jù)處理單元進(jìn)行處理。本實(shí)施例可以在處理會(huì)話數(shù)據(jù)包的過(guò)程中對(duì)會(huì)話任務(wù)進(jìn)行遷移,并且遷移過(guò)程不會(huì)造成會(huì)話流量的中斷。
需要說(shuō)明的是,在原數(shù)據(jù)處理單元對(duì)需要遷移的會(huì)話的已接收數(shù)據(jù)包處理結(jié)束后,再進(jìn)行該會(huì)話的遷移操作,這種遷移操作可以實(shí)現(xiàn)在不中斷會(huì)話流量處理的前提下,將會(huì)話從一個(gè)數(shù)據(jù)處理單元遷移到另一個(gè)數(shù)據(jù)處理單元,在會(huì)話遷移過(guò)程中,相對(duì)應(yīng)會(huì)話的數(shù)據(jù)包不會(huì)出現(xiàn)流包、延遲過(guò)大、同步等問(wèn)題,使得數(shù)據(jù)流轉(zhuǎn)發(fā)在遷移過(guò)程中不受影響。
在本發(fā)明實(shí)施例中,可以根據(jù)數(shù)據(jù)處理器采用的會(huì)話哈希表的類(lèi)別信息進(jìn)行具體的會(huì)話遷移操作,其中,所述類(lèi)別信息可以為全局會(huì)話哈希表類(lèi)別、局部會(huì)話哈希表類(lèi)別。若數(shù)據(jù)處理器當(dāng)前采用的會(huì)話哈希表為全局會(huì)話哈希表,說(shuō)明該數(shù)據(jù)處理器中每個(gè)數(shù)據(jù)處理單元采用的會(huì)話哈希表內(nèi)容相同,被遷移會(huì)話的會(huì)話信息數(shù)據(jù)字段沒(méi)有必要從原數(shù)據(jù)處理單元的會(huì)話哈希表中復(fù)制到目標(biāo)數(shù)據(jù)處理單元的會(huì)話哈希表內(nèi),因?yàn)榇嬖谙嗤臅?huì)話信息數(shù)據(jù)字段,因此,直接進(jìn)行會(huì)話遷移步驟即可。
若數(shù)據(jù)處理器當(dāng)前采用的會(huì)話哈希表為局部會(huì)話哈希表,說(shuō)明該數(shù)據(jù)處理器中每個(gè)數(shù)據(jù)處理單元采用的會(huì)話哈希表內(nèi)容不相同。進(jìn)一步地,為了保證目標(biāo)數(shù)據(jù)處理單元的會(huì)話哈希表中存在被遷移會(huì)話的會(huì)話信息數(shù)據(jù)字段,所述方法還可以包括:將被遷移會(huì)話的會(huì)話信息數(shù)據(jù)字段復(fù)制到與所述被遷移會(huì)話對(duì)應(yīng)的目標(biāo)數(shù)據(jù)處理單元的會(huì)話哈希表內(nèi)。以便目標(biāo)數(shù)據(jù)處理單元根據(jù)該復(fù)制的會(huì)話信息數(shù)據(jù)字段,繼續(xù)處理與該被遷移會(huì)話對(duì)應(yīng)的數(shù)據(jù)包。需要說(shuō)明的是,復(fù)制會(huì)話信息數(shù)據(jù)字段的方式不限于此,還可以將被遷移會(huì)話的會(huì)話信息數(shù)據(jù)字段剪切到與該被遷移會(huì)話對(duì)應(yīng)的目標(biāo)數(shù)據(jù)處理單元的會(huì)話哈希表內(nèi)。
進(jìn)一步地,為了保證會(huì)話遷移后,數(shù)據(jù)處理器再接收到網(wǎng)絡(luò)數(shù)據(jù)包能夠進(jìn)行相應(yīng)處理,在步驟204之后,所述方法還可以包括:記錄遷移的會(huì)話對(duì)應(yīng)的目標(biāo)數(shù)據(jù)處理單元的標(biāo)識(shí)信息,其中,所述標(biāo)識(shí)信息可以為數(shù)據(jù)處理單元的名稱(chēng)、ID(Identity,身份標(biāo)識(shí)號(hào)碼)號(hào)等;當(dāng)接收到與所述遷移的會(huì)話對(duì)應(yīng)的數(shù)據(jù)包時(shí),根據(jù)所述標(biāo)識(shí)信息,將所述數(shù)據(jù)包分配到所述目標(biāo)數(shù)據(jù)處理單元中進(jìn)行處理。
具體地,所述根據(jù)所述標(biāo)識(shí)信息,將所述數(shù)據(jù)包分配到所述目標(biāo)數(shù)據(jù)處理單元中進(jìn)行處理的步驟具體可以包括:通過(guò)預(yù)置分發(fā)器或與所述遷移的會(huì)話對(duì)應(yīng)的原數(shù)據(jù)處理單元,將所述數(shù)據(jù)包分配到所述目標(biāo)數(shù)據(jù)處理單元中進(jìn)行處理。其中,所述預(yù)置分發(fā)器可以為具有將新接收到的會(huì)話數(shù)據(jù)包轉(zhuǎn)發(fā)到相應(yīng)數(shù)據(jù)處理單元功能的裝置。
在本發(fā)明實(shí)施例中,當(dāng)接收到與遷移的會(huì)話對(duì)應(yīng)的數(shù)據(jù)包時(shí),如果不存在上述預(yù)置分發(fā)器,還可以依據(jù)記錄的目標(biāo)數(shù)據(jù)處理單元的標(biāo)識(shí)信息,由與該會(huì)話對(duì)應(yīng)的原數(shù)據(jù)處理單元轉(zhuǎn)發(fā)給目標(biāo)數(shù)據(jù)處理單元中進(jìn)行處理,不會(huì)影響會(huì)話任務(wù)處理。
進(jìn)一步地,為了保證數(shù)據(jù)處理器中數(shù)據(jù)處理單元之間負(fù)載均衡的實(shí)時(shí)性,所述方法還可以包括:在會(huì)話遷移完成后或建立新的會(huì)話處理任務(wù)時(shí),對(duì)所述數(shù)據(jù)處理器中數(shù)據(jù)處理單元的會(huì)話分配信息進(jìn)行更新。
按照預(yù)設(shè)時(shí)間間隔獲取所述數(shù)據(jù)處理器中數(shù)據(jù)處理單元最新的會(huì)話分配信息。其中,所述預(yù)設(shè)時(shí)間間隔可以為根據(jù)實(shí)際需求進(jìn)行配置,例如,預(yù)設(shè)時(shí)間間隔可以設(shè)定為1秒、2秒等。需要說(shuō)明的是,通過(guò)按照預(yù)設(shè)時(shí)間間隔獲取數(shù)據(jù)處理器中數(shù)據(jù)處理單元最新的會(huì)話分配信息,可以實(shí)現(xiàn)實(shí)時(shí)獲取數(shù)據(jù)處理器中數(shù)據(jù)處理單元最新的會(huì)話分配信息,并根據(jù)該最新的會(huì)話分配信息執(zhí)行會(huì)話遷移操作,進(jìn)而可以實(shí)時(shí)保證數(shù)據(jù)處理器中數(shù)據(jù)處理單元之間的負(fù)載均衡,最大化數(shù)據(jù)處理器的處理效率。
在本發(fā)明實(shí)施例中,對(duì)于一些特定場(chǎng)景,如進(jìn)行產(chǎn)品性能評(píng)估時(shí),要求評(píng)估系統(tǒng)最大化處理能力,為了實(shí)現(xiàn)該目的,可以通過(guò)網(wǎng)卡直接進(jìn)行數(shù)據(jù)包分發(fā),再執(zhí)行本發(fā)明實(shí)施例提供的步驟201至步驟204所述過(guò)程,使得各個(gè)數(shù)據(jù)處理單元的會(huì)話任務(wù)數(shù)量相同,進(jìn)而可以在數(shù)據(jù)處理單元之間負(fù)載均衡的條件下進(jìn)行系統(tǒng)最大化處理能力的評(píng)估,與目前通過(guò)設(shè)置特定的網(wǎng)絡(luò)協(xié)議(Internet Protocol,IP)地址對(duì)的方式進(jìn)行數(shù)據(jù)流均勻分發(fā)相比,不需要人工設(shè)置IP地址對(duì),可以自動(dòng)實(shí)現(xiàn)不同數(shù)據(jù)處理單元之間的會(huì)話數(shù)量的均衡調(diào)整,提高了便捷性。
對(duì)于本發(fā)明實(shí)施例具體處理流程可以如圖3所示,
數(shù)據(jù)包接收:網(wǎng)卡收到數(shù)據(jù)包后,根據(jù)數(shù)據(jù)包的內(nèi)容信息,將數(shù)據(jù)包按流分類(lèi),將數(shù)據(jù)包分發(fā)給不同的數(shù)據(jù)處理單元進(jìn)行處理。
數(shù)據(jù)包處理:每個(gè)數(shù)據(jù)處理單元會(huì)對(duì)數(shù)據(jù)包進(jìn)行解析,進(jìn)行相應(yīng)的各項(xiàng)安全檢查,并保存會(huì)話信息,最后執(zhí)行相應(yīng)的安全動(dòng)作。
會(huì)話調(diào)度:根據(jù)匯總的每個(gè)數(shù)據(jù)處理單元的會(huì)話分配信息,執(zhí)行負(fù)載均衡的調(diào)度算法,計(jì)算出需要遷移的會(huì)話及與該會(huì)話對(duì)應(yīng)的原數(shù)據(jù)處理單元和目標(biāo)數(shù)據(jù)處理單元。
會(huì)話遷移:將所需要遷移的會(huì)話,在保證正常業(yè)務(wù)不中斷的情況下,將會(huì)話從原數(shù)據(jù)處理單元?jiǎng)討B(tài)遷移到目標(biāo)數(shù)據(jù)處理單元,整個(gè)遷移過(guò)程只影響兩個(gè)數(shù)據(jù)處理單元,對(duì)會(huì)話來(lái)說(shuō)是透明的。
數(shù)據(jù)包發(fā)送:數(shù)據(jù)處理單元在進(jìn)行完數(shù)據(jù)包處理后,根據(jù)數(shù)據(jù)包所屬會(huì)話的信息,將數(shù)據(jù)包通過(guò)網(wǎng)卡發(fā)送到網(wǎng)絡(luò)當(dāng)中。
本發(fā)明實(shí)施例提供的另一種負(fù)載均衡方法,首先獲取數(shù)據(jù)處理器中數(shù)據(jù)處理單元的會(huì)話分配信息;然后根據(jù)會(huì)話分配信息和預(yù)設(shè)負(fù)載均衡調(diào)度規(guī)則,生成數(shù)據(jù)處理單元之間負(fù)載均衡的會(huì)話調(diào)度信息;最后依據(jù)會(huì)話調(diào)度信息,在原數(shù)據(jù)處理單元對(duì)需要遷移的會(huì)話的已接收數(shù)據(jù)包處理結(jié)束后,再進(jìn)行該會(huì)話的遷移操作,可以實(shí)現(xiàn)在不中斷會(huì)話流量處理的前提下,實(shí)現(xiàn)不同數(shù)據(jù)處理單元之間的負(fù)載均衡,在會(huì)話遷移過(guò)程中,相對(duì)應(yīng)會(huì)話的數(shù)據(jù)包不會(huì)出現(xiàn)丟包、延遲過(guò)大、同步等問(wèn)題,數(shù)據(jù)流轉(zhuǎn)發(fā)在遷移過(guò)程中不受影響;可以實(shí)現(xiàn)實(shí)時(shí)獲取數(shù)據(jù)處理器中數(shù)據(jù)處理單元最新的會(huì)話分配信息,并根據(jù)該最新的會(huì)話分配信息執(zhí)行會(huì)話遷移操作,進(jìn)而可以實(shí)時(shí)保證數(shù)據(jù)處理器中數(shù)據(jù)處理單元之間的負(fù)載均衡,最大化數(shù)據(jù)處理器的處理效率。
進(jìn)一步地,作為圖1所述方法的具體實(shí)現(xiàn),本發(fā)明實(shí)施例提供了一種負(fù)載均衡裝置,如圖4所示,所述裝置包括:獲取單元31、生成單元32、遷移單元33。
所述獲取單元31,可以用于獲取數(shù)據(jù)處理器中數(shù)據(jù)處理單元的會(huì)話分配信息。所述獲取單元31可以從監(jiān)控日志信息中獲取數(shù)據(jù)處理器中的會(huì)話分配信息。所述獲取單元31可以為本裝置中獲取數(shù)據(jù)處理器中會(huì)話分配信息的主要功能模塊。在獲取單元31獲取到會(huì)話分配信息后,會(huì)將其傳遞給所述生成單元32,并觸發(fā)所述生成單元32進(jìn)行工作。
所述生成單元32,可以用于根據(jù)所述獲取單元31獲取的會(huì)話分配信息和預(yù)設(shè)負(fù)載均衡調(diào)度規(guī)則,生成數(shù)據(jù)處理單元之間負(fù)載均衡的會(huì)話調(diào)度信息。所述生成單元32可以為本裝置中以當(dāng)前的會(huì)話分配情況作為參數(shù),執(zhí)行負(fù)載均衡的調(diào)度算法,生成會(huì)話調(diào)度信息的主要功能模塊。在生成單元32生成會(huì)話調(diào)度信息后,會(huì)將其傳遞給所述遷移單元33,并觸發(fā)所述遷移單元33進(jìn)行相應(yīng)工作。
所述遷移單元33,可以用于根據(jù)所述生成單元32生成的會(huì)話調(diào)度信息進(jìn)行所述數(shù)據(jù)處理器中不同數(shù)據(jù)處理單元之間的會(huì)話遷移。進(jìn)一步地,以便于實(shí)現(xiàn)數(shù)據(jù)處理器中各個(gè)數(shù)據(jù)處理單元的會(huì)話數(shù)量均衡,進(jìn)而對(duì)數(shù)據(jù)流的分發(fā)處理達(dá)到相對(duì)均勻的狀態(tài),充分發(fā)揮數(shù)據(jù)處理器所有數(shù)據(jù)處理單元的處理能力,最大化數(shù)據(jù)處理器的處理效率。所述遷移單元33為本裝置中依據(jù)會(huì)話調(diào)度信息進(jìn)行會(huì)話遷移操作的主要功能模塊。具體地,將需要遷移的會(huì)話從原數(shù)據(jù)處理單元遷移到目標(biāo)數(shù)據(jù)處理單元中。
需要說(shuō)明的是,本發(fā)明實(shí)施例提供的一種負(fù)載均衡裝置所涉及各功能單元的其他相應(yīng)描述,可以參考圖1中的對(duì)應(yīng)描述,在此不再贅述。
本發(fā)明實(shí)施例提供的一種負(fù)載均衡裝置,可以配置在終端設(shè)備中,可以用于控制數(shù)據(jù)處理單元之間的會(huì)話遷移,具體包括:獲取單元、生成單元、遷移單元,首先通過(guò)獲取單元獲取數(shù)據(jù)處理器中數(shù)據(jù)處理單元的會(huì)話分配信息;然后通過(guò)生成單元根據(jù)所述會(huì)話分配信息和預(yù)設(shè)負(fù)載均衡調(diào)度規(guī)則,生成數(shù)據(jù)處理單元之間負(fù)載均衡的會(huì)話調(diào)度信息;最后通過(guò)遷移單元根據(jù)所述會(huì)話調(diào)度信息進(jìn)行所述數(shù)據(jù)處理器中不同數(shù)據(jù)處理單元之間的會(huì)話遷移。本發(fā)明實(shí)施例依據(jù)數(shù)據(jù)處理器中數(shù)據(jù)處理單元的會(huì)話分配信息和預(yù)設(shè)負(fù)載均衡調(diào)度規(guī)則,生成會(huì)話調(diào)度信息,并根據(jù)該會(huì)話調(diào)度信息執(zhí)行會(huì)話遷移操作,以便實(shí)現(xiàn)數(shù)據(jù)處理器中各個(gè)數(shù)據(jù)處理單元的會(huì)話數(shù)量均衡,進(jìn)而可以實(shí)現(xiàn)不同數(shù)據(jù)處理單元之間負(fù)載均衡,從而可以提高數(shù)據(jù)處理器的處理效率。
進(jìn)一步地,作為圖5所述方法的具體實(shí)現(xiàn),本發(fā)明實(shí)施例提供了另一種負(fù)載均衡裝置,如圖5所示,所述裝置包括:獲取單元41、生成單元42、遷移單元43。
所述獲取單元41,可以用于獲取數(shù)據(jù)處理器中數(shù)據(jù)處理單元的會(huì)話分配信息。所述獲取單元41可以從監(jiān)控日志信息中獲取數(shù)據(jù)處理器中的會(huì)話分配信息。所述獲取單元41可以為本裝置中獲取數(shù)據(jù)處理器中會(huì)話分配信息的主要功能模塊。在獲取單元41獲取到會(huì)話分配信息后,會(huì)將其傳遞給所述生成單元42,并觸發(fā)所述生成單元42進(jìn)行工作。
所述生成單元42,可以用于根據(jù)所述獲取單元41獲取的會(huì)話分配信息和預(yù)設(shè)負(fù)載均衡調(diào)度規(guī)則,生成數(shù)據(jù)處理單元之間負(fù)載均衡的會(huì)話調(diào)度信息。所述生成單元42可以為本裝置中以當(dāng)前的會(huì)話分配情況作為參數(shù),執(zhí)行負(fù)載均衡的調(diào)度算法,生成會(huì)話調(diào)度信息的主要功能模塊。在生成單元42生成會(huì)話調(diào)度信息后,會(huì)將其傳遞給所述遷移單元43,并觸發(fā)所述遷移單元43進(jìn)行相應(yīng)工作。
所述遷移單元43,可以用于根據(jù)所述生成單元42生成的會(huì)話調(diào)度信息進(jìn)行所述數(shù)據(jù)處理器中不同數(shù)據(jù)處理單元之間的會(huì)話遷移。所述遷移單元43為本裝置中依據(jù)會(huì)話調(diào)度信息進(jìn)行會(huì)話遷移操作的主要功能模塊。具體地,將需要遷移的會(huì)話從原數(shù)據(jù)處理單元遷移到目標(biāo)數(shù)據(jù)處理單元中。
可選地,所述會(huì)話分配信息中可以包含所述數(shù)據(jù)處理器中數(shù)據(jù)處理單元的個(gè)數(shù),以及所述數(shù)據(jù)處理器中每個(gè)數(shù)據(jù)處理單元當(dāng)前處理的會(huì)話數(shù)量。
具體地,所述生成單元42具體可以包括:確定模塊421、生成模塊422。
所述確定模塊421,可以用于根據(jù)所述會(huì)話數(shù)量、數(shù)據(jù)處理單元的個(gè)數(shù)和預(yù)設(shè)負(fù)載均衡調(diào)度規(guī)則,確定每個(gè)數(shù)據(jù)處理單元中需要遷移的會(huì)話以及與需要遷移的會(huì)話對(duì)應(yīng)的原數(shù)據(jù)處理單元和目標(biāo)數(shù)據(jù)處理單元。
所述生成模塊422,可以用于根據(jù)所述確定模塊確定的需要遷移的會(huì)話以及與需要遷移的會(huì)話對(duì)應(yīng)的原數(shù)據(jù)處理單元和目標(biāo)數(shù)據(jù)處理單元,生成數(shù)據(jù)處理單元之間負(fù)載均衡的會(huì)話調(diào)度信息。
所述遷移單元43,具體可以用于在原數(shù)據(jù)處理單元對(duì)需要遷移的會(huì)話的已接收數(shù)據(jù)包處理結(jié)束后,根據(jù)所述會(huì)話調(diào)度信息,將所述需要遷移的會(huì)話遷移到目標(biāo)數(shù)據(jù)處理單元。這種遷移操作可以實(shí)現(xiàn)在不中斷會(huì)話流量處理的前提下,將會(huì)話從一個(gè)數(shù)據(jù)處理單元遷移到另一個(gè)數(shù)據(jù)處理單元。
進(jìn)一步地,所述裝置還可以包括:記錄單元44、分配單元45。
所述記錄單元44,可以用于記錄遷移的會(huì)話對(duì)應(yīng)的目標(biāo)數(shù)據(jù)處理單元的標(biāo)識(shí)信息。
所述分配單元45,可以用于當(dāng)接收到與所述遷移的會(huì)話對(duì)應(yīng)的數(shù)據(jù)包時(shí),根據(jù)所述記錄單元記錄的標(biāo)識(shí)信息,將所述數(shù)據(jù)包分配到所述目標(biāo)數(shù)據(jù)處理單元中進(jìn)行處理。進(jìn)而可以保證會(huì)話遷移后,數(shù)據(jù)處理器再接收到網(wǎng)絡(luò)數(shù)據(jù)包能夠進(jìn)行相應(yīng)處理。
進(jìn)一步地,所述裝置還可以包括:復(fù)制單元46。
所述復(fù)制單元46,可以用于若所述數(shù)據(jù)處理器當(dāng)前采用的會(huì)話哈希表為局部會(huì)話哈希表,則將被遷移會(huì)話的會(huì)話信息數(shù)據(jù)字段復(fù)制到與所述被遷移會(huì)話對(duì)應(yīng)的目標(biāo)數(shù)據(jù)處理單元的會(huì)話哈希表內(nèi)。進(jìn)而可以保證目標(biāo)數(shù)據(jù)處理單元的會(huì)話哈希表中存在被遷移會(huì)話的會(huì)話信息數(shù)據(jù)字段,以便目標(biāo)數(shù)據(jù)處理單元根據(jù)該復(fù)制的會(huì)話信息數(shù)據(jù)字段,繼續(xù)處理與該被遷移會(huì)話對(duì)應(yīng)的數(shù)據(jù)包。
進(jìn)一步地,所述裝置還可以包括:更新單元47。
所述更新單元47,可以用于在會(huì)話遷移完成后或建立新的會(huì)話處理任務(wù)時(shí),對(duì)所述數(shù)據(jù)處理器中數(shù)據(jù)處理單元的會(huì)話分配信息進(jìn)行更新。
所述獲取單元41,具體可以用于按照預(yù)設(shè)時(shí)間間隔獲取所述數(shù)據(jù)處理器中數(shù)據(jù)處理單元的會(huì)話分配信息。進(jìn)而可以實(shí)時(shí)保證數(shù)據(jù)處理器中數(shù)據(jù)處理單元之間的負(fù)載均衡。
需要說(shuō)明的是,本發(fā)明實(shí)施例提供的另一種負(fù)載均衡裝置所涉及各功能單元的其他相應(yīng)描述,可以參考圖2中的對(duì)應(yīng)描述,在此不再贅述。
本發(fā)明實(shí)施例提供的另一種負(fù)載均衡裝置,可以配置在終端設(shè)備中,可以用于控制數(shù)據(jù)處理單元之間的會(huì)話遷移,具體包括:獲取單元、生成單元、遷移單元、記錄單元、分配單元、復(fù)制單元、更新單元等,首先通過(guò)獲取單元獲取數(shù)據(jù)處理器中數(shù)據(jù)處理單元的會(huì)話分配信息;然后通過(guò)生成單元根據(jù)會(huì)話分配信息和預(yù)設(shè)負(fù)載均衡調(diào)度規(guī)則,生成數(shù)據(jù)處理單元之間負(fù)載均衡的會(huì)話調(diào)度信息;最后通過(guò)遷移單元依據(jù)會(huì)話調(diào)度信息,在原數(shù)據(jù)處理單元對(duì)需要遷移的會(huì)話的已接收數(shù)據(jù)包處理結(jié)束后,再進(jìn)行該會(huì)話的遷移操作,可以實(shí)現(xiàn)在不中斷會(huì)話流量處理的前提下,實(shí)現(xiàn)不同數(shù)據(jù)處理單元之間的負(fù)載均衡,在會(huì)話遷移過(guò)程中,相對(duì)應(yīng)會(huì)話的數(shù)據(jù)包不會(huì)出現(xiàn)丟包、延遲過(guò)大、同步等問(wèn)題,數(shù)據(jù)流轉(zhuǎn)發(fā)在遷移過(guò)程中不受影響;可以實(shí)現(xiàn)實(shí)時(shí)獲取數(shù)據(jù)處理器中數(shù)據(jù)處理單元最新的會(huì)話分配信息,并根據(jù)該最新的會(huì)話分配信息執(zhí)行會(huì)話遷移操作,進(jìn)而可以實(shí)時(shí)保證數(shù)據(jù)處理器中數(shù)據(jù)處理單元之間的負(fù)載均衡,最大化數(shù)據(jù)處理器的處理效率。
基于上述的方法和裝置實(shí)施例,本發(fā)明實(shí)施例提供了一種負(fù)載均衡系統(tǒng)架構(gòu)的示意圖,如圖6所示,該系統(tǒng)包括:分發(fā)器、數(shù)據(jù)處理器、調(diào)度器、遷移器。分發(fā)器可以包含能夠?qū)?shù)據(jù)包分發(fā)給不同數(shù)據(jù)處理單元的功能,具體可以為硬件層面實(shí)現(xiàn)的功能,如部分網(wǎng)卡硬件內(nèi)置的RSS(Receive Side Scaling)功能、FlowDirector功能等,也可以是軟件層面實(shí)現(xiàn)的功能,如Linux內(nèi)核網(wǎng)絡(luò)模塊收包機(jī)制提供的RPS(receive packet steering)功能等,按預(yù)先設(shè)定的配置參數(shù),使用不同的分類(lèi)方法,將數(shù)據(jù)包分發(fā)出去。數(shù)據(jù)處理器可以實(shí)現(xiàn)針對(duì)網(wǎng)絡(luò)數(shù)據(jù)包主要安全業(yè)務(wù)的處理。調(diào)度器可以依據(jù)數(shù)據(jù)處理器中數(shù)據(jù)處理單元的會(huì)話分配信息,執(zhí)行負(fù)載均衡的調(diào)度算法,生成數(shù)據(jù)處理單元之間負(fù)載均衡的會(huì)話調(diào)度信息;遷移器根據(jù)調(diào)度器生成的會(huì)話調(diào)度信息進(jìn)行數(shù)據(jù)處理器中不同數(shù)據(jù)處理單元之間的會(huì)話遷移,使得各個(gè)數(shù)據(jù)處理單元的會(huì)話數(shù)量均衡,進(jìn)而可以實(shí)現(xiàn)不同數(shù)據(jù)處理單元之間負(fù)載均衡。
在上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒(méi)有詳述的部分,可以參見(jiàn)其他實(shí)施例的相關(guān)描述。
可以理解的是,上述方法及裝置中的相關(guān)特征可以相互參考。另外,上述實(shí)施例中的“第一”、“第二”等是用于區(qū)分各實(shí)施例,而并不代表各實(shí)施例的優(yōu)劣。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,上述描述的系統(tǒng),裝置和單元的具體工作過(guò)程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過(guò)程,在此不再贅述。
在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類(lèi)系統(tǒng)所要求的結(jié)構(gòu)是顯而易見(jiàn)的。此外,本發(fā)明也不針對(duì)任何特定編程語(yǔ)言。應(yīng)當(dāng)明白,可以利用各種編程語(yǔ)言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語(yǔ)言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。
在此處所提供的說(shuō)明書(shū)中,說(shuō)明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒(méi)有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說(shuō)明書(shū)的理解。
類(lèi)似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開(kāi)并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開(kāi)的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說(shuō),如下面的權(quán)利要求書(shū)所反映的那樣,發(fā)明方面在于少于前面公開(kāi)的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式的權(quán)利要求書(shū)由此明確地并入該具體實(shí)施方式,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過(guò)程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說(shuō)明書(shū)(包括伴隨的權(quán)利要求、摘要和附圖)中公開(kāi)的所有特征以及如此公開(kāi)的任何方法或者設(shè)備的所有過(guò)程或單元進(jìn)行組合。除非另外明確陳述,本說(shuō)明書(shū)(包括伴隨的權(quán)利要求、摘要和附圖)中公開(kāi)的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來(lái)代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書(shū)中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來(lái)使用。
本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP)來(lái)實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的一種負(fù)載均衡方法及裝置中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。
應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說(shuō)明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來(lái)實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過(guò)同一個(gè)硬件項(xiàng)來(lái)具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱(chēng)。