Desktop Virtualisation Project. (Design)
As I am currently engaged in a desktop transformation for a large company. I would like to share some thoughts and best practices from Citrix around this matter.
Traditional, organizations, manage their deskop delivery model using a device centric model. When we are looking at desktop virtualization, there is a shift where we want to deliver desktops and applications as a service.
You can ask yourself some questions:
Who are the stakeholders to make this project successful?
- Which users or user group should I virtualize first
- Is my current hardware environment able to support the new virtualization infrastructure?
Answering some of these questions is critical for a successful desktop transformation project.
Citrix Consulting build a model to support to help you with this.
The Desktop Transformation Model is a set of proven methodologies that can help with the desktop transformation process. The Citrix Consulting model is the most important part of the desktop transformation model.
This Consulting method includes four phases
The assessment phase is where business priority is identified. Data is collected, and the organization assess the users and applications
The next phase is where the design is made. How users will access the environment, which virtualization technologies is used. And what resources are required
The third phase is the deployment phase. This is the phase where the built, rollout and supporting the environment is designed.
The final and last phase is the monitoring phase. This is the phase where ongoing operations of the environment are placed.
When designing a solution, we need to understand the user’s requirements and their access to devices and locations, before we can make any decision around the desktop. The decision will directly impact the lower layer areas such as policies or controller configuration. So therefore it is very important to start with the user layer and work down to hardware layer in order to ensure all requirements are met.
As a consultant we normally would like to ask how much hardware is required. If we work through a so called 5-Layer model from top to bottom, we are better able to determine the final requirements.
As we are going through the layers, the user layer is the most important layer. It is important to spend enough time on the user requirements and needs or the virtual desktop project will fail.
The user layer focuses on decisions for each of the user group within an organization:
- Type/Form Factor
At this point as part of the previous assessment you know the user groups, applications, mobility and security requirements, local resources (USB, LPT)
For each of these user types ensure that the Receiver type and Endpoint meet the requirements.
Furthermore you need decisions around the distribution of Receiver.
Receiver Deployment, Updates:
- Software Distribution
Bring your own device (BYOD). This is something many companies are considering. There is a basic workflow available from Citrix, to help identify if a user or group are suitable for BYOD from a technical perspective.
As mentioned before one other decision is down to the endpoint selection. Nowadays there are more endpoint selections possible then just a PC. Therefore it is very important to understand what capabilities are of the endpoints and how the map to the user requirements. The following matrix will help out on making this decision.
Companies often consider using old hardware as part of the virtual desktop project. But you want to keep in mind that there are some considerations when deciding on repurposing old pc. The following table describes the decisions:
|High number of virtualized applications||x|
|Desktop failure rate (Out of warranty)||x|
|Power Consumption (Green IT)||x|
|Heavy Multimedia (HDX, VOIP apps)||x|
The access layer contains the servers and appliances required to connect end-users to virtual desktop. This layer handles user validation and authentication. This layer also is responsible for accessing all components necessary to establish a secure virtual desktop connection.
When considering the authentication point, you need to identify how users will access the system;
- Local Users (Internal corporate network)
- Remote Users (Access through NetScaler Access Gateway)
When considering local access, the preferred solution is StoreFront. StoreFront has more benefits then Web Interface. For instance; Follow-me apps and data, self service, roaming access. Web/SaaS apps.
Once the point of authentication has been identified, the type authentication policy must be decided. This may be different for each company.
- LDAP Username & Password
- LDAP + Token
- LDAP + Smartcard
- Token + Smartcard
Understanding the Access Bandwidth requirements is important when determining how much bandwidth is required for WAN connectivity. The following table will help in deciding this:
|User Workload||Activity||Average Bandwidth|
|OpenGL||3D Modeling||1945 Kbps|
The overall user acceptance of the desktop virtualization project is defined by the decisions made within the desktop layer.
Personalization, applications and the overall desktop image play an important role in how well the desktop is aligned with the user or group requirements. These requirements where identified within the User and Application Data Capture during the assessment phase.
So the most important decision is all about:
User Personalization, user profiles and data are critical to a successful virtual desktop design. If users don’t have their settings and data available, they are not going to have a good experience.
The User Personalization component is more than just Profiles. Users will have to feel like the VDI desktop they connect to is “theirs”
You may want to look at the following things:
- Folder Redirection
- Leveraging Citrix Profile Manager, AppSense, RES
- Create Baseline Policies
- Use Group Policy Preference
Application Delivery, In a traditional desktop environment most applications are installed locally on the endpoints. Within are virtual desktop environment, applications should be delivered via a combination of streaming (App-V), Published or locally within the image for better persistency. Before you can choose the right solution, you will have to classify the applications against the following criteria;
- Compatibility (Operating System, Prerequisites, Dependencies)
- Technical (Resource Use, Backend Infrastructure)
- Business (Licensing, Update Frequency
Desktop Image Delivery, this is the mechanism in which desktops are delivered. There are two choices at hand Provisioning Services (PVS) or Machine Creation Services (MCS)
The control layer consists of all the components required to manage and maintain the virtual desktop environment. Generally speaking when we design the control layer we want to make sure that all components are available, and sized large enough for a good user experience. When logging in and connecting to desktops or applications.
These components consists :
A single XenDesktop Controller with 4vCPUand 8GB of RAM should be sufficient, to handle 5000 user connections. When designing always make sure to include N+1 for redundancy.
The following formula could be used
#XenDesktop Controllers=Target#Users per pod/5000 +1
For license server, a single license server with VM level HA configuration should be enough. All the Citrix components have a grace period when the License Server is not available. So it can be restored from a backup.
As with other infrastructure components, Desktop Director should also be configured with N+1 for redundancy. One single Desktop Director Server can handle up to 20,000 desktops.
#Desktop Director Servers=Target#Users per Pod/20000 +1
All information is stored in the site configuration database; controllers only communicate with the database and not with each other. A controller can be unplugged or turned off without affecting other controllers in the site, however this does mean that the site configuration database forms a single point of failure. If the database server fails, existing connections to virtual desktops will continue to function until a user either logs off or disconnects from a virtual desktop; new connections cannot be established if the database server is unavailable.
There are three high availability solutions to consider for ensuring automatic failover:
- SQL Mirroring.
- SQL Clustering.
- AlwaysOn Availability Groups.
A quick formula for the database sizing
Database Size= #users/5000 * 40mb
Transaction Log Size=#users x 3mb per day
Virtual provisioning servers can typically handle 1000-1500 streams per server if sized correctly. One of the biggest considerations when sizing provisioning servers is to make sure that there is enough RAM allocated to keep the streamed images in memory. This will avoid performance hits inherent in going back to storage to retrieve the stream data. As a rule of thumb, assume 2 GB of RAM required per active desktop image, and 10 GB of RAM per server image. As with all estimates, these should be tested to ensure adequate sizing before going to production. As with controllers, assume N+1 redundancy requirements.
This is the final layer within the five layer model. This includes servers, processors, memory, storage devices etc… This layer is designed at each datacenter and includes all of the physical devices required to support the virtual desktop solution. It is a good option to break this down into 3 groups.
- Servers hosting Infrastructure Servers
- Servers hosting XenDesktop workload
- Servers hosting XenApp workload
The focus and decisions on the hardware layer is around decisions on providing adequate resources to support the virtual desktop environment. This is the layer in which you design for and plan the “number of users per box” or total capacity and IOPs the storage array will require. The importance of the design decisions within this layer are not only making estimates for planning, but actually doing testing to validate what the actual numbers that are seen within the environment. Generally speaking we have all see on guidelines on what to expect for server, bandwidth and IO sizing, but all of these decisions need to be validated with testing within your own environment
The following chart that was taken out of the “Virtual Desktop Handbook” provides a starting point to help size server hardware based on the CPU cores.
The first one is to do single server scalability. Doing scalability testing is tedious, but should be completed as part of a virtual desktop project. This is the best way to validate the numbers you are estimating. Tools such as LoginVSI are a good way to get started. There is an express version out there that allows you to test 50 concurrent users for 30 days.
Another, note from the field is ensuring that physical servers are configured for “High Performance” within their BIOS. By default, servers are shipping with “Power Saving” enabled, so their clock speed might spin down or flop if this is not hard configured.
Hyper threading is something I recommend enabled for Virtual desktop workloads. However, just because you have twice as many logical cores by enabling hyper threading, don’t assume double the performance. Expect a 10-20 percent density gain with hyper-threading enabled.
To conclude, the best way to ensure that you’re virtual desktop design leads to successful implementation is to go though these steps in a methodical process. Just by using the information gathered during the assessment stage, and intergrade them in the design.
By starting with the user layer and working through the remaining layers there is a logical flow. And by looking at this as a block based approach, this will allow you the scale in the future at block level
Reference materials used: Citrix.com, Support.citrix.com and the E-Docs website.