斯琴其木格
(赤峰學院 計算機與信息技術學院,內蒙古 赤峰 024000)
云計算概念的產生、定義、原理及前景分析
斯琴其木格
(赤峰學院 計算機與信息技術學院,內蒙古 赤峰 024000)
本文簡述了云計算概念的產生、定義,簡單介紹了云計算核心技術,并分析了云計算技術面臨的問題和需要研究的方向,同時對云計算技術的前景進行了分析.
云計算;網絡;虛擬化;數據存儲
在傳統模式下,企業建立一套IT系統不僅需要購買硬件等基礎設施,還要買軟件的許可證,并需要專門人員維護.當企業的規模擴大時又要繼續升級各種軟硬件設施以滿足需求.對于企業來說,計算機硬件和軟件本身并非他們真正需要的,而只是完成工作、提供效率的工具而已.對個人來說,正常使用電腦需要安裝許多軟件,但是,對不經常使用該軟件的用戶來說這似乎有些浪費.能不能有一個這樣的服務,給我們提供可以租用的軟硬件資源?
這就是引用云計算概念的最初想法.云計算的想法可以追溯到20世紀60年代,John McCarthy曾經提到“計算遲早有一天會變成一種公用基礎設施”.這就意味著計算能力可以作為一種商品進行流通,就像煤氣、水電一樣,取用方便、費用低廉.云計算最大的不同在于它是通過互聯網進行傳輸的.從最根本的意義來說,云計算就是數據存儲在云端,應用和服務存儲在云端,充分利用數據中心強大的計算能力,實現用戶業務系統的自適應性.
2007年10月IBM和Google宣布在云計算領域的合作后,云計算吸引了眾多人的關注,并迅速成為產業界和學術界研究的熱點[1].
云計算(Cloud Computing)是由分布式計算(Distributed Computing)、并行處理(Parallel Computing)、網格計算(Grid Computing)發展來的,是一種新興的商業計算模型.目前,對于云計算的認識在不斷的發展變化,云計算仍沒有普遍一致的定義.號稱“網格之父”的美國Argonne國家實驗室的資深科學家、Globus項目的領導人Ian Foster在“Cloud Computing and Grid Computing 360-Degee Compared”一文中這樣定義云計算:“云計算是由規模經濟拖動,為互聯網上的外部用戶提供一組抽象的、虛擬化的、動態可擴展的、可管理的計算資源能力、存儲能力、平臺和服務的一種大規模分布式計算的聚合體”.中國網格計算、云計算專家劉鵬給出如下定義:“云計算將計算任務分布在大量計算機構成的資源池上,使各種應用系統能夠根據需要獲取計算力、存儲空間和各種軟件服務”[2].
通俗的理解是,云計算的“云”就是存在于互聯網上的服務器集群上的資源,它包括硬件資源(服務器、存儲器、CPU等)和軟件資源(如應用軟件、集成開發環境等),本地計算機只需要通過互聯網發送一個需求信息,遠端就會有成千上萬的計算機為你提供需要的資源并將結果返回到本地計算機,這樣,本地計算機幾乎不需要做什么,所有的處理都在云計算提供商所提供的計算機群來完成.
云計算系統運用了許多技術,其中以編程模型、數據管理技術、數據存儲技術、虛擬化技術、云計算平臺管理技術最為關鍵.
MapReduce是Google開發的java、Python、C++編程模型,它是一種簡化的分布式編程模型和高效的任務調度模型,用于大規模數據集(大于1TB)的并行運算.嚴格的編程模型使云計算環境下的編程十分簡單.MapReduce模式的思想是將要執行的問題分解成映射(Map)和化簡(Reduce)的方式,先通過Map程序將數據切割成不相關的區塊,分配(調度)給大量計算機處理,達到分布式運算的效果,再通過Reduce程序將結果匯總整合并輸出.
云計算系統由大量服務器組成,同時為大量用戶服務.因此,云計算系統采用分布式存儲的方式存儲數據,用冗余存儲的方式保證數據的可靠性.云計算系統中廣泛使用的數據存儲系統是Google的GFS和Hadoop團隊開發的GFS的開源實現HDFS(Hadoop Distributed File System).GFS即Google文件系統(Google File System)是一個可擴展的分布式文件系統,用于大型的、分布式的、對大量數據進行訪問的應用.GFS的設計思想不同于傳統的文件系統,是針對大規模數據處理和Google應用特性而設計的.它運行于廉價的普通硬件上,但可以提供容錯功能.它可以給大量的用戶提供總體性能較高的服務.一個GFS集群由一個主服務器(master)和大量的塊服務器(chunkserver)構成,并被許多客戶訪問.主服務器存儲文件系統所有的元數據,包括名字空間、訪問控制信息、從文件到塊的映射以及塊的當前位置.它也控制系統范圍的活動,如塊租約(lease)管理,塊的垃圾收集,塊服務器間的塊遷移.主服務器定期通過HeartBeat消息與每一個塊服務器通信,給塊服務器傳遞指令并收集它的狀態.GFS中的文件被切分為64MB的塊并以冗余存儲,每份數據在系統中保存3個以上備份.客戶與主服務器的交換只限于對元數據的操作,所有數據方面的通信都直接和塊服務器聯系,這種機制大大提高了系統的效率,防止主服務器負載過重.
云計算需要對分布的、海量的數據進行處理、分析.因此,數據管理技術必需能夠高效的管理大量的數據.云計算系統中的數據管理技術主要是Google的BT(BigTable)數據管理技術和Hadoop團隊開發的開源數據管理模塊HBase.BT是建立在GFS,Scheduler,Lock Service和MapReduce之上的一個大型的分布式數據庫.與傳統的關系數據庫不同,它把所有數據都作為對象來處理,形成一個巨大的表格,用來分布存儲大規模結構化數據.Google的很多項目使用BT來存儲數據,包括網頁查詢,Google earth和Google金融.這些應用程序對BT的要求各不相同:數據大?。◤腢RL到網頁到衛星圖象)不同,反應速度不同(從后端的大批處理到實時數據服務).對于不同的要求,BT都成功地提供了靈活高效的服務.
通過虛擬化技術可實現軟件應用與底層硬件相隔離,它包括將單個資源劃分成多個虛擬資源的分裂模式,也包括將多個資源整合成一個虛擬資源的聚合模式.虛擬化技術根據對象可分成存儲虛擬化、計算虛擬化、網絡虛擬化等,計算虛擬化又分為系統級虛擬化、應用級虛擬化和桌面虛擬化.
云計算資源規模龐大,服務器數量眾多并分布在不同的地點,同時運行著數百種應用,如何有效的管理這些服務器,保證整個系統提供不間斷的服務是巨大的挑戰.云計算系統的平臺管理技術能夠使大量的服務器協同工作,方便地進行業務部署和開通,快速發現和恢復系統故障,通過自動化、智能化的手段實現大規模系統的可靠運營.
實現云計算系統面臨著諸多挑戰,現有的云計算系統的部署相對分散,各自內部能夠實現虛擬內存的自動分配、管理和容錯等,但云計算系統之間的交互還沒有統一的標準.關于云計算系統的標準化工作還需要更進一步的研究.還有一系列亟待解決的問題.
首先云計算系統中,用戶數據存儲在云端,如何保證用戶的數據不被非法訪問和泄露是系統必須要解決的兩個重要問題,即數據的安全和隱私問題.同時云計算系統本身的可擴展性、可用性、可靠性、可管理性等都是要重點解決的問題.在服務的層次上,云計算系統必須要解決服務的描述及轉換問題,如何將用戶的業務理念需求轉換成對基礎設施的需求、如何確定高層的服務需求和度量到基礎設施的需求和度量之間的映射、如何保證多級別的QoS,這些都是云計算系統要解決的問題.在云計算系統的管理方面,云系統之間的互操作是必須要考慮的一個問題.當一個云系統需要使用另外一個云系統的計算資源時,要能夠提供跨云的管理策略,從而使得云系統之間能夠自動交互.同時為了保證SLA(Service-Level Agreement),系統必須能夠進行SLA的監測,當有服務失敗時,自動地進行資源的重新分配.在基礎設施層次上,云計算系統要能夠進行服務的動態遷移,目前的虛擬機只支持共享存儲的遷移,如何將虛擬機遷移到沒有共享存儲的其他物理主機上也是云計算系統面臨的挑戰之一[1].
云計算的最終目標是將計算、服務和應用作為一種公共設施提供給公眾,使人們能夠像使用水、電、煤氣和電話那樣使用計算機資源.云計算模式即為電廠集中供電模式.在云計算模式下,用戶的計算機會變的十分簡單,或許不大的內存、不需要硬盤和各種應用軟件,就可以滿足我們的需求.因為用戶的計算機除了通過瀏覽器給“云”發送指令和接受數據外基本上什么都不用做便可以使用云服務提供商的計算資源、存儲空間和各種應用軟件.這就像連接“顯示器”和“主機”的電線無限長,從而可以把顯示器放在使用者的面前,而主機放在遠到甚至計算機使用者本人也不知道的地方.云計算把連接“顯示器”和“主機”的電線變成了網絡,把“主機”變成云服務提供商的服務器集群.在云計算環境下,用戶的使用觀念也會發生徹底的變化:從“購買產品”到“購買服務”轉變,因為他們直接面對的將不再是復雜的硬件和軟件,而是最終的服務.
〔1〕張建勛,古志民,鄭超.云計算研究進展綜述[J].計算機應用研究,2010,27(2):429,433.
〔2〕申麗君 楊蘭娟 趙華.云計算與網格計算的比較研究[J].Computer Know ledge and Technology電腦知識與技術,Vol.7,No.17,June 2011,pp,4032-4034,4037.
TP183
A
1673-260X(2011)12-0030-02