如果你希望在應用虛擬化技術的過程中不出現任何問題的話,那么顯然這是不切合實際的期望。虛擬化技術能給你的數據中心帶來諸多好處,但是為了可以利用虛擬化的優勢,你需要了解可能會面對哪些問題。
即使虛擬化技術已經被應用到了許多企業中,包括數據中心,但它還是一項新興技術,仍然有很多需要克服的技術難題。
找出性能削弱的原因并非易事,而且這可能在生產環境中引發很多問題。服務虛擬化和存儲虛擬化都可能存在問題,但是他們的本質是不同的。如果你知道如何應用的話,其實一些問題是很容易解決的,這樣你在虛擬化數據中心的時候就不會碰到那么多挑戰。
虛擬化往往取決于你正在運行的應用類型。所幸的是,有很多例如VMware AppSpeed的軟件程序,旨在虛擬應用的響應時間內發現是否有性能水平的降低,提供處理解決這個問題的方案或者VKernel Capacity Bottleneck Analyzer Virtual Appliance等工具。
甚至有專門針對某個操作系統的計劃--VMWare的Virtual Data Center Operating System--旨在解決虛擬化的瓶頸以及其他性能/管理問題,不過這種操作系統是否能像期望的那樣運行現在還無法得知。
解決虛擬化瓶頸的方法有很多。最常見的與CPU或者RAM瓶頸、I/O瓶頸和存儲瓶頸有關。雖然如何解決這些瓶頸沒有統一的看法,但是可以遵循一些基本的原則。
CPU/RAM瓶頸
CPU/RAM瓶頸是這三個瓶頸中最容易找到并且解決的。正如你所知,虛擬化需要功能更完善的設備--因為虛擬要在一個物理服務器上運行多個邏輯設備,你不能期望一個1GHz的CPU或者一個512MB的RAM完成5臺計算機的工作,對嗎?這就是為什么你需要增加更多的RAM或者升級CPU。升級RAM或者CPU一般就可以解決CPU/RAM瓶頸,所以這個問題往往很容易解決。然而,你可能會面臨一些限制--例如,你不能增加超過主板所能支持的更多RAM或者處理速度更快的CPU。
解決CPU/RAM瓶頸的另一個方法就是配置更少的虛擬服務器。這將減少設備上的工作負載和降低性能。虛擬化技術的理念就是利用未被充分利用的計算能力,同時不會過度應用導致設備崩潰,所以如果你發現主機設備無法處理的話,只要終止其中一些處理負載并且其轉移到其他主機上就行了。
當沒有足夠的RAM空間的時候,系統就將啟動向磁盤的交換,這將降低設備運轉速度,導致更嚴重的I/O瓶頸。這甚至消耗了更多有限的CPU資源和I/O能力。在虛擬化環境中I/O瓶頸是本身存在的,那么為什么還要讓情況更糟?
I/O瓶頸
I/O瓶頸是虛擬化環境中最常見的問題,它主要依賴于你正在運行的應用,但是大多數虛擬服務器往往需要比服務器更多的連接,而這里是不使用虛擬化的。因此當你計劃和架構虛擬解決方案的時候一定要考慮到這一點。
這樣,當不采用虛擬化技術的物理服務器運行一個或者幾個應用(這些應用需要占用所有I/O資源),虛擬服務器就要運行更多的應用,每個應用需要獨立的I/O資源。這反過來就要求有更多的I/O資源--每個設備的6到10個端口,這大約是不采用虛擬化技術的物理服務器的2到3倍。因此,這是解決I/O瓶頸的最好方法--增加更多連接、或者更有針對性的解決方案,這既提供了所需的互連性又不需要更大型的機架設備。雖然現在市場中有這樣的解決方案,但是其中增加了虛擬化的成本,它解決了I/O方面的難題。
存儲瓶頸
從技術上來講,存儲瓶頸是I/O瓶頸的衍生物,但是因為他們是最常見的虛擬化瓶頸,所有我們要分開討論這個問題。一般來說從NAS到SAN存儲的連接是最常見的問題根源。大多數虛擬化解決方案支持NAS、SAN和iSCSI,但并非所有虛擬機可以直接與之相連接。如果虛擬化不能直接與存儲連接的話,這就意味著需要更長的響應時間,或者可能導致存儲操作發生故障。
主要存在4種與存儲相關的瓶頸--虛擬服務器中資源的超額分配磁盤驅動器和目標存儲系統中資源的超額分配、SAN架構資源的超額分配以及目標存儲端口資源的超額分配。超額分配的情況很常見,它導致存儲利用率的提高,但如果你估計錯誤的話,存儲就會成為瓶頸所在。你需要對每個應用的存儲需求進行監控并以此來分配資源,而不是采用通常的分配原則。虛擬應用需要存儲路徑,它的數量是決定最優化分配率的標準之一,但是每個應用的操作數和特性更加重要。增加更多的存儲容量并不是一個解決方案,因為你實際上需要的是更好的互連性,而不是存儲容量。
如果虛擬化技術所帶來的問題僅僅局限于我們上述的這些那就是萬幸了。實際上,往往會有2個甚至更多與虛擬化相關的因素導致某個問題,除非你將所有這些問題檢測出來,否則他們將一直存在。但是這與非虛擬化設備是不同的嗎?