部署虛擬化時最先考慮到的方面就是基礎(chǔ)設(shè)施的支持,也就是服務(wù)器的選擇。其中,刀片服務(wù)器在虛擬化領(lǐng)域一直十分活躍。美國虛擬化專家Dave Convery前日撰寫了一篇博文,從數(shù)學的角度對不同刀片在支持虛擬機方面的能力進行了一番比較。Dave Convery是2009年的VMware vExpert。
以下是該博文的節(jié)選編譯:
我去了一個惠普的活動,那天的最后一個演示探討了來自不同制造商的刀片服務(wù)器的區(qū)別,講得相當不錯。雖然我工作的公司出售惠普、EMC和思科的產(chǎn)品,但是在硬件方面,我相信所有的x64服務(wù)器都是差不多的。大家都在宣稱自己的是最好的,但是用戶選擇品牌時考慮更多的往往是他們與供應(yīng)商、制造商之間的關(guān)系,或者說他們會選擇自己“偏愛的廠商”。我去的這次演示自然是偏向惠普的,不過這位惠普刀片系統(tǒng)工程師的演示中包含的一些數(shù)學還是十分值得思考的。
首先我們來看看一個典型的VM配置。工程師說這是“Gartner的推薦配置”。雖然我沒有找到相關(guān)的資料,不過這數(shù)據(jù)似乎還算靠譜。
典型的虛擬機配置
﹥3-4GB內(nèi)存
﹥300Mbps I/O(0.3Gb)
﹥﹥100Mbps以太網(wǎng)(0.1Gb)
﹥﹥200Mbps存儲(0.2Gb)
以上沒有包括CPU count,不過你會發(fā)現(xiàn)它在這里并不是什么關(guān)鍵因素,因為如今處理器的處理能力往往大于應(yīng)用需求的處理能力(大部分情況)。IOps也沒有考慮在內(nèi),那是存儲系統(tǒng)的指標。
然后我們來看看一個典型的服務(wù)器配置。這篇文章討論的是刀片服務(wù)器,不過下面的配置對于一個2U機架式服務(wù)器也是很常見的。工程師稱之為“八成”服務(wù)器,意思是它滿足了對一個服務(wù)器需求的80%。
典型的服務(wù)器配置
﹥2個CPU插座
﹥﹥每個插座可配置四核或六核
﹥12個DIMM插槽
﹥2個熱插拔驅(qū)動
﹥主板配備2個Lan(LOM)
﹥2個Mezzanine插槽
假設(shè)我們?yōu)檫@個典型的服務(wù)器加載4GB或8GM的DIMM。這就是48GB的內(nèi)存。接下來就是數(shù)學時間:
使用4GB的DIMM的情況
﹥總共48GB內(nèi)存 / 每個VM的3GB內(nèi)存 = 16個VM
﹥16個VM / 8個核 = 每個核上運行2個VM
﹥16個VM * 每個VM的0.3Gb = 4.8Gb的I/O需求(考慮到冗余還需x2)
﹥16個VM * 每個VM的0.1Gb = 1.6Gb的以太網(wǎng)(考慮到冗余還需x2)
﹥16個VM * 每個VM的0.2Gb = 3.2Gb的存儲(考慮到冗余還需x2)
使用8GB的DIMM的情況
﹥總共96GB內(nèi)存 / 每個VM的3GB內(nèi)存 = 32個VM
﹥32個VM / 8個核 = 每個核上運行4個VM
﹥32個VM * 每個VM的0.3Gb = 9.6Gb的I/O需求(考慮到冗余還需x2)
﹥32個VM * 每個VM的0.1Gb = 3.2Gb的以太網(wǎng)(考慮到冗余還需x2)
﹥32個VM * 每個VM的0.2Gb = 6.4Gb的存儲(考慮到冗余還需x2)
這樣沒錯吧?看起來合乎情理。
下面,讓我們來看看刀片們的數(shù)值。
注:IBM LS42和HP BL490c有兩個內(nèi)部不可插拔的驅(qū)動槽。
細數(shù)每塊刀片的軟肋:
﹥Cisco B200M1沒有LOM,只有一個mezzanine插槽
﹥Cisco B250M1沒有LOM
﹥Cisco機箱只有一對I/O模塊
﹥Cisco機箱只有四個電源,使用三相電可能會遇到問題
﹥Dell M710和M905只有1GbE的LOM(出于某種原因,這兩個型號的機箱中板無法支持10GbE的LOM)
﹥IBM LS42只有1GbE的LOM
﹥IBM機箱只有四個電源,使用三相電可能會遇到問題
工程師花了一些時間比較這些刀片在加載4GB和8GB DIMM時的不同。簡單總結(jié)的說,并不是DIMM裝載的足夠多就能夠支持更多的VM。也就是說,不要簡單的沖到廠商那里購買一臺插滿了DIMM的刀片,否則你的內(nèi)存利用率很可能會低于預(yù)期。你要分析你的需求,并根據(jù)需求設(shè)計你的基礎(chǔ)設(shè)施。
我的做法一般是,告訴你一個刀片以及一個機箱能夠支持的最大VM數(shù)。在我看來這應(yīng)該是在設(shè)計階段考慮好的東西,也方便用戶在接觸廠商時進行TCO(總體擁有成本)的計算。我根據(jù)內(nèi)存容量和總I/O容量分別計算每個刀片支持的最大VM數(shù),并取出兩者之間較小的那個數(shù)作為結(jié)果。為了簡化理解,這里用的計算很簡單:
內(nèi)存的算法
用內(nèi)存的總合,減去虛擬系統(tǒng)所使用的以及額外消耗的6GB,然后除以3,也就是每個VM所需求的3GB。
I/O的算法
用最大冗余I/O,除以0.3Gb,也就是每個VM的I/O。
然后我查閱了每個機箱的物理參數(shù),計算了每個機架所能放置的最大機箱數(shù),從而計算出每個機架能夠支持的VM數(shù)。機箱數(shù)量的計算中并沒有包括機架交換機。真實情況是,每個機架都會預(yù)留出一些空閑空間或放置核心交換機所需的空間,因此會減少一臺機箱。
當然了,這是個簡化的計算結(jié)果。這個計算假設(shè)虛擬系統(tǒng)和額外消耗占據(jù)了6GB的內(nèi)存。這個假設(shè)并沒有依據(jù)任何真實測試結(jié)果。
譯者注:這篇文章發(fā)表之后,其中使用的數(shù)據(jù)引起了很多爭議,其中最大的爭議就是針對那個“Gartner推薦的VM配置”的數(shù)值。為此,本文作者Dave之后發(fā)了另一篇文章,提供了一些虛擬化評測的真實數(shù)據(jù)。
首先是性能總覽:
(點擊查看原圖)
如果你做過虛擬化評測(Virtualization Assessment),那么你會認出這是評測結(jié)果的總結(jié)頁。這份評測結(jié)果收集了1956個服務(wù)器的數(shù)據(jù),平均內(nèi)存使用2069MB,平均CPU使用率在5.2%,平均網(wǎng)絡(luò)流量在31KB/s。
也是總結(jié)頁的一部分。這部分表格告訴我們,平均分配內(nèi)存為4342MB,平均空閑內(nèi)存為2273MB。
然后是所有參數(shù)的平均值。
(點擊查看原圖)
(點擊查看原圖)
上面這最后一張圖是一張存儲總結(jié)報告。平均磁盤讀取速度為442000字節(jié)/秒,平均寫入速度為200000字節(jié)/秒,加起來一共是600000字節(jié)/秒。所以總共的I/O應(yīng)該是632000字節(jié)/秒(600000來自存儲,32000來自網(wǎng)絡(luò))。用Google做下簡單的換算:
632000 bytes = 0.00470876694 gigabits
這個數(shù)值遠遠小于“Gartner提供的”0.3Gb。因此以下是我計算的平均VM配置數(shù)值:
﹥2GB內(nèi)存
﹥0.005Gbps I/O
﹥﹥0.0002Gbps以太網(wǎng)
﹥﹥0.004Gbps存儲
當然了,這仍然也是個參考,我并沒有說這是任何形式的“推薦配置”。當然有一個結(jié)果是肯定的,那就是每個刀片能夠支持的VM數(shù)量要比我之前計算的數(shù)值多很多。最后我要說的還是,請根據(jù)你自己的環(huán)境分析需求并收集數(shù)據(jù),從而設(shè)計出適合自己的配置。