唐鴻凱
摘 要:該文介紹了一種CLOS網(wǎng)絡(luò)的鏈路分配方法,涉及CLOS網(wǎng)絡(luò)出現(xiàn)硬件鏈路不均衡時(shí)如何實(shí)現(xiàn)負(fù)載均衡的技術(shù)。即網(wǎng)絡(luò)的中間級(jí)交換單元與其互連的前后級(jí)交換單元之間可以使用的有效鏈路數(shù)量,等于其前級(jí)交換單元可用的空閑鏈路數(shù)量和后級(jí)交換單元可用的空閑鏈路數(shù)量之間的最小值。只要檢測(cè)到有鏈路釋放占用狀態(tài),就刷新該交換單元進(jìn)行數(shù)據(jù)傳輸需要的各級(jí)鏈路數(shù)量信息,重新分配該數(shù)據(jù)傳輸通道上的各級(jí)交換單元的鏈路數(shù)量。
關(guān)鍵詞:CLOS網(wǎng)絡(luò) 均衡 數(shù)據(jù)中心
中圖分類(lèi)號(hào):TN927 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2017)03(b)-0007-03
為了解決CLOS網(wǎng)絡(luò)應(yīng)用中鏈路不對(duì)等造成的網(wǎng)絡(luò)擁塞問(wèn)題,該文介紹了一種CLOS網(wǎng)絡(luò)的負(fù)載均衡技術(shù),既保證了數(shù)據(jù)傳輸過(guò)程中的鏈路匹配,又避免了負(fù)載均衡過(guò)程中的鏈路資源浪費(fèi),極大地保證了CLOS網(wǎng)絡(luò)的整體交換性能,提高了整個(gè)CLOS網(wǎng)絡(luò)的可靠性。
1 技術(shù)背景
CLOS架構(gòu)[1]是一種多級(jí)交換架構(gòu),各級(jí)的每個(gè)交換單元都和下一級(jí)的所有交換單元相連接。典型的3級(jí)CLOS網(wǎng)絡(luò),如圖1所示,n為入口和出口處每個(gè)交換單元的端口數(shù),第2級(jí)為m個(gè)r×r的交換單元,每級(jí)與下一級(jí)各個(gè)交換單元之間僅有一條鏈路連接。當(dāng)m≥2n-1時(shí),該3級(jí)CLOS網(wǎng)絡(luò)可以實(shí)現(xiàn)嚴(yán)格無(wú)阻塞的數(shù)據(jù)交換。
CLOS網(wǎng)絡(luò)支持遞歸擴(kuò)展,中間級(jí)可以是一個(gè)完整的3級(jí)CLOS網(wǎng)絡(luò),理論上可以無(wú)限擴(kuò)展,構(gòu)建具有更高容量的交換網(wǎng)絡(luò),為極大的數(shù)據(jù)流交換建立嚴(yán)格的無(wú)阻塞連接。
CLOS網(wǎng)絡(luò)實(shí)現(xiàn)無(wú)阻塞交換的前提是要實(shí)現(xiàn)負(fù)載均衡,以防止出現(xiàn)同一時(shí)刻入口鏈路大于出口鏈路造成的網(wǎng)絡(luò)擁塞。實(shí)際運(yùn)用中,CLOS網(wǎng)絡(luò)每級(jí)與下一級(jí)各個(gè)交換單元之間可以允許有多條鏈路連接,硬件上一般都通過(guò)設(shè)計(jì)對(duì)稱的CLOS網(wǎng)絡(luò)架構(gòu),保證各個(gè)中間級(jí)交換單元到入口和出口處各個(gè)交換單元之間的互聯(lián)鏈路數(shù)相等。
CLOS網(wǎng)絡(luò)工作過(guò)程中不可避免地會(huì)出現(xiàn)鏈路故障,導(dǎo)致網(wǎng)絡(luò)擁塞。因此,必須引入負(fù)載均衡技術(shù),保證整個(gè)CLOS網(wǎng)絡(luò)的無(wú)阻塞交換。目前應(yīng)用于CLOS網(wǎng)絡(luò),主要的負(fù)載均衡技術(shù)如下。
(1)禁用多余鏈路——當(dāng)CLOS網(wǎng)絡(luò)中,某個(gè)中間級(jí)交換單元的某些鏈路出現(xiàn)故障時(shí),通過(guò)各種機(jī)制禁用掉與該交換單元互聯(lián)的前后級(jí)各個(gè)交換單元的多余鏈路,保證故障交換單元到前后級(jí)各個(gè)交換單元之間的鏈路數(shù)相等。(2)速率動(dòng)態(tài)調(diào)整——當(dāng)CLOS網(wǎng)絡(luò)中,某個(gè)交換單元的某些鏈路出現(xiàn)故障時(shí),通過(guò)各種機(jī)制動(dòng)態(tài)調(diào)整該故障交換單元的數(shù)據(jù)輸入和輸出速率,輸入速率×輸入鏈路≤輸出速率×輸出鏈路,防止出現(xiàn)網(wǎng)絡(luò)擁塞。
方案1會(huì)造成CLOS網(wǎng)絡(luò)鏈路資源上的浪費(fèi),降低了中間級(jí)交換單元的交換容量,影響整個(gè)網(wǎng)絡(luò)的交換性能。方案2實(shí)現(xiàn)機(jī)制比較復(fù)雜,需要消耗較多的軟件資源用來(lái)調(diào)整鏈路的傳輸速率。
2 實(shí)現(xiàn)方式
CLOS網(wǎng)絡(luò)架構(gòu)在數(shù)據(jù)中心交換機(jī)中廣泛應(yīng)用。數(shù)據(jù)中心交換機(jī)主要包括管理板、業(yè)務(wù)板(接口板)、交換板3個(gè)部分,其中業(yè)務(wù)板和交換板通過(guò)機(jī)箱背板互連構(gòu)成了一個(gè)CLOS網(wǎng)絡(luò)。
一種常見(jiàn)的數(shù)據(jù)中心交換機(jī)業(yè)務(wù)板和交換板形成的CLOS網(wǎng)絡(luò),如圖2所示,處于中間級(jí)的所有交換板通過(guò)機(jī)箱背板共同構(gòu)成了一個(gè)交換平面,假設(shè)該數(shù)據(jù)中心交換機(jī)支持r張業(yè)務(wù)板,每張業(yè)務(wù)板的入口到全部業(yè)務(wù)板的出口有r個(gè)數(shù)據(jù)傳輸路徑,則整個(gè)CLOS網(wǎng)絡(luò)支持r×r個(gè)數(shù)據(jù)傳輸路徑。
圖2中,每張業(yè)務(wù)板和交換平面之間通過(guò)4對(duì)鏈路連接(4條發(fā)送、4條接收),虛線代表鏈路故障。某一時(shí)刻業(yè)務(wù)板#1的入口處收到一條數(shù)據(jù)流,按照優(yōu)先級(jí)的先后順序分別需要傳輸?shù)綐I(yè)務(wù)板#2、業(yè)務(wù)板#3、業(yè)務(wù)板#4,則該方案的實(shí)現(xiàn)流程如圖3所示,該數(shù)據(jù)流的傳輸可以分為以下幾個(gè)步驟。
(1)處于第一優(yōu)先級(jí)路徑的業(yè)務(wù)板#1→業(yè)務(wù)板#2,檢測(cè)到該路徑上有傳輸?shù)臄?shù)據(jù)需求。
(2)判斷業(yè)務(wù)板#1的入口和業(yè)務(wù)板#2的出口側(cè)是否存在空閑的鏈路,根據(jù)圖2所示,業(yè)務(wù)板#2的出口側(cè)有2條可用空閑鏈路,2條故障鏈路,業(yè)務(wù)卡#1的入口側(cè)有4條可用空閑鏈路(假定該數(shù)據(jù)中心交換機(jī)此前處于空閑狀態(tài)),如果通路上面沒(méi)有空閑鏈路就返回重新檢測(cè)。
(3)分配第一優(yōu)先級(jí)路徑的鏈路數(shù),該路徑上可以使用的鏈路數(shù)=min{業(yè)務(wù)卡#1入口側(cè)可用的空閑鏈路數(shù),業(yè)務(wù)卡#2出口側(cè)可用的空閑鏈路數(shù)}=min{4,2}=2,業(yè)務(wù)卡#1入口側(cè)可用的空閑鏈路數(shù)和業(yè)務(wù)卡#2出口側(cè)可用的空閑鏈路數(shù)的最小值為2,即由業(yè)務(wù)板#1發(fā)往業(yè)務(wù)板#2可使用的鏈路數(shù)為入口側(cè)和出口側(cè)各2條。
(4)CLOS網(wǎng)絡(luò)一般是采用動(dòng)態(tài)路由機(jī)制,從業(yè)務(wù)卡#1的入口側(cè)和業(yè)務(wù)卡#2入口側(cè)各選擇2條鏈路,同時(shí)將選中的鏈路標(biāo)記為“被占用”的狀態(tài),通告該優(yōu)先級(jí)鏈路分配完成,接著通告第一優(yōu)先級(jí)路徑上被選中的鏈路開(kāi)啟數(shù)據(jù)傳輸流程,通過(guò)被占用的所有鏈路往業(yè)務(wù)卡#2的出口側(cè)傳輸數(shù)據(jù)。數(shù)據(jù)傳輸流程是原系統(tǒng)自帶的數(shù)據(jù)傳輸流程,是另外進(jìn)行的獨(dú)立流程,和該方案通過(guò)相互之間的通告建立聯(lián)系,兩者互不影響。
(5)當(dāng)?shù)谝粌?yōu)先級(jí)路徑的鏈路分配通告完成后,處于第二優(yōu)先級(jí)路徑的業(yè)務(wù)板#1→業(yè)務(wù)板#3,開(kāi)始執(zhí)行該路徑上的鏈路分配。
(6)通過(guò)確認(rèn),業(yè)務(wù)板#3的出口側(cè)有2條可用空閑鏈路,2條故障鏈路,業(yè)務(wù)卡#1的入口側(cè)有2條可用空閑鏈路,2條鏈路被占用。因此,該路徑上可以使用的鏈路數(shù)=min{業(yè)務(wù)卡#1入口側(cè)可用的空閑鏈路數(shù),業(yè)務(wù)卡#3出口側(cè)可用的空閑鏈路數(shù)}=2,將入口側(cè)和出口側(cè)選中的各2條鏈路全部標(biāo)記為“被占用”的狀態(tài),同時(shí)通告該優(yōu)先級(jí)鏈路分配完成,通告業(yè)務(wù)板#1→業(yè)務(wù)板#3之間被選中的鏈路開(kāi)啟數(shù)據(jù)傳輸流程。
(7)處于第三優(yōu)先級(jí)路徑上的數(shù)據(jù),由于業(yè)務(wù)板#1的入口側(cè)沒(méi)有空閑鏈路,暫時(shí)處于循環(huán)檢測(cè)的傳輸?shù)却小?/p>
(8)假設(shè)第一優(yōu)先級(jí)路徑的數(shù)據(jù)先于第二優(yōu)先級(jí)路徑的數(shù)據(jù)完成傳輸流程,當(dāng)?shù)谝粌?yōu)先級(jí)的數(shù)據(jù)傳輸流程通告結(jié)束時(shí),該路徑會(huì)釋放被占用的所有鏈路,入口側(cè)和出口側(cè)的鏈路重新被標(biāo)記為“空閑”狀態(tài)。此刻,會(huì)觸發(fā)所有相關(guān)路徑重新執(zhí)行鏈路分配檢測(cè),各路徑重新確認(rèn)本路徑上的鏈路分配是否需要進(jìn)行調(diào)整。該方案的鏈路分配流程不會(huì)影響正在執(zhí)行的數(shù)據(jù)傳輸流程,兩個(gè)流程是獨(dú)立進(jìn)行的,相互之間僅僅互相通告。
(9)本時(shí)刻由于第二優(yōu)先級(jí)路徑的數(shù)據(jù)傳輸流程仍未結(jié)束,第二路徑的空閑鏈路數(shù)量沒(méi)有增加,因此第二優(yōu)先級(jí)路徑繼續(xù)保持原先的鏈路分配結(jié)果。與此同時(shí),業(yè)務(wù)卡#1的入口側(cè)釋放2條可用的空閑鏈路,2條鏈路繼續(xù)被占用,而業(yè)務(wù)板#4的出口側(cè)有4條可用空閑鏈路。進(jìn)而執(zhí)行第三優(yōu)先級(jí)路徑業(yè)務(wù)板#1→業(yè)務(wù)板#4的鏈路分配,該路徑上可以使用的鏈路數(shù)=min{業(yè)務(wù)卡#1入口側(cè)可用的空閑鏈路數(shù),業(yè)務(wù)卡#4出口側(cè)可用的空閑鏈路數(shù)}=2。
(10)同樣的,第三優(yōu)先級(jí)路徑會(huì)將業(yè)務(wù)板#1入口側(cè)剩余的2條鏈路和業(yè)務(wù)板#4出口側(cè)的2條鏈路標(biāo)記為“被占用”,同時(shí)通告選中鏈路開(kāi)啟數(shù)據(jù)傳輸流程,該階段業(yè)務(wù)板#4的出口側(cè)只啟用2條鏈路進(jìn)行數(shù)據(jù)傳輸。
(11)假設(shè)第二優(yōu)先級(jí)路徑的數(shù)據(jù)先于第三優(yōu)先級(jí)路徑的數(shù)據(jù)完成傳輸流程,當(dāng)?shù)诙?yōu)先級(jí)路徑業(yè)務(wù)板#1→業(yè)務(wù)板#3占用的鏈路被標(biāo)記為“空閑”狀態(tài)后。所有的相關(guān)路徑又會(huì)再次進(jìn)行一次鏈路檢測(cè),此時(shí)第三優(yōu)先級(jí)路徑業(yè)務(wù)板#1→業(yè)務(wù)板#4上仍有數(shù)據(jù)傳輸?shù)男枨螅瑫r(shí)檢測(cè)到業(yè)務(wù)板#1的入口側(cè)和業(yè)務(wù)板#4的出口側(cè)均存在2條空閑鏈路,進(jìn)而再執(zhí)行一次鏈路分配,該路徑上還可以使用的鏈路數(shù)=min{業(yè)務(wù)卡#1入口側(cè)可用的空閑鏈路數(shù),業(yè)務(wù)卡#4出口側(cè)可用的空閑鏈路數(shù)}=2。因此,該路徑上業(yè)務(wù)板#1入口側(cè)和業(yè)務(wù)板#4出口側(cè)各剩余的2條鏈路全部標(biāo)記為“被占用”,同時(shí)通告選中鏈路開(kāi)啟數(shù)據(jù)傳輸流程,即此刻業(yè)務(wù)板#1→業(yè)務(wù)板#4的路徑上入口側(cè)和出口側(cè)均開(kāi)啟了4條鏈路的數(shù)據(jù)傳輸流程,直至業(yè)務(wù)板#1的數(shù)據(jù)流全部完成傳輸結(jié)束。
綜上所述,可以將上述的鏈路使用情況成以下3個(gè)階段。
第1階段——業(yè)務(wù)板#1同時(shí)向業(yè)務(wù)板#2和業(yè)務(wù)板#3傳輸數(shù)據(jù),該階段業(yè)務(wù)板#1的入口側(cè)啟用4條鏈路,業(yè)務(wù)板#2和業(yè)務(wù)板#3出口側(cè)非故障的2條鏈路也全部啟用。
第2階段——業(yè)務(wù)板#1同時(shí)向業(yè)務(wù)板#3和業(yè)務(wù)板#4傳輸數(shù)據(jù),該階段業(yè)務(wù)板#1的入口側(cè)啟用4條鏈路,業(yè)務(wù)板#2的出口側(cè)非故障的2條鏈路也全部啟用,業(yè)務(wù)板#4的出口側(cè)啟用2條鏈路。
第3階段——業(yè)務(wù)板#1單獨(dú)向業(yè)務(wù)板#4傳輸數(shù)據(jù),該階段業(yè)務(wù)板#1的入口側(cè)啟用4條鏈路,業(yè)務(wù)板#4的出口側(cè)也啟用4條鏈路。
上述3個(gè)階段所有路徑上業(yè)務(wù)板入口側(cè)和出口側(cè)啟用的鏈路比始終保持1∶1,實(shí)現(xiàn)了鏈路故障時(shí)的負(fù)載均衡,同時(shí)鏈路的利用率可以達(dá)到100%,不會(huì)造成鏈路資源的浪費(fèi),很好地保證了整個(gè)CLOS網(wǎng)絡(luò)的交換性能,提高了數(shù)據(jù)中心交換機(jī)的可靠性。
3 結(jié)語(yǔ)
該方案很好地解決了CLOS網(wǎng)絡(luò)中的負(fù)載均衡問(wèn)題,在非對(duì)稱的CLOS網(wǎng)絡(luò)中也能夠應(yīng)用,有效鏈路的利用率可以達(dá)到100%,保證了整個(gè)CLOS網(wǎng)絡(luò)的交換性能。另外,該方案也可以很好地解決使用CLOS架構(gòu)的數(shù)據(jù)中心交換機(jī)時(shí)不同版本交換板的混插兼容性問(wèn)題,當(dāng)數(shù)據(jù)中心交換機(jī)的CLOS網(wǎng)絡(luò)發(fā)生鏈路故障時(shí)仍可以正常工作,保證了數(shù)據(jù)中心交換機(jī)的交換性能和可靠性,為用戶節(jié)約維護(hù)成本。
參考文獻(xiàn)
[1] Charles Clos.A Study of Non-Blocking Switching Networks[J].BSTJ,2013,32(5):406-424.
[2] RG-N18000系列云架構(gòu)網(wǎng)絡(luò)核心交換機(jī)[Z].