[K12OSN] Software virtualization...opensource way?

Michael C Wescott wescott at sc.rr.com
Thu Feb 9 02:47:05 UTC 2006

On Wed, 2006-02-08 at 10:23 -0500, David Trask wrote:
> Ok....aside from the licensing of the OS or apps....(that part I
> understand)
> I'm reading a lot about software virtualization....In other words allowing
> one server to run multiple OS's or perhaps allowing one networked
> workstation or terminal to access multiple apps written for other
> platforms.

First, the disclaimer: I work for EMC Corp (which owns 
VMWare). I don't work in the VMWare part of the company 
but my group uses VMWare quite a bit and we have some 
familiarity with the product.

I think the best way to describe VMWare, and virtualization 
in general, is to describe the problems it solves.

One of the problems is that encountered by those of us that 
prefer Linux or Unix workstations over Windoze. Every now and 
then we just have to use WinXP. Usually it's to read some 
document that openoffice barfs on or use some corporate 
mandated application that only runs on a Microsoft product.

The traditional solution has been to set up the workstation 
with both OS's and dual boot. When you really need Windows, 
save the document on a FAT partiton that both OS's can access, 
shut down Linux, and bring up Windows. Reverse the process to 
get back to Linux. It's cumbersome and time consuming, but it 
works. The more expensive solution to to have 2 computers and
a KVM switch.

The virtualization solution recognizes that if you can fake
out an OS into thinking it's talking to real hardware, you can
run that OS as just another program. That's a bit over simplified
but not too far off the mark. My laptop runs Linux (Debian),
but for the reasons outlined above I need to run WinXP at times.
Right after I boot up Linux in the morning, I start up a VMWare
program and boot up XP in a virtual machine supported by VMWare.
Now I've got Linux for most work and WinXP when I need it. And
I switch back and forth at the click of a mouse.

I can also create additional virtual machines and install 
Fedora or any other OS that runs on x86 hardware. Virualization 
provides the environment in which each "guest OS" thinks 
that it's running on it own set of x86 hardware. What you
don't get is emulation of a different processor. I can't
run Solaris SPARC on a VMWare virtual machine. That's because
the virtual machines still use the real hardware for execution
of code. Emulation of the instructions of a different processor
would just be too expensive computationally, to be worth while.

The other problem solved by virtualization might be called the
proliferation of servers. At one time, especially in shops 
enamored of Windows, a new application meant buying a new
computer, installing some flavor of Windows and whatever 
application you wanted. Each app ran in it's own machine in
spite of the fact that most of these machines were often
running at very low utilizations. The problem got worse when
even the cheapest machines got fast.

Clearly the answer is to combine these apps and services on
one machine and on one OS. The trouble is that there are often
good reasons to have them on separate machines. Oft times
one app won't work on the same machine as another. There may
also be control issues (payroll on its own machine, for example).

The vitualization solution for this problem is to provide
separate machines, virtual ones, all running on one set of
hardware. You get economies of scale with one large machine
without losing the separation that's often desireable.

Once a machine has been virtualized in this way, there are
some other advantages. You can set up a virtual machine's 
disk in such a way the writes to the disk aren't permanent.
At any time you can choose to commit the changes or to rollback.
Handy for testing the effect of the latest Service Pack on
a critical application.

So how would this work in a K12LTSP setup? Splitting a K12LTSP
server into several virtual ones doesn't seem to gain much
unless there are issues of control or of interference. I can
envision one large real machine running 5 or 6 virtual
machines: say 2 LTSP servers, one for K through 4th grade with
older kids on the other. Another virtual machine could run
Squidguard and perhaps the DHCP server. And another, a Windows
LDAP server. And another, some Windows legacy application. I 
hope you get the idea. Anything that might logically go on
a separate real machine, could very well go on a separate
virtual machine. At least until the real hardware starts
to bog down.

At the other end of the scale there might be a reason that
a teacher, say, might need to run Windows natively and still
need to have an LTSP terminal available on the same hardware.
Although, rather than booting a diskless virtual machine one
could just as easily run one of the Xservers that will run
on Windows.

One last advantage of virtualization: machines are easy to 
create and to destroy. Virtual hardware doesn't need to be
ordered, justified, paid for, or plugged in. Just allocate
the disk space, turn it on (virtually, of course) and boot
it off an iso image to start your install. Throwing one away
is even easier, a couple of clicks and an entire virtual
machine turns into electron dust.

More information about the K12OSN mailing list