以前一直以为XenServer的动态内存只是用来保证上线不超过可用内存总量,但是一直搞不清楚,如果这样的话,就不能超量分配了,要DMC还有何用?发现可能理解错误了。XenServer开启DMC的情况下,内存也能够超量使用。
可以看到,XenServer总共只有6GB内存,开启的6个虚机(License Server不谈),我们可以看到每个虚机大概的可用内存。其中vm:2003-1~2003-4的可用内存为1113左右,超过了1024MB,而2003-5为404,超过了384MB,2003-6虚机的可用内存为559,超过了512MB内存。
我们可以看到,总的可用内存为6143MB,当前可用内存为348MB,已经分配的内存为17688MB,超量分配288%。
结合两张图,我们可以知道,在XenServer中,只要能够保证虚机的动态内存下限值,那么XenServer会允许虚机启动,如果启动虚机后,无法满足启动虚机的动态内存下限值,那么将不会允许新的虚机启动。从此我们能够看到,XenServer也能够轻松的超量分配内存。而一般情况下,XenServer允许的动态内存上线限制为,上限不超过下限的4倍,所以,理想状况下,XenServer最大可超量使用内存为4倍可用内存。
关于内存超量分配以及VM虚机内存限制的设置,我们需要有一定的计划,超量分配能够让我们开更多的虚机,但是超量分配也可能会带来性能的问题,所以,针对DMC,我们需要有一定的计划和考虑:
- 首先,VM内存限制的static-min的设置不能太小,不建议小于XenServer模板的推荐值,否则即使没有问题,因为下限不会影响VM是否可用,但是过小的静态内存下限,对VM的性能和启动有较大的影响。
- 有计划的超量分配内存,根据VM的业务类型计算,防止在DMC的情况下,使用虚机内存,该设置将极大影响VM的性能
总的来说,DMC对实验环境,硬盘性能够好的情况下,VM压力不大时候,内存消耗不多的情况,超量分配可用尽可能的启动虚机,满足实验要求,解决了内存不足的问题。
BTW:
1 2 3 4 | #以下命令用于设置xenserver中VM的静态内存最大最小值,以及动态内存的最大最小值 #未启用DMC时候,需满足以下条件:static_min<=dynamic_min=dynamic_max=static-max #启用DMC时候,需满足以下条件:static_min<=dynamic_min<=dynamic_max<=static-max xe vm-memory-limits-set vm=<vm-name-label> static-min=<static min mem> dynamic-min=<dynamic min mem> dynamic-max=<dynamic max mem> static-max=<static max mem> |
你好博主, 想请教下我装完为何不能用动态内存呢?是不是要收费版本才可以?如果可以PJ的话求教程万分谢谢!
需要企业版以上才支持该功能。
目前无法破解!
那样可郁闷了我的服务器32G内存,开1G的只能开32台最多了;
如果我开到32G内存后继续开,能开的了机器吗?还是说VPS直接不能开机?
谢谢你的回复。
如果没有DMC,那么,内存不足的时候,可以确定VPS直接无法开机。
我又来了,顺着百度来的,现在有了XEN 试着你说的超量分配,却提示不可以超,你是怎么完成的呢
估计是没有设置License的问题,需要企业版以上才支持!
动态内存控制和Overcommit没有相互依赖关系,OverCommit客观的来讲不应该作为一个功能来宣传,因为开启overcommit会耗用Domain0大量的资源,导致该虚拟化层上所有VM性能下降,对生产环境没有意义。Citrix XenServer不支持OverCommit 🙂
是的,原则上来说,DMC和Overcommit是没有关系的。
但是DMC为Overcommit提供了便利,并能够最大化的利用内存。
Overcommit对某些人会有用,或者临时的超量。
Yao,XS6.0可以支持VM的内存和硬盘大小的动态调整吗?我的意思是指如果某个VM的硬盘的某个分区需要扩展大小,我该采取怎样的最佳做法?
Yao,不好意思,我参阅了相关文档,目前了解到xs上的vm的内存和硬盘都是可以调整和扩展的,只不过需要重启该vm才能生效。不知道xs或者其它的产品能不能够支持内存的动态调整而不需要重启?
有没有一种虚拟架构支持“更改运行或关闭状态中虚拟机实例的CPU大小,更改运行或关闭状态中虚拟机实例的内存大小”
谢谢!
CPU貌似不行。动态调整CPU,你想实现什么?可以超量分配,然后根据实际情况使用,也能变相的达到目的,不知道需求,另外看你怎么理解CPU cycle分配了
内存么,可以使用DMC来提供利用率。
目前两者都不支持在线调整,必须关机。
其他的是否可以,不确定。
关于硬盘扩展,XS可以来调整你的virtual disk的大小,但是就像你的物理磁盘扩大以后,还得你上层的OS能够识别到。在上层的OS如何来识别,linux和windows都有方法。但是如果调整的是windows系统盘,或者是一些XP等老的OS,可能需要第三方工具,不一定受微软官方支持,有方法可以做。
磁盘空间不足么,推荐开启thinprovisioning,分配大点,按需使用,减少不必要的麻烦。
thinprovisioning这个功能是针对存储的类型吧,XS本身没得调整thinprovisioning这个功能吧?
XS有XS自己的ThinProvisioning功能,在安装的时候,勾选上TP以后,XS的LocalStorage将为Ext3,此时就是精简模式。
如果安装过程中,没有勾选(默认没有勾选),那么安装后LocalStorage将是LVM。
存储有存储自己的TP功能。
谢谢,你说的EXT3是针对本地磁盘空间的吧?如果共享存储,是否是存储的结构限制了精简模式的启用了?如FC、ISCSI,是不是只是厚模式呢?storageLink的存储就可以用到精简模式呢?
XS自己的TP功能都是针对Local Storage。
对于share Storage的话,需要存储本身支持精简功能。
如果存储不支持,那么XS默认链接FC SAN或者iSCSI是厚模式。
StorageLink其实是XS直接调用的存储的接口来直接管理虚拟磁盘,如果存储支持的话,可以支持精简模式。
谢谢你,太感谢你的解释了,清晰很多了。我还想请教一个问题,就是内存动态设置的问题,例如设置了2049MB至8192MB之间,但现在绿色的图表与物理机Search 里的Use Memory 的数值是显示7392MB,后面是灰色的,这个是不是该虚拟机最高使用值?后面的就用不到了?
如果设置2048~8192,那么,就是可以使用到这个范围内。
7392可能是最高使用值。
你好,请问我买的桌面企业级的LIC,没有购买服务器的LIC,是不是就没有动态内存的功能了?包括我的桌面虚机。
XD送的是企业版的XS,你的桌面虚机应该是可以使用DMC的。
低版本的需要enable DMC功能,高版本只要设置VM的内存范围就可以了
我用的就是企业版的XD的LIC,我划出来的桌面虚机没有向你一样的灰色部分,划的是1024~2048,但虚机直接占用2048,是全绿色的。不知道怎么回事,请问DMC是不是要在哪里打开?谢谢。
如果没有开启DMC的话,你是内存只能设置固定值,没法设置1024~2048这种范围的。
而你设置以后,直接就是全绿色,可能和你VM的内存消耗有关,比如,你装的Windows 2012或者64位Windows 7等等,本身内存占用很高,一开机就需要全部占用2048M内存。
另外一种可能就是,你XenServer Tools是否安装正常?VM启动以后过几分钟再观察呢?
谢谢你。