Which OS Makes the Best VMWare Host?
astrojetsonjr asks: "A few days ago, Trillian_1138 asked about running Linux on a laptop. Yagu started a thread suggesting the use of VMWare to allow running multiple flavors of Linux and Windows at the same time. Lots of readers then posted their success stories using VMWare . My primary machine is an IBM laptop and I'm getting ready to move to using VMWare to allow me run Linux, Solaris and Windows at the same time. First, what is the OS/distro with which you have had the best success hosting VMWare? Finally, what host OS install and setup tips do suggest?"
Pick whichever supports most of the physical hardware, since whatever it can't see the emulated OS can't either. If you're left with more than one choice there, narrow it down further depending on which matters to you more: speed, stability, security etc. Of course in a perfect world you wouldn't need to choose between those, but then you wouldn't need a virtual machine either.
Which OS Makes the Best VMWare Host?
Why do you want to run VMWare? I have used both VMWare and qemu (as well as Xen, but I don't think that will work if you are interested in running Windows), and have found qemu to be the superior of the two. Sure, there is no built in GUI, but there are external 3rd party GUIs available if you want. Seriously, qemu makes networking much easier thatn VMWare does. No need to mess with modules (unless you want the accelerator, which I recommend), no need for services or daemons running like with VMWare. Additionally, it is open source, which I consider a huge plus. You can also emulate other CPUs. Want to emulate a PowerPC so that you can test compiling your app on FreeBSD on a PowerPC processor? How about Sparc? The *only* way in which I would see VMWare as being superior is if you are using one of their server consolidation products (GSX or ESX, I think). For workstation-level stuff, qemu is the way to go.
If Windows is the host, coLinux is a worthy solution. It runs almost as fast as a native install. And you can download a preconfigured Debian or Gentoo root image from the website.
Basically, it is a Linux kernel patched to run under Windows.
I've run Workstation and GSX (Server) on Windows and Linux. The best performance by far was Linux with XFS. Ext3 does not cut it (regardless of writeback option used). XFS support is a little tricky to find in VMWare supported distros. For less critical servers, I prefer Centos 4 with the Centosplus kernel (see the Readme). Centos isn't supported by VMWare but Red Hat is.
VMWare Server supports Ubuntu as a host. It's a little easier to setup XFS and VMWare on Ubuntu. VMWare server claims experimental support for Ubuntu Dapper. I am running it on two servers for testing and it is performing very well. As Ubuntu gains popularity, the choice may be clearer. For right now, Google University has more help for VMWare on Red Hat^W^WCentos than Ubuntu.
If your system is AMD64/EM64T, you may be tempted to load a 64-bit OS. Resist the temptation. VMWare now claims official support for x64 host operating systems, but in practice these are more trouble to get working than they are worth (MUI, authentication, and even stability can be problematic IMO). With hardware that supports 64-bit virtualization (many new Pentiums and Opterons), 64-bit guests can be run on both 32- and 64-bit hosts. Determining whether your CPU supports it is so difficult, VMWare made a tool to do it for you called the processor check utility. (It's about halfway down this page.) Down the road when 4GB+ is standard on laptops, VMWare's x64 support will probably be a lot better.
VMware needs kernel hooks to provide its virtualization services. Under Linux, there are only a few supported Linux distros (and specific versions at that) that have pre-built modules installed as part of VMware. I run my personal VMware on an FC5 Linux host, and had to download an unsupported "patch" (from one of the VMware developers -- not even hosted on the VMware web site) to allow the vmware-config.pl script to build the necessary modules for my specific kernel. Every time I upgrade kernels, I must then rebuild the modules to get VMware working again. Also, under FC5 with SELinux enabled, I had to manually change the context of one of the VMware files after install before SELinux would even allow VMware to run. Under Windows, all of the above "just works".
Under Linux, I get better performance when running multiple VM's at the same time. I have had three 384MB VM's running at the same time, and because of memory management under Linux I only saw an increase of approximately 600MB vs. not running the VM's (no swap increase either). I also have better I/O performance as well. When installing the 3 VM's above, I had the CD's mapped to ISO files on the same disk that my VMware files were being created on. During the install, my load average was constantly around 15 and my system was definitely slower, but it was still functional. I have brought a Windows host (with enough memory to host both VM's fully in RAM -- no swapping) to its knees trying to install just 2 VM's simultaneously in the same way (ISO files on the same disk as the VMware files). It was so unresponsive, it took almost 5 minutes to bring up Task Manager to see what was going wrong -- and Task Manager didn't really show me what was wrong, just that the CPU was pegged and the VMware processes were doing all the work.
And would be absolutely useless on a laptop since ESX requires SCSI.
`fortune -o`