Specify datasource path ( 4.12.1)

Hi !

I am experimenting with various storage backends systems.
I am wondering how to change the path of the data store path which is always /var/lib/one/datastores/ in a simple single node shared file system.

Creating a new data store ( system) by specifying a different path does not seem to work. It always creates new data stores in in the default path. Is this normal or am I doing something wrong ?

Can anyone say the correct method to change the datastore path ?



I followed the documents and tried to change the datastore for the cluster by using onecluster update command.
It opened up a VI screen and when I update it gives pipe error.
I tried mounting /var/lib/datastores on the storage directory by using mount – bind. It did not work.
So I have to change the datastore path which is not working . Any ideas ?
Or can I symlink to the storage directory instaed of mount --bind ?

Try to change the attribute via sunstone. There is an issue with the editor
and the update command

Also take a look to oned.conf to DATASTORE_LOCATION and DATASTORE_BASE_PATH

I can not see how I can create a datastore for a cluster using sunstore GUI
Whatever I do it defaults to /var/lib/one/datastores. in oned.conf it changes the path for all clusters .
How to change the datastore path only for one cluster ?

You can add that value in the cluster itself:


Still, the path in the frontend will always be the same. The easiest way to have a datastore in other path is to create a symlink in /var/lib/one/datastores pointing to the correct path.

root@Node0://var/lib/one/datastores# tree
├── 0
├── 1
│ └── 7e19ed16c2c3eeffbc1728777c24ed45
├── 101
│ └── 3
│ ├── deployment.0
│ ├── disk.0
│ ├── disk.1
│ └── disk.1.iso -> /var/lib/one/datastores/101/3/disk.1
└── 2

But sunstone shows >

ID 101
Name localpoolstore
Cluster Radcluster
State ON
Base path /mnt/localvpool/101
Capacity 85.5GB / 434.7GB (20%)
Limit -
Permissions: Use Manage Admin
Owner oneadmin
Group oneadmin
BASE_PATH /mnt/localvpool/
TM_MAD shared

“The easiest way to have a datastore in other path is to create a symlink in /var/lib/one/datastores pointing to the correct path”

you mean like this ?

ls -s /var/lib/one/datastores/0 /mnt/localvpool ?

Problem is I want only system data stores in /mnt/localvpool .
Will this work ?

I think the command should be

ln -l /mnt/localvpool /var/lib/one/datastores/0


Okay let me give the whole picture.
I am testing a storage backend for opennebula. Idea is to make it simple to add any backend like gluster , ceph or any other DFS and also provide caching with SSD to speed up storage systems. basically an hyperconverged set-up with asymmetric scaling either for computing or storage.
I am not an expert in software but if I can do it anyone can do it !

The storage system has created a vpool at /mnr/myvpool . I am trying to use this as system datastore. This vpool is highly optimised for KVM and that too .raw format only for the time being still in beta. It is designed for openstack but I am trying to test with opennebula. Openstack uses a separate image store -glance. That is why I am trying to separate image datastore and system datastore . And try to run the vms in /mnt/myvpool.

What is the best way to implement this ?

ln: invalid option – 'l’
Try ‘ln --help’ for more information.

did you mean -L ?

My bad. Its ln -s. I always fail the first time with ln command.

I still think that the best way is making symlinks. Maybe is not the most convenient as you have to create those links manually but it’s what I usually do.