I was wondering, purely hypothetically I might add, if it would somehow be possible, given 100% hardware virtualization via pci passthrough and such, to assign all essential resources, like CPU cores, RAM and essential devices on the PCI bus, to on or more virtual machines.
I don’t exactly see how this would work, but on the other hand I don’t see why, in theory, it shouldn’t be possible.
Of course fully expect the answer to be no, but in that case I’d very much like to know what the host system is actually managing, once the virtual machines have been setup an initialized.
So that’s kind of how virtualisation can work. You assign CPU cores & Ram to a VM, and unless you set a policy (assuming your hyper-visor allows it) to throttle the CPU or use a memory balloon driver the VM has 100% of those resources assigned. If you use a CPU benchmarking tool you will find the per-core performance is at most 1-2% slower than running directly on the host.
If you then pass devices through to the VM (hard disk, USB, GPU, NIC) the VM will have 100% of those resources.
Virtualisation is not emulation
Perhaps we have a misunderstanding here.
What I mean is that there are no resources left for the host system
Say something like a 16 core system with 64 gb of RAM and 2 graphics cards of some variety. When thencrean create to virtual machines, perhaps one windows and one linux, not that it matters, split all the cores and all the ram between them, and of course passthrough one gpu for each.
If this was actually done, assuming that it can somehow be done, the host system will then be null and void and if the guess system in any way rely on the host, for even the most miniscule task, then of course we have a problem.
Furthermore, if this was actually done, would it even be logical to talk about virtualization any more?
Ah, OK. Well yes, ESXi runs as headless, you can administer it from a browser running inside a guest so a GPU can be mapped to a VM, same with USB bus etc. No need for the host to have its own keyboard/mouse etc. If you have 16 physical cores you can also assign 8 (or more) to each VM, the hyper-visor will just manage the scheduling and won’t be starved of resources to do what it needs.
With regards to RAM, there is always an overhead and most hyper-visors will hide this from you, you can allocate all the RAM on the host if you wanted, but you would never actually use all of it inside the VM’s. You would usually just under allocate so there is some there for the host.
Thanks, I’ll certainly look into that, though with the new 24 and 32 core TR coming I won’t actually need it.
You can’t actually reserve all of it for a guest. You can say that the allocation of resources is uncapped but the host will still use what it needs to run the virtualization.
No because you need to run your base host on something.
Yes, but given that you passthrough all needed that you need, what does the host actually do, other that initializing the guest(s)?
A type 1 hypervisor runs the virtualization software. It doesn’t need much but it does require some resources.
You would want to look at thin vs thick provisioning.