如今,“云計算”簡單的功能,低成本的優勢已經成為IT業界的熱門詞匯,不管是專業人士還是廠商,都希望數據中心能發生翻天地覆的變化。HPC——高性能計算,許多相關用戶也都在貔虎其負載是否適合于部署在云環境中。之所以會意見不一,主要在于人們對于“究竟什么是云計算?”以及“什么樣的應用算得上是HPC應用?這問題上的答案大相徑庭。
HPC應用是無法“一刀切”的,我們不可能說一下子就把某類應用直接歸納到HPC應用中。 2000年初,計算機應用從集中控制的大型主機轉向分布式的計算集群的時候,就完完全全的說明了這一事實。這種做法不僅將普通的商用硬件帶入了HPC領域,也給客戶提供了更多的選擇。 HPC用戶可以按照最低需求來構建HPC,從而節省投資成本。你會發現,有些 HPC系統的節點數較少,但每個處理器配備的內存較大,帶寬較窄或節點之間的延時較長;而另一些 HPC系統則可能按照不同的參數要求來設計,所有這些都是針對應用需求量身定做的。
然而,對大多數企業或IT部門來說,降低成本的壓力都在與日俱增,因此“按用量付費”的云計算模式也就應運而生。問題的關鍵是,并非所有的計算類型都適合于云架構。
Rackspace、亞馬遜、Savvis以及其他一些 IaaS提供商都采用不同的虛擬化技術來管理其底層的硬件資源,遺憾的是每家廠商采用的虛擬化技術是不同的,而且有時是保密的,比如AWS EC2。因此,對HPC應用來說,究竟是采用虛擬機還是物理機就成為構建HPC云之前需要特別討論的一個問題。
虛擬化問題
高性能計算(HPC)架構師遲遲沒有采用虛擬化技術的主要原因有兩個:其一是人們通常認為的虛擬化會嚴重影響應用程序的性能,虛擬化提升靈活性的優點被其降低了應用程序吞吐量的缺點所壓倒;其二是傳統的HPC基礎架構的利用率已經非常高了(通常為80%~95%),因此,通常推動企業采用虛擬化的動因(提高硬件利用率、整合服務器或提高許可證利用率)不足以抵消使用虛擬化資源運行工作負載帶來的復雜性和費用增加的缺點。
然而在很多情況下,HPC架構師又愿意犧牲5%的應用程序性能來獲得虛擬化帶來的靈活性和彈性。HPC用戶愿意這樣做的主要原因有以下幾個:
安全性——虛擬機可以作為實例添加到虛擬局域網中,或者從虛擬局域網中刪除。一些HPC環境要求多組用戶之間,甚至用戶本身之間實現數據和宿主相互隔離。傳統的虛擬局域網通常與物理服務器結合使用,結果造成了資源孤島,在變化的負載環境中,孤島將導致孤島內資源利用率低下。虛擬機和虛擬局域網可以配合使用,把用戶彼此隔離開來,并將數據隔離起來,有權訪問的用戶才可以訪問。
應用程序堆棧控制——很多應用程序需要特定的操作系統版本、更新版、代碼庫和配置等。在混合應用環境下,多個應用共享同一物理硬件,這種情況下,就很難滿足所有應用對特定堆棧的要求。采用虛擬化技術,這個難題就迎刃而解了,因為,在虛擬化環境下整個堆棧可以作為應用程序的一部分來部署。
充分利用高價值資產——在異構的HPC系統中,最新(因而最快)的機器常常需求量最大。為了滿足這個需求,一些企業采用預留系統以盡量減小用戶之間的沖突。但遺憾的是,這種預留系統常常沒有得到充分的利用。相比之下,使用虛擬機處理計算作業時,大多數虛擬機管理程序內部的遷移工具允許機會性工作負載使用高價值資產,甚至為一個不同的用戶打開了預留窗口后也可以使用。如果提出預留要求的用戶最終提交工作負載,要求處理負載,機會性工作負載隨后可以遷移到價值較低的資產,以便繼續處理,而不浪費任何處理器周期。
處理執行時間長的作業——幾種HPC應用程序不提供檢查點重啟功能。然而,虛擬機技術可以獲取和檢查虛擬機的整個狀態,以便檢查以前無法檢查的應用程序設置。如果作業運行時間足夠長,對于整個解決方案來說有一樣的平均無故障時間(MTBF),那么虛擬機內部的檢查點工具可能非常吸引人。此外,如果服務器維護是經常進行或具有可預測性,那么虛擬機內部的檢查點遷移或暫停運行時間長的作業,可以防止計算時間流失,同時消除執行常規服務器維護工作所面臨的任何障礙。
使用HPC云的商業理由
有幾個關鍵因素促使企業考慮實施云計算,這些因素可以幫助企業削減成本,為內部用戶提供更好的服務。這些因素是:
按使用量付費——客戶可以按照應用程序的運行時間或者按使用存儲和數據傳輸服務的時間支付費用。
近乎無限的基礎架構——幾乎可以實時享用基礎架構;反過來,沒有工作負載時,基礎架構可以縮回到近乎零資源。
根據工作負載配置資源——可以根據工作負載,隨時分配操作系統或服務器的類型,大幅改進了資源配置方面的靈活性。
實施HPC云面臨的障礙
盡管云計算有諸多優勢,但是在考慮云計算是否適合HPC環境時還有很多障礙需要克服。
安全性和知識產權——云環境中的數據對商業企業來說常常是核心的知識產權。絕不能忽視這種可能性:商業競爭對手可能使用相同的共享計算資源。從法律的角度來看,一旦發生數據泄密,知識產權保護和賠償條款為云計算使用者帶來的追索權很有限。
軟件許可——大多數商業企業使用獨立軟件開發商(ISV)提供的第三方軟件來運行或管理HPC作業。這些應用軟件在購買時都附有法律協議,明確了該應用程序可以在何處運行,通常都規定該應用程序只能在客戶的場地運行。
數據轉移——除非企業完全采用云計算,棄用自己的數據中心,否則用于模擬的模和結果就必須在云計算提供商與客戶數據中心之間進行傳輸。然而這項工作很復雜,因為就傳輸大容量文件而言,互聯網帶寬很有限;而且對大多數基礎架構即服務(IaaS)提供商來說,進出云環境傳輸的所有數據都是按字節數計費的“收費服務”。
定價模式——按使用量付費的模式常常對客戶有很大的吸引力,但如果長期使用公共云,其費用通常比在兩年內自己擁有和維護硬件的成本貴兩三倍。公司應認真確定在多長時間內使用公共云比使用本地服務器更有優勢。
面向HPC的云計算
HPC數據中心必須綜合考慮采用云計算的商業理由及其面臨的障礙,才能確定這種模式是否適合本企業以及哪種模式最適合自己。
實現HPC云需要幾款工具,包括虛擬機管理程序平臺、工作負載管理器和基礎架構管理工具包。管理工具包應該提供策略定義及執行、配置管理、資源預留及報告等功能。虛擬機管理程序平臺應該為云計算資源的虛擬部分提供良好的基礎。最后,工作負載管理器應該提供作業管理功能。
對多數大型HPC環境來說,用戶需要考慮采用私有云還是混合云解決方案。在混合云環境中,可以在峰值需求期間使用外部公共云,這又叫“云爆發”(cloud bursting);比較小的HPC環境可能應該考慮公共云,使用的所有資源都在云端。不管使用哪一種模式的云,特別重要的是確保基礎架構包含可以同時充分利用物理資源和虛擬資源的管理層,因為HPC應用程序仍主要放置在物理機器上。在理想情況下,該管理層應該能夠把虛擬機管理程序環境和物理環境合并為一個動態共享的基礎架構,既支持多種操作系統,又支持異構環境。
混合云方案對HPC環境來說可能非常有優勢,因為它可以提供完成作業所需要的額外計算能力。在下列情況尤其應該考慮采用云爆發方案:
預計作業在本地運行的等待時間過長時;
如果作業在本地運行所需的累計運行時間過長時;
當作業對進出云環境的數據傳輸要求不高時。
一旦確定了企業實施云計算的最佳方案,就可以采用多種方法來評估IaaS提供商,看看哪一家提供商最適合本企業的應用和工作負載要求。評估時要考慮的因素包括性能、可靠性、創建實例的速度、價格等,此外,還應該考慮每一家IaaS提供商的洽談和定價流程以及政策,還要對照服務級別協議(SLA)評估可靠性。考慮上述每一個因素對于企業選擇最適合其用途的提供商大有幫助。
作者介紹
Chris Porter 現任Platform公司HPC云產品經理,他在HPC和云計算領域有著豐富的經驗,他曾經撰寫過眾多有關HPC和云計算的白皮書。