While this is inspired by a recent conversation with a customer, I have seen the term "true virtualization" used
quite a bit lately - mostly by people who have just attended a VMware seminar, and to a lesser extend folks from
IBM trying to compare LPARS with Solaris zones. While one must give due credit to the
fine folks at VMware for raising Information Technology (IT) awareness and putting virtualization in the common vocabulary,
they hardly have cornered the market on virtualization and using the term "true virtualization" may reveal how narrow an
understanding they have of the concept or an unfortunate arrogance that their approach is the only one that matters.
Wikipedia defines
virtualization as
a technique for hiding the physical characteristics of computing resources from the way in which other systems, applications, or end users interact with those resources. While Wikipedia isn't the final authority, this definition is quite good and we will use it to start our exploration.
So what is true virtualization ? Anything that (potentially) hides architectural details from running objects (programs, services, operating
systems, data). No more, no less - end of discussion.
Clearly VMware's virtualization products (ESX, Workstation) do that. They provide
virtual machines that emulate the Intel x86
Instruction Set Architecture (ISA) so that operating systems think they are running on real hardware when in fact they are not. This type of virtualization would be classified as an abstraction type of virtual machines. But so is
Xen, albeit with an interesting twist.
In the case of Xen, a synthetic ISA based on the x86 is emulated removing some of the instructions that are difficult to virtualize.
This makes porting a rather simple task - none of the user space code needs to be modified and the privileged code is generally limited to parts of the kernel that actually touch the hardware (virtual memory management, device drivers). In some respects, Xen is less of an abstraction as it does allow the virtual machines to see the architectural details thus permitting specific optimizations to occur that would be prohibited in the VMware case. And our good friends at Intel and AMD are adding new features to their processors to make virtualization less complicated and higher performance so the differences in approach between the VMware and Xen hypervisors may well blur over time.
But is this true virtualization ? No, it is just one of many types of virtualization.
How about the Java Virtual Machine (JVM) ? It is a run time executive that provides a virtualized environment for a completely synthetic ISA (although real pcode implementations have been done, they are largely for embedded systems). This is the magic behind write once and run anywhere and in general the approach works very well. So this is another example of virtualization - and also an abstraction type. And given the number of JVMs running around out there - if anyone is going to claim true virtualization, it would be the Java folks. Fortunately their understanding of the computer industry is broad and they are not arrogant - thus they would never suggest such folly.
Sun4v Logical Domains (LDOMs) are a thin hypervisor based partitioning of a radically multithreaded SPARC processor. The guest domains (virtual
machines) run on real hardware but generally have no I/O devices. These guest domains get their I/O over a private channel from a service domain (a special type of domain that owns devices and contains the real device drivers). So I/O is virtualized but all other operations are executed on real hardware. The hypervisor provides resource (CPU and memory) allocation and management and the private channels for I/O (including networking). This too is virtualization, but not like Xen or VMware. This is an example of partitioning. Another example is IBM (Power) LPARS albeit with a slightly different approach.
Are there other types of virtualization ? Of course there are.
Solaris zones are an interesting type of virtualization called OS Virtualization. In this case we interpose the virtualization layer between
the privileged kernel layer the non-privileged user space. The benefit here is that all user space objects (name space, processes, address spaces) are
completely abstracted and isolated. Unlike the methods previously discussed, the kernel and underlying hardware resources are not artificially
limited, so the full heavy lifting capability of the kernel is available to all zones (subject to other resource management policies). The
trade-off for this capability is that all zones share a common kernel. This has some availability and flexibility limitations that should
be considered in a system design using zones. Non-native (Branded) zones offers some interesting flexibilities that we are just now beginning to
exploit, so the future of this approach is very bright indeed. And if I read my competitors announcements correctly, even our good friends at IBM are embracing this approach with future releases of AIX. So clearly there is something to this thing called OS Virtualization.
And there are other approaches as well - hybrids of the types we have been discussing. Special purpose libraries that either replace or interpose between common system libraries can provide some very nice virtualization capabilities - some of these transparent to applications, some not. The open source project
Wine is a good example of this. User mode Linux and it's descendants offer some abilities to run an operating system as user mode program, albeit not particularly efficiently.
QEMU is an interesting general purpose ISA simulator/translator that can be used to host non-native operating systems (such as Windows while running Solaris or Linux). The interesting thing about QEMU is that you can strip out the translation features with a special kernel module (kqemu) and the result is very efficient and nicely performing OS hosting (essentially simulating x86 running on x86). Kernel-based Virtual Machines (KVM) extends the QEMU capability to add yet another style of virtualization to Linux. It is not entirely clear at present whether KVM is really a better idea or just another not invented here (NIH) Linux project. Time will tell, but it would have been nice for the Linux kernel maintainers to take a page from OpenSolaris and embrace an already existing project that had some non-Linux vendor participation (*BSD, Solaris, Plan 9, plus some mainstream Linux distributions). At the very least it is confusing as most experienced IT professionals will associate KVM with Keyboard Video and Mouse switching products. There are other commercial products such as QuickTransit that use a similar approach (ISA translation).
And there are many many more.
So clearly the phrase "true virtualization" has no common or useful meaning. Questioning the application or definition of the phrase will likely uncover a predisposition or bias that might be a good starting point to carry on an interesting dialog. And that's always a good idea.
I leave you with one last thought. It is probably human nature to seek out the one uniform solution to all of our problems, the Grand Unification Theory being a great example. But in general, be skeptical of one size fits all approaches - while they may in fact fit all situations, they are generally neither efficient nor flattering. What does this have to do with virtualization ? Combining various techniques quite often will yield spectacular results. In other words, don't think VMware vs Zones - think VMware and Zones. In fact if you think Solaris, don't even think about zones, just do zones. If you need the additional abstraction to provide flexibility (heterogeneous or multiple version OS support) then use VMware or LDOMs. And zones.
Next time we'll take a look at abstraction style virtualization techniques and see if we can develop a method of predicting the overhead that each technique might impose on a system. Since a good apples to apples benchmark is not likely to ever see the light of day, perhaps some good old fashioned reasoning can help us make sense of what information we can find.
Technocrati Tags:
Sun
Solaris
Zones
VMware
Virtualization

Thursday January 04, 2007
It's a couple of days late, but I would like to take an opportunity to wish everyone a very happy 2007. Since it is customary to make a set of resolutions for the new year, I thought I would share a few of mine.
- Quality over quantity. In a field sales support organization, most of what you handle is outside your control, but that doesn't mean that you have to be completely interrupt driven and out of control yourself. Perhaps a few well placed "no" responses will help restore some balance and who knows, I might even get reacquainted with my family. I might even finish building the R/C buggy kit that I got last Christmas.....
- Community building. As far back as March 2006, Wences Michel and I talked about kicking off a Dallas area OpenSolaris User's Group. We sketched out some ideas, mostly trying to figure out how to work with the Dallas Sun User's Group. Taking a bite out of the procrastination resolution that I'm not going to talk about, a stake has been put in the ground and the Dallas/Ft. Worth OpenSolaris User's Group has been formed. We will hold our first meeting at the Sun office on January 16. The topic will be "What's new in Solaris 10 11/06".
- More blogging. Perhaps this is procrastination, part 2. A member of the Solaris Adoption practice noted that there was nothing worse than old information posted on a web site. Perhaps the blogging equivalent of this is the infrequent poster. I've been prodding other team members to share their notes and discoveries but I just noticed that I have more entries in my draft queue than in my last 6 months of postings. While I have been
rather deliquent of late, Jeff Victor (aka the Zones FAQ man) has been blogging recently, so that's a good start.
- Having Fun. 2006 was a great year from a quality of work perspective. After all, evangelizing Solaris 10 is a lot of fun. And there's a lot more to do, so the outlook for 2007 is quite positive. But does that translate to fun without the qualifier "work". Not really. I have a garage of R/C projects that are still in boxes. And the last time I checked, R/C boxes aren't nearly as interesting as R/C cars and trucks. So more time on R/C and getting a few of those projects race ready.
That's enough for now. What are some of your resolutions for the new year ?
Technocrati Tags:
Sun
Netherton.

Tuesday February 21, 2006
Those of you that have attended one of my Solaris Boot Camps may
have been introduced to our 6 week old English Springer Spaniel,
Trixie. She has been decorating my Solaris desktop since her
arrival last March.

At just over a year old, Trixie has grown up to be a wonderful
family member. She's very sociable, easy to train, eager to please
and quite affectionate – boy is she affectionate. As much as we'd
like to take credit for all of this, a check into the dog
encyclopedia on English Springer Spaniels shows that these are all
traits of the breed, so Mother Nature wins this round.
So my darling bride suggested that we get her a companion, preferably another black and white female. Armed
with the information from the dog encyclopedia (and previous
experience with two other Springers), we contacted the breeder asking
if there are any plans to breed these bloodlines again. We just
missed a litter, so we'd have to wait about a year – which was
fine. Or so we thought....
Mother Nature wins round two. Trixie's maternal grandparents
figured out how to unlock the kennel and we received a phone call
telling us that Trixie has new born aunt and three uncles, but it was a
small litter - only the one female, but she's black and white!!!!

Like
I have to finish this part of the story ????? We went over to
see these new puppies and never stood a chance. At best I hope to
come home with only one (the runt of the litter, one of the males, is also adorable).
But that leaves a dilemna – what to name the new member of the
family ?
Had we planned for two dogs, Themla and Louise would be the
obvious choices (with Kate and Ally, Laverne and Shirley probably in
consideration). But my daughter named Trixie and it suits her, so
what goes with Trixie ? The obvious choice would be Dixie, but
consider that this is Dallas which isn't nearly as Dixie as say
Georgia or Alabama. Also out of consideration for the dogs, there's
not much vocal distinction between Trixie and Dixie – so Dixie is
out.
Now, most of the names that we've paired with Trixie thus far seem more suited to a bowling alley than the high tech field dog that we expect. So what do we name her ?
We've got a short list of
- Roxy
- Domino
- Haley
- Casey
- Hemi
- Mini-T
- Sadie
- Sammy
- Biscuit
We have 4 weeks to come up with a name. So I'm asking for some
help! Please let me know if you like any of the above, or if
there's some name that suits this little girl.
Technocrati Tags:
dogs
springer
spaniel
A recent discussion about problem resolution yielded this little nugget of wisdom:
The difference between an obstacle and an opporunity is your attitude.
I wish I knew the original source so that I could give proper attribution, but it has likely
been paraphrased over the years so that it's origins will remain a mystery (and a google search
as well as a cursory look through the Penguin Book of Quotations yeilded no additional
information).
A positive outlook will allow you to bring to bear all of your problem solving techniques, and
judging by the vast number of things that I must get done today, I may need all of them.
So, here's for a positive attitude as I flip over to Monday's Day Timer page.
I hope that everyone had a happy and safe holiday season.
2005 certainly closed with a mad rush of exciting new technology. The
UltraSPARC T1 (aka Niagara) processor along with a rational
Oracle pricing model.
Branded Zones and the Solaris Containers for Linux Applications - one of the most interesting Solaris 10 features,
ZFS - the most anticipated of the new Solaris 10 technologies, the release of
Xen 3.0, and of course
Solaris 10 Update 1 (aka Solaris 10 1/06).
And 2006 is off to a fast start. Solaris Boot Camps, Deep Dives, and Workshops as far as the eye can see. More on that later.
So what did Santa bring you ?
One of the highlights of my bounty was a
Losi Mini-LST, the latest in 1/18 scale electric mini-trucks. Losi
rocked the R/C world a couple of years ago with the introduction of the Mini-T, and they have done it again with the Mini-LST. While Associated,
Duratrax, X-Ray and others have added things like shaft drive and buggy configurations (the Associated RC18B is very cool), Losi opted for a complete redesign. Dual decks, 2 powerful 370 can motors, it really is a Mini LST. A more proper review will be forthcoming, but this is one cool truck!
And on the technology gadget front, I have finally joined the iPod generation. Of course this brings an extreme system administration challenge - where to carve out 60GB of disk space on the Windows side to be able to host the iPod library ? This is going to keep me busy for quite a while. Fortunately I can do all of my content creation on the Solaris side of things, but until there is a Solaris or Linux iTunes, looks like I'll be staring at Windows a bit more than I had expected. This is exactly why I want a Solaris 10 dom0 and a Pacifica based desktop.
Technocrati Tags:
Radio Control