One way to break down how people use virtualization

December 5, 2012

Virtualization is such a general technology that even when people are using it for whole machine virtualization there are any number of different ways that they can use it. Today I want to present a number of usage dimensions for this (when I started I thought it was going to be a simple four-quadrant breakdown, but the more I thought the more dimensions showed up).

So, here's some axes that you can chart virtualization usage along:

  • when you power up VMs, do you leave them running for a long time or only run them for relatively short periods and then shut them down again?

  • are running VMs totally headless, in need of only basic text-mode interactions with the console, or do you need full console graphics support (perhaps even with 3d acceleration)?

    (The former is typical of long-running servers, the latter is typical of virtualized desktops.)

  • regardless of how long they run when powered up, are your VM images long-lived or do you use them and then throw them away?

    (Long-running VMs are necessarily long-lived, but short running ones can still be long-lived too.)

  • is the basic setup for a new VM more or less constant (perhaps to the extreme of always starting with a cloned image) or highly variable? (Clearly there's a continuum.)

  • is VM management going to be automated or will it be done by hand at small scale?

  • how much does interacting with a VM need to be like interacting with real hardware?

(Some of these axes will be more or less forced if you operate at large scale with a lot of VMs.)

One of the reasons that thinking about this can be important is that different virtualization systems have different strengths and weaknesses in these areas. Understanding your own usage means understanding what's important to you and thus what virtualization systems are a good fit for you and what ones are a terrible fit.

(For one extreme hypothetical example, if your goal is small scale virtualized desktops it would be a terrible idea to pick a package that's aimed at headless ephemeral servers, full of support for things like fast cloning and rollback, command line management, mass starts and shutdowns, and with console access as an afterthought.)

Written on 05 December 2012.
« In praise of KVM-over-IP systems
How I use virtualization (and what for) »

Page tools: View Source, Add Comment.
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Wed Dec 5 23:18:29 2012
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.