作者:範軍 (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 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 HCL(Hardware 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 |
在本文的例子中,分別基於CPU和RAM計算出的主機數很接近,這是比較理想的情況。因為沒有多餘資源的浪費。如果這兩個數值差距很大,建議適當調整主機的CPU或RAM的配置,從而最優化的使用資源。
如果我們採取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/