-
Notifications
You must be signed in to change notification settings - Fork 111
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feat: LVM as a pool backend #1587
Conversation
43eecf0
to
1a65137
Compare
1eb1e24
to
891b0ae
Compare
95ee994
to
30fc472
Compare
735bad9
to
63d3d76
Compare
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. |
64912ef
to
702afdf
Compare
bors merge |
1587: Feat: LVM as a pool backend r=tiagolobocastro a=tiagolobocastro 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. Co-authored-by: Tiago Castro <[email protected]>
Build failed: |
bors merge |
🕐 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. |
1587: Feat: LVM as a pool backend r=tiagolobocastro a=tiagolobocastro 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. Co-authored-by: Tiago Castro <[email protected]>
bors cancel |
Canceled. |
bors merge |
1587: Feat: LVM as a pool backend r=tiagolobocastro a=tiagolobocastro 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. Co-authored-by: Tiago Castro <[email protected]>
Build failed: |
bors merge |
1587: Feat: LVM as a pool backend r=tiagolobocastro a=tiagolobocastro 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. Co-authored-by: Tiago Castro <[email protected]>
Build failed: |
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. Co-authored-by: shubham <[email protected]> Co-authored-by: Akhil Mohan <[email protected]> Co-authored-by: Tiago Castro <[email protected]> Signed-off-by: Tiago Castro <[email protected]>
Signed-off-by: Tiago Castro <[email protected]>
Supports using CARGO_VENDOR_DIR=/tmp/bob/.. in case bob doesn't exist. Probably won't ever happen but just in case :) Signed-off-by: Tiago Castro <[email protected]>
bors merge |
Build succeeded: |
Add LVM as an experimental alternative backend to Mayastor:
local volume (app pinned to the same node)
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.