There is no suitable system ds

Dear OpenNebula community and developers,

I’m facing an issue that has blocked me for some hours now. After installing and configuring OpenNebula, I downloaded a Centos 7.2 from the MarketPlace and tried to deploy it. Then I get the message that serves as a title for this topic:

Fri Mar 24 15:36:30 2017 [Z0][VM][D]: Found 1 pending/rescheduling VMs.
Fri Mar 24 15:36:30 2017 [Z0][HOST][D]: Discovered 4 enabled hosts.
Fri Mar 24 15:36:30 2017 [Z0][SCHED][D]: Match-making results for VM 1:
Cannot schedule VM, there is no suitable system ds.

Fri Mar 24 15:36:30 2017 [Z0][SCHED][D]: Dispatching VMs to hosts:
VMID Host System DS
-------------------------

I’m running OpenNebula 5.2.1 on SLES 12 SP2 (built rpms from source using the centos7 spec). The frontend sits on a VM which is run in one of the 4 hosts that form the cluster.

oneadmin@…~> onecluster show "clustername"
CLUSTER 0 INFORMATION
ID : 0
NAME : “clustername”

CLUSTER TEMPLATE
RESERVED_CPU="“
RESERVED_MEM=”"

HOSTS
3
4
5
6

VNETS
0

DATASTORES
100


oneadmin@… ~> onedatastore show "datastore name"
DATASTORE 100 INFORMATION
ID : 100
NAME : "datastore name"
USER : oneadmin
GROUP : users
CLUSTERS : 0
TYPE : IMAGE
DS_MAD : fs
TM_MAD : shared
BASE PATH : /var/lib/one/datastores/100
DISK_TYPE : FILE
STATE : READY

DATASTORE CAPACITY
TOTAL: : 85.7T
FREE: : 85.7T
USED: : 29.3G
LIMIT: : -

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

DATASTORE TEMPLATE
CLONE_TARGET="SYSTEM"
DISK_TYPE="FILE"
DS_MAD="fs"
LN_TARGET=“NONE"
RESTRICTED_DIRS=”/“
SAFE_DIRS=”/data/OpenNebula/restored_images/"
TM_MAD="shared"
TYPE=“IMAGE_DS”

IMAGES
4

I’ve also checked the oned.log, there are not errors at all, just the repeating message at sched.log. The VM.log just shows:

New state is PENDING

Any help would be much appreciated.

Kind regards,
Oscar

Hi,

You must add to the cluster a SYSTEM datastore too.

Judging from the output you are using shared IMAGE datastore. So probably you must setup shared SYSTEM datastore too. There are two ways to do it:
A) reconfigure the default SYSTEM datastore - change its TM_MAD from ssh to shared
B) define new SYSTEM datastore with shared TM_MAD

(the datastores of type SYSTEM are using only TM_MAD)

Then, the best option is on the hosts to create symlink with the datastore ID to a shared place. something like

ln -s /path_to_shared_filesystem_for_system_ds/ /var/lib/one/datastores/$SYSTEM_DS_ID/

Also you can add the default FILE datastore to the cluster too. In most common cases the files from there are inserted in the contextualisation ISO so its default settings are OK for starter.

Hope this helps.

Kind Regards,
Anton Todorov

Dear Anton,

It worked! I just added a SYSTEM FS:

oneadmin@…:~> onedatastore list
ID NAME SIZE AVAIL CLUSTERS IMAGES TYPE DS TM STAT
100 name 85.7T 100% 0 1 img fs shared on
oneadmin@…:~> onedatastore list
ID NAME SIZE AVAIL CLUSTERS IMAGES TYPE DS TM STAT
100 name 85.7T 100% 0 1 img fs shared on
101 system 85.7T 100% 0 0 sys - shared on

The VM log:
Mon Mar 27 09:31:30 2017 [Z0][VM][I]: New LCM state is PROLOG
Mon Mar 27 09:31:34 2017 [Z0][VM][I]: New LCM state is BOOT

And the sched log:

Mon Mar 27 09:31:28 2017 [Z0][VM][D]: Found 1 pending/rescheduling VMs.
Mon Mar 27 09:31:28 2017 [Z0][HOST][D]: Discovered 4 enabled hosts.
Mon Mar 27 09:31:30 2017 [Z0][SCHED][D]: Dispatching VMs to hosts:
VMID Host System DS
-------------------------
1 6 101

Thanks for your help Anton!

Kind regards,
Oscar