SlideShare ist ein Scribd-Unternehmen logo
1 von 38
E2E Virtualization Conference
14th may 2011 Dublin




        Citrix Provisioning Services
             Technical Overview
                           Stephane Thirion
                         @archynet – st@archy.net
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
PVS 5.6 SP1 What’s new ?	
  
•  Microsoft Volume Licensing Automation
   (KMS and MAK – OS and Ms Office 2010)

•  Microsoft SQL 2008 R2 support
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)
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
Provisioning Services Architecture
General
•    Provisioning Services Caching
•    Process for Computer Account Password Change
•    High Availability Timeouts
•    Streamed Targets
•    Desktops
Provisioning Services Architecture
Database
•  SQL Permissions for PVS Database
Provisioning Services Architecture
Network
•    Network Impact
•    Network Components
•    PXE / network boot
•    TCP Offloading
•    ARP Cache Changes – Win2008/Vista/Win7
•    VMXNet3 and Streaming Issues
Provisioning Services Architecture
Boot Sector / PAE / TFTP
•  Boot Sector
•  PAE
•  TFTP
Provisioning Services Architecture
vDisks
•  Common vDisk tuning
•  vDisk Updates
•  Disk Type
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
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)
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
XenDesktop : MCS vs PVS




 Citrix say : PVS is not dead . . . . yet
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
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)
PVS Automation / industrialization
Why and how ?
Script #1 – PVSInit.cmd
@ECHO OFF
CLS
Echo Enabling PowerShell Scripts ...
reg add HKLMSoftwareMicrosoftPowerShell1ShellIdsMicrosoft.PowerShell /v ExecutionPolicy /d Unrestricted /f
Echo Executing Build Script ...
%windir%system32WindowsPowerShellv1.0powershell -nologo "& ""c:PVS_Auto_InstallFramework.ps1"""
%windir%system32WindowsPowerShellv1.0powershell -nologo "& ""c:PVS_Auto_InstallPVSsilent.ps1"""
Echo Build Complete
PVS Automation / industrialization
Why and how ?
Script #2 – Framework.ps1
Import-Module Servermanager
Add-WindowsFeature AS-NET-Framework-Core
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"
…
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."
PVS Automation / industrialization
Why and how ?
Scripts download and Links
•    http://www.archy.net/2011/03/25/citrix-provisioning-services-5-6-automation
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
	
  
Virtualizing PVS – Considerations 2/5	
  
Can I virtualize PVS ?




 Should I virtualize PVS ?
Virtualizing PVS – Considerations 3/5	
  
What are PVS Resource bottlenecks ?


   Network and disk
              Memory and CPUs
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
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
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)
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
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”
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
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
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
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
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
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)
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	
  	
  
Thanks !
Questions ?

              it…	
  
@archynet

      Stéphane Thirion

      http://www.archy.net

st@archy.net

Weitere ähnliche Inhalte

Was ist angesagt?

Citrix XenDesktop and XenApp 7.5 Architecture Deployment
Citrix XenDesktop and XenApp 7.5 Architecture DeploymentCitrix XenDesktop and XenApp 7.5 Architecture Deployment
Citrix XenDesktop and XenApp 7.5 Architecture Deployment
Huy Pham
 
12 christian ferber xen_server_advanced
12 christian ferber xen_server_advanced12 christian ferber xen_server_advanced
12 christian ferber xen_server_advanced
Digicomp Academy AG
 

Was ist angesagt? (20)

Maintaining and Troubleshooting your XenApp 7.5 Environment
Maintaining and Troubleshooting your XenApp 7.5 EnvironmentMaintaining and Troubleshooting your XenApp 7.5 Environment
Maintaining and Troubleshooting your XenApp 7.5 Environment
 
NetScaler Deployment Guide for XenDesktop7
NetScaler Deployment Guide for XenDesktop7NetScaler Deployment Guide for XenDesktop7
NetScaler Deployment Guide for XenDesktop7
 
Citrix XenDesktop and XenApp 7.5 Architecture Deployment
Citrix XenDesktop and XenApp 7.5 Architecture DeploymentCitrix XenDesktop and XenApp 7.5 Architecture Deployment
Citrix XenDesktop and XenApp 7.5 Architecture Deployment
 
VMworld 2013: vSphere Data Protection (VDP) Technical Deep Dive and Troublesh...
VMworld 2013: vSphere Data Protection (VDP) Technical Deep Dive and Troublesh...VMworld 2013: vSphere Data Protection (VDP) Technical Deep Dive and Troublesh...
VMworld 2013: vSphere Data Protection (VDP) Technical Deep Dive and Troublesh...
 
VMworld 2015: The Future of Software- Defined Storage- What Does it Look Like...
VMworld 2015: The Future of Software- Defined Storage- What Does it Look Like...VMworld 2015: The Future of Software- Defined Storage- What Does it Look Like...
VMworld 2015: The Future of Software- Defined Storage- What Does it Look Like...
 
VMworld 2015: Virtualize Active Directory, the Right Way!
VMworld 2015: Virtualize Active Directory, the Right Way!VMworld 2015: Virtualize Active Directory, the Right Way!
VMworld 2015: Virtualize Active Directory, the Right Way!
 
Best practices for implementing, administering, and troubleshooting XenDeskto...
Best practices for implementing, administering, and troubleshooting XenDeskto...Best practices for implementing, administering, and troubleshooting XenDeskto...
Best practices for implementing, administering, and troubleshooting XenDeskto...
 
Troubleshooting a XenDesktop Environment using the PowerShell SDK
Troubleshooting a XenDesktop Environment using the PowerShell SDKTroubleshooting a XenDesktop Environment using the PowerShell SDK
Troubleshooting a XenDesktop Environment using the PowerShell SDK
 
Configuring and Troubleshooting XenDesktop Sites
Configuring and Troubleshooting XenDesktop SitesConfiguring and Troubleshooting XenDesktop Sites
Configuring and Troubleshooting XenDesktop Sites
 
12 christian ferber xen_server_advanced
12 christian ferber xen_server_advanced12 christian ferber xen_server_advanced
12 christian ferber xen_server_advanced
 
STO7535 Virtual SAN Proof of Concept - VMworld 2016
STO7535 Virtual SAN Proof of Concept - VMworld 2016STO7535 Virtual SAN Proof of Concept - VMworld 2016
STO7535 Virtual SAN Proof of Concept - VMworld 2016
 
Citrix TechEdge 2014 - Citrix Group Policy Troubleshooting for XenApp and Xen...
Citrix TechEdge 2014 - Citrix Group Policy Troubleshooting for XenApp and Xen...Citrix TechEdge 2014 - Citrix Group Policy Troubleshooting for XenApp and Xen...
Citrix TechEdge 2014 - Citrix Group Policy Troubleshooting for XenApp and Xen...
 
Citrix Master Class - Live Upgrade from XenApp 6.5 to 7.6
Citrix Master Class - Live Upgrade from XenApp 6.5 to 7.6Citrix Master Class - Live Upgrade from XenApp 6.5 to 7.6
Citrix Master Class - Live Upgrade from XenApp 6.5 to 7.6
 
A day in the life of a VSAN I/O - STO7875
A day in the life of a VSAN I/O - STO7875A day in the life of a VSAN I/O - STO7875
A day in the life of a VSAN I/O - STO7875
 
VMworld 2013: vSphere Data Protection 5.5 Advanced VMware Backup and Recovery...
VMworld 2013: vSphere Data Protection 5.5 Advanced VMware Backup and Recovery...VMworld 2013: vSphere Data Protection 5.5 Advanced VMware Backup and Recovery...
VMworld 2013: vSphere Data Protection 5.5 Advanced VMware Backup and Recovery...
 
XPDS16: High-Performance Virtualization for HPC Cloud on Xen - Jun Nakajima &...
XPDS16: High-Performance Virtualization for HPC Cloud on Xen - Jun Nakajima &...XPDS16: High-Performance Virtualization for HPC Cloud on Xen - Jun Nakajima &...
XPDS16: High-Performance Virtualization for HPC Cloud on Xen - Jun Nakajima &...
 
VMworld 2014: Data Protection for vSphere 101
VMworld 2014: Data Protection for vSphere 101VMworld 2014: Data Protection for vSphere 101
VMworld 2014: Data Protection for vSphere 101
 
What is coming for VMware vSphere?
What is coming for VMware vSphere?What is coming for VMware vSphere?
What is coming for VMware vSphere?
 
Morning Coffee - Windows Server 2016
Morning Coffee - Windows Server 2016Morning Coffee - Windows Server 2016
Morning Coffee - Windows Server 2016
 
VMworld 2015: Explaining Advanced Virtual Volumes Configurations
VMworld 2015: Explaining Advanced Virtual Volumes ConfigurationsVMworld 2015: Explaining Advanced Virtual Volumes Configurations
VMworld 2015: Explaining Advanced Virtual Volumes Configurations
 

Ähnlich wie E2E PVS Technical Overview Stephane Thirion

Presentation architecting a cloud infrastructure
Presentation   architecting a cloud infrastructurePresentation   architecting a cloud infrastructure
Presentation architecting a cloud infrastructure
solarisyourep
 
Sa106 – practical solutions for connections administrators
Sa106 – practical solutions for connections administratorsSa106 – practical solutions for connections administrators
Sa106 – practical solutions for connections administrators
Sharon James
 

Ähnlich wie E2E PVS Technical Overview Stephane Thirion (20)

Server 2016 sneak peek
Server 2016 sneak peekServer 2016 sneak peek
Server 2016 sneak peek
 
Deploying windows containers with kubernetes
Deploying windows containers with kubernetesDeploying windows containers with kubernetes
Deploying windows containers with kubernetes
 
1049: Best and Worst Practices for Deploying IBM Connections - IBM Connect 2016
1049: Best and Worst Practices for Deploying IBM Connections - IBM Connect 20161049: Best and Worst Practices for Deploying IBM Connections - IBM Connect 2016
1049: Best and Worst Practices for Deploying IBM Connections - IBM Connect 2016
 
2015 02-10 xen server master class
2015 02-10 xen server master class2015 02-10 xen server master class
2015 02-10 xen server master class
 
Novosco: Citrix tips and best practices
Novosco: Citrix tips and best practicesNovosco: Citrix tips and best practices
Novosco: Citrix tips and best practices
 
Cloud Bursting 101: What to do When Cloud Computing Demand Exceeds Capacity
Cloud Bursting 101: What to do When Cloud Computing Demand Exceeds CapacityCloud Bursting 101: What to do When Cloud Computing Demand Exceeds Capacity
Cloud Bursting 101: What to do When Cloud Computing Demand Exceeds Capacity
 
Deskpool making vdi cost effective for smb
Deskpool making vdi cost effective for smbDeskpool making vdi cost effective for smb
Deskpool making vdi cost effective for smb
 
How to build a Citrix infrastructure on AWS
How to build a Citrix infrastructure on AWSHow to build a Citrix infrastructure on AWS
How to build a Citrix infrastructure on AWS
 
MT46 Virtualization Integration with Unity
MT46 Virtualization Integration with UnityMT46 Virtualization Integration with Unity
MT46 Virtualization Integration with Unity
 
VMworld 2013: IBM Solutions for VMware Virtual SAN
VMworld 2013: IBM Solutions for VMware Virtual SAN VMworld 2013: IBM Solutions for VMware Virtual SAN
VMworld 2013: IBM Solutions for VMware Virtual SAN
 
DeltaV Virtualization
DeltaV VirtualizationDeltaV Virtualization
DeltaV Virtualization
 
VMworld 2014: How to Build a Hybrid Cloud
VMworld 2014: How to Build a Hybrid CloudVMworld 2014: How to Build a Hybrid Cloud
VMworld 2014: How to Build a Hybrid Cloud
 
Sum209
Sum209Sum209
Sum209
 
Tech-Spark: SQL Server on Linux
Tech-Spark: SQL Server on LinuxTech-Spark: SQL Server on Linux
Tech-Spark: SQL Server on Linux
 
Del 1
Del 1Del 1
Del 1
 
Windows Server 2008 R2 Dev Session 01
Windows Server 2008 R2 Dev Session 01Windows Server 2008 R2 Dev Session 01
Windows Server 2008 R2 Dev Session 01
 
VMworld 2015: Advanced SQL Server on vSphere
VMworld 2015: Advanced SQL Server on vSphereVMworld 2015: Advanced SQL Server on vSphere
VMworld 2015: Advanced SQL Server on vSphere
 
Presentation architecting a cloud infrastructure
Presentation   architecting a cloud infrastructurePresentation   architecting a cloud infrastructure
Presentation architecting a cloud infrastructure
 
Presentation architecting a cloud infrastructure
Presentation   architecting a cloud infrastructurePresentation   architecting a cloud infrastructure
Presentation architecting a cloud infrastructure
 
Sa106 – practical solutions for connections administrators
Sa106 – practical solutions for connections administratorsSa106 – practical solutions for connections administrators
Sa106 – practical solutions for connections administrators
 

E2E PVS Technical Overview Stephane Thirion

  • 1. E2E Virtualization Conference 14th may 2011 Dublin Citrix Provisioning Services Technical Overview Stephane Thirion @archynet – st@archy.net
  • 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
  • 7. Provisioning Services Architecture Database •  SQL Permissions for PVS Database
  • 8. Provisioning Services Architecture Network •  Network Impact •  Network Components •  PXE / network boot •  TCP Offloading •  ARP Cache Changes – Win2008/Vista/Win7 •  VMXNet3 and Streaming Issues
  • 9. Provisioning Services Architecture Boot Sector / PAE / TFTP •  Boot Sector •  PAE •  TFTP
  • 10. Provisioning Services Architecture vDisks •  Common vDisk tuning •  vDisk Updates •  Disk Type
  • 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)
  • 17. PVS Automation / industrialization Why and how ? Script #1 – PVSInit.cmd @ECHO OFF CLS Echo Enabling PowerShell Scripts ... reg add HKLMSoftwareMicrosoftPowerShell1ShellIdsMicrosoft.PowerShell /v ExecutionPolicy /d Unrestricted /f Echo Executing Build Script ... %windir%system32WindowsPowerShellv1.0powershell -nologo "& ""c:PVS_Auto_InstallFramework.ps1""" %windir%system32WindowsPowerShellv1.0powershell -nologo "& ""c:PVS_Auto_InstallPVSsilent.ps1""" Echo Build Complete
  • 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    
  • 38. @archynet Stéphane Thirion http://www.archy.net st@archy.net