A virtual appliance is the packaging of a software appliance, installed on a virtual machine, into an image. The software appliance is designed to perform optimally on standard servers and virtual machines, and does not require a specialized hardware platform.

Like software appliances, virtual appliances are designed to eliminate the installation, configuration and maintenance costs associated with running complex stacks of software.

Instantiating a Virtual Appliance in Your Cloud

Instantiating a virtual appliance in your cloud requires that its image be made available in the cloud’s image repository. Whether you purchased the virtual appliance, downloaded open source or developed it in-house, your first step is to upload the appliance’s image to the image repository. The appliance should be designed to run on the hypervisor that you use in your cloud, otherwise you may need to convert it in order to run the appliance on the hypervisor.

The virtual appliance’s metadata usually defines the attributes of the required virtual machine, such as “RAM size” and “number of cores.” When instantiating the virtual appliance, you will only need to describe the VM attributes if the metadata is not supplied with the image or if the cloud only supports a limited, pre-defined set of VM types and does not attempt to find a best-match for the metadata.

Virtual Appliance Reliability and Availability

The virtual appliance will most likely need to be configured so that it can deliver the proper functionality. This configuration should be persistent, so it will be necessary to provide some form of reliable storage for the virtual appliance. Your cloud platform will most likely provide a block storage service, which can be used to create a virtual volume for the appliance’s VM.

The virtual appliance is often critical to your operations, so it is necessary to ensure its availability, and there are several ways to do so. The most basic method, restarting the virtual appliance’s VM, should be a part of the cloud infrastructure. To enable this functionality, you will need to specify that the virtual machine should be automatically restarted upon failure. In this case, the virtual machine will be restarted due to one of the following scenarios:

• The hypervisor identifies that the machine has crashed and reports this to the cloud controller.

• The physical host of the VM has encountered a failure that no longer allows the VM to properly operate. One example is if the physical server crashed.

Another example is a hardware failure on the host. In the latter case, virtualized appliances hold an advantage over physical appliances. The cloud virtually replaces the appliance’s hardware by restarting the virtual appliance on a different host.

In certain cases, the cloud will not be able to restart the VM of the appliance. This may occur if the cloud runs out of resources due to the host failure. The cloud should also provide the means to define the priority of this VM in relation to other VMs. If you can define the virtual appliance with a higher priority, the cloud may be able to restart it, even if its resources are exhausted, by shutting off any VMs that have a lower priority.

The time that it takes the cloud infrastructure to restart your appliance’s VM may vary, and it might not be fast enough for your requirements. In such cases, it is recommended to use an appliance that has an application-based method in addition to the cloud’s capability. A router is one example of this type of virtual appliance, but it’s also common to use the one provided as part of your cloud solution.

Routers have their own high availability mechanism in the form of Virtual Router Redundancy Protocol (VRRP). High availability is achieved by setting up several routers and using the VRRP protocol to determine which one will be the active gateway. Combining this with the cloud’s ability to restart a VM ensures that you will not need to take action to restore the level of redundancy that you chose if one of your virtual appliances fails.

If deployed correctly, you can use virtual appliances to leverage integration skills to build ready-to-use systems that work in the cloud with little-to-no setup required. Virtual appliances will allow you to streamline labor intensive processes and offer benefits including simplified deployment and the ability to run applications in isolation.

(About the author: Yael Frank is a system architect at Stratoscale. She has more than 20 years of experience in both enterprise and ISP networking, in addition to working with virtual network solutions. She is currently working on all aspects of cloud-infrastructure solutions.)

Register or login for access to this item and much more

All Information Management content is archived after seven days.

Community members receive:
  • All recent and archived articles
  • Conference offers and updates
  • A full menu of enewsletter options
  • Web seminars, white papers, ebooks

Don't have an account? Register for Free Unlimited Access