一、为什么使用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可以***化的保证各个主机负载的均衡。
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://frankfan.blog.51cto.com/6402282/1327737