What knowledge exists about bare-metal virtualisation products?
I'm interested in building a new desktop machine for home. I've been looking at the Intel Quad Core processors and I'd like to put 8 GB of RAM in there, but, it got me thinking about making the most out of the available resources.
I thought if I could get a good 64-bit machine, put some bare-metal virtualisation on, then have a primary system, I'd also be able to bring up some extra virtualised systems as and when I needed. I know most of the bare metal systems are designed for the server market, but, is there anything out there that works well for a desktop?
What are the caveats? I presume I won't be able to make the most out of any video cards I could buy. What about just getting a decent screen resolution, will this be a problem? I run a single 24" screen.
What about DVD/CD writing, is this possible? I'd like to re-rip my CD collection, I was hoping the quad 64-bit goodness would help me out with the encoding.
I currently use a Mac and couldn't go back to Windows so that leaves Linux. I was thinking a primary OS of Ubuntu. Does this make a difference?
As suggested elsewhere, VMWare ESXi is what's available in terms of free-of-charge bare-metal hypervisors, where "bare metal" implies that what you eventually have loaded is less than a full OS.
Xen also has a HVM mode in which hardware-level virtualization is used; in this mode it is able to run Windows guests. Xen clearly has a "bare metal" hypervisor -- as even the Dom0 OS runs under it -- but it is substantially complex to configure and maintain, and places constraints on the kernels you can run under non-HVM domains (of which the Dom0, the primary kernel which passes through hardware access to the others and has administrative rights, is one). HVM requires a CPU and motherboard with hardware virtualization support; see the Xen wiki's list of HVM-compatible motherboards.
That said, you might find KVM more interesting. Rather than using Linux to manage a separate, proprietary hypervisor kernel (as does ESX), KVM builds the hypervisor capabilities into Linux itself. How "bare metal" that is depends on your interpretation -- but if your host running KVM is nothing but a 40MB initrd that has nothing but kvm+libvirt+related toolage in-place (say, something like Red Hat's oVirt), you've got something which in practice is not entirely unlike ESX. The userspace component of KVM is derived from QEMU, which makes it all kinds of powerful and flexible -- something you don't necessarily need for a desktop, but which is very interesting in simulating embedded systems (with, say, only serial I/O and no VGA adapter), setting up complex chains of COW images to backend the storage, or setting up interesting virtual network topologies. Like Xen HVM, KVM requires hardware acceleration. KVM runs undemanding Windows guests (including Vista) reasonably well, but only has paravirtual network drivers for Windows available at this time; other drivers need to use emulated hardware, which is somewhat slower. (Qumranet is funding the development of other drivers for Windows, so expect to see them eventually. Newer versions of the Linux kernel have many other KVM-compatible paravirtual drivers -- for disk I/O, clock, and other devices -- included upstream).
For desktop usage, VirtualBox is a good fit, though it's not amenable to "bare metal" usage at all. On account of its lack of libvirt support, I also consider it unsuitable for QA automation uses. VirtualBox has a paravirt video driver among its "guest utilities" which will provide for automatic window resizing and a sometimes-buggy "seamless mode" where your guest's windows will show up among the host's, making (in theory) for a more integrated experience.
If you're using a "primary OS" that isn't purpose-built for virtualization, you aren't doing "bare metal" virtualization, and a minimalistic, fully "bare metal" solution in which the (micro)kernel in primary control is built strictly for the purpose of virtualization is going to be seriously suboptimal if you want your Windows desktop to display on the same piece of hardware. If what you want is not "bare metal" but hardware-assisted virtualization, everything suggested here offers that -- though for VirtualBox it's a checkbox-selectable configuration option; by default it uses more traditional methods.
I'm a huge fan of the various VMWare products myself (and even vaguely impressed by Hyper-V) and I totally go with what the guys above state. That said there's something I'd like you to appreciate first before your start with whatever VM software. Client virtual machines are 'given' a fixed set of hardware by the host OS - a number of processors of a certain type, a chipset of a certain type, NICs of a certain type, video card etc (the specific types vary by product/version). These 'emulated' components are almost always what are needed for most client VM's functioning as servers as they generally don't really need too much specialised hardware. But if you're main desktop is going to run as a client VM you need to consider if the limitations of those virtual components will eventually cause you problems. Take gaming as an example, few host OS's expose a DX9-capable virtual GPU to their client VMs, meaning no gaming for you. The same goes for sound hardware, you generally get a 'base' sound card (if any all), and its emulation is often a very low priority job, so you can forget about 5.1 sound, same for things like hardware-emulated video decoding, your client VM just doesn't know that your hardware can do this so doesn't try.
I hope you understand these limits, for a server environment this is ideal of course, all server VM clients can use the same known, stable drivers. But many people want their client desktop machines to be much more under their control.
One option you might consider would be to use Windows Server 2008 with Hyper-V, I've used it but not for many months. It has a different model from VMWare and allows you to use 2008 as your host (so you get to access all your hardware like normal) and have client VMs on top of this. In this way it's more like the 'desktop virtualisation' systems such as VMWare Workstation, Fusion and a few others but I'm aware you asked the question in relation to 'Bare Metal VMs'.
Hope this helps,
There appears to be a free, open-source Mac OS X compatible hypervisor available called VirtualBox. This, however, is not "bare metal".
Bare metal would be the VMWare ESXi, a free hypervisor.
But most bare metal products are aimed at the server market, as you rightly guess, and do not expose resources that might be useful on the desktop. You'll have to do some research to see what's available, and how it's partitioned (video, CD/DVD, USB, etc.).
But you're asking a conflicting question. You want a bare metal hypervisor, but you also want it to be feature rich. Your best bet might be to load a minimal Linux OS with VirtualBox and use that complete system as your hypervisor, running the real OS's on top of that.
VirtualBox appears to be one of the best virtualisation tools. Combined with Linux + Virtualisation features on chip its great.
I'm not sure what you mean by "bare metal", but you can't run things that close, there has to be some visualization ( even if it is a kernel hyper visor )
It has this cool trick it does where, when using its own video drivers in windows, can mix windows apps into your linux desktop with a fancy compositing trick. ( effectively, the windows desktop becomes transparent and the app drops its borders and does other fancy reporting tricks ) and it becomes like running X11 on Windows ( its creepy, really )
XenClient is one of the bare metal desktop vertualization tools, which supports Windows XP SP3, Windows Vista and Windows 7. You can install the servers as well but Xen tools for driver will not support.