Published: February 25, 2008
A terminal server farm is a group of terminal servers that publish an identical set of applications. When a user connects to a terminal server in the farm, his or her session request is passed to the TS Session Broker role service, which uses a load balancing algorithm to redirect that session request to the least-loaded server in the farm.
Note A Windows Server 2008 Terminal Services farm can include servers running Windows Server 2003 Terminal Services. However, in a mixed farm like this, TS Session Broker load balancing cannot be used. So if there are applications that must remain on Windows Server 2003, it is recommended that they be in a separate farm.
The goal of this step is to arrive at an optimal number of terminal server farms for the Terminal Services design. At the completion of this step, the number of terminal server farms and their locations are recorded so that the remaining sizing and capacity steps can be completed.
Task 1: Determine the Number of Terminal Server Farms
Best practices suggest that a design should start with a single farm, and then add more farms only when required. Listed below are conditions that could require additional terminal server farms. Use this list to consider the number of additional farms that may be required:
- Clients separated from the current farm by WAN speeds. If there are more users accessing the terminal server farm than the link back to the farm can accommodate, an additional terminal server farm may be placed at the remote location. In that case, make sure that the links from that farm to back-end services, such as databases that will be remote, have sufficient bandwidth. Alternatively, examine whether increasing the bandwidth of links between the farm and the remote clients may be more effective than instantiating another farm.
- Traveling users. Determine whether additional farms or upgrades to bandwidth may be required to accommodate traveling users. If a number of users or users from a critical group regularly travel to other locations, steps may need to be taken to ensure that their applications can be delivered within the expected service level at those remote locations. This may require that additional farms be instantiated at the remote locations, that the bandwidth to those locations be upgraded, or that capacity be added to accommodate the traveling user. For example, a location in London, England, may host a farm for users that frequently travel there from the United States.
- Requirements to run different versions of the same software, or to have different versions of the same files, such as DLLs. If users require access to more than one version of software or files and if the different versions cannot coexist, the different versions will have to be run on separate terminal server farms. However, it may be possible to use Microsoft Application Virtualization to overcome this by running each application in its own virtual environment on the terminal server. In this case, the application must be supported for delivery by Microsoft SoftGrid Application Virtualization, and a Microsoft SoftGrid Application Virtualization environment will need to be instantiated.
Note At the time of writing, Microsoft SoftGrid Application Virtualization does not support 64-bit environments.
- Security limitations in some clients. Limitations in some of the clients may drive implementation of the application suite on two (or more) separate farms at different security levels. There may be applications that require a security implementation that can only be delivered by restricting terminal server access to clients that can support the latest security features available, such as Network Level Authentication. The security features that are available for server-client communication depend on the level of the RDC client and on the level of the operating system. So applications requiring the highest levels of security may need to be instantiated in a separate terminal server farm. Clients running earlier versions of RDC or lower levels of the operating system will not be able to connect to that farm.
Compare required security levels with the security capabilities of the users who need that application. Can each client conform to the security requirements? If not, upgrade the user’s RDC client, lower security for that case, remove the application from the project, or allow the users to run it locally. Or, set up a separate, lower-security terminal server farm for the legacy clients until they can be upgraded.
- Internal and external user populations. Where the same applications are being published both to internal and external users, the external users may be separated on a different farm. This separation may be required by the business even though the applications and their data are identical.
- Specific encryption requirements. There are certain levels of encryption that are legal only in certain countries or regions. Terminal servers can be configured to allow the client using the highest encryption it is capable of or to deny connections from clients unable to comply with a certain level of encryption. Using the latter setting may require that terminal server farms be split if a legacy client requires access to some applications.
- Organizational requirements to separate business groups. For security reasons, the accounting department may not want non-accounting personnel to be able to log on to servers containing accounting information, or Research and Development may require the higher security levels of the most recent client, which means that clients unable to comply with the security policy must connect to a different farm.
- Legal considerations requiring a separate farm. National security, privacy issues, and fiduciary laws could require the separation of certain data or prevent other data from crossing national borders. If necessary, place farms to address this need.
Start with one terminal server farm, and then place additional farms in the design as required by the above reasons.
At the completion of this step, the number of terminal server farms and their locations have been determined. Record the number of farms, and create a job aid like the one shown in Appendix C: “The Farm Design Job Aid.” Record in it the reason that each farm must be added.
The next step is to assign applications to those farms so that the size of each farm can then be calculated in a later step.