Error deploying virtual machine 13 to HID. Image Datastore does not support transfer mode: ceph

I have 3 local opennebula datastores configured (system, file and image) and other 2 datasets with CEPH as backend. When I try to deploy a VM on the local datastore I get an error: “Error deploying virtual machine 13 to HID: 0. Reason: [one.vm.deploy] Image Datastore does not support transfer mode: ceph”
However the TM in this datastore is configured as ssh. Before adding the CEPH datastore it worked correctly.

The CEPH datastore works correctly.

A

Versions of the related components and OS (frontend, hypervisors, VMs):
opennebula-common-6.10.0-1.el9.noarch
KVM
RHEL 9.5

tail /var/log/one/sched.log
Thu Jan 30 16:08:44 2025 [Z0][VM][E]: Error deploying virtual machine 13 to HID: 0. Reason: [one.vm.deploy] Image Datastore does not support transfer mode: ceph
Thu Jan 30 16:08:59 2025 [Z0][VM][E]: Error deploying virtual machine 13 to HID: 0. Reason: [one.vm.deploy] Image Datastore does not support transfer mode: ceph
Thu Jan 30 16:09:14 2025 [Z0][VM][E]: Error deploying virtual machine 13 to HID: 0. Reason: [one.vm.deploy] Image Datastore does not support transfer mode: ceph
Thu Jan 30 16:09:30 2025 [Z0][VM][E]: Error deploying virtual machine 13 to HID: 0. Reason: [one.vm.deploy] Image Datastore does not support transfer mode: ceph

onedatastore list
ID NAME SIZE AVA CLUSTERS IMAGES TYPE DS TM STAT
101 cephds 56.5T 99% 0 4 img ceph ceph on
100 ceph_system 56.5T 99% 0 0 sys - ceph on
2 files 69.9G 91% 0 0 fil fs ssh on
1 default 69.9G 91% 0 2 img fs ssh on
0 system - - 0 0 sys - ssh on

onedatastore show 1
DATASTORE 1 INFORMATION
ID : 1
NAME : default
USER : oneadmin
GROUP : oneadmin
CLUSTERS : 0
TYPE : IMAGE
DS_MAD : fs
TM_MAD : ssh
BASE PATH : /var/lib/one//datastores/1
DISK_TYPE : FILE
STATE : READY

DATASTORE CAPACITY
TOTAL: : 69.9G
FREE: : 63.4G
USED: : 6.6G
LIMIT: : -

PERMISSIONS
OWNER : um-
GROUP : u–
OTHER : —

DATASTORE TEMPLATE
ALLOW_ORPHANS=“YES”
CLONE_TARGET=“SYSTEM”
DISK_TYPE=“FILE”
DS_MAD=“fs”
LN_TARGET=“SYSTEM”
RESTRICTED_DIRS=“/”
SAFE_DIRS=“/var/tmp”
TM_MAD=“ssh”
TYPE=“IMAGE_DS”

IMAGES
0
13

onevm show 13
VIRTUAL MACHINE 13 INFORMATION
ID : 13
NAME : Rocky Linux 9-13
USER : user1
GROUP : gr1
STATE : DONE
LCM_STATE : LCM_INIT
LOCK : None
RESCHED : No
START TIME : 01/30 14:26:40
END TIME : 01/30 16:09:34
DEPLOY ID : -

VIRTUAL MACHINE MONITORING

PERMISSIONS
OWNER : um-
GROUP : —
OTHER : —

VM DISKS
ID DATASTORE TARGET IMAGE SIZE TYPE SAVE
0 default vda Rocky Linux 9 -/4G file NO
1 - hda CONTEXT -/- - -

USER TEMPLATE
LXD_SECURITY_PRIVILEGED=“true”
SCHED_MESSAGE=“Thu Jan 30 16:09:30 2025: Cannot dispatch VM to any Host. Possible reasons: Not enough capacity in Host or System DS, dispatch limit reached, or limit of free leases reached.”

VIRTUAL MACHINE TEMPLATE
AUTOMATIC_DS_REQUIREMENTS=“("CLUSTERS/ID" @> 0)”
AUTOMATIC_NIC_REQUIREMENTS=“("CLUSTERS/ID" @> 0)”
AUTOMATIC_REQUIREMENTS=“(CLUSTER_ID = 0) & !(PUBLIC_CLOUD = YES) & !(PIN_POLICY = PINNED)”
CONTEXT=[
DISK_ID=“1”,
NETWORK=“YES”,
SSH_PUBLIC_KEY=“”,
TARGET=“hda” ]
CPU=“1”
CPU_MODEL=[
MODEL=“host-passthrough” ]
GRAPHICS=[
LISTEN=“0.0.0.0”,
TYPE=“vnc” ]
MEMORY=“768”
OS=[
ARCH=“x86_64”,
UUID=“04d6402b-0c86-4379-b092-635358886dd7” ]
TEMPLATE_ID=“9”
VMID="13

Make sure the image datastore and the system datastore used during the VM deployment are compatible.

Take a look at how to use transfer modes.

Thanks to help me.

The virtual disk of the VM failed is attached from an image stored in a local datastore (Id: 0).

I don’t understand why Opennebula tries to deploy the image to the other CEPH datastore (Id: 100) instead of the local datastore 0 even though I force it to deploy to the local datastore when configuring the VM.

The local datastore is configured as: TM: ssh , I followed the Opennebula instructions to create the datastore (in old versions of opennebula it works fine but I started having this problem when adding a new datastore of type CEPH). The CEPH datastore works fine deploying images.

The host has enough space in disk, CPU and memory to deploy the image to its local repository.

Is there any way to extract more information about why this is happening?
I have set the debug level of the scheduler process to 5.
Thank you in advance.


on Feb 3 12:09:20 2025 [Z0][SCHED][DDD]: Scheduling Results:
Virtual Machine: 22

PRI	ID - HOSTS
------------------------
-1	0

PRI	ID - DATASTORES
------------------------
1	100
0	0

Mon Feb 3 12:09:20 2025 [Z0][SCHED][DD]: Match scheduled resources, sort by priorities. Total time: 0.00s
Mon Feb 3 12:09:20 2025 [Z0][SCHED][DD]: Call external Scheduler. Total time: 0.00s
Mon Feb 3 12:09:20 2025 [Z0][VM][E]: Error deploying virtual machine 22 to HID: 0. Reason: [one.vm.deploy] Image Datastore does not support transfer mode: ceph
Mon Feb 3 12:09:20 2025 [Z0][SCHED][D]: Dispatching VMs to hosts:
VMID Priority Host System DS
--------------------------------------------------------------

Mon Feb 3 12:09:20 2025 [Z0][SCHED][DD]: Dispatching VMs to hosts. Total time: 0.01s

IMAGE 13 INFORMATION
ID : 13
NAME : Rocky Linux 9
USER : user1
GROUP : oneadmin
LOCK : None
DATASTORE : default
TYPE : OS
REGISTER TIME : 01/30 13:59:28
PERSISTENT : No
SOURCE : /var/lib/one//datastores/1/99e723a8a4d6c4f3f2faee32eb03a3c6
PATH : https://marketplace.opennebula.io/appliance/9310bc80-7aea-013b-d6f1-7875a4a4f528/download/0
FORMAT : qcow2
SIZE : 4G
STATE : used
RUNNING_VMS : 1

PERMISSIONS
OWNER : um-
GROUP : —
OTHER : —

IMAGE TEMPLATE
DEV_PREFIX=“vd”
FROM_APP=“53”
FROM_APP_MD5=“cbee904165aafe4bb898c530ed1716f9”
FROM_APP_NAME=“Rocky Linux 9”

VIRTUAL MACHINES

ID USER GROUP NAME STAT CPU MEM HOST TIME
21 user1 oneadmin Rocky 9 pend 1 768M 0d 00


VIRTUAL MACHINE 21 INFORMATION
ID : 21
NAME : Rocky 9
USER : user1
GROUP : oneadmin
STATE : PENDING
LCM_STATE : LCM_INIT
LOCK : None
RESCHED : No
START TIME : 02/03 11:52:59
END TIME : -
DEPLOY ID : -

VIRTUAL MACHINE MONITORING

PERMISSIONS
OWNER : um-
GROUP : —
OTHER : —

VM DISKS
ID DATASTORE TARGET IMAGE SIZE TYPE SAVE
0 default vda Rocky Linux 9 -/4G file NO
1 - hda CONTEXT -/- - -

USER TEMPLATE
LXD_SECURITY_PRIVILEGED=“true”
SCHED_MESSAGE=“Mon Feb 3 11:59:18 2025: Cannot dispatch VM to any Host. Possible reasons: Not enough capacity in Host or System DS, dispatch limit reached, or limit of free leases reached.”

VIRTUAL MACHINE TEMPLATE
AUTOMATIC_DS_REQUIREMENTS=“("CLUSTERS/ID" @> 0)”
AUTOMATIC_NIC_REQUIREMENTS=“("CLUSTERS/ID" @> 0)”
AUTOMATIC_REQUIREMENTS=“(CLUSTER_ID = 0) & !(PUBLIC_CLOUD = YES) & !(PIN_POLICY = PINNED)”
CONTEXT=[
DISK_ID=“1”,
NETWORK=“YES”,
SSH_PUBLIC_KEY=“”,
TARGET=“hda” ]
CPU=“1”
CPU_MODEL=[
MODEL=“host-passthrough” ]
GRAPHICS=[
LISTEN=“0.0.0.0”,
TYPE=“vnc” ]
MEMORY=“768”
OS=[
ARCH=“x86_64”,
UUID=“182010d7-111a-446d-b894-5c175e432016” ]
TEMPLATE_ID=“9”
VMID=“21”