ELi5: What does the term “bare metal” refer to when it comes to virtual machines? To me, it just sounds like having two different operating systems on the same computer that you can switch between on the boot screen.


Someone PLEASE explain to me what bare metal is and why I keep hearing about bare metal hypervisors.

In: 0

The term “bare metal” refers to a physical computer server, as opposed to a virtual server.

“Bare metal” refers to a physical computer.

Normally when you are using VMs you run a normal OS like Windows or Linux, then you run your VM software (hypervisor) and then than runs your guest OS (Windows, Linux, whatever).

With bare metal hypervisor, you don’t run a normal OS first. The hypervisor is it’s own OS that then runs other OSes. Removes one layer of software so increases performance.

Bare metal means the system is **not** a virtual machine. A bare metal OS is a “real” operating system running directly on the hardware. However, a bare metal system does not need to be a “normal” operating system like Windows that you use for day to day tasks, it can be specialized for the purpose of running other OSes as virtual machines. That’s a hypervisor. Hyper-V for example is the “primary” operating system that runs on your hardware, so it is a bare metal system. However you wouldn’t use Hyper-V to browse the web or play games or do office work. You’d only use it to run Windows, Linux, etc as virtual machines.

A hypervisor does not need to be bare metal. For example VirtualBox lets you run virtual machines. But VirtualBox is an application you might run within Windows. It is not the primary operating system of the computer. A bare metal hypervisor will offer better performance for the virtual machines compared to running an OS within an application within another OS.

A virtual machine is as the name suggest a machine which actually runs inside another operating system. It is not quite an emulator as things like the processor, memory and possibly even devices are not emulated. However they are constrained by the hypervisor and a lot of devices are being emulated in some form or another. The hypervisor itself, the “true” operating system, runs on bare metal without any abstraction layer between it and the hardware. So “bare metal” is a true physical computer while a “virtual machine” is a virtual computer in a hypervisor.

The advantage to using a virtual machine is that you can abstract away a lot of the details of the hardware. Firstly you can run multiple VMs on the same physical hardware without having them interfere with each other at all. You can also share common resources like CPU, disk, network and even memory as needed. For example you may run VMs with 256 CPU cores total on a 64 core bare metal as there is little chance that all of the VMs need to use their full CPU all at the same time. Servers can also have quite complex disk and network setups in order to provide redundancy and flexibility and all of this can be set up on the hypervisor so the VMs do not need all this complex setup themselves. And if the same disks and networks are shared among multiple bare metal servers then it is possible to quickly move a VM between them, either by powering down the VM and booting it on the new machine or even live migrating by copying the memory while the VM is running.

So virtual machines makes managing servers so much easier. You can basically just buy a few large bare metal servers and have hundreds or even thousands of tiny servers running as VMs inside these. Installing new VMs is done in seconds without any need for physical installation or configuration. And hardware maintenance can be done without taking down the VMs.

What you might have seen being offered by cloud providers are “bare metal” as an option when ordering an VM. For cloud providers the flexibility of VMs is not enough. And they have set up networks and disk systems in their data centers to handle most of the complexity that a hypervisor would previously do. So the need for a hypervisor is not as great any more. So if you want a large server and do not want the tiny overhead that a hypervisor gives you then you can order a full physical server. The cloud provider will configure the network and disks outside of the server itself. There is a bit of a difference in how they do it. But it means that you get to have control over the full physical hardware of the server and not just a virtual machine running inside it.