Sign in with
Sign up | Sign in
Your question

Virtual Machines... Which host OS?

Last response: in Linux/Free BSD
Share
June 24, 2008 6:43:04 PM

I've taken a job working in a Windows shop doing application support. Having been out of the Windows world for a good while I'm finding it frustrating on a number of fronts but the pay cheque does help to take the edge of it! In order to improve my skills for work and also for my own interest I've just bought a new rig and... a copy of Vista64 :pfff:  As much as I am ashamed at my move (I feel dirty for having done it!) I've got to get on with learning Windows technologies but was just after opinions on the best way to configure my rig as a learning environment.

My main quandry is what to run as the base OS. My original plan was to install Vista64 and run everything else in VM's however I've been reviewing this idea. Ubuntu runs nicely on the new rig and seeing as I have reasonable experience with it I'm wondering about running Ubuntu 8.04 x64 as the base and actually registering my OEM Vista64 as a VM installation. My thinking is that I'd be better able to backup and blast test configurations if I did it that way. I know that a few of the folks here run VM's and I'm darn sure that some of you run XP and Vista. Do any of you see any problems or serious restrictions in running Vista in a VM? I'm more after playing with IIS7, SQL Express and other windows technologies than having a Windows install to game on so loosing accelerated grahics is not a huge loss to me. VM wise I'll almost certainly go with VMWare Server. Whilst not open source it works well and gives me a grounding in a very widely used solution. It also means I can use machine images from work. I'll likely be having a play with the trial version of Server 2008 at some point and I'll want to play with Active directory with a Vista and XP client.

I know this isn't strictly a Linux question but I'd be interested to hear what some of the residents here think. Alternative suggestions would also interest me...

More about : virtual machines host

June 25, 2008 12:04:15 AM

You're right on!

Ubuntu it + VMW + vmdk's for each OS on top.

Save all of the vmdk's after the initial install so when windows self destructs you can restore :) 

Install QEMU, WINE and Xen too for some OSS goodness :) 
June 25, 2008 1:51:52 PM

I run XP in VirtualBox on my Ubuntu machine. It's good for those few programs that won't run in Linux, and it means my windows install is safe from viruses and spyware :non:  I use to run VMWare, but I've recently shifted to virtual box because it doesn't seem to break as often as VMWare (The moment a new kernal comes out, VMware goes A over T) and it seems a lot quicker on my system. Was a lot easier to install too. Only issue I have with it is that I can't get Solidworks 2007 to work in it :( 

So yesh, Ubuntu as your base, Virtualise your Vista. Have a backup snapshot and your set for when Vista falls over! ;) 
Related resources
June 25, 2008 3:15:22 PM

Ah yes, I too left VMWare after their issues with new kernel releases. Since I've setup KVM/QEMU on my laptop for my virtualization needs.
June 25, 2008 5:33:53 PM

Thanks guys. I just needed a push to head in that direction, fortunately Microsoft provided it for me last night.... I tried to install VMWare Server on the Vista64 install only to find that the 64bit network driver is unsigned and therefore will not install for me. Result - No VMWare for me on Vista64 :(  I've suffered more 64Bit woes with the graphics drivers. My new rig is based on a iG35 chipset and the 64Bit drivers are utter crud. Compared to the 32Bit ones I get totally pap performance. I could go with Virtual PC but you don't get any USB support which just makes life more awkward.

I'm typing this from my freshly installed Ubuntu 8.04 64Bit. I've just stuck it on an old EIDE drive I'd forgotten I'd got in the parts bin. So far things look reasonably good although I've yet to try installing the Intel driver support. The CPU is an E8400 so I should have good performance with VM's as it supports VT extensions and is proving to be reasonably speedy. I was going to go with VMWare but now I'm not so sure. I can relate to the kernel update issues but they don't seem to be that frequent to cause me that much pain.

I guess the question now moves to which VM solution to go with. I've only ever had QEMU running a couple of times and missed the nice front end of VMWare.
June 26, 2008 11:33:22 AM

QEMU is easy to install, just make sure you install kqemu -- the kernel acceleration module.

It will work without it but it will be slow.

You should be able to apt-get QEMU itself and perhaps kqemu as well.

GL :) 
June 26, 2008 11:44:17 AM

I had a look at KVM last night. I don't think I've seen an application with that many command line options in a loooong time! I've also realised that all is not happy with my graphics conifguration under Ubuntu. The G53 chipset drivers are still under development; at least Intel have released the specs so eventually things should be sorted. I've still got to read up on this but apparently I can roll my own drivers by compiling the GIT sources.

Any recommendations on a GUI for either QEMU or KVM?
June 26, 2008 1:42:41 PM

qemu-launcher :) 

GUI for QEMU.

Check it out.
June 26, 2008 1:55:04 PM

I would imagine your budget is still tight but I would suggest looking into an ATI or nVidia VGA :) 

The latest ATI VGA was released with Linux drivers on the CD.
June 26, 2008 5:59:44 PM

The whole idea of getting a X3500 graphics solution was for a genuine open source solution and low power requirements. I'm loathed to replace a Open GL 2.0 / DX10 compliant IGS with a low end card. Under the 32Bit XP drivers it can post some impressive scores in 3dMark06 etc from the reviews I read before buying. That having been said it would remove the 450FSB restriction you get using an IGS ;)  I'm still not a fan of ATI but that's just a personal thing.

I'll check out launcher... the only thing that concerns me with QEMU is that the accelerator module is actually closed source so not much better than VMWare in my opinion. I'll accept that you do not HAVE to use the module but the performance sucks without it. :( 



June 27, 2008 2:13:00 AM

Agreed on the kqemu sentiments, I use the modified QEMU that supports KVM and I get near-native performance on most applications, so you can still get good performance with completely open code. I'm unsure if qemu-launcher supports the modified qemu as I've never tried it, however I don't see why it wouldn't as it supports all of the same commandline arguments.

edit: of course you need a CPU with virtualization extensions and a kernel with built-in support or the proper modules loaded.
June 29, 2008 12:20:05 PM

I had a quick play with qemu-launcher last night. It's not a bad option although I have to say nowhere near as slick as VMWare Server. I'll need to do some more testing with it and see what I think. I'm just having a look at KVM and the options it would give. Do you have any more info on the modified QEMU that you require? I've had a hunt in Ubuntu and suspect I'm out of luck for it being in the repositries. Also as with Qemu I'll need a front end (Yes, I'm a GUI wus!). Proxmox looks rather tasty if almost certainly more than I need.

June 30, 2008 3:10:07 AM

This post should get you squared away. It appears that the repositories offer up the modified one automatically as it will fall back to normal operation if it detectes that your sydstem doesn't support KVM.
June 30, 2008 10:09:24 PM

Thanks for the link :) 

I'm having a look through some of the ubuntu specific links from it.

I've checked and I have VT support with my E8400. I'm on x64 so it can use all of my 4GB of RAM and seem to have the basic components in place. I can see the advantages of using KVM so I'll push on and get some testing done. I'll let you know how I get on...

July 14, 2008 10:47:07 AM

hmm well im probably very late into this but, since you built a new computer, i would have ubuntu installed on the old machine, with vmware server, then on your new machine simply run vmware console, at least this way you don't clot up your new HDD with vm images, its what i run at home, and have these vm machines installed:

Windows Small Business Server,
Windows Vista 32bit,
Windows server 2008,
M0n0wall < currently always on as our firewall.
and a few XP clients for testing with the servers.

although the damn server is more powerful than my pc :'(  with 1.3tb of space and 4GB of ram running a core2, running Linux, Ubuntu.
July 24, 2008 2:27:54 AM

Just a quick update, I've recently been trying out VirtualBox (the non-open one and the open one as well), and I must say I'm impressed. It has many of the same features of VMWare server (or practically all if you go with the non-free version, just missing some of the virtual networking complexity). Then add to that either FOSS-ness or faster speed (yes, I feel that the non-free VirtualBox is faster than VMWare Server). Yet another option to try out.
July 24, 2008 6:40:38 PM

I've to say I'm none to impressed with VMware at the monent. The 64bit network drivers are not signed so no joy on Vista64. The beta of version two is refusing to work with ASP errors that I've yet to bottom out, I'm not sure I even want to bother from what I read about the perfornamce of the new web based client.

I've ended up having to run Vista native, the reason for this is that I need to use some of the demo MS pre built machines and as we currently use MS Vitrual Server at work Virtual PC is actually easier all round. I might yet try getting VMWare Server Beta2 running on Ubuntu and importing some of the machines but I'm spending less time on the system at home at the min. A combination of summer and too many hours in work means I'm just less inclined to play...

The problem with VirtualPC on windows is that it hates linux :(  That and it's from the evil empire... otherwise it works quite well.
July 25, 2008 4:04:26 AM

Just out of curiosity, what is giving you trouble with VirtualPC on windows?When I was taking my microarchitecture class, we had to do all of our programming on Linux, and whereas I was perfectly fine working in a straight up linux environment, my MS loving friend went with VirtualPC on Vista and installed a copy of Ubuntu Ultimate edition which seemed to work ok for him. I know anecdotal evidence is not good evidence, but I was just wondering why it would seem to work ok for him and not you. Perhaps you were trying to do things much more complex than we were doing?

-Zorak
July 25, 2008 6:24:13 PM

VPC is just evil.

Almost the day after MS bought VPC linux support went downhill and I can assure you it was not a coincidence.

It's sad.
July 26, 2008 5:15:30 AM

Would you mind providing a link or two to what you are talking about? I am interested to see how VPC is crippling Linux. Granted I don't think I'll be virtualizing anything in windows any time soon (probably the other way around) but I am still interested nonetheless.

-Zorak
July 26, 2008 11:43:18 AM

Sorry if this is considered thread hijacking, but I figured it goes along with the same theme of Virtualization. I remember when i was configuring my first kernel during my Gentoo installation, there were options there pertaining to "paravirtualization". Can anyone tell me what the differences are between "paravirtualization" and "virtualization" ? The wikipedia article did a less than stellar job trying to explain what paravirtualization is, so that is why I ask. The answer I get will determine whether or not I bother enabling those features the next time I have to recompile my kernel.

Thanks.

-Zorak
July 27, 2008 4:31:47 AM

I'll do my best:

Virtualization is enabling software that uses the hardware modification in newer processors (things like new processor protection states, tools to help with OS-centric context switches when the processor cores switch from doing a guest OS task to a host OS task, etc.) in a manner such that the guest OS is blissfully unaware that it is in fact a guestOS (i.e. it is unmodified and think's it's running on real hardware). Think KVM.

Paravirtualization is when a guest OS is slightly modified so that it is aware that it is a guest OS (and therefore can communicate with the host OS in some manner). This can sometimes provide performance gains at the cost of complexity in regards to the linkages between the two OS's that now exist (both must be slightly modified). The "guest additions" that some systems use (VMWare, VirtualBox) can be considered watered-down versions of paravirtualization (often times that run on-top of virtualization... still with me here?) since they provide a linkage between the OS's. Think Xen and the drivers that some systems install for assisting Guest OS's.

Now, directly addressing your question, I believe the option for paravirtualization in the kernel you were referring to is the afore-mentioned modifications to the guestOS (i.e. if you wanted gentoo to be a guest OS) to allow better performance. If you want to run VM's on the gentoo install, this option won't do you a lick of good. Further, it looks like these changes were provided by VMWare, so I don't know if the modifications to the guest OS would affect improvement with other VM hypervisions or not (likely not)

*whew*, glad I took that Virtual Computers course
July 27, 2008 6:34:37 AM

Haha thanks bmouring for that information. That was MUCH better than what I had read so far :) 

This may reflect a lack of understanding on my part, but doesn't it seem that if you allow a Guest OS to be aware that it is running on a virtual machine and communicate with the Host OS, that could pose a potential security risk? I hear people saying how great virtualizing OSes is because if the VM gets horribly infected you can just roll back to an uninfected snapshot, but it seems now that if an OS can understand that it is on a VM, wouldn't any viruses on there also be able to learn if they are on a VM and make attempts to compromise the host?

-Zorak
July 27, 2008 3:29:45 PM

Ah, astute observation Zorak. In all actuality, the security claims of virtualization are dubious. It's usually very complex software that has full system access; even without virtualization it is possible for the attacker to figure out they are being virtualized by one of a few means, something as simple as checking CPUID or something as complicated as resource mapping signatures and timing-based testing. Once they figure out they're virtualized (and if they got this far, they likely know what VM is being used as well), if they know an exploit for the VM (perhaps something like a failure to bounds-check allowing the guest OS to write to "inaccessible" memory via the VM itself), they have just jailbroken into "the real world". The complexities of paravirtualization don't help in this respect.

In theory, paravirtualization usually is restricted to some of the more costly VM jobs (I/O) and therefore is as safe as regular virtualization as they've put various safeguards into place in terms of managing the I/O pipes between the two in a safe manner (which are, of course, subject to the same attacks and lapses in correctness as typical VM's). It does, however, make the "identify" step trivial.

So far, there have been no major attacks centered on exploiting the host system from a guest OS, but there are plenty of papers out there covering the topic if you're interested.

Edit: typo patrol
July 28, 2008 5:08:37 PM

So... Where would technology like HyperV fall? I guess it would kind of fall into both camps as the new instance of the running OS would know that it is virtualised and the host OS is providing virtualisation.
August 1, 2008 5:42:39 AM

I believe you are right. From what I quickly grepped from a search, it looks like Hyper-V can be a traditional hypervisor (the guest OS is none-the-wiser) or, as you also noted, can be a paravirtualization platform where it leverages some Windows special-sauce or, in beta (of course they can't officially support it) Xen-extensions in certain linux installs.
August 19, 2008 6:54:32 PM

I've been having a play with VirtualBox (commercial) and thought I'd feed it back to the thread.

Install and operation wise it's a nice product on a Windows host, I've not got a single working Linux installation at the moment to test it on!

However...

1. USB2 support is still flakey on Vista64 hosts
2. No 64Bit client support
3. No support for importing or using VHD disks.

Now number one I'll let them blame on Bill, hell nobody seems to have truly solid support for USB2 in any of their free virtualisation products as of yet. Darn annoying for me as I need to be able to hook up BCR & Biometric units for testing at work. It it supposed to work in Vista 32Bit which I have to use at work but then 2 & 3 kick in.

Number two is a show stopper. If I can't run MS server products in VM's then it's a none starter. I need 64Bit support.

Number three is the second show stopper. My employer is fine with me taking VM's with the works installed home on my big fat pen drive, however I can not get original media. We use VirtualPC in house and other than the USB issue it works fine for our requirements. I have to have VHD support. Yes, I know it's Bill and it's evil but VirtualPC is winning for me at the moment.... It's a sad day..... [/Feels the temp drop as hell starts to freeze over]



!