眾所周知,虛擬化正在IT界掀起一場巨大的風暴。這個IT新寵給大家帶來了太多的驚喜:承諾減少宕機時間、降低功耗、降低冷卻成本、提高硬件使用率,而且,還使管理的難度大大降低……所有這些,使得IT企業像發現了新大陸,比賽一樣地沖向虛擬化的實施之路。
不過這裡我要說的是,雖然大多數情況下上述的承諾都能兌現,但這個康莊大道上還是有一些陷阱——但最令人擔心的是,這些可能會致命的陷阱並不為人所知!
影響虛擬化實施的第一個大麻煩就是服務器的CPU問題。
對一般企業而言,虛擬化的推進一定是首先在一個小型測試環境進行的。服務器上可能運行十幾種虛擬化軟件,例如VMWare、Xen,或者VirtualIron。在大量的試用之後(當然這需要一定的時間),如果穩定性和性能令人滿意,這種應用架構才會擴大到更多的服務器中去,將整個企業向虛擬化的基礎架構進行遷移。這時你會做什麼?當然是采購!然而,當你在興高采烈地簽下一個價值不菲的采購單時,你會發現一個大跌眼鏡的情況:你需要的服務器或者CPU型號已經早就過時了,供應商會遺憾地告訴你:斷貨了!
這可不是個小麻煩!要知道,虛擬化環境往往要求建立在完全相同的服務器、CPU架構上,這樣才能更好地發揮虛擬化的優勢,特別是虛擬化遷移和高可用性。就拿動態遷移來說,如果從一個主機和另一個主機的CPU型號和配置不一樣,這種動態遷移就會不穩定,甚至發生崩潰。事實證明,如果你強行在一台SSE3 CPU的服務器和一台SSE2配置的服務器之間進行動態遷移,那麼效果是無法保證的——甚至壓根兒就實現不了。
面對這種意料之外的尴尬,你還能有什麼選擇呢?當然,我們會督促供應商,要求他們去翻翻庫存,幸運的話,也許倉庫的旮旯裡能找到一些用得上的配件。但顯然,這實在有點不保靠。更多比較聰明的企業會選擇淘寶(或者ebay)去看看有沒有賣過時產品的攤鋪,興許你會有意外的驚喜……
如果你嫌這兩種方法都不踏實,也許你這時唯一的選擇就是升級:為舊服務器升級為新型號的CPU,將整個虛擬化環境遷移到新CPU架構上——不過,你得乞求上蒼保佑,今後當你需要再次擴大規模時,現在這種全新的CPU到那時還能找到!對了,還有,別忘了把那些剛剛拆下來的基本上全新的測試服務器上的CPU拿到淘寶上去賣——興許不少人心急火燎地在找呢!
即使是刀片服務器也會遇到同樣的問題——前不久我剛剛遇到了這個麻煩。去年底我置辦了當時最頂級的刀片服務器,Sun 6000 X6250刀片服務器,CPU是當時最高端的2.66GHz的四核英特爾X5355處理器。然而,6個月後,當我需要更多這樣的刀片時,Sun告訴我:這種型號早就停產了。幾經周折,Sun最終還是給我找到了能匹配的主板和CPU,但他們必須要將主板的BIOS降級使用,為此我還必須付每小時250美元的額外費用!但如果我不這麼做,我只能將所有原有的刀片服務器升級——這花的錢更多!想想吧!我實施虛擬化可是想省錢的,這種結果,與我的初衷完全背道而馳!
虛擬化的另外一個問題就是風險,因為你在把所有的雞蛋都放在同一個籃子裡。這是因為虛擬化的優勢就在於能夠提升硬件的使用效率,一個運行了DRS和HA系統的服務器,能承擔超出原有數倍的負載,而且能實現一台服務器宕機時系統平穩遷移。這一切都這麼令人感到惬意,但前提是所有的系統都必須正常運轉!但不幸的是,這一點沒那麼簡單,就我自己而言,在過去一個月已經不止一次得被迫手工重啟Windows 2003下VMWare VC(VirtualCenter)。
不只是系統死機讓你煩心,想想看,如果你要對一台服務器進行內存升級,但虛擬化軟件在兩個ESX服務器之間遷移時卡了20多分鐘,這會不會讓你崩潰?要知道,這個時候你要重啟的不是一個服務,而是幾個、甚至十幾個!謝天謝地,我還沒有遇到過這麼恐怖的情況,不過也遭遇過“險境”,好幾次我被迫按照VMWare的應急處理流程刪除了一些進程,才勉強使系統恢復正常,但我不知道什麼時候還會來這麼一次
當然,隨著虛擬化基礎設施的成熟,我前面提到的管理和安全問題有望逐步弱化甚至消失,甚至也許有一天我們發現在不同的CPU之間進行主機遷移也沒問題(當然我估計錢少不了)!所以,別因為我這些“牢騷”就停住了邁向虛擬化的腳步——不過,如果這篇文章能幫你繞過一些陷阱,那我將不勝榮幸。
本文作者 Paul Venezia