Bug Reference

CLOUDSTACK-4757

Introduction

CloudStack templates in case of VMware are in OVA format. OVA is an archive that can contains a complete VM including multiple VMDKs/disks and other files such as ISOs.

Current scenario

CloudStack only supports template creation based on OVA files containing a single disk.

If Admin/User registers a template using OVA containing more than 1 disk and launches an instance using this template

Purpose

The current behavior needs to be improved to support OVA files with multiple disks

In case of an instance launched from a template that is a OVA containing more than 1 disk - 

Architecture and Design description

Changes in the existing code flow

Once started, VM will contain ROOT disk, disks requested by the user in the deployVM API and additional disks contained in the template OVA.

For the additional disks present in the OVA we first create them in storage and then create an entry for them in DB

Traditionally in CloudStack, for any resource entity we first make a DB entry and then create the resource. But with the proposed workflow CS will

Reason for the above design choice - 

But today in CloudStack, we lack the capability to understand i.e. parse and manipulate OVA format. And hence offloading the import job to vCenter and using the results (information about additional disks) provided by vCenter will be simpler and reliable.

Limitations

API/UI/DB Schema

No changes

Upgrade scenario

In a setup that has been upgraded to 4.4 any new VM that is deployed from a template with multiple disks will have multiple volumes attached to it.