再思考SDN(二)
來源:cnw.com.cn
作者:中興通訊中心研究院系統(tǒng)架構(gòu)部總工 汪軍
摘要: 集中控制還是分散控制(De-Centralized)是分布式系統(tǒng)設(shè)計(jì)中的一個(gè)關(guān)鍵的取舍,,取決于你追求的是可伸縮性還是全局解的優(yōu)化,,全局最優(yōu)解需要集中的控制點(diǎn)收集決策所需的完全信息,對(duì)于網(wǎng)絡(luò)而言,無法對(duì)拓?fù)湎嚓P(guān)信息垂直劃分為完全不相關(guān)的子集,,因此你不可能在兩個(gè)維度上都達(dá)到最優(yōu)。
關(guān)鍵詞:
SDN
軟件定義網(wǎng)絡(luò)
Abstract:
Key words :
集中控制還是分散控制(De-Centralized)是分布式系統(tǒng)設(shè)計(jì)中的一個(gè)關(guān)鍵的取舍,取決于你追求的是可伸縮性還是全局解的優(yōu)化,全局最優(yōu)解需要集中的控制點(diǎn)收集決策所需的完全信息,,對(duì)于網(wǎng)絡(luò)而言,無法對(duì)拓?fù)湎嚓P(guān)信息垂直劃分為完全不相關(guān)的子集,,因此你不可能在兩個(gè)維度上都達(dá)到最優(yōu),。在Internet的規(guī)模上,必須是分散控制的,。另外互聯(lián)網(wǎng)從來就不是一個(gè)整體,,而是由多個(gè)不同地域的商業(yè)主體運(yùn)營的,而互聯(lián)網(wǎng)業(yè)務(wù)是全球化的,,任何端到端的網(wǎng)絡(luò)解決方案落地都極其困難,首先要解決投資和收益主體匹配的問題,,而端到端的解決方案不是一蹴而就的,,后投資的能夠更快地獲得投資回報(bào),先花錢的有點(diǎn)為人做嫁衣的感覺,,因此也抑制了所謂的端到端解決方案的落地,,類似的例子不勝枚舉。比如NGN時(shí)代端到端的QoS方案;又比如LISP協(xié)議來解決路由擴(kuò)展性問題,,投資主體是接入的ISP,,而收益者是Tier 1/2的ISP,沒有人愿意花自己的錢解決別人的問題,。
SDN本身就是一個(gè)局部的網(wǎng)絡(luò)技術(shù)革命,,放大到全網(wǎng)的演進(jìn)就得面臨經(jīng)濟(jì)、技術(shù)上的雙重挑戰(zhàn),,個(gè)人理解對(duì)于一個(gè)分散控制的互聯(lián)網(wǎng),,引入SDN不過是將分布式系統(tǒng)的節(jié)點(diǎn)規(guī)模做得更大,如果你想擴(kuò)大它的內(nèi)涵,,引入更廣泛的SDN控制,,那么你要想想為什么互聯(lián)網(wǎng)要分自治域,為什么是IGP+BGP,BGP還要分iBGP,、eBGP,,還要引入路由反射器,為什么不是一個(gè)OSPF的單一區(qū)域,。也許SDN+BGP,,替代IGP是有技術(shù)可行性的,但是全網(wǎng)的演進(jìn)總是比預(yù)期的更為緩慢,。
回到SDN擅長(zhǎng)的領(lǐng)域:數(shù)據(jù)中心,。數(shù)據(jù)中心由來已久,Internet商用化后就存在,只不過在計(jì)算模式經(jīng)由MainFrame,、C/S架構(gòu),、P2P再回到中心化的云計(jì)算時(shí)代,數(shù)據(jù)中心規(guī)模呈爆炸式增長(zhǎng),,在虛擬化,、分布式計(jì)算技術(shù)解決了計(jì)算本身的部署、規(guī)模問題后,,網(wǎng)絡(luò)問題變得特別突出,。前幾年的數(shù)據(jù)中心網(wǎng)絡(luò)問題研究很多人拿虛擬機(jī)遷移說事,但是虛擬機(jī)遷移實(shí)際上是個(gè)小眾應(yīng)用,,畢竟虛擬機(jī)遷移需要大量的狀態(tài)復(fù)制,,跨存儲(chǔ)集群遷移時(shí)還要進(jìn)行持久存儲(chǔ)的復(fù)制,這是個(gè)投入產(chǎn)出比較低的活兒,,尤其是跨WAN進(jìn)行遷移,,簡(jiǎn)直拿資本家的錢不當(dāng)錢。
我個(gè)人認(rèn)為數(shù)據(jù)中心SDN帶來的價(jià)值主要有3點(diǎn):
1,、網(wǎng)絡(luò)的自動(dòng)化部署和運(yùn)維,、故障診斷。依賴于SDN的集中控制,、集中拓?fù)涮綔y(cè),,網(wǎng)絡(luò)設(shè)備完全可以做到即插即用,除了部署之外,,網(wǎng)絡(luò)故障設(shè)備的更換變?yōu)楹?jiǎn)單的硬件更換,。對(duì)于故障診斷,則依賴于控制器具有完全的轉(zhuǎn)發(fā)表項(xiàng),,應(yīng)用可以根據(jù)故障申告的業(yè)務(wù)報(bào)文做端到端的報(bào)文路徑靜態(tài)檢查,,也可以通過工具生成自動(dòng)化的測(cè)試用例,在控制面進(jìn)行灌包測(cè)試(與專門的測(cè)試儀表相比,,不受位置限制),,并且可以評(píng)估測(cè)試的覆蓋率,就如同軟件的代碼,、分支覆蓋率一樣;最后可以在控制面應(yīng)用上生成故障申告業(yè)務(wù)相同的報(bào)文頭部通過SDN控制器的報(bào)文上送,、下發(fā)機(jī)制進(jìn)行單步的檢測(cè),檢測(cè)到軟故障具體的流水線節(jié)拍,。
2,、虛擬機(jī)的按需部署,這在公有云,、混合云的環(huán)境下尤其有用,。今天大家已經(jīng)比較習(xí)慣于在電信運(yùn)營商營業(yè)窗口,、自服務(wù)頁面上辦理業(yè)務(wù)后,立刻收到短信通知業(yè)務(wù)已經(jīng)開通,,但是在早年,,這些業(yè)務(wù)開通涉及到營業(yè)、計(jì)費(fèi),、后臺(tái),、網(wǎng)管中心、LMT等系統(tǒng),,需要工單的流轉(zhuǎn)才能開通,,是以天計(jì)的。那么在今天絕大多數(shù)的數(shù)據(jù)中心中只要涉及到IP地址的分配問題,,仍然需要工單的流轉(zhuǎn),,這對(duì)于以虛擬機(jī)作為單位的主機(jī)托管數(shù)據(jù)中心,顯然是低效的,,尤其是虛擬私有云,、混合云,從業(yè)需求來看需要允許客戶自己規(guī)劃,、配置子網(wǎng)和虛機(jī)的IP地址,并支持按需啟動(dòng)/停用虛擬機(jī)和按使用計(jì)費(fèi),,從數(shù)據(jù)中心運(yùn)營效率來看,,需要能夠自動(dòng)發(fā)現(xiàn)負(fù)載更輕的物理機(jī)器加載虛機(jī),這就要求網(wǎng)絡(luò)的地址是可以浮動(dòng)的,,并且可以根據(jù)客戶的指令實(shí)時(shí)生效,。前幾年大家推大二層的解決方案,大二層需要輔以802.1Qbg才是一個(gè)完整的解決方案,,而Overlay+IP組網(wǎng)無需升級(jí)硬件,,無疑性價(jià)比更高。如果要升級(jí),,則不如升級(jí)到SDN更為徹底,,你可以得到第1條所述的所有好處,另外你也不知道明天還會(huì)有哪些需求,,SDN提供了未來不升級(jí)硬件的承諾(當(dāng)然這些承諾也是靠不住的,,你不因?yàn)楣δ苌?jí),但更可能要因?yàn)樾阅芏?jí)),。保底地,,可以實(shí)現(xiàn)基于SDN的Overlay。
3,、動(dòng)態(tài)業(yè)務(wù)插入,,比如虛擬防火墻,、虛擬VPN網(wǎng)關(guān)等設(shè)備以VM形式動(dòng)態(tài)插入到轉(zhuǎn)發(fā)路徑上,并且可以根據(jù)業(yè)務(wù)流量的變化動(dòng)態(tài)增加/停用Virtual Appliance.這其實(shí)是在第二點(diǎn)的基礎(chǔ)上實(shí)現(xiàn)的,,只不過增加了應(yīng)用去感知,、控制業(yè)務(wù)邏輯實(shí)體。
vSwitch的性能很多人懷疑,,但是自從Intel推出DPDK后,,這個(gè)問題質(zhì)疑的聲音要少一些了,但是報(bào)文經(jīng)過vSwitch到VM引起的上下文切換開銷還是比較難以解決,,尤其是小報(bào)文為主的業(yè)務(wù),,將來應(yīng)該以智能網(wǎng)卡+SR-IOV為解決思路,vSwitch退化為本地控制面,。
至于流量可視化,,沒有SDN你能夠做到,有了SDN也不見得會(huì)實(shí)現(xiàn)更加容易,。租戶數(shù)量問題,,和SDN也沒有太大關(guān)系,關(guān)鍵是轉(zhuǎn)發(fā)面封裝格式中表達(dá)租戶數(shù)量的標(biāo)簽是多少位以及轉(zhuǎn)發(fā)設(shè)備據(jù)此生成的轉(zhuǎn)發(fā)規(guī)則,。
需要謹(jǐn)慎考慮,、評(píng)估的好處包括:
1、虛擬機(jī)遷移,,除了前面講的虛機(jī)遷移本身的成本外,,虛擬機(jī)遷移本身的SDN實(shí)現(xiàn)也是一個(gè)比較困難的問題。當(dāng)集群規(guī)模較小,,VM通信對(duì)端較少的時(shí)候,,一切都不是問題;當(dāng)虛機(jī)集群規(guī)模較大,比如Hadoop集群節(jié)點(diǎn),,one hop DHT節(jié)點(diǎn),、分布式文件系統(tǒng)節(jié)點(diǎn),數(shù)據(jù)庫節(jié)點(diǎn)等(當(dāng)然不一定建議這些節(jié)點(diǎn)用虛擬機(jī),,性能也是問題),,遷移時(shí)需要遷移VM所在節(jié)點(diǎn)的轉(zhuǎn)發(fā)表,還需要更新與之有通信關(guān)系的虛擬機(jī)所在邊緣交換機(jī)的轉(zhuǎn)發(fā)表,,這個(gè)問題的痛苦之處在于需要更新轉(zhuǎn)發(fā)表的節(jié)點(diǎn)數(shù)量是不可預(yù)知的,。我們?cè)谝苿?dòng)網(wǎng)絡(luò)網(wǎng)絡(luò)中往往不去更新對(duì)端的轉(zhuǎn)發(fā)表,而是在遷移終端所在的遷出網(wǎng)絡(luò)設(shè)備和遷入網(wǎng)絡(luò)設(shè)備之間建立一條中轉(zhuǎn)隧道用于流量的轉(zhuǎn)發(fā),,但問題是移動(dòng)網(wǎng)絡(luò)中的每一個(gè)會(huì)話周期都是短暫的,,因此這種中轉(zhuǎn)通道的生命周期是短暫的,不會(huì)給設(shè)備帶來太大的負(fù)擔(dān);而服務(wù)器集群中的通信會(huì)話周期是不可預(yù)知的,,并且中轉(zhuǎn)帶來的迂回流量開銷可能也是驚人的,。因此這是一個(gè)很難控制的過程,,尤其是在集群規(guī)模較大、業(yè)務(wù)繁忙的時(shí)刻,。
2,、細(xì)顆粒度的流量控制。理論上我們可以做到,,并且OpenFlow一開始就被誤解為基于流的轉(zhuǎn)發(fā)控制,。顆粒度越細(xì),需要消耗更多的轉(zhuǎn)發(fā)面和控制面資源,,更為糟糕的是在轉(zhuǎn)發(fā)面和控制面之間需要同步的信息就越多,。在移動(dòng)核心網(wǎng)的PCC架構(gòu)下,理論上是按照業(yè)務(wù)流進(jìn)行QoS的控制的,,需要和轉(zhuǎn)發(fā)面能力相匹配的本地控制面能力,,需要海量的TCAM來存儲(chǔ)通配流表,付出的代價(jià)就是高1-2個(gè)數(shù)量級(jí)的成本,,所幸的是移動(dòng)網(wǎng)絡(luò)的無線接入是瓶頸,,流量有限,如果在數(shù)據(jù)中心中應(yīng)用,,最好還是進(jìn)行粗顆粒度的流統(tǒng)計(jì)或者只對(duì)少數(shù)已經(jīng)預(yù)先識(shí)別的流進(jìn)行控制,。
從遠(yuǎn)期來看,DataCenter本身的效率和管理復(fù)雜度問題可能逐步成為解決方案的重點(diǎn),,可能由松散的系統(tǒng)逐步走向計(jì)算,、存儲(chǔ)、網(wǎng)絡(luò)統(tǒng)一控制的緊耦合體,,更加注重對(duì)不同計(jì)算實(shí)體調(diào)度的優(yōu)化處理,這是所謂的DataCenter As A Computer理念,,這其中,,裸CPU+Main Memory、存儲(chǔ)都可以通過融合網(wǎng)絡(luò)直接連接起來,,構(gòu)成一臺(tái)類NUMA(此處是針對(duì)外存而言)的超級(jí)計(jì)算機(jī),,而SDN控制下的網(wǎng)絡(luò)充當(dāng)其CPU和外設(shè)的交換矩陣。出于成本的考慮,,這一交換矩陣可能很難做到完全無阻塞的,,因此它需要一定的實(shí)時(shí)監(jiān)測(cè)和路徑重指派能力。這時(shí)候,,SDN已經(jīng)完全融入到DataCenter的管理控制系統(tǒng)之中,,和計(jì)算、存儲(chǔ)的調(diào)度完全融為一體,。
此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。