No usage of another Azure Zone when no capacity is available

When the setting for your host pool is to use all 3 zones and 1 zone has no capacity it the host rebuild/reimage will get into a loop trying to use that zone each time.

Example error:

Existing availability zones for Standard_D4s_v5 in eastus2: 2, 3, 1
Availability zones chosen to distribute vms across: All zones
Current vms distribution by availability zone:
Zone 2: 0
Zone 3: 1
Zone 1: 0
Selected availability zone: 2
Desktop image id: /subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Compute/galleries/xxx/images/xxx
Disk controller type: SCSI
Error: Allocation failed. We do not have sufficient capacity for the requested VM size in this zone. Read more about improving likelihood of allocation success at http://aka.ms/allocation-guidance
Status: 200
ErrorCode: ZonalAllocationFailed
1

Comments (6 comments)

0
Avatar
Stefan Beckmann

We are experiencing this a lot at the moment. It usually helps if we use the Azure Capacity Extender.
What we currently have with one customer is that he has to open a ticket for Western Europe if he wants to deploy VMs in another zone. Zone 1 always works, the others don't. The whole thing per SKU!

0
Avatar
Toby Skerritt

Thanks for reporting this issue. I will raise with the development team.

0
Avatar
Stefan Beckmann

@Toby Please also note my other request. It would also be important that if the SKU, and in this case the zone, is changed back when available!

0
Avatar
Toby Skerritt
(Edited )

Stefan Beckmann, thank you. This is not currently how the feature functions, but I will make a note to discuss this. I agree it is probably the correct expected behavior. 

The challenge here is that we do not run regular scheduled appraisals for the health status of AZ and VM skus across the AZs. This action would add alot of additional API calls, which may be problematic. 

0
Avatar
Erik Langeland

I feel like the correct approach should be to either randomize the zone selection each time (I am currently seeing this with two zones having equal numbers of hosts, but it's always the same zone tried and resulting in the same error) or deliberately cycling through the zones on retry to attempt to avoid the error.

0
Avatar
Raul Morales
(Edited )

Hi Erik, we've recently implemented a new option called, Availability Zone Awareness within Azure Capacity Extender (ACE) that further enhances the capabilities of this feature by trying all configured Availability Zones when using ACE.
More details: Host Pool Azure Capacity Extender Configuration – Nerdio Manager for Enterprise

Hi Stefan, reverting to the default SKU when using Azure Capacity Extender is still on our roadmap, we have certainly not forgotten about it!

Please sign in to leave a comment.