-
Epic
-
Resolution: Unresolved
-
Normal
-
None
-
None
-
Pass image size in advance
-
False
-
-
False
-
Not Selected
-
Proposed
-
Proposed
-
In Progress
-
Proposed
-
Proposed
-
13% To Do, 13% In Progress, 75% Done
-
-
As the python-glanceclient uploads image data without requiring a prior specification of the image size, it functions as intended. However, this can lead to complications when Glance utilizes Cinder, RBD, or S3 as its backend.
Since Glance does not have the data size beforehand, it conducts an iterative "resize-before-write" process, gradually expanding the Cinder volume by 1 GB at a time until all image data is received. This approach poses a challenge because the Cinder volume needs to be detached and reattached during each iteration, which can significantly slow down the process.
The same issue arises when using Ceph (RBD) as the backend, where a similar "resize-before-write" operation occurs, resulting in time-consuming operations.
If Glance is configured to use S3 as a backend, the multipart upload feature cannot be utilized because the image size is unknown in advance.
Scope
Implement all the code changes to fix this bug and make it ready for review in upstream.
Acceptance criteria
- Implement required code changes in glance, glance_store and python-glanceclient
- All required changes should be available for review in upstream
- It should have all unit and/or tempest tests if required
- (optional but important to increase the performance) Nova and cinder can utilize this feature while creating instance snapshot or upload volume to image and pass image size to glance in advance.
- relates to
-
OSPRH-18950 Allow multipart upload when image_size == 0 with s3 backend
-
- Review
-