在一个涉及虚拟化和电源管理的研究项目中,我正在测试各种资源分配方案和自定义电源管理算法。我有兴趣隔离虚拟机以仅使用某个 CPU 内核。
我正在考虑使用 Windows 2008R2 和 Hyper-V,但 Hyper-V 不允许为虚拟机设置 CPU 亲和性,有什么办法可以确保运行 CPU 密集型任务的虚拟机只使用一个核心CPU(VM 配置为使用单个 CPU)并且其余内核可用于其他任务?
VMware ESX Server 是一个有趣的选择,因为它提供了我需要的设置(包括热内存添加),但它看起来像是一个封闭的系统。据我了解,ESX Server 的操作系统是否允许安装自定义应用程序,通过该应用程序来控制与物理服务器组件的电源管理相关的方面(例如执行 CPU 频率缩放)。它是否提供任何 API?我知道该产品已经具有电源管理功能,但我正在寻找实现自定义实现的方法。
除了这两个解决方案之外,您能否推荐其他提供诸如设置 CPU 亲和性、CPU 限制和预留、热内存添加以及允许在主机服务器上运行自定义应用程序(也提供 API 来编写此类应用程序)等功能的管理程序 - 也许是 Citrix XenSource、KVM(我不熟悉这些解决方案)?