Desktop virtualization software
October 27, 2010 2:01 PM   Subscribe

I have a computer (Windows 7 Pro, 64-bit, 6GB RAM, i5-760 processor) on which I want to run various virtual machines. Help me decide what software to choose.

My first priority is to run a LAMP stack for website testing. (I already know how to run Apache etc. on Windows, so I'm not looking for help on that.) I'm comfortable with general command-line use and web server tasks, but I am by no means a sysadmin. The web server on the guest machine needs to be reachable from the host machine and other machines on my home network, but not beyond it. I would like to be able to edit code on the host, but serve it using the guest, without moving copies of files around.

I would also like to try out Linux as a desktop environment.

This is for a combination of work, professional development, and fun. I don't mind getting in up to my elbows with research and configuration, but I also don't want to either reinvent the wheel or get stuck in some poorly-documented hell of compiling something unfamiliar.

So my questions to you are:

1. VMWare Workstation or VirtualBox? Why? Are there other options too?
2. Can you point me to some reliable virtual machine images for the LAMP stack, so I don't have to build everything from scratch?
3. Anything I don't know that I don't know about this idea?
posted by expialidocious to Computers & Internet (15 answers total) 3 users marked this as a favorite
 
1. VirtualBox is much lighter, less of a resource hog
2. I don't know any of the top of my head, but get a lightweight linux distro, or Ubuntu - not the lightest, but probably the easiest to deal with and install XAMPP - which is the quickest way to get a LAMP stack.
3. I would recommend more RAM, not that you cannot work with what you have, but depending upon how many VMs you want to run simultaneously and how much RAM you want to assign, more RAM will be very beneficial. Win 7 would need 4GB to run happily by itself, which leaves you 2GB for you VM.
posted by naveed at 2:06 PM on October 27, 2010


I use vmWare Server on my Windows XP computer and it works much better than Workstation. It's also a lot easier to have it just startup and run the vms in the background so they stay out of your way.

In fact, I'm typing this in a Ubuntu VM on vmWare Server and practically runs as if it's any other Windows App.

The one real nice advantage is that I often move virtual machines from my computer to our real deal vmWare infrastructure and it's a piece of cake when it's already a vmWare machine.
posted by advicepig at 2:30 PM on October 27, 2010


Random thoughts on why I love VMware Workstation
  • I can run VMs as services and/or in headless mode.
  • VMs can be snapshotted. More importantly, I can make multiple snapshots and even create trees of snapshots for software at various patchlevels.
  • The best virtual networking abilities; virtual switches, easy NATing of your host IP address, better PXE support for VMs.
  • VM cloning that does not double the disk space used.
  • VM Teams to setup environments with a bunch of VMs simultaneously to do performance testing and such.
  • Unity mode where windows from a VM interact with your host OS window manager.
  • VMware Server 2 has improved a great deal since the original release, but the performance is unusable compared to Workstation.
  • Workstation handles guest OS suspension properly. More usefully, with VMware tools installed in the guest, the host OS can suspend properly with a VM running.
To me, the $200 Workstation costs is a no-brainer compared to the annoyances I have encountered when trying to use Virtualbox and VMware Server. That said... if you aren't excited by snapshots, teams, clones, or wacky network setups, the current version of Virtualbox is pretty great and certainly what I would recommend as a starting place.
posted by fief at 2:56 PM on October 27, 2010


I like VMWare too, I run VMWare server on an Ubuntu host. As others pointed out the VMs start in the background and you can leave them running "headless"; I usually connect via Remote Desktop and almost never via the actual console.

For Linux VMs I use x2go, which works much more like Remote Desktop than VNC - you log in remotely instead of just connecting to the desktop of an account that's already logged in.
posted by XMLicious at 3:05 PM on October 27, 2010


Response by poster: I'm essentially a n00b hobbyist in the virtual machine world - the work and professional development is in web development, and the fun is in that plus Linux on the desktop. So I think VMWare Server might be overkill, but I'm not sure. What are the implications of being able to run a VM headless? How wacky does my network setup need to be before it becomes necessary? My one absolute need is that a web server on the guest has to be reachable from the host and from my home network. Can VirtualBox handle that requirement?
posted by expialidocious at 3:35 PM on October 27, 2010


Best answer: I'd suggest starting with VirtualBox [as it's free and easy to set up and maintain] and after a while if you find yourself longing for any of the stuff fief mentions or find yourself needing whatever VMWare provides that VirtualBox doesn't you can migrate to it later.

There are ways to convert a VBox image to VMware and vice versa.

There is also a free VMWare player you may want to start with.

There are a bunch of pre-built VirtualBox images here. Here's a Ubuntu 10.10 i386 LAMP/Tomcat Server Virtual Appliance.

The VMWare Virtual appliance collection is probably more comprehensive, if that's a selling point.
posted by chazlarson at 3:40 PM on October 27, 2010


Why do you need a dedicated VM for a web server? There are many WAMP distributions that don't require installation and can live in a single folder.
posted by wongcorgi at 3:50 PM on October 27, 2010


Response by poster: As I said, I already know how to run Apache on Windows. I want to run it on Linux.
posted by expialidocious at 4:05 PM on October 27, 2010


I use VMWare extensively at work, but at home, I use VirtualBox. I agree with chazlarson, start with VirtualBox and if you feel the need for some additional features, move to VMWare.

My setup at home uses multiple VirtualBox VMs for development, testing, and test deployment of web apps under LAMP. Installing Ubuntu server (with LAMP as an install option) is painless and quick. Once you have a base system, you can easily save it as a template to be used for later VMs if you so choose. Deployment, maintenance, and snapshots are a breeze. It is much more lightweight than VMWare.

Now, if you have a need to maintain more than 20-30 VM images, you're probably going to want to think about something with a little more beef.
posted by boba at 5:13 PM on October 27, 2010


Best answer: Exactly which VM tool you use doesn't actually matter much. Start with VirtualBox because it's free, cross-platform, easy to drive and well documented. If you run into things that VirtualBox makes difficult, try something else. If you're running a Linux guest, you can move the same disk image from one VM supervisor to another without any grief at all. Windows guests are a little pickier about "hardware" changes but still quite manageable.

The web server on the guest machine needs to be reachable from the host machine and other machines on my home network, but not beyond it

You'll want to set up the VM's network in bridged mode, then, which will make your host machine work like an Ethernet hub with the host and VM both plugged into it.
posted by flabdablet at 5:19 PM on October 27, 2010


VMWare, by the way, is also free and cross platform; as I mentioned I'm running it under Ubuntu.

The main advantage of running headless, especially with a Linux server and something like x2go, is that you aren't running the GUI at all if you're just serving web pages. I'll often have three or four VM's running at the same time, editing files on them over the network using the dev tools on my host system.
posted by XMLicious at 4:51 PM on October 28, 2010


Response by poster: Thanks for all of your helpful answers. I decided to start with VirtualBox. I also decided to do the LAMP install myself rather than using an image. So far I have VB installed, and one VM which is Ubuntu Desktop 10.10. It took a few tries to get the Guest Additions installed, but everything's working now. I used Synaptic to install Apache/MySQL/PHP, and that's working too. One thing I like is that Apache is set up to allow dynamic modules - that way I won't have to recompile the whole thing if I want to add something that is not available as a package.

Next I will try configuring the VM's network setup to do what I want. If anyone's still reading and has tips on how to set up my host and other machines on my network to find the web server, I'd appreciate those too.

Eventually I will add a VM that mimics my production environment as closely as possible.
posted by expialidocious at 9:53 AM on October 29, 2010


For connecting to the web server, on Windows hosts you can install Apple's "Bonjour Print Services for Windows"^ which implements the zeroconf protocol. This means that you can go to a command line and type "ping myubuntuserver.local" and it'll resolve the IP address. (Ubuntu or any other distro running avahi.) For some reason this doesn't work with some apps but it has worked with Chrome for me.
posted by XMLicious at 2:25 PM on October 29, 2010


Best answer: Next I will try configuring the VM's network setup to do what I want. If anyone's still reading and has tips on how to set up my host and other machines on my network to find the web server, I'd appreciate those too.

First thing is getting your VM onto the same subnet as your physical boxes. To do this:

1. Make sure the VM is shut down.

2. Click the VM's icon, then click Settings.

3. Click Network.

4. Change "Attached to: NAT" to "Attached to: Bridged Adapter".

5. Click OK.

When you next start the VM, you should find that its eth0 interface has acquired an IP address in the same range as your other LAN boxes - probably something like 192.168.0.4; and you should be able to get to its web server from another LAN box by using a URL like

http://192.168.0.4/

If your VM continues to acquire its IP address via DHCP, you might find that it's IP address will occasionally change (probably at the least convenient possible time). Two ways to lock it down: tell the VM itself to use a fixed IP address (make sure it's still in the same subnet as the rest of your LAN) or tell your DHCP server to always assign the same IP address to the VM's MAC address. Personally I like the second method because it involves less fiddling about in fewer places.
posted by flabdablet at 5:55 PM on October 29, 2010


Response by poster: Excellent, that worked perfectly. I've gone with assigning an IP to the MAC address on my router's DHCP setup.
posted by expialidocious at 7:50 PM on October 29, 2010


« Older How to make my salary history look good?   |   DC temporary housing Newer »
This thread is closed to new comments.