In a research project involving virtualization and power management I am testing various resource allocation scenarios and custom power management algorithms. I am interested in isolating a virtual machine to use only a certain CPU core.
I was thinking about using Windows 2008R2 and Hyper-V, but Hyper-V does not allow setting CPU affinity for a virtual machine, is there any way I can make sure that a virtual machine running a CPU intensive task will use only one core of the CPU (the VM is configured to use a single CPU) and have the rest of the cores available for other task?
VMware ESX Server is an interesting choice since it provides the settings I need (including hot memory add), however it seems like a closed system. Does the OS of ESX Server, based on Linux from what I understand, allow for installing custom application through which to control aspects related to power management of the physical server's components (e.g. perform CPU frequency scaling). Does it provide any APIs? I am aware the product already has power management features, but I am looking for means to achieve custom implementations.
Besides these two solutions, can you recommend other hypervisors which provide facilities such as setting CPU affinity, CPU limits and reservations, hot memory add and which allow for custom applications running on the host server (also provide APIs to program such applications) - maybe Citrix XenSource, KVM (I am not familiar with these solutions)?