自2006年Google公司提出云計算的概念以來,作為一種新的技術和商業模式,其概念眾說紛紜。相關領域的各方機構和專家分別從不同的角度對云計算進行了定義,比如有的從應用場景劃分,有的從資源角度劃分等。
其中,2009年9月美國國家標準技術研究院(NIST)提出的云計算定義,很具有代表性,目前已經被業界廣泛接受:“云計算是一種可以通過網絡方便的接入共享資源池,按需獲取計算資源(這些資源包括網絡、服務器、存儲、應用、服務等等)的服務模型。共享資源池中的資源應該可以通過較少的管理代價和簡單業務交互過程而快速部署和發布。”另外,NIST在定義之外,還提出了云計算的部署場景、資源類型和技術特點等對此概念的外延。
在NIST的上述定義中,“網絡”直接出現了兩次,但前后兩次的“網絡”在云計算中的作用明顯不同。另外,網絡在云計算中的第三種作用,被NIST隱藏在其中提到的“資源池”中了。而在云計算的概念外延中,“寬帶接入網絡”也是云計算的5大基本特點之一。
第一次出現在該定義中的“網絡”,負責將云計算的服務提供者和用戶連接起來,能夠讓云服務隨處可用。云計算概念外延中的“寬帶接入網絡”,作用也與此等效。
從應用范圍看,這里的網絡可以是公眾互聯網(Internet)、專用IP網或虛擬專用網(Virtual Private Network, VPN)。而接入技術,可以是有線的(如xDSL,數字環路線),也可以是無線的(無線局域網或3G網絡)。移動云計算的說法,也是從這個角度說的。
從用戶終端看,可以是通用的軟終端(如瀏覽器方式),也可以是專用的軟終端(如一些云安全應用,需要用戶下載特定的客戶端軟件),有的甚至是與硬件相關的(如Apple最近推出的iCloud,只能在Apple系列產品之間提供用戶數據的同步服務)。
云計算對這里的“網絡”提出的新要求,與“未來網絡”、“下一代互聯網”和“下一代網絡”等,一直所追求的目標基本一致,即需要網絡提供更高品質保證的服務、更安全可靠的信息傳遞、更節能綠色的服務和無處不在的服務等。
第二次出現在NIST云計算定義中的“網絡”,自身與計算、存儲等并列成了一種資源,一種能夠廉價而快速的提供給用戶的“網絡”資源。從這個定義看,IP VPN就是一種典型的云計算服務:利用MPLS/IPSec/L2TP等隧道技術,通過IP網絡(IP專網或互聯網)為企業或個人用戶,提供具有質量保證的、安全可信的網絡資源出租服務。
面向云計算的VPN業務,是對傳統IP VPN業務的發展,向那些希望從數據中心外包軟件、平臺、計算或存儲的用戶提供靈活的網絡資源出租服務。這些VPN用戶的典型特點是不希望使用公眾互聯網訪問云計算數據中心,但希望更多地、更精確的共享虛擬機、物理服務器等云計算數據中心資源,同時對端到端的資源使用有控制能力。面向云計算的VPN將傳統 VPN的終結點,從廣域網的網絡邊緣延伸到了數據中心內的服務器上甚至虛擬服務器上,讓數據中心的各種云計算服務也都成了VPN的一種新屬性。
第三,在該定義所涉及的“資源池”中,還隱含了對“網絡”的第三種理解,即將各種資源連接起來形成共享資源池的“網絡”,主要是指互聯網數據中心 (Internet Data Center, IDC)內部的網絡。目前IDC內部有三類網絡:連接服務器的計算機網,底層主要使用的是Infiniband技術;連接存儲設備的存儲區域網,底層主要使用的是Fiber Channel技術;IDC與外部連接的通信網,底層主要使用的以太網技術。
隨著云計算將計算、存儲和網絡都統一當作資源來對待,IDC中的“三網融合”也必須實現。云計算數據中心追求統一網絡架構、統一技術和統一管理,以簡化系統,降低復雜性帶來的安全風險和脆弱性。從目前的發展看,IDC底層的網絡技術,必將統一到新型的以太網技術上。以太網發源和成功于局域網,在完成了對廣域網、城域網和無線局域網的入侵后,目前已經進入了最后一個領地:IDC(即第一公里),技術也從最遲的盡力而為發展到融合型增強型以太網,從而能夠支持存儲網絡和服務器網絡。
數據中心的“三網融合”剛剛起步,因此如何低成本、大容量和無阻塞的,將云計算數據中心中的各種資源連接起來形成資源池,業界的利益和爭議很大,突出體現在兩個方面:一是數據中心的大規模組網,二是數據中心的虛擬接入。
在大規模組網方面,IETF主張TRILL(Transparent Interconnection of Lots of Links (trill))協議,而IEEE主張對STP(Spanning Tree Protocol)擴展。TRILL主要針對以太網STB協議的缺點,即STB無法利用交換機之間私有的可用路徑,因此路由不會總是最短和最快的,而且收斂時間比較長,直接導致未落擴展性不好,以及對鏈路故障比較敏感。IEEE的最短路徑橋接技術,是對多路徑STP的擴展,也使用的是鏈路狀態技術,以讓交換機學習最短路徑和動態調整拓撲。兩種技術標準都有產業界巨頭的強力支持,而其他巨頭要么站隊,要么同時支持這兩種協議。值得一提的是,很多企業對這兩種尚未完成的標準,竟然已經做了各自私有的擴展。
在虛擬接入方面,目前也已經出現了兩種解決思路,一是在標準以太網幀中增加一段專用的標記(VN-Tag),用以區分不同的虛擬化網絡接口(VIF),以識別特定虛擬服務器的流量。這種方案需要對服務器和交換機同時做修改,需要配合做工作,才能夠識別和處理VIF。另外一種方案是修改生成樹協議和重用Q- in-Q,以便解決STP中規定的數據幀不能發往收到這個幀的端口的問題,因為這在虛擬化環境中是允許的;在基本的802.1q標記外增加了一層表示不同虛擬機的定義,在VLAN之外能夠通過Q-in-Q區分不同的虛擬機。
上面所討論的“網絡”,是云計算中涉及到的IP層和下層技術,如果將網絡新技術的討論范圍向上延伸,那么為云計算提供可靠性服務的TCP(傳輸控制協議) 技術,也需要一些重大變革了。面向云計算的TCP至少涉及到三個問題,一個是動搖了互聯網核心設計理念,第二個是需要為TCP已有的通信模式再增加一種新的類型,第三個是TCP中的擁塞避免和控制機制的改進。
“端到端透明”是TCP/IP的核心設計理念,它假設網絡是不可靠(IP協議)的,因此將所有可靠性的機制(TCP協議)都放在了終端上。這一理念的基本假設是如果網絡不可靠,那么通信終端必須是可靠的,否則只能中斷通信服務了。因此,通信終端不可靠的問題,不在傳統TCP/IP協議的考慮范圍內。但從云計算的角度看,如果云計算的一個服務器(通信終端)宕機了,應該允許用戶將云服務自動切換到另一臺服務器(從TCP的角度看,指不同IP地址的服務器)上去,以保證服務的連續性和可靠性,但TCP協議顯然做不到。云計算中的服務可靠性問題,是靠應用層還是需要設計新的面向云計算的TCP,目前還處于理論探討階段。
第二,需要在TCP協議中引入Incast拓撲模型。Incast是many-to-one的一種通信模式,當一個父服務器向一組節點(服務器集群或存儲集群)發起一個請求時,云計算服務器集群中的節點都會同時收到該請求,并且幾乎同時做出響應,很多節點同時向一臺機器(父服務器)發送TCP數據流,從而產生了一個“微突發流”。這種情況主要發生在云計算數據中心,尤其是那些以向外擴展的方式實現的分布式存儲和計算應用(如Hadoop, MapReduce, HDFS等)。目前已經提出了Data center TCP(DCTCP)的技術標準方案,來應對這一問題。
第三,越來越多的人認為,云計算的終端也需要參加云計算的服務,因為沒理由只使用云服務器上的資源,白白浪費掉終端上日益豐富而廉價的計算和存儲資源。要解決這一問題,就涉及到了云終端和云服務器之間,計算、存儲和通信三種資源的協商問題。雖然傳統TCP協議也在服務器和終端之間做通信流量速率的協商,但存在兩個明顯的缺點:1)傳統TCP的資源能力協商是隱式的,靠推測實現的,不是顯式的;2)沒有區分計算資源和存儲資源,與網絡資源在經濟方面的差異性。