Image Datastore does not support transfer mode: ssh

Hi,
please help to solve following error:
Image Datastore does not support transfer mode: ssh

Details:
OS = Debian 9.8
I use LVM on top of software RAID1 (mdadm).
Installed OpenNebula 5.8.0, also installed node on the same server, so I have single server: front-end + node.
Created new data store, backend = Filesystem - qcow2 mode
Data store attributes are OK (DRIVER=qcow2, TM_MAD=qcow2).
Created empty image in this data store, assigned this image to VM template.
After template instantiation VM stuck in PENDING forever.
File /var/log/one/sched.log shows:
Error deploying virtual machine 36 to HID: 0. Reason: [one.vm.deploy] Image Datastore does not support transfer mode: ssh

Other data stores do not contains this error.
Strange that transfer mode for this data store is qcow2, but error is about ssh.

Could you please point me to the right direction how to solve that?
Thanks.

Hello, you should use TM_MAD=ssh
Here is my config ssh image datastore

ID             : 1                   
NAME           : ImDS
USER           : oneadmin            
GROUP          : oneadmin            
CLUSTERS       : 100,101,102,103,104 
TYPE           : IMAGE               
DS_MAD         : fs                  
TM_MAD         : ssh                 
BASE PATH      : /var/lib/one//datastores/1
DISK_TYPE      : FILE                
STATE          : READY

The point is to use exactly qcow2 data store to avoid image copying.

OpenNebula 5.6.1 config:
ID : 100
NAME : img-qcow2
USER : oneadmin
GROUP : oneadmin
CLUSTERS : 0
TYPE : IMAGE
DS_MAD : fs
TM_MAD : qcow2
BASE PATH : /var/lib/one//datastores/100
DISK_TYPE : FILE
STATE : READY

OpenNebula 5.8.0 config:
ID : 108
NAME : img-qcow2
USER : oneadmin
GROUP : oneadmin
CLUSTERS : 0
TYPE : IMAGE
DS_MAD : fs
TM_MAD : qcow2
BASE PATH : /var/lib/one//datastores/108
DISK_TYPE : FILE
STATE : READY

There is no difference of both configs. But during image instantiation:
5.6.1 - no problems
5.8.0 - error

Could you please post qcow2 data store config? If you have such DS.

Have accidentally found the way how to solve that:

  1. Create qcow2 storage
  2. Change TM_MAD from qcow2 to shared -> extra attributes related to ssh will be added.
  3. Change TM_MAD back to qcow2

This sequence will create following attributes:
CLONE_TARGET_SSH = SYSTEM
DISK_TYPE_SSH = FILE
LN_TARGET_SSH = SYSTEM
TM_MAD_SYSTEM = ssh

Exactly same approach should be made when creating storage for ‘Raw Device Mapping’ (for other storage backends probably too).
Described issues reproduced on testing system also.
Could be that 5.8.0 version contains bug related to storage (some default values are not set). Would be nice that support could add their comments regarding that.

Thanks for your feedback. Since 5.8 TM_MAD includes a list of compatible system datastores. This enables the use of different transfer modes using the same image datastore.

shared is compatible with system datastore of type shared and ssh. However qcow2 is not. Although it can work with it, we are missing the following options in oned.conf:

TM_MAD_CONF = [                                                                  
    NAME = "qcow2", LN_TARGET = "NONE", CLONE_TARGET = "SYSTEM", SHARED = "YES", 
    DRIVER = "qcow2",   DS_MIGRATE = "YES", TM_MAD_SYSTEM = "ssh", 
    LN_TARGET_SSH = "SYSTEM",  CLONE_TARGET_SSH = "SYSTEM", 
    DISK_TYPE_SSH = "FILE"   

We’ll update the configuration file and add a note in the documentation. Thanks again!