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.
Windows is probably the best host for workstation, mostly because the current state of video drivers makes windows better for any app that needs graphical output. I haven't run GSX/server, but given my experience with ESX I would assume that linux is superior for those kinds of workloads.
I've been using VMWare Workstation and GSX (now just "Server") very successfully under Linux. I have two virtualized Linux and three virtualized 2003 Server instances on a 2x Opteron 240. It works wonderfully.
However, to be honest, on a laptop it likely makes more sense to run the host as WinXP. With Linux hosting and XP in Vmware, you don't get hardware graphics acceleration (perhaps in either OS.) Linux and laptops are still not there yet, so you may as well use XP as the host OS and get full hardware support.
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.
VMWare ESX runs without an underlying OS (it provides one of its own). It might be overkill for your needs though....
http://www.vmware.com/products/esx/
I've run GSX Server on both Win2k3 64-bit and Suse Enterprise 64-bit, and neither one really presented any issues. The linux configuration is slightly more complicated, but its nothing to really shake a stick at.
;)
;)
The core issue is which OS are you more familiar with? If that isn't an issue, then there are some benefits to the *nix side of things.
It's possible to get a linux install down to 200~ megs while only using 64 megs of system memory, which is a strong advantage. If I understand correctly ESX Server is essentially a very very thin linux distro. That should say something
I've also read of a perl script that can make hot backups of a Virtual Machine; while this is possible under Windows using commercial products, it's another thing to be taken into consideration.
Hope this helps
So, as a Linux user, I run Linux as the host, and Windows XP & 98 as the guests.
That's my situation anyway. Things work fine on my laptop under Linux, and I hope my next laptop will be even better (since I'll be ditching ATI on the laptop for Intel (and a linux pre-install, which should give the "works with linux" guarantee even if I don't keep the original install around (plus, I get to give a distro money!)), which will likely make things even easier.)
--
Given enough personal experience, all stereotypes are shallow.
VMWARE on Win32 will only be as stable as Win32 of course. So from that perspective, most people here would agree that Linux makes a better host.
On the other hand, if you're running a laptop or have some high end video or hard disk that requires drivers not available for linux, you may find your performance better under Windows (again, depending on many things, like how you configure vmware and its use of hardware).
There's no perfect answer to your question. My plans for new LAPTOPS will be to run the native drivers with Win32 as the host. Custom build desktops, however, I may well run the opposite way.
The problem with quotes on the internet, is that nobody bothers to check their veracity. -- Abraham Lincoln
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.
ESX is an OS in itself, not derived from Linux. However, ESX includes a "Linux-compatibility layer" that provides compatibility with Linux on some level (drivers, for instance). The console OS is a linux derivative I believe, but the COS is just an interface to the ESX Server OS.
Interested in a Flash-based MAME front end? Visit mame.danzbb.com
VMware Workstation runs nicely under Debian Testing, with ReiserFS filesystem.
GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
Just to share some experience. I have just bought a new computer but with no floppy drive (to save money). Therefore, I could not load the SATA driver during windows install from floppy and could not install Windows XP.
:P
After struggled for 1 week (trying to rebuild the windows install CD to include the driver, etc), I installed VMWare Server in linux, installed XP in a virtual machine directly accessing the harddisk, installed the SATA driver and eventually got a working windows which boot from BIOS.
http://fat-penguin.mocasting.com/p/55116
VMWare was originally designed to run under linux, and there are still some advantages to running it this way:
If a usb device has no driver under linux then it can be passed straight through and driven by an os running under vmware (you have to unload native linux drivers for any device you want passed to vmware), the windows version works differently in that you must have a native driver installed before you can pass a device to vmware. This issue has manifested itself many times when we've been at customer sites and presented with a random usb device (usb to serial adapters mainly) for which windows requires extra drivers (and linux includes drivers in the default kernel).
Performance - networking runs much faster when vmware is running atop linux, this is especially important for me as i`m often doing pentesting which involves lots of network scanning...
Security - you can nat your windows images behind your base linux install, your base linux can have everything turned off to minimise the chances of it being exploited (windows will often not let you turn some services off)
And finally, try vmware server as opposed to workstation, you can run it headless and only attach a gui when you want one..
http://spamdecoy.net - free throwaway anonymous email - avoid spam!
Here are two examples with empirical data to support them. Either the T41 is an extremely exceptional machine (It is nice, but I wouldn't go that far) or VMWare runs on both operating systems with what could be called "acceptable" results.
:
:
To get more accurate information you would have to look for (or perform) some well designed and run benchmarks. Determine which is your prefered Operating System. Also, find out if there are any functional limitations to VMWare on either of these platforms.
I have read in these replies about a number of limitations with VMWare running on both Linux and windows. Some I can confirm like having to run services for network support on windows (Is this really that bad?) and others I cannot such as not being able to use the high definiton VMWare graphics driver on Linux.
I have run VMWare on both operating systems for a while and although I consider it to be fully functional in both environments these are the things that I found to be worthy of mention:
VMWare on Linux Negatives
1) To get the vmware-tools fully installed with the highres graphics and fast network support you must have the kernel source for your exact kernel. I know this will get me flamed but there are real people running distros that do not have the kernel source and do not know how to compile one.
2) There is no GUI tool to configure the virtual networks. This can be complicated, involving port forwarding for NAT networks, configuration of DHCP properties, assigning free IP addresses, etc. These are things that an experienced UNIX admin who is familiar with networking could do but many people will have trouble even with the provided documentation.
3) I experienced problems with the VMNET module on Slackware not being able to do anything but bridged networking. (I'm sure was a stupid thing but stumped me)
Negatives with Windows
1) Umm. I'm sure there are some but I didn't notice anything worthy of mention. There is the fact that the network services have to run as services, but I don't consider this really a negative.
I think the most important factor to your decision is this: Linux support of your laptop's hardware. This is going to sound like I'm trying to scare you out of Linux on a Laptop but this is a purchase that deserves the level of consideration I will describe.
Find out as much information as you can about the available Linux support of the brand of laptop you are considering. Consider the brand of the laptop and the vendor and model of it's components. I know that there are several laptop oriented modules ("drivers") available to compile in the kernel. I remember power saving, CPU frequency management, battery management, and more. But laptops often have many vendor specific hardware devices and system management software and something may not be supported.
You should research what hardware features are important to you and if they are supported in Linux. Also find out what system management sofware the vendor provides and see if there are equivalents in Linux. An example of management software would be a program that allows you to control energy consumption when plugged in vs when running on battery.
Make sure the manufacturer of the various laptop devices have "drivers" for linux. Check things like the Ethernet card (even if it's builtin), modem, infrared (if you use), sound device, video device, USB device, 1394 device, and card readers. If you do find a problem remember that many of these devices can be replaced with a PCMCIA device that does the same job.
You want to check things that you'd think should not be a problem like the CD/DVD reader/burner. If linux has a problem with making the CD hardware work the you are in trouble. It is probably unlikely that the vendor has an alternative brand of reader that can be used. And do you want to lug around an external USB drive?
Don't get distracted by the unimportan
I can achieve a 55-60MB sustained write speed (granted, it was in making/transferring large files, not a lot of little ones) and ~70MB read speed on a single 74GB WD Raptor. RAID0 does help with the speed, but it also 1/n the MTBF of the drives, so I wouldn't do it. But if I wanted to, I could simply get two more Raptors and hook them into the spare two SATA ports on my board and let my NForce4 chipset control them in RAID 0 and do so with a much higher transfer rate than a PCI bus can support. 2 WD Raptors will saturate a PCI bus, the NF4 SATA controller runs off of PCIe lanes, which are much faster.
Just "gittin-r-done," day after day.