雲端計算與網格計算的深入比較

tolywang發表於2010-10-09
雲端計算與網格計算的深入比較

在寫這篇文章之前,曾經有很多人問過記者類似的問題,比如說:“雲端計算跟網格計算到底什麼關係”、“它們兩個的區別到底在哪裡”、“能不能簡單地講一下其中的區別”?

  其實,一下子很難講清楚其中的具體區別。記者此前曾經在首次接觸雲端計算概念時,將雲端計算看成“網格2.0”,這一點得到了一些業內人士的認可;後來記者也曾經翻譯了美國《Network World》的一篇文章,澄清了有關雲端計算的一些定義(參見:雲端計算的五種定義考)。

  不過,記者認為這些都似乎還比較空泛。在採訪過網格計算相關的技術專家和雲端計算方面的技術專家之後,記者嘗試著給出一些自己的看法。

  當然,從定義上來說,二者都試圖將各種IT資源看成一個虛擬的資源池,然後向外提供相應的服務。雲端計算試圖讓“使用者透明地使用資源”,而網格計算當初的口號就是讓“使用IT資源像使用水電一樣簡單”。

  根據維基百科所提供的定義,雲端計算是一種寬泛的概念,它允許使用者透過網際網路訪問各種基於IT資源的服務,這種服務允許使用者無需瞭解底層IT基礎設施架構就能夠享受到作為服務的“IT相關資源”。

  而網格的內涵包括兩個方面,一個方面是所謂的效用計算或者隨需計算,在這一點上面,網格計算跟雲端計算是非常相似的,都是透過一個資源池或者分散式的計算資源來提供線上的計算或者儲存等服務;另外一個方面就是所謂的“虛擬超級計算機”,以松耦合的方式將大量的計算資源連線在一起提供單個計算資源所無法完成的超級計算能力,這也是狹義上的網格計算跟雲端計算概念上最大的差別,也是本文要討論的出發點。

  目標不同

  一般來說,談到網格計算大家都會想到當年風靡一時的搜尋外星人專案,也就是說透過在本機安裝一個螢幕保護軟體,就能夠利用大家每個人的PC閒暇時候的計算能力來參與搜尋外星人的計算。

  這也說明了網格的目標,是想要儘可能地利用各種資源。它透過特定的網格軟體,將一個龐大的專案分解為無數個相互獨立的、不太相關的子任務,然後交由各個計算節點進行計算。即便某個節點出現問題,沒有能夠及時返回結果,也不影響整個專案的程式,甚至即便某一個計算節點突然崩潰,其所承擔的計算任務也能夠被任務排程系統分配給其他的節點繼續完成。應該說,從這一點來說,作業排程是網格計算的核心價值。

  現在談到雲端計算的時候,我們就能夠立刻想到透過網際網路將資料中心的各種資源打包成服務向外提供。一般來說,儘管雲端計算也像網格計算一樣將所有的資源構築成一個龐大的資源池,但是雲端計算向外提供的某個資源,是為了完成某個特定的任務。比如說某個使用者可能需要從資源池中申請一定量的資源來部署其應用,而不會將自己的任務提交給整個網格來完成。

  從這一點來看,網格的構建大多為完成某一個特定的任務需要,這也是會有生物網格、地理網格、國家教育網格等各種不同的網格專案出現的原因。而云計算一般來說都是為了通用應用而設計的,沒有專門的以某種應用命名的網格。

  分配資源方式的不同

  對於網格計算來說,其資源雖然也已經被池化,在外界看來就是一個巨大的資源池。對於要提交特定任務的使用者來說,他並不知道自己的任務將會在哪些網格的物理節點上執行。他只是按照特定的格式,將作業任務提交給網格系統,然後等待網格返回結果。

  而網格作業排程系統自動找尋與該任務相匹配的資源,然後尋找出空閒的物理節點,將任務分配過去直至完成。雖然網格能夠實現跨物理機進行並行作業處理,但是需要使用者先將並行演算法寫好,並且透過排程系統將作業分解到各個不同的物理節點進行,這個過程相對比較複雜,這也是很多網格計算被建設用來完成特定需求的原因。

  國家教育網格專案組負責人金海教授曾經對記者表示,現階段的教育網格還只能實現將某一個特定任務派往特定的某一個節點,也就是說網格可以監控某一個節點是空閒的,然後分派任務,但是如果沒有合適的節點能夠達到任務完成所需要的配置,那麼任務就必須等待其他任務將資源釋放出來,不能利用分散的配置。

  而云計算是透過虛擬化將物理機的資源進行切割,從這個角度來實現資源的隨需分配和自動增長,並且其資源的自動分配和增減不能超越物理節點本身的物理上限。儘管從控制端來看,雲端計算也將所有的IT資源看成是一個資源池,但是不同晶片的物理機會被歸類到不同的資源池中。

  比如說可以呼應某一個應用的請求,而給其分配一顆x86 CPU或者Power CPU、安騰CPU,分配記憶體和硬碟空間,再給其安裝Linux系統、相關的應用,但是不能同時分配一顆x86 CPU和一顆其他的CPU以構成一個異構的環境。而且,如果節點中的物理機最高CPU數量是4顆的話,那麼即使由10臺這樣的節點構成一個40CPU的資源池,也不能為某一個應用分配8顆CPU的虛擬節點。

  從這種角度來說,Amazon在2006年所推出的EC2專案(Elastic Compute Cloud,彈性計算雲)的確算得上是雲端計算專案,只不過那個時候雲端計算概念未興起,而網格計算的概念方興未艾,Amazon在那個時候依然用網格的概念向外推銷該專案。

  殊途同歸

  其實就像很多人大致瞭解的那樣,網格計算與雲端計算的確有很多的相似之處,這兩者都能夠被看成是分散式計算所衍生出來的概念,都是為了讓IT資源能夠對使用者透明,為了讓IT資源能夠達到更好的使用率。

  從這個提高資源利用率的角度出發,逐漸誕生了Web服務的概念,然後網路公司透過部署數以萬計的伺服器構成龐大的計算資源,得以提供此前無法完成的新服務。企業或者個人能夠透過網際網路利用那些大網路公司所釋放出來的計算資源,進行應用部署或者向外提供服務。這就是從網格計算到雲端計算的歷史過程。

  二者的意義就在於,無論是使用者還是企業開發者,都能夠透過網際網路來獲得資料或者進行計算,儘管本地資源有限,但是能夠透過網路進行復雜的運算,其資料的計算過程對於使用者來說就像網際網路網路對於本地網路使用者一樣,正如大家所記得那個網路雲,後端的實現是透明的。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-675584/,如需轉載,請註明出處,否則將追究法律責任。

相關文章