Hi!

I'm currently working on a volume storage plugin for cloudstack, but got a
bit stuck on a few design things of cloudstack.

So I started with adding a `cloud-plugin-storage-volume-linstor` plugin and
implemented the
LifeCycle, Provider, Listener and Driver.
I'm able to add it as primary storage with my own Provider from the UI, but
as I understood
you can't directly create a volume within this storage pool, it is rather
decided by the allocator/placer.
As I still have another Primary storage driver (NFS) new volumes will get
created there, but
I can migrate storage to Linstor from there.
That is when I found out that cloudstack also has a StorageAdaptor on the
agent side and it looks
like the agent side only has very limited info about the storage pool and
only gets the name(uuid).

Linstor is a shared storage, so BLOCK volumes can/will be provided on all
nodes that are
part of the Linstor cluster and for Linstor, it would be enough to control
the creation/deletion
of volumes from the management server, actions on the agent side would only
be needed for
migrating volumes to another storage pool or copy volumes within Linstor if
the backend storage doesn't support snapshots.

So do you have any guidelines on how I should add the Linstor storage?

I guess I could create the Linstor pool as `managed` and store the storage
pool info in some config file,
but it seems to be unnecessary and I wouldn't really want to control the
Linstor cluster also
from the agents.

My idea would be that only the management server talks to Linstor and
agents should only be used, for e.g. copying data between volumes or
convert image formats.

Best regards,
Rene

Reply via email to