一些人可能認為,就具體效果而言,軟件定義網絡 (SDN) 受到了人們過多的關注。在 SDN 的早期,部署的出現源自于領先研究機構與快速定制其現有非 SDN 固件的硬件公司的共同不懈努力。盡管這些工作驗證了 SDN 的理論,但概念證明階段的 SDN 與專門針對全球精心策劃架構的生產網絡實施的 SDN 之間仍有很大差別。
在 Corsa Technology,我們與網絡架構師和運營商一起制定了 SDN 的愿景。他們一遍又一遍地告訴我們,正確實施的 SDN 意味著您的網絡架構將實時改變和適應流量模式和用戶需求。這一靈活性以傳統成本的一小部分實現了性能的大幅提升。
以這一理念作為指導原則,Corsa 將 SDN 定義為簡單設計模式。很多其他公司也認同這一基本概念:將軟件與硬件分離,通過開放接口進行通信,給予軟件所有控制權(大腦)并讓硬件(體力)盡可能地高性能。但是在 Corsa,我們從性能硬件的角度進一步認真研究了網絡新世界秩序需要(圖 1)。
我們提出的硬件定義與網絡架構師的SDN愿景不謀而合。我們將其稱之為“精益硬件”:規模適合部署,具有超高性能,并且靈活性和可擴展性極高,即便是最大網絡流量,也能輕松應對。如果僅需要約 10% 的功能,為何要購買龐大且昂貴的大型機器?相反,如果硬件的靈活性和可編程性足夠,則您可以對其進行調整和修改以滿足特定網絡需求。無論是在 WAN 邊緣還是園區邊緣,同一精益硬件可以在您的網絡中肩負著各種元件的作用。
正確實施的 SDN 使您可以擺脫本地、苛刻、固定式、復雜、專有硬件和軟件的束縛。簡單設計模式中 Corsa 的性能 SDN 可幫助您通過靈活、高性能、可擴展硬件平臺實現軟件定義網絡。
重重壓力下的硬件設計
這種靈活的 SDN 網絡概念對于網絡硬件設計必須如何變化有著直接影響。得益于新的創新,SDN 網絡架構可能快速變化,因此 SDN 硬件解決方案的上市時間比以往變得更為重要。
硬件平臺是系統設計、板級別設計、機械設計與 SoC 選擇或設計的組合體。通常,在 SDN 等新興市場中,SoC 無法以商用芯片的方式提供,并且硬件解決方案需要采取 ASIC、NPU 或 FPGA 途徑得以實現。對于 SDN,鑒于其網絡變化的節奏,我們很難做出決策。
使用定制 ASIC,通常需要三年時間才能完成網絡硬件的設計、構建與實現工作:六個月的時間進行硬件選型和架構;一年時間進行 ASIC 設計;四個月時間進行開發板設計和制造;十二個月時間進行軟件集成和測試。如果所有流程一次性通過,便可實現上述結果。
對于 Corsa,這種時間優先的原型設計方式不可接受。
另一方面,網絡處理單元 (NPU) 是一種專為網絡應用而設計的可編程商用芯片。盡管它們的確具備高靈活性并且可以重新編程,但它們的帶寬有限,這對于大規模交換功能是一大障礙。它們還提供了復雜的專有編程模型,很難更改。由于 SDN 需要全面的靈活性、高性能和大規模,我們同樣排除了 NPU。
為通過適當的解決方案滿足 SDN 上市時間需求,Corsa 選擇了 FPGA,并且利用賽靈思 Virtex?-7 器件的靈活性,用六個月時間開發了一種解決方案。
利用 FPGA 進行設計,我們可以并行進行以下工作(請參見圖 2):
? 系統架構(四個月)
? RTL 代碼編寫(六個月)
? 軟件設計(六個月)
?PCB 設計和制造(四個月)
一個重要的事實是,我們可以在 FPGA 平臺上即時修改 RTL,同時各種設計活動繼續進行并針對性能和規模進行優化。
增量設計的優勢
我們采用基于一系列 FPGA 的 Slice 來開發我們的系統架構。這種方法能夠開發出具有最小可行特性的單個 Slice,同時為全特性集留下預算容量。不需要像通過基于 ASIC 或 NPU 的方法那樣預先全面設計整個架構,然后再遷移到 RTL 中。因此,我們可以與系統并行開發工作碼,并能夠更加快速地交付給領先客戶。
并非每一個用例或應用都需要所有功能。通過利用 FPGA 的硬件級可編程性,我們可以創造更小的 RTL 實現,這些實現與特定用例所需要的功能集和性能相匹配。在設計期間甚至是在現在,可以取代 10G 和 100G MAC,將資源從交換架構轉移到分類引擎,以及添加或移除用于特定協議的硬件加速功能。相比 ASIC 或 NPU ,這一靈活性有助于減少門數,進而縮減物理封裝尺寸。它還使我們可以回應那些一旦客戶參與就會必然出現的無法預見用例。序列設計通常會導致出現先有雞還是先有蛋的定義難題,即:完全指定 ASIC 或 NPU 要求,但是在產品到達實驗室之前,沒有詳細的客戶參與。
SDN 交換設計
SDN 表示就有關如何構建網絡設備方面與傳統觀念分道揚鑣。SDN 的一項關鍵要求是,較之于傳統的固定功能硬件,可重編程硬件在構建和銷售方面極富競爭力。發揮這一理念,SDN 為網絡推出方式帶來革命性變化。傳統網絡設計的原理現在可以顯著改進。
以下是激起人們對 SDN 的關注的三個主要因素。
1. 用于解決新網絡問題的新網絡協議的速度
一項新的網絡協議至少需要三年時間才能完成其標準化流程。還需要兩到三年時間在硬件中實現,然后才能最終部署。通過 SDN,新協議是通過軟件實現,并且幾乎是立即部署在安裝的系統中。這將周期從五年降至短短數月。
2. 基于開放硬件平臺,創新網絡創意的精英化
標準更注重策略而非技術。經各方爭執和修改,最終的規范是代表各方立場的妥協版本。在此過程中,實力較小的一方通常被忽略或無視。通過 SDN,任何人都可以制定協議并供行業使用。如果運營商看到優勢,協議便會繁榮發展,否則便會消亡。要讓最佳技術理念取勝,這種“適者生存”的方法是更加可靠的選擇過程。
3. 針對尚未開發的協議,通過現場升級來復用基礎設施
每年在新網絡設備方面的花費達到了數十億美元。這些設備的生命周期是三到五年。在購買設備時尚未開發的任何協議或功能通常必須等待三到五年,直到設備更新后方可使用。通過 SDN,新協議很有可能能夠立即部署在現場的設備中。將設備的生命周期延長到超過五年已成為現實,同時為即將出現的新功能提供即時可用性。
FPGA 對比 ASIC
為增強競爭力,SDN 交換要求高性能、靈活性和大規模,這些要求都以價格合理的套裝形式提供。傳統觀念認為,需要固定功能 ASIC 才能構建此類有競爭力的系統。這在 28nm 技術節點出現之前的確如此。但是,在 28nm 及之后,
FPGA 已經達到了顛覆性規模。它們不再是用于膠合邏輯的大型 PLD 器件。相反,它們終于實至名歸,不負上世紀九十年代早期賦予它們的“現場可編程門控陣列”這一稱號。
FPGA 技術現在的性能、靈活性和可擴展性如此之高,足以滿足網絡架構師所需的 SDN 屬性列表要求。首先 IP 庫、存儲器和 I/O 等一些關鍵方面凸顯了 FPGA 技術會給 SDN 帶來明顯優勢。
就 IP 而言,已經使用 FPGA 中的標準單元實現了基本網絡功能。其中有大型模塊,包括數十個 10/100G 以太網 MAC、PCIe? 接口、Interlaken 接口、嵌入式 ARM? 內核和 DDR3 接口。這些 IP 核為 SDN 交換機設計師提供了大量預先設計和預先優化的模塊。
在網絡設備中,規模很關鍵。有助于形成規模的一個特定方面就是存儲器,對于包交換,需要大量小型存儲結構。這些存儲結構提供的帶寬和容量,可支持 TB 級或更多流量輸入輸出處理單元。FPGA 存儲器進行了優化且占用芯片面積最小,因此有助于實現 TB 級路由規模。
就 I/O 而言,網絡需要大量串行解串器接口,每個接口均包含大量模擬組件、功率放大器和數字邏輯。I/O 專用芯片面積可能過多。FPGA 技術具有卓越的 I/O 模塊,就其芯片面積占用而言,能夠與網絡 ASIC 媲美。
在對芯片面積增加了上述促進因素以后,顯然可以看到,基礎 FPGA 技術以最佳方式至少將 ASIC 的復雜度降低一半,另外 50% 或更低的芯片面積可考慮用于 CLB 或標準單元。鑒于銷量相對較低的網絡 ASIC 業務的價值定價(10 萬套被視為大數量),任何差價都會水落石出。
這對于 SDN 則意味著我們突然擁有了一個現場可編程的高度可編程平臺,以支持先前需要百萬美元 NRE 和巨大 ASIC 開發的多種系統。這類似于在所有書籍需要用羽毛筆和墨水瓶書寫一次的時代發明了印刷術。
Corsa 的性能 SDN
在 Corsa,我們認識到,網絡市場中有兩種顛覆性的趨勢。第一種是對可編程網絡元件的渴望;第二種是 FPGA 作為固定功能芯片替代品的出現。因此我們開始了設計理想的 SDN 交換機的任務。圖 3 中顯示了此類設備的系統架構。
高性能 SDN 交換機有兩個組件。其具有性能很高的包分類引擎,這是交換機結構的先驅。分類器在 OpenFlow 規范中定義為一系列匹配操作表,這些操作表檢查包報頭并根據包中各種協議的源和目標字段來制定轉發決策。一旦制定了轉發決策,包進入第二個組件:能夠緩沖和交換 TB 級數據的高速交換機結構。
這些數據速率所必需的帶寬和容量對于性能 SDN 交換機的物理架構有著顯著影響。這些交換機需要 100ms 或更多的包緩沖,以在大量聚合點中(比如在 WAN 或園區邊緣)存在流量堵塞的情況下保持高吞吐量。對于 640 Gb 的前面板帶寬,可用以下計算得出:
640 Gbps * 0.1 s = 64 Gb 包緩沖存儲器
對于 Corsa,這是使用 FPGA 脫穎而出的地方。實現性能 SDN 所需要的存儲密度的唯一存儲技術是 DDR3 存儲器。在 28nm 中,DDR3-1600 是最快速的存儲器。為了以全線路速率寫入并讀取每個包,我們需要 1.28Tb 的存儲帶寬。在考慮了訪問效率低下這一因素之后,單個 DDR3 DIMM 模塊能夠處理約 64Gb 的流量。這意味著我們需要 10 個 DDR3 DIMM 模塊才能為 Internet 規模的 SDN 交換機提供包緩沖。
由于單個 FPGA 無法托管如此多的 RAM,因此導致我們立即通過每個 FPGA 大約三個 DIMM 來尋求分布式架構。我們隨后增加了額外的內存容量和帶寬以存儲 OpenFlow 流水線的包分類數據,如 IPv4 地址、MAC 地址、隧道 ID 等。這為我們帶來了每個流水線兩個 FPGA 的通道實現方案(每個流水線六個 DDR3 DIMM)。流水線通道與通過架構 FGPA 構建的定制交換機結構綁定在一起,并且控制層通過具備 PCIe 3.0 連接的 Xeon 處理器綁定到包轉發引擎(圖 4)。
這種設計為我們提供了大量門控,海量的存儲帶寬和容量以及超高速的控制層連接。利用 OpenFlow 的靈活性,Corsa 構建了用于 Internet 協議規模的路由器、MPLS 交換機、100-Gig 防火墻和 DPI 負載均衡器的線路速率處理引擎,以及眾多其他網絡用例,絕對無需修改硬件架構,且不影響性能。我們看到網絡功能虛擬化 (NFV) 服務鏈的出現令人有些滿意;網絡服務報頭和協議仍在草擬之中。
規模、性能和靈活性
可編程網絡是未來之路。網絡運營商從服務速度、基礎架構重用及其通過 DevOps 管理復雜性的能力等方面看到了優勢。在對可編程網絡元件新興需求的同時,FPGA 正將性能和規模推到全新的高度。在 Corsa,我們認識到這一交會點并在我們的 SDN 硬件平臺中使用 FPGA 來實現 SDN 規模、性能和靈活性。
在固定功能廠商繼續多年來等待標準、制造 ASIC 并延遲其產品上市的老路的同時,Corsa 能夠立即通過我們交付的新系統部署這些新協議。更好的是,由于使用賽靈思 FPGA,我們可以將以前交付的系統升級以支持未來開發的協議。
圖 1– SDN 將包轉發數據層與控制層隔離。
圖 2 – Corsa 的基于 FPGA 的設計周期比典型 ASIC 設計周期明顯縮短。
圖 3 – 高性能 SDN 交換機的兩個主要元件元素是能夠進行包分類的引擎和快速交換機結構。
圖 4 – Corsa 的高帶寬和高容量系統架構具有基于 FPGA 的流水線和交換機結構。
評論
查看更多