Here is a tip for you music listeners. Have you ever wanted to have your media key on your cheap dell keyboard to open Winamp by default instead of windows media player? If so you can accomplish this by setting Winamp to be the default player for CD’s.
Virtual Machine File System – VMFS
I was asked a question today and I thought it might be a good idea to begin posting the answers to some of the questions I am asked.
What is VMFS?
VMFS is Virtual Machine File System. It’s just the file system that exists on the VMWare ESX servers.
In it exists files one of which is vmdk, virtual machine disk.
The is the vm guest itself. Instead of the virtual machines having a hard drive they have a vmdk.
All of the vmdk’s are contained on a vmfs. Vmfs, ntfs, fat, fat32 these are all file systems.
If you’re familiar with Citrix from an administrative perspective, then publishing apps to the outside world is nothing new to you. Whether it’s for a Systems Administrator at EMCWorld in Las Vegas 😉 or a C-level executive on holiday in Italy, Citrix Metaframe is a widely-used tool (and for good reason). If you’re a larger shop with multiple sites, you’re likely familiar with publishing in-house applications across a WAN as well. And finally, if you work for a company like mine, you may have been (lucky to be) in a situation where everyone in the science department just HAD to have double 30-inch monitors with graphics cards hot enough to handle Crysis, and now their Citrix application has graphics issues. Undoubtedly, the ticket will come in entitled “Citrix not working – Please fix” with “ASAP” urgency or something to this effect. The problem? Well, the problem isn’t their (2400 x OMG!) resolution, because that’s completely understandable based on what your users are up to, right? Maybe. The real problem is that if the high-res application they want to run happens to be a published Citrix application on a CPS 4.0 system, you may have maxed the ceiling on your graphics memory allocation for ICA sessions.
This was a headache for a little while for me, but there’s nothing quite like a good “w00t!” moment when you finally nail a solution. We had visited and revisited the graphics settings for the published app itself, and for the farm from the management console, but nothing seemed to quite hit the spot until a bit of research turned up a little golden nugget. What did it for us was finding a registry tweak that increases the farm-level default maximum graphics buffer setting from 8MB (supported by Citrix) to up to 16MB as an actual max (not so supported by Citrix). This default setting can be found in the Metaframe Management Console under Farm properties and ICA settings, but hold your horses there, cowboy! The management console will never allow you to set more than 8MB as the max, but if you apply the tweak shared below, you might be able to return to your… err, ahem… “Internet traffic filtering test environment” sooner than later.
Before I finish up, I’d like to make a side note. Citrix is supposed to have addressed graphics issues in CPS 4.5, or “XenApp” if you prefer, in relation to high-end graphics demands, but I haven’t had an opportunity yet to test those waters. XenApp uses what Citrix calls SpeedScreen Progressive Display (allegedly better than regular SpeedScreen). Citrix specifically gives a nod to medical imaging and GIS mapping applications with this technology, so it sounds like they are looking at the right apps for high-end graphics requirements. It also boasts support for multiple monitors. If anyone running 4.5 can attest, please leave us a note here about it. Perhaps Citrix deserves an “atta boy”, but only time will tell.
At any rate, there were a few versions of this fix out there, but most of them were based partly on fact and partly on assumption (or they were just plain lazy). Only one version I found was based on viable science and math. Don’t be afraid to use math in your solutions… it will only make you a more accurate admin. Not everyone can throw a bunch numbers together like my SE, and then spit them out in 3 seconds flat. The solution for that is called calc.exe. J
This is the solution I documented for my company:
Registry key: HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\icawd\thin16
MaxLVBMem registry setting: There is no one setting that is perfect for everyone. A little 5th grade math is required to find the right entry for this registry tweak, but it’s easy. You’ll need three things: Desired user screen resolution height and width (i.e. 1024×768 or whatever). We’ll call them “h” and “w”. And then you’ll need the color bit depth in use which we’ll call “d”. The bit depth max for Citrix is 24 bit. Here’s the equation you should use: (h x w x d)/8 = v [where v = the registry value needed]. This will give you a unique number for your environment in bytes. So if a user has a 1024×768 resolution (with Citrix’s 24 bit color depth max), it would look like so:
(1024 x 768 x 24)/8 = 2359296. In this case, 2359296 would be the decimal value in bytes you want to use for your decimal value in this registry setting. Keep in mind, nothing over 16MB will matter.
This only needs to be applied to the server(s) on which the applications requiring advanced graphics are published. Because more resources are being allocated toward graphics, this will be a performance hit. How much of a hit depends on how many users who have high-end video cards will be hitting up your Citrix server(s) for major graphics. Load balancing may become crucial at this point if you’re not doing it already.
Important note: The Farm will successfully reset this registry key any time farm settings are edited in the future, so permissions must be set to deny the System account the “set value” rights on this registry key.
Enjoy – mn