You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cloudstack.apache.org by Rene Peinthor <re...@linbit.com> on 2021/02/11 08:46:51 UTC

Linstor volume storage plugin

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

Re: Linstor volume storage plugin

Posted by benoit lair <ku...@gmail.com>.
Hello René,

Does this plugin will work with XCP-NG Hypervisor ?

Regards, Benoit

Le jeu. 11 févr. 2021 à 09:47, Rene Peinthor <re...@linbit.com> a
écrit :

> 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
>