I’m very happy to announce, that I will be presenter on 1st meeting of Polish Citrix User Group. This meeting will take place on 5th of March, 2015 in Krakow. My topic is – Case Study about Citrix Provisioning Services implementation for 300+ servers and 3500+ users.
Last days I had to migrate couple VDI’s VM from one Hyper-V installation to another (separate VMM instances). But I didn’t want to recreate Catalogs and Desktop Groups. I just wanted to change the “link” from XD object (BrokerDesktop) to VMM object (Virtual Machine).
So let’s take a look, how this integration is implemented – I prepared a simple diagram:
In the box “Citrix XenDesktop 7.x” you can see BrokerDesktop object (that user can see and can connect to) and Hypervisor connection object. Of course, you can have many connections to many VMM installations.
So let’s start with PowerShell (I guess, that this operation is only possible in that way).
PS C:\> Add-PsSnapin Citrix.*
And list information about this connection (our machine name is VDI01 and domain: home.lab):
PS C:\> Get-BrokerDesktop [[-MachineName] ...]
MachineName Gets desktops with a specific machine name (in the form 'domain\machine').
OK, so let’s say, that we moved our VM from one VMM (VMM01) to another (VMM02). We will have to change property of that Desktop to use the proper connection:
But when we moved this VM to new VMM virtual machine ID might changed. So we will also have to change this value on XD. Let’s find out, what is the new ID for out VDI. Open PowerShell windows from VMM and type:
PS C:\> Get-VM "XD01" | select Name, ID
Name : XD01
ID : ce9873ea-777a-4acd-a510-bd0e159fcb8a
As we can see, VM ID changed. So right now we will update this value in XD Desktop object:
And that’s all, now you have to restart Desktop services on all DDCs, to reload configuration and to be sure, that new VMs will be visible from XD perspective.
P.S.
to get more information about hypervisor connections you can also use this commands (XDHyp object):
In the previous version (green bubbles) you might customize StoreFront for Web, but Receiver application remain with the green interface. It wasn’t cool. In this new version all customization setting should be pass to Citrix Receiver to customize it – and this is great.
On March 5th, 2015 took place 1st Polish Citrix User Group meeting. Paweł Serwan prepared short review (it was written in polish, but you can always use google translate).
Here are two photos:
Me and my presentation about Citrix Provisioning Services – Case Study:
During last Polish Citrix User Group (PLCUG) meeting I was asked what is the best way, to measure user ICA Session latency. We have several methods to do this:
HDX Monitor – we can use it for XenApp 6.5 – XenDesktop 7.6
EdgeSight – only for XenApp 6.5 (for EUEM counters we will need Platinum licenses)
Citrix Director (part of XenDesktop 7.x) – it shows latency in the same way
Unfortunately this methods allow us only to verify few counters, and only in limited way (latency is shown in Real Time without history data). We can’t use it for deep analytics and troubleshooting. That’s we Citrix implemeneted performance counters. The most important thing is, that we can set collecting all data when users are working and can analyze it lately.
I won’t write here, how to use performance monitor (you can find many posts, how to use it).
Here are some screenshots from performance monitor.
Below we can see “\ICA Session(*)\Latency – Last Recorded” counters. I marked (black line) one – average value was 18ms (it’s very nice) and maximum recorded value was 312ms.
If we want to verify, what is the network bandwidth we can use “\ICA Session(*)\Output Session Bandwidth” counters. Below one user session – average 242 kbps with maximum value at 1,5 Mbps.
And the last one – server load. Using this “\Citrix MetaFrame Presentation Server\Cumulative Server Load” counter we can verify Server Load – the same value show command “QFARM /LOAD“.
I guess that’s all right now. If you are interested more about those counters or performance monitoring of XenApp servers please let me now (using comments below).
Have you ever wandered how Citrix License usage looks like? You can open License Server console and check it. But what about some graphs or proactive informations? You can use EdgeSight – there is License Server monitoring tool. But what can you do, if you don’t want to install this tool. EdgeSigth is dedicated to old XenApp – based on IMA – and is no longer supported. So it rather pointless to use it. Mayby we can export informations from server and create graphs in Excel. Or, if we want to have “online” monitoring, we can use greate tool called – RRDtool. Information from official website:
What RRDtool does
RRDtool is the OpenSource industry standard, high performance data logging and graphing system for time series data. RRDtool can be easily integrated in shell scripts, perl, python, ruby, lua or tcl applications.
Image may be NSFW. Clik here to view.
So I decided to write simple mechanism to create nice usage graphs:
Image may be NSFW. Clik here to view.
We will use:
PowerShell and CMD – to write all scripts
WMI – to get information from Citrix License Server
RRDtool – to save data in Round Robin Database and to generate nice graphs
All script will be executed on Citrix License Server. You can modify update script to call WMI remotly.
Create new directory called CTX. Inside this directory we will have:
Image may be NSFW. Clik here to view.
graphs – folder contain generated graphs
RRDtool – windows binaries
CtxLicUsage.rrd – our Round Robin Database
CtxLicUsage_Graph.bat – script with commands to generate graphs – this batch is run using Task Scheduler
CtxLicUsage_Update.bat – script to execute PowerShell script- CtxLicUsage_Update.ps1 – this batch is run using Task Scheduler (every 5 minutes)
CtxLicUsage_Update.ps1 – script to update RRD file
So let’s start. At the beginning let’s create new RRD file – we will do this only once:
We created one RRD file with 4 Data Sources (DS). These DS will collect informations about license usage – total, used, available and overdraft (these overdraft exists only in User/Device license type, so if you want to monitor CCU type you can make simple modifications). We will be collecting data every 300 seconds (5 minutes) – I think it’s enough for U/D licenses, but you can change it to 1 minute (for CCU). We will collect all data in 4 Round Robin Archives (RRA). 1st for 10 days (2880 samples every 300 seconds is 864000 seconds / 60 seconds = 14400 hours / 60 minutes = 240 hours / 24 hour = 10 days), 2nd for 30 days, 3rd for 3 months and the last one for 18 months.
What we do in this script. We are using WMI to get information about licenses. Then we are creating update command. Remember, rrdtool update accept only unix timestamps, and command syntax is:
OK, updating PowerShell script is done. Now we have to execute it every 5 minutes. So let’s use Windows Task Scheduler for this. Create file CtxLicUsage_Update.bat:
We will call PoSH update commands and after that we will generate graphs. Now set Task Scheduler, to execute this CtxLicUsage_Update.bat script every 5 minutes (infinitely). So right now our RRD database will be filled with data every 300 seconds.
The last and most spectacular step – graph generating.
By default graph command generate image for 1 day time period. First graph (at the beginning of this post) was generated using this command. If you want to create image for 10 days period you can add
At the beginning I wrote, that we can do some predictions. Let’s generate trend line (we will show 10 days prediction using 10 days data from the past):
If you think, that this license monitoring tool is usefull please let me know using comments below. If you are interested in other usage of RRDtool (in Citrix environment) please let me know.
We all know, that all network applications where user experience (UX) is critical requires low network latency.
We also know, that Citrix works very well on high latency WAN links. It provides many features, that keeps user satisfied by UX. In the past we had “Local Text Echo” and “SpeedScreen”. Right now we have “HDX SuperCodec” and recently Citrix announced “Framehawk” technology for HDX.
OK, let’s say, that we want to verify, if our XA/XD customization works correctly in high latency WAN links. But we are connected to Data Center usually with at least 100MBps link (with <1ms RTT). So what can we do? We can switch to GSM modem, but nowadays we mobile providers connects us by LTE technology. I had this problem 2 month ago – how to simulate high latency link. In my case I wanted to test network file transfer using SMB protocol in WAN environment.
I found great tool – it’s called clumsy. Short description about those tool and it’s options (from clumsy website):
Leveraging the awesome WinDivert library, clumsy stops living network packets and capture them, lag/drop/tamper/.. the packets on demand, then send them away. Whether you want to track down weird bugs related to broken network, or evaluate your application on poor connections, clumsy will come in handy:
No installation.
No need for proxy setup or code change in your application.
System wide network capturing means it works on any application.
Support not only HTTP, any protocol based on TCP/IP is supported.
Works even if you’re offline (ie, connecting from localhost to localhost).
Your application keeps running, while clumsy can start and stop anytime.
Interactive controll how bad the network can be, with enough visual feedback to tell you what’s going on.
I decided to use this tool, to verify UX in XenApp environment. I started clumsy (to verify if it works) and set Lag to 200ms. Remember, when you set Lag for both Inboud and Outbound traffic, that you will get 400ms latency. Remember to start clumsy as an administrator.
OK, so now the XenApp test.
On screenshot below you can see two graphs with ICA performance countes. Upper – shows “Latency – Last Recorded” counter. Lower – show “Output Session LineSpeed”. In first case, I set latency to 500ms (red circle). Citrix detected, that line speed is very low and UX was terrible. What is interested – session compression level didn’t changed (with comparsion to low latency netrowk). After that I stopped clumsy, and my latency back to normal (1-3ms) – it’s blue circle. XenApp recalculated the line speed, and shows almost real value.
clumsy will choose which packets to capture by given filter, in which in can specify whether it’s inbound or outbound, tcp or udp, socket port or ip, or a logical combination of many of those criterias. When started clumsy will only capture packets based on the filter, leaving others untouched.
After packets are captured, you can choose to enable provided functions to worsen perspective network condition:
Lag, hold the packets for a short period of time to emulate network lagging.
Drop, randomly discard packets.
Throttle, block traffic for a given time frame, then send them in a single batch.
Duplicate, send cloned packets right after to the original one.
Yesterday (28th of July) Microsoft started upgrading Windows 10 on client machines. But as you know not all of us will be able to install the new version just right after this date. On my one PC, where I had Windows 10 Technical Preview I got final version 1 week before official release. But on my laptop also with Windows 7 I currently I didn’t get this update yet.
Delete the content (files and directories) in the C:\Windows\SoftwareDistribution\Download folder
Open cmd as an administrator and execute command: wuauclt.exe /updatenow
Up should be able to download and install Windows 10 (in Windows update option)
This solution supposedly work but only in Windows 8/8.1. And what if I want to upgrade my Windows 7 right now. We can use Microsoft media creation tool – you can download it right here. After downloading just run this program and wait until download is complete Image may be NSFW. Clik here to view. And here you go, you are ready to install Windows 10 – on demand.
Image may be NSFW. Clik here to view. Image may be NSFW. Clik here to view.
Here is one strage change. I’m using polish Windows distribution but I changed language to english. As you can see right now, installer change language to polish Image may be NSFW. Clik here to view. So here is “preparing (29%)” and the second screenshot – “almost ready”.
At the begging of July I’ve started testing one of SDS (Software Defined Storage) implementation –Atlantis USX. More information about product itself I will present in next posts. And right now I want to share the result of first performance tests I’ve made.
Test environment: 4 hosts: HP Blade ProLiant BL460c G6. Each host have:
2x 6 cores CPU (24 vCPU – with Hyper-threading)
196GB RAM
1x 146GB (15k) local disk for Hypervisor
1x 300GB (10k) local disk for data (used as a RAW space for Atlantis)
1x 1GBps NIC for management and storage traffic
1x 1GBps NIC for VM data traffic
Atlantis recommends 10GE NIC especially for storage network – so keep in my that all the tests was done using 1GBps network.
Hypervisor – Citrix XenServer 6.5 with SP1.
For test purpose I used IOmeter tool. Here is the configuration of IOmeter:
One manager with one disk
Maximum Size: 1GB
Queue Depth: 20 (Outstanding IO’s)
Test time: 5 minutes
Access specification – VDI type:
Block size: 4kB
Read/Write ratio: 20/80
Random/Sequential: 80/20
IO Alignment: 128kB
I wanted to verify if Atlantis USX volumes are at least so good as classic storage solution. As a reference I used EMC VNX 5500 storage system configured for RAID 5.
I created one Hyper-converged (HC) volume (200GB size).
Tests:
1 VM on VNX and 1 VM on HC volume.
3 VMs on VNX and 3 VMs on HC volume (in each case VMs was placed on the same physical host).
8 VMs on HC volume.
In each test I measured total/read/write values for IOps count, throughput (in MBps) and average latency. I also verified, what was the latency distribution. This test shows, how many I/O operations was measured for each specified time slots (0 to 50 uS; 50 to 100 uS; 100 to 200 uS; 200 to 500 ; 0.5 to 1 mS; 1 to 2 mS; 2 to 5 mS; 5 to 10 mS; 10 to 15 mS; 15 to 20 mS; 20 to 30 mS; 30 to 50 mS; 50 to 100 mS; 100 to 200 mS; 200 to 500 mS; 0.5 to 1 S; 1 to 2 s; 2 to 4.7 s; 4.7 to 5 s; 5 to 10 s; >= 10 s)
Here are the results and graphs. Legend: [VNX] – EMC VNX 5500 configured for RAID 5, 2TB LUN [HC] – Atlantis USX Hyper-converged volume, 200GB NFS export vmX – Virtual Machine – Windows 2008 R2 with XenApp 6.5
Image may be NSFW. Clik here to view.
Based on the results of the tests I can confirm, that this product looks very promising and very similar to classic storage approach. And as I mention at the beginning, I used 1GBps NICs, instead of 10GE with low latency (Atlantis recomended).
Of course, this is just the beginning, and more tests has to be done, to confirm it – user load tests, HA test, etc.
Note: All test was done on Atlantis USX version 2.2.2.
In my previous post I tested disk performance base on Windows 2008 R2 servers. All the servers was installed using the same build (image for Terminal Services/XenApp service). In the past I’ve done some tests with deduplication on NetApp filers. I’ve placed 10 W2K8 servers on one LUN. When I enabled deduplication I was able to reduce used space to 30%. So deduplication ratio was at 60-70%.
I wanted to test how many physical data can be reduced in Atlantis USX.
Atlantis USX™ includes integrated HyperDup™ Content-Aware Data Services that leverage Atlantis real-time deduplication technology to provide data reduction, IO acceleration, provisioning, data mobility, security and business continuity for any storage.
Atlantis USX provides patented, real-time, in-line deduplication and compression to reduce the capacity required to store data by up to 90%.
Atlantis USX deduplicates at the 4KB block level and operates by detecting redundant data and replacing it with a single logical copy, maintaining an index and using reference pointers to make that data available whenever it is required. The higher the amount of redundant data, the larger the storage capacity and cost savings associated with the Atlantis USX HyperDup technology.
Compression
Compression is another proven data reduction technology that Atlantis USX uses in conjunction with deduplication to reduce storage capacity requirements even furtherAtlantis USX In-Memory Storage Optimization Technology offers policy-driven lossless compression, based on proven Lempel-Ziv algorithms, which can be applied to the deduplicated I/O stream before it is written to storage.
I’ve created 8 VMs, placed them on storage LUN and installed Windows 2008 R2 (one image). After that, I moved 3 VMs from storage LUN to Atlantis Hyper-converged (HC) volume. Deduplication ratio (reported by USX console) was 68%. Capacity used (from XenServer perspective) was 40.5GB (inside Windows server spaced used was 20GB).
In this configuration I’ve done some tests, and started moving next VMs to this volume:
3 VM’s – 40,5GB
5 VM’s – 45,8GB
6 VM’s – 47,6GB
7 VM’s – 49GB
8 VM’s – 50,7GB
When I moved all 8 VMs deduplication ratio was 79%. In thick provisioned LUN used space will be 20GB * 8 VMs = 160GB. And on Atlantis volume used space was almost 51GB.
Here is very interesing graph – IOPS offload. I guess that means (documentation doesn’t explain this very well), that all those I/O operation was handled by RAM, and it doesn’t have to go to disk (increase speed and reduce latency).
And the last very interesting thing. Here is the screenshot from Volume VM statistics. In those rectangles we have 4 columns – starting from the left: disk read, disk write, network receive, network send. I made this screenshot, when I started VM move operation (from storage LUN to Atlantis volume). We have about 60MBps input network traffic. At the beginning some part of those data goes to disks (10MBps) – I guess, it was some unique data (red box), but after a while some data was the same as those already stored on a disks, so deduplication process started saving only metadata, and only small portion of those data goes directly to disks.
On 15th of October 2015 I had a speech at IT Professional Cloud Camp conference. I was talking about SDS and Hyperconverged architecture – “Hyperconverged architecture – is it the beginning of the end of classic storage”. I was presenting general overview and some implementations – like Atlantis USX, Nutanix, EMC ScaleIO and Windows 2016 Storage Spaces Direct.
On 18th of September 2015 took place 2nd Polish Citrix User Group [PLCUG] meeting. This time it was organized in Warsaw (capital city) – the previous one (1st meeting) took place in Cracow – you can read about it right here. You can read polish review on PLCUG official site.
Finally, after 2 years (Mobility Conference 2013) Citrix is going to back to Poland and will organize new conference – Citrix Technology Exchange Roadshow. Registration is already opened. It will took place in Radison Blu Hotel in Warsaw.
Just short information – I will be a speaker on a conference – IT Professional Security Camp on 19-20 of November 2015. This conference will take place in Karpacz (Hotel 2 Potoki). I will be talking about “Virtual Environment Security”. If you are interested in such topics please feel free to register. I hope we will meet there.
Yesterday (29th of December 2015) Citrix published their brand new XenDesktop 7.7. With this version Citrix would like to bring some “new” features to XenDesktop 7.6. We have two kind of “new” features. The real ones – like:
Proactive monitoring and alerting
SCOM integration
Desktop and Server OS usage
Windows Authentication in Director (SSON)
and the “fake” one. Fake, because some of them was intentionally removed from XenDesktop 7.0 (when Citrix announced new FMA architecture for whole suite – XenApp/XenDesktop), and right now, they are back as “new and enhanced features”:
Database configuration – right now, we can split 3 databases from one server to many – for Site config, Logging and Monitoring. Looks familiar? (in XenApp we could specify additional DB for logging).
Application limit – we can set limits for applications, but we could have done this in XA 6.5, haven’t we?
Proactive monitoring and alerting – again? Yes, many of these features we had in EdgeSight, so be happy, but this is not an EdgeSight.
Unfortunately, I haven’t found any informations about AppDisks, but I will verify it in a field.
In October and November 2015 I had a chance to be a member of AppDisk Technology Preview Program. I had about 6 sessions with Citrix. I installed XD 7.7 Technology Preview and I was asked about my opinion about this product. We have also discussed new features in Studio and Director. And I see, that one of my sugestion wasn’t applied. It was related to option “Multiple notifications before machine updates or scheduled restarts”. Citrix wrote: “If you indicate that the first message should be sent to each affected machine 15 minutes before the update or restart begins, you can also specify that the message be repeated every five minutes until the update/restart begins.” I suggested, that 15 minutes is not enough. Maybe in next versions.
We have also new version of Provisioning Services 7.7. The most important changes:
Support for Microsoft Windows 10 Enterprise and Professional editions.
In-place upgrade of target device software.
Support for UEFI pre-boot environments. This enables you to stream at startup time using gigabit network speeds, so users experience faster startups, and to use disks over 2 TB.
Streaming VHDX formatted disks.
And my favourite one: The Provisioning Services API has been enhanced to provide a standard object-oriented PowerShell interface that enables you to integrate your products and tools easily with Provisioning Services. No more tough strings manipulation of PVS PoSH mcli output Image may be NSFW. Clik here to view.
There is also one more change: “System Center Virtual Machine Manager Generation 2 VMs can be provisioned through Provisioning Services. Generation 2 VMs are optimized for modern workloads: the operating system does not carry the overhead of legacy drivers, devices and x86 architectures.” But with a note: “This feature has received limited testing, may not be present in future product releases and must not be enabled on production systems. Citrix may not respond to support requests regarding this feature.“ So right now we are still no sure if we will be able to stream Windows Server 2012/2016 or Windows 8/10 on Hyper-V. Very sad information.
Citrix also published new versions of UPM (Profile Management) 5.4, Citrix Licensing 11.13.1 and HDX RealTime Optimization Pack 2.0. Some informations about Optimization Pack 2.0:
Finally, after half a year (from 1.8 version) Optimization Pack will support “Native Skype for Business 2015 UI” (version 1.8 supports Skype for Business 2015 only on Lync UI mode). AFAIK, Microsoft already announced Lync 2016.
We have also StoreFront 3.0, but it was published in November this year.
And at the end – we have new Receiver 4.4 (released on 18th December 2015).
Ok. If you haven’t read the text above or just want to go directly to “what’s new” pages, here they are:
I’m happy to announced, that Paweł Serwan and I will be a speakers on 2nd edition of infraXstructure conference. More information soon Image may be NSFW. Clik here to view.
Currently GITHUB is a standard tool to publish all kind of codes. That’s why I have also published my first project there. It’s quite old Citrix License Usage monitoring script. It’s located right here. And the old post and all the documentation are right there.
I also promised (during IV PLCUG meeting) that I will publish some of my scripts. I hope GITHUB will speed up this process.
As I promised on IV PLCUG meeting all link I mentioned during the speach will be available on my blog. So here they are. If you have any questions don’t hesitate to answer me.
I guess, it’s small tradition right now, that every odd PLCUG meeting take place in Cracow and even in Warsaw. So on 4th meeting we all gathered in CISCO office in our capital city – Warsaw.
I have to mention, that a special guest was Jarian Gibson (@JarianGibson). I can’t tell what was the main topic of his speech. He said about many interested things (including recent Citrix acquisition – Norskale). But I can say, that it was very nice.
Please go to the plugin admin page to Paste your ad code OR Suppress this ad slot.
If I would ask you: “Do you know your Citrix environment?”. What be your answer? I guess, you know, how it’s configured and how all those components works. But what is the performance? Do you reach the thresholds? If you don’t have dedicated monitoring tool, when something wrong happens you have to do the investigation ad-hoc. Sometimes it too late, because some data are already gone.
I know, that when your are working in a big company with huge Citrix environment, you probably already have many tools for that. But if you have 30, 60, 100 users and 3 or even 10 XenApp servers, then I guess you will not have dedicated monitoring tool. And I know, there are many that kind of implementations.
That’s why I started working on a tool, that will be available online (in the cloud). You will have to create an account, download and install locally some agents, and then wait for the results, graphs and statistics that will be available online in the dashboard.
Right now I’m finishing the GUI for this tool. If you are intersted in this product and would like to be a BETA tester, please let me know.
Here is just a short sample what graphs you can expect:
But first, start with this short survey – it will show me some general information about you and your environment. You can use this link: https://goo.gl/forms/OUAMI11Nnlh95G0w1