Multi-tiered local storage for VMs


I’m running OpenNebula 6.4 installed via minione as front-end coupled with two Dell servers running Rocky Linux 8.6 with KVM as hypervisor, installed via the official AlmaLinux OpenNebula repository following the official docs.

I’m trying to deploy a VM using local storage using the ssh transfer driver configuration but would like to place:

  • the OS disk on a slower (hdd) datastore
  • the data disk on a faster (ssd) datastore

On the frontend I’ve created a cluster together with:

  • a datastore for the slow disks
  • another one for the fast disks

On the hypervisors I’ve mounted the slow & fast disks under their respective /var/lib/one/datastores/<ID> paths.

I’ve downloaded the OpenNebula Marketplace Alpine Linux 3.15 image and launched a VM with a single OS disk pointing to the slow datastore.
Upon launch I tried adding a new data disk but found I couldn’t point to another datastore.
Doing the reverse also works i.e., placing the VM on the fast datastore, so I am sure both datastores are working fine.

I’ve tried various scenarios like:

  • specifying both datastores during VM deployment under Deploy VM in a specific Datastore and later trying to attach another disk from the secondary datastore
  • creating a DATABLOCK image in the image datastore and trying to attach it thru the Storage tab of the new VM as Image
  • creating a new volatile image hoping I’ll be able to specify its location

I also searched the forums for information for similar scenarios but couldn’t find anything relevant except for this thread; the path to fixing the issue unfortunately doesn’t match my scenario.

So my question is: is it possible to use OpenNebula-managed KVM hypervisors with Local Storage while splitting the OS and data disks of a VM on different datastores?

Thank you

i have similar problem. I was tried add disk from another DS via pyone and this way is also wrong.