摘自《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网络备用。