xenserver规定了虚拟机和模板的内存大小的下限和上限,如下图所示:

151746101.png

  今天在做测试的时候,想在xenserver服务器上面多打开一些虚拟机,可是内存不允许。我的虚拟机都是win7 x64,查了半天资料才发现xenserver对于虚拟机和各系统模板的内存是有限制的,不能太低也不能太高,所以从上图可以看出win7 x64最低2G内存,我晕,2G啊,真是荒唐。。。。于是就找了一些方法进行了实践。。

   打开xenserver的console端,首先要根据name-lable或其他参数获取vm或者template的UUID。

   xe template-list name-label=Windows\ 7\ \(64-bit\)  获取UUID

    153054578.jpg

    然后再查看该template的最小内存和其他限制。

    xe template-list uuid=(上面获取的)params=memory-static-min,recommendations

    注意:recommendations参数可以不添加,增加recommendations参数,可以参考XenServer中对模版或者VM的一些限制,如vCPU,网卡等数量限制

     153653642.png

    发现这里的最小内存为:2147483648,单位为B换算成G就是2G。

    下面我们开始修改内存最小限制为512M:

     xe template-param-set uuid=  memory-static-min=536870912

     154525205.png

     修改完后,当你在创建win7 x64时,就可以最小使用512M内存了。

        上面的方法可能只能调整下线,调整上线会由于牵涉到内存DMC的设置,所以需要使用下面的命令设置最大值:
         xe vm-memory-limits-set uuid={uuid} static-min={value} dynamic-min={value} dynamic-max={value} static-max={value}

     其中需要注意的是,该命令中,后三个参数需要满足以下条件static-min≤dynamic-min=dynamic-max=static-max