Skip to content
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

Storage: Add Pure Storage storage driver #14599

Draft
wants to merge 46 commits into
base: main
Choose a base branch
from

Conversation

MusicDin
Copy link
Member

@MusicDin MusicDin commented Dec 6, 2024

This PR adds pure storage driver for Pure Storage remote storage.
Driver supports communication over either iSCSI or NVMe/TCP.

@github-actions github-actions bot added the Documentation Documentation needs updating label Dec 6, 2024
return err
}

err = os.Remove(mountPath)

Check failure

Code scanning / CodeQL

Uncontrolled data used in path expression High

This path depends on a
user-provided value
.
This path depends on a
user-provided value
.
This path depends on a
user-provided value
.
This path depends on a
user-provided value
.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe @simondeziel is planning to address this issue more generally higher up the call stack, so wont block this PR.

@MusicDin MusicDin force-pushed the feat/pure-driver branch 2 times, most recently from c53014e to 69f6cae Compare December 6, 2024 16:27

Create a storage pool named `pool1` that uses NVMe/TCP by default:

lxc storage create pool1 pure pure.gateway=https://<purestorage-address> pure.api.token=<purestorage-api-token> pure.array.address=<nvme-ip>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That gateway HTTPS verification presumably relies on the OS provided trust store so it would work if it's an "official TLS" cert like one signed by Let's Encrypt.

I must admit not knowing how to provide a different trusted CA if one doesn't have an official cert.

doc/metadata.txt Outdated Show resolved Hide resolved
doc/reference/storage_pure.md Outdated Show resolved Hide resolved
doc/reference/storage_pure.md Outdated Show resolved Hide resolved
doc/reference/storage_pure.md Outdated Show resolved Hide resolved
doc/reference/storage_pure.md Outdated Show resolved Hide resolved
doc/reference/storage_pure.md Outdated Show resolved Hide resolved
doc/reference/storage_pure.md Outdated Show resolved Hide resolved
doc/reference/storage_pure.md Outdated Show resolved Hide resolved
doc/reference/storage_pure.md Outdated Show resolved Hide resolved
doc/reference/storage_pure.md Outdated Show resolved Hide resolved
@MusicDin
Copy link
Member Author

MusicDin commented Dec 9, 2024

@minaelee Thanks for the comments. I've addressed all of them, but will ask you for another review just before we merge the PR, as there may still be some changes to the docs. Thanks again :)

@MusicDin MusicDin marked this pull request as ready for review December 9, 2024 16:07
@MusicDin MusicDin requested a review from roosterfish December 9, 2024 16:07
lxd/storage/drivers/driver_pure.go Outdated Show resolved Hide resolved
doc/reference/storage_drivers.md Outdated Show resolved Hide resolved
Pure Storage does not allow mounting snapshots directly, therefore
we have to create a new volume from it before mounting it.

Signed-off-by: Din Music <[email protected]>
Correctly initialize Pure Storage pool.

Signed-off-by: Din Music <[email protected]>
Currently, Pure Storage driver does not support recovery. Mainly bacuse the storage volume names
are encoded, which would result in indistinguishable storage volume names after the recovery.

Signed-off-by: Din Music <[email protected]>
Signed-off-by: Din Music <[email protected]>
Signed-off-by: Din Music <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Documentation Documentation needs updating
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants