常 浩
(太原大學 計算機工程系,山西 太原 030009)
云計算與網格計算
常 浩
(太原大學 計算機工程系,山西 太原 030009)
分布式處理、并行處理和網格計算的發展推動了計算機產業的發展,云計算運動隨之產生。從云計算服務類型、云計算與網格計算的相似與不同方面,探討了云計算優于網格計算的地方,同時介紹了兩者面臨的共同問題以及一些安全方面的問題。
服務;云計算;網格計算
分布式計算、網格計算和SOA被普遍采用以來,云計算運動已應運而生。實現云計算需要三個部分,瘦客戶機(或者能夠在胖瘦之間切換的客戶機)、網格計算和效用計算;網格計算將獨立的計算機連接成一個大的基礎設施,充分利用閑置的資源;效用計算就是支付在共享服務器上使用的服務,就好像支付公共事業一樣(比如電力、天然氣等)。通過網格計算,可以把計算資源作為能夠開啟關閉的公用事業來提供,而云計算更進一步,可以隨需提供計算資源,這樣在使用公用定價時就可以避免過度供給,在滿足數百萬用戶的需求時也消除了過度供給的需要。
消費者通過Internet可以從完善的計算機基礎設施獲得服務,這類服務稱為基礎設施服務(Infrastructure as a Service),基于Internet的服務是基礎設施服務的一部分;Internet上其他類型的服務包括平臺服務(Platform as a Service)和軟件服務(Software as a Service),平臺服務提供了用戶可以訪問的完整或部分的應用程序開發,而軟件服務則提供了完整的可直接使用的應用程序,比如通過Internet管理企業資源。
基礎設施服務在實際應用中非常廣泛,例如The New York Times使用成百上千臺Amazon EC2實例在36小時內處理TB級的文檔數據,如果沒有EC2,The New York Times處理這些數據將要花費數天或者數月的時間。基礎設施服務分為兩種用法,公共和私有。Amazon EC2在基礎設施云中使用公共服務器池,更加私有化的服務會使用企業內部數據中心的一組公用或私有服務器池,如果在企業數據中心環境中開發軟件,那么這兩種類型都能使用,而且使用EC2臨時擴展資源的成本也很低,例如測試,結合使用兩者可以更快地開發應用程序和服務,縮短開發和測試周期。
使用EC2,客戶可以創建自己的Amazon Machine Images(AMI),包括操作系統、應用程序和數據,并控制在給定的時候每個AMI有多少實例運行,客戶為占用的實例時間和帶寬付費,高峰的時候增加計算資源,不需要的時候減少計算資源。EC2、Simple Storage Service及其他Amazon產品能夠通過 Internet為數百萬用戶提供服務。Amazon提供了從單核的x86服務器到8核的x86-64服務器等五種不同類型的服務器,提供服務實例不需要知道使用了哪種服務器,可以把實例放在不同的地理位置或者可用區域內,Amazon允許使用彈性IP地址,可以動態分配給實例。
使用云計算,企業馬上就能大幅提高自己的計算能力,而不需要投資新的基礎設施,開展新的培訓或者購買新的軟件許可證,云計算最適合希望將數據中心基礎設施全部外包的中小型企業,或者希望不用花費高額成本建立更大的數據中心就可獲得更高負荷能力的大型企業,不論哪種情況服務消費者都在Internet上使用所需要的服務并只為所使用的服務付費。服務消費者不用守在PC旁邊使用PC上的應用程序,或者購買針對特定智能手機、PDA及其他設備的版本,消費者不必擁有云中的基礎設施、軟件或平臺,因此降低了前期成本、資本支出和運營成本,消費者也不用關心云中的服務器和網絡怎么維護,消費者可以訪問任何地方的多臺服務器,不需要知道使用的是哪一臺服務器以及它們的位置[1]。
云計算是從網格計算演化來的,能夠隨需應變地提供資源。網格計算可以在云中,也可能不在,這取決于什么樣的用戶在使用它;如果用戶是系統管理員和集成商,就會關心如何維護云,并升級、安裝和虛擬化服務器與應用程序;如果用戶是消費者,就不必關心系統是如何運行的。網格計算要求軟件的使用可以分為多個部分,將程序的片段作為大的系統映像傳遞給幾千個計算機中,網格的一個問題是如果某個節點上的軟件片段失效,可能會影響到其他節點上的軟件片段;如果這個片段在其他節點上可以使用故障轉移組件,那么就可以緩解問題,但是如果軟件片段依賴其他軟件片段完成一項或多項網格計算任務,那么問題仍然得不到解決,大型系統鏡像以及用于操作和維護的相關硬件可能造成很高的資本和運營支出[2]。
云計算和網格計算都是可伸縮的,可伸縮性是通過獨立運行在通過Web服務連接的各種操作系統上的應用程序實例的負載平衡實現的; CPU和網絡帶寬根據需要分配和回收,系統存儲能力根據特定時間的用戶數量、實例的數量和傳輸的數據量進行調整。
兩種計算類型都涉及到多承租和多任務,即很多用戶可以執行不同的任務。訪問一個或多個應用程序實例,通過大型的用戶池共享資源來降低基礎設施成本,提高峰值負荷能力。云計算和網格計算都提供了服務水平協議(SLA)以保證可用性,如果服務達不到承諾的正常運行時間,消費者將由于數據延遲而得到服務補償。
Amazon S3在云中提供了存儲和數據檢索Web服務,可以存儲只有一個字節的對象,也能存儲5 GB甚至 TB級的對象,S3對于對象的每個存儲位置使用桶(bucket)作為容器,這些數據采用和Amazon電子商務網站相同的數據存儲基礎設施安全地實現存儲。雖然網格中的存儲計算非常適合數據密集型存儲,但是存儲一個字節大小的對象從經濟上來說不合適,在數據網格中,分布式數據的數量必須足夠大才能發揮最大效益。
計算型網格關注的是計算量非常大的操作,而云計算中的Amazon Web Services提供了兩種實例,標準和高CPU。
假設有一個程序在云中進行信用卡驗證,并且碰到了十二月份的銷售旺季,于是發現了更高的需求,需要創建更多的實例來滿足這種需求,隨著銷售旺季的過去,這種需求就會減少,資源實例被回收并重新分配給其他應用。為了檢驗程序能否工作,在轉入真正的生產環境之前,在可行性試驗階段需要開發、改進并實現一種閾值策略,看看這種策略能否發現需求的突然增加,從而創建更多的實例以滿足這些需求,看看如何回收閑置的資源并轉移到其他工作中去。
如果企業外包或者和一家云計算供應商共同創建應用程序,可能會發現很難轉向其他采用私有API或者具有不同導入和導出數據格式的供應商,這就造成了兩家云計算供應商之間的互操作性問題,可能需要改變數據的格式或者應用程序邏輯,雖然還沒有出現API或者數據導入和導出的云計算業界標準,但IBM和Amazon Web Services展開了合作以實現互操作性。
云計算并沒有告訴隱含的成本有哪些,比方說,如果企業要使用服務提供商提供的云中的存儲服務和包含 TB級數據的數據庫應用程序,可能需要支付很高的網絡費用,這筆費用要比在購買新的基礎設施、培訓新的雇員或者購買新的軟件許可證方面節省的成本高。網絡成本的另一個例子是,如果企業距離云提供商很遠,可能會遇到很長的延遲,尤其是在流量大的情況下。
假設信用卡驗證應用程序在企業內部數據中心運行得很好,需要通過可行性試驗對云中的應用程序進行檢驗,以檢查是否存在無法預料的行為,比方說,檢查應用程序如何驗證信用卡,在十二月份的銷售高峰期如何分配資源和釋放閑置的資源,并轉向其他任務,如果發現信用卡驗證或者釋放閑置資源出現異常的結果,那么就需要在將其放入云中之前解決這些問題。
在實際使用中Amazon S3和EC2可能遭遇宕機,盡管SLA提供了數據恢復和針對這種情況的補償,但這個期間用戶失去了銷售機會,高管人員得不到需要的重要業務信息。不要被動地等待宕機的發生,用戶應該自己檢查安全性,看看供應商能在多大程度上恢復數據,測試非常簡單,不需要特殊的工具,只需要請求過去存儲的數據,看看供應商恢復它需要多長時間,如果時間很長,問問供應商在不同情況下能獲得多少服務補償,檢查校驗和是否匹配原來的數據。
安全測試的一個方面是用一種可信的算法在本地機器上加密數據,然后使用解密密鑰訪問云中遠程服務器上的數據,如果無法讀取曾經訪問過的數據,那么就是加密密鑰被破壞了或者供應商使用了自己的加密算法。可能需要向供應商了解該算法。另一個是云中數據潛在的問題,為了保護數據,可能需要管理自己的私有密匙,詢問供應商私有密鑰的管理問題,如果簽署的話,Amazon將提供證書。
使用高端數據庫開發軟件,最可能的選擇是使用企業內部數據中心的云服務器池,測試的時候可以使用Amazon Web服務臨時擴展資源,這樣項目管理人員可以更好地控制成本、管理安全問題和分配資源,項目管理人員可以為不同的云類型分配不同的硬件資源,Web開發云、測試云和產品云,不同類型的云成本也是不一樣的;開發云的單位時間成本可能低于產品云,因為SLA和安全性等附加特性都分配在產品云中。
管理人員可以將項目限制為特定的云,比方說,產品云的部分服務可用于產品配置,開發云的服務僅用于開發,為了優化軟件開發項目不同階段的資產,管理人員可以按項目和用戶跟蹤使用情況,從而獲得成本數據,如果發現成本很高,管理人員可花費較低的成本使用Amazon EC2臨時擴展資源,只要安全和數據恢復問題已經得到解決。
云計算的動機之一就是更高的環境友好性。首先,減少了企業內部數據中心運行應用程序需要的硬件,使用云計算替代它們可以減少運行硬件和降低其溫度需要的電能,將這些系統整合到遠程中心里,可以更有效地進行管理。其次,云計算技術提高了電信技術,比如遠程打印和文件傳輸,有可能降低辦公空間、購買新家具、淘汰舊家具、辦公室清潔等方面的需求,還減少了開車上班的需要,降低了二氧化碳的釋放。
在目前和未來,云計算將在技術行業中扮演非常重要的角色,最終會將IT作為服務提供給使用者。文章提出了如何解決云計算和網格計算中的問題,在按需付費環境中的數據恢復和管理私有密匙的安全問題,幫助做好使用云計算的準備。用戶對更大的Internet容量的潛在需求對開發人員和項目團隊的成員提出了挑戰,處理好Web應用程序設計和潛在的安全問題可以減少開發團隊遇到的麻煩。
[1]MICHAEL MILLER.云計算[M].北京:機械工業出版社,2009.
[2]許駿,柳泉波,李玉順.面向服務的網格計算[M].北京:科學出版社,2009.
[責任編輯:袁太生]
Cloud Computing and Grid Computing
CHANG H ao
(Department of Computer Engineering,Taiyuan university,Taiyuan,030009,China)
Distributed processing,parallel processing and grid computing to promote the development of the computer industry development,cloud computing movement arose.Type of service from the cloud computing,cloud computing and grid computing similarities and differences explore that the cloud computing is better than grid computing.Meanwhile,the article referred to the two common problems faced as well as some security issues.
Services;Cloud computing;Grid computing
book=2010,ebook=17
TP311
A
1671-5977(2010)02-0113-03
2010-02-10
常 浩(1979-),男,山西朔州人,太原大學計算機工程系助教,工學碩士,研究方向:數據挖掘,數據庫。