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?
You can have different disks of different datastores in a virtual machine, the only exception is that each disk must share the same type of TM_MAD for its IMAGE and SYSTEM datastore.
So, let’s assume the following. You have a VM with this configuration:
A first disk coming from an SSH IMAGE datastore.
A second disk coming from an LVM IMAGE datastore.
For both cases, on the host where you are going to deploy the VM, you need to have configured an SSH SYSTEM datastore and an LVM SYSTEM datastore. Otherwise, it will not work properly. Note also that using different datastores within the same virtual machine greatly limits the operations to be performed on it. In this case for example, even if you have a disk in an LVM SYSTEM datastore, you will not be able to migrate the machine in case of Host error because the other disk in the SSH SYSTEM datastore will not allow it.
You can read more about the differences between SYSTEM and IMAGE datastore here.