Image Creation is Failing for Volume Size More than 100GB
Problem
When converting large volumes (100GB–400GB or more) from the block device service into images in the image service, the operation may fail or result in an image being created with zero size.
Environment
Private Cloud Director Virtualization - v2025.10 to v2026.1.427
Self-Hosted Private Cloud Director Virtualization - v2025.10 to v2026.1.427
Component - Image Service
Cause
The issue arises from a combination of buffering behavior and timeout limitations during the volume-to-image conversion process. When a large upload is initiated, the web server first buffers the incoming data temporarily before forwarding it to the image service. The image service, in turn, writes this data to a staging area before finally committing it to backend storage. Although moving the temporary buffering path to a network file system helps reduce local disk exhaustion, it does not eliminate the dependency on internal timeout limits for handling large uploads.
One of the primary causes is that the default timeout configured between the block device service and the image service, typically around 600 seconds, is not sufficient for larger data transfers. As a result, the client connection may get interrupted during the upload process, leading to errors such as a disconnection while sending data. This ultimately results in incomplete uploads, where the image may be marked as successfully created but ends up having zero size due to the partial transfer.
Repeated errors in cindervolume-base.log:
INFO cinder.image.pf9_glance [req-[REQ_UUID] None [TENANT]] Exception https://[IMAGE_HOST_IP]:9494 calling 'upload' with args ('[IMAGE_UUID]', <_io.BufferedReader name='/opt/pf9/pf9-cindervolume-base/state/mnt/[UUID]/volume-[VOLUME_UUID]'>), {}: Error communicating with https://[IMAGE_HOST_IP]:9494/v2/images/[IMAGE_UUID]/file: HTTPSConnectionPool(host='[IMAGE_HOST_IP]', port=9494): Read timed out. (read timeout=600.0)Resolution
The engineering team has worked on an enhancement that is available starting v2026.4.89 (April Release) and above versions, which was tracked via PCD-5923.
If an upgrade is not a viable option, proceed with the Workaround
Workaround
Update the web server proxy timeout settings to align with the block device service and image service timeout values, ensuring that the entire request flow can support longer upload durations without interruption.
Recommended Timeout Values by Volume Size
Volume Size
Expected Upload Time*
Recommended Timeout
Safety Buffer
10GB
5-10 minutes
1800s (30 min)
3x buffer
50GB
15-25 minutes
3600s (1 hour)
2.5x buffer
100GB
30-45 minutes
7200s (2 hours)
2.5x buffer
200GB
60-90 minutes
14400s (4 hours)
2.5x buffer
250GB
75-110 minutes
14400s (4 hours)
2x buffer
500GB
150-220 minutes
21600s (6 hours)
2x buffer
*Based on 100 MB/s network speed with 15% overhead
Additional Information
Nginx temporary buffering requires sufficient disk space, and it is recommended to use an NFS-backed path to prevent exhaustion of the local filesystem during large uploads. The image service staging area will continue to generate temporary files throughout the upload process, which is expected behavior, particularly for large volume-to-image operations.
Last updated
