虚拟化实战:Cluster设计之二DRS

云计算 虚拟化
本文介绍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可以***化的保证各个主机负载的均衡。

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://frankfan.blog.51cto.com/6402282/1327737

责任编辑:老门 来源: 51CTO
相关推荐

2013-05-27 09:52:26

虚拟化存储虚拟化应用

2013-12-11 10:40:31

虚拟化实战Cluster

2013-11-29 10:24:52

Cluster设计资源池

2021-12-01 07:02:16

虚拟化LinuxCPU

2018-03-21 11:00:45

2013-05-21 09:47:45

虚拟化存储虚拟化

2013-06-08 11:10:36

虚拟化虚拟化存储

2013-05-28 09:33:47

虚拟化虚拟化存储

2013-06-24 10:44:57

虚拟化网络设计

2013-06-25 11:46:36

虚拟化实战IP Storage

2012-02-15 10:34:29

JavaJava Socket

2013-06-21 10:33:02

虚拟化应用存储虚拟化

2021-10-18 08:28:03

Kafka架构主从架构

2014-01-03 13:56:00

手游用户体验设计启动和停止

2010-05-26 14:42:54

桌面虚拟化

2012-05-03 11:30:04

ApacheCXFJava

2013-09-03 11:35:27

vSphere虚拟机存储

2013-10-11 16:47:38

2009-08-27 11:07:50

2009-08-03 13:19:07

WindowsServ虚拟化Hyper-V
点赞
收藏

51CTO技术栈公众号