Virtualization: VDI session-based deployment

When running a VDI session-based deployment, take steps to ensure you’ve done so with an eye toward expansion and availability.

Kristin Griffin and Freek Berson

The manner in which a Microsoft virtual desktop infrastructure (VDI) Quick Start session-based deployment installs the three Remote Desktop Services (RDS) role services onto one server works fine for testing purposes. In a live environment, though, you need to architect for availability and possible future expansion.

This means you should install the RDS role services (RD Session Host, RD Connection Broker and RD Web Access) across multiple servers. The VDI Standard session-based desktop deployment can be the basis of a highly available deployment with room for expansion. A VDI Standard session-based desktop deployment will:

  • Install the RD Session Host server role service on a single (or multiple) server
  • Install the RD Connection Broker role service on a server
  • Install the RD Web Access role service on a server
  • Establish communication between all RDS role services to create a working environment

To begin the process, add all servers involved to the Server Manager on the deployment server. From the deployment server, open Server Manager and on the Dashboard click “Add other servers to manage.” On the Add Servers screen, click Find Now, then press Control and click to select each destination server. Then click the arrow button in the middle of the screen to move those servers to the right-hand pane, and finally click OK (see Figure 1).

Select the servers that will run the services that power your deployment

Figure 1 Select the servers that will run the services that power your deployment.

Start the deployment by clicking the Add Roles and Features Wizard link on the Server Manager Dashboard. Click Next on the Before You Begin screen. On the next screen (see Figure 2), select “Remote Desktop Services installation.” Then click Next.

Select an RDS installation to create a session-based deployment

Figure 2 Select an RDS installation to create a session-based deployment.

On the next screen select “Standard deployment” and click Next. On the next screen choose the “Session-based desktop deployment” deployment scenario and click Next (see Figure 3). The next screen reviews the role services you’ll have installed in this deployment. Once you’re satisfied, click Next.

In the Add Roles and Features Wizard, choose your Deployment Scenario

Figure 3 In the Add Roles and Features Wizard, choose your Deployment Scenario.

At this point, you’ve defined the servers to use and the type of deployment. To begin the actual deployment, start with the RD Connection Broker. Choose one server from the server pool on which to install the RD Connection Broker role service by highlighting that server in the left pane and clicking the arrow to move it to the right pane. Then click Next.

This wizard implies you can install RD Connection Broker on more than one server, but you can’t. The installation won’t proceed if you choose more than one server for those roles. For now, choose one server for each RD Connection Broker (see Figure 3).

On the next screen, choose a server from the server pool to be the RD Web Access server. Move that to the right pane, then click Next. On the next screen, choose a server or servers from the server pool (now you can choose more than one) upon which to install the RD Session Host role service. Then move the servers to the right pane, and click Next (see Figure 4).

Indicate which servers you want running which services

Figure 4 Indicate which servers you want running which services.

The next screen will confirm your selections and tell you which servers you’ll need to reboot after the installation. Check the box next to “Restart the destination server automatically if required” and click Deploy. The deployment process will begin, showing you the progress of each server. Assuming all goes well, you’ll see a screen telling you the deployment was a success.

You’re not quite done, though. The role services are installed, but after the Standard deployment wizard is complete, you still have a few steps to create a usable environment:

  1. Create a session collection to define the group of RD Session Host servers that will act as a collective unit.
  2. Add a user group (or groups) allowed to access the session collection.
  3. Publish RemoteApps or full desktop sessions.

Create a session collection

When you open Remote Desktop Management Service (RDMS), you won’t see any session collection listed under the Deployment Overview’s RD Session Host icon or under the Collections section. So you’ll have to create one.

You can’t publish RemoteApps or desktops outside a collection in Windows Server 2012. Make sure that you have at least one RD Session Host server and that you’ve already created the domain user accounts (and user groups) to which you’ll provision applications. To create a session collection, open Server Manager on your deployment server. Click the Remote Desktop Services category in the left-hand column, then click Collections. Inside the Collections area, click on the Tasks dropdown and select Create Session Collection.

From the Deployment Overview screen (see Figure 5), you could also right-click the RD Session Host icon and choose Create Session Collection. Click through the “Before you begin” screen to remind yourself of the prerequisites. Then on the “Name the Collection” screen, provide a name and description for the session collection and click Next. On the Specify RD Session Host Servers screen, select the RD Session Host servers you want to add to the collection from the Server Pool pane. Add them to the Selected pane by clicking the arrow button in between the two panes, then click Next.

The Deployment Overview screen gives you a quick view as well as configuration options

Figure 5 The Deployment Overview screen gives you a quick view as well as configuration options.

Specify user and group access

Now that you’ve created a session collection, you’ll need to select the domain users or user groups to which you will grant access. The Domain Users group is already added by default. You can remove this group by clicking on it and choosing Remove. Click the Add button to launch the Select Users or Groups dialog. Choose the appropriate users or groups and click OK.

The next screen lets you configure User Profile Disks (UPDs). UPDs are a new way to centrally store user profile settings and data. For now, deselect “Enable user profile disks” and click Next.

The confirmation screen will summarize what you’ve configured during this wizard. Review the summary and choose Create. When the View Progress screen shows the wizard has finished, confirm that both activities display a Succeeded status and click Close.

You’ll be able to see the session collection you’ve just created in RDMS under the Collections section. Select the session collection in the left pane to view the details.

To test the full desktop deployment, open Internet Explorer and browse to the deployed RD Web Access URL. Log in with user credentials permitted to access this deployment. You should see an icon for a full Remote Desktop connection. Click the icon, then click the Connect button in the new window to open a full Remote Desktop connection.

Publishing RemoteApps and full desktop sessions

The Session Collection Properties section in RDMS lists the Resources as “Remote Desktop” by default. Publishing RemoteApps replaces the “Remote Desktop” Resource listing with “RemoteApps.” You can’t provide both RemoteApps and full Remote Desktop sessions from a single session collection in Windows Server 2012.

To publish a set of RemoteApps, click the “Publish RemoteApp programs” link in the middle of the RemoteApp Programs section. Alternatively, you could also click the Tasks dropdown menu and choose Publish RemoteApp Programs.

The wizard will scan the server and return a set of common programs located on the RD Session Host servers. When publishing RemoteApps in a farm scenario, the wizard will scan only one server for a list of programs. The RDS model assumes all RD Session Host servers in a collection are identically configured with the same installed applications.

Check the box next to one or more programs to publish as RemoteApps and click Next. You can also add applications outside the default list by clicking Add and browsing to the program to publish. Then the wizard will show a confirmation dialog that contains the RemoteApps you selected. Click Publish. On the Completion screen, verify that all RemoteApps have the status Published and click Close.

On the RDMS session collection main screen, the Properties section will list the Resources as RemoteApp Programs. The RemoteApp Programs section will list the published RemoteApps. Testing RemoteApp availability is much like testing the published full desktop session. Open the RD Web Access page to get to your deployment. Then log in and click one of the RemoteApp icons. Click Connect on the pop-up window (see Figure 6). If the application opens, it was published successfully.

You can run RemoteApps once they’re published

Figure 6 You can run RemoteApps once they’re published.

Scaling out

The result of running a Standard deployment may seem similar to a Quick Start deployment. Both make either full desktop sessions or RemoteApps available. However, only the VDI Standard session-based deployment provides a path to creating a highly available environment. It lets you deploy the RDS role services across multiple servers from the start.

To expand on this process, here’s how to add more RD Web Access servers and more RD Session Host servers. Click the icon in the RDMS Deployment Overview panel and choose Add RD Web Access Servers or Add RD Session Host Servers. Choose the servers you wish to add from the Server Pool list and move them to the Selected pane, then click Next. On the Confirmation screen, click Add. If you add an RD Session Host server, you’ll need to reboot, so be sure to check the check box on the confirmation page next to “Restart the Computer as Needed.”

Once installation is complete, you can add the newly added RD Session Host servers to a session collection. Select a session collection listed under Collections in RDMS. In the Host Servers section, pull down the Tasks menu and choose Add RD Session Host Servers. Choose the server from the Server Pool, and add it to the Selected pane using the middle arrow button, then click Add.

You should now know how to run the VDI session-based Standard deployment wizard and how to configure the deployment to publish either full desktop connections or RemoteApps. Next time, we’ll concentrate on how to use RDMS to further configure and manage your session-based deployment.

Kristin Griffin

Kristin Griffin is a Remote Desktop Services MVP. She moderates a Microsoft forum dedicated to helping the server-based computing community (Remote Desktop Services) and maintains an RDS blog at blog.kristinlgriffin.com. She’s a contributor to Mark Minasi’s “Mastering Windows Server 2008” (Sybex, 2008) and “Mastering Windows Server 2008 R2” (Sybex, 2010). She also coauthored “Microsoft Windows Server 2008 Terminal Services Resource Kit” (Microsoft Press, 2008) and “Microsoft Windows Server 2008 R2 Remote Desktop Services Resource Kit” (Microsoft Press, 2010) with Christa Anderson. She moderates and answers questions on the Microsoft RDS TechNet Forum.

Freek Berson

Freek Berson is a Remote Desktop Services MVP. He’s an infrastructure specialist at Wortell, where one of his focus areas is desktop virtualization. Berson blogs at themicrosoftplatform.net. He also moderates and answers questions on Microsoft TechNet Forums and creates new content for TechNet Wiki.

VDI Q&A

Q. Can I install Remote Desktop (RD) Connection Broker and RD Session Host role services on the same server to consolidate servers?

A. Technically you can. Be aware, however, that if you create a farm of multiple RD Session Host servers with one RD Connection Broker (running on one of your RD Session Host servers), then the RD Connection Broker is the single point of failure. Although you have multiple RD Session Host servers, your users won’t be able to reach them if the RD Session Host server that also runs RD Connection Broker fails.

You could expand the previous scenario by installing the RD Connection Broker role on both RD Session Host servers and making RD Connection Broker also highly available. For production environments, however, we always advise you to install the RD Session Host and RD Connection Broker role services on dedicated servers.

Q. I created a second session collection. However, there aren’t any RD Session Host servers in my deployment to add to this session collection.

A. Most likely, all RD Session Host servers are already assigned to a session collection. An RD Session Host server can only be part of a single session collection. So you’ll have to either remove servers from the first session collection or create additional RD Session Host servers and add those to the deployment.