Hi @Pawel Niemczyk ,
Thank you for the detailed description and the comparison of download behaviors that’s very helpful.
Based on your observations, this behavior is not expected from a raw Azure Storage performance perspective, but it can occur due to how the image creation workflow is implemented in Azure Local / Azure Stack HCI.
The command:
az stack-hci-vm image create
does not directly stream data like AzCopy or CURL. Instead, it relies on internal image provisioning workflows that:
- Use Azure Compute Gallery image ingestion mechanisms
- May involve buffered copy operations, service-side validation, and chunked transfers
- Do not leverage the optimized data-plane transfer path used by AzCopy
As a result, throughput can be significantly lower compared to AzCopy, which is specifically optimized for high-performance data transfer to/from Azure Storage.
AzCopy is the recommended tool for high-performance data movement to/from Azure Storage:
https://learn.microsoft.com/en-us/azure/service-fabric/service-fabric-connect-to-secure-cluster
Secure or managed cluster operations often use certificate-based or service-layer workflows rather than direct data streaming
https://docs.azure.cn/en-us/service-fabric/service-fabric-cluster-security
To achieve expected performance, the recommended approach is:
Stage the image locally using AzCopy (best practice)
- Download the VHDX from Blob Storage using AzCopy:
azcopy copy "https://<storage-account>.blob.core.windows.net/<container>/<file>.vhdx" "C:\localpath\image.vhdx" - Verify that the download is completed at expected speed (as you observed ~Gbps range).
- Use the local file as the image source:
az stack-hci-vm image create --path "C:\localpath\image.vhdx" ... - Ensure the storage account and Azure Local cluster are in the same region/network proximity
- Validate that the VHDX is fixed-size (not dynamic) for better ingestion performance
- Avoid repeated downloads via control-plane commands
your testing is absolutely valid the large difference in throughput clearly indicates that this is not a network issue, but a difference in how the tooling performs the data transfer internally.
For practical deployments, we strongly recommend using AzCopy for initial image transfer, as this aligns with Microsoft best practices for high-throughput data movement.
Thanks,
Manish.