Blog

  1. 30 x IOPS with Provisioning Services RAM cache

    I’m currently working with a client to determine the potential scope of a virtual desktop deployment, and performing an infrastructure readiness assessment. While some additional compute power is required, this requirement is easy to fix and won’t break the budget. But the storage requirements are another story; not capacity, there is plenty of GB available, the problem is the IOPS. A XenApp published desktop (with anti-virus) can require 20 IOPS per user, so with 600 users 12,000 IOPS are required. With no budget for additional storage it seemed this project was doomed.

    With a genuine “ah huh” moment, I decided to research the Citrix Provisioning Services (PVS) “Cache in device RAM with overflow on hard disk” vDisk cache option. We normally deploy PVS with the “Cache on device hard drive” option, but I had been meaning to test “Cache in device RAM with overflow on hard disk” for a while. Now was the time.

    I was tasked with creating a proof of concept to show how Citrix Provisioning Services with “Cache in device RAM with overflow on hard disk” could provide the IOPS this project requires. A basic PVS 7.1 farm with two streaming servers was created. The existing XenApp 6 server template was deployed and the PVS 7.1 hotfix 002 target device software was installed. This hotfix is mandatory as a bug existed in the original PVS 7.1 target device software which rendered “Cache in device RAM with overflow on hard disk” useless. Soon we had a PVS vDisk ready to stream and the testing could begin.

    Set PVS vDisk to Cache in device RAM with overflow on hard disk. Note that only 1 GB RAM was allocated for this test to make it easy to fill the RAM cache.

    PVS vDisk Cache in device RAM with overflow on hard disk

    The PVS RAM cache is located in nonpaged memory. The vdiskdif.vhdx file is the disk overflow file for when the RAM cache is full. This image shows the VM after a reboot; the nonpaged memory allocation is only 120 MB and the vdiskdif.vhdx cache file is the minimum 4 MB.

    PVS disk cache file and memory usage

     

    A 650 MB file was copied into C:\ resulting in the RAM cache growing as indicated by the nonpaged memory growing to 762 MB. The vdiskdif.vhdx cache file is unchanged at 4 MB.

    Generate PVS write cache data

     

    Another 650 MB file was copied to C:\. This time the RAM cache reaches maximum capacity and the vdiskdif.vhdx cache file grows to 624 MB.

    Generate more PVS write cache data to fill RAM cache

     

    Now let’s test IOPS IOMeter was configured to emulate a virtual desktop workload, that is, 90% writes, 80% random and 4K blocks. A 1GB workload was chosen. This is based off Jim Moyle (aka Mr IOPS) blog

    Firstly we set the vDisk to Cache on device hard driveno RAM cache

    PVS_RAM_Cache_5

     

    And we get a whopping 1005 IOPS 🙂

    IOPS for Cache to device hard disk

     

    Now we set the vDisk back to Cache in device RAM with overflow on hard disk

    PVS vDisk Cache in device RAM with overflow on hard disk

     

    Whoa, now we’re cooking with 36,885 IOPS!!

    Massive IOPS with Cache in device RAM with overflow on hard disk

     

    And again, this time with a 2GB workload configured in IOMeter. Still a very respectable 24,913 IOPS. You can see that the disk cache file is 1.9 GB. When RAM cache is exhausted the least recently used block of data is written to disk which frees RAM and provides optimal performance – reference http://support.citrix.com/proddocs/topic/provisioning-7/pvs-technology-overview-write-cache-intro.html

    Excellent IOPS again

     

    No SANs were harmed during this testing; IOMeter tests were restricted to 30 second durations.

    I believe the results speak for themselves. There are two final items to tick off before we move forward with this solution.

    1. Measure the actual IOPS hitting the disk when the overflow to disk is occurring
    2. Decide on the RAM cache size. Will 1 GB do the job, or do we need 5 GB per XenApp VM?

    I’m impressed. If you’ve got the RAM or have budget for additional RAM, and your virtual desktop can be non-persistent VDI or XenApp hosted shared desktops – you should consider the Provisioning Services “Cache in device RAM with overflow on hard disk” vDisk cache option.

  2. Atlantis ILIO: The desktop virtualisation “secret sauce”

    As all of you with years (decades??) of IT experience know, users are quick to vocalise any negative experience, but providing positive feedback can be like getting blood from a stone. So it was refreshing to get (unsolicited) positive feedback from users during our latest XenApp project with some users even moving from traditional PCs to thin clients because of the improved performance. One user reported the a process which previously took several hours to run now takes seconds. Wow!

    So what’s the “secret sauce”? I’ll answer a question with a question: what’s the performance bottleneck in most desktop virtualisation implementations with modern server hardware? With 16+ physical CPU cores and 256+GB RAM modern servers have plenty of horsepower for most desktop virtualisation tasks, but what about storage? Spinning disks are slow. End of story. How about lots of cache on your expensive storage controller? That may help a little, but cache doesn’t do much for the write intensive desktop virtualisation workload. SSD? I do like SSDs and have used local server SSD storage in several project for non-persistent virtual desktops, but there are still limitations. For example, take a blade server capable of handling 120 concurrent XenApp sessions and add mirrored SSD drives. While you will be getting good performance out of the SSDs, you still have 120 users sharing the IOPS of a single SSD. And then there is the issue of the expected life of an SSD with heavy writes. So SSDs are ok, but not a great solution – what is left? We have turned to Atlantis ILIO to solve this problem for our clients – Atlantis is the “secret sauce”.

    Atlantis have plenty of info on their website, so I’ll just give you the basics. Atlantis ILIO is a virtual appliance which is installed on each host; it takes a chuck of memory and presents that memory as an NFS or iSCSI target to the hypervisor. Your virtual desktops are then created on the ILIO storage repository, in memory! Yes, it’s fast. Very fast. Our testing showed 22,000 IOPS from ILIO – that’s per host, so with the project we just completed the 12 blades running XenApp have 264,000 IOPS available to them, or 176 IOPS for each of the 1500 users. Go ask your friendly SAN salesman for a quote on a SAN which will handle 264,000 IOPS and you’ll have him/her dreaming of a holiday Tahiti and a promotion!

     

    Atlantis ILIO for XenApp Diskless

     

    There is a whole bunch of great stuff ILIO does to make this a viable option; namely compression and dedup which means you only need about 20-30% of the size of your vDisks to the ILIO RAM disk. I recommend you take a browse of Atlantis’ website and download some of their whilepapers to get familiar with what ILIO can do and how it works.

  3. XenApp Farm Health Check v2

    My original XenApp Farm Health Check has had great feedback, and thanks to all of you who have modified the script and supplied me with the updated code!
    So, finally, version 2 of the script is now available for download. The script has not been extensively tested so please let me know if you have any problems and I will endeavour to help.
    The tests performed by this script are:

    – Ping response
    – Logon enabled
    – Assigned Load Evaluator
    – Active sessions
    – ICA port response
    – CGP port response (session reliability)
    – WMI response (to check for WMI corruption)
    – Citrix IMA, Citrix XML, Citrix Print Manager and Spooler services
    – Server uptime (to ensure scheduled reboots are occurring)
    – Server folder path and worker group memberships are report for informational purposes
    – PVS vDisk and write cache file size

    I schedule the script on a XenApp 6.x Controller (ZDC) to run at least once per day (7 am) where it emails an HTML report on the XenApp farm health.
    Items in the script that should be customised for your environment are listed near the beginning of the script
    Please download the script and provide me with some feedback.
  4. Citrix StoreFront SQL database creation script

    Citrix StoreFront will become the standard client access point for XenApp & XenDesktop over the next couple of years replacing the venerable Citrix Web Interface. The current release of Web Interface (5.4) is the last release and the product will be retired in 2015.
    StoreFront uses a SQL database to store user preferences which provides a consistent user experience across different platforms and locations. Citrix have a 10 step process for creating the SQL database which I have always found a little convoluted, so I have wrapped up the SQL commands into a single script with four variables to customise for the environment.
    The high level steps to install StoreFront using my script are:

    1. Install StoreFront (do not configure StoreFront yet!)
    2. Create an AD group and add the StoreFront AD computer object(s) into the group
    3. Edit the script and customise the @DATABASE_NAME, @MDF_FILE, @LOG_FILE and @STOREFRONT_COMPUTER_GROUP variables to suit your environment
    4. Open the SQL script in Microsoft SQL Server Management and run it
    5. Import an SSL certificate into IIS configure the web site for HTTPS
    6. “Deploy” (configure) StoreFront.
    Easy huh? Let me know if you have any issues or if you have any enhancement you would like to share (I’m no SQL expert!)
    For more detail on the StoreFront configuration see the CloudGateway Entperprise POC Best Practise Guide.
  5. Citrix NetScaler or F5?

    This year I have seen a large increase in the number of Citrix NetScaler projects we have been engaged on. Citrix NetScaler is a proven and simple platform for application high availability and optimisation at the network level. We see NetScalers being used primarily for load balancing with web caching and Global Server Load Balancing (GSLB) also commonly being deployed.
    In Gartner’s Magic Quadrant for Application Delivery Controllers (Oct 2012) only Citrix NetScaler, F5 and Radware are in the Magic Quadrant. In New Zealand the biggest competition to Citrix NetScaler is F5. Given we are a Citrix focused business most of our clients are running Citrix XenApp or Citrix XenDesktop so when we have a conversation around application delivery controllers the benefits of NetScaler over F5 are easier to quantify; with every edition of NetScaler comes Access Gateway Enterprise Edition so you can use one device for both application delivery/load balancing and remote access. Yes, I know F5 also have integration into XenApp and XenDesktop for remote access, but why introduce another vendor into the stack? Especially when the are questions whether remote access via F5 is supported by Citrix.
    If you’re already a Citrix customer, keep it simple and stick with Citrix end-to-end. That is one of Citrix’s points of difference; their end-to-end product suite from client & desktop to networking to server. If you are not already a Citrix customer then the choice is more difficult. Look closely at your requirements, evaluate the products and obtain some pricing.
    You can read theGartner Magic Quadrant for Application Delivery Controllers report here.

  6. Zen: Citrix XenApp and XenDesktop become one

    The rumour that Citrix will combine their XenApp and XenDesktop products into a single product (code named Excalibur) has been announced at Citrix Synergy Barcelona, and surprisingly a tech preview release will be out as soon as November 2012. This is a massive code change for Citrix as they are dropping their 10 year old Independent Management Architecture (IMA) technology in favour of the XenDesktop style Virtual Desktop Agent (VDA) architecture. I had speculated that the next version of XenApp would support only Windows Server 2012, however I am happy to see continued support for Windows Server 2008 R2.

    Citrix are also including important updates to HDX to allow superior media performance on mobile devices and over slow networks.
    I expect to see changes to the Citrix licensing model as Excalibur gets closer to release date. We should see a single product license for desktop virtualisation and application delivery similar to the current XenDesktop license.
    We will finally have a single management console to rule them all! I’m feeling Zen already.

    UPDATE: You can download the Project Avalon Excalibur Tech preview here(MyCitrix logon required), and there is a reviewers guide here.

    More Excalibur info:
    What’s new in Excalibur Delivery Agents
    Excalibur Architecture

  7. Cisco recommend Citrix NetScaler

    Citrix and Cisco have extended their existing partnership and as a result the Cisco ACE range will be phased out with Cisco now recommending Citrix NetScaler for Load Balancing and application delivery control. Citrix is offering a new ACE Migration Program to all global customers which includes migration tools and good product discounts.
    Is this the beginning of consolidation of products between Citrix and Cisco? Will there be a similar announcement for Cisco WaaS and Citrix Branch Repeater in the future?

  8. UPDATE: How to determine Client IP Address in XenApp 6.5

    Thanks to a very helpful comment from Kahless on my previous post on this topic, I have developed a new method of obtaining the client IP address from a script running on the XenApp 6 or XenApp 6.5 server.

    This only works on XenApp 6.5

    This script uses the SESSIONNAME environment variable to return the ClientIP via WMI.

    Function GetCTXClientIP
    Set ObjShell = CreateObject(“Wscript.Shell”)
    Dim strSessionName : strSessionName = ObjShell.ExpandEnvironmentStrings( “%SESSIONNAME%” )
    Dim objCTXWMIService : Set objCTXWMIService = GetObject(“winmgmts:\\localhost\root\citrix\hdx”)
    Dim colCTXItems : Set colCTXItems = objCTXWMIService.ExecQuery(“Select ClientIP from Citrix_Sessions where StationName = ‘” & strSessionName & “‘”)
    Dim objItem, ClientIP

    For Each objItem in colCTXItems
    ClientIP = Cstr (objItem.ClientIP)
    Next

    GetCTXClientIP = ClientIP
    End Function

  9. Citrix CloudGateway 2.0: Enable BYOD and Enterprise Mobility

    Citrix have this morning released CloudGateway 2.0 which has some exciting new features. I was so keen to see the new CloudGateway feature I even got up for a 5am webinar!

    Citrix CloudGateway is all about having a single point of control for all applications on all devices; Windows, web & mobile (iOS/Android/HTML5) applications delivered to any device which can run the Citrix Receiver client.
    Four MDX Technologies where introduced this morning:
    MDX App Vault.Deliver native mobile applications to mobile devices.
    MDX Web Connect.A secure web browser for accessing intranet sites securely from mobile applications.
    MDX Micro VPN.Secure access connection between the mobile application and the corporate network. Ensures personal data on the mobile device is not exposed to the corporate network.
    MDX Policy Orchestration.Policy based control system for mobile application delivery.
    Citrix ShareFile integration was also announced provides access to corporate data from any device with a Citrix Receiver.
    Citrix also announced they will extend their Citrix Ready partnership to mobile app ISVs to grow the adoption of CloudGateway as an enterprise delivery platform for mobile devices.
    Citrix will release a secure enterprise E-mail, calendar & contacts client for mobile devices via Citrix CloudGateway 2.0. This is due later in 2012, and combined with the MDX Web Connect, provides Citrix customers with the means to securely deliver the basic mobile applications most users require.

Subscribe to our Newsletter



Please leave this field empty.