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.
OS/2
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.
I have a Linux desktop machine that runs Vmware workstation, and basically nothing else (the window manager is TWM, pretty minimal). I run several FreeBSD and Linux VMs so that I can do development.
I've never used it under XP, and never on a laptop, but you might want to consider that with Linux you can tune everything (filesystems, kernel, etc), remove stuff you don't use (printer daemon, etc), etc.
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/
Either BeOS or AmigaOS...
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.
I use Linux as my host OS because I don't interact much with my host OS, or use it for much of anything at all except running VMware, so I can run a streamlined Linux installation with only lesstif as my window manager. By not using a heavyweight GUI such as Gnome or KDE, and not running a bunch of unnecessary services, this is a Linux installation that could easily run on a 486 with 16MB of RAM. Even the most streamlined Windows installation needs much more memory and CPU than that just to run, so compared to running Windows as my host this leaves more memory and CPU left over for my virtual machines, which are what I actually *use* all day, every day.
I must admit I haven't actually compared and measured the performance difference.
I also believe Linux to be at least a bit more stable than Windows, and naturally I want the most stable host OS possible.
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.
determining which OS is best to run emacs in is left as an exercise for the reader.
Don't be retarded.
I've enjoyed using VMware at home and the office. I haven't had a chance to try Xen or qemu. Briefly, here's my experience:
At the office, I work with 5 quad processor (dell) servers with Gentoo Linux as the host running VMware GSX and 1 running VMware Workstation -- all guests are Windows 2k or 2k3. At home, I run VMware Player on Kubuntu, and VMware Server on a W2k3 server and a Gentoo server -- some guests are Windows, some are Linux.
Usually everything works great. The Linux host systems seem more responsive than the Windows host systems. At home, the w2k3 server crashes every once in a while limiting me more than I'd like. Not sure why as it's just a file and dns server. One of Linux servers at the office had too small a partition for /tmp causing problems, but otherwise been relatively maintenance free.
Over the past few years one of my favorite things to do when I need to rebuild my workstation is to image it into a VMware session for later use as needed. Only done it about four times, but sure comes in handy. I'm about to do that to my w2k3 server.
Cheers.
I tried installing the newest vmware trial on a 2.8Ghz box with a gig of ram, with WinXP as the host OS and Fedora 5 as the parasite. It completely choked. Far too unresponsive to use for day-to-day tasks. It was like RDP over a modem.
It's a personal opinion, of course. But I think Parallels Workstation is going to be a major plus. It is available for more than Mac too, by the way. Currently, I'm running VirtualPC 6 on a 1.25 Ghz G4 eMac. So maybe I'm not the best person to ask, I think I might be a little biased.
"Genius may shine aloof and alone, like a star, but goodness is social, and it takes two men and God to make a Brother."
The latest release 0.8.1 of QEMU (along with 1.3.0 of KQEMU) achieves a surprisingly fast and stable emulation for a free (as in beer) tool.
./configure && make install
You can save yourself the money and just use QEMU. It emulates a PC just fine and can run most anything as a guest. I use it for a Windows guest so I can write my book. Granted my workstation is a "bit" high end, but when I full screen it, it's just like running a real Windows box (shudder).
Trick is to make sure the KQEMU accelerator is loaded and running correctly. Which isn't really hard if you know how to run
Tom
Someday, I'll have a real sig.
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
Good suggestions, btw. :)
I use the latest VMWare on the latest Dapper release from Ubuntu and have XFS for the filesystem. No issues at all, the install just has to compile a custom kernel module so you have to make sure you have gcc, make, and kernel headers. Otherwise, works great!
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
Regardless of what you use for the host, when you run Linux as a client there are a couple of things to be aware of. First, include AMD ethernet and Buslogic SCSI drivers in your kernel. Second, if you're running a 2.6 kernel, they'll eat a lot of extra CPU when idle unless you redefine HZ and recompile the kernel.
p hp?p_faqid=1420
The VMWare web site has info on this and on fixing other clock problems: http://www.vmware.com/support/kb/enduser/std_adp.
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
FYI, your comment went up ending at the wrong article. Might want to post it again. :-)
home
I'm running Vmware player which is free (thanks Vmware) under Ubuntu 64 bits. I'm using http://www.easyvmx.com/ to built my VM configurations. Ubuntu is a very nice Linux distrib.
As guest I run Windows 2000 to test web based applications under IE. Windows 2000 is lighter than Windows Xp to run and fine for my needs. I have also run FreeBSD, WinXp, Minix and different Linux flavor VMs.
Vmware player installation is clean, easy but you need a compiler under Linux to link the network layer. Speed is good under my system AMD64 3200+ with 2GB RAM, 512 MB are dedicated for the guest.
Before I used Qemu with the Kqemu accelerator which was fast and open source. But when I upgraded my system to Ubuntu 64 bits I ran into compilation issues so Vmware player was the only good solution.
CowboyNeal host my vmware!
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!
The real trick to any virtualization is how you utilize
p hp?p_faqid=1420
your processor, gobs and memory and fast storage.
In VMware
---
Under Linux you would go to Edit -> Preferences -> Memory (tab)
and choose Fit all virtual machine memory into reserved host ram.
this will greatly boost speeds as nothing is swapped to disk
---
to speed up your resuming of virtual machines you would go to
Edit -> preferences -> priority (tab) and uncheck Take
and restore snapshots in the background.
this one is significant for those vm images with more 512MB.
---
also a fast hard drive helps as well, if you got a laptop with
a 4800/5400rpm drive, it's going to be a lot slower than a 7200
rpm drive.
---
inside of your guest environments, trim it down
* disable 3d screensavers
* disable unneeded services
e.g. do you really need apache or iis running
in the background
---
if you are not using your host environment for anything,
trim it down as much as you can.
---
If you want to be able to access external storage
inside your vmware guest, use usb, forget firewire,
vmware doesn't support those kinds of devices.
---
Laptops that support disabling HyperThreading is often
there for the reason it WILL overheat, disable it when
using VMware, cuz it WILL overheat.
---
if your clock is running slow in your linux guests, try the following link
http://www.vmware.com/support/kb/enduser/std_adp.
better yet, before you even try that, make sure you install vmware-tools
to your linux guest. DO BE AWARE ANY KERNEL UPGRADES BREAKS THESE TOOLS,
AND YOUR PERFORMANCE WILL SUFFER.
for window guest os, also install these tools, but you won't have the same
breakage problem.
---
Performance of NAT vs Bridging, NAT is slower and if you try to run security
audit tools such as nessus or nmap, you will start getting network time-outs
until a slot becomes available.
---
Another tip, once you build your guest environment, run all your apps at once
and check your memory. If you find that you aren't utilizing all that memory,
adjust it accordingly in the VMware guest settings.
---
some example VMs I run on a daily basis are 384MB ubuntu drapper drake OS for
personal work station (email, gaim, browsing, open office), security auditting
vm (384MB|bridged networking!) and Windows 2003 Enterprise + Visual Studio 2005
+ SQL Server 2005 + BizTalk 2006. I run all 3 simultaneously without any
real hiccups on a laptop whose host os is ubuntu.
Donald Ray Moore Jr. (mindrape)
Suspected Terrorist
I have one bone to pick with VmWare right now (I'm running Workstation 5.5 on top of Fedora Core 5). Whenever a virtual machine hangs (a la windows), it hangs the vmware process; thus you cannot totally kill the vmware process. Not sure if it is the same in windows, but I would be surprised if it was any better. So my beef is: why can a virtual environment kill the host environment?
I am d3matt
Your point about framebuffer acceleration under Windows is well taken. However, the only thing I really need the XP VM for is IE...some wag built the corporate intranet pages in such a way that they will only show the header graphic in Firefox (or Opera, or...). Seriously. Fubar. But, that's another story.
-- .sig available for lease. Will type to suit.
This
For work I had an IBM T41 laptop with 2GB ram. It ran XP.
On it I ran 2 virtual machines, one with a full blown oracle installation on Linux running a 10GB database. The second VM was running W2K with apache/tomcat/jboss. I used this machine to teach loadtesting classes with this as the web/database server taking the load and it performed spectacularly.
At home I moved off of XP because I got tired of having to call Microsoft for reactivation keys and started running Linux. When I NEED XP I use VMware and also use it to check out new distros.
In both situations I felt as if VMWare were hardly running and also sheilded my main OS from dying when things like Oracle got really busy. I had the option of running Oracle on my main OS but just found it much more conveniant to run in the VM. The T41 was no dog when it came to performance but I was very surprised how well it handled 3 OSes.
The most important thing with VMWare is RAM. 2GB was fine. At home I have 4 and that's nice. People ask "WHY do you need 4GB?!" and I try to explain VMWare and the many wonderous benefits of it but usually wind up with a response of "Why don't you just use Lilo or Grub?".
Comment removed based on user account deletion
I tried VMware on Windows and i wasn't impressed with the speed Ubuntu ran on it, as well as the lack of graphics acceleration.
I was wondering if there are any solutions that let you switch quickly between OSs without all the overhead, sort of like hibernating one OS and dehibernating another?
I work for Big Blue and have a T41 Thinkpad as my primary workstation. It's loaded with 2GB RAM and runs the standard OpenClient build, based on RHEL 3 Workstation.
Because I use a couple of apps that only run on M$IE, I loaded VMWare WS 5.5 and setup an XP guest...never saw ANY discernible performance impact. Later on, we solved the app dependency using the native Linux Citrix ICA client, but I still use VM for demos and training modules. This past week, we held a 3-day product training session that used 3 images: a Win2k3 AD Domain Controller guest (512 MB), an XP guest (384 MB), and a Win2K Pro guest (256 MB), all running simultaneously.
My T41 never stuttered, not even when using my native apps in the host OS...including our Workplace Client built on Eclipse running the Notes7 plugin, which has a 600MB footprint.
I don't know how this was missed, but VMware GSX has been free for a few months now, to compete with MS virtual server. Havn't tried qemu or xen yet, but VMware runs rings around MS virtual server disk I/O wise (that and it runs on Linux)
Just when I was running out of rackspace! (and electrical outlets)
http://www.vmware.com/products/gsx/
Ask VMWare. They sold you the software in the first place, they should support it. Slashdot is not your I.T. department.
-Billco, Fnarg.com
Which is the host depends on what you want to do. If you want to run guests as servers, you can run on either host but probably Linux is best. If you develop or are using it at home, it depends on what you want to use your machine for most. For example, if you are using it at home and you also like to play the most popular games a lot, then you'll probably want Windows to be the host as you can play your games with full graphics acceleration.
I've run VMWare and it works well under Windows 2000 and Windows XP (can't say about Windows 2k3). The only issues are to have tons of RAM and a fast HDD. Having multiple cores (whether multi-core CPUs or multiple CPUs) is a nice boost as well.
My experience using VMWare for a test platform showed that is better to not use your primary PC. Use another computer and install VNC on the virtual machines in VMWare. Then your primary PC can access them remotely. Install lots of RAM too.
Note: this was for J2EE developemnt.
----- If communism is a system where the government owns business, what do you call a system where business owns govern
All these people claiming how bloody wonderful it is to run VMWare as a host on Linux seem to completely ignore the fact that you have to compile against your kernel. EVERY TIME THE KERNEL IS UPDATED!!!! How the hell is this better?
On Windows, you install VMWare once! Without any compiling! And you never have to install/compile again!
On a side note... All these people recommending Qemu have obviously never tried VMWare. With VMWare, performance is reasonable and the hardware isn't overly stressed, even with multiple concurrent guests. With Qemu, you are in for such a slow experience you will want to kill yourself. As if that wasn't bad enough, your hardware will be at 100% utilization for all the time you're waiting and waiting and waiting! Qemu sucks so hard it blows, when compared to VMWare!
I run several VMs similtaneously on an AMD64 machine with 1.5GB ram. I found that I couldn't run more than 2-3 VM's similtaneously without loosing responsiveness on one or more of the machines unless I chose deadline as my IO scheduler. With Windows as the host on the same machine I don't have this flexibility and must live with the unresonspive VMs that result from heavy IO.
And would be absolutely useless on a laptop since ESX requires SCSI.
Sorry, ESX DOES run on IDE drives too (all those dev systems y'know) but SATA, alas is still not here yet.
The x86 - 'accelerator' is closed source.
Another reason to use VMWare is that I can move the images from my workstation to the server. It's really nice to prototype the next server on my desktop and iron out the bugs while it's under my control, then I upload the files to the server team and they deploy it. We COULD do the same thing with QEMU, but they aren't going to run QEMU on their IBM zSeries boxes, they have ESX and contracts, and SLAs to adhere to.
That being said, I've used QEMU and VMWare myself. I find VMWare to be faster, and even the workstation edition has great management tools (the 'wrapper' application itself is high-quality).
To answer the big question, the best environment to host VMWare sessions is a VERY stripped-down Linux on a multi-core system. You can do things with the *NIX 'everything is a file' paradigm and symlinks that you just can't do as gracefully on Windows, not to mention the lower overhead of Linux as a whole. I'm a fan of VMWare/Gentoo myself, but I have enough machines to make all the compiling and config worthwhile (I share the config between several boxes). I lower the kernel timer to 100hz, make sure SMP is properly configured, tell the VM subsystem to avoid most swapping, set a 2G/2G kernel/user memory split, and set hdparm to read ahead and buffer writes.
"Sometimes, I think Trent just needs a cup of hot chocolate and a blankie." -Tori Amos on Nine Inch Nails
I'm not sure how the state of video drivers affects VMWare sessions. 3D graphics under VM sessions are all software-rendered anyway, so 3D should be very close on either platform, and the 2D graphics drivers for all but the VERY latest cards are nice and accelerated under X.
http://ftp.x.org/pub/X11R6.8.0/doc/radeon.4.html
I use a RADEON 9200 here at home because I use 3D in Linux and I don't want to use the binary-only driver, but at work I have an X600, which has perfectly good 2D, but only software 3D. I don't know about you, but I have no business doing anything 3D at work, so it's of no consequence that I don't have DRI there.
I'll repeat this: If you don't do 3D -outside- your VMWare sessions, you need not worry about 3D driver support. The 2D part of the driver still works swimmingly using the generic driver from xorg. If you're doing 3D -inside- VMWare sessions, you're being foolish because it's going to be rendered in software no matter what kind of video card you have.
Also, just to finish my technical pissing contest:
Video RAM has nothing to do with moving video on your PC. Having more or less VRAM will not affect how movies play. If I hear one more AV person say how they need a computer with 'lots of video memory' so they can play movies smoothly, I'll strangle them. Any card made since 1999 has PLENTY of VRAM for anything 2D, including motion video. Video RAM will not speed up Photoshop; it will not speed up Final Cut or Premiere; all of that stuff takes place on a frame buffer that fits quite nicely into even the most conservative VRAM. I will retract this statement when Apple enables Quartz 2D Extreme by default, which makes all of your 2D windows, widgets, text, and composition using GPU-accelerated OpenGL textures stored in VRAM (Quartz Extreme holds the windows in RAM and composites them in VRAM, IIRC).
"Sometimes, I think Trent just needs a cup of hot chocolate and a blankie." -Tori Amos on Nine Inch Nails