Speaking the language of business intelligence with an Australian accent

Tuesday, September 22, 2009

The Microsoft Virtual Catch 64

How does it go again, Steve? “Developers, developers, developers”? As we move further and further into the 64 bit world, Microsoft’s virtualization path on non-server operating systems will leave some developers out in the cold.

MOSS 2010 is going to be a huge release and will only be available in 64 bit. Naturally PerformancePoint Services and all the other good stuff that’s going to be baked into this next version will be 64 bit too. The pure 64 bit direction is a good one, I am looking forward to the solid baseline scalability and power that will come from not offering the 32 bit option. All of this is good news.

Now here’s the catch for developers looking to get up to speed with the latest and greatest. Virtual PC 2007 and the soon-to-be-released Windows Virtual PC do not support 64 bit guest operating systems. The only Microsoft supported way to run a 64 bit virtual environment is through Hyper-V. The inability to support a virtual 64 bit OS on a Vista / XP / Win7 box means that the usually trivial task of spinning up a VPC and kicking the tires with the beta bits is just not possible. This a pain point that is already shared by many, just take a look at this newsgroup thread.

If you’re a consultant like me your laptop is your life. You do a great deal of your learning, development, testing, demos, conference presentations on a variety of VPC images. You store these images on an external HDD and run them within your primary, non-server OS. If you want to continue doing this kind of thing (on a 64 bit platform) you will need to seek out non-MS virtualization technologies to support your efforts.

So what are your options if you want to retain a pure Microsoft environment? The only MS answer to a 64 bit virtual environment is Hyper-V, and that means running Server 2008. If the cost of licensing Server 2008 is not an issue here are some of your options:

  • Run Server 2008 as your primary OS
  • Dual boot your laptop using Server 2008 as a secondary OS
  • Buy another laptop and load Server 2008 on it

None of these choices really do it for me. I have a good laptop with plenty of RAM and a 64 bit processor that supports virtualization technology. Nonetheless I am unable to run a MS-based 64 bit virtual guest OS without using Server 2008. So in order to continue to do things the way I am used to I have to go with a non-Microsoft virtualization technology that supports 64 bit guests. Here are the two frontrunners in the desktop 64 bit virtualized guest world that I have found.

I recently reimaged my laptop with the RTM build of Windows 7 and have been using VirtualBox for a few days now. I’m used to the VPC way of doing things but I’ll just have to adapt, I guess. That being said, VirtualBox is a pretty good alternative.

As MOSS RTM draws nearer in H1 2010 I have a feeling we may begin to see virtual demo environments that are not hosted in MS technology. MS is pushing virtualization more and more (and so they should) but how’s it going to look if the person presenting at a user group / conference / customer site is using non-MS virtualization technology to host their demo? The next time I present that may well be the case. Disappointing.

UPDATE (Oct 21 2009): It has just been announced that MOSS 2010 will be supported on both Vista and Win7 for developers (not production deployments, of course). Although this doesn’t completely eliminate the problem that is the subject of this post it very definitely helps. The ability to run your own local developer version of MOSS should be great. I had heard about this possibility of this kind of support under NDA some time ago but it was never confirmed until now.

Anyone else got an opinion, alternative to the situation we will soon find ourselves in? Feel free to comment.

4 comments:

William said...

I've been very happy running Server 2008 as my OS. I've had very few problems
http://blogs.msdn.com/vijaysk/archive/2008/02/11/using-windows-server-2008-as-a-super-desktop-os.aspx

and for power mgmt
http://markharrison.co.uk/blog/2009/01/hyper-v-enable-sleep-hibernate.aspx

Works like a charm

Armin Fischer said...

Thank you for addressing this topic. I have had the same thoughts and sorrows, and still I have no idea how to get an 64bit Windows guest OS running on my 32bit Laptop easily - especially not with MS products.

I managed to setup a demo image w/ Windows 2008 64bit, SQL Server 2008 64bit and MOSS on VirualBox, but this is not so practical, and the hard-disk is growing all the time anyway.

Hopefully, MS will come up with a solution for this.

SteveOLAP said...

To meet your immediate need, you should be happy with a native boot to Server R2 from a Vista/Server-2008-non-R2 (unsupported hacks) or a Win7 (supported) host. There are caveats, however, such as no BitLocker and no nested VHDs. I've avoided Vista, but will be happy to migrate to Win7.

Let's expand the goal, though: 64-bit guest VMs that can be shared among developers on divergent machines. And we'll take as a given that MSFT remains unwilling to see VPC or Virtual Server (aka Type 2/hosted hypervisors) meet that goal...for a year or two, anyway.

I'm compelled to stick with VHDs. First, their overall adoption rate should be dramatic, driven by new functionality such as XP Compatibility Mode and native VHD support in Win7/W28-R2. This means an increasing number of IT shops will 'think' in terms of VHDs. No, they can't spin up my 64-bit VHD in VPC or XP Compatibility Mode, but increasing odds are that they may have a box running the free Hyper-V Server...which is where the VHD really belongs, anyway (think multi-processor support for the VM). Now, *I* could use VMware and convert VMDKs to VHDs, but I'm leery of anything with less than a 100% success rate. And VirtualBox's VHD support seems oriented towards Type 1 hypervisors, not the APIC-enabled VHDs I want to trade with others.

If people we do dev collaborating with don't have Hyper-V, they may soon have a Win7 host (Enterprise or Ultimate)--or Windows Server 2008 R2 w/out the Hyper-V role enabled. At that point, I'd instruct them to set up my APIC-enabled VHD as a native boot. Their machine has to have two adequately sized partitions (one contains boot files; the other contains VHDs [actually, a USB is OK, but no pointing to a file share] and a page file) on a *basic* host volume, but we can script that with DiskPart. The boot process can only boot Win7 or Server R2. That's OK--I develop in Server R2. (If partners prefer Server 2003 it had better be SP2, and we'll simply both have to use Hyper-V as a VM host for a Windows Server 2003 SP2 guest.)

Back to native boots, a tougher issue is "generalizing" the image. What if we want to collaborate on development and FTP VHDs back and forth? Native boots remove us from hardware independent VMs (the virtue being the guest has full access to host devices). Accordingly, we'd have to agree on a specialized image that keeps us on the same page. Or, if we at least agree on a chip maker, we'd both use Hyper-V with Processor Compatability enabled. Oh, well. Orienting towards a target platform (AMD vs Intel) is inevitable at some point in dev/test, anyway.

I'd almost be content with *my* dev machine relying solely on native boots--and my demo laptop would! However, my firm ultimately requires a variety of guest O/Ses and sophisticated networking between VMs, so we step up to the Hyper-V Server R2. At this point, then, we have two machines: a full server and a mgmt/demo notebook. Placing everything onto the notebook would lead to problems touched on at http://blogs.msdn.com/virtual_pc_guy/archive/tags/HDoaLC/default.aspx. There's no perfect solution any many, many tricks to contemplate, but those are some initial thoughts.

Joko Blog said...

I don't know much about programming, sofware, html, xtm, and else, but thanks a lot for Ur Information