NCD – OVF/OVA File Screening
Navisite Cloud Director (NCD) allows you to upload and download vApps between your site and NCD using VMware's OVF Tool.
Individual VMs, vApps, and VM/vApp templates can be uploaded to NCD as Open Virtualization Format (OVF) packages (.ovf) or Open Virtual Appliance (OVA) files (.ova).
vApps and vApp templates can be downloaded from NCD in either .ovf or .ova format. However, individual VMs and VM templates cannot be downloaded from NCD.
This article details methods for pre-screening OVF files to ensure that the resources you are attempting to upload to NCD are compatible with VMware vCloud Director. This article assumes that OVF files to be uploaded to NCD are created from a VMware source.
About OVF Files
OVF is an open standard defining the format for packaging and distributing virtual appliances (i.e., software to be run in virtual machines). The OVF standard is not specific to VMware, nor is it directly associated with any particular hypervisor or processor architecture.The unit of packaging and distribution is the OVF package, in the form of an xml-formatted .ovf file, which may contain one or more virtual systems. Each virtual system can be deployed to a virtual machine. An OVF package structure consists of:
- a descriptor file
- an optional manifest and certificate files
- optional disk images (VMware .vmdk, or other supported disk image file)
- optional resource files (such as ISOs)
sha1 checksum
value for each file contained in the OVF package, excluding the manifest file itself. The OVF file provides a definition for the virtual resources being transferred.In addition, the OVF file compresses the contents of the original vApp.
About OVA Files
An OVA is a single file distribution of the OVF file package, stored in the TAR format.An OVA must be opened into the OVF package format. An OVA-formatted OVF package can be converted back to OVF format by using VMware's OVF Tool as follows:
ovftool package.ova package.ovf
About VMware’s OVF Tool
VMWare's OVF Tool resides on a local PC, and can be used to transfer OVF and OVA files to/from NCD. The OVF Tool must be downloaded from vmware.com, through the use of a vmware.com member login, and installed on the PC to or from which files are to be transferred. See https://www.vmware.com/support/developer/ovf/ for more information on downloading and installing the OVF Tool in your environment.Important: Navisite recommends a size limit of 75 GB for OVF/OVA file transfers using the OVF Tool.
The size of the file transfer has a direct inverse correlation to the latency of the datacenter to which the file is being transferred. A lower latency allows larger transfers. If you experience errors during transfer using the OVF Tool, and the time of the operation exceeds 24 hours, consider using VMware Web Tools, or contact support for an alternate method of file transfer.
Examining an OVF File
An example of a typical OVF file can be found at the end of this article. This article focuses on the sections of the OVF defining the hardware configuration of the VMs included within the OVF definition, in order to ensure that the VMs defined in the OVF are compatible with NCD.OVF File Summary
A summary of an OVF file's contents can be obtained by performing an OVF file probe operation using the OVF Tool. The command and resulting output are as follows:OVF Tool Command
ovftool [Example_OVF_File_Name].ovf
ORovftool [Example_OVA_File_Name].ova
Example Output
OVF version: 1.0 VirtualApp: true Name: OvaOvfOrtTestingGrounds
Download Size: 6.52 GB
Deployment Sizes: Flat disks: 50.00 GB Sparse disks: 14.76 GB
Networks: Name: SantaClara01 Default vDC Net Fence Mode: bridged
Virtual Machines: Name: WinServe08ER264_test Operating System: windows7server64guest Virtual Hardware: Families: vmx-10 Number of CPUs: 6 Cores per socket: 3 Memory: 4.00 GB
Disks: Index: 0 Instance ID: 2000 Capacity: 50.00 GB Disk Types: SCSI-lsilogic
NICs: Adapter Type: E1000 Connection: SantaClara01 Default vDC Net
OVF File Contents
Theovf:system
portion of an OVF file defines the virtual hardware family and VM hardware characteristics, contained within the <ovf:System>
tag.The system definition is followed in the OVF file by a series of
<ovf:Item>
sections, each of which defines a hardware component associated with the VM.ovf:System
The following is an example of a typical
ovf:System
configuration item:<ovf:System> <vssd:ElementName>Virtual Hardware Family</vssd:ElementName> <vssd:InstanceID>0</vssd:InstanceID> <vssd:VirtualSystemIdentifier>WinServe08ER264_TEST</vssd:VirtualSystemIdentifier> <vssd:VirtualSystemType>vmx-10</vssd:VirtualSystemType> </ovf:System>
For NCD compatibility, it is recommended that the highlighted
<vssd:VirtualSystemType>
value within the ovf:System
configuration item be set to either vmx-09
or vmx-10
, though it may also be set to vmx-04
, vmx-07
, or vmx-08
. Network Adapter
<ovf:item>
The following is an example of a typical
ovf:item
configuration for a VM Network Interface Adapter (or vNIC):<ovf:Item> <rasd:AddressOnParent>0</rasd:AddressOnParent> <rasd:AutomaticAllocation>true</rasd:AutomaticAllocation> <rasd:Connection vcloud:ipAddress="10.10.3.5" vcloud:ipAddressingMode="POOL" vcloud:primaryNetworkConnection="true">SantaClara Net</rasd:Connection> <rasd:Description>E1000 ethernet adapter</rasd:Description> <rasd:ElementName>Network adapter 0</rasd:ElementName> <rasd:InstanceID>1</rasd:InstanceID> <rasd:ResourceSubType>E1000</rasd:ResourceSubType> <rasd:ResourceType>10</rasd:ResourceType> <vmw:Config ovf:required="false" vmw:key="slotInfo.pciSlotNumber" vmw:value="32"/> <vmw:Config ovf:required="false" vmw:key="wakeOnLanEnabled" vmw:value="true"/> </ovf:Item>
For NCD network adapter compatibility, it is recommended that the highlighted
<rasd:ResourceSubType>
value be set to either E1000
or VMXNET3
. Also note:
- The
VMXNET3
network adapter type requires that the host VM has a current version of VMware tools installed. VMXNET3
is the recommended network adapter type for all Windows 2012 VMs in NCD.- The
PCNet32
network adapter type results in a displayed NIC type of "vlance" in NCD and "Flexible" in vCloud Director. - Other network adapter types include:
VMXNET
,VMXNET2
,PCNet32
, andE1000E
, but these adapter types are not recommended for use in NCD.
Disk Controller
<ovf:item>
The following is an example of a typical
ovf:item
configuration for a VM Disk Controller:<ovf:Item> <rasd:Address>0</rasd:Address> <rasd:Description>SCSI Controller</rasd:Description> <rasd:ElementName>SCSI Controller 0</rasd:ElementName> <rasd:InstanceID>2</rasd:InstanceID> <rasd:ResourceSubType>lsilogic</rasd:ResourceSubType> <rasd:ResourceType>6</rasd:ResourceType> <vmw:Config ovf:required="false" vmw:key="slotInfo.pciSlotNumber" vmw:value="16"/> </ovf:Item>
For NCD VM disk controller compatibility, the highlighted
<rasd:ResourceType>
and <rasd:ResourceSubType>
values are used together to define a disk controller type, and a more specific disk controller sub type.The combinations of
<rasd:ResourceType>
and <rasd:ResourceSubType>
values that are compatible with NCD are detailed in the following table:Resource Type | Resource Type Description | Resource Sub Type | Resource Sub Type Description |
---|---|---|---|
6 | SCSI Controller | lsilogic | LSI Logical Parallel (SCSI) |
6 | SCSI Controller | lsilogicsas | LSI Logical SAS (SCSI) |
6 | SCSI Controller | VirtualSCSI | Paravirtual (SCSI) |
5 | IDE Controller | N/A | The sub type field should not be included in OVF for IDE Controllers |
Other Items
An OVF file created from a VMware source may also contain any of the following items:
- USB Controller
- Serial Interface
- Sound Card
- Video Card
- Virtual Machine Communication Interface (VMCI)
These items can also be manually removed from the OVF file before uploading it to NCD, if desired.
Modifying OVF File Contents
There are two ways to modify an OVF file:- Altering the hardware configuration of any VMs contained in the OVF in their host environments, and then re-exporting the VMs to an OVF file before uploading it to NCD.
- Manually editing the contents of the OVF file based on the guidance provided in this article.
- delete the manifest (.mf) file from the OVF file package to avoid the OVF Tool's checksum integrity checks associated with .mf files.
- recalculate the sha1 checksum of the OVF file, and then manually update the manifest file to add the newly calculated checksum.
OR
Example OVF File
<?xml version="1.0" encoding="UTF-8"?>
<!--Generated by VMware ovftool 4.1.0 (build-2459827), UTC time: 2016-06-06T18:07:13.706188Z-->
<ovf:Envelope vmw:buildId="build-2459827" xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1"
xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData"
xmlns:vcloud="http://www.vmware.com/vcloud/v1.5" xmlns:vmw="http://www.vmware.com/schema/ovf"
xmlns:vssd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=
"http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData
http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2.22.0/CIM_VirtualSystemSettingData.xsd
http://www.vmware.com/schema/ovf http://www.vmware.com/schema/ovf http://schemas.dmtf.org/ovf/envelope/1
http://schemas.dmtf.org/ovf/envelope/1/dsp8023_1.1.0.xsd http://www.vmware.com/vcloud/v1.5
http://172.24.5.4/api/v1.5/schema/master.xsd
http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData
http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2.22.0/CIM_ResourceAllocationSettingData.xsd">
<ovf:References>
<ovf:File ovf:href="upside-disk1.vmdk" ovf:id="file-937ddc9d-6a9d-
4855-ac51-39d265926ec1-2000" ovf:size="7000527360"/>
</ovf:References>
<ovf:DiskSection>
<ovf:Info>Virtual disk information</ovf:Info>
<ovf:Disk ovf:capacity="50" ovf:capacityAllocationUnits="byte * 2^30"
ovf:diskId="vmdisk-937ddc9d-6a9d-4855-ac51-39d265926ec1-2000"
ovf:fileRef="file-937ddc9d-6a9d-4855-ac51-39d265926ec1-2000"
ovf:format="http://www.vmware.com/interfaces/specifications/vmdk.html
#streamOptimized" ovf:populatedSize="15852765184"/>
</ovf:DiskSection>
<ovf:NetworkSection>
<ovf:Info>The list of logical networks</ovf:Info>
<ovf:Network ovf:name="SantaClara01 Default vDC Net">
<ovf:Description/>
</ovf:Network>
</ovf:NetworkSection>
<vcloud:NetworkConfigSection ovf:required="false">
<ovf:Info>The configuration parameters for logical
networks</ovf:Info>
<vcloud:NetworkConfig networkName="SantaClara01 Default vDC Net">
<vcloud:Description/>
<vcloud:Configuration>
<vcloud:IpScopes>
<vcloud:IpScope>
<vcloud:IsInherited>true</vcloud:IsInherited>
<vcloud:Gateway>10.10.3.1</vcloud:Gateway>
<vcloud:Netmask>255.255.255.0</vcloud:Netmask>
<vcloud:Dns1>8.8.8.8</vcloud:Dns1>
<vcloud:Dns2>8.8.4.4</vcloud:Dns2>
<vcloud:IsEnabled>true</vcloud:IsEnabled>
<vcloud:IpRanges>
<vcloud:IpRange>
<vcloud:StartAddress>10.10.3.2</vcloud:StartAddress>
<vcloud:EndAddress>10.10.3.150</vcloud:EndAddress>
</vcloud:IpRange>
</vcloud:IpRanges>
</vcloud:IpScope>
</vcloud:IpScopes>
<vcloud:ParentNetwork href="" name="SantaClara01 Default
vDC Net"/>
<vcloud:FenceMode>bridged</vcloud:FenceMode>
<vcloud:RetainNetInfoAcrossDeployments>false
</vcloud:RetainNetInfoAcrossDeployments>
</vcloud:Configuration>
<vcloud:IsDeployed>false</vcloud:IsDeployed>
</vcloud:NetworkConfig>
</vcloud:NetworkConfigSection>
<ovf:VirtualSystemCollection ovf:id="OvaOvfOrtTestingGrounds">
<ovf:Info>A collection of virtual machines</ovf:Info>
<ovf:Name>OvaOvfOrtTestingGrounds</ovf:Name>
<ovf:StartupSection>
<ovf:Info>VApp startup section</ovf:Info>
<ovf:Item ovf:id="WinServe08ER264_KISS" ovf:order="0"
ovf:startAction="powerOn" ovf:startDelay="0"
ovf:stopAction="powerOff" ovf:stopDelay="0"/>
</ovf:StartupSection>
<ovf:VirtualSystem ovf:id="WinServe08ER264_KISS">
<ovf:Info>A virtual machine</ovf:Info>
<ovf:Name>WinServe08ER264_KISS</ovf:Name>
<ovf:OperatingSystemSection ovf:id="102"
vmw:osType="windows7Server64Guest">
<ovf:Info>Specifies the operating system installed</ovf:Info>
<ovf:Description>Microsoft Windows Server 2008 R2
(64-bit)</ovf:Description>
</ovf:OperatingSystemSection>
<ovf:VirtualHardwareSection ovf:transport="">
<ovf:Info>Virtual hardware requirements</ovf:Info>
<ovf:System>
<vssd:ElementName>Virtual Hardware
Family</vssd:ElementName>
<vssd:InstanceID>0</vssd:InstanceID>
<vssd:VirtualSystemIdentifier>WinServe08ER264_KISS
</vssd:VirtualSystemIdentifier>
<vssd:VirtualSystemType>vmx-09</vssd:VirtualSystemType>
</ovf:System>
<ovf:Item>
<rasd:AddressOnParent>0</rasd:AddressOnParent>
<rasd:AutomaticAllocation>true</rasd:AutomaticAllocation>
<rasd:Connection vcloud:ipAddress="10.10.3.5"
vcloud:ipAddressingMode="POOL"
vcloud:primaryNetworkConnection="true">
SantaClara01 Default vDC Net</rasd:Connection>
<rasd:Description>E1000 ethernet adapter on
"SantaClara01 Default vDC Net"
</rasd:Description>
<rasd:ElementName>Network adapter 0</rasd:ElementName>
<rasd:InstanceID>1</rasd:InstanceID>
<rasd:ResourceSubType>E1000</rasd:ResourceSubType>
<rasd:ResourceType>10</rasd:ResourceType>
<vmw:Config ovf:required="false"
vmw:key="slotInfo.pciSlotNumber" vmw:value="32"/>
<vmw:Config ovf:required="false"
vmw:key="wakeOnLanEnabled" vmw:value="true"/>
</ovf:Item>
<ovf:Item>
<rasd:Address>0</rasd:Address>
<rasd:Description>SCSI Controller</rasd:Description>
<rasd:ElementName>SCSI Controller 0</rasd:ElementName>
<rasd:InstanceID>2</rasd:InstanceID>
<rasd:ResourceSubType>lsilogic</rasd:ResourceSubType>
<rasd:ResourceType>6</rasd:ResourceType>
<vmw:Config ovf:required="false"
vmw:key="slotInfo.pciSlotNumber" vmw:value="16"/>
</ovf:Item>
<ovf:Item>
<rasd:AddressOnParent>0</rasd:AddressOnParent>
<rasd:Description>Hard disk</rasd:Description>
<rasd:ElementName>Hard disk 1</rasd:ElementName>
<rasd:HostResource>ovf:/disk/vmdisk-937ddc9d-6a9d-4855-
ac51-39d265926ec1-2000</rasd:HostResource>
<rasd:InstanceID>2000</rasd:InstanceID>
<rasd:Parent>2</rasd:Parent>
<rasd:ResourceType>17</rasd:ResourceType>
<vmw:Config ovf:required="false"
vmw:key="backing.writeThrough" vmw:value="false"/>
</ovf:Item>
<ovf:Item>
<rasd:Address>1</rasd:Address>
<rasd:Description>IDE Controller</rasd:Description>
<rasd:ElementName>IDE Controller 1</rasd:ElementName>
<rasd:InstanceID>3</rasd:InstanceID>
<rasd:ResourceType>5</rasd:ResourceType>
</ovf:Item>
<ovf:Item>
<rasd:AddressOnParent>0</rasd:AddressOnParent>
<rasd:AutomaticAllocation>false
</rasd:AutomaticAllocation>
<rasd:Description>Floppy Drive</rasd:Description>
<rasd:ElementName>Floppy Drive 1</rasd:ElementName>
<rasd:HostResource/>
<rasd:InstanceID>8000</rasd:InstanceID>
<rasd:ResourceType>14</rasd:ResourceType>
</ovf:Item>
<ovf:Item>
<rasd:AllocationUnits>hertz * 10^6</rasd:AllocationUnits>
<rasd:Description>Number of Virtual CPUs
</rasd:Description>
<rasd:ElementName>6 virtual CPU(s), 3 Sockets,
2 CPU cores per socket</rasd:ElementName>
<rasd:InstanceID>4</rasd:InstanceID>
<rasd:Limit>8000</rasd:Limit>
<rasd:Reservation>0</rasd:Reservation>
<rasd:ResourceType>3</rasd:ResourceType>
<rasd:VirtualQuantity>6</rasd:VirtualQuantity>
<rasd:Weight>2000</rasd:Weight>
<vmw:CoresPerSocket ovf:required="false">3</vmw:CoresPerSocket>
</ovf:Item>
<ovf:Item>
<rasd:AllocationUnits>byte * 2^20</rasd:AllocationUnits>
<rasd:Description>Memory Size</rasd:Description>
<rasd:ElementName>4096 MB of memory</rasd:ElementName>
<rasd:InstanceID>5</rasd:InstanceID>
<rasd:Limit>4096</rasd:Limit>
<rasd:Reservation>0</rasd:Reservation>
<rasd:ResourceType>4</rasd:ResourceType>
<rasd:VirtualQuantity>4096</rasd:VirtualQuantity>
<rasd:Weight>40960</rasd:Weight>
</ovf:Item>
<ovf:Item>
<rasd:Address>1</rasd:Address>
<rasd:Description>IDE Controller</rasd:Description>
<rasd:ElementName>IDE 1</rasd:ElementName>
<rasd:InstanceID>100</rasd:InstanceID>
<rasd:ResourceType>5</rasd:ResourceType>
</ovf:Item>
<ovf:Item>
<rasd:AddressOnParent>0</rasd:AddressOnParent>
<rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>
<rasd:Description>CD/DVD Drive</rasd:Description>
<rasd:ElementName>CD/DVD Drive 1</rasd:ElementName>
<rasd:HostResource/>
<rasd:InstanceID>3002</rasd:InstanceID>
<rasd:Parent>100</rasd:Parent>
<rasd:ResourceType>15</rasd:ResourceType>
</ovf:Item>
<ovf:Item>
<rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>
<rasd:ElementName>Video card</rasd:ElementName>
<rasd:InstanceID>6</rasd:InstanceID>
<rasd:ResourceType>24</rasd:ResourceType>
<vmw:Config ovf:required="false"
vmw:key="enable3DSupport" vmw:value="false" />
<vmw:Config ovf:required="false" vmw:key="use3dRenderer"
vmw:value="automatic" />
<vmw:Config ovf:required="false" vmw:key="useAutoDetect"
vmw:value="false" />
<vmw:Config ovf:required="false"
vmw:key="videoRamSizeInKB" vmw:value="16384" />
</ovf:Item>
<vmw:Config ovf:required="false" vmw:key="cpuHotAddEnabled"
vmw:value="true"/>
<vmw:Config ovf:required="false"
vmw:key="cpuHotRemoveEnabled" vmw:value="false"/>
<vmw:Config ovf:required="false" vmw:key="firmware"
vmw:value="bios"/>
<vmw:Config ovf:required="false"
vmw:key="virtualICH7MPresent" vmw:value="false"/>
<vmw:Config ovf:required="false" vmw:key="virtualSMCPresent"
vmw:value="false"/>
<vmw:Config ovf:required="false"
vmw:key="memoryHotAddEnabled" vmw:value="true"/>
<vmw:Config ovf:required="false" vmw:key="nestedHVEnabled"
vmw:value="false"/>
<vmw:Config ovf:required="false"
vmw:key="powerOpInfo.powerOffType" vmw:value="soft"/>
<vmw:Config ovf:required="false"
vmw:key="powerOpInfo.resetType" vmw:value="soft"/>
<vmw:Config ovf:required="false"
vmw:key="powerOpInfo.standbyAction" vmw:value="checkpoint"/>
<vmw:Config ovf:required="false"
vmw:key="powerOpInfo.suspendType" vmw:value="hard"/>
<vmw:Config ovf:required="false" vmw:key="tools.afterPowerOn"
vmw:value="true"/>
<vmw:Config ovf:required="false" vmw:key="tools.afterResume"
vmw:value="true"/>
<vmw:Config ovf:required="false"
vmw:key="tools.beforeGuestShutdown" vmw:value="true"/>
<vmw:Config ovf:required="false"
vmw:key="tools.beforeGuestStandby" vmw:value="true"/>
<vmw:Config ovf:required="false"
vmw:key="tools.syncTimeWithHost" vmw:value="false"/>
<vmw:Config ovf:required="false"
vmw:key="tools.toolsUpgradePolicy" vmw:value="manual"/>
</ovf:VirtualHardwareSection>
<vcloud:GuestCustomizationSection ovf:required="false">
<ovf:Info>Specifies Guest OS Customization
Settings</ovf:Info>
<vcloud:Enabled>true</vcloud:Enabled>
<vcloud:ChangeSid>false</vcloud:ChangeSid>
<vcloud:VirtualMachineId>937ddc9d-6a9d-4855-ac51-
39d265926ec1</vcloud:VirtualMachineId>
<vcloud:JoinDomainEnabled>false</vcloud:JoinDomainEnabled>
<vcloud:UseOrgSettings>false</vcloud:UseOrgSettings>
<vcloud:AdminPasswordEnabled>false</vcloud:AdminPasswordEnabled>
<vcloud:AdminPasswordAuto>true</vcloud:AdminPasswordAuto>
<vcloud:ResetPasswordRequired>false</vcloud:ResetPasswordRequired>
<vcloud:ComputerName>compname</vcloud:ComputerName>
</vcloud:GuestCustomizationSection>
</ovf:VirtualSystem>
</ovf:VirtualSystemCollection>
</ovf:Envelope>