你的位置:首页 > 软件开发 > 操作系统 > 浅谈Virtual Machine Manager(SCVMM 2012) cluster 过载状态检测算法

浅谈Virtual Machine Manager(SCVMM 2012) cluster 过载状态检测算法

发布时间:2015-07-16 15:00:14
在我们使用scvmm2012的时候,经常会看到群集状态变成了这样点开看属性后,我们发现是这样、发现了吗?Over-committed,如果翻译过来就是资源过载,或者说资源过量使用了,那么这个状态是怎么出现的呢?出现这个状态以后会出现什么问题?怎么解决?今天我们就谈一谈在SCVMM ...

浅谈Virtual Machine Manager(SCVMM 2012) cluster 过载状态检测算法

在我们使用scvmm2012的时候,经常会看到群集状态变成了这样

浅谈Virtual Machine Manager(SCVMM 2012) cluster 过载状态检测算法

点开看属性后,我们发现是这样

浅谈Virtual Machine Manager(SCVMM 2012) cluster 过载状态检测算法

发现了吗?Over-committed,如果翻译过来就是资源过载,或者说资源过量使用了,那么这个状态是怎么出现的呢?

出现这个状态以后会出现什么问题?怎么解决?

今天我们就谈一谈在SCVMM中over-committed的算法,知道SCVMM是如何确认一个群集是否过载后,就知道如何避免它,带来种种问题也就能解决了

 

part 1. 算法概述

SCVMM 2012 群集的过载检查主要是用来确认整个群集是否可以在最大允许宕机节点数(这个值我们暂时记为R)宕掉后,将运行在这些节点上的VM在其它可用节点上启动,值就是上图中配置的:Cluster reserve(nodes)。群集先将群集状态预设为overcommitted ,然后通过检查算法运算后,再确认群集状态是什么情况。

那么过载会有什么危险呢?

1.一个完美的系统,有!这种符号看上去就很不爽,所以我要解决它……好吧,我是强迫症

1.系统在overcommited后,此时如果发生了节点失败,业务就有可能不能正常failover,换句话说,有可能重要的VM根本没有资源启动了,想想下场吧,谁管理这个系统谁就会死的很惨

2.在进行VMM的动态优化的时候,因为overcommited状态,动态优化就不能正常的工作……这个以后我再发一篇文章专门写VMM动态优化

3.……暂时还没想到

 

part 2.算法介绍

算法一共有四种,只要其中任意一种算法通过了检查,就将群集状态置为“OK”,否则保持“overcommitted ”状态。但要说明的是:overcommited这个状态,只是针对内存的,CPU使用我们是不管的

现在我先把四种算法列出来,如下表:

浅谈Virtual Machine Manager(SCVMM 2012) cluster 过载状态检测算法

 

可以看出来评估方法有两个,分别是proof和slot,检测策略也有两个,分别是simple和full,四种算法就是策略的评估方法的组合2*2=4种

下面分别说一下评估方法和策略,但是看说明可能不太明白我写的是什么是意思,你可以大概过一遍,然后看下面的算法详解,然后回来再看,应该就明白了

1.Proof Method

这个算法评估整个群集是否满足如下条件:在R节点上的VM除去最大内存开销的VM,都已经切换到群集中的其它节点上,之后最大开销内存的VM没有可用的主机进行切换,这是一种最差情况假设

2.Slot Method

通过一个将R节点上的最大VM做为一个标准SLOT,然后计算 H节点的可用SLOT数,之后评估是H节点是否可以放置R节点的所有SLOT

3.Simple check

简单检查算法不考虑具体节点,只在整个群集上做一个假设。在群集中选定最大VM做为标准(内存 or slot)。同样的,在进行余量(slot或者内存量)检测的时候,会在所有节点内选择最小的余量进行统计。需要注意的是,最大VM可能与最低slot是同一个节点,但是进行简单检查的时候不考虑这一点

4.Full Complexity Check

复杂检测算法是穷举群集中的每一种N(R,H)组合. 进行检测的时候, slot数 , 最大 VM , H节点的内存和SLOT统计都按具体指定的组合进行重新计算,此检查算法最大的风险就是N(R,H)组合量有可能变的很大,具体来说就是有N^R种,为了避免这种大量的运算,这个算法只会在 N^R < 5000才使用。

这里可能可以简单列一个群集组成做为参考

浅谈Virtual Machine Manager(SCVMM 2012) cluster 过载状态检测算法

 

part 3.算法详解

这里先列出一些预定义值计算方法,下面算法中会用到

群集值

浅谈Virtual Machine Manager(SCVMM 2012) cluster 过载状态检测算法

主机节点值

这些变量值会在每个主机上进行计算,会预先计算出来后将值代入下面的计算公式中

浅谈Virtual Machine Manager(SCVMM 2012) cluster 过载状态检测算法

 

有几点需要注意

1. 每个VM需要额外的64MB用以hyper-v监控程序开销,但是为了方便计算,下面的算法不把这个值代入计算了

2. Stopped, saved state, paused 和running 状态的VM也都要参与计算.

3. 如果虚拟机使用的是动态内存,则用当前分配的值用以公式计算

 

part 4.算法

终于到了算法部分了,看上去好像计算复杂,其实看明白了觉得这个算法也不是特别麻烦,下面把四种算法说明一下

4.1 Slot Simple

- SlotSize = 群集中VM配置的最大内存值

- 在每个主机上计算:AvailableSlots, UsedSlots ,TotalSlots

- 计算TotalSlotsRemaining=sum(主机组中H个最小TotalSlots)  注意是全部节点按TotalSlots排序后,从小到大取H个TotalSlots

原标题:浅谈Virtual Machine Manager(SCVMM 2012) cluster 过载状态检测算法

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录