幾個關於雲端計算,想問又不好意思提的問題(二)

tigerhsiao發表於2010-01-18
【本文原發表於2010年1月份的軟體世界雜誌】

【待解決】
為什麼最常聽到的伺服器虛擬化技術,都只支援Intel/AMD x86/x64上的作業系統 (Linux, Windows)?為什麼不能支援 Unix (AIX/HP-UX/Solaris) 和小型機硬體?

【回答】
事實上,執行Unix系統的各種小型機,包括HP, IBM 和 Sun,都有配合各自硬體和作業系統的虛擬化技術和方案,也具備一定的成熟度。

但我們知道,雲端計算公共雲的運營商如亞馬遜,Google 等,還有包括 Salesforce.com,Oracle等的隨需SaaS 中心,選擇大量採用x86商品化的伺服器,讓運營成本能儘可能降到最低,因此雲端計算中最普遍的,都是x86的虛擬化環境。所謂 “商品化” (commoditized),其命名意涵來自在期貨市場中交易的商品 (commodity),如石油,黃豆,小麥等,一般是不區分產地或品牌的,而只看價錢。如果某連鎖快餐店本月用了東北產的黃豆來做豆漿,而下個月原料因故換成了巴西或美國進口的黃豆,能喝得出區別或對此很在乎的客戶,恐怕非常少。

這個問題牽涉到一個關鍵,那就是,不管是何種伺服器硬體,它所採用的CPU家族,會繫結相關的虛擬化技術。換句話說,Intel/AMD x86、安騰、Power、Sparc 這幾個平臺上各自執行的虛擬機器,是無法直接跨異構相互交流,組成一個單一集中管理的大計算池的。各平臺上虛擬化技術對多作業系統的支援,也都取決於該作業系統是否先前已成功移植到某各CPU家族。舉例來說,IBM Power和Sun Sparc 小型機上的虛擬化環境,便無法支援執行微軟Windows的虛擬單元,而HP安騰伺服器上雖然能支援Windows,但也只侷限於安騰64位版的 Windows,而非最普遍的x86 Windows作業系統;Linux 的情況亦然, 雖然這幾種小型機各自都支援某些Linux,但執行的版本都僅限於移植到這些CPU的Linux核心,而非一般最通行的x86 Linux核心。這是因為各個CPU晶片家族的體系結構差異太巨大了,就算能在某平臺上開發出能模擬另一平臺的虛擬環境,做到充分將一類CPU的指令集動態轉譯成另一套(往往不太可能),其資源消耗代價恐怕也會太過龐大,因此幾乎沒什麼實用價值。

這個根本的技術特性和限制,對目前許多思索在企業內搭建內部雲 (private cloud),甚至考慮利舊,利用既有基礎設施投資的企業來說,會有比較大的影響。例如在規劃的時候,得確認Unix伺服器出廠年份、執行的作業系統、版本,是否能被各家的虛擬化技術所支援,如果不行,是否可通過韌體和軟體升級來達到。至於 x86 伺服器,得注意的是,Intel和AMD在05-06年後,才分別對各自的伺服器晶片加入了VT和AMD-V虛擬化支援。如果是更早的伺服器,就只能通過完全的虛擬化 (Full Virtualization) 的技術,但這種軟體技術若用在雲集算伺服器的環境中,由於資源開銷較大,效能上也會打不少折扣。


本文僅代表作者個人觀點,與甲骨文公司無關。

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

相關文章