Instantiate templates in a different datastore

Thanks for the reply! I have three local datastores (backed by different ZFS Pools, but this is underneath OpenNebula) for images - one for templates I download/create, two for actual VMs.

The page you linked I’m familiar with, but unless I’m missing something doesn’t explain how datastores are picked for launching a new VM. Some other threads and docs have sent me to /etc/one/sched.conf where the following should do the trick:

#  DEFAULT_DS_SCHED: Definition of the default storage scheduling algorithm
#    - policy:
#      0 = Packing. Tries to optimize storage usage by selecting the DS with
#          less free space
#      1 = Striping. Tries to optimize I/O by distributing the VMs across
#          datastores.
#      2 = Custom.
#          - rank: Custom arithmetic expression to rank suitable datastores based
#          on their attributes
#      3 = Fixed. Datastores will be ranked according to the PRIORITY attribute
#          found in the Datastore template.

The challenge is my policy is set to 1, which means I should see VMs landing randomly in the three datastores (which wouldn’t work anyway for me) - but doesn’t seem to match what I see (VMs consistently land in the templates datastore).

Do you have any further pointer or idea? Thankyou!