在XenServer中,我们可以发现,创建虚机的时候,VM的最大最小值都有规定值,内存无法设置太低,也没法设置的更高,比如选择Windows Server 2003 32bit模版来安装的时候,我们会发现,2003 R2 32bit的模版最多只能设置4GB内存,最少不能少于256M内存。超过范围,XenCenter工具会帮您自动调整为范围内的最接近值。
XenServer为了保证通常情况下的系统运行,为每个类型的系统设置了合适的内存范围,如下表:
Operating System | Minimum RAM | Maximum RAM | Disk space |
---|---|---|---|
Windows 7 32-bit | 1GB | 4GB | Minimum 16GB, 40GB or more recommended |
Windows 7 64-bit | 2GB | 32GB | Minimum 20GB |
Windows Server 2008 R2 | 512MB | 32GB | Minimum 32GB |
Windows Server 2008 32-bit/64-bit | 512MB | 32GB | Minimum 10GB, 40GB or more recommended |
Windows Vista 32-bit | 1GB | 4GB | 16GB |
Windows Server 2003 | 256MB | 32GB | 2GB |
Windows XP SP2/3 | 256MB | 32GB | 1.5GB |
Windows 2000 SP4 | 256MB | 32GB | 2GB |
CentOS 4.5, 4.6, 4.7 | 256MB | 16GB | 800MB |
CentOS 5.0, 5.1, 5.2, 5.3, 5.4 | 512MB | 16GB | 800MB |
Red Hat Enterprise Linux 4.5, 4.6, 4.7, 4.8 | 256MB | 16GB | 800MB |
Red Hat Enterprise Linux 5.0, 5.1, 5.2, 5.3, 5.4 | 512MB | 16GB | 800MB |
SUSE Linux Enterprise Server 9 SP2/3/4 | 256MB | 32GB | 1GB |
SUSE Linux Enterprise Server 10 SP1/2, 11 | 512MB | 32GB | 1.5GB |
Oracle Enterprise Linux 5.0, 5.1, 5.2, 5.3, 5.4 | 512MB | 16GB | 800MB |
Debian Lenny | 128MB | 32GB | 4GB |
而如果你为了某个特殊的需要而想突破该限制怎么办呢?有没有办法?答案是有。
我们可以先来看看默认的最大最小内存限制是多少:
1 2 3 4 5 6 7 8 9 10 | #template-list用来查看模版的设置,而vm-list是用来查看虚机的设置 #直接使用params=memory-static-min可以查看可以设置的最小内存 #直接使用params=memory-static-max可以查看可以设置的最大内存 #增加recommendations参数,可以参考XenServer中对模版或者VM的一些限制,如vCPU,网卡等数量限制 xe template–list name–label=<Name of Template> params=memory–static–max,recommendations – Or – xe vm–list name–label=<Name of VM> params=memory–static–max,recommendations |
我们可以通过使用memory-static-min,recommendations同时获得最小值和最大限制参数。
最小值为:268435456B=256M,最大值为:4294967296B=4096M=4GB。这也就是我们为什么在XenCenter不能设置超出范围的原因,但是我们能够手动调整参数来达到目的:
1 2 3 4 5 6 7 8 | #UUID可以通过template-param-get或者vm-param-get来获得 #设置最大最小值类似 xe template–param–set uuid=<UUID of Selected Template> memory–static–max=<New Memory Limit in Bytes/MiB/GiB> – Or – xe vm–param–set uuid=<UUID of Selected VM> memory–static–max=<New Memory Limit in Bytes/MiB/GiB> |
如图,我们可以调整默认Windows Server 2003 32Bit模版的最小值为128M:
设置完成以后,可以到XenCenter中创建虚机,检验一下,设置最大值同理。
2011/7/18更新:
上面的方法可能只能调整下线,调整上线会由于牵涉到内存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