Applications as Appliances

PCQ Bureau
New Update

Sanjay Majumder and Sujay V Sarma


Consider this-your current mail server is so overloaded that it could crash

any moment, and therefore you need to provision for a new one as soon as

possible so that a part of the load can be transferred. You've even managed to

convince your management for a new server purchase, and have the requisite

budgets sanctioned for it. You managed to get a hardware server and the required

OS and application licenses as well. But the real action starts after you've

procured all this. You have to install the Operating System, apply all the

service packs, patches and updates to it, and ensure that it complies with all

your security policies. After this comes the task of installing the mail server

application with its patches and updates. Finally you're ready to transfer

part of the load from the overloaded mail server. This sort of a scenario is

pretty common for every IT manager, and in fact you'll notice that half of the

job consists of just installing and setting up the OS and the application. What

if you could completely get rid of these steps? What if you could straightaway

get to doing the application configuration? Sounds unreal? Well, that's what

the concept of virtual appliances aims to solve. In this story, we'll take you

through a detailed journey of this concept, its business benefits, how to deploy

it under various scenarios, how to create your own, and even a few examples of

virtual appliances that are available.

Virtual appliances come as images of applications that are already preinstalled on their respective operating systems. In these appliances, virtual machines are created by optimizing the OS to run the application and even stripping it of all unnecessary services. The moment you drop them on your virtualization software, you straightaway get a wizard to configure them. 

In fact, we've even given a few virtual appliances on this month's DVD

for you to check out. Feel free to play around with them. Without any further

delay, let's delve right into this concept.


What's a virtual appliance?

Don't confuse virtual appliances (VA) with hardware appliances. The latter are
basically preconfigured systems with hardware and software fully setup and ready

to use. Virtual appliances on the other hand come as images of applications that

are already preinstalled on their respective operating systems. This is

different from the traditional way of doing virtualization, wherein you first

install a virtualization application, and then create various virtual machines

on top of it. These are created by installing the necessary operating system on

it, followed by the application. In a virtual appliance, someone has already

created these virtual machines by optimizing the OS to run the application and

even stripping it of all unnecessary services. Moreover, these virtual machines

have been customized so that the moment you drop them on your virtualization

software, you straightaway get a wizard to configure them.

Virtual appliances are available for a variety of virtualization

applications, some of which include Xen, VMware, Bochs and Microsoft Virtual

Server among others.

VAs are downloadable images and are a package of multiple files. One is the

virtual machine configuration file; the other is the virtualized hard disk

image. The package may contain other files specific to the platform. The

configuration file provides the virtualization layer information about the

hardware configuration expected by the software environment within the virtual

system. Such information can also include the type of networking, memory size,

disk size, types of virtual PCI and other devices attached. Other settings also

provide clues about the kind of software environment or platform and this is

usually achieved by simply providing the name of the OS installed (like 'WinXP'

or 'RHEL').


Business benefits

The obvious benefit of having an application pre-installed on its operating

system as a single image is obvious. You do not need expensive resources to

install and configure the application. A virtual appliance could have the same

application available on various OSes, allowing you to choose the one you're

comfortable using. Moreover, it saves you the time and effort required to setup

and install the application. Simply drag and drop it on top of your

virtualization layer and it's up and running.

Better utilization of the hardware is another key business benefit of virtual

appliances, which of course, has been borrowed from the very concept of

virtualization. You can run multiple virtual appliances on the same hardware,

allowing you to utilize it better. This reduces the number of servers you need

in your data center, thereby saving you a lot of hardware and maintenance costs.

Lesser number of servers also translates into lesser power and cooling

requirements in the data center, further adding to your savings. Having more

virtual appliances than physical servers improves the manageability of your data

center. You can quickly bring up an application or shut it down when not

required. Of course, with all these benefits, you must not forget that while you

save costs in one place, you spend on another. You still have to pay for the

virtualization software, and if that's free or Open Source, then you have to

pay for consultation and support.


Where to get them?

You can download (and purchase) virtual appliances from various sources. Apart
from websites of virtualization vendors, there are directories like which list available images.

Virtual appliances can also be created and customized according to your

requirements. One method to do this is to create a new virtual system under your

required virtualization environment, and customize this with the software you

require. Then you can place this image on a NAS or other storage system for

re-use. The second method is to capture an image of a preconfigured physical

system and use that as a virtual appliance. Later on in this story, we take you

through how to do this.

That said, when you have so many different virtual environments and so many

virtual appliances, how do you ensure that they meet some minimum set of

standards? And, what standards are there, if any for virtual appliances?

Some Virtual Appliances
  • Microsoft SQL Server 2005
  • Oracle Desktop Data Center
  • Zend Demoware
  • DRX - MySQL 5 Virtual Server


  • Check Point Connectra NGX R61
  • Mitea MailDefender v3 "Ipanto StartPack

  • SmoothWall
  • IPCop for ESX 2.5
  • StillSecure Strata Guard
  • Network Security Toolkit
  • StillSecure Strata Guard


  • Exchange 2007
  • Zimbra Collaboration Suite 4.0
  • Collaboration2
  • Open-Xchange Server

Application Server

  • Sun Java System Application
  • Server Platform Edition 8.2
  • OBS Virtual Application Server


  • Project-open
  • WITB Terp


  • SugarCRM
  • vTiger CRM

Content Management

  • Media Wiki
  • PDF Server


The idea of standardizing the virtualization platform is to enable
virtualization interoperability. That is, it would be possible, for a system

created under (say) MS Virtual Server to be imported into or directly used in a

VMware deployment.

Like Steve Herrod, VP Technology Development at VMware says on his blog, “For

virtual appliances to achieve their full potential, openness in virtual

machine-related interfaces is critical. The real promise is 'any software on

any virtualization layer.' ” This can be achieved only if there are

standards that describe the machine's disk image format, how it communicates

with the virtualization layer and licensing of the systems including its



Also, operating systems and software should detect that they are running

within a virtualization layer and accordingly adjust their resource demands,

utilization and performance. One approach is to modify the kernel when installed

within a virtual machine.

This technology is currently under hot debate, since it touches upon the area

of licensing. Currently, some operating systems run better under particular

virtualization environments, and there is no real equality in 'cross platform'

performance. In data center deployments, IT managers might want their existing

management software to recognize and leverage the capabilities of virtual

appliances that have been deployed. There is an industry initiated movement for

this to happen under the DMTF (Distributed Management Task Force) called the

SVPC (System Virtualization Provisioning and Clustering).


One of the biggest drawbacks of using VM based deployments on x86 hardware is
scarcity of support for 64-bit and multi-core or multi-CPU guest systems. For

instance, even if one has a 64-bit server as the host machine, the guests you

create will all be 32-bit. And, on multi processor/core systems a guest can see

and use only one core!


Another key issue is licensing of host and guest software and this includes

the OS. Experts feel that Windows as a platform for virtualization is being left

out, primarily because of Microsoft's stand on virtualization related


Windows Vista ships with a micro-version of Virtual PC called Virtual PC

Express. This lets you run just a single VM and Microsoft licenses you to run

two copies of Vista-one as host and another within VPC Express as guest. But

when you upgrade to the full VPC and run more than one Windows guest, you need

separate Windows licenses for each VM. This affects users of Vista Enterprise or

Vista Ultimate.

Incidentally, those are available only to enterprise or MSDN subscribers

subscribing to Volume Licensing or Enterprise licensing. One needs to use kits

like the WAIK (Windows Automated Installation Kit) that OEMs and system

administrators use to mass deploy OSes to create virtual appliances with Windows

as the guest OS. This is because one cannot install the OS without entering the

product key during the installation phase. As a result, Open Source platforms

like Linux are gaining in terms of appliance availability.

Virtual Appliances Available on PCQ Xtreme DVD

Condor: This appliance lets you manage batch jobs such as scientific and financial computation Music Player: This appliance lets you remotely play music from a server. Everything is controlled through a Web browser 
ComputeMode Grid Manager: Use this to transform your existing PC into cluster nodes. It's basically a lightweight cluster server Bugzilla: Needs no explanation for developers. For others it is an Open Source bug tracking software available as an appliance
Reflection: Create bootable VMware based disk images of your running Windows servers with this appliance. These can then be used for backup and disaster recovery. The process is called Virtual Disk Imaging Nostalgia: Prince of Persia needs no introduction. It was one of the most popular DOS based games of its time. The Nostalgia appliance includes 9 such games that you can play when you need a break from your work
Browser appliance: If you're afraid of security threats entering your PC when you browse the Internet, then use this Firefox appliance. Surf the Internet in an isolated environment

Hosting a Virtual Appliance

Till the time a common standard emerges for virtual appliances, which will

allow any virtual machine to work on any virtualization platform, you'll have

to know how to configure various virtualization environments to run virtual

appliances. In this article, we'll tell you about hosting virtual appliances

on VMware, MS Virtual Server and Xen. There are tons of virtual appliances

available online and you can choose the one according to your needs. We've

even given lots of them on this month's PCQXtreme DVD.


You need the following to run virtual appliances:

1. The right hardware: As we're talking about x86 architecture based

virtual appliances, you'll need an x86 server or servers, depending upon how

many virtual appliances you plan to deploy. Every virtual appliance has a basic

set of hardware requirements to run. These inlcude a certain amount of CPU

power, RAM, and storage space. Being a virtualized environment, you'll be

running multiple virtual appliances on a single server. So you have to sum up

the hardware requirements of all the virtual appliances and ensure that your

server has the resultant hardware specs. Plus of course, you have to keep some

of the hardware resources free for the base OS as well. For storage, you need

the requisite shared storage on the network, such as a NAS or a SAN.

On the VMware interface you can create a new machine, which will be further bundled into a virtual appliance 

2. The right operating system: This really depends upon which

virtualization software you plan to install. Currently, there are either Windows

or Linux based virtual appliances. These in turn depend upon which

virtualization platform is supported by the virtual appliance that you plan to


3. The virtualization software: Like we said earlier, there are lots

of virtualization software that are available, ranging from those for the

desktop to those that can install on servers and even those that can handle a

complete data center. At the desktop, you have what's called VMware

Workstation (this is recommended only for testing and demos and not production

purposes) and Player, Microsoft's Virtual PC, and Xen. At the server level,

you have VMware's Server, which is again a free product, Microsoft Virtual

Server, and Xen 3.0. At the data center level, there's currently VMware

Infrastructure 3, which we reviewed in October last year. VMware Player can also

be used to run server class virtual appliances as well, although that's not

really recommended because it's only a product meant for testing and doing

demonstrations of

a virtual appliance. It can't be used for production class environment. Many
of them are in this month's DVD.

Hosting on VMware

We already mentioned all the virtualization products that are available from
VMware. If you'd just like to get a taste of virtual appliances and how they

work, then first try it out on VMware Player. This is available for both Linux

and Windows. You can download it from

download/player. We've also given it on this month's DVD. Install and run

the player and simply open a virtual appliance in it. Virtual appliances for the

Player are available either as VMX or VMC files. The player provides a 'Save

state' option. In this, if you close the player at any time, it will save the

virtual machine in its current state, and on restarting, it will start the

virtual machine from where you left. You don't have to worry about shutting

down the appliance properly. Once you're fully satisfied that your virtual

appliance is running fine, you can switchover to a commercial offering like the

VMware Infrastructure 3 or GSX Server.

Microsoft recently introduced virtual appliances for Exchange Server 2007, SQL Server 2005, etc that runs on Virtual Server 2005. These are time limited trials 

Hosting a virtual appliance on MS Virtual Server 2005

Microsoft also entered the virtual appliance race. At the time of writing this
article, Microsoft had virtual appliances for four of its products. These

include a combo of Microsoft Exchange 2007 and Live Communications Server; SQL

Server 2005 Enterprise Edition, Windows Server 2003 R2, and Internet Security

and Acceleration Server 2006. These are all evaluation copies, which will expire

after sometime, and can be downloaded from

There's also an Internet Explorer 6 Application Compatibility VPC image. You

can either run these images on Microsoft Virtual Server 2005 which is freely

downloadable from; or you can import them to VMware

Server and run them from there. Let's see how to do each. We downloaded

Microsoft Exchange 2007 virtual appliance. The appliance is divided into three

zip files, two are 700 MB each, and one is 8 MB. One of these has an .exe

extension. Run it and it will extract the entire VPC image from all the files.

To run it on Virtual Server 2005, just follow these steps:

  1. Go to C:\Documents and Settings\All Users\Documents\Shared Virtual

    Machines\ and create a folder named “Exchange 2007” and copy the three

    extracted files here.
  2. Go to Virtual Server 2005's web-based management console and click on

    Add Link given under the Virtual Machines section. This will open a new page

    for adding new virtual machines. Here click on “know Configuration files”

    and select the Exchange 2007 appliance VMC file (a configuration file of the

    virtual machine).
  3. On the same page, come to the 'fully qualified path to file' text box

    and give the path of the virtual appliance's image. E.g. “C:\Documents

    and Settings\AllUsers\Documents\Shared Virtual Machines\MS Exchange2007

Configuring the Exchange Appliance. The appliance works the same way as the application. All settings are saved and retained even if you change the virtualization host

Finally click the add button. With this your Exchange Server 2007 with Live

Communication Server is ready too run. Just click on the Master Status link on

the Virtual Server's web page and you will find the new Exchange 2007 in the

list. Select the server and turn it on. You can access it remotely by installing

a client called Virtual Server 2005 client, which comes bundled with the Virtual

Server itself.

Before you can access the Exchange Server, you need to change its network

settings so that it becomes accessible on your network. To do this, you need to

go to the network properties of the virtual machine and give it a suitable IP

address and gateway. Now, just access the Exchange Server 2007 remotely. As it's

running on Windows Server 2003 R2, you can access it from Start>Program

Files>Microsoft Exchange 2007>Exchange Management Console. Outlook Web

Access is ready for access (http://virtual Appliance_IP/owa) out of the box for

the Admin


The username and password for Admin access are given in the readme file,

which would have been extracted when you extracted the downloaded zip files. OWA

has an AJAX based interface. You can configure the server appliance just as you

would configure the real thing.

VPC image on VMware

Suppose you decided that you want to run the Exchange Virtual Appliance on a

VMware server instead of Virtual Server 2005. That's not a problem at all. You

can simply stop the appliance and import it into VMware. This will not affect

all your customizations and settings. To import, open the VMware Sever

Management console and click on the File Import option. Here select the VHD file

and click on the Open button. It will first import the virtual appliance image

into VMware format. During this process, it may appear that the machine has

hung, but don't worry. The import just takes a long time because the Exchange

Server appliance is pretty big. Once imported, you just need to start it by

clicking the Play button.

Wiki Appliance Server running on Xen 3.0. The latest FC6 has Xen built-in, you only need to select it during installation


This runs multiple instances of UNIX flavored OSes inside a Xen virtual kernel.
Incidentally the latest Fedora Core 6 comes with a built-in, pre-configured XEN.

You simply need to select XEN and its required components during the FC6

installation process. Once your machine is ready, just copy the virtual

appliance tarball file to the Linux machine and extract files from it using the

tar —zxvf . After unpacking the ZIP files, go to the

same virtual appliance directory, where they were extracted. Now issue the

following command:

# xm create -c “Virtual appliance name”

In this command, 'virtual appliance name' will be replaced by the Xen

virtual image file (for example 'Va-postgresql' is the name of one such

virtual appliance).

Then you'll get Xen console. The VA's IP address will be printed there.

Using your Web browser, open Virtual Appliance Management console at https://

your_ip address: 8000/.

How to Build your Own Virtual Appliance

To build your own virtual appliance, which includes your applications,

databases and library files per-configured and ready, you need to create an

image of a virtual machine with a stripped down OS and your application, and

port that machine as a virtual appliance. In order to do this, you have two

options. Create an appliance on your virtual machine and then configure the

application and host it as an appliance. Or, you can use ready made tools for

the job. For instance, there's an application called rBuilder that creates one

for you. Here, we discuss both options in detail.

Build it on VMware

To build a virtual appliance for VMware, first get a copy of VMware Workstation
or VMware Server and install it on your machine. Then create a new virtual

machine (VM). Make sure that you configure the memory for the VM and reserve

enough disk space on the virtual disk. Create the VM in its own folder so that

the whole folder can be packaged later. After this, configure the virtual

machine with all the necessary devices that you need in your appliance. Make

sure that you set the network up in a way that is simple for your target users

to deploy. For example, configure the IP address of the virtual network

manually. Then install the guest operating system inside your new VM. We used

Fedora 6 minimum installation with MySQL and Apache. 

Running a virtual appliance from VMware Player is as easy as opening a file

Make sure to check OS licensing and redistribution requirements. Once your OS

is installed on the virtual machine with all the tools inside the new VM, you

need to configure the necessary services and applications required for your

appliance (your custom software, development tools, configuration tools,

documentation, Web servers, etc). We used a Coppermine Web based photo

management application in this virtual application. Then you need to tune your

guest OS and/or the VM. After this create a document of any special requirements

and settings for your virtual appliance and save it to a location where your VM

files (*.vmdk, *.vmx, etc) are saved. If you are using Linux and want to show

the user the appliance's basic settings and other info, you need to put the

text for it in/etc/rc.local file. Make sure that you unmount any installation

media or ISO files and remove any custom network settings (proxy servers, etc),

before 'finalizing' your appliance. 

Finally pack up the folder that contains your VM files. Use ZIP, TAR, and/or

GZIP tool to compress your directory into a single ZIP file. Once you have built

your virtual appliance, you need to test it out on a different machine using

VMware Player, VMware Workstation or VMware Server. With that your virtual

appliance is ready. One thing you don't get in this virtual appliance is an

automatic Web based configuration wizard, which will guide a user through

configuring the application. After all, the real value of a virtual appliance

comes when you can configure everything on it remotely from a web browser.

rBuilder lets you create your own virtual appliance. It automatically creates a Web front end for your application

Build it on rBuilder

This is an online application that allows you to build a virtual appliance in
three easy steps. The beauty of the process is that you don't have to bother

about the guest OS. It uses its own stripped down version of Linux (rlinux). All

you need to do is select the application that you want to add to the virtual

appliance. Finally, build the appliance in the form of ISO, VMware Image, Live

CD, etc. Let's see how to do it. Open a Web browser and go to

Here you will get a link for building virtual appliances online. Click on this

link and you will be asked for a user name and password. Authenticate yourself

on the site and you'll get a wizard to build a virtual appliance.

In the first setup you have to create a new group for your project. This

group will signify the name for your software appliance. From your project's

home page, click on Group Builder and complete the Web form with details of this

group. Then add packages to a group like adding ingredients for your appliance.

Use the Search text box at the top of the rBuilder Web interface to find

packages you want to include, and click 'Add to group' beside a package to

choose it for your appliance.

The 'Group Builder' on the right side of the page will show the packages

you have selected and provide links to use while you build the appliance. After

this click on 'Cook this Group' in Group Builder and you will see that

rBuilder assembles chosen packages in the group. When the group has finished

building the appliance, you are ready to create and manage builds to distribute

as your new software appliance. In order to create the final

distribution, click on 'Create a build' link of your appliance group into a
distributable software appliance. Then click on 'Manage Builds,' choose the

appliance group and a build type such as installable CD/DVD or VMware Player

image, and click on 'Create the new build.' Once the new appliance build is

created, go to 'Manage Releases' link and publish your newly built

appliance, making it available for download. Now you can download the virtual

appliance and use it on VMware, MS Virtual Server or a XEN virtual machine.

Sanjay Majumder and Sujay V Sarma