1 引言
任何一項新技術或者新的服務模式的成功,往往是因為其出現在恰當的時間,并且有合適的外因和內因來推動(例如:殺手級的應用),就像WWW的成功應用推動了互聯網的普及一樣,云計算也不例外。
2001年,Google在搜索引擎大會上首次提出云計算的概念,2007年年底,Google的一名工程師再次提出了云計算,自此,云計算開始得到工業界、學術界、和各國政府的廣泛響應.但云計算的歷史淵源可以追溯到元計算(Metacomputing)、普適計算(pervasive computing)、按需計算(On demand computing)、效用計算(Utility computing)、自主計算(Autonomiccomputing)、網格計算(Grid computing)等等,嚴格意義上講,云計算并不是一種完全意義上的新技術,而是一種新的服務模式,云計算將應用和計算機資源包括硬件和系統軟件虛擬化之后包裝成服務,通過按需付費(pay-as-you-go)的方式穿越Internet來滿足用戶各種不同的需求,用戶可以不再需要購買昂貴的計算機系統,不再因為需要短時間使用某個軟件而不得不購買該軟件的使用版權,這種服務模式在過去的十多年中有過充分的探討,這兩年的的重新興起并以一個新的技術名詞出現,并不是因為產生了某種技術上的突破,而是由于信息數字化導致數據的爆炸性增長所帶來的一系列問題讓我們不得不重新思考計算機系統發展的新走向,另外,由于技術進步所帶來的部分老技術的重新復蘇也對云計算的發展起到了推波助瀾的作用。
本文介紹云計算發展的背景和主要動力,探討云計算的特點和優勢,并從云體系結構的角度,探討了云基礎設施下的云計算、云存儲和云傳輸所面臨的挑戰和機遇。
2 云計算的背景和推動力
來自IDC的報告顯示,在2011年將有1800EB(Exabyte)的數據被產生,數據年增長率達到60%,在這些數據中,很大一部分是由個人產生的,這些數據中的絕大部分將存儲在世界各地的大型數據中心,然而,能耗和地板空間(floorspace)成為當前設計和管理大型數據中心所面臨的重要挑戰,例如,2005年美國新建立的數據中心需要消耗的能量相當于加利福尼亞州所消耗能量的10%(大約5GW),需要花費大約40億美金,英國的1500個數據中心每年消耗的能量和英國第十大城市萊卡斯特所需要的能量相當,2010年,英國單個數據中心每年在能量上的花費達到大約740萬英鎊。
圖1 數據中心的熱密度趨勢
另外,消耗的能量除了供各種計算機組件工作外,還產生大量的熱量,由于大部分計算機組件只能在一定的溫度環境下才能保證足夠的可靠性,因此,還需要額外的能量驅動制冷設備,Netapp的調查表明大型數據中心中制冷系統的能耗僅次于服務器,圖1列出了數據中心主要設備的熱密度趨勢.可以認為,數據中心的能耗問題處于一個惡性循環的狀態。
再者,由于數據的增長導致數據中心對新設備需求的不斷增加,但是數據中心的可擴展性完全受限于其地板空間,在數據中心的空間未擴展的情況下,隨著單位地板面積內計算機設備的不斷增加,傳統數據中心的設備容量必將達到極限。
然而,與以上數據形成鮮明對比的是,許多大型企業的IT基礎設施的利用率大約只有35%,在某些企業中可能會低至15%,Google也報告稱其服務器的利用率往往在10%到15%之間,一方面是由于數據增漲導致現代數據中心正面臨著能耗、地板空間、和可擴展性等問題的嚴峻挑戰;另一方面則是IT基礎設施資源利用率的極度低下,這使得工業界不得不重新思考所面臨的問題,并努力尋求解決的方法。
虛擬機技術的重新復蘇也為云計算的的發展起到了推波助瀾的作用,虛擬機技術出現在上世紀70年代,并主要用在IBM360的大型機中,計算機硬件技術的發展基本上遵循摩爾定律,現在采用商用化的組件組成的桌面電腦其性能已足以支持多個操作系統的并行運行,由于虛擬機技術可以實現計算資源的按需分配,因此,完全可以利用商用化的計算機組件來構造云環境,在這樣一個大的背景下,云計算在經歷了數輪技術的洗禮之后被重新提上議程。
3 云體系結構
計算機從誕生到今天,經歷了幾次大的體系結構上的變遷,從上世紀50年代到70年代初期,基本上是獨立專用的大型機系統一統天下;70年代初期到80年代中期,開始有些小型機系統與自有網絡;80年代中期到90年代初期,開始出現服務器與PC客戶機通過局域網互連;90年代初期至今,服務器與PC客戶機通過局域網、廣域網或Internet相連;當前正在推動的云計算則意味著從PC機時代重返大型機時代,但現在的大型機(即云)不再是定制的專用超級計算機,而是由地理上分布的、異構的資源通過虛擬化技術聚合在一起,并能夠對用戶提供按需的資源分配,以提高IT基礎設施的資源利用率。
圖2 云環境的解析圖
圖2表示了云環境的解析圖,正如引言中提到的云計算是一種服務模式,現在學術界和工業界已經達成共識的是按服務類型大致可將云計算分為三類:將軟件作為服務(Softwareas a service,SaaS)、將平臺作為服務(Platform as a service,PaaS)、和將基礎設施作為服務(Infrastructure as a Service,IaaS),SaaS是指將應用軟件統一部署在云環境下,用戶可以根據實際需要通過定制或租用的方式使用基于Web的軟件來完成所需的工作,PaaS則將開發環境、硬件資源等組合成平臺并以服務的方式提供給用戶,用戶則可以在該平臺上開發應用程序并通過互聯網供其他用戶使用,IaaS主要是指以服務方式提供各種IT資源,可以包括計算、存儲和網絡.
圖3 云基礎設施架構圖
圖靈在1936年通過一個讀寫磁頭、一個有限狀態控制器、和一條雙向可無限延長的、被分成一個個方格的磁帶(方格里寫有符號)構造了自動計算機的理論模型,即圖靈機,此后,馮·諾伊曼基于圖靈機進一步提出存儲程序的概念,指出計算機由控制器、運算器、存儲器、輸入設備和輸出設備組成.自此,馮·諾伊曼結構奠定了現代計算機的基本架構,即,計算機系統結構的研究基本上可以簡單歸類于3個問題:計算、存儲與傳輸,三者相互影響.
那么到底該如何來構造云基礎設施的體系結構?我們認為現在廣泛談論的云計算是一個相對廣義的名詞,嚴格意義上來講,現在的云計算確切的名字應該叫云環境,作為云環境最核心的部分,云基礎設施應該遵循馮·諾伊曼體系結構,將其可以劃分為云計算、云存儲和云傳輸,上頁圖3表示了云基礎設施的架構圖,硬件資源包括服務器/集群、網絡設備和存儲系統經過虛擬化之后對外提供按需的計算、數據存儲和傳輸。
云在體系結構上一個重要的特點是將地理上分布、大規模、異構的資源進行虛擬化,并能夠對用戶提供按需服務。
很多針對計算機相關的資源的訪問往往都表現出一種突發性的行為,其主要表現為在短時間內有大量的事件發生.例如郵件服務器往往在早上9點至10點相對繁忙,這是因為絕大部分人上班的第一件事情往往是處理昨天的郵件,而在晚上0點左右最空閑,因為大部分的人這時候都休息了,這種突發性訪問的直接后果就是導致短時間內的資源竟爭,從而造成擁塞和響應時間的延遲,甚至有可能產生拒絕服務,一個簡單的例子如下:假設某個電子郵件服務器由集群系統構成,大部分時間只需要處理3000個請求每秒,但在突發時段必須要處理10000個I/O請求每秒,如果每個集群節點磁盤的處理能力為1000個I/O請求每秒,則意味該系統在一般情況下只需要3個集群節點并行處理就可以滿足要求(理想情況).然而,在突發時段必須要10個集群節點并行工作才能保證服務質量,否則就會產生巨大的訪問延遲,甚至數據丟失,這表示在非突發時段,我們不得不提供大量的資源以保證突發時段服務器系統的服務質量。
在云環境下,如果能夠較為準確的預測負載的情況,進行合適的負載遷移和資源調度,可以很大程度上解決這個問題.例如,由于時差,中國時間早上9點在英國則是下午5點,云環境下,在兩個不同國家的網絡用戶在不同的時間段會表現一種完全不同的行為,此時,可以將英國境內的部分云資源調度給中國使用,來解決在中國出現的數據的突發性訪問,也可以將英國的部分負載遷移到中國境內的云資源上,從而讓在較長一段時間內不被訪問的部分資源轉入低能耗狀態以節省能量,因此,和通用的計算機系統結構不同的是,云的成功在很大程度上決定于云的規模效應,同時,一個設計良好的云基礎設施應該能夠合理地安排計算、存儲和傳輸,使得其規模和性能能夠同步擴展,下面我們來探討云計算、云存儲、云傳輸各自面臨的問題以及可能的解決方法。
4 云計算
云計算系統被認為是可以替代超級計算機和專用的計算集群,而且更可靠、可擴展,其中一個很重要的賣點就是scaleby credit card,就是說在經濟許可的情況下,可以立即進行擴展或者進行臨時的擴展,此外,網格計算的一種基本工作模式是用戶向網格提交作業,然后由調度器在網格環境下尋找合適的資源來處理相應的作業,待作業處理完成之后再將結果返還給用戶,網格環境下的作業可以分成兩種:批處理的作業和交互式處理的作業,網格環境下的作業處理方式可以較好地應對大計算量、批處理的作業,但是,對于交互式的作業卻顯得有些力不從心,同時,網格的這種處理模式也很單一,缺乏靈活性,如果能夠將計算資源按需地分配給用戶,由用戶自主地管理和使用資源,則可以極大的簡化系統的管理,同時賦予用戶極大地靈活性,但是,在網格環境下實現計算資源的按需分配一直是一個旋而未解的問題,對于云計算而言,最關鍵的問題是如何對用戶申請的計算資源實行按需分配,并能進行有效的擴展和管理。
4.1 云計算實例分析
近年來,由于計算機硬件性能的大幅提升(根據Moore定律,CPU性能和內存容量每18個月就可翻一番),使得虛擬機技術獲得了良好的發展基礎和廣泛的應用前景,虛擬機通過軟件來模擬具有完整硬件系統功能的、運行在一個完全隔離環境中的完整計算機系統,虛擬機具有很多優點:
1)可以充分共享計算機資源以提高資源的利用率,多個操作系統可以同時存在和運行于同一臺計算機上(在單個服務器上有可能同時運行數百個虛擬機器),操作系統的部署靈活方便,并且能夠有效隔離操作系統和資源;
2)虛擬機中的操作系統崩潰后恢復比較容易,并不會對同一個物理平臺上的其它操作系統造成影響,而且比較容易實現操作系統的數據重放和回滾。
由于虛擬機技術可以在同一個計算機硬件平臺上運行多個操作系統和相應的應用程序,并且有效地保證彼此之間的隔離和安全,因此,如果在同一個硬件平臺上運行多個虛擬機,將可以極大地提高硬件資源的利用率,例如,一個典型的數據中心往往有郵件服務器、FTP服務器、數據庫服務器等.為了保證服務的連續性和隔離單個服務器的失效對其它服務器的影響,通常將每個應用運行在一個獨立的計算機平臺上.利用虛擬機技術,在硬件資源許可的條件下,完全可以在同一個平臺上運行多個應用,另外非常重要的一點是,虛擬機技術提供了按需使用計算資源的一種手段和方式。
圖4 亞馬遜的EC2提供的5個實例
云計算服務商亞馬遜的EC2(Elastic Computing Cloud),GoGrid都是通過虛擬機技術來提供按需計算服務,用戶只需要給出具體的參數要求,云計算平臺就能分配一個相應的虛擬計算機,圖4表示亞馬遜的EC2所提供的實例類型,其中ECU是亞馬遜自己定義的一個CPU的性能單位,一個ECU相當于1,0-1,2 GHz 2007 Opteron or Xeon 的性能,用戶可以使用圖4中5個實例中的任何一個來構造自己的系統,同時用戶還可以根據需要向已有的系統中增加或者刪減實例,以實現系統的彈性擴展。
EC2作為最有代表性的云計算平臺之一,2008年,Walker分別利用macrobenchmark和microbenchmark對利用EC2構造的虛擬集群和已有的高性能集群進行了性能的測試比較。
他利用NAS并行Benchmark測試了在不同的集群上運行科學計算應用的性能,也利用了mpptest microbenchmark測試了在不同的集群上運行MPI的性能,他的測試結果表明在傳統的高性能計算集群和利用EC2構造的集群之間還存在著較大的性能差距,因此,他認為利用商用化的云計算平臺來構造高性能的集群計算環境還有很長的路需要走。
2009年,Ostermann等人再次利用亞馬遜的EC2來進行了科學計算方面的測試,在利用Benchmark測試過程中,好幾次由于亞馬遜云計算平臺方面的原因導致測試未能完成,這時只能進行手工的干預,他們的測試結果表明在云計算平臺上來進行計算密集型的科學計算,其性能和可靠性方面都還有待進一步地提高,盡管該平臺為科學家提供了一種臨時、短時間內的計算資源的解決方案。
個人認為,現有的云計算平臺應該能滿足個人用戶的需求,但是,對于大規模的計算密集型的應用,還有很多問題有待解決。
4.2 云計算系統面臨的挑戰
虛擬機技術也帶來了一系列的問題,正如前面提到的,虛擬機技術最初使用在IBM360的大型機中,大型機中往往采用專門的通道來來保證外部設備的訪問和性能,但是,將該技術移植到基于商用組件的X86環境下,由于缺乏專用的通道和通道處理機來應對I/O訪問,虛擬機環境下的I/O問題已經成為當前虛擬機系統中面臨的最大問題,在傳統的計算機系統中,應用程序通過系統調用產生異步I/O操作后直接返回,待I/O操作完成后會產生中斷給操作系統,并將I/O操作產生的數據交給應用程序,然而在虛擬機環境下,該過程被極大地復雜化了,以圖5為例,在第二個域中的應用程序通過系統調用產生異步I/O,該I/O指令會進入虛擬機管理程序(Hypervisor),該管理程序將該I/O操作轉給第零個域,然后返回到第二個域的操作系統(因為是異步I/O)和上層的應用程序,此時第零個域的操作系統將進行實際的I/O操作,待I/O完成后,會產生一個虛擬中斷給第零個域的操作系統,該操作系統給虛擬化軟件發出相應的虛擬中斷,待虛擬化軟件完成I/O后,會給第零個域的操作系統返回一個系統調用來喚醒第二個域的操作系統,然后虛擬機管理程序將I/O完成的中斷交給第二個域的操作系統,最后將I/O操作產生的數據交給第二個域中的應用程序,由此可見,在虛擬機環境下的I/O操作必將成為整個系統的瓶頸。
圖5 基于XEN的一個典型的虛擬機環境
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://www.guhuozai8.cn/
本文標題:云基礎設施下的體系結構、挑戰與機遇(上)