官术网_书友最值得收藏!

2.5 云計算技術

2.5.1 概念介紹

云計算(Cloud Computing)是一種分布在大規模數據中心,能動態地提供各種服務器資源,以滿足科研、電子商務等領域需求的計算平臺。云計算是一種商業計算模型,云計算是分布式計算、并行計算和網格計算的發展,是虛擬化、效用計算、PaaS、SaaS等概念混合演進并躍升的結果,將計算任務分布在大量計算機構成的資源池上,使各種應用系統能夠根據需要獲取計算力、存儲空間和各種軟件服務。

云計算平臺通過相關調度策略利用虛擬化技術,針對用戶的不同需求,動態、透明地提供其所需的虛擬計算與存儲資源,并在當前用戶不使用時將其資源動態回收并供給其他用戶,讓普通用戶實現大規模并行計算與海量數據操作成為可能,也為搭建統一開放的知識網絡系統提供了底層支持。

一個云計算平臺就是通過對一系列IT資源的配置,使這些IT資源能根據用戶的需要來動態地分配。用戶可以通過簡易的服務調用接口,用各種終端調用云計算平臺提供的服務,如圖2.18所示。

圖2.18 云計算概念

2.5.2 原理及特點

2.5.2.1 基本原理

云計算將大量的計算機資源虛擬化構成資源庫,利用大量的分布式計算機進行計算高速互聯網的傳輸能力,將數據的處理過程從個人計算機或服務器移到互聯網上的計算機集群中。通過簡化的服務接口,采用按量計費的商業模式,使用戶可通過各種終端設備(計算機、移動電話、筆記本等)享受云提供的各種服務,如圖2.19所示。

圖2.19 云計算的實現機制

從用戶角度來看,云計算平臺可以分為公共云和私有云兩類。公共云由第三方運行和維護,如Google、Amazon等通過互聯網為用戶提供服務。而私有云則是由企業自己搭建的,規模一般比較小,但提供了更適合企業運營的服務。

當前比較認可的云計算基礎架構如圖2.20所示,由基礎設施層、應用平臺層、交付服務層構成。

圖2.20 云計算基礎架構

(1)基礎設施層。本層主要由硬件設備設施構成,如大規模的廉價PC或服務器,對平臺起支撐作用。利用虛擬技術切分硬件資源,動態地對外提供服務。

(2)應用平臺層。本層是整個云計算平臺的軟件基礎,提供支撐云計算平臺的核心技術,并通過分布式計算框架把底層的硬件資源有效地組織起來,隱藏后臺硬件資源,對外提供統一的計算能力和輸出。

(3)交付服務層。用戶從本層中直接獲得相關服務。用戶可以用PaaS/SaaS方式從云中獲得所需服務。開發人員可以用PaaS方式,通過調用云計算平臺提供的API、Web Service或者直接基于運行環境進行應用開發。

2.5.2.2 基本特點

(1)超大規模。“云”具有相當的規模,Google云計算已經擁有100多萬臺服務器,Amazon、IBM、微軟、Yahoo等的“云”均擁有幾十萬臺服務器。企業私有云一般有數百上千臺服務器。

(2)可靠性。“云”使用了數據多副本容錯、計算節點同構可互換等措施來保障服務的高可靠性。單純從技術實現角度講,使用云計算比使用本地計算可靠。

(3)虛擬化。虛擬化使得云計算能夠實現硬件資源的虛擬化管理。

(4)動態性。云計算動態分配資源,按需提供軟硬件服務。“云”的規模可以動態伸縮,滿足應用和用戶規模增長的需要。

(5)通用性。云計算不針對特定的應用,在“云”的支撐下可以構造出千變萬化的應用,同一個“云”可以同時支撐不同的應用運行。

(6)服務資源庫。“云”可擁有多個服務的資源庫,無數的軟件和服務將被置于“云”中,為用戶提供服務。

2.5.3 云計算關鍵技術

云計算作為一種新的超級計算方式和服務模式,以數據為中心,是一種數據密集型的超級計算。它運用了多種計算機技術,其中以編程模型、海量數據分布存儲技術、海量數據管理技術、虛擬化技術和云計算平臺管理技術最為關鍵。

2.5.3.1 編程模型

MapReduce作為Google開發的Java、Python、C++編程模型,是一種簡化的分布式編程和高效的任務調度模型,應用程序編寫人員只需將精力放在應用程序本身,使云計算環境下的編程十分簡單。而關于集群的處理問題,包括可靠性和可擴展性,則交由平臺來處理。MapReduce模式的思想是通過“Map”(映射)和“Reduce”(化簡)這兩個簡單的概念來構成運算基本單元,先通過Map程序將數據切割成不相關的區塊,分配(調度)給大量計算機處理,達到分布式運算的效果,再通過Reduce程序將結果匯整輸出,即可并行處理海量數據。簡單地說,云計算是一種更加靈活、高效、低成本、節能的信息運作的全新方式,通過其編程模型可以發現云計算技術是通過網絡將龐大的計算處理程序自動拆分成無數個較小的子程序,再由多部服務器所組成的龐大系統搜索、計算、分析之后將處理結果回傳給用戶。通過這項技術,遠程的服務供應商可以在數秒之內,達成處理數以千萬計甚至億計的信息,達到和“超級計算機”同樣強大性能的網絡服務。

2.5.3.2 海量數據分布存儲技術

云計算系統采用分布式存儲的方式存儲數據,用冗余存儲的方式保證數據的可靠性。云計算系統中廣泛使用的數據存儲系統是Google的GFS和Hadoop團隊開發的GFS的開源實現HDFSGFS即Google文件系統(Google File System),是可擴展的分布式文件系統,用于大型的、分布式的、對大量數據進行訪問的應用。GFS的設計思想不同于傳統的文件系統,是針對大規模數據處理和Google應用特性而設計的。它雖然運行于廉價的普通硬件上,但可以提供容錯功能。它可以給大量的用戶提供總體性能較高的服務。一個GFS集群由一個主服務器(Master)和大量的塊服務器(Chunks-Server)構成,并被許多客戶(Client)訪問主服務器存儲文件系統所有的元數據,包括名字空間、訪問控制信息、從文件到塊的映射以及塊的當前位置。它還控制系統活動范圍,如塊租約(Lease)管理、孤立塊的垃圾收集、塊服務器間的塊遷移。主服務器定期通過心跳(Heart Beat)消息與每個塊服務器通信,并收集它們的狀態信息。

2.5.3.3 海量數據管理技術

海量數據管理是指對大規模數據的計算、分析和處理,如各種搜索引擎。以互聯網為計算平臺的云計算能夠對分布的、海量的數據進行有效可靠的處理和分析。因此,數據管理技術必須能夠高效地管理大量的數據,通常數據規模達TB甚至PB級。云計算系統中的數據管理技術主要是Google的BT(Big Table)數據管理技術,以及Hadoop團隊開發的開源數據管理模塊HBase和Hive,作為基于Hadoop的開源數據工具(http:// appengine.google.com),主要用于存儲和處理海量結構化數據。BT是建立在GFS、Scheduler、LockService和MapReduce上的一個大型的分布式數據庫,與傳統的關系數據庫不同,它把所有數據都作為對象來處理,形成一個巨大的表格,用來分布存儲大規模結構化數據。Google的很多項目使用BT來存儲數據,包括網頁查詢、GoogleEarth和Google金融。這些應用程序對BT的要求各不相同:數據大小(從URL到網頁到衛星圖像)不同,反應速度不同(從后端的大批處理到實時數據服務)。對于不同的要求,BT都成功地提供了靈活高效的服務。

2.5.3.4 虛擬化技術

虛擬化(Virtualization)技術是云計算系統的核心組成部分,也是將各種計算及存儲資源充分整合和高效利用的關鍵技術。云計算的特征主要體現為虛擬化、分布式和動態可擴展,而虛擬化作為云計算最主要的特點,對云計算環境搭建起著決定性作用。虛擬化技術是伴隨著計算機技術的產生而出現的,作為云計算的核心技術,扮演著十分重要的角色,提供了全新的數據中心部署和管理方式,為數據中心管理員帶來了高效和可靠的管理體驗,還可以提高數據中心的資源利用率,提供低功能綠色環保。通過虛擬化技術,云計算中每個應用部署的環境和物理平臺是沒有關系的,通過虛擬平臺進行管理、擴展、遷移、備份,種種操作都是通過虛擬化層次來完成的。虛擬化技術實質是實現軟件應用與底層硬件相隔離,把物理資源轉變為邏輯可管理資源。目前云計算中虛擬化技術主要包括將單個資源劃分成多個虛擬資源的分裂模式,也包括將多個資源整合成一個虛擬資源的聚合模式。虛擬化技術根據對象可分成存儲虛擬化、計算虛擬化、網絡虛擬化等,計算虛擬化又分為系統級虛擬化、應用級虛擬化和桌面虛擬化。

2.5.3.5 云計算平臺管理技術

云計算資源規模龐大,一個系統服務器數量眾多(可能高達10萬臺),結構不同并且分布在不同物理地點的數據中心,同時還運行著成千上萬種應用。如何有效地管理云環境中的這些服務器,保證整個系統提供不間斷服務必然是一個巨大的挑戰。云計算平臺管理系統可以看作云計算的“指揮中心”。通過云計算系統的平臺管理技術,能夠使大量的服務器協同工作,方便地進行業務部署和開通,快速發現和恢復系統故障,通過自動化、智能化的手段實現大規模系統的可靠運營和管理。

2.5.4 云計算應用現狀

目前,各大IT巨頭根據自己公司的特點,分別推出了自己的云計算服務。云計算的典型應用包括郵件、搜索、網絡存儲、文檔處理以及大量的Web 2.0的應用。目前比較成規模的云計算公司有Google、IBM、Amazon百度等。

2.5.4.1 Google云計算平臺

Google公司有一套專屬的云計算平臺,這個平臺先是為Google最重要的搜索應用提供服務,現在已經擴展到其他應用程序。Google的云計算基礎架構模式包括4個相互獨立又緊密結合在一起的系統:Google File System分布式文件系統,針對Google應用程序的特點提出的MapReduce編程模式,分布式的鎖機制Chubby以及Google開發的模型簡化的大規模分布式數據庫BigTable。Google File System文件系統(GFS)。

除了可伸縮性、可靠性及可應用性,GFS設計還受到Google應用負載和技術環境的影響,這主要體現在以下4個方面。

(1)充分考慮到大量節點的失效問題,需要通過軟件將容錯以及自動恢復功能集成在系統中。

(2)構造特殊的文件系統參數,文件通常大小以GB計,并包含大量小文件。

(3)充分考慮應用的特性,增加文件追加操作,優化順序讀寫速度。

(4)文件系統的某些具體操作不再透明,需要應用程序協助完成。

通常一個GFS集群包含一個主服務器和多個塊服務器,并被多個客戶端訪問。大文件被分割成固定尺寸的塊,塊服務器把塊作為Linux文件保存在本地硬盤上,并根據指定的塊句柄和字節范圍來讀寫塊數據。為了保證可靠性,每個塊被默認保存3個備份。主服務器管理文件系統所有的元數據,包括名字空間、訪問控制、文件到塊的映射、塊物理位置等相關信息。通過服務器端和客戶端的聯合設計,GFS對應用支持達到性能與可用性最優。GFS是為Google應用程序本身而設計的,在內部部署了許多GFS集群。有的集群擁有超過1000個存儲節點,超過300TB的硬盤空間,被不同機器上的數百個客戶端連續不斷地頻繁訪問著。

Google通過構造MapReduce編程規范來簡化分布式系統的編程。應用程序編寫人員只需將精力放在應用程序本身,而關于集群的處理問題,包括可靠性和可擴展性,則交由平臺來處理。MapReduce通過“Map”(映射)和“Reduce”(化簡)這樣兩個簡單的概念來構成運算基本單元,用戶只需提供自己的Map函數以及Reduce函數即可并行處理海量數據。為了進一步理解MapReduce的編程方式,下面給出一個基于MapReduce編程方式的程序偽代碼。程序功能是統計文本中所有單詞出現的次數。在Map函數中,用戶的程序將文本中所有出現的單詞都按照出現計數1(以Key-Value對的形式)發射到MapReduce給出的一個中間臨時空間中。通過MapReduce中間處理過程,將所有相同的單詞產生的中間結果分配到同樣一個Reduce函數中。而每一個Reduce函數則只需把計數累加在一起即可獲得最后結果。

由于一部分Google應用程序需要處理大量的格式化以及半格式化數據,Google構建了弱一致性要求的大規模數據庫系統——BigTable。BigTable的應用包括Search History、Maps、rkut、RSS閱讀器等。

除了以上構成Google內部云計算基礎平臺的3個主要部分,Google還構建其他云計算組件,包括一個領域描述語言以及分布式鎖服務機制等。Sawzall是一種建立在Map Reduce基礎上的領域語言,專門用于大規模的信息處理。Chubby是前述的一個高可用、分布式數據鎖服務。當有機器失效時,Chubby使用Paxos算法來保證備份的一致性。Chubby的小型分布式文件系統的每個單元都可以用來提供鎖服務。

2.5.4.2 IBM藍云計算平臺

IBM的藍云計算平臺是一套軟、硬件平臺,將Internet上使用的技術擴展到企業平臺上,使得數據中心使用類似于互聯網的計算環境。藍云大量使用了IBM先進的大規模計算技術,結合了IBM自身的軟件、硬件系統以及服務技術,支持開放標準與開放源代碼軟件。藍云基于IBM Almaden研究中心的云基礎架構,采用了Xen和PowerVM虛擬化軟件,Linux操作系統映像以及Hadoop軟件(Google File System及MapReduce的開源實現)。IBM已經正式推出了基于x86芯片服務器系統的藍云產品。

藍云計算平臺由一個數據中心、IBM Tivoli部署管理軟件(Tivoli Provisioning Manager)、IBM Tivoli監控軟件(IBM Tivoli Monitoring)、IBM WebSphere應用服務器、IBM DB2數據庫以及一些開源信息處理軟件和開源虛擬化軟件共同組成。藍云的硬件平臺環境與一般的x86芯片服務器集群類似,使用刀片的方式增加了計算密度。藍云軟件平臺的特點主要體現在虛擬機以及對于大規模數據處理軟件Apache Hadoop的使用上。Hadoop是開源版本的Google File System軟件和MapReduce編程規范。

藍云軟件的一個重要特點是虛擬化技術的使用。虛擬化的方式在藍云中有兩個級別,一個是在硬件級別上實現虛擬化,另一個是通過開源軟件實現虛擬化。硬件級別的虛擬化可以使用IBM P系列的服務器,獲得硬件的邏輯分區LPAR(Logic Partition)。邏輯分區的CPU資源能夠通過IBM Enterprise Workload Manager來管理。通過這樣的方式加上在實際使用過程中的資源分配策略,能夠使相應的資源合理地分配到各個邏輯分區。系統邏輯分區最小粒度是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之上。兩者都能提供可靠性、可擴展性,至于如何使用還需要由建立在云計算平臺上的應用程序來決定,這也體現了計算平臺與上層應用相互協作的關系。

2.5.4.3 Amazon的彈性計算云

Amazon是互聯網上最大的在線零售商,每天擔負著大量的網絡交易,同時Amazon也為獨立軟件開發人員以及開發商提供云計算服務平臺。Amazon將云計算平臺稱為彈性計算云(Elastic Compute Cloud,EC2),是最早提供遠程云計算平臺服務的公司。Amazon將自己的彈性計算云建立在公司內部的大規模集群計算的平臺上,而用戶可以通過彈性計算云的網絡界面,去操作在云計算平臺上運行的各個實例(Instance)。用戶使用實例的付費方式由用戶的使用狀況決定,即用戶只需為自己所使用的計算平臺實例付費,運行結束后計費也隨之結束。這里所說的實例,即由用戶控制的完整的虛擬機運行實例。通過這種方式,用戶不必自己去建立云計算平臺,節省了設備與維護費用。

Amazon的彈性計算云由名為Amazon網絡服務(Amazon Web Service)的現有平臺發展而來。2006年3月,Amazon發布了簡單存儲服務(Simple Storage Service,S3),用戶使用SOAP協議存放和獲取自己的數據對象。2007年7月,Amazon公司推出了簡單隊列服務(Simple Queue Service,SQS),這項服務能夠使得托管虛擬主機之間發送的消息,支持分布式程序之間的數據傳遞,無須考慮消息丟失的問題。Amazon又繼續提供了EBS(Elastic Block Storage)服務,為用戶提供塊級別的存儲接口。在提供這些基礎設施的同時,Amazon公司開發了彈性計算云EC2系統,開放給外部開發人員使用。

2.5.5 我國云計算發展趨勢

在《國務院關于促進云計算創新發展培育信息產業新業態的意見》《關于積極推進“互聯網+”行動的指導意見》《云計算綜合標準化體系建設指南》等利好政策作用下,近年我國云計算產業得以迅速發展,產業已經走過培育與成長階段,現已進入成熟發展期,產業格局基本穩定。

在企業方面,國內云計算產業各領域主要領先廠商眾多,在IT基礎設施與系統集成服務方面,有浪潮信息、華勝天成、浙大網新和華東計算機等;在IaaS運營維護方面,有中國電信、中國聯通、中國移動、百度和世紀互聯等;PaaS云平臺,有八百客、阿里云、華為和華勝天成等;SaaS云應用軟件,有八百客、阿里軟件、三五互聯、擁有軟件、焦點科技和東軟集團等。

雖然我國國內目前云計算產業前景美好,但與發達國家相比,我國云計算市場規模也有待提高,未來仍舊需要努力追趕。相關公司需要把握好以下云計算發展趨勢,并抓住機遇發展。

(1)云時代信息安全重要性日益凸顯。隨著云計算和移動互聯網的普及,越來越多的業務在云端開展,越來越多的數據在云端存儲,用戶數據泄露或丟失是云計算信息安全面臨的巨大的安全風險。因此,基于云服務的安全防護工作難度雖然加大,但這一領域的商業價值也將愈加凸顯。

(2)垂直領域融合加深將帶動云計算市場迅猛發展。相較于美國等發達國家,我國云計算市場規模仍較小,云計算應用領域及滲透深度有很大的空間。云計算服務商不斷加深與各垂直領域的融合,將開拓更大的云計算服務空間。

(3)抓住智慧城市與智慧工業發展契機。作為云計算應用的重要領域,智慧城市與智慧工業概念興起,將使云計算大有可為,值得企業發力。

主站蜘蛛池模板: 资兴市| 张家港市| 灵川县| 屯昌县| 聊城市| 若尔盖县| 石城县| 综艺| 山东省| 星座| 吉安县| 中西区| 三台县| 仁布县| 兰溪市| 潮州市| 榆林市| 韶关市| 扶余县| 无锡市| 芜湖县| 漠河县| 宣武区| 佛坪县| 钟山县| 遂宁市| 汝州市| 巴彦县| 衡东县| 郧西县| 鸡西市| 乐亭县| 永丰县| 丹凤县| 濮阳县| 剑川县| 茶陵县| 营口市| 梓潼县| 高唐县| 西华县|