How Abiquo uses OVF
Abiquo uses OVF externally and internally:
- Externally, because it's the packaging format used to distribute solutions based on Virtual Images. A Virtual Appliance packaged using OVF 1.0 standard can be deployed in Abiquo if stored in a Virtual Appliances Repository.
- Internally, because the internal model of Abiquo is based on how OVF describes the different components of a Virtual Appliance. So, Abiquo is a OVF based solution from the early beginning.
| OVF everywhere The OVF document format is used during the virtual machine life cycle, server -> virtual factory communication is also based on an OVF document. This document is configured inside a virtual appliance and contains additional Abiquo sections (OVF extensions) to contain configurations for Network, Volume .. |
Creating Virtual Appliance Templates with OVF
This page describes the definition of Virtual Appliances Templates using OVF, templates are base configured virtual appliances to make them available on the cloud infrastructure.
Abiquo uses OVF on the Apps Library, even using the API, see Appliance Library (NFS repository).
An OVF package is composed of:
- The OVF Envelope descriptor document (.ovf) containing the metadata to configure the different components of the Virtual Appliance.
- A set of virtual disks files of the Virtual Appliance. This disks can be in different formats, but streamOptimized is the default distribution format.
Envelope
OVF Description file (.ovf) contains metadata of the virtual appliance template.
Envelope is the root element for this XML document.
The list of sections
These are the mandatory sections:
- References
- DiskSection
- VirtualSystem
- ProductSection (complet description, required by Abiquo)
- VirtualHardwareSection
References
References are used to refer external resources that are used by the Virtual Appliance. Normally Virtual Disks or even icons are considered to be references.
For files, you need to provide three mandatory parameters:
- ovf:href : Reference to the file (relative path from the OVF descriptor document).
- ovf:id : Internal reference used by the OVF. The argument is the identifier used in the OVF descriptor (used on DiskSection).
- ovf:size : Size of the file. Bytes.
DiskSection
| Single Disk Template restriction Currently the Virtual Appliance Template instantiation only take a single physical disk to create the Virtual Machine. You can use Abiquo to attach many other units (as stateful volumes). |
Virtual Disks Definitions used by the Virtual Appliance.
The 'Disk' elements must have these mandatory parameters:
- ovf:diskId : The internal reference used by the 'VirtualSection' to mount the disk.
- ovf:fileRef : The link to the 'Reference' section of the disk file.
- ovf:capacity : The final size of the disk, or the size of the disk obtained from the geometry of the disk. Bytes.
- ovf:CapacityAllocationUnits :, default bytes.
- "KB", "KILOBYTE" or "byte * 2^10".
- "MB", "MEGABYTE" or "byte * 2^20".
- "GB", "GIGABYTE" or "byte * 2^30".
- "TB", "TERABYTE" or "byte * 2^40".
- ovf:format : The format of the Virtual Disk.
| Compatibility table The format is expresed by an URI with the description on how to interpret them. Use one of the list |
VirtualSystem
Describes a template configuration for a Virtual Machine.
| Single VirtualSystem element restriction OVF specify a VirtualSystemCollection element allowing the definition of multiple Virtual Systems on one single Envelope. Use Abiquo to create complex virtual appliances. |
It's composed of several subnodes:
- Name
- Info
- ProductSection
- VirtualHardwareSection
ProductSection
Though this section is purely informative, the nodes store information used to show information to the users:
- Info
- Product
- Vendor
- Version
- ProductUrl
- VendorUrl
Fill in this nodes with the correct information for your Virtual Appliance.
VirtualHardwareSection
Contains all the information about the hardware resources needed to run the Virtual Appliance:
- System
- Item
System
| V2V deprecates this section Abiquo V2V functionality uses the Image compatibility table to determine if the target hypervisor can run the source disk format, the enterprise edition can also convert a Disk from its original source format to that required to be compatible with the target hypervisor. |
| abiquo Abiquo provided OVFs use abiquo as VirtualSystemType. |
This node contains information relevant to the hypervisors to execute the solutions. All the nodes are mandatory:
- vssd:ElementName : Information about the virtual element. Text is not relevant.
- vssd:InstanceID: Value must be zero (0).
- vssd:VirtualSystemIdentifier: equals to the ovf:id of the original VirtualSystem.
- vssd:VirtualSystemType: Hypervisor used to run the Virtual Appliance. Allowed values are:
- virtualbox-2.2
- vmx-4
- xen-3
Resource Allocation Setting Data (RASD)
Specify a unit of resource allocation required on the virtual system.
There will be as many *Item*s as virtual devices needed. Abiquo will use the following virtual devices:
- Virtual CPU
- Virtual Memory
- SCSI Adapter
- SCSI Disk
- Ethernet Adapter 1
- Ethernet Adapter 2
CPU
ResourceType 3
| allocationUnits number of virtual cores provisioned. |
RAM
ResourceType 4
allocationUnits default bytes.
|
Disk Controller
ResourceType 6
| scsi controller Abiquo can work with different SCSI controllers, but to guarantee compatibility among different hypervisors, LSILogic is the best option. Keep these two item nodes as they are to mount the Virtual Disk defined above. |
Disk Device
ResourceType 17
| DiskSection Reference Use HostResource to reference a Disk defined on the DiskSection ovf:/disk/diskId |
Network Adapter
ResourceType 10
| Networ Adapter Abiquo can work with different Ethernet controllers, but to guarantee compatibility among different hypervisors, E1000 is the best option. Keep these two Items as is. Even if you are not going to use more than one Ethernet adapters, configure two. |
NetworkSection
| Not only This is a generic template, any network configuration. Use Abiquo to create complex network configuration. |
Abiquo only permits Bridged-type networks, so the following XML block is mandatatory as is:

