Entries Tagged as 'Virtualization'

Virtualization Best Practices, Selecting A Vitualization Solution

This will be the first in a multi-part posting.

I use Microsoft Virtual Server on my PCs for virtualization, and I use VMware on my Macs (I used to use Parallels, but it got to be too expensive to keep paying for updates, and when VMware attempts to charge for an update I’ll probably switch to VirtualBox on my Macs); but most everything I have to say here will apply to any virtualization solution you might choose to use.

When you evaluate a virtual solution, you need to look at a number of requirements and features and decide which is right for you:

  • Cost, that’s the initial cost of acquisition, plus updates
  • Hardware requirements, some virtualization solutions require machines with hardware vitualization (most modern processor have that, but not all), some do not — some only require it for 64-bit virtualization.
  • What type of host operating systems are supported (that’s the operating system you will run the virtualization software on, and install guest operating systems).
  • What type of guest operating systems are supported (and what guest operating systems are known to work).
  • How reliable the solution is on the particular host you’re interested in, and how reliably it runs the guests you’re most interested in.
  • How easy the solution is to use, and how well it fits into the host you’ve chosen (software that runs on lots of different hosts may not be engineered to fit the paradigm of your host well, it may look and act the same on all hosts — which really is of no value unless you’re running it on lots of different hosts, in general you should prefer a solution that looks and works like the other software your use).
  • Whether the system supports 64-bit and 32-bit virtualization or only 32-bit virtualization; and whether you need 64-bit virtualization or not.
  • What type of network connectivity the virtualization solution provides (NAT, bridged, etc), and what type you need.
  • The performance of the network virtualization, and how important the performance might be.
  • What type of storage virtualization the solution provides, and what you need.
  • The performance of the storage virtualization, and how important the performance might be.
  • Does the storage system support undo disks, checkpoints, snapshots, etc, and what do you need.
  • What type of device virtualization the solution provides, and what you need.
  • The performance of the core virtualization (and how important slight differences in performance might be).
  • What type of management tools exists, and what you need.

The above list will get your started on evaluating the relative merits of different virtualization solutions.  My recommendation is start with a solution that’s free and try it out, if you find it doesn’t seem to fit your needs, then try solutions that offer a trial period.  And when you identify things you like or don’t like, go back and look at the free solution and compare it again.  Often you will find after getting a broader experience base things look different, and you shouldn’t just stop with the last one you looked at — you should reassess the less expensive alternatives you dismissed.

One final word, don’t install multiple virtualization solutions on a single machine.  Remove the previous software you were looking at (you can retain the virtual machines), reboot, and install the new software.

The next postings will cover basic operating, maintenance, and some ways to make management easier.

Originally posted 2009-01-13 12:39:01.

VirtualBox on OS-X

After the extremely poor experience with my upgrade to vmware Fusion 2.0.1 I can certainly tell you that VirtualBox was a totally satisfying experience.

First, VirtualBox doesn’t have all the whizzy features that vmware Fusion has; but the only thing I really care about is being able to reliably run a virtual machine.  I don’t need all the features that I don’t use and don’t ever work right — all I really care about is reliability.

The user interface for VirtualBox is clean and simple (though I would recommend you spend a little time looking at all the options for VirtualBox and the settings for virtual machines before you get too carried away).

The documentation and FAQs are excellent.  They cover almost every question that came to my mind before I started (including how you could move a vmware machine to VirtualBox if you wanted to).

Since VirtualBox emulates an Intel SATA AHCI controller, it’s very simple to install XP or 2003 (I actually did both) using IDE drives and then switch over to SATA AHCI (which improves performance).  In fact, all you need to is enable the SATA controller in the machine configuration, start the machine, install the Intel Matrix drivers, shut down the machine, change the connection of the drive from IDE to SATA channel 0, and start the machine… couldn’t be easier.

The only feature I would like to see in VirtualBox is support for more than one processor.  And I guess it would also be nice to see 64-bit support on the Mac (but I don’t use 64-bit virtual machines right now, and that’s something that’s already support by other hosts, so it isn’t far off).

And the only gripe I have with VirtualBox thus far is there doesn’t seem to be a good way to share virtual machine configuration files (well — a soft link would do it).  I guess this isn’t a huge issue since it’s not something that most people would probably want to do (but I do).

At the price (FREE) you just can’t beat it.  VirtualBox works, and it seems to work well.

With vmware releasing code that isn’t fit to be taken out of a garbage can; Microsoft chipping away at the high end of vmware’s market; and everyone giving away virtualization software for the desktop you’ve got to wonder how long vmware can survive.  And frankly, I don’t care — I’ve tossed my copy of Fusion away just like I did my copy of VMware Workstation.  Microsoft provides me with perfectly function virtualization hosting software on all versions of Windows; Xen provides it on *nix; and VirtualBox provides me with a reasonable solution on OS-X (and I’m betting on Apple incorporating Xen or something like soon).

My next task is copying my machines from my MacBook (where I tested VirtualBox) to my two Mac Minis and my Mac Pro… looks straight forward.

Originally posted 2009-02-07 01:00:54.

VMware Fusion

Last week I decide to upgrade my copy of VMware Fusion 1.1.3 (Build 94249) to Fusion 2 (it was free, and looked like a pretty compelling upgrade, and I already decided I wasn’t going to spend more money with Parallels).

I downloaded VMware Fusion 2.0.1 (Build 128865) and installed it on my Mac Pro and upgraded my Windows XP machine (following all the instructions).

Then I launched my Windows XP virtual machine, it seemed to run just fine, so I shut down — and my Mac rebooted.

I tried this a few more times; and yep, every time I shut down the virtual machine (that had been working perfectly for a very long time) it reboot my Mac Pro.

So I decided to give it a try on my MacBook Pro.  Well, at least it didn’t reboot my MacBook Pro — but on both the MacBook Pro and on the MacMini I got an error when I shutdown the virtual machine and ended up rebooting before I could run it again.

Four machines, all four of them exhibit problems that ten minutes of QA should have uncovered (of course I probably have run Fusion 2.0.1 on more machines that VMware has).

There is absolutely no excuse for publishing software like this… if I had actually paid for the upgrade I’d be looking for a refund.  Instead I’m just going to remove this crappy software from my Macs and go with a much better overall virtualization solution — VirtualBox.  And if I decide I want a commercial solution, I can always upgrade my copy of Parallels Desktop.

At least when software is FREE you stand a chance of getting what you pay for.


The only reason I was interested in trying Fusion 2.0.1 is that it includes “experimental” support for running OS-X as a guest.  But if it won’t run something that’s supported, I’m not sure I care to even try something “experimental” — glad I waited until it was out of BETA to take a look at it.

Originally posted 2009-02-05 01:00:17.

VirtualBox LinuxDesktop RealPerformance

The other day I installed VirtualBox OSE on my Ubuntu machine so that I could migrate over a Windows Server 2003 machine.  I wasn’t really expecting great performance since I was putting the virtual disks on a single spindle…

Sometimes you get a good surprise.

When I started up the virtual instance, it seemed very fast — so I shut it down and started it again.  Then I performed a few quick tests and I realized that not only was VirtualBox on a Ubuntu 10.04LTS Linux machine substantially faster than on a Windows 7 machine (with a faster hard disk and faster processor), but it was faster than on a Windows Server 2008 machine running Hyper-V.

The really incredible thing was that Hyper-V was running on a disk array with fifteen spindles verses a single spindle for VirtualBox.

I really didn’t have any way to do a set of rigorous tests, but what I found was that as long as the disk wasn’t saturated, VirtualBox was able to handily outperform Hyper-V on every test (read or write) that I performed… it was only when I started to push near to the limits of the drive that VirtualBox and Hyper-V had similar disk IO performance.

I didn’t evaluate how VirtualBox performed on Linux with a disk array, but my guess is that it’s simply much more efficient at scheduling disk IO than Hyper-V; and likely Linux is more efficient at disk IO than Windows period.

I’m a huge fan of VirtualBox; and if I knew now what I knew about Hyper-V eighteen months ago I would have avoided it like the plague and simply used VirtualBox or Xen as a virtualization solution.

I’ll put a more thorough investigation of disk IO and VirtualBox verses Hyper-V performance on my “TO-DO” list; but I don’t expect it’ll float to the top until this Winter at the earliest; until then my advice is choose VirtualBox (or Xen).

Originally posted 2010-08-24 02:00:27.

Virtual Server 2005 R2 with Internet Explorer 8

You’ve probably read my rant on IE8 and how broken it is.

If you have IE8, and you need to use Virtual Server 2005 R2 (and perhaps previous versions as well), and you’re tired of having to select compatibility mode manually all the time…

You can add a customer header to your web site to force IE8 into IE7 (compatibility) mode.

However, on a workstation (XP, Vista, etc) that means all of your web sites will force IE8 into IE7 mode; on a server (Server 2003, Server 2008, etc) you can set the header on only the virtual server web site.

Why Microsoft doesn’t issue a hot fix for this is totally beyond me… seem like it would be trivial for them to make the web service app send the META tag; or they could actually address the compatibility issues.

On Vista you’ll find the menu you need via:

  • Computer->Manage->Services and Applications->Internet Information Server->HTTP Response Headers->Add

And the Custom HTTP Response Header you’ll set and value is:

  • Name:  X-UA-Compatible
  • Value: IE=EmulateIE7

On other versions of Windows you just need to get to the IIS management console figure out how to set the custom HTTP header on a site (remember, workstation versions of Windows only have one web site so depending on the version of  Windows you’ll see either ‘default’ or nothing listed).

Originally posted 2009-08-27 01:00:02.

Computer Tid Bits

I haven’t sent one of these tid bit emails out in a long long time — this is just a collection of little points that you might find comes in handy.

Server 2008 is indeed out and available. I think I’m going to wait a few months (and I’m just about out of funds for MSFT store purchase, so doubtful I can get a copy for anyone else — I’ll probably do the MSDN OS subscription again). Hyper-V has not shipped as of yet.

Service Pack 1 for Vista can be downloaded or you’ll get it from Windows Update. If you’re updating more than a single machine, download the whole thing (Windows Update will swamp your connection). There are separate packs for 32-bit and 64-bit (you may need both if you have both machines). Also, copy the update file to the local disk (it will need elevated privileges to install).

Virtual Server 2005 R2 can be installed on XP, XP-64, Vista-32, or Vista-64. The management interface requires IIS, so that’s a little different with PWS version on non-server platforms. If you have VS installed on a server, you should be able to manage _all_ of your installations from one management interface (though Vista doesn’t make that easy).

Google GMail allows you to host your domains for email there for free… you basically get GMail accounts in your own domain. I’ve moved my mail services over there for the time being (I still archive all my email on my own server at home, but the active send/receive is done via GMail).

Parallels is coming out with a new server (64 & 32 bit) to compete with Hyper-V; I looked at the beta (definitely a beta, but useable), they may be able to get some of the market share — but my guess is they’ll get the share from VMware (I didn’t care for the Mac-ish look of the product on Windows).

2.5″ SATA disk drives continue to fall in price; Seagate 250GB drives were $104 @ Fry’s, and they still had some on the shelf on Monday!!!

Intel hasn’t release the most of the 45nm processor family yet; the older Core2 dual and quad processor continue to be a great buy. Remember that really none of the current Intel chip sets take advantage of the higher transfers the newer processors are capable of (well the X38, but that’s supposed to have major issues) — so you might want to wait for the next generation of Intel chips and motherboards to hit the market. FYI: Intel delayed the release because AMD missed their ship dates… their new cores had some rather serious flaws

Notebook and desktop memory are nearly on par with each other. You can purchase 2 x 2GB for under $100 (easily — even the really fast memory). $60 is actually the low price and $80 get’s you high quality with heat spreaders (notebook memory doesn’t have heat spreaders — no room). 2 x 1GB can be purchased for $40!!!

Originally posted 2008-04-01 12:58:23.

Cloning a VirtualBox Hard Disk

Sure it’s easy to install an operating system from scratch in VirtualBox, but it’s much easier (and quicker) to keep a base library of OS images and simply clone the disk and add the specific software you need (want).

You cannot just simply copy a disk file, all disks in VirtualBox contain a unique identifier (a UUID) and two disks with the same UUID cannot be in the media catalog at the same time.

VirtualBox, however, provides the ability to change the UUID (from the command line) using vboxmanage; the syntax is simply vboxmanage internalcommands setvdiuuid <disk file name>.

You can easily create a script for cloning a VirtualBox disk by doing something like this in windows (I put it in a file called clonevdi.bat)

@echo off
REM clonevdi <source> <destination>
set v=%ProgramFiles%\sun\virtualbox
copy %1 %2
“%v%\vboxmanage.exe” internalcommands setvdiuuid %2
set v=

or this in ‘nix (I put it in a file called clonedvi and it needs to be set to have execute [x] mode)

# clonevdi <source> <destination>
cp -p $1 $2
vboxmanage internalcommands setvdiuuid $2

Then you just call it with the disk file you want to clone, and the new name for the clone.

Remember, if you’re cloning a Windows OS disk, you should download a tool like NewSID (from Sys Internals, now Microsoft) and run that after you boot your cloned disk to change the security identifier (SID).

NOTE:  Pay attention to the licensing requirements from Microsoft on duplicating Windows OS disks (even virtual ones) and as of Nov 2009 the only “official” way Microsoft supports changing SIDs is through the use of SysPrep (Microsoft System Preparation Utility for Microsoft Windows operating system deployment).

Originally posted 2010-04-08 02:00:30.

Windows 7 – Virtualization, Revisited

I posted yesterday on Windows 7 virtualization, and suggested that if you’d purchased Windows 7 Professional or Ultimate you’d probably just want to use the built-in Microsoft Virtualization (based on the Virtual PC 2007 code line).

However, after doing some testing, I’m not convinced.

Now if you have Windows 7 Professional or Ultimate and a machines that supports hardware virtualization, Microsoft will provide you not only a virtualization system, but also a copy of Windows XP to run under that virtualization system — so it might be a good choice from that standpoint. But…

Performance and features… well — VirtualBox has every feature in the Microsoft product, seems to run substantially faster, and supports more modern hardware emulation.

I need to do more testing to be totally sure, but at this point my feeling is just run VirtualBox on _all_ Windows 7 editions; and find an old copy of Windows XP to install in a virtual machine (you’ll have to read over the license agreement in detail from Microsoft to figure out if you can use the VHD they provide for XP Virtual Mode in another virtualization host).

Had Microsoft used the Hyper-V code base rather than the Virtual PC 2007 code base for virtualization in Windows 7 it would be a very different beast; but I guess the kids in Redmond can’t imagine someone actually wanting to do real virtualization on a desktop machine; but they can certainly justify raping you some feature in Professional and Ultimate verses Home Premium.

Originally posted 2009-11-18 01:00:29.


I started to switch my virtualization hosts over to Server 2008 about two weeks ago; and I’ll give you some feedback on my experience.

The first thing you’re going to find with Hyper-V is that migrating your old virtual machines to Hyper-V isn’t particularly easy unless you want to purchase Microsoft’s virtual management server — quite a large expense for most users.

You can download a tool called VMC2HV (that converts Virtual Server / Virtual PC VMC files to Hyper-V format) and that will make it fairly easy for you, but there are still some things you need to watch for.

Before I talk about VMC2HV, there are some setting in Hyper-V you’ll want to change right off.

  • Set the path for your virtual machine configuration files.
  • Set the path for your virtual disks.
  • Setup a virtual network (you may need more than one depending on your configuration).

When using VMC2HV:

  • Make sure you tell VMC2HV where you want your Hyper-V files (and how you want to organize them).
  • Decide where you want to store your virtual disks (don’t store them under the virtual machine directory, put them in a separate tree.
  • Make sure you check the “swap SCSI 0 with IDE 0” box; if you used SCSI drives on Virtual Server, you need to remember you can’t boot from anything but IDE on Hyper-V; any additional disks you have can (and should) be SCSI.
  • Correct the virtual disk paths (and file names) if you’ve changed the location of the files.

I found that VMC2HV worked well… but it was far from perfect.

After you finish with VMC2HV you’ll need to setup the virtual network manually, and you’ll probably want to check all the setting.

VMC2HV certainly made it easy for me to jump start, but then I found that just recreating the virtual machines under Hyper-V was just about as easy.  The only “difficult” thing with the Hyper-V interface I’ve found is that getting it to put the configuration files where you want them is a little tedious, but eventually you’ll get the hang of it.


I’m running Hyper-V on machines with: Intel Q6600 (Quad Core2 65nm) with 8GB of DDR2 memory (Corsair DHX) on Intel DG33TL motherboards and hardware RAID5 (fifteen spindles or eight spindles — I’ve two machines with each configuration).

I find that giving each virtual machine two processors makes them much more responsive, and even running far more cores than I actually have doesn’t swamp the host processor (most of the time my virtual machines are IO bound, waiting on network responses or dealing with disks).

Most likely for a home (or small office) virtualization server you’ll find what I’ve shown several of my clients — invest in memory and spindles.

  • If you can avoid any paging in the virtual machines you’ll see much better performance (so don’t give the machines more memory than they need and you have, and don’t create a paging file).
  • For any virtual machine that reads and writes the disks heavily the more spindles that make up the host volume the more current IO you will have, and that mean you’ll be able to sustain a higher IO rate.  And if you use RAID5 you get fault tolerance on your virtualization store.


Installing the Hyper-V integration files is also a bit of a pain.  The Microsoft Virtual Machine Manager will do it automatically, but for those who don’t want to spend the money on something that is probably far more than you need you’ll have to do it by hand.

First you have to remove the old VMadditions that were put there by Virtual Server or Virtual PC.  If you do that before you move the files off your old machine it’s easier (you won’t have a mouse or network under Hyper-V until you complete the installation of the integration files).

Second you will upgrade the HAL, which is done automatically the first time you try to install the integration file (once you do this, there’s no easy way to go back to Virtual Server or Virtual PC, so save a copy of your boot VHD if you’re not sure).

Third you will install the integration files (which install the Windows Driver Foundation; and that’s the only problem I saw — apparently if the temporary directory doesn’t get created before WDF install runs, it fails — check you log files for more information, and just create the temporary directory by hand and re-run the setup for the integration files).

When you have the integration files install and reboot the machine should be working perfectly.


I’m seeing a rather dramatic speed increase in my virtual machines using Hyper-V; which is really surprising since IO on the boot drive should be slower (since it uses IDE) than it was with Virtual Server (which used SCSI — highly para-virtualized).

I suspect that overall the way Hyper-V is built (you can read white papers on Hyper-V if you’re interested; you’ll also notice that Hyper-V and Xen conceptually share a similar architecture) is responsible for the speed increases; and the fact that you can allocate up to the number of physical cores you have to a guest machine or run 64-bit operating systems and software under Hyper-V you can really build out a virtual infrastructure which has great performance.


Overall I’m pleased with Hyper-V, and have found it much easier to use on Server 2008 than trying to start with a Hyper-V Server (Microsoft gives away a version of Server 2008 which can only be used as a virtulization host; unfortunately you have to remotely administer it, and that isn’t as easy as it should be — it does work, but the learning curve is a little steep).

My feeling is that there will be a significant update to Hyper-V soon, adding more device support (and para-virtualization).  And the real question is:  Why isn’t there Hyper-V for Vista?  The two operating systems derive from a common code base, and certainly for developers having Hyper-V on a Vista workstation makes more sense, and since Microsoft gives away Hyper-V server they can’t argue that it will cannibalize sales!

Originally posted 2009-02-03 01:00:13.

Internet Explorer 8

Microsoft released Internet Explorer 8 quite a while ago, and I’m not sure they fully realized how many web pages it would break.

Sure, they put a compatibility mode in it to allow some older sites to run; and they have the facility to “update” IE8 to configure it for more sites with know issues, and developers can add a header or a meta tag to their web pages to force IE8 into compatibility mode, and of course a user and select compatibility mode.

A truly sad thing is that in all this time Microsoft hasn’t issued a fix to Virtual Server 2005’s web management interface (the only way you can control Virtual Server 2005); and it requires compatibility mode to work (come on guys, how tough is it to just update the web pages to include the meta tag — or maybe you could actually fix what’s broken in the page).

My personal feeling is that we didn’t need another version of Internet Explorer; and we certainly didn’t need another version of any software rushed out the door riddled with severe bugs and deficiencies.

Why software companies spend so much time and energy making things worse (work on thing that are BROKEN) is beyond me…

Your potential. Our passion.

Maybe they should consider we could all achieve our potential if we didn’t have to waste so much time finding works around for their psychoses.

Originally posted 2009-08-26 01:00:09.