顏敏玲 鄭 蕾 陳慶春
西南交通大學 成都 610031
隨著大數據時代的來臨,如何高效地計算和存儲數據成為未來網絡計算需要解決的關鍵問題。云計算是在并行處理、分布式計算、網格計算等技術基礎上逐步融合發展起來的網絡計算技術。根據美國國家標準和技術學會(NIST)的定義:云計算是一種為隨時隨地、方便、請求即響應(on-demand)地訪問可配置計算的共享資源池(比如:網絡、服務、存儲、應用)的一種計算模式,這種模式可以減少用戶在快速獲得和釋放資源時與服務提供者的交互和管理開銷[1]。在云計算模式下,用戶終端設備將會變得非常簡單,因為用戶只需要發送請求便可以使用由云服務提供商提供的計算資源、存儲空間和其他應用軟件等,此時用戶不再需要購買產品而是直接購買服務[2]。云計算之所以發展如此迅速,最主要的原因就是遵循了“按需計費”的原則,用戶訪問由軟硬件、存儲設備等組成的資源池時不需要了解資源池的物理位置及具體的相關技術。
云計算技術具有經濟實用、高擴展性、高可靠性、方便快捷和按需服務等特點。近年來,云計算技術應用越來越廣泛,將云計算應用于移動通信系統的基帶云(云蜂窩)可以有效解決高速移動終端(如高鐵)的頻繁切換問題[3]。但是傳統的云計算網絡中仍存在許多問題,比如:在云計算中,用戶需要配置不同的網絡層結構,如交換機、子網、訪問控制列表(Access Control Lists,ACLs)等,以供云應用使用。若能提出一種具有高度自動化連接性能的服務級網絡作為云計算的一部分,這個問題便可迎刃而解。作為一種新興的網絡技術,軟件定義網絡(Software Defined Network,SDN)通過將控制層與數據層分離,在控制層向用戶提供編程接口,使得用戶能夠根據自身需要,通過編程來實現對網絡的動態監測和管理,同時,實現網絡資源動態且靈活的調配[4];因此,SDN被認為是解決當前云計算問題的有效方法。其主要平臺架構如圖1所示。

圖1 基于SDN云網絡的云平臺架構
云計算的主要目標是充分地利用分布式資源,以提高系統的吞吐量,處理大規模復雜的計算。資源虛擬化和資源池化是云計算技術的兩項關鍵技術。資源虛擬化將系統中的服務器虛擬為多個性能可以自動配置的虛擬機,以方便對集群系統中的虛擬機進行管理,在此基礎上可以進一步通過虛擬機在線遷移技術實現負載均衡。采用資源池技術,系統中的網絡、服務、存儲、應用程序等資源都以共享資源池的形式進行統一控制和管理,并通過資源虛擬化計算將系統中的資源共享給所有用戶,而資源池中資源的管理、控制和部署對最終用戶來說都是透明的[5]。
云計算架構是指建立在可編程基礎設施之上、基于統一的運行管理平臺,按需進行資源分配的一種網絡架構。整個云計算系統在邏輯上通常被分為前端和后端兩個主要部分,前端是用戶可以直接看到的部分,后端是云系統,兩部分通過網絡互連[6]。前端通過用戶的終端設備和應用請求接入云,后端通過大規模的服務器、數據存儲等設備來處理整個云計算系統的業務。一個云計算系統可以根據一定的規則(比如:協議/中間件)來對整個系統的流量和用戶請求等進行管理。常用的三層云計算架構如圖2所示[7]。

圖2 云計算服務架構示意圖
1) 軟件即服務(Software as a Service,SaaS)。服務供應商根據用戶的服務請求提供現成的應用,用戶通過客戶端接口(Web瀏覽器或應用程序接口)接入云基礎設施中的應用,而不用控制底層的應用設施(硬件、網絡、服務器、操作系統等)。SaaS層主要的特征是網絡接入和計費管理,主要服務包括SalesForce、DocLanding、Zoho等。
2) 平臺即服務(Platform as a Service,PaaS)。這一層利用云基礎設施提供計算平臺,該層具有客戶請求的所有典型應用,因此,客戶沒有必要再去購買或者安裝所需的軟硬件設備。云平臺可以控制管理系統中所有軟件的生命周期,以便于網站應用程序的開發、測試和管理,常用的PaaS包括GAE、Azure等[8]。
3) 基礎設施即服務(Infrastructure as a service,IaaS)。在這一層中各類軟硬件都被封裝成超大規模的資源池,為用戶提供所需要的服務。IaaS對外提供各類服務的同時對內進行資源的優化管理,因此,其核心是資源虛擬化技術。各個公司紛紛推出各自的IaaS,比如亞馬遜的EC2和S3,以及IBM的藍云等[9]。
基于這三種服務架構,云計算相應的部署類型主要有私有云、公共云、混合云以及社區云四種,不同的部署類型應用于不同的場景。
云計算是一種新型的快速、高效、面向高密度數據中心的計算模式,它包含許多獨特的核心技術,如數據存儲、管理策略以及程序接口框架等[2]。
云計算的程序框架必須非常簡單,以保證復雜的并行計算模型和任務調度對用戶和程序員一目了然。這樣用戶就可以把精力投入到自己的算法模型中,而不用去關心算法的具體實現。
云計算一般采用Hadoop中的MAPREDUCE的編程框架,現在很多IT公司提供的與“云”有關的計算工具都建立在MAPREDUCE的基礎上。MAPREDUCE可以處理和計算大數據,程序員只需在MAP中指定需要處理的數據塊,然后在REDUCE中減少指定塊的中間結果;用戶只需要在MAP和REDUCE中寫好自己對應的分布式程序或算法即可。當用戶提交MAPREDUCE代碼給集群后,具體如何進行分塊、任務分配和調度都不用用戶干涉,全由系統完成。同時,系統還會自動處理節點失效與節點間通信等問題。
分布式數據存儲技術包括分布式文件存儲系統、分布式對象存儲系統以及分布式數據庫技術。
1) 分布式文件存儲系統。普通的單節點文件系統將文件都存儲在一個磁盤上難以滿足大數據的存儲要求。首先,對文件的訪問受磁盤IO流的限制,無法實現快速的文件訪問;其次,磁盤損壞將導致整個文件的丟失;最后,高容量的磁盤單位存儲量價格昂貴;因此,為方便存儲和管理云計算數據,Google發布了分布式文件系統(Google File System,GFS)。GFS的每個節點由廉價的PC組成,采用服務器/客戶模式,可以通過增加服務器實現高并發、大存儲量、大吞吐量,有效避免少量節點故障且能快速恢復。多副本方式能有效防止文件因單點故障導致無法及時訪問或丟失、損壞等問題。
2) 分布式對象存儲系統。由于傳統的OSD文件系統底層只存儲數據塊,而其元數據是單獨進行存儲管理,這種數據塊和元數據分離的特點使得數據不能跨平臺共享。分布式對象存儲系統存儲的不再是單純的數據塊,而是包含用戶數據和數據屬性的“數據容器”。數據屬性包含所存數據的相關信息,這表明可以使用更少的元數據來保持所存數據對象的一致性,從而使得跨平臺數據共享成為可能。由于存儲的對象是智能化、封裝得更好的塊,是“文件”或其他應用級邏輯結構的組成部分,文件與對象的對應關系由上層直接控制,對象存儲設備本身也可能是個分布式的系統;因此,使得其在面對大數據時仍能夠方便地擴展和共享平臺數據。
3) 分布式數據庫系統。相對于傳統的集中式數據庫系統,分布式數據庫系統可以有效利用云平臺上的分布式文件系統存儲和管理文件。而且,網絡中的每個結點具有獨立處理的能力,具有高度的自治性,它可以執行局部的應用程序,分散檢索和數據處理的負載,提高數據處理的能力。在云計算中很多應用雖然沒有非常復雜的SQL查詢語句,但一般都支持“鍵值”對數據格式更復雜的查詢語言,分布式數據庫系統能更好地滿足其需求。Google的BigTable就是一種典型的分布式結構化數據存儲系統[10]。
對于數據管理技術,如何提高數據庫管理性能是云計算最關鍵的問題。數據庫管理系統應該具有高效率、高容錯率的特點,并同時能在異構的網絡環鏡下運行。并行計算模型是一種通用的提高大數據處理能力的解決方案。云計算中的并行計算模型屬于互聯網數據密集型應用程序的并行編程模型。在云計算環境中,數據應該是分布式地存儲在各個數據節點上,而計算也應該是并行的。
虛擬化技術可以實現資源具體軟件和底層硬件的分離。采用虛擬化技術可以將資源分成很多虛擬塊,也可以將許多的虛擬資源塊整合到一起。根據虛擬化的對象,虛擬化技術可以分為存儲虛擬化、計算虛擬化、網絡虛擬化等。計算虛擬化可以進一步細分為系統虛擬化、應用虛擬化和桌面虛擬化。資源的邏輯抽象和統一表示都可以通過虛擬化技術實現,計算資源可以被整合或分到更多的操作系統中去,為上層云計算提供支撐。
云計算資源管理技術可以根據用戶的請求動態分配計算資源,有效提高分布式資源的檢索。為此,可以采用基于結構化覆蓋的資源索引框架,為每個分布式的節點建立起本地索引[11],以此加快整個數據的檢索速度。本地檢索資源的整合即為整個系統的檢索。云計算基礎設施包含許多電腦和服務器,如何有效地整合資源、降低運營成本和節約能源是云計算資源管理技術中的一個關鍵問題。
云計算安全是用戶所特別關心的問題,如何保持數據的完整性、防止用戶數據泄露是云計算安全的內容。
在云計算環境下的數據存儲安全是用戶最為關心的問題,用戶數據的丟失和泄露將會給企業來帶來極大的風險。
1) 基于地理環境的副本策略。將數據存儲在不同的位置中,分散由于地質、意外事故帶來的風險。將多個副本存儲在不同的地理位置,能及時更新所有節點的數據并恢復失效的節點,保證其一致性。
2) 數據的永久性刪除。將用戶希望永久刪除的數據進行永久刪除,保證數據無法再進行恢復。
3) 不同用戶間數據的保密性。對于企業級平臺,可能存儲了不同用戶的數據,需嚴格控制不同用戶的訪問級別和訪問范圍,將不同用戶數據存儲在不同節點,將數據進行強制的隔離可增加用戶數據安全。
用戶接口和應用安全問題也是云計算比較突出的安全問題,給用戶暴露過多的安全接口可能給一些惡意用戶帶來攻擊平臺或其它用戶的機會。同時,對用戶使用的資源應該有所限制,如果單個用戶使用的資源不斷增加,勢必會將平臺的資源耗盡甚至崩潰。此外,還需保證不同平臺應用之間的安全隔離,防止不同應用之間資源的泄露帶來數據安全問題。
在云環境中,各個應用的訪問域或級別不同,當用戶在不同的域間進行資源訪問時,需要減少頻繁的身份驗證,此時也需保證用戶數據的訪問安全,防止在跨級別或區域資源訪問時發生數據的泄露;因此,需在資源區域邊界設置認證服務以保證訪問安全。同時,需要對訪問者的身份進行集中管理,防止用戶身份頻繁切換帶來管理混亂和安全問題。
由于云計算具有相當大的發展優勢,各類云計算業務發展迅速,越來越多的應用和數據集中到云端,導致云數據中心的規模急劇增大。傳統的網絡架構和技術已經難以適應云計算的發展,如多租戶網絡隔離、地址復用、虛擬專有云(VPC)、流量控制、自動化網絡配置等[8]。而軟件定義網絡(SDN)作為一種新興的網絡技術被認為可以有效地解決云數據中心存在的問題。
SDN首先是由美國斯坦福大學Clean Slate研究組提出的一種新型網絡架構,其目的是提供一個開放的、用戶可自行進行控制、管理和轉發數據的平臺。SDN將數據層從控制層中分離出來,控制層可以通過路由或者交換機將請求下發給數據層。通常情況下,數據層中的交換機可以獲知所需要推送的數據信息,并根據控制器發出的命令對數據進行推送,因此,交換機無需執行控制功能[12]。SDN提供了一個可編程接口,該接口使得云平臺根據云應用配置底層網絡,使云應用與底層網絡進行緊密銜接成為可能[4]。SDN的主要思想是允許軟件開發者利用網絡資源進行計算和存儲。在SDN中,網絡邏輯上被集中在軟件控制器(控制層)上,網絡僅需要實現包轉發的功能(數據層),該功能可以通過對開放接口進行編程實現,這就是SDN的可編程控制架構。
在SDN的實際應用中存在著許多協議標準,例如OpenFlow[13]。OpenFlow可以使SDN的概念在軟硬件上都得以實現,它支持通過利用現有的硬件設備去設計并分析、測試新的協議。如圖3所示,OpenFlow中最主要的部分是控制器(Controller)和OpenFlow交換機,這兩者聯合起來共同完成報文轉發。OpenFlow控制器可以與OpenFlow交換機進行通信并通過OpenFlow協議控制交換機。一個OpenFlow交換機由多個普通流表、一個組流表和一個OpenFlow通道組成。每一個普通流表都有流入口可以和控制器進行通信,而組流表可以配置流入口,OpenFlow交換機通過OpenFlow端口互連。

圖3 OpenFlow交換機
SDN將傳統網絡上的控制層和數據層分離開來,網絡路由和交換機只需要根據控制層制定的規則轉發數據。圖4給出了SDN網絡的邏輯架構,其中包括4個SDN接口(東/南/西/北向接口)[14],3個自治系統(Autonomous System,AS),即用戶端的傳統WAN,基于SDN發送的WAN和SDN數據控制中心(云計算)[15]。

圖4 SDN網絡架構示意圖
1) 南向接口。該接口即控制層和數據層之間的網絡接口,通過該接口可以控制外部網絡的執行。其功能通過執行硬件定義的標準化指令集來實現,比如通過IETF For CES協議和OpenFlow協議實現。
2) 北向接口。該接口是SDN控制層和應用層之間的接口,通過該接口網絡頂層中應用可相互交換信息,實現可編程控制的網絡架構。和南向接口不同的是,北向接口沒有標準化的協議,在信息交互過程中,交換的形式主要由網絡和交換的目標應用所決定。
3) 西向接口。作為SDN控制層和其他網絡區域的信息交換渠道,該接口通過網絡狀態信息的交換來主導控制器的路由決策,并同時實現多個網域網絡流的無縫交互。為實現信息的流暢交互,西向接口通常采用標準化的域間路由協議,比如BGP云等。
4) 東向接口。該接口可實現與非SDN網絡中的其他控制層之間的通信。比如通過東向接口,可與多協議標記交換(MPLS)控制層進行通信。這個接口功能的實現主要依賴于非SDN網絡中所采用的技術,從實現上來說,需要一個SDN和傳統技術之間的轉換模塊來實現兩個網絡之間的相互兼容。
隨著云計算技術的飛速發展,越來越多的應用和服務向云平臺上遷移,這也使得云平臺提供的服務向各個領域擴展,而不再局限于基于虛擬服務器、云存儲以及云計算,云平臺的網絡也成為其提供服務的一部分。而且隨著“云”的負擔越來越重,網絡在云平臺扮演的角色也越來越重要。現有大部分的云平臺中,其底層提供的網絡服務是“私人定制”的,當需要提供不同的頂層“云”應用服務時,便需要用戶再次手動配置底層網絡(例如網關、子網劃分、訪問控制列表、防火墻等)以適應頂層的應用。這些特點使得云平臺面對不同的應用時表現得不夠靈活。
為彌補這些缺陷,Amazon推出的AWS可以提供基于IP連接服務器的“虛擬私有云”服務。Openstack云計算開源云也在往云網絡發展,Openstack Quantum項目的成功使其成為云平臺的一部分。然而,AWS和Quantum的用戶都需要面對網絡層的配置問題,而這些對應的網絡結構配置依賴于當前的云平臺負載情況和虛擬服務器組等。最近,Mohammmad和Banikazemi等人提出一種基于SDN的云平臺網絡架構—Meridian云網絡平臺架構[16],該架構主要包括如圖5所示的四個邏輯層,即應用層、應用接口層、網絡適配器層和網絡設備層。
1) 應用層。Meridian的SDN架構是為與網絡交互和控制底層網絡而生的。應用層是云計算的目標層,底層全部為應用層服務,應用層支撐起大數據。在應用層有直接控制底層網絡的應用接口,如路徑優化函數調用、網絡接入控制、網絡流量的監控等,這類應用主要是直接和底層網絡進行交互,簡單地操作底層網絡,可以說是底層網絡和頂層應用的直通道。還有一類應用主要是一些更高級網絡的操作集合,像云集成、網絡底層的私有網絡規劃、虛擬服務器網絡的自動部署、防火墻的設置等。這一大類的應用比第一類應用更抽象,是眾多網絡控制操作的集成。

圖5 Meridian云網絡平臺架構示意圖
2) 應用接口層。其主要目的是為上層的應用層開放接口,使上層應用能夠操作底層的網絡,在整個架構中扮演網絡“代理”的作用,在該層可以設置安全訪問機制,屏蔽一些非法網絡操作,只開放一些允許頂層操作的網絡接口,并允許頂層與虛擬機的邏輯連接與控制。
3) 網絡適配器層。它在整個網絡架構中起的作用非常關鍵。首先,它承接上面的邏輯層和下面具體的網絡物理層,必須將上層命令轉換為下面網絡層可以識別的操作。例如,要創建私有的虛擬網絡,則底層的網絡必須從已有的網絡中創建對應的子網,并分配相應的子網號,提供子網連接的出口等操作。在這些過程中,由網絡適配器層對頂層的簡單命令進行識別并“翻譯”成底層網絡可以識別的操作命令集。其次,網絡適配器層位于網絡層以上,它必須對底層的網絡結構有一個全局的把握,能夠為上層提供網絡結構模型,以獲得最佳的路由策略。同時,還能反映網絡結構的動態變化,使用戶能夠根據當前網絡結構進行配置和操作。
4) 網絡設備層。它位于整個網絡架構的底層,直接驅動底層的網絡設備,能實現對現有的網絡設備進行即插即用、全面兼容。以便靈活兼容不同類型的底層網絡硬件,能靈活滿足頂層的應用和移植整個網絡架構的需要。
顯然,Meridian云平臺網絡架構采用了軟件定義網絡(SDN)技術,將底層的網絡與上層的應用通過可以編程控制的網絡適配器層進行隔離,由用戶編程實現底層的網絡架構而無需關心上層的應用,而且,可以將底層的網絡劃分成多個私網,以同時滿足不同的上層應用,實現底層網絡結構的透明化。
與傳統的云計算平臺相比,基于SDN的云網絡平臺架構具有很多優點。首先,基于SDN的云網絡平臺架構可以使各個云供應商更方便地部署不同廠家的設備。傳統上,大的云提供商比如谷歌、亞馬遜等都需要從同一個廠商購買高性能的交換設備,以便更容易地重置路由參數,比如路由表更新周期等。而由于采用了SDN技術,只要所有設備供應商的路由器都遵循SDN標準,那么云供應商就可以快捷地重置路由并進行資源分配。其次,基于SDN的云網絡平臺架構允許云用戶通過創建虛擬流片段更有效地訪問云資源。OpenFlow協議和GENI標準是兼容的,這就允許用戶無需考慮物理網絡基礎設施而任意創建流片段。無論系統是有線的還是無線的,也無論云供應商在不同的地方如何部署不同的存儲單元,SDN中的虛擬流都可以使數據透明地在所有云設備之間傳輸。最后,當用戶需要改變網絡環境時,只需要更新或修改網絡適配器的代碼,而當云平臺上有多個需要不同底層網絡架構的應用時,可以通過網絡適配器劃分底層子網。將不同的應用劃分到底層網絡拓撲結構不同的子網中,使得云平臺能適應不同的“云”應用需求。上述優點使得基于SDN的云網絡平臺架構有望成為未來云計算布局的主流網絡平臺架構。
參考文獻
[1]Mell P,Grance T.NIST Def i nition of Cloud Computing[EB/OL].(2012-03-11)[2015-01-25].http://wenku.baidu.com/li nk?url=UK7zWboKFeP35P72aX9fOPskwXhGjHyR4jy7 tWRveyATIIcusvalVlrW_AeF8PAJzC1O0T8HAtzwBbN0 cZYyB1I6opVPMYcuEAtQyburd77
[2]Ling Leng,Lin Wang.Research on cloud computing and key technologies[J].Computer Science and Information Processing(CSIP),2012:863-866
[3]Luo Qinglin,Fang Wei,Wu Jinsong,et al.Reliable broadband wireless communication for high speed trains using baseband cloud[J].EURASIP Journal on Wireless Communications and Networking,2012:285
[4]張睿 ,汪洋.一種面向云計算業務的SDN架構[D].2013年中國通信學會信息通信網絡技術委員會年會論文集,2013:118-120
[5]戴元順.云計算技術簡述[J].信息通信技術,2010,4(2):29-35
[6]Jadeja Y,Modi K.Cloud Computing-Concepts,Architecture and Challenges[C]//2012 International Conference on Computing, Electronics and Electrical Technologies:877-880
[7]Wattal S,Kumar A.Cloud Computing-an Emerging Trend in Information Technology[C]//Issues and Challenges in Intelligent Computing Techniques(ICICT), 2014:168-173
[8]饒少陽,陳運清,馮明.基于SDN的云數據中心[J].電信科學,2014(8):33-41
[9]Bhaskar Prasad Rimal,Eunmi Choi.A taxonomy and survey of cloud computing systems[C]//2009 Fifth International Joint Conference on INC,IMS and IDC,IEEE Computer Society
[10]賴玲.分布式數據庫系統研究[J].軟件導刊,2009,8(9):169-170
[11]Wu Sai,Jiang Dawei,Beng Chin Ooi,et al.Efficient BtreeBased Indexing for Cloud Data Processing[C]//the VLDB Endowment,2010
[12]Fei Hu,Qi Hao,Ke Bao.A Survey on Software-Defined Network and OpenFlow:From Concept to Implementation[J].IEEE Communications Surveys and Tutorials,2014,16(4):2181-2206
[13]Li C S,Liao W.Software defined networks[J].IEEE Communications Magazine,2013,51(2):113-114
[14]Jarscel M,Zinner T,Hossfeld T,et al.Interfaces,Attributes,and Use Cases:A Compass for SDN[J].IEEE Communications Magazine,2014,52(6):210-217
[15]王文東,胡延楠.軟件定義網絡:正在進行的網絡變革[J].中興通訊技術,2013(1):39-43
[16]Bankazemi M,Olshefski D,Shaikh A,et al.An SDN Platform for Cloud Network Services[J].IEEE Communications Magazine2013,51(2):120-127