enabling accelerated networking on all created interfaces#124
Conversation
hosungsmsft
left a comment
There was a problem hiding this comment.
This is in general great and we should have taken this by ourselves in the first place. We'll try to get this in ASAP, but right now, I'm not sure if our current ARM API versions will support this addition. For example, our current API version for VMSS is 2017-03-30, whereas the current API reference doc showing enableAcceleratedNetworking says its API version is 2017-12-01 (see https://docs.microsoft.com/en-us/rest/api/compute/virtualmachinescalesets/createorupdate#virtualmachinescalesetnetworkconfiguration and then scroll all the way up to check the API version). Same should be checked on all other VMs' NIC configurations API version. Could you confirm if you successfully deployed these modified templates without updating the API versions?
| } | ||
| ] | ||
| ], | ||
| "enableAcceleratedNetworking": "true" |
There was a problem hiding this comment.
Please change all "true" to just true (without quotations), as these are Boolean properties, not strings.
|
removed the double quotes, I will try the deployment this evening and will confirm tomorrow |
|
there were no complaints about API version during deployment but there's a caveat that I missed, AN can only be enabled on certain types/sizing of vms and in my case I got an error: {"code":"DeploymentFailed","message":"At least one resource deployment operation failed. Please list deployment operations for details. Please see https://aka.ms/arm-debug for usage details.","details":[{"code":"BadRequest","message":"{\r\n "error": {\r\n "details": [],\r\n "code": "VMSizeIsNotPermittedToEnableAcceleratedNetworking",\r\n "message": "Virtual Machine size Standard_DS1_v2 is not in the allowed list of VM sizes for accelerated networking to be enabled on Network Interface /subscriptions/7aff766a-9ab9-4b8f-a628-b7bbb26d4407/resourceGroups/POC2-Moodle/providers/Microsoft.Compute/virtualMachines/controller-vm-dtudjd. Allowed sizes: Standard_D3_v2, Standard_D12_v2, Standard_D3_v2_Promo, Standard_D12_v2_Promo, Standard_DS3_v2, Standard_DS12_v2, Standard_DS13-4_v2, Standard_DS14-4_v2, Standard_DS3_v2_Promo, Standard_DS12_v2_Promo, Standard_DS13-4_v2_Promo, Standard_DS14-4_v2_Promo, Standard_F4, Standard_F4s, Standard_D8_v3, Standard_D8s_v3, Standard_D32-8s_v3, Standard_E8_v3, Standard_E8s_v3, Standard_D3_v2_ABC, Standard_D12_v2_ABC, Standard_F4_ABC, Standard_F8s_v2, Standard_D4_v2, Standard_D13_v2, Standard_D4_v2_Promo, Standard_D13_v2_Promo, Standard_DS4_v2, Standard_DS13_v2, Standard_DS14-8_v2, Standard_DS4_v2_Promo, Standard_DS13_v2_Promo, Standard_DS14-8_v2_Promo, Standard_F8, Standard_F8s, Standard_M64-16ms, Standard_D16_v3, Standard_D16s_v3, Standard_D32-16s_v3, Standard_D64-16s_v3, Standard_E16_v3, Standard_E16s_v3, Standard_E32-16s_v3, Standard_D4_v2_ABC, Standard_D13_v2_ABC, Standard_F8_ABC, Standard_F16s_v2, Standard_D5_v2, Standard_D14_v2, Standard_D5_v2_Promo, Standard_D14_v2_Promo, Standard_DS5_v2, Standard_DS14_v2, Standard_DS5_v2_Promo, Standard_DS14_v2_Promo, Standard_F16, Standard_F16s, Standard_M64-32ms, Standard_M128-32ms, Standard_D32_v3, Standard_D32s_v3, Standard_D64-32s_v3, Standard_E32_v3, Standard_E32s_v3, Standard_E32-8s_v3, Standard_E32-16_v3, Standard_D5_v2_ABC, Standard_D14_v2_ABC, Standard_F16_ABC, Standard_F32s_v2, Standard_D15_v2, Standard_D15_v2_Promo, Standard_D15_v2_Nested, Standard_DS15_v2, Standard_DS15_v2_Promo, Standard_DS15_v2_Nested, Standard_D40_v3, Standard_D40s_v3, Standard_D15_v2_ABC, Standard_M64ms, Standard_M64s, Standard_M128-64ms, Standard_D64_v3, Standard_D64s_v3, Standard_E64_v3, Standard_E64s_v3, Standard_E64-16s_v3, Standard_E64-32s_v3, Standard_F64s_v2, Standard_F72s_v2, Standard_M128s, Standard_M128ms, Standard_L8s_v2, Standard_L16s_v2, Standard_L32s_v2, Standard_L64s_v2, Standard_L96s_v2, SQLGL, SQLGLCore, Standard_D4_v3, Standard_D4s_v3, Standard_D2_v2, Standard_DS2_v2, Standard_E4_v3, Standard_E4s_v3, Standard_F2, Standard_F2s, Standard_F4s_v2, Standard_D11_v2, Standard_DS11_v2, AZAP_Performance_ComputeV17C."\r\n }\r\n}"}]} |
|
Given we want to keep the controller small and cost-effective, maybe we skip enabling it on it? The key benefit I see on the VMSS when connecting to mysql. |
|
Thanks much for your confirmation. Glad that API versions don't have to change. For the controller VM, that VM would also benefit from or need accelerated networking anyway, because cron jobs run on the controller VM (though not high load), and for the current NFS option, the shared volume is served from the controller VM (to reduce any other cost by not creating another VM for NFS, but just reusing the existing one that's utilized quite low), so it'd be good to have AN for the controller VM as well. We'll check with Azure Networking team whether D1 will be ineligible for AN forever or if there's any plan to allow AN for D1 as well. Also, we'll discuss internally whether it'd be better to change the default for the controller to D1, to utilize AN. In the meantime, it'd be great if @enovationIT add some comments about this restriction somewhere in the template. Maybe it'd be better to add a switch (or two, if we want to be able to control AN separately on different VMs) in the azuredeploy.json and give a choice to user on this feature? I'd strongly recommend/ask that in this PR... Thanks! |
hosungsmsft
left a comment
There was a problem hiding this comment.
Thanks. Approving/merging this as is, but we'll add more changes to introduce switch parameters for this feature.
enabling accelerated networking on all created interfaces
enabling accelerated networking on all created interfaces
this is related to #123, but we haven't deployed the template with changes yet (changes were manually applied to test environment), I'll add a comment when it's tested