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

2.1 云計算的技術發展回顧

云計算是伴隨著“IT不再重要”的理念提出來的。最初概念是,企業和個人將自己的數據、計算能力都放在云端,即網絡云里,只要使用者連接上網,就能獲取數據及計算結果。這樣企業可以將IT維護的數據和服務轉移到云端,由專門的公司提供維護、支持與服務,企業無須自己管理,IT對企業來講不再是重要部門。因此提出了“IT不再重要”的理念。

但在云計算發展過程中,企業通過在自己的機房部署虛擬化系統,運行各種服務軟件,員工就能從全世界各地接入,數據與計算都限定在企業網絡里,這種服務方式得到了“私有云”的名稱。這顯然同最初引入的“IT不再重要”的概念有出入。

企業引入云服務,通過云計算提供服務,是公有云概念的延伸,“服務”是云計算的最大特點,強調通過互聯網提供的不是產品,而是服務,使用方式如同目前電信、電網或煤氣網絡一樣,按照使用付費,而不是按照購買產品所有權付費。

云計算實際上是商務和技術的結合,同時也是商務和技術共同推動的結果。實際上技術是基礎,商務是應用。

2.1.1 云計算技術概念的發展

2.1.1.1 效應計算(Utility Computing)階段

在20世紀60年代,由于計算機設備非常昂貴,遠非一般的企業、學校和機構所能承受,于是很多IT界的精英們就有了共享計算機資源的想法。1961年,人工智能之父約翰·麥肯錫(John McCarthy)在一次會議上提出“效應計算”的概念,其核心就是借鑒電廠模式,具體的目標是整合分散在各地的服務器、存儲系統以及應用程序來共享給多個用戶,讓人們使用計算機資源就像使用電力資源一樣方便,并且根據用戶使用量來付費。可惜的是,當時的IT界還處于發展的初期,很多強大的技術還沒有誕生,特別是互聯網。雖然有想法,但是由于技術的原因還是停滯了。

2.1.1.2 網格計算(GRID Computing)階段

在20世紀90年代中期,這個詞用來形容可以讓使用者隨時(on-demand)獲得計算能力(Computing Power)的技術。伊恩·福斯特(Ian Foster)和其他人假定,通過對計算能力使用的協議(protocol)的規范化,可以推動和建立一個計算網格(Computing GRID),類似于實際中的電網。

隨后研究人員制定了許多令人興奮的方式來進一步發展這些想法,如大型聯合系統(TeraGrid,Open Science Grid,caBIG,EGEE,Earth System Grid)。這些系統不僅提供按需的計算能力,而且提供數據和軟件,主要應用于研究或科研領域,一些標準組織(如OGF,OASIS)制定了相關標準。

網格計算是化大規模計算為許多小部分計算的方式,研究如何把一個需要非常巨大的計算能力才能解決的問題分成許多小部分,然后把這些小部分分配給許多低性能的計算機來處理,最后把這些結果綜合起來。可惜的是,由于網格計算在商業模式、技術和安全性方面的不足,其并沒有在工業界和商業界取得預期的成功。

2.1.1.3 云計算階段

云計算的核心與效用計算和網格計算非常相似,也是希望IT技術能像使用電力一樣方便,并且成本低廉。但與效用計算和網格計算最大的不同是,現在的商務需求已經成熟,特別是SaaS的發展,驅動了云計算服務的發展,同時在技術方面也已經基本成熟了。

云計算技術概念的發展為云計算相關實踐的落地提供了思路和方向。云計算技術概念中的某些關鍵部分,如資源共享、終端聯網、算力分布、大規模并行處理、存儲分片、域自治等都為云計算實踐技術的發展做出了直接貢獻。可以這么理解,每一項云計算技術實踐的成就都緊緊跟隨著云計算概念的腳步。

2.1.2 云計算相關技術的發展

在技術層面,云計算是在分布式計算、并行計算、虛擬化技術和海量存儲技術的基礎之上發展而來的,基礎設施即服務(IaaS)其實就是虛擬化發展歷程,而平臺即服務(PaaS)更多的是分布式并行計算和海量存儲發展歷程,而軟件即服務(SaaS)發展更早,其理念更像商業層面的結果,和云計算技術層面似乎并不緊密相連,但隨著發展,軟件即服務(SaaS)往往會依賴平臺即服務(PaaS)和基礎設施即服務(IaaS)技術,是綜合使用云計算實現商業目標的范例。

2.1.2.1 并行計算(Parallel Computing)

云計算是在并行計算之后產生的概念,是由并行計算發展而來,兩者在很多方面存在共性,但二者并不等同,主要是二者解決的問題和動機不同,但解決問題的手段有很多相同之處。

并行計算又稱平行計算,是相對于串行計算來說的,指同時使用多種計算資源的過程,通常的計算資源包括一臺或多臺配有多CPU或計算處理單元的計算機和網絡資源,并行計算的主要目的是快速解決大型且復雜的計算問題。

為利用并行計算,計算問題通常表現為以下特征:

· 將工作分離成離散部分,有助于同時解決。

· 隨時并及時地執行多個程序指令。

· 多計算資源下解決問題的耗時要少于單個計算資源下的耗時。

云計算與并行計算的聯系與區別如下。

(1)云計算萌芽于并行計算。

云計算的萌芽應該從計算機的并行化開始,并行機的出現是人們不滿足于CPU摩爾定律的增長速度,希望把多個計算機并聯起來,從而獲得更快的計算速度。這是一種很簡單也很樸素的實現高速計算的方法,這種方法后來被證明是相當成功的。

(2)并行計算、網格計算只用于特定的科學領域,專業的用戶。

并行計算、網格計算的提出主要是為了滿足科學和技術領域的專業需要,其應用領域也基本限于科學領域。傳統并行計算機的使用是一個相當專業的工作,需要使用者有較高的專業素質,多數是命令行的操作,這是很多專業人士的噩夢,更不用說普通的業余級用戶了。

(3)并行計算追求高性能。

在并行計算時代,人們極力追求的是高速的計算,采用的是昂貴的服務器,各國不惜代價在計算速度上超越他國,因此,并行計算時代的高性能機群是一個“快速消費品”,世界TOP 500高性能計算機的排名在不斷地刷新,一組大型機群如果3年左右不能得到有效的利用,其性能就遠遠地落后了,巨額投資也無法收回。

(4)云計算對于單節點的計算能力要求低。

云計算時代并不追求昂貴的服務器,也不用去考慮TOP 500的排名,云中心的計算力和存儲力可隨著需要逐步增加,云計算的基礎架構支持動態增加的方式,高性能計算將在云計算時代成為“耐用消費品”。

2.1.2.2 分布式計算和網格計算

分布式計算(Distributed Computing)是一門計算機科學,它研究如何把一個需要非常巨大的計算能力才能解決的問題分成許多小的部分,然后把這些部分分配給許多計算機進行處理,最后把這些計算結果綜合起來得到最終的結果。最近的分布式計算項目已經在使用世界各地成千上萬位志愿者的計算機的閑置計算能力。

分布式計算要解決的項目都很龐大,需要驚人的計算量,僅僅由單個的電腦或是個人在一個能讓人接受的時間內計算完成是絕不可能的。在以前,這些問題都由超級計算機來完成。但是超級計算機的造價和維護非常昂貴,這不是一個普通的科研組織所能承受的。隨著科學的發展,一種廉價的、高效的、維護方便的計算方法——分布式計算應運而生。

分布式計算是近年提出的一種新的計算方式。分布式計算與其他算法相比具有以下幾個優點。

· 稀有資源可以共享。

· 通過分布式計算可以在多臺計算機上平衡計算負載。

· 可以把程序放在最適合運行它的計算機上。

其中,共享稀有資源和平衡負載是分布式計算的核心思想之一。

實際上,網格計算就是分布式計算的一種。如果說某項工作是分布式的,那么參與這項工作的一定不只是一臺計算機,而是一個計算機網絡,這種“螞蟻搬山”的方式具有很強的數據處理能力,網格計算的實質就是組合與共享資源并確保系統安全。

分布式計算使用的操作系統包括分布式操作系統、網絡操作系統、基于中間件的操作系統。其中,分布式操作系統又包括多處理器系統和多機系統,多處理器系統只有一個操作系統,多機系統的分布式也是只有一個操作系統分配機器資源,這樣的分布式系統機器與機器之間具有非常高的透明性,而網絡操作系統和基于中間件的操作系統,都是由多個計算機組成,每個計算機有獨立的操作系統。

網格計算是分布式計算的一種。網格計算是伴隨著互聯網而迅速發展起來的、專門針對復雜科學計算的新型計算模式。這種計算模式利用互聯網,把分散在不同地理位置的計算機組成一個“虛擬的超級計算機”,其中每一臺參與計算的計算機就是一個“節點”,而整個系統是由成千上萬個“節點”組成的“一張網格”,所以這種計算方式叫網格計算。這樣組織起來的“虛擬的超級計算機”有兩個優勢,一個是數據處理能力超強;另一個是能充分利用網上的閑置處理能力。

網格計算和云計算有相似之處,特別是計算的并行與合作的特點,但它們的區別也很明顯,主要有以下幾點。

(1)網格計算的思路是聚合分布資源,支持虛擬組織,提供高層次的服務,如分布協同科學研究等。而云計算的資源相對集中,主要以數據中心的形式提供底層資源的使用,并不強調虛擬組織的概念。

(2)在對待異構性方面,二者理念上有所不同。網格計算用中間件屏蔽異構系統,力圖使用戶面對同樣的環境,把困難留在中間件,讓中間件完成任務。而云計算實際上承認異構,用鏡像執行,或者通過提供服務的機制來解決異構性的問題。當然不同的云計算系統不太一樣。

總之,云計算是以相對集中的資源,運行分散的應用(大量分散的應用在若干大的中心執行);而網格計算則是聚合分散的資源,支持大型集中式應用(一個大的應用分到多處執行)。但從根本上來說,從應對互聯網的應用的特點來說,它們是一致的,都是為了在互聯網環境下支持應用,解決異構性、資源共享等問題。

2.1.2.3 虛擬化技術和海量數據處理技術

本節只對這些技術的概念和發展歷史做些簡要的介紹,在后面的章節中會專門介紹技術細節。

1.虛擬化技術

在計算機技術中,虛擬化(virtualization)是將計算機物理資源,如服務器、網絡、內存及存儲等進行抽象、轉換后呈現出來,使用戶可以用比原本的組態更好的方式來應用這些資源,這些資源的新虛擬部分不受現有資源的架設方式、地域或物理組態的限制。

通常虛擬化的目標是管理任務的集中,同時要提高硬件資源的可擴展性和利用率。通過虛擬化,多個操作系統可以在單一的CPU下并行運行。這種并行與多任務處理(multitasking)是不同的,多任務處理是相同的操作系統中運行幾個程序。

使用虛擬化技術,企業可以更好地管理和更新操作系統和應用程序,而無須中斷用戶。傳統的“一臺服務器一個應用程序”的模式導致的最大問題就是資源未充分利用。

雖然虛擬化技術在最近幾年才開始大面積地推廣和應用,但是如果從其誕生時間來看,可以說它的歷史源遠流長。1959年,克里斯托弗(Christopher Strachey)發表了一篇學術報告,名為“大型高速計算機中的時間共享”(Time Sharing in Large Fast Computers),他在文中提出了虛擬化的基本概念,這篇文章也被認為是虛擬化技術的最早論述。可以說虛擬化作為一個概念被正式提出即是從此時開始。

最早在商業系統上實現虛擬化的是IBM公司于1965年發布的IBM 7044。它允許用戶在一臺主機上運行多個操作系統,讓用戶盡可能充分地利用昂貴的大型機資源。隨后虛擬化技術一直只在大型機上應用,而在PC服務器的x86平臺上仍然進展緩慢。這是因為當時x86平臺的處理能力非常單薄。

隨著x86平臺處理能力與日俱增,1999年,VMware公司在x86平臺上推出了可以流暢運行的商業虛擬化軟件。從此虛擬化技術終于走下大型機,來到了PC服務器的世界之中。在隨后的時間里,尤其是CPU進入多核時代之后,個人計算機具有了前所未有的強大處理能力,虛擬化技術在x86平臺上得到了突飛猛進的發展。

2.海量數據處理技術

海量數據(Mass Data)處理技術涉及存儲和數據庫兩方面。

1)對象存儲技術

對象存儲技術提供基于對象的訪問接口,將NAS和SAN兩種存儲結構的優勢進行了有效整合,通過高層次的抽象,使其既具有NAS的跨平臺共享數據和安全訪問的優點,同時又具有SAN的高性能和可伸縮性的優點。

對象存儲一般由Client、MDS(Metadata Server)和OSD(Object Storage Device)三部分組成。

· Client為客戶端,用來發起數據訪問。

· MDS為服務器,用來管理對象存儲系統中的元數據,并保證訪問的一致性。

· OSD為存儲對象數據的設備,它是一個智能設備,包括處理器、RAM內存、網絡接口、存儲介質等以及運行在其中的控制軟件。

OSD將對象(object)作為對象存儲的基本單元,每個對象具有唯一的ID標識符。對象由對象ID、對象數據的起始位置、數據的長度來進行訪問。對象提供類似文件訪問的方法,如Create、Open、Close、Read、Write、對象屬性等;對象的數據包括自身的元數據和用戶數據,其中,元數據用于描述對象特定的屬性,如對象的邏輯大小、對象的元數據大小、總的字節大小;用戶數據用來保存實際的二進制數據。對象分為根對象、組對象和用戶對象。根對象定義了存儲設備以及存儲設備本身的不同屬性;組對象為存儲設備上對象提供目錄;用戶對象存儲實際應用數據。

對象存儲模式的特性使其在處理海量數據存儲請求時具有較大優勢,主要體現在以下幾點。

· 高性能數據存儲:訪問節點有獨立的數據通路和元數據訪問通路,可以對多個OSD進行并行訪問,從而解決當前存儲系統的一個性能瓶頸問題。

· 跨平臺數據共享:由于在對象存儲系統上部署基于對象的分布式文件系統比較容易,所以能夠實現不同平臺下的設備和數據的共享。

· 方便安全的數據訪問:I/O通道的建立及數據的讀寫需要經過授權許可才能進行,從而保證數據訪問的安全性;另一方面,任何Client都可以通過對象存儲系統提供的標準文件接口訪問OSD上的數據,統一的命名空間使Client訪問數據的一致性得到了保證。

· 可伸縮性:對象存儲模式具有分布式結構的特性。由于OSD是獨立的智能設備,可以通過增加OSD的數量,使存儲系統的聚合I/O帶寬、存儲容量和處理能力得到提高,這種平衡擴展模式使得存儲系統能夠具有良好的可伸縮性。

· 智能存儲設備:OSD中集成了部分的存儲管理功能,因此OSD具有一定的智能自主存儲功能。

2)數據庫策略

實現高性能的海量數據存儲可采取的數據庫策略有:

· 分區技術:為了更精細地對數據庫對象如表、索引及索引編排表進行管理和訪問。可以對這些數據庫對象進行進一步的劃分,這就是分區技術。

· 并行處理技術:為了提高系統性能,可以讓多個處理器協同工作來執行單個SQL語句,這就是并行處理技術。

主站蜘蛛池模板: 德保县| 新龙县| 克什克腾旗| 从江县| 乐清市| 边坝县| 七台河市| 屏边| 孟州市| 石嘴山市| 沂南县| 沿河| 油尖旺区| 泰兴市| 唐海县| 河曲县| 沂水县| 曲靖市| 公主岭市| 安阳县| 安龙县| 定南县| 浠水县| 江阴市| 恩平市| 白沙| 奇台县| 台中市| 福清市| 岱山县| 库伦旗| 波密县| 吴旗县| 新邵县| 静乐县| 旅游| 乌什县| 宣汉县| 常山县| 察隅县| 连云港市|