2. Summary
• Citrix PVS 5.6 SP1 What’s new ?
• Provisioning Services Architecture
• XenDesktop 5 : MCS vs. PVS
• PVS Automation / industrialization, why and how ?
• Virtualizing PVS – Considerations
• Best Practices and Tuning Tips
• Questions
3. PVS 5.6 SP1 What’s new ?
• Microsoft Volume Licensing Automation
(KMS and MAK – OS and Ms Office 2010)
• Microsoft SQL 2008 R2 support
4. PVS 5.6 SP1 What disapeared ?
• Support for Windows 2000 domain
• User Assign vDisk
• Read only File System support
• XenConvert (but remain available as
separate download)
5. PVS 5.6 SP1 What came after?
• CPVS56SP1E029 : Add XD5 compatible XenDesktop Setup Wizard and a new Stream
VM Setup Wizard
• CPVS56SP1E024 : Resolve Windows 2003 BSOD when logoff
• CPVS56SP1E022 : Fix PVS Upgrade Wizard with Windows 7
• CPVS56SP1E014 : BNImage.exe fix for Windows 7
• CPVS56SP1E028 : Fix Nic teaming on non-Provisioning Network bonds
• CPVS56SP1E027 : Write cache behavior fix
• CPVS56SP1E026 : Fix BSOD (0xda) and Broadcom NetLink or RealTek NIC
• CPVS56SP1E017 : Automatic Update fix with Offline database
• CPVS56SP1E018 : Fix crash of PVS Soap Service (heap memory overrun)
• CPVS56SP1E011 : vmware VMXNet3 driver crashes on all other VMs besides Master
target device.
• … some more on http://support.citrix.com
6. Provisioning Services Architecture
General
• Provisioning Services Caching
• Process for Computer Account Password Change
• High Availability Timeouts
• Streamed Targets
• Desktops
11. Provisioning Services Architecture
High Availability
• HA for DHCP and TFTP
• Load Balance TFTP (Netscaler)
• Use multiple DDCs (XenDesktop)
• Use load-balanced XenApp Farms
• Use multi-server PVS Farms
• Use HA for Citrix License Server
• Host vDisks images on fast local RAID Disks, SAN or NAS
• Place PVS servers as near as possible to target devices
12. Provisioning Services Architecture
Performance
• Traffic bottleneck if only 100Mbit network available
• Write cache placement, scalability test for performance
and amount (ie write cache is related to user activity)
• Disable all power saving options (PVS servers)
13. Provisioning Services Architecture
Storage
• NFS Storage Usage
• VHD and Storage Alignments
• Storage Recommendations
• Write Cache Storage Location
• Write Cache
• Calculating the proper size for the write cache
• Write Cache Considerations
• vDisk Store
14. XenDesktop : MCS vs PVS
Citrix say : PVS is not dead . . . . yet
15. PVS Automation / industrialization
Why and how ?
Why ?
• Needed to use automation software (Altiris, SCMM…)
• Complex and multi site architecture
• Need to deliver pre-configured PVS Servers
• Need to keep the control on a wide deployment
• Need to use the same PVS setup everywhere
16. PVS Automation / industrialization
Why and how ?
How ?
• 3 scripts needed for the first PVS Server
• Framework 3.5.1 (core) for Windows 2008 R2
• Windows 2003 Resource Kit (ntrights.exe and
subinacl.exe)
18. PVS Automation / industrialization
Why and how ?
Script #2 – Framework.ps1
Import-Module Servermanager
Add-WindowsFeature AS-NET-Framework-Core
19. PVS Automation / industrialization
Why and how ?
Script #3 – PVSSilent.ps1
# Pre-reqs:
# Install PowerShell
# Install Framework 3.5.1 Feature
# set-executionpolicy bypass -force
# Include all local sites and treat unc paths as local intranet
# Constants
$installer_srv = "c:pvs_auto_installPVS_Server_x64.exe"
$installer_cons = "c:pvs_auto_installPVS_Console_x64.exe"
$ntrights = "c:pvs_auto_installntrights.exe"
$subinacl = "c:pvs_auto_installsubinacl.exe"
# Variables
$dbServer = Read-Host "Please enter the database server name (or name,port)"
#$dbInstance = Read-Host "Please enter the database instance name"
$dbName = Read-Host "Please enter the database name"
$siteName = Read-Host "Please enter the site name"
$svcUser = Read-Host "Please enter the service account user name (e.g. <domain><user>)"
$svcPassword = Read-Host -AsSecureString "Please enter the service account password"
$IPaddr = Read-Host "Please enter the streaming IP address"
…
20. PVS Automation / industrialization
Why and how ?
Unattended PVS Farm joining
• ConfigWizard.exe /s to create ConfigWizard.ans file
• Don’t forget to modify the IP address in ConfigWizard.ans file
• Use the following script to join a PVS farm
# Pre-reqs:
# PVS Server installed
# Constants
$pvs_dir = "C:Program FilesCitrixProvisioning Services"
$ans_file = "C:PVS_auto_installConfigWizard.ans"
$confwiz = "C:Program FilesCitrixProvisioning ServicesConfigWizard.exe"
$ipaddr = ((ipconfig | findstr [0-9]..)[0]).Split()[-1]
# Replace in file
Get-Content $ans_file | ForEach-Object { $_ -replace "xxx.xxx.xxx.xxx", $ipaddr } | Set-Content ($ans_file+".tmp")
Remove-Item $ans_file
Rename-Item ($ans_file+".tmp") $ans_file
# Silently Install PVS Console
Write-Host "Configuring PVS Server ... " -nonewline
Copy-Item $ans_file $pvs_dir
$cmd=[System.Diagnostics.Process]::Start($confwiz,'/a')
$cmd.WaitForExit()
Write-Host "Done."
21. PVS Automation / industrialization
Why and how ?
Scripts download and Links
• http://www.archy.net/2011/03/25/citrix-provisioning-services-5-6-automation
22. Virtualizing PVS – Considerations 1/5
First, ask around ? Neil Spellings, Nicholas
Rintalan, and all the architect around…
This presentation last only 45 minutes, we could
exchange about that hours without having a final
agreement J
23. Virtualizing PVS – Considerations 2/5
Can I virtualize PVS ?
Should I virtualize PVS ?
24. Virtualizing PVS – Considerations 3/5
What are PVS Resource bottlenecks ?
Network and disk
Memory and CPUs
25. Virtualizing PVS – Considerations 3/5
PVS disk bottleneck
• Running PVS on a 64 bit server to maximize kernel
memory and leverage block-based protocol
• Using PVS local storage leverage Windows built-in cache
capabilities
• Write cache mode : Prefer target device hard drive in a
second vDisk (on a shared storage)
• Use separate LUNs between the vDisk and the write
cache vDisk
26. Virtualizing PVS – Considerations 4/5
PVS network bottleneck
• The hypervizor team/bond network capabilities (vSphere
LACP vs XenServer)
• Consider using SRI-OV with XenServer
• Same limits as physical world about teaming/bonding
• 10gb network card are becoming the norm
27. Virtualizing PVS – Considerations 5/5
Number of target devices
• 300 to 500 target devices per 1Gb NIC (steady-state
numbers)
• Number, size and OS of vDisks in use. ie 500 WinXP
15Gb vs 300 Win7 x64 40Gb
• PVS v-server spec : 4 vCpus 16Gb memory (and more
than a single 1Gb NIC)
28. Best Practices and Tuning Tips
TCP Offloading
• Set following registry keys in vDisk - Golden Master (Target Device):
• HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesBNNS
Parameters DWORD = EnableOffload Value “0”
• Disable TCP “Large Send Offload” for PVS driver:
• Adds latency as packets re-segmented
• Must be set on Provisioning Server and Target Device :
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTCPIP
Parameters
Key: "DisableTaskOffload" (dword)
Value: "1"
• Disable PV NIC (VIF) “TCP offload”
• Try to sync all MTUs across your network if possible. Do this on VDAs, PVS, XenServer
and etc to avoid network problems when tunneling protocols, adjust
MaxICAPacketSize and all MSS accordingly
29. Best Practices and Tuning Tips
TFTP 1/2
• Use BOOTPTAB Editor to allow/prevent only special clients to obtain ARDBP32.BIN via
PXE/TFTP - CTX115305
• Use TFTPD32.exe (Freeware) or DHCPExplorer (free from SoftPedia.com) to discover
which TFTP/PXE services are already running in the environment
• In order to bind TFTP Daemon to a specific NIC/Port, configure logging for TFTP
Daemon, set the “GET” Directory ( server side) and use:
“%Program Files%CitrixProvisioning Servicestftpcpl.cpl”
• In order to bind TFTP Daemon to a specific NIC/Port, configure logging for TFTP
Daemon, set the “GET” Directory for the TwoStageBootloader (server side) and use:
“%ProgramFiles%CitrixProvisioning Servicestsbcpl.cpl”
30. Best Practices and Tuning Tips
TFTP 2/2
• In order to bind the Stream service to specific NIC (target device side) use:
“%ProgramFiles%Provisioning Servicesbindconfig.exe”
• If in your environment PXE/TFTP has problems with finding ardbp32.bin or
tsbbdm.bin you should check the following registry keys:
• Default configuration sets the TFTP directory to
“C:ProgramDataCitrixProvisioning ServicesTftpboot” HKLMSYSTEM
CurrentControlSetServicesBNTFTPParametersGetDirectory)
• If tsbbdm.bin, for example, is not found during boot:
Try to copy the file from “C:Program FilesCitrixProvisioning Services
TSBboot”
To directory specified in
HKLMSYSTEMCurrentControlSetServicesBNTFTPParameters
GetDirectory
31. Best Practices and Tuning Tips
vDisk 1/3
Delete Bitlocker 100 MB Partition during setup of Golden Master via Shift+F10 during first
setup screen of the installation
start “Diskpart” - and inside “Diskpart” tool:
1. select disk 0
2. Clean
3. create partition primary
4. select partition 1
5. format fs=ntfs quick
6. exit
32. Best Practices and Tuning Tips
vDisk 2/3
• Disable Last Access Timestamp of Files in vDisk (can be done through Xenconvert
optimizer)
“FSUTIL behavior set disablelastaccess 1”
• You can add a lot of customizations through editing optimizations.xml in Xenconvert
directory (target device side)
• Prior to building any vDisk Flush the DNS Resolver Cache:
“ipconfig flushdns”
• Run “chkdsk” before starting Xenconvert or Imaging Wizard
• Use Sysinternals “sDelete –c driveletter:” to zero out empty vDisk areas and reduce
storage when creating golden master
• Disable Windows Indexing Service and System Restore
• Configure redirection of spool directory, virus patterns, RADECache, EdgeSight DB,
AppSense Profile, Databases, Event logs, Log files to a persistent CacheDisk /
CacheVolume if possible
33. Best Practices and Tuning Tips
vDisk 3/3
• Disable Last Access Timestamp of Files in vDisk (can be done through Xenconvert
optimizer)
“FSUTIL behavior set disablelastaccess 1”
• You can add a lot of customizations through editing optimizations.xml in Xenconvert
directory (target device side)
• Prior to building any vDisk Flush the DNS Resolver Cache:
“ipconfig flushdns”
• Run “chkdsk” before starting Xenconvert or Imaging Wizard
• Use Sysinternals “sDelete –c driveletter:” to zero out empty vDisk areas and reduce
storage when creating golden master
• Disable Windows Indexing Service and System Restore
• Configure redirection of spool directory, virus patterns, RADECache, EdgeSight DB,
AppSense Profile, Databases, Event logs, Log files to a persistent CacheDisk /
CacheVolume if possible
34. Best Practices and Tuning Tips
vDisk Type
• As VHD expands:
• Disk can become fragmented on physical media
• Expansion algorithm occurs in 1 MB increments
• Rapid expansion wreaks havoc on SAN such as first boot or page file
creation
• Alignment issues:
• Constructed with extra byte at end of file
• Dynamic VHD always misaligns disk with storage
• Use only fixed-size VHDs for write-cache drives and Provisioning services vDisk
35. Best Practices and Tuning Tips
Write Cache
• Planning:
• Start with write cache on PVS Server
• Start with initial size of 2 GB + swap file
• Designing:
• If “target device write cache” is chosen, available space must be sufficient or OS
may blue screen
• Minimize network impact (limit number of hops)
• Implementing:
• Do NOT use PVS server
• Use RAM with extreme caution (if you run out of RAM you don‟t have time to
reboot the machine before it freezes and you won‟t get a warning, just a BSOD).
• Use local disk (shared/local)
36. Best Practices and Tuning Tips
More and more….
CTX125126
-‐
Advanced
Memory
and
Storage
Considera;ons
for
Provisioning
Services.
CTX119286
-‐
Provisioning
Server
High
Availability
Considera;ons
CTX119469
-‐
Understanding
Write-‐Cache
in
Provisioning
Server
CTX122567
-‐
How
to
Configure
Provisioning
Services
Page
File
with
Write
Cache
on
a
Local
Device
Hard
Disk
CTX125744
-‐
FAQ:
Provisioning
Services
5.1
Service
Pack
2
through
5.6
CTX119223
-‐
Registry
SeTngs
to
Improve
Failover
Times
for
Citrix
Provisioning
Services
on
target
machine
CTX120080
-‐
Service
Account
Configura;on
for
Accessing
SQL
CTX117374
-‐
Best
Prac;ces
for
Configuring
Provisioning
Server
on
a
Network
CTX117491
-‐
Excessive
Amounts
of
Retries
Occur
when
a
Provisioning
Server
Target
Device
is
Deployed
on
a
XenServer
Pla]orm
CTX126107
-‐
Windows
2008
R2
Fails
to
Boot
Device
Manager
(BDM)
Boot
(Event
ID
7026)
CTX122976
-‐
Windows
7
Fails
to
PXE
Boot
(Event
ID
7026)
CTX124981
-‐
XenApp
Server
Configura;on
Tool
-‐
Update
1.1.0
for
XenApp
6
for
Windows
Server
2008
R2
CTX124791
-‐
Use
Hyper-‐V
to
upgrade
vDisks
CTX116337
-‐
How
to
Load
Balance
Trivial
File
Transfer
Protocol
Servers
CTX119286
-‐
Provisioning
Server
High
Availability
Considera;ons
CTX125157
-‐
Excessive
Retries
on
Provisioned
Virtual
Machines
CTX122296
-‐
PVS
and
Storage
Considera;ons
CTX126042
–
When
to
disable
Intermediate
Buffering
for
Local
Hard
Drive
Cache