The use of hardware-level failover is not recommended since the hypervisor is unaware of hardware-level failover efforts and reports errors stating lack of redundancy. (Only one network is visible to the hypervisor.) Instead, individual vNICs can be created for each fabric (A and B), with hypervisor-level bonding providing redundancy. This document suggests the creation of vNICs to match the VLANs created—creating one vNIC for each fabric (A and B), and for each VLAN created (Figure 29).
Fabric Interconnect - A Fabric Interconnect - B
Ethernet Switch NPV Ethernet Switch NPV
vEth1 vEth2 vEth3 vEth4 vEth1 vEth2 vEth3 vEth4
VNTAGs through Fabric Extender A VNTAGs through Fabric Extender B
Cisco Virtual
VM_Motion-BVHBA 1 VHBA 2
vif 0 vif 1 vif 2 vif 3 vif 4 vif 5 vif 6 vif 7 vmhba
0 vmhba
1
MGMT Bond VM_Data Bond IP_Storage Bond VM_Motion Bond
Citrix XenServer on Cisco UCS B200 M3 Blade Server Figure 29. Cisco UCS Virtual Interface Card design for Citrix XenDesktop
Two vNICs for each traffic type (MGMT, VM_DATA, IP_STORAGE, VM_MOTION) are created and tied to Fabric Interconnect A and Fabric Interconnect B,
respectively. A total of eight vNICs are presented to the hypervisor. The hypervisor performs bonding and presents four networks that are used by virtual machines and management.
Figure 30 shows the creation of a vNIC template in the LAN tab > vNIC Templates section. It requires the combination of the attributes created earlier, such as VLANs, MAC pools, and QoS policies. Select the respective policies and attributes created for each traffic type. A Target must be selected. In this case, the Target is an adapter.
In addition to the vNIC design, vHBAs are created on the VIC. In this design, two vHBAs are created for configuring hypervisor Boot from SAN with multipathing.
Figure 30. vNIC template creation
Note: Selecting MGMT as a native VLAN is required for Citrix XenServer, as Citrix XenServer does not support management traffic over a non-native VLAN.
In addition, selecting a target option other than adapter enables advanced configuration of the VIC, such as VN-LINK in hardware, where all virtual machine traffic bypasses the hypervisor. This feature is not supported in Citrix XenServer 6.0.2 and Hyper-V Server 2008 was not tested for this design.
Figure 31 shows all the vNIC templates created. These vNICs are used when creating service profiles.
Figure 31. vNIC template design for Citrix XenDesktop
VSANs
At a minimum, two VSANs must be created (one for Fabric Interconnect A and one for Fabric Interconnect B. During configuration, these are attached, respectively, to the vHBAs used by the multipathing capable hypervisor BFS. While VSANs are made available only within Cisco UCS, they must be created on an upstream SAN switch (such as the Cisco Nexus 5548UP Switch).
Figures 32 and 33 show VSAN-A and VSAN-B creation for Fabric Interconnects A and B. The VSAN ID should match the VSAN ID created on the upstream SAN switch, as well as the FCoE VLAN ID created on the upstream SAN switch.
Note: As a best practice, the FCoE VLAN ID is created with a higher range number that matches the VSAN ID for better management. For example, FCoE VLAN ID 2012 is created for VSAN ID 12.
Figure 32. VSAN for Fabric Interconnect A
Figure 33. VSAN for Fabric Interconnect B
vHBA Templates
Similar to vNIC templates, vHBA templates are created to include the VSANs. In this case, two vHBA templates are created, tying one to Fabric Interconnect A and one to Fabric Interconnect B (Figure 34). Other attributes attached to the vHBA template include the VSAN and WWNN pool.
Figure 34. vHBA template configuration
Multipathing or bonding configurations are possible when configuring hypervisor BFS. When possible, multipathing is recommended to achieve higher utilization by leveraging both active/active paths.
Note: In this design, Fibre Channel BFS is recommended, as iSCSI BFS is not supported with current versions of Citrix XenServer 6.0.2.
Service Profile Configuration
After all pools, policies, vNICs, and vHBA templates are created, a service profile can be created and against a blade server. Testing should be conducted to confirm that all applied settings are performing as expected. Upon completion, a service profile template can be created from the service profile. This template can be used to create multiple service profiles that can be applied to individual blade servers or server pools.
The following steps create a service profile based on the objects created earlier in this document. These objects are associated with a server, enabling the server to obtain the identity defined by the profile:
First, apply the UUID pool as shown in Figure 35:
Figure 35. Creation of a service profile
Next, apply the two vHBA templates and set the WWPN pool assignments (Figure 36 and Figure 37). If vHBA templates are not created, individual vHBAs can be created at this step. Creating templates upfront enables better manageability.
Figure 36. Applying the first vHBA template
Figure 37. Applying the second vHBA template
Figure 38. vHBA assignment
Similar to vHBA template assignment, the next step is to assign all eight vNIC templates to the service profile. Figure 39 shows a vNIC template being applied.
Figure 39. Applying the vNIC template configuration
Figure 40 by shows a view of the vNIC template assignments.
Figure 40. vNIC templates
The next step is to assign the vNIC and vHBA placements. It is important to note the order is internal to Cisco UCS system and does not determine the order in which the vNICs are seen by the hypervisor. To match a specific vNIC with a virtual interface on the hypervisor, it is recommended to perform a one-time, manual check after the hypervisor is installed. (The MAC addresses used earlier can help identify the adapter within the hypervisor. For example, the 1A in the MAC address corresponds to MGMT-A, and the 3B in the MAC address corresponds to VM_MOTION-B).
Figure 41. vNIC and vHBA placement
Next, specify the boot policy created to define the boot order for the blade server.
Figure 42. Specifying the server boot order
Next, apply the maintenance and operational policies.
Figure 43. Applying the maintenance policy
Figure 44. Applying server assignments and firmware management policies
Figure 45. Applying operational policies
Once the service profile is created, it can be associated with a blade server for initial testing. Upon completion of testing, the next step is to create a service profile template from the service profile by right clicking on the service profile (Figure 46).
Figure 46. Creating a service profile template
Typically, an updating template is created. With an updating template, all ongoing changes made to policies and objects are applied to the associated template, as well as the profiles created from the template. This provides the simplest way to push changes to an environment. Therefore, it is important to evaluate settings prior to making changes, as they will directly apply to the blade servers upon reboot.
Figure 47. Creating an updating template
Once a service profile template is created, it can be used to create multiple service profiles that can be applied to blade servers (Figure 48).
Figure 48. Creating service profiles from a template
Summary
This white paper demonstrated the simplicity of scaling deployments. After a service profile template is created using the recommended best practices for hosting Citrix XenDesktop on Cisco UCS, it is extremely easy to scale the infrastructure to multiple servers for hosting virtual machines.
Appendix A: Automation with Cisco UCS PowerTool for UCSM Following the best practices outlined in this document, a Microsoft Windows PowerShell script was written to automate the creation and configuration of many of the pools, policies, and templates required in a Citrix XenDesktop environment, culminating in the creation of a Cisco UCS service profile. The service profile can be used to create one or more service profiles that ultimately are applied to physical servers used to host virtual desktops created with Citrix XenDesktop.
Designed primarily for proof of concept (POC) environments, the script assumes a relatively clean Cisco UCS environment is being used, with very little configuration already completed. It does not check for existing configurations, and if a conflict arises, the script issues an error.
The script takes the name of an Excel configuration file containing information needed for configuration. An optional input switch is available to specify output logs should be sent to the console. For example:
/UCS_Config_Excel.ps1 -ExcelFile XenDesktopBP.xlsx -ToConsole Starting around line 350, the script includes a commented-out section. This section could output all variables from the worksheet and derived variables to help with troubleshooting efforts. Another commented-out section starts around line 505. This section can be used to clean up a Cisco UCS Platform Emulator environment prior to the creation of the pools, policies, and templates. The script creates the items listed in Table 3, using input from the Excel Configuration worksheet.
Table 3. Items created
Templates Policies Pools
Service profile template BIOS policy Management IP pool
8 vNIC templates the template created in this script 4 vHBA templates
For 4 vHBAs, only 2 are used by the template created in this script
4 QoS policies
One each for the management, virtual machine data, motion (vMotion), and IP storage networks
8 MAC pools
One each for the management, virtual machine data, motion (vMotion), and IP storage networks, and fabrics A and B Other
QoS system class
settings 2 VSANs,
One each for fabrics A and B 4 VLANs
One each for the management network, virtual machine data network, motion network (vMotion), and IP storage network
Two parameters can be used at script launch.
• –ExcelFile, followed by the name of the Excel file. This file must be in the same directory as the script. The example below reads the XenDesktopBP.xlsx file and outputs the status of configuration to the Powershell console.
./UCS_Config_Excel.ps1 -ExcelFile XenDesktopBP.xlsx -ToConsole
• -ToConsole, if specified, prints output to the console. If the –ToConsole switch is not used, only the name of the Excel Configuration file needs to be specified.
The example below reads the XenDesktopBP.xlsx file and creates the UCSM_
Configuration_Script_Log.txt output file.
/UCS_Config_CitrixXDBP.ps1 XenDesktopBP.xlsx
Before using the script, a few prerequisites must be met.
• Install Cisco UCS PowerTool. First, download and install the Cisco UCS PowerTool from http://developer.cisco.com/web/unifiedcomputing/powertool-examples. Scroll down to the “Cisco UCS and Citrix XenDesktop Configuration Tool” section and click on the link to download the CitrixXDBP_Powertool.zip file.
In a Microsoft Windows environment with Microsoft Excel installed, extract the files and run the CiscoUcs-PowerTool-0.9.10.1 application. By default, a desktop icon for the Cisco UCS PowerTool is installed on the desktop.
• Edit the Excel configuration file. Save the UCS_Config_CitrixXDBP.ps1 script and XenDesktopBP.xlsx files to a location accessible from the Windows host where the Cisco UCS PowerTool was installed. Open the XenDesktopBP.xlsx file and edit the following values. Once edited, save the file in the same directory in which the script is located.
Table 4. Values to edit
IP Information Site Information
Cisco UCS Manager IP address Service profile template name (single word) and description Management IP pool starting and
ending IP addresses, subnet mask, and default gateway. These IP addresses are assigned to individual server blades for management purposes (one per blade) and must reside in the same subnet as the Cisco UCS Manager IP address.
VLAN information for the management network, virtual desktop data network, motion network (vMotion), and IP-based storage network
SAN boot target Information If SAN boot is not used, the defaults in the spreadsheet can be used.
• Launch the Cisco UCS PowerTool. Using the desktop icon created during installation, launch a PowerShell window. By default, PowerShell is launched with an ExecutionPolicy of RemoteSigned. The included UCS_Config_CitrixXDBP.
ps1 script is signed, so the script should run using the default policy. If changes
are made to the script, it may be necessary to change the ExecutionPolicy to Unrestricted to allow the script to run.
• Change to the directory where the script and Excel Configuration file are located.
cd .\CitrixXDBP
• Execute the script, supplying the name of the Excel Configuration file and, optionally, a switch to output messages to the console. During the execution of the script, you are prompted for the username and password for the Cisco UCS Manager software.
./UCS_Config_CitrixSDBP.ps1 -ExcelFile XenDesktopBP.xlsx -ToConsole
• Modify pool and policy values. The BIOS policy created with this script assumes performance is more important than power consumption. If this is not the case, modify the CitrixHD_Host BIOS policy with desired values. In addition, a SAN_boot policy is created using values contained within the Excel configuration file. If SAN boot is not utilized, an alternative boot policy should be created, and the CitrixXDTemplate service profile template modified to utilize the new boot policy.
• Verify host and management firmware packages. Host and management firmware packages were created and added to the CitrixXDTemplate service profile template, however, no firmware has been added to these packages. Open and modify the CitrixXD host and management firmware packages as necessary to ensure the proper firmware is used in the environment.
• Add blade servers to the server pool. The CitrixXD_Server_Pool server pool was created and added to the CitrixXDTemplate service profile template, however, no servers have been added to the pool. Open and modify the pool as necessary to include the server blades to be used to host Citrix XenDesktop hosted virtual desktop machines.
• Create service profiles from the template. From the Servers tab within Cisco UCS Manager, click on the Service Profile Template named CitrixXDTemplate.
• In the Actions pane, click on Create Service Profiles From Template.
• Assign a naming prefix to be used for the new service profiles, and indicate the number of new service profiles to create.
You should now have a number of service profiles created and ready to be used in a Citrix XenDesktop environment.
Appendix B: Content of the Excel File
172.16.213.150 172.16.213.160 255.255.255.0 172.16.213.1
*All IP addresses in the management IP pool must be in the same subnet as the IP address of the fabric interconnect.
Site Information
Site ID 1
Site Description Citrix XenDesktop Site 1
Pod ID 1
Pod Description Pod 1
Service Profile Template
Name CitrixXDTemplate
Description Citrix XenDesktop Service Profile Template
VLANs
Name VLAN Number Description
MGMT 100 VLAN used for Hypervisor Management Network VM_DATA 200 VLAN used for Virtual Desktop Data Network VM_MOTION 300 VLAN used for VM Motion Network
IP_STORAGE 400 VLAN used for access to IP-based Storage
SAN Boot Target Information
Primary Target Secondary Target
Primary Path Secondary Path Primary Path Secondary Path 20:00:00:00:00:00:00:00 20:10:00:00:00:00:00:00 20:20:00:00:00:00:00:00
20:30:00:00:00:00:00:00
References
Create Pools to Simplify Blade Management in Cisco UCS
http://www.cisco.com/en/US/products/ps10281/products_configuration_
example09186a0080ae0f40.shtml#stepsCreateUUIDPools
Cisco UCS Manager Configuration Common Practices and Quick-Start Guide http://www.cisco.com/en/US/prod/collateral/ps10265/ps10281/whitepaper_c11-697337.pdf
Cisco UCS Manager CLI Configuration Guide, Release 1.3 (1)
http://www.cisco.com/en/US/docs/unified_computing/ucs/sw/cli/config/
guide/1.3.1/CLI_Config_Guide_1_3_1.pdf Configure BIOS Policy for Cisco UCS
http://www.cisco.com/en/US/products/ps10281/products_configuration_
example09186a0080b36538.shtml
Cisco Unified Computing System BIOS Settings
http://www.cisco.com/en/US/prod/collateral/ps10265/ps10281/whitepaper_c07-614438.pdf
UCS QoS Configuration Example
http://www.cisco.com/en/US/products/ps10278/products_configuration_
example09186a0080ae54ca.shtml Product Versions
The following product versions were used when creating this document:
• Citrix XenDesktop 5.6
• Citrix XenServer 6.0.2
• Cisco UCS 2.0 (3c)
Revision History
Revision Change Description Updated By Date
1.0 Initial document Bhumik Patel, Alliance Engagement Architect, Citrix Systems
Chris Carter, VXI Consulting Systems Engineer, Cisco Systems October 9, 2012 1.1 Appendix additions Bhumik Patel, Alliance Engagement Architect, Citrix Systems
Chris Carter, VXI Consulting Systems Engineer, Cisco Systems
December 15, 2012
About Citrix
Citrix Systems, Inc. (NASDAQ:CTXS) transforms how businesses and IT work and people collaborate in the cloud era. With market-leading cloud, collaboration, networking and virtualization technologies, Citrix powers mobile workstyles and cloud services, making complex enterprise IT simpler and more accessible for 260,000 organizations. Citrix products touch 75 percent of Internet users each day and it partners with more than 10,000 companies in 100 countries. Annual revenue in 2011 was $2.21 billion. Learn more at www.citrix.com.
©2013 Citrix Systems, Inc. All rights reserved. Citrix®, Citrix Receiver™, Citrix® CloudGateway™, Citrix ShareFile™, HDX™ and Citrix® XenDesktop® are trademarks or registered trademarks of Citrix Systems, Inc. and/or one or more of its subsidiaries, and may be registered in the United States Patent and Trademark Office and in other countries. All other trademarks and registered trademarks are property of their respective owners.
Corporate Headquarters Citrix Systems, Inc.
851 West Cypress Creek Road Fort Lauderdale, FL 33309, USA T +1 800 393 1888 T +1 954 267 3000
Silicon Valley Headquarters Citrix Silicon Valley
4988 Great America Parkway Santa Clara, CA 95054, USA
T +1 408 790 8000 EMEA Headquarters
Citrix Systems International GmbH Rheinweg 9 Citrix Systems Hong Kong Ltd.
Suite 6301-10, 63rd Floor One Island East
18 Westland Road
Island East, Hong Kong, China T +852 2100 5000
Latin America Headquarters 2525 Ponce de Leon
Suite 1100
Coral Gables, FL 33134, USA