虛擬化技術(shù)在數(shù)據(jù)中心是個(gè)時(shí)髦詞兒,有橫向虛擬化、縱向虛擬化、一虛多虛擬化、NVO3虛擬化等等。今天重點(diǎn)跟大家聊聊橫向虛擬化,以華為CloudEngine 12800系列為例,讓朋友們了解一下此技術(shù)的由來(lái)和發(fā)展史,深入淺出地介紹下各種橫向虛擬化技術(shù)的特點(diǎn)、以及各種場(chǎng)景下的選擇策略。
橫向虛擬化集群由來(lái)
在數(shù)據(jù)中心網(wǎng)絡(luò)發(fā)展初期,沒(méi)有專門(mén)的數(shù)據(jù)中心交換機(jī),那咋辦?先拿園區(qū)交換機(jī)頂著,使用最傳統(tǒng)的VRRP+STP,湊合著用吧,就是下面這張經(jīng)典的園區(qū)網(wǎng)絡(luò)。
這個(gè)網(wǎng)絡(luò)模型,透著濃濃的經(jīng)典、可靠的園區(qū)味道。可時(shí)間久了,問(wèn)題就來(lái)了:
流量越來(lái)越大,STP阻斷導(dǎo)致鏈路利用率低;
非最短路徑轉(zhuǎn)發(fā),樹(shù)根存在帶寬瓶頸,轉(zhuǎn)發(fā)時(shí)延大;
VRRP單活網(wǎng)關(guān),備節(jié)點(diǎn)設(shè)備閑置;
STP網(wǎng)絡(luò)規(guī)模受限,收斂性能較差;
管理節(jié)點(diǎn)多,邏輯拓?fù)鋸?fù)雜,維護(hù)麻煩。
這些問(wèn)題帶來(lái)橫向虛擬化的訴求,框式交換機(jī)集群率先登場(chǎng)。
堆疊
典型的框式交換機(jī)堆疊,有CISCO的VSS(Virtual Switch System)、華為的CSS(Cluster Switch System)、H3C的IRF(Intelligent Resilient Framework)。VSS、CSS、IRF在本質(zhì)上都是堆疊,只是穿了不同的馬甲而已,當(dāng)然各廠家也發(fā)展出一些差異,這是后話。
堆疊技術(shù),本質(zhì)上就是合并,管理平面、控制平面、轉(zhuǎn)發(fā)平面的全面合并。堆疊系統(tǒng)的主控板,管理兩臺(tái)物理設(shè)備的所有線卡和網(wǎng)板,變成一個(gè)邏輯的大交換機(jī)。
?
但需要注意,堆疊目的不僅僅是為了變大,從網(wǎng)絡(luò)角度看一下邏輯拓?fù)洌幌伦兊谩案吒粠洝保?/p>
“高富帥”的主要表現(xiàn):
幾乎兩倍交換能力的超級(jí)節(jié)點(diǎn);
二三層轉(zhuǎn)發(fā)流量完全負(fù)載分擔(dān),充分利用所有鏈路;
邏輯單節(jié)點(diǎn),業(yè)務(wù)支持全面,網(wǎng)絡(luò)方案設(shè)計(jì)簡(jiǎn)單;
通過(guò)部署跨框link-agg,支持物理節(jié)點(diǎn)的故障保護(hù);
網(wǎng)元二合一,有利于網(wǎng)絡(luò)管理和維護(hù)。
還有零零碎碎的好處也不少:
最短路徑轉(zhuǎn)發(fā),時(shí)延低;
相對(duì)傳統(tǒng)STP,可以組建更大的二層網(wǎng)絡(luò);
link-agg的收斂性能,網(wǎng)絡(luò)故障收斂塊。
在堆疊系統(tǒng)中,堆疊鏈路的帶寬相對(duì)于業(yè)務(wù)端口,帶寬總是不夠的。這就要求轉(zhuǎn)發(fā)的業(yè)務(wù)流量盡量避免經(jīng)過(guò)堆疊鏈路,這就是所謂的流量本地優(yōu)先轉(zhuǎn)發(fā)。
如上圖所示,華為數(shù)據(jù)中心交換機(jī)堆疊系統(tǒng),對(duì)三層ECMP、鏈路捆綁支持本地優(yōu)先。本地優(yōu)先轉(zhuǎn)發(fā)節(jié)省了堆疊鏈路帶寬,同時(shí)也達(dá)到減少轉(zhuǎn)發(fā)時(shí)延的目的。
除了上述通用的堆疊技術(shù),華為CloudEngine 12800系列數(shù)據(jù)中心高端交換機(jī),還針對(duì)堆疊的可靠性,做了重大的體質(zhì)性的優(yōu)化。
堆疊的優(yōu)化
可靠性優(yōu)化(轉(zhuǎn)控分離的堆疊)
轉(zhuǎn)控分離的堆疊,也稱為帶外堆疊,這個(gè)優(yōu)化主要目的是高可靠性。
業(yè)界大部分框式交換機(jī)的堆疊,堆疊成員間的控制通道和轉(zhuǎn)發(fā)通道都使用一個(gè)通道。華為的CloudEngine 12800系列數(shù)據(jù)中心交換機(jī)獨(dú)創(chuàng)性的開(kāi)發(fā)了轉(zhuǎn)控分離的堆疊系統(tǒng)。這里的“轉(zhuǎn)”指的是業(yè)務(wù)數(shù)據(jù)轉(zhuǎn)發(fā)通道;“控”指的是控制消息(也稱為“信令”)通道。
傳統(tǒng)的框式堆疊系統(tǒng),業(yè)務(wù)數(shù)據(jù)通道和控制消息通道都使用相同的物理通道,即堆疊鏈路。如下圖所示:
這種堆疊系統(tǒng),控制消息和數(shù)據(jù)混合在一起運(yùn)行,如果堆疊通道的數(shù)據(jù)通信量大,則可能導(dǎo)致控制消息受到?jīng)_擊而丟失,進(jìn)而影響控制面的可靠性。嚴(yán)格來(lái)說(shuō),這種設(shè)計(jì)沒(méi)有滿足“數(shù)據(jù)、控制、管理平面分離”的設(shè)計(jì)要求。此外,堆疊系統(tǒng)的建立,依賴線卡的啟動(dòng),導(dǎo)致軟件復(fù)雜度的提高,以及影響堆疊的啟動(dòng)速度。
轉(zhuǎn)控分離的堆疊系統(tǒng),采用如下所示架構(gòu):
該硬件堆疊架構(gòu)帶來(lái)一系列可靠性的提升:
控制消息通道和業(yè)務(wù)數(shù)據(jù)通道物理隔離,保證業(yè)務(wù)數(shù)據(jù)不影響控制消息;
三重的雙主故障防護(hù),包括堆疊管理鏈路(4路)、堆疊轉(zhuǎn)發(fā)鏈路(至少2路)、業(yè)務(wù)端口/管理端口DAD;
堆疊系統(tǒng)建立,不再依賴線卡的啟動(dòng),無(wú)軟件時(shí)序依賴,簡(jiǎn)化軟件實(shí)現(xiàn),而簡(jiǎn)單意味著可靠;
堆疊系統(tǒng)建立,不再等待線卡/網(wǎng)板的啟動(dòng),縮短堆疊系統(tǒng)建立時(shí)間;
控制消息通道路徑短,故障點(diǎn)少,時(shí)延低。
堆疊改良的局限性
堆疊系統(tǒng)帶來(lái)了前述系列的好處,但慢慢的,令人不爽的問(wèn)題也逐漸暴露出來(lái),這是由堆疊原理本質(zhì)決定的。
如上圖所示,兩臺(tái)交換機(jī)通過(guò)管理平面、控制平面、數(shù)據(jù)平面的緊耦合,形成邏輯上的一臺(tái)交換機(jī)。這導(dǎo)致了如下三個(gè)風(fēng)險(xiǎn)或者問(wèn)題。
整系統(tǒng)級(jí)可靠性風(fēng)險(xiǎn)
對(duì)于普通的故障,堆疊系統(tǒng)可通過(guò)鏈路切換、主備板切換、 框切換等完成故障保護(hù)。但是由于整個(gè)系統(tǒng)的兩臺(tái)物理switch在軟件(管理平面、控制平面)是緊耦合的,這就增大軟件故障從一臺(tái)switch擴(kuò)散到另一臺(tái)Switch的可能性。一旦出現(xiàn)這種類型的故障,將導(dǎo)致整個(gè)堆疊系統(tǒng)的故障,影響堆疊系統(tǒng)接入的所有業(yè)務(wù)。
版本升級(jí)的業(yè)務(wù)中斷時(shí)間長(zhǎng)
由于堆疊本身承擔(dān)了業(yè)務(wù)保護(hù)功能,因此當(dāng)堆疊系統(tǒng)升級(jí)時(shí),不能像VRRP的成員節(jié)點(diǎn)升級(jí)時(shí)由另外一個(gè)節(jié)點(diǎn)進(jìn)行流量保護(hù),中斷時(shí)間比較長(zhǎng)。
對(duì)此,各廠商開(kāi)發(fā)出了兩框RoundRobin和ISSU的升級(jí)方式,這些升級(jí)方式縮短了升級(jí)時(shí)的業(yè)務(wù)中斷時(shí)間,但并不解決下面所說(shuō)的升級(jí)風(fēng)險(xiǎn),甚至因?yàn)榧夹g(shù)復(fù)雜度、軟件工程復(fù)雜度的提升,放大了升級(jí)風(fēng)險(xiǎn)。
整系統(tǒng)升級(jí)風(fēng)險(xiǎn)
設(shè)備軟件版本升級(jí),即使采用最傳統(tǒng)、簡(jiǎn)單的升級(jí)方式,也是一個(gè)帶風(fēng)險(xiǎn)的網(wǎng)絡(luò)操作。設(shè)備升級(jí)失敗將導(dǎo)致該設(shè)備所帶業(yè)務(wù)失效,這種情況下,要采用包括回退在內(nèi)的一切手段盡快恢復(fù)業(yè)務(wù)。
堆疊系統(tǒng)由于成員交換機(jī)間的緊耦合,只能是兩臺(tái)設(shè)備一起升級(jí),升級(jí)失敗將導(dǎo)致堆疊系統(tǒng)下所有業(yè)務(wù)網(wǎng)絡(luò)中斷。而堆疊系統(tǒng),在接入層往往承擔(dān)服務(wù)器雙歸保護(hù)接入的角色、或者在匯聚承擔(dān)高可靠性網(wǎng)關(guān)的角色,這意味著升級(jí)失敗很可能導(dǎo)致整個(gè)業(yè)務(wù)的癱瘓。
Link-agg虛擬化(M-LAG)
橫向虛擬化,從需求角度是為了滿足接入層、匯聚層的二層跨設(shè)備冗余、匯聚層L3網(wǎng)關(guān)的跨設(shè)備冗余。那是否還有其他技術(shù),支持橫向虛擬化,又沒(méi)有堆疊的哪些問(wèn)題?
答案當(dāng)然是有,華為CloudEngine系列數(shù)據(jù)中心交換機(jī)的M-LAG(Multichassis Link Aggregation Group)就支持這樣的虛擬化技術(shù)。該技術(shù)只在兩臺(tái)設(shè)備的link-agg層面實(shí)現(xiàn)二層虛擬化,兩臺(tái)成員設(shè)備的管理和控制平面是獨(dú)立的。
注:維基百科稱此技術(shù)為MC-LAG(Multi-Chassis Link Aggregation Group),CISCO稱之為vPC(Virtual Port-Channel)。下文都采用維基百科的術(shù)語(yǔ),即簡(jiǎn)寫(xiě)為MC-LAG。
?
MC-LAG,支持的跨設(shè)備鏈路捆綁組網(wǎng),支持Dual-Active的L3GW。在接入側(cè),從對(duì)端設(shè)備視角、服務(wù)器視角看,MC-LAG與堆疊類似。
但是,從三層網(wǎng)絡(luò)角度看,MC-LAG的兩個(gè)成員節(jié)點(diǎn)擁有自己獨(dú)立的IP地址,兩個(gè)節(jié)點(diǎn)有自己獨(dú)立的管理和控制平面。從架構(gòu)角度看,MC-LAG的兩個(gè)成員設(shè)備僅存在數(shù)據(jù)面的耦合,以及協(xié)議面的輕量級(jí)耦合:
MC-LAG的架構(gòu),決定了此技術(shù)方案不存在堆疊難解決的三個(gè)問(wèn)題:
那么,說(shuō)了MC-LAG的這么多好處,是不是就沒(méi)有缺點(diǎn)了?當(dāng)然不是,寸有所長(zhǎng),尺有所短。最后一節(jié)比較堆疊與MC-LAG的優(yōu)缺點(diǎn),以及場(chǎng)景選擇建議。
堆疊和MC-LAG的對(duì)比和選擇建議
?
根據(jù)上面的對(duì)比表格,堆疊和MC-LAG各有優(yōu)缺點(diǎn)??偟膩?lái)說(shuō),對(duì)于網(wǎng)絡(luò)設(shè)計(jì)/維護(hù)人員,堆疊勝在管理維護(hù)簡(jiǎn)單,MC-LAG勝在可靠性和低升級(jí)風(fēng)險(xiǎn)。
在數(shù)據(jù)中心網(wǎng)絡(luò)方案設(shè)計(jì)時(shí),需要權(quán)衡考慮,有如下策略可以選擇:
策略一:匯聚層優(yōu)先考慮可靠性、升級(jí)方便性,選擇M-LAG;接入層因?yàn)樵O(shè)備量大,優(yōu)先考慮業(yè)務(wù)部署和維護(hù)方便性,選擇堆疊。
策略二:優(yōu)先考慮可靠性、升級(jí)低風(fēng)險(xiǎn),匯聚和接入都使用M-LAG。
策略三:優(yōu)先考慮業(yè)務(wù)部署和維護(hù)方便性,匯聚和接入都使用堆疊。
評(píng)論
查看更多