kernel fair scheduler?

nickgr

Renowned Member
Nov 12, 2014
9
2
68
Hello all

The last months we have tested every well known visualization platform (ovirt, nebulla, cloudstack, openstack etc)
and probably we will stick with proxmox.
It is stable, easy to configure and to manage and almost bug free.

I have two questions

Are the resources that a VM can consume limited to the node resources?
IE i have a 4 node cluster. Each node has 1 CPU with 4 cores and 32GB ram and shared storage

Is there any way to assign all 4 CPUs from all nodes to one VM ? I mean, without load balancing etc

I have run some crash test to one VM, but i think that the VM was not even consuming the full CPU power from his own node.
All other nodes stay with 0% load average
So you can have many VMs in one node, but can you have one VM getting CPU and memory from many nodes?


And the second one

I have read the 2 proxmox books, the wiki, the forum but i still can not understand how the CPU power is shared in KVM visualization.
For example in esxi, one core is one core.
In proxmox, one core is something that only the kernel fair scheduler knows what to do with and hot to handle,
Can someone please explain this?

Thank in advance
 
For example in esxi, one core is one core.
Not true. In esx1 1 vcpu is 1/4 of a cpu so to assign an unshared cpu to a vm you will need to assign 4 vcpu to the vm. You are however not guarantied that your 4 vcpus are all executed on the same cpu. To have a guaranty for this you will need to pin a cpu to a vm.
 
for question 1: if you have an application that requires so much CPU power, you dont want virtualisation. what you want is a HPC cluster or if you absolutely must, you could use the powerPC architecture (with either AIX or linux).
 
Regarding question 1, there is no way for a single VM to run on multiple nodes to utilize the resources from a cluster of nodes.
Like Mo_ said, you need the application to be written to use MPI in order to have the workload distributed over multiple nodes.
VMs are supposed to be 'smaller' than any single node, otherwise using any virtualization tool is useless, you're better off running the box bare-metal.
 
Actually I remember Dell proposing a virtualization solution that allowed to use the RAM from different machines (connected by InfiniBand, IIRC) as if it all was a single pool. No idea for CPUs. But as already said ProxMox doesn't work this way.