作者:範軍 (Frank Fan) 新浪微博:@frankfan7

在虛擬化專案的前期,估計預算的時候要對需要的主機有個大概的計劃。需要什麼型別的主機?每臺主機的配置如何?需要多少?

我們假設一個場景來展開討論。

某公司有50臺物理伺服器,打算移植到虛擬化平臺上來。以下三個步驟可以幫你找到答案。

一 分析需求 蒐集資料

一定要對需求有充分的瞭解。是否需要把已有的物理主機移植到這個虛擬化環境?物理主機上執行的應用是什麼?資源使用的平均值和峰值?

VMware CapacityPlanner可以很方便的從已有物理主機上搜集這些資訊,並能生成很直觀的報告。或者也可以使用perfmon等工具手工收集資料。

假設以下場景:

50臺物理主機的平均Core數目是4,平均的CPU主頻是2000Mhz。在高峰期的CPU 佔用率是12%

Average CPU per physical(MHz)

CPU主頻 * Core數目

2000 MHz * 4 = 8000 MHz

Average peak CPU utilization (MHz)

Average CPU per physical * 高峰期的CPU 佔用率

8,000MHz x 12% = 960Mhz

Total peak CPU utilization(MHz)

Average peak CPU utilization * 主機的數目

960MHz x 50 = 48,000MHz

每臺物理RAM平均是4G,峰值佔用率平均為52%


Average peak RAM utilization

Average RAM per physical (MB) x Average Peak RAM utilization (percentage)

4,000MB x 52% = 2080MB

Total peak RAM utilization

Average peak RAM utilization (MB) x Number of concurrent VM’s

2080MB x 50 = 104,000MB

大家需要特別注意,我們這裡採用高峰期的佔用率,也就是負載最大情況下對運算資源的需求。對於某些應用要知道什麼事情、什麼時間段有可能是峰值,在資料採集時資料要全面。

二 虛擬化主機的選擇

已有主機

可能該使用者已經和某個廠商有合作,最好能評估是否該廠商有合適的主機。具體參考VMware HCLHardware Compatibility list)

Scale out vs Scale up

Scale up指採用高配置主機,從而減少主機數量。Scale out指採用配置相對較低的主機,數量較多。

這其中的權衡要考慮的方面很多。在允許的情況下,我個人傾向於低配置,數量多。

優點:

·每臺主機上執行的虛擬機器數量較少,在主機當機情況下,HA可以很快的把受到影響的虛擬機器在其他主機上重新啟動。從而對使用者的影響減到最小。

·DRS可以較好的在多個主機間平衡負載

·在主機升級時有很大的餘地,可以用較短的時間來vMotion該主機上的虛擬機器。

可能的缺點:

·佔用的資料中心空間可能較大。所以如果主機數量很多時,刀鋒伺服器可能是較好的選擇。

·可能支援成本會高。某些伺服器支援的外包合同中,支援成本是和主機的數量有聯絡的

主機CPU配置:

是選擇主頻高,core數量較少,還是主頻低,core數量較多?因為兩種選擇CPU的運算資源可能是一樣的。是否有的虛擬機器所需大量的記憶體?

需要考慮NUMA的一些影響因素。

網路頻寬和儲存頻寬:

儘量選擇主流。比如10G頻寬的網路卡

依據以上考慮,假設的主機配置如下:

CPU:

Attributes

Specification

Number of CPUs (sockets) per host

2

Number of cores per CPU

6

MHz per CPU core

2000 MHz

Total CPU MHz per host

24,000 MHz

Proposed maximum host CPU utilization

80%

Available CPU MHz per host

19,200 MHz

RAM:

Attributes

Specification

Total RAM per host

80,000 MB

Proposed maximum host RAM utilization

70%

Available host RAM per host

56,000 MB

注意:基於使用者的要求,我們在此採取了比較保守的估計。70%的利用率,而且並沒有把MemoryOver-commitment的考慮進去。


三 確定所需要的主機數目

假設我們在步驟二中初步確定的主機的配置

ESXi Host Deployment Requirements Total CPU/RAM Required

CPU/RAM Available

ESXi Hosts Required

(rounded up)

48,000MHz

19,200MHz

2.5 (round up) 3 Hosts

104,000MB

56,000 MB

1.8 (round up) 2 Hosts

在本文的例子中,分別基於CPURAM計算出的主機數很接近,這是比較理想的情況。因為沒有多餘資源的浪費。如果這兩個數值差距很大,建議適當調整主機的CPURAM的配置,從而最優化的使用資源。

如果我們採取N+1的策略,也就是額外需要1臺主機作為Failover Capacity。那麼最終需要的主機是 3+1 = 4

參考:

http://vmfocus.com/2013/09/01/vsphere-sizing-formula-cpu-ram/

http://www.vmware.com/files/pdf/techpaper/VMware-vSphere-CPU-Sched-Perf.pdf

http://virtualtoddsbigblog.blogspot.com.au/2012/02/numa-performance-considerations-on.html

http://frankdenneman.nl/2010/02/03/sizing-vms-and-numa-nodes/