四、云計算的核心技術
云計算系統運用了許多技術,其中以編程模型、數據管理技術、數據存儲技術、虛擬化技術、云計算平臺管理技術最為關鍵。
(1)編程模型
MapReduce是Google開發的java、Python、C++編程模型,它是一種簡化的分布式編程模型和高效的任務調度模型,用于大規模數據集(大于1TB)的并行運算。嚴格的編程模型使云計算環境下的編程十分簡單。MapReduce模式的思想是將要執行的問題分解成Map(映射)和Reduce(化簡)的方式,先通過Map程序將數據切割成不相關的區塊,分配(調度)給大量計算機處理,達到分布式運算的效果,再通過Reduce程序將結果匯整輸出。
(2) 海量數據分布存儲技術
云計算系統由大量服務器組成,同時為大量用戶服務,因此云計算系統采用分布式存儲的方式存儲數據,用冗余存儲的方式保證數據的可靠性。云計算系統中廣泛使用的數據存儲系統是Google的GFS和Hadoop團隊開發的GFS的開源實現HDFS。
GFS即Google文件系統(Google File System),是一個可擴展的分布式文件系統,用于大型的、分布式的、對大量數據進行訪問的應用。GFS的設計思想不同于傳統的文件系統,是針對大規模數據處理和Google應用特性而設計的。它運行于廉價的普通硬件上,但可以提供容錯功能。它可以給大量的用戶提供總體性能較高的服務。
一個GFS集群由一個主服務器(master)和大量的塊服務器(chunkserver)構成,并被許多客戶(Client)訪問。主服務器存儲文件系統所以的元數據,包括名字空間、訪問控制信息、從文件到塊的映射以及塊的當前位置。它也控制系統范圍的活動,如塊租約(lease)管理,孤兒塊的垃圾收集,塊服務器間的塊遷移。主服務器定期通過HeartBeat消息與每一個塊服務器通信,給塊服務器傳遞指令并收集它的狀態。GFS中的文件被切分為64MB的塊并以冗余存儲,每份數據在系統中保存3個以上備份。
客戶與主服務器的交換只限于對元數據的操作,所有數據方面的通信都直接和塊服務器聯系,這大大提高了系統的效率,防止主服務器負載過重。
(3) 海量數據管理技術
云計算需要對分布的、海量的數據進行處理、分析,因此,數據管理技術必需能夠高效的管理大量的數據。云計算系統中的數據管理技術主要是Google的BT(BigTable)數據管理技術和Hadoop團隊開發的開源數據管理模塊HBase。
BT是建立在GFS, Scheduler, Lock Service和MapReduce之上的一個大型的分布式數據庫,與傳統的關系數據庫不同,它把所有數據都作為對象來處理,形成一個巨大的表格,用來分布存儲大規模結構化數據。
Google的很多項目使用BT來存儲數據,包括網頁查詢,Google earth和Google金融。這些應用程序對BT的要求各不相同:數據大小(從URL到網頁到衛星圖象)不同,反應速度不同(從后端的大批處理到實時數據服務)。對于不同的要求,BT都成功的提供了靈活高效的服務。
(4)虛擬化技術
通過虛擬化技術可實現軟件應用與底層硬件相隔離,它包括將單個資源劃分成多個虛擬資源的裂分模式,也包括將多個資源整合成一個虛擬資源的聚合模式。虛擬化技術根據對象可分成存儲虛擬化、計算虛擬化、網絡虛擬化等,計算虛擬化又分為系統級虛擬化、應用級虛擬化和桌面虛擬化。
(5)云計算平臺管理技術
云計算資源規模龐大,服務器數量眾多并分布在不同的地點,同時運行著數百種應用,如何有效的管理這些服務器,保證整個系統提供不間斷的服務是巨大的挑戰。
云計算系統的平臺管理技術能夠使大量的服務器協同工作,方便的進行業務部署和開通,快速發現和恢復系統故障,通過自動化、智能化的手段實現大規模系統的可靠運營。
五、典型云計算平臺介紹
由于云計算技術范圍很廣,目前各大IT企業提供的云計算服務主要根據自身的特點和優勢實現的。下面以Google、IBM、Amazon為例說明:
(1)Google 的云計算平臺
Google的硬件條件優勢,大型的數據中心、搜索引擎的支柱應用,促進Google云計算迅速發展。Google的云計算主要由MapReduce、Google文件系統(GFS)、BigTable組成。它們是Google內部云計算基礎平臺的3個主要部分。Google 還構建其他云計算組件,包括一個領域描述語言以及分布式鎖服務機制等。Sawzall是一種建立在MapReduce基礎上的領域語言,專門用于大規模的信息處理。Chubby是一個高可用、分布式數據鎖服務,當有機器失效時,Chubby使用Paxos算法來保證備份。
(2)IBM“藍云”計算平臺
“藍云”解決方案是由IBM云計算中心開發的企業級云計算解決方案。該解決方案可以對企業現有的基礎架構進行整合,通過虛擬化技術和自動化技術,構建企業自己擁有的云計算中心,實現企業硬件資源和軟件資源的統一管理、統一分配、統一部署、統一監控和統一備份,打破應用對資源的獨占,從而幫助企業實現云計算理念。
IBM 的“藍云”計算平臺是一套軟、硬件平臺,將Internet上使用的技術擴展到企業平臺上,使得數據中心使用類似于互聯網的計算環境。“藍云”大量使用了IBM先進的大規模計算技術,結合了IBM自身的軟、硬件系統以及服務技術,支持開放標準與開放源代碼軟件。
“藍云”基于IBM Almaden研究中心的云基礎架構,采用了Xen和PowerVM虛擬化軟件,Linux操作系統映像以及Hadoop軟件(Google File System以及MapReduce的開源實現)。IBM已經正式推出了基于x86芯片服務器系統的“藍云”產品。下圖為IBM “藍云”的架構:
由圖可知,“藍云”計算平臺由一個數據中心、IBM Tivoli部署管理軟件(Tivoli provisioning manager)、IBM Tivoli監控軟件(IBM Tivoli monitoring)、IBM WebSphere應用服務器、IBM DB2數據庫以及一些開源信息處理軟件和開源虛擬化軟件共同組成。“藍云”的硬件平臺環境與一般的x86服務器集群類似,使用刀片的方式增加了計算密度。“藍云”軟件平臺的特點主要體現在虛擬機以及對于大規模數據處理軟件Apache Hadoop的使用上。
“藍云”平臺的一個重要特點是虛擬化技術的使用。虛擬化的方式在“藍云”中有兩個級別,一個是在硬件級別上實現虛擬化,另一個是通過開源軟件實現虛擬化。硬件級別的虛擬化可以使用IBM p系列的服務器,獲得硬件的邏輯分區LPAR(logic partition)。邏輯分區的CPU資源能夠通過IBM Enterprise Workload Manager來管理。通過這樣的方式加上在實際使用過程中的資源分配策略,能夠使相應的資源合理地分配到各個邏輯分區。p系列系統的邏輯分區最小粒度是1/10顆CPU。Xen則是軟件級別上的虛擬化,能夠在Linux基礎上運行另外一個操作系統。
虛擬機是一類特殊的軟件,能夠完全模擬硬件的執行,運行不經修改的完整的操作系統,保留了一整套運行環境語義。通過虛擬機的方式,在云計算平臺上獲得如下一些優點 :
1)云計算的管理平臺能夠動態地將計算平臺定位到所需要的物理節點上, 而無須停止運行在虛擬機平臺上的應用程序,進程遷移方法更加靈活;
2)降低集群電能消耗,將多個負載不是很重的虛擬機計算節點合并到同一個物理節點上,從而能夠關閉空閑的物理節點,達到節約電能的目的;
3)通過虛擬機在不同物理節點上的動態遷移,遷移了整體的虛擬運行環境,能夠獲得與應用無關的負載平衡性能;
4)在部署上也更加靈活,即可以將虛擬機直接部署到物理計算平臺上,而虛擬機本身就包括了相應的操作系統以及相應的應用軟件,直接將大量的虛擬機映像復制到對應的物理節點即可。
“藍云”計算平臺中的存儲體系結構:“藍云”計算平臺中的存儲體系結構對于云計算來說也是非常重要的,無論是操作系統、服務程序還是用戶的應用程序的數據都保存在存儲體系中。“藍云”存儲體系結構包含類似于Google File System 的集群文件系統以及基于塊設備方式的存儲區域網絡SAN。
在設計云計算平臺的存儲體系結構時,可以通過組合多個磁盤獲得很大的磁盤容量。相對于磁盤的容量,在云計算平臺的存儲中,磁盤數據的讀寫速度是一個更重要的問題,因此需要對多個磁盤進行同時讀寫。這種方式要求將數據分配到多個節點的多個磁盤當中。為達到這一目的,存儲技術有兩個選擇,一個是使用類似于Google File System的集群文件系統,另一個是基于塊設備的存儲區域網絡SAN系統。
在藍云計算平臺上,SAN 系統與分布式文件系統(例如Google File System)并不是相互對立的系統,SAN提供的是塊設備接口,需要在此基礎上構建文件系統,才能被上層應用程序所使用。而Google File System正好是一個分布式的文件系統,能夠建立在SAN之上。兩者都能提供可靠性、可擴展性,至于如何使用還需要由建立在云計算平臺上的應用程序來決定,這也體現了計算平臺與上層應用相互協作的關系。
(3)Amazon的彈性計算云
Amazon是互聯網上最大的在線零售商,為了應付交易高峰,不得不購買了大量的服務器。而在大多數時間,大部分服務器閑置,造成了很大的浪費,為了合理利用空閑服務器,Amazon建立了自己的云計算平臺彈性計算云EC2(elastic compute cloud),并且是第一家將基礎設施作為服務出售的公司。
Amazon將自己的彈性計算云建立在公司內部的大規模集群計算的平臺上,而用戶可以通過彈性計算云的網絡界面去操作在云計算平臺上運行的各個實例(instance)。用戶使用實例的付費方式由用戶的使用狀況決定,即用戶只需為自己所使用的計算平臺實例付費,運行結束后計費也隨之結束。這里所說的實例即是由用戶控制的完整的虛擬機運行實例。通過這種方式,用戶不必自己去建立云計算平臺,節省了設備與維護費用。
上圖為EC2系統的使用模式。從圖中可以看出,彈性計算云用戶使用客戶端通過SOAP over HTTPS協議與Amazon彈性計算云內部的實例進行交互。這樣,彈性計算云平臺為用戶或者開發人員提供了一個虛擬的集群環境,在用戶具有充分靈活性的同時,也減輕了云計算平臺擁有者(Amazon公司)的管理負擔。彈性計算云中的每一個實例代表一個運行中的虛擬機。用戶對自己的虛擬機具有完整的訪問權限,包括針對此虛擬機操作系統的管理員權限。虛擬機的收費也是根據虛擬機的能力進行費用計算的,實際上,用戶租用的是虛擬的計算能力。
總而言之,Amazon通過提供彈性計算云,滿足了小規模軟件開發人員對集群系統的需求,減小了維護負擔。其收費方式相對簡單明了:用戶使用多少資源,只需為這一部分資源付費即可。
為了彈性計算云的進一步發展,Amazon規劃了如何在云計算平臺基礎上幫助用戶開發網絡化的應用程序。除了網絡零售業務以外,云計算也是Amazon公司的核心價值所在。Amazon將來會在彈性計算云的平臺基礎上添加更多的網絡服務組件模塊,為用戶構建云計算應用提供方便。
六、云計算技術發展面臨的主要問題
盡管云計算模式具有許多優點,但是也存在的一些問題,如數據隱私問題、安全問題、軟件許可證問題、網絡傳輸問題等。
· 數據隱私問題:如何保證存放在云服務提供商的數據隱私,不被非法利用,不僅需要技術的改進,也需要法律的進一步完善。
· 數據安全性:有些數據是企業的商業機密,數據的安全性關系到企業的生存和發展。云計算數據的安全性問題解決不了會影響云計算在企業中的應用。
· 用戶使用習慣:如何改變用戶的使用習慣,使用戶適應網絡化的軟硬件應用是長期而艱巨的挑戰。
· 網絡傳輸問題:云計算服務依賴網絡,目前網速低且不穩定,使云應用的性能不高。云計算的普及依賴網絡技術的發展。
評論
查看更多