摘要
分析了云計算關(guān)鍵的技術(shù),包括虛擬化/分布式文件系統(tǒng)/分布式數(shù)據(jù)庫等,介紹了相關(guān)云方案實現(xiàn),并對云計算在IETF/ITU等標(biāo)準(zhǔn)組織的最新研究競爭做了說明。
1 引言
云計算并不是一個全新的名稱。1961年,圖靈獎得主John McCarthy提出計算能力將作為一種象水、電一樣的公用事業(yè)提供給用戶。2001年,Google CEO Eric Schmidt在搜索引擎大會上首次提出“云計算”的概念。2004年,Amazon陸續(xù)推出云計算服務(wù),成為少數(shù)幾個提供99.95%正常運行時間保證的云計算供應(yīng)商之一。2007年,隨著IBM,Google等公司的宣傳,云計算概念開始獲得全球公眾和媒體的廣泛關(guān)注。
云計算目前并沒有統(tǒng)一的定義。根據(jù)Wikipedia,云計算是一種基于互聯(lián)網(wǎng)的計算新方式,通過互聯(lián)網(wǎng)上異構(gòu)、自治的服務(wù)為個人和企業(yè)用戶提供按需即取的計算。而Berkeley大學(xué)則認(rèn)為云計算是指Internet上以服務(wù)發(fā)布的應(yīng)用以及支撐這些服務(wù)的數(shù)據(jù)中心的軟件和硬件。
筆者則認(rèn)為,云計算的概念不僅僅局限于計算,實際上直接稱為“云”更加合適,云的本質(zhì)是網(wǎng)絡(luò)為用戶提供的按需即取的服務(wù)Service on Demand,包括基于提供計算能力,存儲能力,以及網(wǎng)絡(luò)能力的各種服務(wù)的組合。正是因為服務(wù)的按需即取的特性,需要對應(yīng)于計算能力、存儲能力、交付能力的各種計算資源、存儲資源,以及網(wǎng)絡(luò)資源的按需即取的資源池管理和彈性提供。
從業(yè)務(wù)提供方式上,云可以提供3種業(yè)務(wù):IaaS將虛擬化的資源直接按需提供給客戶;PaaS在虛擬化的云計算平臺上建立支持多種業(yè)務(wù)的應(yīng)用平臺,再將應(yīng)用接口和開發(fā)環(huán)境、運行環(huán)境提供給外部;SaaS在虛擬化的云計算平臺上提供按需定制和快速部署的應(yīng)用軟件租用服務(wù)。目前,業(yè)界研究最多的是IaaS和PaaS,本文將針對IaaS(對應(yīng)基礎(chǔ)云)和PaaS(對應(yīng)業(yè)務(wù)云)的關(guān)鍵技術(shù),實現(xiàn)方案以及云的標(biāo)準(zhǔn)化進(jìn)行闡述。
2 關(guān)鍵技術(shù)
2.1 虛擬化
虛擬化是實現(xiàn)云計算的最重要的技術(shù)基礎(chǔ),虛擬化技術(shù)實現(xiàn)了物理資源的邏輯抽象和統(tǒng)一表示。通過虛擬化技術(shù)可以提高資源的利用率,并能夠根據(jù)用戶業(yè)務(wù)需求的變化,快速、靈活地進(jìn)行資源部署。
2.1.1 虛擬化平臺架構(gòu)
在云計算環(huán)境中,通過在物理主機中同時運行多個虛擬機實現(xiàn)虛擬化。多個虛擬機運行在虛擬化平臺上,由虛擬化平臺實現(xiàn)對多個虛擬機操作系統(tǒng)的監(jiān)視和多個虛擬機對物理資源的共享。
總的來說,我們認(rèn)為虛擬化平臺是三層結(jié)構(gòu),最下層是虛擬化層,提供基本的虛擬化能力支持;中間層是控制執(zhí)行層,提供各控制功能的執(zhí)行能力;最上層是管理層,對執(zhí)行層進(jìn)行策略管理、控制,提供對虛擬化平臺統(tǒng)一管理的能力。如圖1所示,虛擬化平臺應(yīng)該包含虛擬機監(jiān)視器Hypervisor,虛擬資源的管理,虛擬機遷移,故障恢復(fù),策略管理(如提供虛擬機自動部署和資源調(diào)配)等功能實體。各部分具體功能描述如下:
圖1 虛擬化平臺功能結(jié)構(gòu)
(1)虛擬機管理:主要保護(hù)VM的創(chuàng)建、啟動、停止、遷移、恢復(fù)和刪除等能力,虛擬機映像管理,虛擬機運行環(huán)境的自動配置和快速部署啟動等能力。虛擬機管理可根據(jù)主機節(jié)點/虛擬機的CPU,內(nèi)存,I/O,網(wǎng)絡(luò)等資源使用情況,自動地在不同主機節(jié)點之間遷移VM,使得VM的性能得到保障。也包含主機節(jié)點的失效保護(hù),即當(dāng)一個主機節(jié)點失效后,該功能實體能將其上的服務(wù)自動轉(zhuǎn)移到其他節(jié)點上繼續(xù)運行。
(2)高可用Cluster:用于保證主機節(jié)點的失效保護(hù),當(dāng)一個主機節(jié)點失效后,Cluster自動將其上的服務(wù)轉(zhuǎn)移到集群中的其他節(jié)點上繼續(xù)運行。該Cluster還可具有負(fù)載均衡和存儲集群的能力。
(3)動態(tài)資源調(diào)配:虛擬存儲、網(wǎng)絡(luò)創(chuàng)建、配置、修改和刪除等能力。當(dāng)一個VM的內(nèi)存、外出或網(wǎng)絡(luò)資源不足時,可臨時借用同節(jié)點中其他VM暫時不使用的同類資源。
(4)動態(tài)負(fù)載均衡:兼顧能源消耗和工作負(fù)載的均衡。根據(jù)策略需要,可開啟/關(guān)閉部分主機節(jié)點,并遷移關(guān)聯(lián)的VM。
(5)管理工具:包含虛擬化平臺需要支持的一套工具,如P2V(Physical to Virtual),V2P(Virtual to Physical),VA(Virtual Application),JEOS(Just enough Operating System)等。
(6)主機安全:用于保證VM運行環(huán)境的安全,包含一組軟件,如anti-virus,IDS等。
2.1.2 虛擬化平臺部署
如圖2所示,在實際部署中,由于Cluster、動態(tài)資源分配、主機安全等與Hypervisor關(guān)系密切,可以作為獨立的軟件部署在主機節(jié)點之中。其他功能都可以集成在一起,形成VM管理器。這樣進(jìn)行功能分配后,整個虛擬化平臺可以分為兩個軟件包:一是Hypervisor + Host OS軟件包,駐留在主機節(jié)點中;二是VM管理器軟件包。兩者之間的接口將被簡化為配置、簡單控制、查看和監(jiān)控幾類。
圖2 虛擬化平臺系統(tǒng)架構(gòu)圖
運行VM的主機利用Cluster功能組成一個高可用的集群系統(tǒng),當(dāng)其中的某個節(jié)點失效時,可無需VM管理器的干涉,自動地將失效節(jié)點上的服務(wù)遷移到其他節(jié)點,并為其重新分配存儲和網(wǎng)絡(luò)資源,使得服務(wù)不間斷。VM管理可部署在獨立的服務(wù)器上,由其負(fù)責(zé)對虛擬化平臺的告警、運行狀況監(jiān)控、負(fù)載調(diào)整等工作。虛擬化平臺物理部署如圖3所示。
圖3 虛擬化平臺部署圖