-
Notifications
You must be signed in to change notification settings - Fork 934
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: PowerFlex fixes and improvements #14865
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Linter errors should disappear with #14710. |
tomponline
added a commit
to canonical/lxd-ci
that referenced
this pull request
Jan 27, 2025
Observed whilst running the tests for canonical/lxd#14865. Also added a note to run more robust PowerFlex tests that cope with zero-padding disabled.
e1941f0
to
d4cce84
Compare
c07cfb7
to
7458ef7
Compare
MusicDin
reviewed
Jan 30, 2025
3 tasks
7458ef7
to
1074ace
Compare
MusicDin
reviewed
Jan 30, 2025
c924c13
to
8b7066a
Compare
Running the test suite now for |
MusicDin
reviewed
Jan 31, 2025
8b7066a
to
8d9b278
Compare
We don't have to map the PowerFlex volume to get its size. The value can be obtained from the API which is faster than mapping the volume locally. Furthermore we prevent potential side effects if the mapped volume observes changes in size whilst being mapped. Signed-off-by: Julian Pelizäus <[email protected]>
…is disabled Block the creation of new volumes in case the storage pool isn't using the zero-padding feature. Signed-off-by: Julian Pelizäus <[email protected]>
This ensures a token which is valid isn't reset by another caller. Also return the valid token so it cannot be modified anymore which effectively detaches it from the internal struct which is protected by the lock. It didn't cause any issues during tests but improves the token handling in general. Signed-off-by: Julian Pelizäus <[email protected]>
In case the API's access token expires a new token is generated and the request is retried one more time. As the body is provided as a reader, this reader will be empty when issuing the second request as its contents were already read in the request from before. Prevent this by creating a copy of the readers contents and provide a fresh reader from the copy for every new request. To not require copying the reader, we pass the actual request body map directly to the requestAuthenticated func and create the reader there on demand for every retry. This was causing 400 Bad Requests in some cases when the token expired and the request which is going to be retried had something initially set in it's request body. For requests without anything in the body this was still working fine and therefore stayed unnoticed until now. It first occurred in a very slow PowerFlex environment in which an instance migration took longer than the token lifetime of around 10mins. Signed-off-by: Julian Pelizäus <[email protected]>
…rings Signed-off-by: Julian Pelizäus <[email protected]>
…reateVolume Signed-off-by: Julian Pelizäus <[email protected]>
Signed-off-by: Julian Pelizäus <[email protected]>
Signed-off-by: Julian Pelizäus <[email protected]>
Signed-off-by: Julian Pelizäus <[email protected]>
… package Signed-off-by: Julian Pelizäus <[email protected]>
a9c6237
to
4ef7e98
Compare
Tests for both NVMe and SDC passed successfully. Ready for review. |
MusicDin
approved these changes
Jan 31, 2025
tomponline
approved these changes
Jan 31, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM thanks!
tomponline
added a commit
that referenced
this pull request
Feb 4, 2025
This PR adds `pure` storage driver for Pure Storage remote storage. Driver supports communication over either iSCSI or NVMe/TCP. - [x] For iSCSI, this PR is required to ensure LXD redirects `iscsiadm` to the LXD host: canonical/lxd-pkg-snap#646 - [x] Rebase after #14710 - [x] Rebase after #14865 (for WaitDiskSize func)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This has to land after #14710 got merged as it was tested together.
Summary of changes
SetVolumeQuota
. As we can get the current volume's size directly from PowerFlex it does not need to be mapped beforehand. This also allows reducing errors indmesg
caused by the resize in case the vol is already mapped to the system.NewStatusError
lxd-ci/tests/storage-vm
.block
package.