【虚拟化实战】Cluster设计之二DRS

作者:范军 (Frank Fan) 新浪微博:@frankfan7

本文介绍DRS设计的指导原则和考虑因素。


一 为什么使用DRS

负载均衡

我们希望在一个Cluster中的所有主机上的负荷是均衡的,不至于出现有的主机特别繁忙,而有的又很闲的情况。在一开始启动VM的时候,DRS会自动选择合适的主机来运行它。在运行中,DRS也会不断衡量各种因素,来决定是否移植该VM.

质量控制:

资源池及其控制,比如share、limit、reservation等都要依赖DRS来支持。

策略实施:

如果你希望有些VM运行在同一台主机,或者有些VM分别运行在不同的主机,,可以通过DRSAffinity/Non-Affinity 可以实现

维护管理

在主机进入维护模式后,DRS自动移植VM到其他可用的主机。


基本设计原则

不要过度设置Affinity/Anti-Affinity Rule, 可能会很大得制约DRS可以分配的主机资源。

Cluster内主机数目较多时,考虑采用Affinity Rule仅允许vCenter运行在一个或几个指定的主机上。这样在vCenter宕机时,可以很容易在特定的主机上的找到它。否则vCenter有可能运行在任何一台主机上。另外一个办法是,无需指定vCenter运行的主机,但是指定存储vCenter的DataStore。在vCenter宕机后可以随机在任何一台主机上注册该vCenter并启动。

根据VM的目前和近期需要来设置vCPU和内存的初始值。不要过度为VM分配资源,如果Configured Size大大超过实际的需要,可能DRS要很费事的把负载均衡到各个主机上。

尽量保证有足够的带宽供vMotion使用,避免vMotion所需的时间过长


考虑因素

什么情况下DRS被激活?

缺省情况每300秒,DRS被激活。这个值可能更改为60秒-3600秒之间。不建议更改这个设置。下面的情况会让DRS来计算是否需要移植VM

当主机加入Cluster或者主机进入维护模式

当虚拟机从Powered-on切换到Powered-off

资源池的设置改动

VM移入或移出资源池


影响DRS的决定因素

DRS有一套复杂的方法,先考虑各项限制条件,然后来比较vMotion之后的好处和可能带来的移植成本及风险,最后再作出决定。

限制条件

比如某主机进入维护模式,Affinity/anti-affinity Rule等

vMotion的成本

vMotion需要CPU和内存来支持,有可能会对VM性能有负面影响。vMotion如果不能获得该VM上每个Core30%的资源,可能执行的速度会很慢。

尽量避免必要的vMotion。对于响应时间特别敏感的VM,以及使用vFlashCache的VM,DRS在作vMotion决定的时候会相对保守,尽量避免vMotion

好处

VM移植后所释放的资源可供源主机使用,同时因为目标主机资源更充足,VM的性能可能会提高。整个Cluster的负载会更均衡得分配给所有主机。


DRS Migration Threshold

可以调整slide bar来调整DRS aggressive的程度。Aggressive的程度越高,对各个主机负载均衡的程度更敏感,更倾向于启动DRS来移植VM

如果调整Threshold之后,你仍然不满意结果的话,考虑条整下面的参数。

如果你认为DRS的移植VM的频率太频繁,可以增加PercentIdleMBInMemDemand的值到100%。初始值是25%

另外,DRS算法的设计原则是满足VM的性能需要,而不是在主机之间均衡VM的个数。如果你不希望在一台主机上运行过多的VM,考虑设置LimitVMsPerESXHost


Affinity/Anti-affinity Rule

设置Rule的原因可能有:

我们往往采用多个VM来实现某些关键应用。为了避免由于主机宕机产生的单点故障,尽量采用Anti-affinityRule在不同的主机上运行这些VM

软件许可的要求

性能优化的要求

比如需要频繁通讯的VM,可以考虑在同一台主机上运行

Stretch Cluster.不希望VM异地访问存储,从而造成延时和性能下降。详细分析见【虚拟化实战】容灾设计之三Stretched Cluster

Should(not) run on: DRS尽可能会满足设定条件,但必要时也会突破规则限制。

Must(not) run on: 该设定条件是强制性的,是必须要遵循的。设置强制性条件时要慎重,过多的条件限制可能很大制约DRS可以分配的主机资源。


Automation Level

设置为Disabled可能会后期的维护有一定的影响,但DRS仍然会提供移植的建议,供用户来考虑。而且用户完全可以在开始的时候决定哪台主机运行哪些VM。

设置为Fully Automated可以最大化的保证各个主机负载的均衡。


参考:

VMware vSphere 5.1 ClusteringDeepdive by Duncan Epping

VMwareDistributed Resource Management: Design, Implementation and Lessons Learned


VMworld2013 Session:Performance and Capacity Management of DRSClusters

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章