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