lxc / incus

Powerful system container and virtual machine manager
https://linuxcontainers.org/incus
Apache License 2.0
2.4k stars 183 forks source link

Add a `linstor` storage driver #564

Open stgraber opened 6 months ago

stgraber commented 6 months ago

Adding this as its own feature request from discussions in #344.

There's been some interest recently in seeing Linstor added as a remote storage driver alongside Ceph and clustered LVM.

The initial things to look at are:

Go client for Linstor: https://github.com/LINBIT/golinstor

sona78 commented 5 months ago

Hi I'm interested in working on this issue. May I be assigned to this?

stgraber commented 4 months ago

Hey there,

I wouldn't recommend taking on this issue as this is the kind of work that I'm currently estimating at more than a month of full time dedicated work to get this done right

sona78 commented 4 months ago

That makes sense, thank you for letting me know

sharathsivakumar commented 4 months ago

@stgraber Can I take a stab at this? I would not be able to work full time on this. If there is no urgent deadline for the delivery, I can commit to working on this for the next 2~3 months and getting it done.

stgraber commented 4 months ago

Sure, you can start looking into this one.

The first stage doesn't actually involve Incus too much. You should basically get a few systems (I'd do 3), give them some extra disks for use with Linstor and then deploy both an Incus cluster across those systems but with no storage configured at this stage.

Then deploy Linstor on the same machines and after that, start figuring out what needs to be done through the Linstor Go client to create a pool, create volumes within that pool, create snapshots on those volumes, what are the main configuration options we'll want to expose on both pools and volumes and what needs to be done when an instance is moved from one system to another.

That all should happen outside of Incus. Once you have some example Go code using Linstor's Go client which can handle those basic cases, then we can start putting all that into a new Incus storage driver, figure out what needs to be done to be able to do basic tests of Linstor in the Github Actions environment and then get it reviewed and merged.

stgraber commented 4 months ago

Frequent updates within this issue as you make progress through that will be key so anyone else who knows about Linstor can assist with the best ways to set things up and to run it.

sharathsivakumar commented 4 months ago

@stgraber Sounds good. Thanks for the detailed explanation. I will start working on setting up the required instances and post updates here based on it. For the incus and linstor instances, VMs will be sufficient right?

sharathsivakumar commented 4 months ago

@stgraber Could you please assign this to me? I will start work on this from this week.

stgraber commented 4 months ago

Done

thomasdba commented 1 month ago

any updates? thanks

stgraber commented 1 month ago

@sharathsivakumar