浅谈Virtual Machine Manager(SCVMM 2012) cluster 过载状态检测算法
在我们使用scvmm2012的时候,经常会看到群集状态变成了这样

点开看属性后,我们发现是这样
、
发现了吗?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使用我们是不管的
现在我先把四种算法列出来,如下表:

可以看出来评估方法有两个,分别是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才使用。
这里可能可以简单列一个群集组成做为参考

part 3.算法详解
这里先列出一些预定义值计算方法,下面算法中会用到
群集值

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

有几点需要注意
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
- If Sum(UsedSlots) <= TotalSlotsRemaining, 则群集没有过载,状态置为OK.
4.2 Slot full
需要计算各种R与H的每种组合情况
- SlotSize = R中最大内存开销VM
- 计算每个主机上的AvailableSlots, UsedSlots ,TotalSlots
- TotalSlotsRemaining =H主机的TotalSlots 总数
- 如果Sum(UsedSlots) > TotalSlotsRemaining, 群集状态可能为 overcommitted.
- 如果每种组合的Sum(UsedSlots) <= TotalSlotsRemaining , 群集状态则为OK
4.3 Proof Simple
- LargestClusterVM = 群集中最大内存开销VM
- 计算所有主机的AdditionalMemory, VM数
- TotalAdditionalSpace = sum(主机组中H个最小AdditionalMemory) ,与Slot Simple算法中的TotalSlotsRemaining值计算方式一样- TotalOrphanedVMs = sum(最大VM*R) – LargestClusterVM.
- 如果 TotalOrphanedVMs <= TotalAdditionalSpace, 群集状态为OK.
特别注意: 如果 TotalOrphanedVMs =0, LargestClusterVM > 0 and TotalAdditionalSpace = 0, 群集可能为overcommitted
4.4 Proof Full
需要计算各种R与H的每种组合情况
- LargestClusterVM = R中最大内存开销VM
- 在所有主机上计算AdditionalMemory, VM数- TotalAdditionalSpace = Sum (H主机AdditionalMemory)
- TotalOrphanedVMs =Sum (R主机的vm内存) – LargestClusterVM.
- 如果 TotalOrphanedVMs > TotalAdditionalSpace, 群集可能overcommitted.
- 如果 TotalOrphanedVMs = 0, LargestClusterVM > 0 and TotalAdditionalSpace = 0, 可能overcommitted.
如果每种组合的 TotalOrphanedVMs < TotalAdditionalSpace , 群集状态为OK.
算法说完了,最后说一点:以上这些算法,统统都不会把群集状态标记为过载
…………
是不是觉得白白浪费了时间看这篇文章了,那我这说什么梦话呢,明明是说怎么检测过载!
其实在一开始的时候已经说了,VMM对于群集状态都置都认为是overcommitted的,换句话说,就是默认值是过载的,状态算法只负责标记状态OK。所以如果上面的算法不能证明群集没有过载,SCVMM就会显示群集状态为overcommitted,反之,只要有任意一个算法证明群集未过载才会把状态置为OK
此外,这里还有一个处理逻辑:就是在进行Full Complexity检查中,只要有一组计算结果为可能过载或者过载(这里也说明了上面我在进行算法说明的时候,为什么有几处写的是”可能”overcommit),那么就立即停止本次检测,群集状态为overcommited
part 5 .demo
好了,终于到了例行的大家期待的demo了,如果只说算法不进行个演示,这个概念的确比较抽象,
场景:4节点群集,主机为 4x 32GB hosts. 系统保留内存 9GB. 64MB的hyper-v监控需要内存不参与计算(完全就是图我方便), Cluster reserve (R)为2,群集组成如下图,,即R=2,H=2,N=4:

Slot Simple Example
- Slot size = 8GB

- TotalSlotsRemaining = sum(2个最小slot)= (1+3) = 4
- TotalUsedSlots = 7
判断:TotalUsedSlots > TotalSlotsRemaining, 此方法测试未通过
Slot Full Example
- TotalUsedSlots = 7
上表中每一行都代表一个组合的运算中间值和结果
判断:可以看到有部分TotalUsedSlots > TotalSlotsRemaining,所以这个方法检测未通过(这里说一句,其实不用都算出来,只要有一组数据检测没通过这个运算就已经结束了)
Proof Simple Example
- LargestClusterVM = 8GB

- TotalAdditionalSpace = sum(H个最小AdditionalMemory)= 0GB + 5GB = 5GB.
- TotalOrphanedVMs = (8GB + 8GB) – 8GB = 8GB.
判断:TotalOrpanedVMs > TotalAdditionalSpace, 此方法检测失败
Proof Full Example

表中每一行还是代表一组RH组合的运算中间值和结果
判断:可以看出每一组的 (Orphaned – LargestVM <= AdditionalMemory),条件都满足了,所以群集状态置为:“OK”
浅谈Virtual Machine Manager(SCVMM 2012) cluster 过载状态检测算法的更多相关文章
- 使用 Virtual Machine Manager 管理虚拟机
转载自https://www.ibm.com/developerworks/cn/cloud/library/cl-managingvms/ 尽管服务器管理在过去问题重重,但虚拟化管理简化了一些问 ...
- 浅谈 Virtual DOM 的那些事
背景 我们都知道频繁的dom给我们带来的代价是昂贵的,例如我们有时候需要去更新Table 的部分数据,必须去重新重绘表格,这代价实在是太大了,相比于频繁的手动去操作dom而带来性能问题,vdom很好的 ...
- 浅谈压缩感知(九):正交匹配追踪算法OMP
主要内容: OMP算法介绍 OMP的MATLAB实现 OMP中的数学知识 一.OMP算法介绍 来源:http://blog.csdn.net/scucj/article/details/7467955 ...
- [译] libvirt 虚机的生命周期 (Libvirt Virtual Machine Lifecycle)
翻译自:http://wiki.libvirt.org/page/VM_lifecycle 这篇文章描述虚机生命周期的基本概念.其目的在于在一篇文章中提供完整的关于虚机创建.运行.停止.迁移和删除 ...
- PatentTips - Virtual machine management using processor state information
BACKGROUND OF THE INVENTION The invention generally relates to virtual machine management, and more ...
- 浅谈-RMQ
浅谈RMQ Today,我get到了一个新算法,开心....RMQ. 今天主要说一下RMQ里的ST算法(Sparse Table). RMQ(Range Minimum/Maximum Query), ...
- 浅谈压缩感知(二十一):压缩感知重构算法之正交匹配追踪(OMP)
主要内容: OMP的算法流程 OMP的MATLAB实现 一维信号的实验与结果 测量数M与重构成功概率关系的实验与结果 稀疏度K与重构成功概率关系的实验与结果 一.OMP的算法流程 二.OMP的MATL ...
- 浅谈Java Virtual Machine
Java Virtual Machine 就是指Java虚拟器,以下简称VM.关于VM的概念,最早出自CPU模拟器,众所周知的PC上的游戏机模拟器采用的便是和Java VM类似的技术.ja ...
- 浅谈Android系统进程间通信(IPC)机制Binder中的Server和Client获得Service Manager接口之路
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6627260 在前面一篇文章浅谈Service ...
随机推荐
- ASP.NET MVC Anti-XSS方案
1:Form提交模式 在使用Form提交时,MVC框架提供了一个默认的机制.如果数据中含有恶意字,则会自动转向出错页面. 2:Ajax+JSON提交模式. MVC框架未提供对于Json数据的Ant ...
- ROC曲线、PR曲线
在论文的结果分析中,ROC和PR曲线是经常用到的两个有力的展示图. 1.ROC曲线 ROC曲线(receiver operating characteristic)是一种对于灵敏度进行描述的功能图像. ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统--系统权限全套完整图
根据角色或用户或模块查询权限.
- YYModel 源码解读(二)之NSObject+YYModel.h (2)
_YYModelMeta 这个内部的类主要是对这个类的描述.包含了和此类转换相关的数据. /// A class info in object model. @interface _YYModel ...
- 【NLP】揭秘马尔可夫模型神秘面纱系列文章(三)
向前算法解决隐马尔可夫模型似然度问题 作者:白宁超 2016年7月11日22:54:57 摘要:最早接触马尔可夫模型的定义源于吴军先生<数学之美>一书,起初觉得深奥难懂且无什么用场.直到学 ...
- 前端开发css实战:使用css制作网页中的多级菜单
前端开发css实战:使用css制作网页中的多级菜单 在日常工作中,大家都会遇到一些显示隐藏类菜单,比如页头导航.二维码显示隐藏.文本提示等等......而这些效果都是可以使用纯css实现的(而且非常简 ...
- C#多态“说来也说”——逻辑层BLL中的多态使用
本文版权归博客园和作者吴双本人共同所有.欢迎转载,转载和爬虫请注明原文地址 http://www.cnblogs.com/tdws/p/5861842.html 昨天晚上,有个朋友说学了好久,依然没搞 ...
- JavaScript jQuery 中定义数组与操作及jquery数组操作
首先给大家介绍javascript jquery中定义数组与操作的相关知识,具体内容如下所示: 1.认识数组 数组就是某类数据的集合,数据类型可以是整型.字符串.甚至是对象Javascript不支持多 ...
- [Android下载]北京新版小学英语三年级上册点读手机软件
小学英语三年级上册点读软件.根据2014年北京教改版教材编写,发音标准.实现点读功能.点到哪里读到哪里.哪里不会点哪里!北京教育科学研究院编写,北京出版社出版.ISBN:9787200108781 ...
- JavaWeb_day01_HTTP_Servlet
本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用. 转载请注明 出自 : luogg的博客园 谢谢配合! JavaWeb_day01 HTTP协议 HTTP(H ...
