作者:范军 (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 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/