Applies to: Nerdio For Azure (NFA) Enterprise edition only. Not available in Nerdio for Azure Professional or Core edition and Nerdio Private Cloud (NPC).
An RDS session host is responsible for serving up virtual desktops. As users log in to their virtual desktop and do their work, load on the RDS session host increases. This leads to higher CPU consumption and could lead to degraded performance for users. There are two ways to address this situation - scale up or scale out the RDS session host.
Scaling up is achieved by increasing the VM size of the RDS host. For example, you could increase the VM size from a D1v2 to D2v2, effectively doubling CPU and memory capacity.
Scaling out is achieved by adding another similarly sized RDS session host and spreading the workload across multiple servers. For example, you could add another D1v2 to the RDS host pool, effectively doubling CPU and memory capacity.
This article does not go into the pros and cons of each approach. Nerdio supports both approaches. You can achieve scale up & scale down functionality by using our desktop auto-scale feature, and you can achieve scale-out & scale in functionality by using our RDS Collections feature.
- The costs of running a RDS collection is going to be higher than managing individual RDS session hosts. That's because RDS Collections include a VM for RD connection broker and there's a template which will incur storage costs for large part, but there will be additional VM charges when it's powered on.
- User Profile Disks (UPDs) are needed in the RDS collection deployment scenario, which precludes you from using OneDrive client (installed) on the virtual desktop. With individual RDS session hosts, user profiles are native (i.e. non-UPD) and work with OneDrive installed client.
Background
An RDS Collection is a dynamic pool of RDS session hosts. RDS host servers are added and removed from the pool based on load. The system determines the load by looking at average CPU usage across all active hosts in the Collection. You configure thresholds that determine when a host will be added or removed from the pool of hosts.
When an RDS host is added to collection, new user logins are automatically directed to the new session host. This caps off the number of users on the other active RDS hosts, spreading the workload from new users to a new RDS session host. When the workload falls below the configured threshold the system will remove RDS host(s), starting with the host that has the least number of users logged in. RDS hosts that are identified to be removed are placed in "drain mode" to prevent any new users from logging in to the server. A warning message can be displayed to the affected users providing them with instructions to log out and log back in to continue working.
RDS Collection is available in Servers module. Log in to Nerdio Admin Portal (NAP) and click Servers from the main menu. Scroll down to "Manage RDS Collections" section.
Preparing to set up RDS Collection
An existing RDS session host is used as the seed for creating an RDS Collection. This seed RDS session host server is used to create a template for the RDS collection. Once the template is created you can customize the template by installing applications or changing VM size. RDS session hosts added to the collection are copies of the template.
You can choose to use any generic existing RDS session host server as the seed and then customize the template later.
Another option is to pre-customize an existing RDS session host server with the right applications and sizing it correctly, and then using it as the seed for a new RDS Collection.
Setup a new RDS Collection
Setting up a new RDS collection is a three-step process.
Step I – Create a RDS Collection
First, create a new Collection:
- Log in to Nerdio Admin Portal and navigate to Servers module.
- Scroll down to Manage RDS Collections section.
- Click Add collection button.
- Select options on the screen. Note that the RDS session host you select will be used to create a template for the RDS Collection. The template, in turn, is used to spawn RDS session hosts as the Collection needs to scale out. The RDS session host will be restarted and generally unavailable while the collection is being created.
- Click Save. The process to create a Collection takes an hour or longer.
Step II – Configure settings for RDS Collection
You may configure scale out and scale in settings for the Collection once the Collection has been created:
- Log in to Nerdio Admin Portal and navigate to Servers module.
- Scroll down to Manage RDS Collections section and locate the RDS Collection you created.
- Under the Action menu, select option "Manage auto-scale"
- Follow onscreen prompts to enter scale out and scale in settings.
- Click Save when done. Note that the Settings will go in to effect immediately.
Let's take a minute to discuss a couple of settings on this screen.
- Minimum standby hosts (powered off): When it's time to add an RDSH host to the collection, Nerdio has two options. Option 1, which is the default, is to provision a new RDSH VM from scratch in Azure. Option 2, which is what the setting allows, is to have provisioned some RDS host(s) ahead of time but keep them powered off. In this case, when an RDSH host is needed, Nerdio has to simply power on the VM. As you can imagine, this takes significantly less time than provisioning a VM from scratch.
- Pre-stage servers: A scheduled task is run 30 minutes prior to scheduled time, to power on standby hosts and create new hosts to meet the number of hosts to be ready setting. If hosts are already on, no action is taken. If some are on, a few more are created to meet the condition. This is a one time per day event that brings the collection into the desired state.
Step III – Assign users to RDS Collection
You can now assign users to RDS Collection. This is similar to assigning users to an RDS session host:
- Log in to Nerdio Admin Portal and navigate to Users module.
- Click on an existing user or create a new user.
- On the Add/Edit User screen, select option RDS for Desktop.
- Your RDS Collection will be available as an option in the drop-down. Select it.
- Click Save and allow the save operation to complete. You can monitor progress in the User Management Tasks section.
- Navigate to Servers module and scroll down to Manage RDS Collections section.
- Locate the RDS Collection you created.
- Look for the number of assigned users under the Name column. The number should reflect the number of users you assigned to the Collection.
Managing an RDS Collection
Once an RDS Collection is set up, you can monitor users assigned to Collection, hosts in the Collection and overall health of RDS Collection.
Status of RDS Collection
An icon next to RDS Collection's name indicates an overall status of the RDS Collection. Hovering on the icon displays the RDS Collection status. The icon is color coded as well -
- If any host in the collection is running, the icon will be green.
- If all hosts in the collection are not running, the icon will be red.
Managing the template
The template of an RDS Collection is a very critical component of the Collection. It is used to spawn RDS session hosts when a Collection needs to scale out. You must make sure to keep the template up-to-date and keep any existing RDS session hosts up-to-date with the template.
- Log in to Nerdio Admin Portal and navigate to Servers module.
- Scroll down to "Manage RDS Collections" section and locate the RDS Collection you created.
- Under the Action menu, select option "Manage hosts".
- Scroll down to Manage Template section.
- Click button "Power on to modify".
- The task to power on the template can take up to 30 minutes. You can monitor the progress of task in the Server management tasks section.
- Once the task completes note the IP address assigned to the template.
- You can now remote into the template and install the latest Windows updates, applications or make any other changes.
- The template will not be accessible from the public internet. To remote into the template, remote into publicly accessible server such as FS01 first and then remote into the template using the IP address.
- Once you have completed updating the template, make sure to click "Powered off and set as image" button. RDS session hosts will be provisioned from the updated template only when the template is powered off.
Any existing RDS session hosts in the collection will not be updated when the template is updated and powered off. You must specifically update such hosts:
- Log in to Nerdio Admin Portal and navigate to Servers module.
- Scroll down to "Manage RDS Collections" section and locate the RDS Collection you created.
- Under the Action menu, select option "Manage hosts".
- Locate the host you would like to update and select option "Update host" from Action menu:
- Confirm the action you are taking. Note that the host will be updated immediately and will be restarted during the process. Any users currently connected to the host will be logged out.
Managing hosts
Once a RDS collection is ready, you can perform the following tasks:
- Manage auto-scaling of your VMs
Nerdio provides a mechanism to auto-scale your VMs as per your business requirement. Scaling out is achieved by adding another similarly sized RDS session host and spreading the workload across multiple servers. For example, you could add another D1v2 to the RDS host pool, effectively doubling CPU and memory capacity. To enable the auto-scale option:
- Select "Manage auto-scale" option on the RDS collection
- Edit the VM size (template)
- Edit the VM disks (template)
- Set boundaries by specifying the minimum and maximum number of active hosts in your collection along with minimum hosts on standby (power off) mode in your collection
- Specify the scaling logic: Specify the scaling logic as per your performance requirements:
- For example: Add a host if average CPU usage across all hosts exceeds x% (say 65%) for Y minutes (say 10) or
- Remove a host if average CPU usage across all hosts falls below A% (say 40%) for B minutes (say 20) and
- Start removing hosts only after Z time (specify the time zone)
- Set a message to inform the hosts when you change any configuration: In an event when you plan to remove a host, you need to notify all hosts within a collection. All you need to do is type in a warning message and set the time when you wish to notify the users. The warning message that their VMs will be temporarily unavailable for a short duration.
Comments (0 comments)