標籤:style blog http color io os ar 資料 sp
近期進階網路課的小組任務是在老師給定的範圍內自選方向主題研究並做展示報告。我們組選了sdn。原以為這東西會是工業界無人問津的概念化產品,Google了一下卻發現事實上sdn挺火的,因為它可能帶來的可擴充性,一些大互連網企業也在開始涉足相關的研發,比方Google呵Facebook。這裡簡要的梳理下我對SDN概念性的認識。
背景虛擬化的大趨勢
近年來,大資料、雲端運算興起,虛擬化技術的重要性越發突出。提到虛擬化,不得不提的是電腦行業裡的一句老話:
電腦世界的絕大部分問題都能夠通過分層的方法來解決
事實上虛擬化也能夠理解成一種分層的思想。就拿雲端運算這個應用情境來說,虛擬化的技術就是在原有的硬體-作業系統-使用者
層次中,增添了虛擬機器
這麼一層,變成了硬體-虛擬機器-作業系統-使用者
,用虛擬機器來管理硬體資源,添加?了動態調整硬體資源的語義。
縱觀電腦的發展曆程,各方面都能夠看到通過添加?類似的虛擬化層次來提高生產效率的案例。比方進階語言之於彙編,比方圖形介面之於命令列。這樣的加入?層次的解決方式,總是能讓問題得到更清晰的解決。
網路虛擬化
網路經曆了數十年的發展,現在在人們的生產、生活中發揮著巨大的作用。全球的網路拓撲結構結構錯綜複雜,有很多的自製系統組成。資料包從中國的一台PC機發出,訪問到美國的主機,需經過一系列的路由、轉寄,而經由的網路拓撲節點由層層網關、路由器支配,難於控制。一些組織,在架設自身的可擴充、大規模網路環境時,也相同遇到了拓撲結構複雜、難於維護的問題。
假設能剝離開網路的物理拓撲結構,將網路資源虛擬化,隱藏物理結構的複雜性,統一的進行邏輯層的管理控制,就能滿足多變的網路需求了。
SDN和OpenFlow就是一個這種解決方式。
OpenFlow和SDN
OpenFlow起源於斯坦福的Ethane項目。該項目試圖通過一個集中式的控制器,讓網路系統管理員能夠方便地定義基於網路流的安全控制策略,並將這些安全性原則應用到各種網路裝置中,從而實現對整個網路通訊的安全控制。受到此項目的啟示,斯坦福的老師和學生將Ethane的設計更一般化,將傳統網路裝置的資料轉寄(data plane)和路由控制(control plane)兩個功能模組相分離,通過集中式的控制器(Controller)以標準化的介面對各種網路裝置進行管理和配置。2008年,他們提出了OpenFlow的概念。
這樣的分布式的實現方式,讓控制平面能夠和轉寄平面物理的分離開,控制平面全然能夠執行在運算能力更強的server上,而不是路由器。OpenFlow協議則是分離的兩者之間的通訊協定。關於OpenFlow的技術細節,《虛擬化的逆襲:OpenFlow和SDN》一文中有簡明介紹。
基於OpenFlow為網路帶來的可程式化的特性,有研究人員提出了SDN即Software Defined Network(2009年)。在這個概念中,網路中全部的網路裝置被視為被管理的資源,以此抽象出一個網路作業系統(Network OS)的概念,這個網路作業系統一方面抽象了底層網路裝置的詳細細節,同一時候還為上層應用提供了統一的管理檢視和編程介面。SDN的架構細節,參見《SDN是生意 OpenFlow是技術》。
SDN和OpenFlow的關係,就像互連網之於TCP/IP協議棧。OpenFlow是SDN的核心協議,用於控制轉寄面裝置的控制轉寄。而SDN是上層的變成介面。
有觀點覺得,『OpenFlow是技術,SDN是生意』。近期對SDN唱衰的報道也證明了這樁『生意』的前途未僕。
SDN的發展
在雲端運算飛速發展的同一時候,SDN也喧囂塵上。Google,Facebook等大公司也結成了產業聯盟,來推動其發展。
但其現狀也並不是一片明朗:
依據IDC的研究結果顯示,在2013年,整個商業網路行業的市場價值為420億美元,當中將近一半來自2-3層網路交換器市場。SDN僅僅能產生約37億美元的價值(8.8%),並且要到2016年才幹達到這個數字。與早前的預測相比,IDC的預測數字有所添加?,但從整個網路行業來看,SDN仍然相去甚遠。
一方面,SDN的效能還有待改善,還有一方面,因為SDN的統一平台的思想,會帶來硬體裝置的同質化,威脅到廠商的利益,將會面臨來自廠商鎖定的阻力。《理性看待SDN》一文中有較具體的解釋。
儘管虛擬化能解放生產力,是大勢所趨,但就像功耗更大的複雜指令集在市場上戰勝了精簡指令集一樣,市場是殘酷的。僅僅能期待開源和開放的腳步不要停下。
參考
- 什麼是SDN(Software Defined Networking)? *
- OpenFlow/SDN本質論
- 軟體定義程式網路(SDN):是什麼,怎樣工作,為什麼重要
- SDN:仍處於起步階段
PS:歡迎訪問部落格新家http://biaobiaoqi.me
SDN:軟體定義程式網路