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

VMware’s storage processor during storage preparation for the VM

Orchestration layer after VMware’s storage processor has prepared primary storage for the VM

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

 

 

Traditionally in CloudStack, for any resource entity we first make a DB entry and then create the resource. Then why in this case for Data disks are we not persisting information about the additional data disks in DB before importing the OVA using vCenter (and in the process creating additional disks)?

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.