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