IBM公司于2007年底宣布了云計算計劃,云計算的概念出現在大眾面前,為了更好地了解云計算這個名字后面的本質含義,本文擬通過具體分析工業界推出的幾個被廣泛接受的云計算實現,以及學術界針對當前大規模數據處理上所作的努力,為讀者剖析云計算背后所采用的具體技術,首先看一下在IBM的技術白皮書“Cloud Computing”中的云計算定義:
“云計算一詞用來同時描述一個系統平臺或者一種類型的應用程序,一個云計算的平臺按需進行動態地部署(provision)、配置(configuration)、重新配置(reconfigure)以及取消服務(deprovision)等,在云計算平臺中的服務器可以是物理的服務器或者虛擬的服務器,高級的計算云通常包含一些其他的計算資源,例如存儲區域網絡(SANs),網絡設備,防火墻以及其他安全設備等,云計算在描述應用方面,它描述了一種可以通過互聯網Internet進行訪問的可擴展的應用程序,“云應用”使用大規模的數據中心以及功能強勁的服務器來運行網絡應用程序與網絡服務,任何一個用戶可以通過合適的互聯網接入設備以及一個標準的瀏覽器就能夠訪問一個云計算應用程序。”
上述定義給出了云計算兩個方面的含義:一方面描述了基礎設施,用來構造應用程序,其地位相當于PC機上的操作系統;另一方面描述了建立在這種基礎設施之上的云計算應用,在與網格計算的比較上,網格程序是將一個大任務分解成很多小任務并行運行在不同的集群以及服務器上,注重科學計算應用程序的運行,而云計算是一個具有更廣泛含義的計算平臺,能夠支持非網格的應用,例如支持網絡服務程序中的前臺網絡服務器、應用服務器、數據庫服務器三層應用程序架構模式,以及支持當前Web 2.0模式的網絡應用程序,云計算是能夠提供動態資源池、虛擬化和高可用性的下一代計算平臺,現有的云計算實現使用的技術體現了以下3個方面的 特征:
1) 硬件基礎設施架構在大規模的廉價服務器集群之上,與傳統的性能強勁但價格昂貴的大型機不同,云計算的基礎架構大量使用了廉價的服務器集群,特別是x86架構的服務器,節點之間的互聯網絡一般也使用普遍的千兆以太網。
2) 應用程序與底層服務協作開發,最大限度地利用資源,傳統的應用程序建立在完善的基礎結構,如操作系統之上,利用底層提供的服務來構造應用,而云計算為了更好地利用資源,采用了底層結構與上層應用共同設計的方法來完善應用程序的構建。
3) 通過多個廉價服務器之間的冗余,使用軟件獲得高可用性,由于使用了廉價的服務器集群,節點的失效將不可避免,并且會有節點同時失效的問題,為此,在軟件設計上需要考慮節點之間的容錯問題,使用冗余的節點獲得高可用性。
通過上面的技術手段,云計算達到了兩個分布式計算的重要目標:可擴展性和高可用性,可擴展性表達了云計算能夠無縫地擴展到大規模的集群之上,甚至包含數千個節點同時處理,高可用性代表了云計算能夠容忍節點的錯誤,甚至有很大一部分節點發生失效也不會影響程序的正確運行,學術界其實很早就展開了針對云計算方便用戶使用方面的研究,很多學術上的研究成果遠早于云計算概念提出來之前就已得出,我國的計算機研究人員遠在“云計算”這個名詞提出之前就已有透明計算的構思,透明計算體現了云計算的特征,即資源池動態的構建、虛擬化、用戶透明等,清華大學張堯學教授(中國工程院院士)早在1998年就開始從事透明計算系統和理論的研究,工業界很多公司則分別提出了自己針對云計算的理解,用不同的技術來實現上述云計算的目標。
本文主要研究工業界3個具體的云計算實例,具體包括Google的云計算平臺以及云計算的網絡應用程序、IBM公司的“藍云”平臺產品以及Amazon公司的彈性計算云。此外,對云計算的學術研究現狀也進行了調研與分析。
1 清華大學透明計算平臺
張堯學教授領導的研究小組從1998年開始就從事透明計算系統和理論的研究,到2004年前后正式提出,并不斷完善了透明計算的概念和相關理論,隨著硬件、軟件以及網絡技術的發展,計算模式從大型機的方式逐漸過渡到微型個人計算機的方式,并且近年來過渡到普適計算上,但是用戶仍然很難獲得異構類型的操作系統以及應用程序,在輕量級的設備上很難獲得完善的服務,而在透明計算中,用戶無須感知計算具體所在位置以及操作系統、中間件、應用等技術細節,只需要根據自己的需求,通過連通在網絡之上的各種設備選取相應的服務。
圖1顯示了透明計算平臺的3個重要組成部分,用戶的顯示界面是前端的輕權設備,包括各種個人計算機、筆記本、PDA、智能手機等,被統稱為透明客戶端,透明客戶端可以是沒有安裝任何軟件的裸機,也可以是裝有部分核心軟件平臺的輕巧性終端,中間的透明網絡則整合了各種有線和無線網絡傳輸設施,主要用來在各種透明客戶端與后臺服務器之間完成數據的傳遞,而用戶無須意識到網絡的存在,與云計算基礎服務設施構想一致,透明服務器不排斥任何一種可能的服務提供方式,既可通過當前流行的PC服務器集群方式來構建透明服務器集群,也可使用大型服務器等。
圖1 透明計算系統的組成結構
當前透明計算平臺已經達到了平臺異構的目的,能夠支持Linux以及Windows操作系統的運行,用戶具有很大的靈活性,能夠自主選擇自己所需要的操作系統運行在透明客戶端上,透明服務器使用了流行的PC服務器集群的方式,預先存儲了各種不同的操作平臺,包括操作系統的運行環境、應用程序以及相應的數據,每個客戶端從透明服務器上獲取并建立整個運行環境以滿足用戶對于不同操作環境的需求,由于用戶之間的數據相互隔離,因此服務器集群可以選取用戶相對獨立的方式進行存儲,使得整個系統能夠擴展到很大的規模,在服務器集群之上進行相應的冗余出錯處理,很好地保護了每個用戶的透明計算數據安全性。
2 Google的云計算平臺
Google公司有一套專屬的云計算平臺,這個平臺先是為Google最重要的搜索應用提供服務,現在已經擴展到其他應用程序,Google的云計算基礎架構模式包括4個相互獨立又緊密結合在一起的系統:Google File System分布式文件系統,針對Google應用程序的特點提出的MapReduce編程模式,分布式的鎖機制Chubby以及Google開發的模型簡化的大規模分布式數據庫BigTable。
·Google File System文件系統(GFS)
除了性能,可伸縮性、可靠性以及可用性以外,GFS設計還受到Google應用負載和技術環境的影響,體現在4個方面:
1) 充分考慮到大量節點的失效問題,需要通過軟件將容錯以及自動恢復功能集成在系統中;
2) 構造特殊的文件系統參數,文件通常大小以G字節計,并包含大量小文件;
3) 充分考慮應用的特性,增加文件追加操作,優化順序讀寫速度;
4) 文件系統的某些具體操作不再透明,需要應用程序的協助完成。
圖2給出了Google File System的系統架構,如圖2所示,一個GFS集群包含一個主服務器和多個塊服務器,被多個客戶端訪問,大文件被分割成固定尺寸的塊,塊服務器把塊作為Linux文件保存在本地硬盤上,并根據指定的塊句柄和字節范圍來讀寫塊數據,為了保證可靠性,每個塊被缺省保存3個備份,主服務器管理文件系統所有的元數據,包括名字空間、訪問控制、文件到塊的映射、塊物理位置等相關信息,通過服務器端和客戶端的聯合設計,GFS對應用支持達到性能與可用性最優,GFS是為Google應用程序本身而設計的,在內部部署了許多GFS集群,有的集群擁有超過1 000個存儲節點,超過300T的硬盤空間,被不同機器上的數百個客戶端連續不斷地頻繁訪問著。
圖2 Google File System的系統架構
·MapReduce分布式編程環境
Google構造MapReduce編程規范來簡化分布式系統的編程,應用程序編寫人員只需將精力放在應用程序本身,而關于集群的處理問題,包括可靠性和可擴展性,則交由平臺來處理,MapReduce通過“Map(映射)”和“Reduce(化簡)”這樣兩個簡單的概念來構成運算基本單元,用戶只需提供自己的Map函數以及Reduce函數即可并行處理海量數據,為了進一步理解MapReduce的編程方式,下面給出一個基于MapReduce編程方式的程序偽代碼,程序功能是統計文本中所有單詞出現的次數。
在圖3所示的map函數中,用戶的程序將文本中所有出現的單詞都按照出現計數1(以Key-Value對的形式)發射到MapReduce給出的一個中間臨時空間中,通過MapReduce中間處理過程,將所有相同的單詞產生的中間結果分配到同樣一個Reduce函數中,而每一個Reduce函數則只需把計數累加在一起即可獲得最后結果。
圖4給出了MapReduce執行過程,分為Map階段以及Reduce兩個階段,都使用了集群中的所有節點,在兩個階段之間還有一個中間的分類階段,即將中間結果包含相同的key的中間結果交給同一個Reduce函數去執行。
圖3 基于MapReduce框架的單詞統計程序舉例
圖4 MapReduce處理程序的執行過程(M代表Map函數的執行,R代表Reduce函數的執行)
·分布式的大規模數據庫管理系統BigTable
由于一部分Google應用程序需要處理大量的格式化以及半格式化數據, Google構建了弱一致性要求的大規模數據庫系統BigTable,BigTable的應用包括Search History,Maps,Orkut,RSS閱讀器等。
圖5給出了在BigTable模型中給出的數據模型,數據模型包括行列以及相應的時間戳,所有的數據都存放在表格單元中,BigTable的內容按照行來劃分,將多個行組成一個小表,保存到某一個服務器節點中,這個小表就被稱為Tablet,圖6是整個BigTable的存儲服務體系結構。
圖5 Google BigTable的數據模型
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://www.guhuozai8.cn/
本文標題:云計算:系統實例與研究現狀(上)
本文網址:http://www.guhuozai8.cn/html/consultation/1083979200.html