一方面虚拟平台需要支持动态调整功能,另一方面虚拟机上的Guest OS需要支持资源扩展。比如要给一个虚拟机分配更多的内存,如果Guest OS不支持扩展的话它也无法使用这些资源,相反在减少资源的时候,如果Guest OS不支持调整,也无法释放资源。
内存动态调整
通常,虚拟化平台为某个虚拟机分配固定大小的内存,那么这个客户机将一直占有这些内存直到被销毁。如何动态分配或者减少其内存成了一个难题。
balloon driver是一种解决方案,它在客户机中安插一个特殊的驱动,客户机可以释放部分空闲的内存或者向虚拟化平台池申请更多的内存。具体实现机制还未了解。
By using the balloon driver, a guest can either give up or request more memory from the hypervisor’s pool. A well-behaved guest implementing this will return large unused blocks of memory to the hypervisor.
据我所知,实现这个功能的虚拟化平台有:VMware ESX server,Xen。
CPU动态调整
与内存一样,能否动态管理虚拟机的CPU分配?
如果虚拟机使用的是半虚拟化,CPU的分配也可以动态更改。
磁盘空间动态调整
所有的虚拟化平台都支持,一般是提供一个固定根分区和一个可调整的实例分区:
根分区是在虚拟机启动时从虚拟镜像克隆的,当您关闭您的服务器时,该分区上的存储丢失。
实例分区一般是提供永久性的存储,先创建一个卷附加到虚拟机,然后创建文件系统,并挂载到相应目录。例如Amazon的EBS服务。
阅读(2017) | 评论(0) | 转发(0) |