Appearance
Azure Virtual Desktop Integration
Microsoft Azure Virtual Desktop (AVD) provides cloud-based virtual desktop infrastructure in Azure. This guide covers deploying Turbo applications to AVD session hosts.
These deployment steps can be executed through:
- Manual setup on custom images
- Image builder configuration (e.g., Packer)
- Azure Custom Script Extension during deployment
What you'll learn
- How to set up optimal storage for application images in Azure
- How to configure Turbo Client on AVD hosts
- How to deploy applications to session hosts
- How to manage application access through AVD Portal
Prerequisites
Before proceeding with this guide, ensure you have:
- Turbo Hub Server: Set up a Turbo Hub Server. For optimal performance, it should be in the same Azure region as your AVD environment.
- Alternatively, you can set up Turbo Client in offline mode to deploy applications without a Turbo Hub Server.
- Turbo Client Installer: The installer for Turbo Client. You can download it from Turbo.net
- Azure Subscription: An active Azure subscription with an AVD environment set up.
Application Image Storage
For optimal performance and scalability in large-scale deployments (100-300 VMs or more), we recommend using either Azure NetApp Files or directly attached Azure managed disks. These options provide better performance compared to standard network shares and overcome the limitations of shared managed disks.
Option 1: Azure NetApp Files (Recommended for large-scale deployments)
Azure NetApp Files provides high-performance file storage that can be easily scaled to accommodate large numbers of VMs.
Set up Azure NetApp Files:
- Follow the Azure NetApp Files setup guide
- Create a capacity pool and volume with appropriate performance tier and size for your environment and performance goals
- Recommended: start with a 1TiB volume in a Premium capacity pool
- Monitor performance in your specific VDI environment and consider increasing the pool size if you observe bottlenecks in performance
- Each 1 TiB in a Performance pool provides 62.5 MiB/s throughput
- Each 1 TiB in a Standard pool provides 15.63 MiB/s
- Ensure the volume is configured to use SMB protocol
Use the NetApp Files share:
- The share can be accessed directly using its UNC path, ex:
\\storageaccount.file.core.windows.net\sharename
- Alternatively, you can mount the share on your session hosts using a logon script or GPO
- The share can be accessed directly using its UNC path, ex:
Configure access:
- Set up appropriate permissions on the SMB share
- Administrators should be assigned write access to the shared repository folder, so they can manage the images in it
- Users should be assigned read-only access to the image repository, so they cannot modify its contents
- Set up appropriate permissions on the SMB share
Option 2: Directly Attached Azure Managed Disks
For scenarios where NetApp Files is not available or for smaller deployments, using directly attached Azure managed disks or provisioning the VM with a large enough OS disk size can provide good performance.
Create managed disks:
- Use the Azure portal or Azure CLI to create managed disks for your session hosts
- Size the disks appropriately for your application image storage needs
Attach disks to session hosts:
- Attach the managed disks to your session host VMs during VM creation or as data disks to existing VMs
As an alternative to creating a separate disk, the VM can be provisioned with sufficient space on the OS disk to store the application images.
Deprecated: Shared Managed Disks
Deprecated
We no longer recommend using shared managed disks for large-scale deployments due to their limitations:
- Max shares range from 2 to 10, depending on the disk tier
- For 100-300 VMs, you would need 10-30 shared disks, increasing complexity and cost
Offline Turbo Client Configuration
The offline Turbo Client configuration steps are generally the same as the Deploy Using Client > Offline Client guide.
When using AVDs with non-persistence, you can:
- Bake the
turbo installi
commands into the AVD gold image.
Using this method will bake the application shortcuts into the gold image, so they will be immediately available to users.
However, changes to the application registration will require updating the gold image. - Script the
turbo installi
commands to execute on login.
Using this method will dynamically add the application shortcuts on login, so users will see the applications appear as they are processed.
Changes to the application registration can be applied to the login script without having to rebuild the gold image.
Turbo Client Configuration for Non-Persistent AVD with Shared Image Repository
In this example, we'll use a NetAPP volume as a shared image repository in an environment using non-persistent AVDs. The shared repository is placed in a persistent folder, so images will not have to be re-downloaded every time the AVD state is reset.
Prepare Shared Image Repository
Install and configure Turbo Client on a system that has access to the NetApp share with a user who can write to it.
batchturbo-client-setup.exe --all-users --silent --domain=https://turbo.mycompany.com --add-trusted-source=turbo.mycompany.com --image-path=\\\\storageaccount.file.core.windows.net\sharename\turboimages
- Set the
--domain
and--add-trusted-source
values to your Turbo Portal address. - Set the
--image-path
to a folder that will contain the shared image repository on your NetApp volume.
- Set the
Authenticate with your Turbo Portal using an API Key.
batch# Login using API key turbo login --all-users --api-key=key-here
Optionally, enable caching for the SVM images for faster application launches and smaller sandbox sizes.
Caching will export the executable binaries to the assemblies folder under the image repository path.
This setting requires the AutoPrecache setting to be enabled in the client and the Enable Assembly cache setting to be enabled in the Workspace Application Settings on the server.batchturbo config --all-users --enable=AutoPrecache
Alternatively, you can manually execute the
turbo cache
command if you wish to cache individual images manually.batchturbo cache mozilla/firefox-esr-x64,adobe/photoshop,tableau/tableaupublic-x64
Use the
turbo subscribe
command to populate the shared image repository from your Turbo Server. The subscribe command can pull all images used by a workspace.batch# Example: subscribe to the default workspace turbo subscribe --all-users --pull default # Example: subscribe to all workspaces available to the API Key turbo subscribe --all-users --pull --all
Deploy Applications to AVD
When preparing your AVD gold image, install and configure Turbo Client on a system that has access to the NetApp share.
The AVD systems and users should have read-only access to the shared repository folder, so they cannot add or modify the images.batchturbo-client-setup.exe --all-users --silent --domain=https://turbo.mycompany.com --add-trusted-source=turbo.mycompany.com --image-path=\\\\storageaccount.file.core.windows.net\sharename\turboimages
Authenticate with your Turbo Portal using an API Key.
batch# Using API key turbo login --all-users --api-key=key-here
Lock down the client configuration, so users cannot change the repository path or other client settings.
turbo config --as-override --all-users
Register the shortcuts and file extensions for the applications in the subscription.
batch# Example: subscribe to the default workspace turbo subscribe --all-users --no-pull --register default # Example: subscribe to all workspaces available to the API Key turbo subscribe --all-users --no-pull --register --all
Commit the AVD gold image, so that the new AVD instances will spawn from it.
Important
When making changes to your Turbo Server that require a new image to be added to the image repository, such as pushing a new application version used by your workspace or adding a new application to your workspace, you will need to repeat the steps in the Prepare Shared Image Repository section to refresh the shared image repository. If the image repository is not refreshed, application launches will fail because the AVDs have read-only access to the repository and cannot pull the new images to it.
Turbo Client Configuration for Non-Persistent AVD with Baked-in Local Image Storage
In this example, we'll bake the local image storage and subscription data into the AVD gold image. In this case, application updates will require that the gold image is opened up and committed with an updated subscription.
When preparing your AVD gold image, install and configure Turbo Client.
batch# Install client for all users in silent mode. turbo-client-setup.exe --all-users --silent # Set the image path to allusers (C:\ProgramData\Turbo\Containers\Repo) # Note: Open a new command prompt after installation to get updated PATH turbo config --all-users --image-path=allusers # Set the Turbo Server URL turbo config --all-users --domain=https://turbo.mycompany.com # Enable auto registration of applications on user login turbo config --all-users --enable=AutoRegister
Authenticate to your Turbo Server and subscribe to your workspace.
batch# Login with API Key turbo login --all-users --api-key=key-here # When baking the subscription into the gold image, make sure to resume the subscription before updating turbo subscription --all-users --all resume # Subscribe to all workspaces that API Key has permission to turbo subscribe --all --pull --all-users # Suspend the subscription afterwards to prevent the subscription from attempting to update when the AVD instance is spun up turbo subscription --all suspend --all-users # Clean up old images turbo gci --all-users
Commit the AVD gold image, so that the new AVD instances will spawn from it.
Important
When making changes to your Turbo Server, they will not be applied to your AVD environment until you open up your gold image and repeat steps 2-3.
Suspending the subscription is a necessary step in order to prevent the non-persistent AVD instances from re-pulling all of the subscription updates when their state is reset, which quickly adds up when using large applications and hundreds of AVD instances.
Application Access
- Access the AVD Portal
- Verify application deployment through:
- Turbo Server workspace view
- Add/Remove Programs on session hosts