摘自《VMware vSphere 部署的管理和优化》一书


容量规划:两个关键要素,性能和容量

性能:

几乎在所有情况下,都建议先做性能规划,在做容量规划。

vSphere5在性能上的开销是非常小的,小到几乎可以忽略不计。VMware曾用EMC存储进行过测试,单台vShpere主机能够达到每秒100万次I/O操作,在单台虚拟机上达到了每秒30万次I/O操作。虽然这是非常高端环境中进行的测试,但对于普通中小企业环境中每秒5000~15000次的I/O操作,vSphere 5处理起来还是绰绰有余的。

对于目前的服务器性能,CPU和内存的容量基本上就意味着性能,但存储则另当别论。而且,在虚拟化环境中大量的应用到共享存储,导致存储往往是对性能的影响是最严重的地方。

规划存储时,需要重点关注两个指标,IOPS和MBps。

IOPS用来衡量存储阵列每秒可处理的I/O请求数,通常与后端磁盘子系统的关系更为紧密。它的性能指标与磁盘尺寸和转速相关的。

MBps则更多用于衡量带宽,它又分为读速率和写速率两个指标,用以衡量后端磁盘子系统能承受多少数据压力。

收集这些指标的方法可以通过Vmware Capacity Planner或者其他第三方工具获得。

以下是不同类型磁盘的IOPS值的保守估计数值:

7.2K SATA或NL-SAS:90 IOPS;

15K FC或SAS:180 IOPS;

SSD:2500

有了以上参考值,就可以根据所选磁盘类型计算出所需磁盘的数量。比如,工作负载需要15000IOPS、340 MBps读速率、100MBps写速率,使用15K SAS磁盘组建RAID5磁盘子系统,那么,计算过程如下

((读%+(4X写%))X所需IOPS/每磁盘IOPS=磁盘数

读操作占比=340/(340+100)≈77.27%;写操作占比=100/(340+100)≈22.73%

计算结果取整后,大约需要141个磁盘。改用SSD后,大约需要11个磁盘,但是SSD又难以满足容量的需求。

这时,就需要利用到虚拟存储池以及子LUN存储分层技术。由SSD和HDD分层组成一个虚拟存储池,数据块将根据工作负载移动到合适的层级上,由SSD提供更高的IOPS和速率,而HDD则可以提供更大的容量。



容量:

虚拟基础架构的性能需求指的是所有应用程序的性能需求的总和;

虚拟基础架构的容量需求指的是所有工作负载资源使用量的总和。

需要规划的是在给定工作负载的情况下需要给予多少资源(容量),以及这些资源应该有多快(性能)。


需要特别关注的四种核心资源:CPU、磁盘、内存、网络


规划新应用时的一般推荐做法:

多与应用供应商交流,咨询其是否在物理环境的规格之外,还有虚拟环境下的推荐配置;

在做生产环境硬件容量规划前,尝试先在测试环境上对应用程序进行基准评测;

检查一下应用供应商是否以开放式虚拟化设备OVA或开放式虚拟化格式OVF的方式提供该应用的专用虚拟设备。这将大大减少测试部署的时间。


对于现有的应用,我们通常更关心核心资源的利用率,而不是初始分配值。

比如物理机是4核2GHz的CPU,但是使用率峰值只有15%,那么只需要1颗vCPU即可满足1.2GHz的CPU资源,且留有一定的冗余。(推荐工具:VMware Capacity Planner)


原始容量规划数据收集

基础架构上将要并行的虚拟机数量

物理系统的平均CPU(MHz)

每台物理系统的平均CPU数(总的核心数量)

每台物理系统的CPU利用率峰值平均数(百分比)

每台物理系统的内存平均数(MB)

每台物理系统的内存利用率峰值平均数(百分比)

建议的或想要的主机规格信息

CPU:每台主机的CPU插槽数

CPU:每个CPU的内核数

CPU:每颗内核的MHz数

内存:每台主机的MB数


按以下公式计算所需容量

CPU:

每台物理机CPU平均值(MHz)X平均CPU数X高峰时CPU利用率平均值(%)=高峰时CPU利用平均数(MHz)

同时运行的虚拟机数量X高峰时CPU利用平均数(MHz)=高峰时CPU总利用数(MHz)

通过计算得出虚拟基础架构需要的计算能力


内存:

每台物理机的平均内存量(MB)X高峰时内存使用率平均值(%)=高峰时内存使用量平均值(MB)

同时运行的虚拟机数量X高峰时内存使用量平均值(MB)=高峰时内存总使用量(MB)

注:vSphere通过TPS(透明页面共享)机制在虚机之间共享内存页面,一般可获得33%的内存收益。

通过计算得出虚拟基础架构需要的内容容量


主机CPU规格:

每台主机CPU数量X每颗CPU内核数量X每个内核的MHz数=每台主机的MHz数

每台主机允许的CPU最高利用率(%)X每台主机的MHz数=每台主机CPU的可用MHz数

计算得出每台主机的计算能力


主机内存规格:

每台主机内存量(MB)X每台主机允许的最大内存使用率(%)=每台主机可用内存量

计算得出每台主机的内存容量


注:一般建议保留20%的主机资源用于额外开销或应付可能发生的资源突发请求。


根据CPU需求计算出主机数:

高峰时CPU总利用率(MHz)/每台主机可用CPU(MHz)=根据CPU需求所需主机数(凑整)

根据CPU需求所需的主机数+1=在N+1冗余要求时所需的主机数


根据内存需求计算出的主机数:

高峰时内存总是用量(MB)/每台主机可用内存量(MB)=根据内存需求所需的主机数(凑整)

根据内存需求所需的主机数+1=在N+1冗余要求时所需的主机数


最终所需的主机数取决于最坏的情况,即,两者取最大值。


网络端口规划:

将同一台vSphere主机上不同类型的网络流量互相隔离,这是普遍认同的一种最佳实践

例如:

管理网络:VMkernel(两个网卡)

vMotion:VMkernel(两个网卡)

容错(FT):VMkernel(两个网卡)

存储:VMkernel(两个网卡)

虚拟机流量:虚拟机网络(两个网卡)

带外管理网络:1个网卡

这意味着一台vSphere主机需要11个网络端口上联,两个互备的24口的交换机仅能满足4台vSphere主机的配置。

可采用融合机架式架构或融合刀片式架构来解决端口的问题,这样的架构通常只有两个万兆网络端口,并且可以通过增加上行链路的方式进行扩容;

也可以取消不用的端口类型,比如,使用FCSAN使,可以取消存储网络;未启用FT容错功能时,可以取消容错网络网络;或者对不同类型的端口进行整合,比如,网卡1用于vMotion网络,网卡2用于管理网络,可以将网卡1用于管理网络备用,网卡2用于vMotion网络备用。