Introduction: You might encounter BSOD while streaming PVS targets when using some combination of hardware and software under certain circumstances. This usually occurs when the BNIstack driver fails to work correctly with the Ethernet driver causing Windows kernel to crash resulting BSOD.
The infrastructure used for this exercise:
PVS version: Provisioning Services 6.1,
Hypervisor: XenServer 6.0.2,
PVS target: Windows 2008 R2 target installed with XenApp 6.5
Suggestion#1 – Before beginning
Install the latest Microsoft hotfixes related to network stack on the Windows target devices before installing PVS target device software.
Windows 7 and Windows 2008 R2 operating systems
http://support.microsoft.com/kb/2344941
Windows 7 SP1 and Windows 2008 R2 SP1 operating systems
http://support.microsoft.com/kb/2550978
Windows Vista and Windows 2008 operating systems
http://support.microsoft.com/kb/2487376
Suggestion#2 – Installation of Master Target Device Software
Software for master target device is available at several places. For example, It comes bundled with XenApp 6.5 installer. You also get an option to install the PVS target software at the time of installing XenApp. I suggest avoiding this. Always use software that comes with PVS installation ISO.
Ensure you install the latest version of the XenTools or VMware tools.
Few important things during installation:
- Master target device software MUST be the last system software that is installed on the image. This means that you should install it after your Anti-Virus, Xentools, VMware tools, security patches etc…otherwise anything that alters the network stack will break PVS.
- A note about Anti Virus and security software: Make sure that you know what you are installing. Anything that is kernel based or touching the network stack is going to give you head aches. As a best practice, only after you complete all the security hardening, you should install PVS target software. This will make sure that network stack is now known to PVS and will remain unaltered. Please follow CTX124185 for Anti-Virus installation.
Also keep a track of the hotfixes for PVS 6.1. There are a bunch of them and you should only install the hotfix when you encounter an issue and it matches exactly with the hotfix symptoms.
http://support.citrix.com/product/provsvr/pvsv6.1/hotfix/general/public/
Suggestion#3 – Single NIC targets instead of multi-homed ones
Traditionally, PVS best practices mandate having two NICs for PVS targets. Maybe this is not necessary any more especially for smaller implementations which are lesser than 1000 VMs.
I think having just one NIC simplifies the installation, setup and most importantly causes fewer headaches as the BNIstack driver can just be attached one NIC and few routing decisions for the network stack.
For more information, look here. http://blogs.citrix.com/2012/05/01/pvs-stream-traffic-isolation/
Suggestion#4 – Removing Ghost NICs from the master image
For reasons like plugging and unplugging different networks, running dim.exe or some other reason, you may find some Ghost NICs listed under your hardware inventory which may cause your PVS to break. This happens because during the device boot process, PVS server may bind to one of these Ghost NICs and that will cause BSOD.
To find Ghost NICs and remove them, please refer to below article.
http://vikashkumarroy.blogspot.sg/2012/05/hidden-ghost-network-driver-on-vm.html
Suggestion#5 – Registry hack to delay the PVS driver binding to Ethernet NIC
Use this suggestion only if all the above have been implemented and you still get BSOD. Ignore otherwise.
If you are using an operating system older than Windows 2008 R2, you may want to delay the bind call made by the PVS device software to the NIC.
When the OS tries to boot, the PVS device software needs to bind to NIC to start the PVS streams. If the NIC has not initialized yet, it may lead to a BSOD. So a delay is set at the PVS device software so that the binding is delayed.
Refer to the below KB.
http://support.citrix.com/article/CTX123236
That’s all.
Thanks,
Arun.P.C
Disclaimer: This article is purely based on my experiences and insights. My employer Citrix Systems has neither reviewed nor endorsed anything that is mentioned above.
Nice article Arun. PVS is always tricky and I always spent few hours/ works before it works 🙂
Thanks for suggestions
Cheers!
http://virtualcloudzz.blogspot.com.au/
[…] Suggestions to avoid Blue Screen of Death while … – Introduction: You might encounter BSOD while streaming PVS targets when using some combination of hardware and software under certain circumstances…. […]
Hi, I was getting BSOD for all the new target device but not for the one which i had converted using PVS target software. Followed all articles in Citrix regarding GHOST nics, antivirus etc but issue still persisted on new targets. I was creating a new diskless VM and was binding the MAC ids and associated the Vdisk to those in PVS. But the issue resolved after cloning the working PVS target ( i mean GOlden Image when booted in Harddisk mode) into VM template and then deploying VM’s from that tempalte resolved the issue. Also give a shot at http://www.jgspiers.com/0x0000007e-bnistack-failed-vmware/ which modifies the pci slot number value as same as golden image.