SlideShare a Scribd company logo
1 of 40
Application Streaming
Uncovered
Etienne Jeanneau – Escalation
Engineer
25th October 2011
• Offline plug-in 6.5
• Technical deep dive
• Troubleshooting technics
Agenda
Citrix Confidential - Do Not Distribute
Offline plug-in 6.5
• VHD Streaming
• RadeFastLaunch
• SHA2 signing
What’s new?
Citrix Confidential - Do Not Distribute
VHD Streaming
Network
Storage
AppSilo A
vDisk 1
Provisioning
Server
The RadeCache issue
© 2009 Citrix Systems, Inc. – All rights reserved
AppHub
Pooled
XenDesktops
Cache
• Cannot cache streamed data in a pooled XD environment
• Main reason why first launch is slow
• Workaround?
• Pre-populate the RadeCache in the base image.
Citrix Confidential - Do Not Distribute
The RadeCache issue
• Requires the Offline plug-in 6.5 and Profiler 6.5
VHD Streaming
Citrix Confidential - Do Not Distribute
• Designed to only be enabled with pooled desktop
• VHD gets mounted in C:Program FilesCitrixRadeCache
VHD Streaming
Citrix Confidential - Do Not Distribute
• Automatic detection in XenDesktop pooled environment
• Check if the c:personality.ini contains a DiskMode=Shared entry
• Check that XenApp is not installed
• If both of the above are true, UseVHD=1 is automatically set in the registry.
VHD Streaming
Citrix Confidential - Do Not Distribute
• Enabled via a registry key:
HKLMCitrixSoftwareRadeUseVHD
VHD Streaming
Citrix Confidential - Do Not Distribute
RadeFastLaunch
• Pre-launch of the sandbox
• Requires Offline plug-in 6.5
• Disabled by default
• HKLMSoftwareCitrixRadeDisableFastLaunch to value 0 (DWORD).
RadeFastLaunch
Citrix Confidential - Do Not Distribute
• Transparent for users
• Can be deployed via policies:
HKCUSoftwareMicrosoftWindowsCurrentVersionRun
“C:Program FilesCitrixStreaming
ClientRadeFastLaunch.exe”
“shareOfficepackageOfficepackage.profile”
RadeFastLaunch
Citrix Confidential - Do Not Distribute
SHA2 signing
• Requires Streaming Profiler 6.5 and Offline plug-in 6.5
• To comply with FIPS (Federal Information Processing
Standards)
• SHA2 signed profiles not compatible with earlier version of
Offline plug-in!
SHA2 signing
Citrix Confidential - Do Not Distribute
• You can still enable offline plug-in 6.0 compatibility = SHA1
signing.
This considerably increases the build time for the profile.
SHA2 signing
Citrix Confidential - Do Not Distribute
SHA2 signing
Citrix Confidential - Do Not Distribute
Technical Deep-Dive
Citrix Confidential - Do Not Distribute
Installation/Execution Image
Streaming Profiler and Client
Physical Machine
Installation/Execution Image
Profiler Machine
• Nothing gets written to the “table” at
profile time when the application is
installed
Client Machine/ XenApp Server
• The installation program is “painted” on
this “pane of glass”
• File redirection
Per User Image
Physical Machine
Read/Write
Read Only
Read Only
Read/Write
• Execution image common to all users – enables centralized app
management
The application believes it was
installed on the physical
machine
Install program, registry, named objects
etc. stored as a profile
Sandbox 3
Sandbox 2
Sandbox 1
Sandboxes and multiple execution
Installation/Execution Image #1
Physical Machine
Per User Image #2
Read/Write
Read Only
Per User Image #1 Per User Image #3
Application Application Application
• Three sandboxes
• Three users
• One install image
• Centralized application management
• 1st time launch ‘penalty’ applies only to the first user; DACL regulates
user access
C:Program FilesCitrixRadeCache43eedfd1-bcd4-4cbf-9243-70c10ff5b900_1DeviceCProgram Files...
Isolated File System - Files
Cache Location Target ID - GUID Application files
Isolated Registry - Location
HKLMSoftwareCitrixRadeCache43eedfd1-bcd4-4cbf-9243-70c10ff5b900_1...
Application Registries
Architecture – Sandbox Creation
RadeRun.exe RadeSvc.exe
RadeLauncher.exe Streamed Application
Sandbox
Architecture
File system calls
Named object
redirection
Registry
redirection
File system
redirection
Process creation
and destruction
notifications
Load image
Notifications
Isolation Environment
Configuration
Isolation Environment
Manager
(RadeSvc.exe)
Process Notify
Driver
(CtxPidMN.sys)
File System Filter Driver
(CtxSbx.sys)
Object Manager Registry
File System
Isolation Environment Settings
via RadeLauncher
Isolation
Environment
Settings
Registry and Object Hook DLL
(CtxSbxHook.dll)
Application
Cache fill
requests
Troubleshooting technics
Citrix Confidential - Do Not Distribute
• HKLMSoftwareCitrixRade
• EnableDebugConsole DWORD 0x1
Some registry keys…
Citrix Confidential - Do Not Distribute
• HKLMSoftwareCitrixRade
• SandboxStatusMonitorPeriod DWORD – timeout value in minutes to keep
radelauncher.exe active in the user session (Sandbox reuse feature).
Some registry keys…
Citrix Confidential - Do Not Distribute
• HKLMSoftwareCitrixRade
• RadeRunSwitches REG_SZ – automatically passes parameters to raderun.exe
for all streamed applications launched on the client machine.
Some registry keys…
Citrix Confidential - Do Not Distribute
Options:
-c pre-flush the cache [Administrators only]
-C pre-flush the cache, including user data [Administrators only]
-d post-flush the cache [Administrators only]
-D post-flush the cache, including user data [Administrators only]
-e pre-extract all files
-o deploy the app for offline use
-x run isolated command prompt
• HKLMSoftwareCitrixRade
• AppHubWhiteList REG_SZ – registry key to specify trusted application hubs.
This is used when the packaged application uses a Windows service
Some registry keys…
Citrix Confidential - Do Not Distribute
• This helps to understand the flow of execution and to spot
any unexpected process termination.
Using Process Explorer
Citrix Confidential - Do Not Distribute
• Helps to understand what the application is trying to achieve
• Can be confusing because of the layers of glass.
Using Process Monitor
Citrix Confidential - Do Not Distribute
Using Process Monitor
Citrix Confidential - Do Not Distribute
• Without VHD:
• With VHD:
• Enables you to list mounted VHD on a client machine
• http://blogs.citrix.com/2011/06/21/app-streaming-where-is-
the-vhd/
Using Diskpart
Citrix Confidential - Do Not Distribute
• Application specific logs if applicable
• DebugView: some applications use the default debug output
to log failures.
Other tools
Citrix Confidential - Do Not Distribute
• CDFControl: usually reserved to experienced users and
Citrix technical support.
Other tools
Citrix Confidential - Do Not Distribute
Citrix Confidential - Do Not Distribute
• Citrix blogs
• Joseph Nord’s: http://blogs.citrix.com/author/josephno/
• Case study on streaming Adobe Acrobat 9:
http://blogs.citrix.com/2011/07/22/streaming-adobe-acrobat-9/
• SysInternals tools : http://technet.microsoft.com/en-
ie/sysinternals
Helpful resources
Citrix Confidential - Do Not Distribute
Before you leave…
• Session surveys are available online at www.citrixsummit.com
starting Thursday, 27 October
• Provide your feedback and pick up a complimentary gift at the registration desk
• Download presentations starting Monday, 7 November, from your
My Organiser tool located in your My Account
SUM304 - Application streaming uncovered.ppt

More Related Content

Similar to SUM304 - Application streaming uncovered.ppt

OGD BINAIR 2010 - VDI toegepast met Citrix XenDesktop
OGD BINAIR 2010 - VDI toegepast met Citrix XenDesktop OGD BINAIR 2010 - VDI toegepast met Citrix XenDesktop
OGD BINAIR 2010 - VDI toegepast met Citrix XenDesktop OGD
 
Virtual deep dive-xendesktop_stephanpfister
Virtual deep dive-xendesktop_stephanpfisterVirtual deep dive-xendesktop_stephanpfister
Virtual deep dive-xendesktop_stephanpfisterDigicomp Academy AG
 
Application Virtualization overview - BayCUG
Application Virtualization overview - BayCUGApplication Virtualization overview - BayCUG
Application Virtualization overview - BayCUGDenis Gundarev
 
VMworld 2013: What's New with VMware Horizon Workspace: Technical Deep Dive
VMworld 2013: What's New with VMware Horizon Workspace: Technical Deep DiveVMworld 2013: What's New with VMware Horizon Workspace: Technical Deep Dive
VMworld 2013: What's New with VMware Horizon Workspace: Technical Deep DiveVMworld
 
Application layering vs Application Isolation
Application layering vs Application IsolationApplication layering vs Application Isolation
Application layering vs Application IsolationMarius Sandbu
 
Presentation design - key concepts and approaches for designing your deskto...
Presentation   design - key concepts and approaches for designing your deskto...Presentation   design - key concepts and approaches for designing your deskto...
Presentation design - key concepts and approaches for designing your deskto...xKinAnx
 
Back to the Future: Containerize Legacy Applications - Rob Tanner, Northern T...
Back to the Future: Containerize Legacy Applications - Rob Tanner, Northern T...Back to the Future: Containerize Legacy Applications - Rob Tanner, Northern T...
Back to the Future: Containerize Legacy Applications - Rob Tanner, Northern T...Docker, Inc.
 
E2E What\'s New In XenApp 6.5
E2E What\'s New In XenApp 6.5E2E What\'s New In XenApp 6.5
E2E What\'s New In XenApp 6.5sthirion
 
Citrix Excalibur - First Look@a Glance
Citrix Excalibur - First Look@a GlanceCitrix Excalibur - First Look@a Glance
Citrix Excalibur - First Look@a GlanceDigicomp Academy AG
 
Thick Application Penetration Testing - A Crash Course
Thick Application Penetration Testing - A Crash CourseThick Application Penetration Testing - A Crash Course
Thick Application Penetration Testing - A Crash CourseNetSPI
 
No BS, Vendor Neutral Comparison of Application Layering Solutions
No BS, Vendor Neutral Comparison of Application Layering SolutionsNo BS, Vendor Neutral Comparison of Application Layering Solutions
No BS, Vendor Neutral Comparison of Application Layering SolutionsUnidesk Corporation
 
V mwarev sphere5.1notes-v2
V mwarev sphere5.1notes-v2V mwarev sphere5.1notes-v2
V mwarev sphere5.1notes-v2karanamsaibabu
 
Twelve-Factor App: Software Application Architecture
Twelve-Factor App: Software Application ArchitectureTwelve-Factor App: Software Application Architecture
Twelve-Factor App: Software Application ArchitectureSigfred Balatan Jr.
 
3. Android Architecture.pptx
3. Android Architecture.pptx3. Android Architecture.pptx
3. Android Architecture.pptxHarshiniB11
 
Platform - Technical architecture
Platform - Technical architecturePlatform - Technical architecture
Platform - Technical architectureDavid Rundle
 
Cloud Security Hardening та аудит хмарної безпеки за допомогою Scout Suite
Cloud Security Hardening та аудит хмарної безпеки за допомогою Scout SuiteCloud Security Hardening та аудит хмарної безпеки за допомогою Scout Suite
Cloud Security Hardening та аудит хмарної безпеки за допомогою Scout SuiteOWASP Kyiv
 
Patterns and Pains of Migrating Legacy Applications to Kubernetes
Patterns and Pains of Migrating Legacy Applications to KubernetesPatterns and Pains of Migrating Legacy Applications to Kubernetes
Patterns and Pains of Migrating Legacy Applications to KubernetesQAware GmbH
 
Patterns and Pains of Migrating Legacy Applications to Kubernetes
Patterns and Pains of Migrating Legacy Applications to KubernetesPatterns and Pains of Migrating Legacy Applications to Kubernetes
Patterns and Pains of Migrating Legacy Applications to KubernetesJosef Adersberger
 

Similar to SUM304 - Application streaming uncovered.ppt (20)

OGD BINAIR 2010 - VDI toegepast met Citrix XenDesktop
OGD BINAIR 2010 - VDI toegepast met Citrix XenDesktop OGD BINAIR 2010 - VDI toegepast met Citrix XenDesktop
OGD BINAIR 2010 - VDI toegepast met Citrix XenDesktop
 
Virtual deep dive-xendesktop_stephanpfister
Virtual deep dive-xendesktop_stephanpfisterVirtual deep dive-xendesktop_stephanpfister
Virtual deep dive-xendesktop_stephanpfister
 
Virtual Deep-Dive: XenDesktop 7
Virtual Deep-Dive: XenDesktop 7Virtual Deep-Dive: XenDesktop 7
Virtual Deep-Dive: XenDesktop 7
 
Application Virtualization overview - BayCUG
Application Virtualization overview - BayCUGApplication Virtualization overview - BayCUG
Application Virtualization overview - BayCUG
 
VMworld 2013: What's New with VMware Horizon Workspace: Technical Deep Dive
VMworld 2013: What's New with VMware Horizon Workspace: Technical Deep DiveVMworld 2013: What's New with VMware Horizon Workspace: Technical Deep Dive
VMworld 2013: What's New with VMware Horizon Workspace: Technical Deep Dive
 
Application layering vs Application Isolation
Application layering vs Application IsolationApplication layering vs Application Isolation
Application layering vs Application Isolation
 
Presentation design - key concepts and approaches for designing your deskto...
Presentation   design - key concepts and approaches for designing your deskto...Presentation   design - key concepts and approaches for designing your deskto...
Presentation design - key concepts and approaches for designing your deskto...
 
Back to the Future: Containerize Legacy Applications - Rob Tanner, Northern T...
Back to the Future: Containerize Legacy Applications - Rob Tanner, Northern T...Back to the Future: Containerize Legacy Applications - Rob Tanner, Northern T...
Back to the Future: Containerize Legacy Applications - Rob Tanner, Northern T...
 
E2E What\'s New In XenApp 6.5
E2E What\'s New In XenApp 6.5E2E What\'s New In XenApp 6.5
E2E What\'s New In XenApp 6.5
 
Citrix Excalibur - First Look@a Glance
Citrix Excalibur - First Look@a GlanceCitrix Excalibur - First Look@a Glance
Citrix Excalibur - First Look@a Glance
 
Thick Application Penetration Testing - A Crash Course
Thick Application Penetration Testing - A Crash CourseThick Application Penetration Testing - A Crash Course
Thick Application Penetration Testing - A Crash Course
 
No BS, Vendor Neutral Comparison of Application Layering Solutions
No BS, Vendor Neutral Comparison of Application Layering SolutionsNo BS, Vendor Neutral Comparison of Application Layering Solutions
No BS, Vendor Neutral Comparison of Application Layering Solutions
 
Diagnosing issues in your ASP.NET applications in production with Visual Stud...
Diagnosing issues in your ASP.NET applications in production with Visual Stud...Diagnosing issues in your ASP.NET applications in production with Visual Stud...
Diagnosing issues in your ASP.NET applications in production with Visual Stud...
 
V mwarev sphere5.1notes-v2
V mwarev sphere5.1notes-v2V mwarev sphere5.1notes-v2
V mwarev sphere5.1notes-v2
 
Twelve-Factor App: Software Application Architecture
Twelve-Factor App: Software Application ArchitectureTwelve-Factor App: Software Application Architecture
Twelve-Factor App: Software Application Architecture
 
3. Android Architecture.pptx
3. Android Architecture.pptx3. Android Architecture.pptx
3. Android Architecture.pptx
 
Platform - Technical architecture
Platform - Technical architecturePlatform - Technical architecture
Platform - Technical architecture
 
Cloud Security Hardening та аудит хмарної безпеки за допомогою Scout Suite
Cloud Security Hardening та аудит хмарної безпеки за допомогою Scout SuiteCloud Security Hardening та аудит хмарної безпеки за допомогою Scout Suite
Cloud Security Hardening та аудит хмарної безпеки за допомогою Scout Suite
 
Patterns and Pains of Migrating Legacy Applications to Kubernetes
Patterns and Pains of Migrating Legacy Applications to KubernetesPatterns and Pains of Migrating Legacy Applications to Kubernetes
Patterns and Pains of Migrating Legacy Applications to Kubernetes
 
Patterns and Pains of Migrating Legacy Applications to Kubernetes
Patterns and Pains of Migrating Legacy Applications to KubernetesPatterns and Pains of Migrating Legacy Applications to Kubernetes
Patterns and Pains of Migrating Legacy Applications to Kubernetes
 

Recently uploaded

Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)Paige Cruz
 
Intro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxIntro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxFIDO Alliance
 
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftshyamraj55
 
Syngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon
 
Using IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandUsing IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandIES VE
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024Lorenzo Miniero
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsLeah Henrickson
 
How to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cfHow to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cfdanishmna97
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightSafe Software
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc
 
Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024Hiroshi SHIBATA
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe中 央社
 
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPTiSEO AI
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctBrainSell Technologies
 
State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!Memoori
 
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptxCyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptxMasterG
 
Design Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxDesign Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxFIDO Alliance
 
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024Stephen Perrenod
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...marcuskenyatta275
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...panagenda
 

Recently uploaded (20)

Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
 
Intro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxIntro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptx
 
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoft
 
Syngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdf
 
Using IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandUsing IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & Ireland
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
 
How to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cfHow to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cf
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
 
Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!
 
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptxCyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
 
Design Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxDesign Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptx
 
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
 

SUM304 - Application streaming uncovered.ppt

  • 1. Application Streaming Uncovered Etienne Jeanneau – Escalation Engineer 25th October 2011
  • 2. • Offline plug-in 6.5 • Technical deep dive • Troubleshooting technics Agenda Citrix Confidential - Do Not Distribute
  • 4. • VHD Streaming • RadeFastLaunch • SHA2 signing What’s new? Citrix Confidential - Do Not Distribute
  • 6. Network Storage AppSilo A vDisk 1 Provisioning Server The RadeCache issue © 2009 Citrix Systems, Inc. – All rights reserved AppHub Pooled XenDesktops Cache
  • 7. • Cannot cache streamed data in a pooled XD environment • Main reason why first launch is slow • Workaround? • Pre-populate the RadeCache in the base image. Citrix Confidential - Do Not Distribute The RadeCache issue
  • 8. • Requires the Offline plug-in 6.5 and Profiler 6.5 VHD Streaming Citrix Confidential - Do Not Distribute
  • 9. • Designed to only be enabled with pooled desktop • VHD gets mounted in C:Program FilesCitrixRadeCache VHD Streaming Citrix Confidential - Do Not Distribute
  • 10. • Automatic detection in XenDesktop pooled environment • Check if the c:personality.ini contains a DiskMode=Shared entry • Check that XenApp is not installed • If both of the above are true, UseVHD=1 is automatically set in the registry. VHD Streaming Citrix Confidential - Do Not Distribute
  • 11. • Enabled via a registry key: HKLMCitrixSoftwareRadeUseVHD VHD Streaming Citrix Confidential - Do Not Distribute
  • 13. • Pre-launch of the sandbox • Requires Offline plug-in 6.5 • Disabled by default • HKLMSoftwareCitrixRadeDisableFastLaunch to value 0 (DWORD). RadeFastLaunch Citrix Confidential - Do Not Distribute
  • 14. • Transparent for users • Can be deployed via policies: HKCUSoftwareMicrosoftWindowsCurrentVersionRun “C:Program FilesCitrixStreaming ClientRadeFastLaunch.exe” “shareOfficepackageOfficepackage.profile” RadeFastLaunch Citrix Confidential - Do Not Distribute
  • 16. • Requires Streaming Profiler 6.5 and Offline plug-in 6.5 • To comply with FIPS (Federal Information Processing Standards) • SHA2 signed profiles not compatible with earlier version of Offline plug-in! SHA2 signing Citrix Confidential - Do Not Distribute
  • 17. • You can still enable offline plug-in 6.0 compatibility = SHA1 signing. This considerably increases the build time for the profile. SHA2 signing Citrix Confidential - Do Not Distribute
  • 18. SHA2 signing Citrix Confidential - Do Not Distribute
  • 20. Installation/Execution Image Streaming Profiler and Client Physical Machine Installation/Execution Image Profiler Machine • Nothing gets written to the “table” at profile time when the application is installed Client Machine/ XenApp Server • The installation program is “painted” on this “pane of glass” • File redirection Per User Image Physical Machine Read/Write Read Only Read Only Read/Write • Execution image common to all users – enables centralized app management The application believes it was installed on the physical machine Install program, registry, named objects etc. stored as a profile
  • 21. Sandbox 3 Sandbox 2 Sandbox 1 Sandboxes and multiple execution Installation/Execution Image #1 Physical Machine Per User Image #2 Read/Write Read Only Per User Image #1 Per User Image #3 Application Application Application • Three sandboxes • Three users • One install image • Centralized application management • 1st time launch ‘penalty’ applies only to the first user; DACL regulates user access
  • 22. C:Program FilesCitrixRadeCache43eedfd1-bcd4-4cbf-9243-70c10ff5b900_1DeviceCProgram Files... Isolated File System - Files Cache Location Target ID - GUID Application files
  • 23. Isolated Registry - Location HKLMSoftwareCitrixRadeCache43eedfd1-bcd4-4cbf-9243-70c10ff5b900_1... Application Registries
  • 24. Architecture – Sandbox Creation RadeRun.exe RadeSvc.exe RadeLauncher.exe Streamed Application Sandbox
  • 25. Architecture File system calls Named object redirection Registry redirection File system redirection Process creation and destruction notifications Load image Notifications Isolation Environment Configuration Isolation Environment Manager (RadeSvc.exe) Process Notify Driver (CtxPidMN.sys) File System Filter Driver (CtxSbx.sys) Object Manager Registry File System Isolation Environment Settings via RadeLauncher Isolation Environment Settings Registry and Object Hook DLL (CtxSbxHook.dll) Application Cache fill requests
  • 27. • HKLMSoftwareCitrixRade • EnableDebugConsole DWORD 0x1 Some registry keys… Citrix Confidential - Do Not Distribute
  • 28. • HKLMSoftwareCitrixRade • SandboxStatusMonitorPeriod DWORD – timeout value in minutes to keep radelauncher.exe active in the user session (Sandbox reuse feature). Some registry keys… Citrix Confidential - Do Not Distribute
  • 29. • HKLMSoftwareCitrixRade • RadeRunSwitches REG_SZ – automatically passes parameters to raderun.exe for all streamed applications launched on the client machine. Some registry keys… Citrix Confidential - Do Not Distribute Options: -c pre-flush the cache [Administrators only] -C pre-flush the cache, including user data [Administrators only] -d post-flush the cache [Administrators only] -D post-flush the cache, including user data [Administrators only] -e pre-extract all files -o deploy the app for offline use -x run isolated command prompt
  • 30. • HKLMSoftwareCitrixRade • AppHubWhiteList REG_SZ – registry key to specify trusted application hubs. This is used when the packaged application uses a Windows service Some registry keys… Citrix Confidential - Do Not Distribute
  • 31. • This helps to understand the flow of execution and to spot any unexpected process termination. Using Process Explorer Citrix Confidential - Do Not Distribute
  • 32. • Helps to understand what the application is trying to achieve • Can be confusing because of the layers of glass. Using Process Monitor Citrix Confidential - Do Not Distribute
  • 33. Using Process Monitor Citrix Confidential - Do Not Distribute • Without VHD: • With VHD:
  • 34. • Enables you to list mounted VHD on a client machine • http://blogs.citrix.com/2011/06/21/app-streaming-where-is- the-vhd/ Using Diskpart Citrix Confidential - Do Not Distribute
  • 35. • Application specific logs if applicable • DebugView: some applications use the default debug output to log failures. Other tools Citrix Confidential - Do Not Distribute
  • 36. • CDFControl: usually reserved to experienced users and Citrix technical support. Other tools Citrix Confidential - Do Not Distribute
  • 37. Citrix Confidential - Do Not Distribute
  • 38. • Citrix blogs • Joseph Nord’s: http://blogs.citrix.com/author/josephno/ • Case study on streaming Adobe Acrobat 9: http://blogs.citrix.com/2011/07/22/streaming-adobe-acrobat-9/ • SysInternals tools : http://technet.microsoft.com/en- ie/sysinternals Helpful resources Citrix Confidential - Do Not Distribute
  • 39. Before you leave… • Session surveys are available online at www.citrixsummit.com starting Thursday, 27 October • Provide your feedback and pick up a complimentary gift at the registration desk • Download presentations starting Monday, 7 November, from your My Organiser tool located in your My Account

Editor's Notes

  1. In pooled XenDesktop environments, once a user logs off, the entire user written data gets wiped off. This causes problems for streamed applications as during first launch several binaries (and data) get copied to RadeCache folder. This is also one of the reasons why first launch of streamed application is slow. So when user logs on next time and launches the same application again, the launch will again be slow. This is causing serious deployment issues of application streaming on pooled XenDesktops.
  2. The challenge is that anything written to disk at runtime is backed by per-machine backing store on the Provisioning Server or by per-machine write back store on the hypervisor. Either way, while things written to assist a first run will assist second runs during that logon session, at logoff all the cache space disappears. On the next logon, the machine state is again clean and the first launch activity has to start from scratch. This problem exists even if the administrator pre-populates the RadeCache into the base image. It may work for a period of time, but eventually the application administrator will update the Application Hub and this will cause a first launch scenario on the execution machine. Large quantities of disk writes will occur as RadeCache content is upgraded from one GUID_VERSION to the newer version of that same content. Multiply this times thousands of virtual desktops and the network and disk impacts are large. The solution is to minimize the number of disk writes. The RadeCache GUID_V space should be MOUNTED from a single store to support all virtual machines and that mount is a READ operation which will keep the per-machine temporary write store to a minimum size.
  3. - New feature of Offline plug-in 6.5 Need to edit 6.0 packages with Profiler 6.5 and choose the option to create a VHD (demo?) Designed to only be used in pooled desktop to avoid filling radecache with file copy operations. Compare with PVS / flexibility / background for the features.
  4. TODO: quick video showing the registry setting, the launch of a streamed application and the vhd mapping under c:\program files\citrix\radecache Recording as plan B: VHD_Streaming.mp4
  5. One of the most expensive operation with Citrix application streaming is the setup of the sandbox at start-up of the application. New feature in offline plug-in 6.5 which pre-creates the sandbox for the end-user, reducing launch time when the user eventually launches his streamed application Disabled by default
  6. Two registry keys to set You can setup as many auto-launch packages as you want via the Run registry key (need to verify?). Dies after two hours if the sandbox is not used. Invisible to users
  7. TODO: quick video showing the registry settings, how to launch radefastlaunch and show Process Explorer with the sandbox. RadeFastLaunch.exe is present in the sandbox and will close as soon as the first application is launched inside this sandbox. Show the different processes inside the user session. Recording as plan B: radefastlaunch.mp4
  8. New feature of Offline plug-in 6.5 Federal Information Processing Standards (US mainly) Offline plug-in 6.0 and earlier only supports SHA1!
  9. Vision in your mind … a standard company office with a normal desk in it. On top of the desk is a clear pane of glass. Profiling machine (on the left in the diagram) During profiling, the installer runs – above the desk, looking down and the desk represents the physical machine or the true file system or registry. The installer sees only the desk (the glass is clear). Installer “writes” to the desk (files and registry), but instead of writing on the true physical machine, it’s actions are redirected to “paint” onto the pane of glass. The installer sees from above and sees a masked view, so it “believes” that it wrote to the desk. The glass intercepts all file system and registry activity. Execution system (another desk). The physical desks on the profiling and execution machines are similar and are assumed to be “sufficiently similar” that the differences in their content will not interfere with application execution. There are ways to correct discrepancies when the contents are different and understanding the panes of glass is the key to diagnosing the error where items go wrong. See RadeRunSwitches. The “execution image” is the pane of glass from the profiling machine. The application runs – looking down at its desk from above – the pane of glass representing the execution image has stuff painted on it (file system and registry) – so the application sees a modified vision of the physical machine. Technically the pane of glass isn’t there. Items accessed are runtime populated (STREAMED). From the view of the application, everything that was present during profiling is also present during execution. For example, if the app does a directory (DIR) to inquire if its files are present, the isolation system will step in and LIE to tell it everything is installed when really nothing is installed. When the application accesses a file from the execution image that is not present, the application execution is suspended, the item is populated onto the execution image and then the application is resumed. On the execution system, there are 2 panes of glass. The additional pane holds the user specific content. This is a second pane of glass that is laid down on top of the first pane. At runtime, the execution image is read-only. The per-user image is read-write. All of the above applies to “isolation”.  The isolation environment in App Streaming also supports “redirect” Access to C:\Foo becomes C:\bar “ignore” Bypasses both panes of glass and sees straight through to the true disk/reg “strictly isolate” The true disk/registry “vanishes” for the given space (disk/reg).   Execution cache size The default cache limit is 1 GB or 5% of client machine disk space, which ever is larger. This is be adjusted by the administrator using ClientCache.exe utility or by directly editing registry items. The keys of interest are below HKLM/Software/Citrix/Rade. The cache algorithm is a high water mark. Until the cache limit is hit, NO files will be erased from the cache. Eventually, a cache fill operation will cause the cache limit to be surpassed. This triggers the start of cache deletion. Note: In no case does the attempt to cache fill get delayed. The cache will grow above the cache limit – though it for a short period of time. In the background, the cache manager will trim files from the cache until it reaches 95% of the cache limit, this is the low water mark on the cache. At this point, cache deletion background activity goes to sleep until the next time the cache hits the high water mark. The administrator can also override the aggressiveness of the cache deletion by adding a registry key, CacheLowWaterPct, and setting this to the numeric percent where the deletion should stop. This is generally not necessary, but it is added here for reference.
  10. Isolation system shares the execution image across multiple instances of the same execution image. Example: 3 users running on a Presentation Server, each running the same application. 3 Sandboxes are created. Each user sees the same physical machine and the same image of the profiled application. Each user sees their own PRIVATE version of the top layer of glass. The top layer is writable, the other layers are read-only. Access to the application execution image is dynamically DACL adjusted so that only users who are actually RUNNING the application can see the execution image for the application. The key: An item cache-filled for user 1 will benefit user 2 and this reduces impact of first time launches needing to fill items into the cache.
  11. Execution image is stored in this location (example is disk, also applies to registry). GUID is the “key” to cache management. It uniquely identifies each execution “Target”. Execution caches are versioned (GUID_version) to allow Targets/profiles to be updated “live”. Users do not have to terminate their applications to allow the central storage to be updated. They get the “most current” execution image each time they launch. RADE = Rapid Application Deployment. This was Application Streaming’s original codename.
  12. Notice that this looks very similar to the isolation of files
  13. 0 - Raderun.exe is the initiator. All the parameters (package location, application to launch) are passed to raderun.exe. 1 - Raderun.exe talks to RadeSvc.exe to check if a sandbox already exists for this package. 2 - If the sandbox does not exists, raderun.exe spawns a radelauncher.exe process. 3 - RadeLauncher.exe then talks to RadeSvc.exe to get the Application Isolation Environment details. 4 - Radelauncher.exe applies the AIE details to itself 5 - Finally, RadeLauncher.exe creates the isolated streamed process inside the sandbox. In the case of sandbox reuse, in step 2 we just reuse the existing radelauncher.exe process.
  14. Review!!! Overview of the architecture: Kernel: Ctxsbx.sys: kernel filesystem filter driver which provides the filesystem redirection (to c:\Program Files\citrix\radecache) Ctxpidmn.sys : kernel driver that monitors all processes created and terminated on the system and notify ctxsbx.sys if a process is streamed. User: Ctxsbxhook.dll: user mode DLL injected in all processes which provides the registry redirection and the named objects Radesvc.exe: privileged service that provides the isolation environment settings and fulfill the cache requests from ctxsbx.sys. Radelauncher.exe: seats in the isolated application box on the schema. It is the one that spawns the isolated applications processes and runs inside the sandbox. When the app is streamed, the AIE launcher (pkgr.exe / RADEsvc.exe) launches the AIE that was profiled with the app. The file system driver (ctxsbx.sys) redirects the file location from \program files\app to program files\citrix\radecache\GUID\Device\c\app and ctxsbxhook.dll redirects registry and named objects to the AIE location. RadeSvc.exe is responsible for caching files on request coming from ctxsbx.sys.
  15. The Debug console is usually helpful when facing issues that happen very early during sandbox creation i.e. radelauncher.exe is not launched.
  16. This registry key determines if radelauncher.exe will stay opened and for how long. While troubleshooting issues, you may need to run the streamed applications multiple times in a row and disable the Sandbox reuse feature.
  17. The parameters you can pass in this registry keys are the exact same as the ones you can pass to raderun.exe from a command prompt. It can be useful to pre-extract or pre-deploy all files from your packages on client machines. Examples - “-e” can be used to check if pre-caching can reduce the very first launch time of the streamed application. “-x” used to see the sandbox from inside, like the streamed application. Demo with –x flag (video recorded as plan B)
  18. Can be mandatory for certain applications!
  19. raderun.exe is launching radelauncher.exe. Radelauncher.exe is launching the streamed app. Dll injection : ctxsbxhook.dll, radeaphook.dll – how to check the version loaded. Sandbox reuse (radelauncher.exe is maintaining the sandbox alive) If you see radelauncher.exe running, there’s a very good chance that the offline plug-in did its job just fine! Demo with debug console enable ( to prevent raderun.exe from exiting) to show the different processes. (link with previous diagrams) Video recording called Process Explorer as plan B
  20. - Look at a trace and show the different layers of glass (filesystem and registry)
  21. Without VHD, we go through the normal layers of glass: user root > install root > local machine (last step not on screenshot) With VHD, we can see the same plus an extra step where a reparse (=redirection) happens and redirects to the mapped VHD. In this case HarddiskVolume4.
  22. - Demonstrate what Joe Nord explained in the following blog entry: http://blogs.citrix.com/2011/06/21/app-streaming-where-is-the-vhd/
  23. CDFMonitor: This provides information on the internal mechanics of Citrix Application Streaming. Review!!! TODO: Put a simple extract of the CDF trace and explain meanings of each lines.
  24. 2 first lines: entering a function to open the package we’re streaming. Following lines: Opening the .profile file which is an XML file. End lines: this is the start of the .profile file parsing with the first parameter being checked. We can see that we check for the prelaunch analysis which is a setting you configure in the profiler.