首頁 > 新聞 > 專家觀點(diǎn) >

數(shù)據(jù)中心2014:軟件定義的網(wǎng)絡(luò)

2014-12-16 13:35:26   作者:   來源:ZDnet   評論:0  點(diǎn)擊:


  軟件定義網(wǎng)絡(luò)(SDN,一般認(rèn)為是Software Defined Networking)在數(shù)年前興起,并迅速引起了軟件定義的風(fēng)潮,將軟件定義的理念應(yīng)用到各個領(lǐng)域,如:軟件定義計算(SDC,Software Defined Compute)、軟件定義存儲(SDS,Software Defined Storage),還有軟件定義數(shù)據(jù)中心(SDDC,Software Defined Datacenter)、軟件定義環(huán)境(SDE,Software Defined Environment)等等等等。

  為什么軟件定義的概念首先在網(wǎng)絡(luò)領(lǐng)域得到應(yīng)用呢?網(wǎng)絡(luò)和計算、存儲不同——實(shí)際上,計算和存儲非常相像,稍微大型的存儲設(shè)備都需要一定的運(yùn)算能力來實(shí)現(xiàn)相當(dāng)部分(如果不是所有部分的話)的存儲功能,因此它們的架構(gòu)實(shí)際上有很多相似的部分,這也是融合系統(tǒng)乃至超融合系統(tǒng)得以很快實(shí)現(xiàn)的原因:本質(zhì)上我們的(計算)服務(wù)器和存儲服務(wù)器沒有區(qū)別。

  實(shí)質(zhì)上說,所有的網(wǎng)絡(luò)設(shè)備都是在硬件上運(yùn)行網(wǎng)絡(luò)操作系統(tǒng),然而在過去數(shù)十年來,不管是硬件上,還是在軟件上,網(wǎng)絡(luò)設(shè)備的互操作性都很低,不同公司的產(chǎn)品具有不同的設(shè)置界面/命令行,而即使是同一公司的產(chǎn)品,不同的產(chǎn)品線可能也會具有不同的操作系統(tǒng)乃至操作界面。曾幾何時,配置網(wǎng)絡(luò)設(shè)備本身就形成了一個職業(yè):網(wǎng)絡(luò)管理員。有些糟糕的是,過去了這么多年,即使是最新的設(shè)備,也仍然需要使用效率低下的配置方法,至多是提供了載入配置文件的手段。-

  隨著數(shù)據(jù)中心規(guī)模的變大,網(wǎng)絡(luò)規(guī)模也在變大,而網(wǎng)絡(luò)設(shè)備的難以應(yīng)用和管理顯然是一個限制。而SDN——軟件定義網(wǎng)絡(luò)——最早就是為了解決這個配置的問題:通過一個集中的控制器,管理著多個特殊的交換機(jī),從而實(shí)現(xiàn)網(wǎng)絡(luò)控制、管理的功能。SDN架構(gòu)最早的設(shè)想是用于網(wǎng)絡(luò)安全領(lǐng)域,后來擴(kuò)展到通用網(wǎng)絡(luò)設(shè)備領(lǐng)域,并發(fā)展為OpenFlow規(guī)范。不管是原始的OpenFlow,還是后來興起的OpenDaylight、NFV或者ONSOS,這些典型的軟件定義網(wǎng)絡(luò)都具有相似的架構(gòu),它們都將網(wǎng)絡(luò)劃分為三個名字可能有所不同但功用相似的平面:Data Plane(數(shù)據(jù)平面)、Control Plane(控制平面)和Application Plane(應(yīng)用平面),并在控制平面實(shí)現(xiàn)集中式的控制器,從而提供給用戶一個快速的、統(tǒng)一的、方便的配置管理界面,更進(jìn)一步地,通過控制平面提供的API,用戶可以在應(yīng)用平面進(jìn)行開發(fā),從而實(shí)現(xiàn)全自動化的網(wǎng)絡(luò)架構(gòu)控制。

  顯而易見,全自動化的網(wǎng)絡(luò)配置和管理相對以往的命令行或者尋常的GUI配置方式是一個巨大的進(jìn)步。在出現(xiàn)之后,只經(jīng)過了數(shù)年,SDN就迅速成為了一股浪潮。到2014年為止,大部分傳統(tǒng)的廠商也已經(jīng)開始生產(chǎn)SDN相關(guān)的設(shè)備,并且很多軟件廠商也開始進(jìn)入這個市場——主要是Hypervisor廠商,因?yàn)镠ypervisor可以和虛擬交換機(jī)vSwitch結(jié)合,從而掌握了網(wǎng)絡(luò)與計算之間的邊界,可以很容易通過SDN實(shí)現(xiàn)復(fù)雜靈活的網(wǎng)絡(luò)功能。

  軟件定義網(wǎng)絡(luò)將更強(qiáng)大的計算屬性引入了網(wǎng)絡(luò)領(lǐng)域。在之前,網(wǎng)絡(luò)和計算設(shè)備(服務(wù)器)、存儲設(shè)備(存儲控制器/服務(wù)器)不一樣,從外觀上看,網(wǎng)絡(luò)設(shè)備有較大的硬件成分屬于網(wǎng)絡(luò)接口,并且,網(wǎng)絡(luò)設(shè)備最基本的功能就是進(jìn)行網(wǎng)絡(luò)傳輸。因此,對IO的性能、延遲要求比較高,因此網(wǎng)絡(luò)產(chǎn)品傾向于使用硬件來實(shí)現(xiàn)各種各樣的功能。通常,在不考慮SDN的情況下網(wǎng)絡(luò)設(shè)備的芯片內(nèi)部都會劃分Data Plane(數(shù)據(jù)平面)和Control Plane(控制平面),如加密等功能通過各種額外的數(shù)據(jù)平面硬件模塊來實(shí)現(xiàn),對應(yīng)的控制平面則采用較弱的RISC架構(gòu)CPU,如網(wǎng)絡(luò)芯片中曾占據(jù)統(tǒng)治地位的MIPS架構(gòu),以及現(xiàn)在家用芯片上盛行的ARM架構(gòu),和偶爾可以看到的PowerPC架構(gòu),還有一些廠商專有的架構(gòu)。一般來說網(wǎng)絡(luò)分層中越處于高層協(xié)議的設(shè)備,其CPU就會越強(qiáng),因?yàn)樾枰目刂七壿嫊蕉,簡單的L2交換機(jī)對CPU的需求很低,而處于L1的中繼器干脆就是個純硬件設(shè)備。

  總體來說傳統(tǒng)網(wǎng)絡(luò)設(shè)備是偏向數(shù)據(jù)包收發(fā)功能的硬件設(shè)施,到了軟件定義時代,網(wǎng)絡(luò)設(shè)備需要更多的計算能力來實(shí)現(xiàn)軟件部分的功能,也就是更偏向控制邏輯部分,例如要實(shí)現(xiàn)SDN架構(gòu)的南向API,在ONF中就是OpenFlow,在OpenDaylight中則更復(fù)雜,有OpenFlow,也有NETCONF/YANG等等,還要實(shí)現(xiàn)通過南向API接受SDN控制器發(fā)來的指令,總之,SDN中,即使是處于Data Plane的交換機(jī)等設(shè)備相比以往也需要更強(qiáng)大的計算能力,而處于Control Plane中的SDN控制器干脆就是一個(或者一組)運(yùn)行在服務(wù)器上的虛擬機(jī)。

  軟件定義網(wǎng)絡(luò)提供了一個使用通用服務(wù)器代替舊有的專用硬件的機(jī)會。軟件定義網(wǎng)絡(luò)并未要求數(shù)據(jù)平面的網(wǎng)絡(luò)設(shè)備一定要運(yùn)行在通用服務(wù)器上,不過使用通用服務(wù)器的好處就在于,它和計算服務(wù)器、存儲服務(wù)器可以是沒有什么區(qū)別的,或者甚至就是一樣的,因此它的成本可以相當(dāng)?shù),不管是CAPEX還是OPEX。通用服務(wù)器可以提供所需要的強(qiáng)大計算能力,來充分滿足Control Plane層的需要。在現(xiàn)下一些完全虛擬化的環(huán)境當(dāng)中,SDN的Data Plane通過虛擬交換機(jī)來實(shí)現(xiàn),實(shí)質(zhì)上運(yùn)行于Hypervisor當(dāng)中,Control Plane就是一臺虛擬機(jī),VMware vSphere/NSX、Hyper-V/Hyper-V vSwitch和KVM/Open vSwitch的方案都是一樣,大部分的較為復(fù)雜網(wǎng)絡(luò)功能都由通用的服務(wù)器擔(dān)當(dāng)了,需要的僅僅是一些二層的接入交換機(jī)。

  采用通用服務(wù)器的另一個好處是開發(fā)很簡單,這牽涉到了生態(tài)系統(tǒng)的問題,生態(tài)系統(tǒng)越大,那么開發(fā)成本(包括人員費(fèi)用)、維護(hù)成本以及管理都比專有系統(tǒng)要低。

  通過在《數(shù)據(jù)中心2013:硬件重構(gòu)與軟件定義》對軟件定義網(wǎng)絡(luò)的介紹,SDN可以讓網(wǎng)絡(luò)更加靈活、易于管理已經(jīng)沒有疑問了,使用通用服務(wù)器做Control Plane也已經(jīng)成為了廣泛的現(xiàn)實(shí),但最關(guān)鍵的問題還有一個:數(shù)量龐大的Data Plane設(shè)備。Data Plane需要性能,專有系統(tǒng)是為了專門的目的設(shè)計和優(yōu)化的,通用的系統(tǒng)則要面對著更廣泛的應(yīng)用,實(shí)際上是一個對“通用”這個目標(biāo)做的專門設(shè)計。例如,在四五年前,X86被認(rèn)為不適用于網(wǎng)絡(luò)架構(gòu)當(dāng)中的Data Plane部分,因?yàn)槠銲O能力很受限制。這有指令集的緣故,也有內(nèi)存接口、IO接口以及內(nèi)部處理邏輯的緣故。

  但是情況很快有了變化,從Nehalem-EP(至強(qiáng)5500)開始,英特爾的服務(wù)器處理器開始集成內(nèi)存控制器,從而提升了對IO的處理——因?yàn)镮O的處理牽涉到很多DMA(直接內(nèi)存存。粋網(wǎng)絡(luò)包的處理可能需要經(jīng)過多次存取內(nèi)存,因此這個改動提升了性能。到了Sandy Bridge-EP(至強(qiáng)E5),處理器開始對PCI Express總線進(jìn)行了集成,并將PCI Express總線升級到速率達(dá)8GT/s的3.0規(guī)范,這個特性被稱為Integrated I/O,這大幅度提升了IO性能,到了此時,使用x86平臺搭建的網(wǎng)絡(luò)設(shè)備已經(jīng)開始變得多了起來。

  但更重要的還是在于一套開發(fā)軟件:英特爾數(shù)據(jù)平面開發(fā)套件(Intel Data Plane Development Kit,即Intel DPDK),里面提出了很多改進(jìn)x86平臺在Data Plane數(shù)據(jù)平面的性能的做法,例如Polling模式,Cache管理等等,人們忽然發(fā)現(xiàn),x86的Data Plane性能其實(shí)也很可觀,現(xiàn)在已經(jīng)有如6WIND等的公司在DPDK平臺上進(jìn)行網(wǎng)絡(luò)功能的開發(fā)。

  軟件定義網(wǎng)絡(luò)并未要求使用通用服務(wù)器,但是使用通過用服務(wù)器是降低成本、更快速地建立軟件定義網(wǎng)絡(luò)生態(tài)環(huán)境的方法,在性能方面,DPDK這樣的思路已經(jīng)解決了很多問題,但還有更多的問題等待著去解決,本年度的數(shù)據(jù)中心技術(shù)研究報告中,將會對這些問題進(jìn)行進(jìn)一步的探討。

分享到: 收藏

專題