App Layering – Configuring Azure Connector Configuration Settings for Azure Server Busy errors.

When creating App Layers (both uploading and downloading) in Azure, the task fail with “Azure Server Busy” errors.

There are now configurable options in the config.json of the Connector config that will slow down the transfer of the data and keep the copy within the range that is acceptable. This may cause the task to run slower but not in a measurable way. These settings can be configured by logging into the ELM via putty and browse to location of the config files (see below for more detail). Please note: Linux is case sensitive.

Below is an Overview of the configurable settings for the Azure Connector. Each setting is configurable depending on your environment.

AzureTimeouts:

These settings control various timeouts and retries for various connector operations. They appear in the azureTimeouts section of the config.json file located here: /usr/local/lib/node_modules/unidesk-azure-connector/config.json

Setting Description Default
createVHDFromPageBlobNumRetries Number of times to retry downloading a VHD from Azure. This applies to creating a new OS layer and finalizing OS/App/Platform layers. 10
createVHDFromPageBlobFactor The exponential back-off factor to wait between retries: time = minTime * factor ^ (retryNum – 1) 1
createVHDFromPageBlobMinTimeoutInMs The minimum amount of time in milliseconds to wait between retries when downloading a VHD from Azure. 10000
createVHDFromPageBlobThreadCount The number of threads used for parallel download operations. 5
createPageBlobFromVHDThreadCount The number of threads used for parallel upload operations. 32
createVHDFromPageBlobCancelCheckInternalInMs 60000

Solution 1:

If experiencing consistent 503 Server Busy issues from Azure:

It is recommended that you increase the createVHDFromPageBlobNumRetries count from 10 to something higher, and reduce the count of createVHDFromPageBlobThreadCount and createPageBlobFromVHDThreadCount, with 1 being the lowest.

Example:

“azureTimeouts”: {

“createVHDFromPageBlobNumRetries”: 12,

“createVHDFromPageBlobMinTimeoutInMs”: 5000,

“createVHDFromPageBlobFactor”: 2,

“createVHDFromPageBlobThreadCount”: 3

“createPageBlobFromVHDThreadCount”: 1

}

How to Change a Setting that will NOT persist an upgrade:

Follow these steps to change a setting in config.json.

1. Log into the ELM via Putty

2. Edit /usr/local/lib/node_modules/unidesk-azure-connector/config.json

3. Add desired config settings and save

4. Restart the Connector: systemctl restart unidesk-azure-connector

The new values will appear in the log:

[2021-03-25T14:06:37.688Z] INFO: Index/1457 on localhost.localdomain: Overriding AzureTimeouts,

timeout createVHDFromPageBlobNumRetries = 12

[2021-03-25T14:06:37.688Z] INFO: Index/1457 on localhost.localdomain: Overriding AzureTimeouts,

timeout createVHDFromPageBlobMinTimeoutInMs = 5000

[2021-03-25T14:06:37.688Z] INFO: Index/1457 on localhost.localdomain: Overriding AzureTimeouts,

timeout createVHDFromPageBlobFactor = 2

[2021-03-25T14:06:37.688Z] INFO: Index/1457 on localhost.localdomain: Overriding AzureTimeouts,

timeout createVHDFromPageBlobThreadCount = 3

[2021-03-25T14:06:37.688Z] INFO: Index/1457 on localhost.localdomain: Overriding AzureTimeouts,

timeout createPageBlobFromVHDThreadCount = 1

How to Change a Setting that WILL persist an upgrade:

Note: This is available in 21.4 and later

Follow these steps to change a setting in customer-config.json.

1. Log into the ELM via putty

2. Create file /usr/local/lib/node_modules/unidesk-azure-connector/customer-config.json

a. `touch customer-config.json`

3. Add desired timeout config settings and save

4. Restart connector: systemctl restart unidesk-azure-connector

Example customer-config.json

“azureTimeouts”: {

“createVHDFromPageBlobNumRetries”: 20,

“createVHDFromPageBlobThreadCount”: 7

“createPageBlobFromVHDThreadCount”: 2

}

The new values will appear in the log:

[2021-03-25T14:06:37.688Z] INFO: Index/1457 on localhost.localdomain: Overriding AzureTimeouts from customer config file…

[2021-03-25T14:06:37.688Z] INFO: Index/1457 on localhost.localdomain: Overriding AzureTimeouts, timeout createVHDFromPageBlobNumRetries = 20

[2021-03-25T14:06:37.689Z] INFO: Index/1457 on localhost.localdomain: Overriding AzureTimeouts, timeout createVHDFromPageBlobThreadCount = 7

[2021-03-25T14:06:37.689Z] INFO: Index/1457 on localhost.localdomain: Overriding AzureTimeouts, timeout createPageBlobFromVHDThreadCount = 2

Related:

  • No Related Posts

Leave a Reply