【2011年4月2日51CTO外電頭條】2010年9月在舊金山召開的英特爾開發(fā)者論壇(IDF)上,英特爾發(fā)布了其下一代服務器至強處理器,代號為Westmere-EX。性能不可謂不驚人:10核20線程的處理器對三通道內(nèi)存的尋址能力達到了2TB,這相當于前一代處理器的內(nèi)存尋址能力的整整兩倍。
今年5月,英特爾又宣布推出一款新的32核服務器芯片,它基于一種新的高性能計算服務器架構,結合了普通的x86核心和專用核心,從而加快了處理大規(guī)模并行科研和商業(yè)應用的速度。該芯片已在去年下半年交付。
“英特爾Knights Ferry處理器在服務器處理器插座中包含32個主至強芯片核心,在PCI-Express插槽中有相應的512位向量處理單元。芯片每個核心運行四個線程,包括8MB的共享高速緩存以及高達2GB的快速GDDR5內(nèi)存?!?/p>
這項技術對于處理大量不同的工作負載而言很神奇,尤其是能夠完全在內(nèi)存中運行,而不是在非易失性存儲設備中運行的數(shù)據(jù)庫。然而,對于虛擬桌面基礎架構(VDI)解決方案來說,多核芯片完全是浪費錢,而且高可用性被荒廢了。
我的客戶經(jīng)常問我有什么建議好提供,同時又告訴我,他們一直在考慮購買配備四核、六核甚至八核的Nehalem處理器。我的答復始終是反問一句:為什么需要多核?
事實上,盡管多核可能有助于幾種類型的工作負載,但是對于VDI來說,只會降低高可用性,讓這個解決方案顯得成本更高昂。為了讓大家明白我搬出的理由,不妨想想vSphere 4.1、vCenter 4.1、VMware View 4.5和View Composer 2.5方面的一些局限性。這些是組成View解決方案的最新一代的幾個組件。
vCenter 4.1
經(jīng)過驗證的架構支持2000個虛擬桌面
vSphere 4.1
每個主機最多支持320個虛擬機
在Nehalem系統(tǒng)中,經(jīng)過驗證的架構每個核心支持16個虛擬桌面
View Composer 2.5
每個集群最大支持8個主機
每個數(shù)據(jù)存儲區(qū)最多支持128個鏈接克隆虛擬桌面
在一個新部署的系統(tǒng)中,Windows7很可能是來賓操作系統(tǒng)(GuestOS),而該操作系統(tǒng)的最大推薦內(nèi)存容量是2GB。為了本文的需要,我們還假設不用到處理器密集型的應用程序,單單一個虛擬處理器(vCPU)就足以滿足大多數(shù)用戶的需要。不過,由于Windows7的地址空間布局隨機化功能(ASLR),透明頁面共享(TPS)比率減小到了大約10%(如果使用Windows XP,TPS比率約為40%)。
鑒于我們已作好了假定和限制,現(xiàn)在運行幾個模擬。完全出于好奇心,第一個模擬將使用發(fā)布不久的32核處理器。
64個核心(2個插座 x 32個核心)x每個主機16個虛擬機=每個主機1024個虛擬機(禁用超線程技術)
這種場景需要每個主機約2008GB內(nèi)存。
約128個核心(2 × 32個超線程插座)x每個主機16個虛擬機=每個主機2048個虛擬機(啟用超線程技術)
這種場景需要每個主機約4000GB內(nèi)存。
閑話少說,vSphere每個主機最多支持320個虛擬機。就第一個例子而言,每個處理器/核心最多支持的虛擬機數(shù)量必須是5,那樣虛擬機的數(shù)量才能保持在320個以下。在這種情況下,系統(tǒng)和處理器在很大程度上將得不到充分利用。
第二種場景使用128個超線程核心,它總共需要4000GB內(nèi)存。該架構最多支持2TB內(nèi)存,因而為了將內(nèi)存控制在極限范圍以內(nèi),每個處理器/核心支持的虛擬機數(shù)量最多是約8個。情況看起來比不用超線程技術要好一點,但是昂貴的硬件資源仍然基本上得不到充分利用。
這兩種場景讓人覺得像是在玩數(shù)字游戲。不妨看看在使用2個插座、每個插座有6個處理器/核心的實際部署環(huán)境下會發(fā)生什么情況。我在這種場景下沒考慮超線程和睿頻加速(Turbo Boost)技術,因為它們其實并不會讓核心數(shù)量翻一番。
12個核心(2個插座 x 6個核心)x 每個主機16個虛擬機= 每個主機192個虛擬機
這種場景需要每個主機約312GB內(nèi)存。
12個核心的場景對于每個主機支持的虛擬機數(shù)量來說很適合,不過要求每個主機約384GB內(nèi)存。而現(xiàn)在外面的系統(tǒng)大多并不提供支持這么大內(nèi)存容量的功能,只有少數(shù)幾個例外,比如思科ASIC內(nèi)存擴展架構。
如果你擁有的一個系統(tǒng)支持這么大的內(nèi)存容量,那你需要開始考慮:如果高可用性事件被觸發(fā),你的企業(yè)或客戶愿意為在另一個主機中啟動虛擬桌面等待多久,或者遷移所有虛擬機以便主機維修需要多長時間。
如果你總共有約550個虛擬機,這代表停運時間接近33%。單單就存儲需求而言,擁有192個虛擬機的每個主機在每個用戶每秒10次輸入輸出操作(10 IOPS)的正常工作負載、讀寫比為20/80的情況下,大概需要6528次IOPS。另外別忘了考慮所有虛擬機的網(wǎng)絡連接和吞吐量。
對于VDI解決方案而言,我的客戶大多數(shù)目前采用配備2個插座、每個插座4個核心的Nehalem系統(tǒng),也就是說每個主機總共有8個核心。對我來說,這種配置似乎在成本、性能與可用性之間提供了最佳組合。使用每個處理器/核心16個虛擬機的驗證架構,就有可能讓每個主機運行約128個虛擬機;而每個主機需要約256GB內(nèi)存。
對于有些系統(tǒng)來說,256GB的內(nèi)存仍然行不通。在這種情況下,每個處理器/核心12個虛擬機就允許每個主機可支持96個虛擬機和192GB內(nèi)存。對于實際外面的所有系統(tǒng)來說,這聽起來像是能實現(xiàn)的比較合理的數(shù)字。
值得一提的是,如果一個包括8個主機的集群其每個處理器/核心運行16個虛擬機,允許最多有1024個虛擬機,但沒有高可用性事件所需的備用容量。這種情況下,如果某個主機關閉或丟失,就沒有備用容量來啟動額外主機上的虛擬機。運行8個主機的集群,每個處理器/核心又運行12個虛擬機,允許支持768個虛擬機,又擁有正好可以支持主機故障的容量。VMware的參考架構(又叫Block)建議每個集群1024個虛擬機,不過并沒有將高可用性事件考慮在內(nèi)。
我個人的建議是,在裝滿8個主機的集群中,每個處理器/核心最多只用12個虛擬機。如果你有不同的觀點或看法,歡迎一起探討。
另一個忠告是,如果你在規(guī)劃設計一款View解決方案,就要想到上述數(shù)字,因為它們會影響項目的最終結果,另外不能忘了成本。
越來越多的核心……我們不需要!….至少對于VDI而言不需要。
原文名:Cores and more Cores… We don’t need them! 作者:Andre Leibovici(某咨詢公司的高級VMware咨詢顧問,有15年IT經(jīng)驗,MCSE,VCP 3/4,VCAP4-DCA,VTSP4,ITIL V3,也是VMware vExpert 2010)