mayastor icon indicating copy to clipboard operation
mayastor copied to clipboard

Feat: LVM as a pool backend

Open tiagolobocastro opened this issue 1 year ago • 4 comments

Add LVM as an experimental alternative backend to Mayastor:

  1. it allows us to use a low latency single replica local volume (app pinned to the same node)
  2. robust backend for existing LVM users which may prefer it
  3. combine local engines into mayastor

This differs from the existing lvm localpv as rather than importing the existing VGs we create the LVM PV's and the LVM VG itself. On destruction, if the VG has no non-mayastor LVs then we destroy it, otherwise we leave it behind, untagged.

The existing pool/replica services are also refactored to support adding other backends in the future as well. This is achieved by implementing the service interface separately and binding them at a higher level. This way it avoids mixing the backend code, at least as much as possible.

tiagolobocastro avatar Feb 14 '24 20:02 tiagolobocastro

This PR seems to be quite big and intrusive, and there are concerns about the implementation decisions, e.g. like communication with LVM with CLI tools, etc. Shouldn't we go through our full feature design process as we do for other features? HLD, LLD, BDDs, and so on.

dsavitskiy avatar Feb 27 '24 09:02 dsavitskiy

This PR seems to be quite big and intrusive, and there are concerns about the implementation decisions, e.g. like communication with LVM with CLI tools, etc. Shouldn't we go through our full feature design process as we do for other features? HLD, LLD, BDDs, and so on.

This is a re-raise of existing PR's which did not get merged (not sure if there was a design for that or not, probably left in the old wiki), so we're finally merging them now (with a rebase and refactor). This is an experimental feature and not enabled by default.

tiagolobocastro avatar Feb 27 '24 11:02 tiagolobocastro

My point is that maybe it is worth it to have a couple of meetings to (re-)review the current design? Besides low level implementation considerations, there are a couple of topics that are potentially affected by LVM backend:

  • Replica/volume expansion.
  • Disk aggregation.

dsavitskiy avatar Feb 27 '24 16:02 dsavitskiy

My point is that maybe it is worth it to have a couple of meetings to (re-)review the current design? Besides low level implementation considerations, there are a couple of topics that are potentially affected by LVM backend:

* Replica/volume expansion.

* Disk aggregation.

Makes sense, I've sent an invite post-standup tomorrow

tiagolobocastro avatar Feb 27 '24 17:02 tiagolobocastro

bors merge

tiagolobocastro avatar Apr 18 '24 14:04 tiagolobocastro

bors merge

tiagolobocastro avatar Apr 18 '24 17:04 tiagolobocastro

:clock1: Waiting for PR status (Github check) to be set, probably by CI. Bors will automatically try to run when all required PR statuses are set.

bors cancel

tiagolobocastro avatar Apr 18 '24 17:04 tiagolobocastro

Canceled.

bors merge

tiagolobocastro avatar Apr 18 '24 18:04 tiagolobocastro

bors merge

tiagolobocastro avatar Apr 18 '24 18:04 tiagolobocastro

bors merge

tiagolobocastro avatar Apr 18 '24 21:04 tiagolobocastro