目標不同
一般來說,談到網格計算大家都會想到當年風靡一時的搜尋外星人專案,也就是說通過在本機安裝一個螢幕保護裝置軟體,就能夠利用大家每個人的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服務的概念,然後網路公司通過部署數以萬計的伺服器構成龐大的計算資源,得以提供此前無法完成的新服務。 企業或者個人能夠通過互聯網利用那些大網路公司所釋放出來的計算資源,進行應用部署或者向外提供服務。 這就是從網格計算到雲計算的歷史過程。
二者的意義就在於,無論是使用者還是企業開發者,都能夠通過互聯網來獲得資料或者進行計算,儘管本地資源有限,但是能夠通過網路進行複雜的運算,其資料的計算過程對於使用者來說就像互聯網網路對於本地網路使用者一樣, 正如大家所記得那個網路雲,後端的實現是透明的。