<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Andrew Morgan &#187; XenDesktop</title>
	<atom:link href="http://andrewmorgan.ie/category/xendesktop/feed/" rel="self" type="application/rss+xml" />
	<link>http://andrewmorgan.ie</link>
	<description>Grumpy ramblings</description>
	<lastBuildDate>Fri, 30 Jun 2017 09:24:25 +0000</lastBuildDate>
	<language>en-US</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.0</generator>
	<item>
		<title>UnSticking an AppDisk provisioning task in XenDesktop 7.x preview</title>
		<link>http://andrewmorgan.ie/2016/02/unsticking-an-appdisk-provisioning-task-in-xendesktop-7-x-preview/</link>
		<comments>http://andrewmorgan.ie/2016/02/unsticking-an-appdisk-provisioning-task-in-xendesktop-7-x-preview/#comments</comments>
		<pubDate>Tue, 09 Feb 2016 13:05:05 +0000</pubDate>
		<dc:creator><![CDATA[andyjmorgan]]></dc:creator>
				<category><![CDATA[Citrix]]></category>
		<category><![CDATA[XenDesktop]]></category>
		<category><![CDATA[AppDisk]]></category>

		<guid isPermaLink="false">http://andrewmorgan.ie/?p=3656</guid>
		<description><![CDATA[Here&#8217;s a wee little bug I&#8217;ve no idea how i created, but managed to clear it out anyway. After creating an AppDisk, it got a little stuck. I tried deleting the task and AppDisk but the disk just seemed to be stuck in the &#8220;creating&#8221; phase indefinately. To remove it, I had to do the following in Powershell from a delivery controller: ASNP Citrix* get-applibtask -active $true &#160; Once i had identified the TaskID, i ran: Stop-AppLibTask -TaskId 5be48afc-263b-454e-b3e9-5a2db6b966ff remove-AppLibTask [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Here&#8217;s a wee little bug I&#8217;ve no idea how i created, but managed to clear it out anyway.</p>
<p>After creating an AppDisk, it got a little stuck. I tried deleting the task and AppDisk but the disk just seemed to be stuck in the &#8220;creating&#8221; phase indefinately.</p>
<p><a href="http://andrewmorgan.ie/wp-content/uploads/2016/02/stick.png"><img class="aligncenter wp-image-3658 size-full" src="http://andrewmorgan.ie/wp-content/uploads/2016/02/stick.png" alt="stick" width="797" height="190" /></a></p>
<p><span id="more-3656"></span></p>
<p>To remove it, I had to do the following in Powershell from a delivery controller:</p>
<p><strong>ASNP Citrix*<del><br />
</del>get-applibtask -active $true</strong></p>
<p><a href="http://andrewmorgan.ie/wp-content/uploads/2016/02/active.png"><img class="aligncenter wp-image-3659 size-full" src="http://andrewmorgan.ie/wp-content/uploads/2016/02/active.png" alt="active" width="624" height="427" /></a></p>
<p>&nbsp;</p>
<p>Once i had identified the TaskID, i ran:</p>
<p><strong>Stop-AppLibTask -TaskId 5be48afc-263b-454e-b3e9-5a2db6b966ff</strong><br />
<strong>remove-AppLibTask -TaskId 5be48afc-263b-454e-b3e9-5a2db6b966ff</strong></p>
<p>Now just one last thing to do!</p>
<p>&nbsp;</p>
<p><strong>get-applibappdisk</strong> and find the entry in the &#8220;creating&#8221; state:<a href="http://andrewmorgan.ie/wp-content/uploads/2016/02/AppLibDisk.png"><img class="aligncenter wp-image-3660 size-full" src="http://andrewmorgan.ie/wp-content/uploads/2016/02/AppLibDisk.png" alt="AppLibDisk" width="534" height="266" /></a>Now finish with a:</p>
<p><strong>remove-AppLibAppDisk -AppDiskUid d54681d3-6d0a-4259-b3ee-b90a899033bd</strong></p>
<p>using the DiskUid that you saw in the previous get-applibappdisk command.</p>
<p>Thats it!</p>
<h3>Update:</h3>
<p>if you find that the machine you usually use to capture app disks is no longer available. use the following command to release it:</p>
<p><strong>set-BrokerMachine -IsReserved $false -MachineName &lt;MachineName&gt;</strong></p>
<p><em>PS: I could have piped a lot of that, sure! but my mac pipe symbol is currently out of action so i did it the hard way. if you are the type who reads others blogs and leaves comments to improve the scripting, I&#8217;m sure there are new people on the Microsoft forums you could be bawking at right now.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://andrewmorgan.ie/2016/02/unsticking-an-appdisk-provisioning-task-in-xendesktop-7-x-preview/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ThreadLocker 2.1 is available.</title>
		<link>http://andrewmorgan.ie/2015/12/threadlocker-2-1-is-available/</link>
		<comments>http://andrewmorgan.ie/2015/12/threadlocker-2-1-is-available/#comments</comments>
		<pubDate>Mon, 07 Dec 2015 12:14:47 +0000</pubDate>
		<dc:creator><![CDATA[andyjmorgan]]></dc:creator>
				<category><![CDATA[Citrix]]></category>
		<category><![CDATA[ThreadLocker]]></category>
		<category><![CDATA[XenApp]]></category>
		<category><![CDATA[XenDesktop]]></category>
		<category><![CDATA[CPU intelligence]]></category>
		<category><![CDATA[Server Based Computing]]></category>
		<category><![CDATA[VDI]]></category>

		<guid isPermaLink="false">http://andrewmorgan.ie/?p=3567</guid>
		<description><![CDATA[Shortly after it&#8217;s initial launch and great reception! I&#8217;m proud to announce the general availability of ThreadLocker 2.1. This is a minor update but does include some new key features and functionality. What’s new in 2.1: ThreadLocker Priority: There is now the ability to assign a custom priority to a process when it has been ThreadLocked, allowing you to not only control which cores a ThreadLocked process runs on but also the priority it runs at. Included Processes Only: This new [&#8230;]]]></description>
				<content:encoded><![CDATA[<div class="row-fluid bottom-margin-no ">
<div class="span8">
<div class="inner-content">
<div class="column-text clearfix"><img class="alignright size-full wp-image-3397" src="http://andrewmorgan.ie/wp-content/uploads/2015/03/Threadlocker-128x128.png" alt="Threadlocker 128x128" width="128" height="128" />Shortly after it&#8217;s initial launch and great reception! I&#8217;m proud to announce the general availability of ThreadLocker 2.1.</div>
<div class="column-text clearfix"></div>
<div class="column-text clearfix">This is a minor update but does include some new key features and functionality.</div>
</div>
</div>
</div>
<div class="row-fluid bottom-margin-no ">
<div class="span10">
<div class="inner-content">
<div class="column-text clearfix">
<h3>What’s new in 2.1:</h3>
<h5>ThreadLocker Priority:</h5>
<p>There is now the ability to assign a custom priority to a process when it has been ThreadLocked, allowing you to not only control which cores a ThreadLocked process runs on but also the priority it runs at.</p>
<h5>Included Processes Only:</h5>
<p>This new option allows you to specify which processes you want to apply ThreadLocking to. Previously the Enterprise Edition could apply ThreadLocking to any running process on the system but now you can now control this on a per process basis.</p>
<h5>Logging:</h5>
<p>Certain ‘error’ events were being incorrectly logged to the Windows Event log, these have now been removed.</p>
<h3>Availability</h3>
<p>ThreadLocker 2.1 is available from today and can be found at:</p>
<p><a href="http://www.thinscaletechnology.com/threadlocker">http://www.thinscaletechnology.com/threadlocker</a>.</p>
</div>
</div>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://andrewmorgan.ie/2015/12/threadlocker-2-1-is-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ThreadLocker 2.0 is live!</title>
		<link>http://andrewmorgan.ie/2015/09/threadlocker-2-0/</link>
		<comments>http://andrewmorgan.ie/2015/09/threadlocker-2-0/#comments</comments>
		<pubDate>Mon, 21 Sep 2015 13:00:11 +0000</pubDate>
		<dc:creator><![CDATA[andyjmorgan]]></dc:creator>
				<category><![CDATA[Citrix]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Server Based Computing]]></category>
		<category><![CDATA[ThreadLocker]]></category>
		<category><![CDATA[Virtual Desktop Infrastructure]]></category>
		<category><![CDATA[VMware Horizon]]></category>
		<category><![CDATA[XenApp]]></category>
		<category><![CDATA[XenDesktop]]></category>
		<category><![CDATA[Cpu Clamping]]></category>
		<category><![CDATA[CPU Optimisation]]></category>
		<category><![CDATA[Terminal Services]]></category>
		<category><![CDATA[VDI]]></category>

		<guid isPermaLink="false">http://andrewmorgan.ie/?p=3394</guid>
		<description><![CDATA[Back in 2012 I wrote a utility called &#8220;ThreadLocker&#8221; for dealing with CPU heavy processes or multi threaded processes that have a nasty tendency to cause sluggish performance or even hangs in shared computing environments. You can read all about the original concept here. My good friend and fellow CTP Barry Schiffer also wrote a really good article about the need for a product like ThreadLocker here. &#160; Some history: In essence, ThreadLocker was a utility for both shared and 1:1 desktop [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-3397" src="http://andrewmorgan.ie/wp-content/uploads/2015/03/Threadlocker-128x128.png" alt="Threadlocker 128x128" width="128" height="128" />Back in 2012 I wrote a utility called &#8220;<a href="http://andrewmorgan.ie/2012/05/introducing-threadlocker-a-community-tool-for-granular-control-of-processes/">ThreadLocker</a>&#8221; for dealing with CPU heavy processes or multi threaded processes that have a nasty tendency to cause sluggish performance or even hangs in shared computing environments.</p>
<p>You can read all about the original concept <a href="http://andrewmorgan.ie/2012/05/introducing-threadlocker-a-community-tool-for-granular-control-of-processes/">here</a>. My good friend and fellow CTP Barry Schiffer also wrote a really good article about the need for a product like ThreadLocker <a href="http://www.barryschiffer.com/cpu-scheduling-and-memory-optimizations-solutions-compared-part-1-of-2-cpu/#more-673">here</a>.</p>
<p>&nbsp;</p>
<p><strong>Some history:</strong></p>
<p>In essence, ThreadLocker was a utility for both shared and 1:1 desktop environments. It allowed you to layer in rules for processes that had a history of high or discruptive CPU usage, to protect the other users (in a shared environment) or to protect other running processes and the users interface (explorer.exe) while a large compute job was occurring.</p>
<p>ThreadLocker exploded with popularity and has received well over 100,000 downloads in the last three years. Alike ThinKiosk, ThreadLocker is a tool I regularly come across in my customers environments while consulting and it always suprised me with it&#8217;s uptake and popularity. I have observed ThreadLocker in VDI, SBC and even on stand alone workstations with great levels of success.</p>
<p>&nbsp;</p>
<p><strong>Moving on:</strong></p>
<p>One of the frustrations I had with ThreadLocker, was any .NET based language (c#, vb.net, etc.) was never quick enough to be able to add an intelligent aspect to the utility without actually making CPU usage worse by implementing. ThreadLocker 1.0 relied on static rules and any new processes would have to be observed and added.</p>
<p>Recently David Coombes and I undertook the side project of redesigning ThreadLocker to run in c++, adding the raw speed we needed to be able to make intelligent decisions based on CPU usage and react in a fraction of a second to a sudden CPU spike. ThreadLocker 2.0 was designed to specifically tackle two issues:</p>
<ul>
<li>Processes comsuming a large % of CPU and is multithreaded.</li>
<li>Many buggy or heavy processes, each consuming a core each.</li>
</ul>
<p>We didnt want to tackle this with the approach of many others, where they&#8217;ll pause and resume threads many times a second creating a &#8220;SawTooth&#8221; effect on the processes CPU usage. We wanted the processes to run as fast as they need up to a certain threshold and only be restricted when contention is likely.</p>
<p>Having experienced other vendors approaches where process priority is dropped, many times this simply does not cut it as a heavy process, even at idle priority, will cause the other users and processes to feel slow and sluggish.</p>
<p><strong>Why is ThreadLocker different?</strong></p>
<p>With ThreadLocker 2.0, you can elect a percentage of your CPU cores that ThreadLocker can use for isolating these processes. When a process violates the ThreadLocking criteria, they are locked into these subset of cores to contend with any other processes that are also ThreadLocked, leaving well behaved processes to be able to take advantage of all cores in system. Once they start to behave again and do so for a certain amount of time, the processes are dropped back into the &#8220;wild&#8221; unless they decide to misbehave again.</p>
<p>This approach is extremely fast (ThreadLocker consumes less CPU than Microsoft&#8217;s own Task Manager) from a processing point of view and also has the benefit of allowing users to multitask with other applications while, for example, Excel hammers the ThreadLocking cores during a calculation.</p>
<p>The end result has been fantastic. Threadlocker can be installed and up and running in seconds. There is no longer a requirement for static rules and out of box, all aspects of the logic can be tuned to suit your environment, but more than likely wont be needed.</p>
<p><strong> Demo Video:</strong></p>
<p>&nbsp;</p>
<p><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='625' height='382' src='http://www.youtube.com/embed/ovULHeaZnrI?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0' allowfullscreen='true'></iframe></span></p>
<p><strong><br />
Availability</strong></p>
<p>We are proud to announce the general availability of ThreadLocker 2.0 and more information can be found on our website at <a href="http://www.thinscaletechnology.com/threadlocker">http://www.thinscaletechnology.com/threadlocker</a>.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://andrewmorgan.ie/2015/09/threadlocker-2-0/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>New Free Tool: Citrix Director Notification Service</title>
		<link>http://andrewmorgan.ie/2015/08/new-free-tool-citrix-director-notification-service/</link>
		<comments>http://andrewmorgan.ie/2015/08/new-free-tool-citrix-director-notification-service/#comments</comments>
		<pubDate>Mon, 17 Aug 2015 19:59:53 +0000</pubDate>
		<dc:creator><![CDATA[andyjmorgan]]></dc:creator>
				<category><![CDATA[Citrix]]></category>
		<category><![CDATA[XenApp]]></category>
		<category><![CDATA[XenDesktop]]></category>
		<category><![CDATA[Director]]></category>
		<category><![CDATA[Email]]></category>
		<category><![CDATA[Notification]]></category>
		<category><![CDATA[xenapp]]></category>

		<guid isPermaLink="false">http://andrewmorgan.ie/?p=3450</guid>
		<description><![CDATA[Citrix Director for XenApp and XenDesktop can be a great utility for information about your Application / Desktop virtualisation environment. In Director you can find a wealth of information about the provisioned assets, the Controller, Licensing and Hypervisor status and the current running resources. One area it&#8217;s always lacked is real time alerting. In order to really know what&#8217;s going on in your environment you need to be logged into director and watching. This is less than ideal and few [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><img class="alignright size-thumbnail wp-image-3451" src="http://andrewmorgan.ie/wp-content/uploads/2015/08/DirectorNotification-150x150.jpg" alt="DirectorNotification" width="150" height="150" />Citrix Director for XenApp and XenDesktop can be a great utility for information about your Application / Desktop virtualisation environment. In Director you can find a wealth of information about the provisioned assets, the Controller, Licensing and Hypervisor status and the current running resources.</p>
<p>One area it&#8217;s always lacked is real time alerting. In order to really know what&#8217;s going on in your environment you need to be logged into director and watching. This is less than ideal and few monitoring vendors have endeavored to actually pull this data into their own solutions.</p>
<p>With the help of Rachel Berry, Prateek Kansal and Sridhar Mullapudi from Citrix. I set about diving into the logic and monitoring options within the FMA architecture. Citrix did a great job here and most if not all of it was readily available in PowerShell and oData. So, with the help of Citrix and a little bit of hard work, I&#8217;m very pleased to announce my latest free tool!</p>
<p><span id="more-3450"></span></p>
<h3>About the tool:</h3>
<p>The Citrix Director Notification service sits on an edge server as a service (or local to the delivery controller) and periodically checks the health of:</p>
<ul>
<li>Citrix Licensing.</li>
<li>Database Connections.</li>
<li>Broker Service.</li>
<li>Core Services.</li>
<li>Hypervisor Connections.</li>
</ul>
<p>And if any of these items fall out of bounds, an SMTP alert is sent to the mailbox of your choice for action. The tool will also send &#8220;All Clear&#8221; emails when these items are resolved, ensuring you are aware when the service has resumed a healthy state, neat huh?</p>
<p>An example of one of these alarm emails can be seen below:</p>
<p><a href="http://andrewmorgan.ie/wp-content/uploads/2015/08/license.png"><img class="aligncenter wp-image-3452 size-medium" src="http://andrewmorgan.ie/wp-content/uploads/2015/08/license-240x300.png" alt="license" width="240" height="300" /></a></p>
<h3>Hypervisor Alerts, too!</h3>
<p>Did you know that the Citrix XenDesktop and XenApp 7.x suite also keep track of Hypervisor alarms? It was news to me! Any-who, if you are lucky enough to be running XenServer or vSphere. The director Notification service can be configured to also catch these alarms, allowing you to also be alerted.</p>
<p>An example of a Hypervisor alarm is below:</p>
<p><a href="http://andrewmorgan.ie/wp-content/uploads/2015/08/hypervisor-alert.png"><img class="aligncenter size-medium wp-image-3453" src="http://andrewmorgan.ie/wp-content/uploads/2015/08/hypervisor-alert-300x184.png" alt="hypervisor alert" width="300" height="184" /></a></p>
<h3>Installation guide:</h3>
<p>Below you&#8217;ll find the steps to get the director notification service installed:</p>
<h5> Download:</h5>
<p><a href="https://app.box.com/s/wfgac80mxdh74i36cqkcn1ktcwx2xw6b">Director Notification Service 1.0.5</a></p>
<h5>Setup:</h5>
<ul>
<li>Download the Tool from the above URL.</li>
<li>Install the service on a server running Windows Server 2008 R2 or above with .Net Framework 4.</li>
</ul>
<h5>Provisioning the Account:</h5>
<p>The service account maintains a WinRM remote session to your delivery controllers and performs checks on a frequency you determine. Setting up this account is the meat of the install.</p>
<ul>
<li>Create an Active Directory Service account for monitoring director (this is needed later).</li>
<li>Copy the XDServiceAccountProvision.ps1 file from the installation directory and run this script on all delivery controllers to automatically create the correct permissions for your service account.</li>
<li>If you&#8217;re curious, read the script. A copy is below if you feel like doing it manually.</li>
</ul>
<h5>Using the configuration tool:</h5>
<p><img class="aligncenter size-full wp-image-3456" src="http://andrewmorgan.ie/wp-content/uploads/2015/08/Config.png" alt="Config" width="249" height="202" /></p>
<p>You&#8217;ll find the configuration utility on the start menu, under Direct Notify Configuration (this tool requires admin permissions).</p>
<p>Once open, configure the tool to suit your environment:</p>
<p><a href="http://andrewmorgan.ie/wp-content/uploads/2015/08/config-tool.png"><img class="aligncenter wp-image-3457 size-full" src="http://andrewmorgan.ie/wp-content/uploads/2015/08/config-tool.png" alt="config tool" width="510" height="467" /></a></p>
<p style="text-align: center;"><em>Ensure to use the test buttons.</em></p>
<p style="text-align: left;">Once happy all is working. Start or restart the &#8220;Director Notification Service&#8221;.</p>
<p style="text-align: left;"><a href="http://andrewmorgan.ie/wp-content/uploads/2015/08/service.png"><img class="aligncenter size-medium wp-image-3459" src="http://andrewmorgan.ie/wp-content/uploads/2015/08/service-300x127.png" alt="service" width="300" height="127" /></a></p>
<h4>Advanced Logging:</h4>
<p>A debugging option exists in the configuration tool, this will log to a trace.log in the installation directory of the machine. If you have issues, first enable this and review the log.</p>
<h3>Provisioning Script contents:</h3>
<pre>write-warning "Before proceeding, Ensure you have: "
write-warning "1: Created a service account for monitoring XenDesktop."
write-warning "2: Ensure you have local administrative access to the local machine."
write-warning "3: Ensure this powershell instance is elevated."
write-warning "4: Ensure you have Administrative access to the XenDesktop site."
read-host "Press Any Key To Continue"

asnp citrix* -ea 0

$domain=Read-Host -Prompt "enter domain name the monitoring user is a member of: e.g. lab"
$username=Read-Host -Prompt "enter monitoring user name: e.g. john.doe"
$group="Remote Management Users"

if(!(Get-AdminRole "Direct Notify Role")){
#create new administrative role
new-adminrole -Name "Direct Notify Role" -Description "used for Direct Notify Service"
Add-AdminPermission -Role "Direct Notify Role" -Permission Configuration_Read
Add-AdminPermission -Role "Direct Notify Role" -Permission Configuration_Write # needed for some unknown reason, thanks citrix ¯\_(ツ)_/¯
Add-AdminPermission -Role "Direct Notify Role" -Permission EnvTest
Add-AdminPermission -Role "Direct Notify Role" -Permission Global_Read
Add-AdminPermission -Role "Direct Notify Role" -Permission Hosts_Read
Add-AdminPermission -Role "Direct Notify Role" -Permission Licensing_Read

#create administrator
New-AdminAdministrator -Name $domain\$username
add-adminright -Administrator $domain\$username -Role "Direct Notify Role" -Scope all
}
#configure remote management if not configured
winrm quickconfig -quiet

#add the monitoring user to the remote management group
([ADSI]"WinNT://$env:computername/$Group,group").psbase.Invoke("Add",([ADSI]"WinNT://$domain/$username").path)</pre>
<h3> Fine Print:</h3>
<p>Just a few things to be aware of:</p>
<h6>Application Dependencies:</h6>
<ul>
<li>The Notification service requires .Net 4.0</li>
<li>PowerShell Remoting must be enabled on the Broker Servers</li>
<li>A service account should be created to monitor the brokers (included in the script).</li>
</ul>
<h6>Tested on:</h6>
<ul>
<li>Citrix XenDesktop 7.6.</li>
<li>(Previous versions should work fine too.)</li>
</ul>
<h3>Support:</h3>
<p>Drop me an email on andrew@andrewmorgan.ie if you have any trouble!</p>
<p>Enjoy and i hope this is very useful to you.</p>
<h3>Future plans:</h3>
<p>I&#8217;ll be diving into the oData values in the Citrix monitoring database in the next itteration. This work has already begun and will be updated soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://andrewmorgan.ie/2015/08/new-free-tool-citrix-director-notification-service/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>ThinIO facts and figures, Part 4: Storage design and dangerous assumptions.   </title>
		<link>http://andrewmorgan.ie/2014/10/thinio-facts-and-figures-part-4-storage-design-and-dangerous-assumptions/</link>
		<comments>http://andrewmorgan.ie/2014/10/thinio-facts-and-figures-part-4-storage-design-and-dangerous-assumptions/#comments</comments>
		<pubDate>Thu, 30 Oct 2014 20:53:13 +0000</pubDate>
		<dc:creator><![CDATA[andyjmorgan]]></dc:creator>
				<category><![CDATA[Remote Desktop Services (RDS)]]></category>
		<category><![CDATA[Server Based Computing]]></category>
		<category><![CDATA[ThinIO]]></category>
		<category><![CDATA[ThinScale]]></category>
		<category><![CDATA[VDI in a Box]]></category>
		<category><![CDATA[Virtual Desktop Infrastructure]]></category>
		<category><![CDATA[VMware View]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[XenApp]]></category>
		<category><![CDATA[XenDesktop]]></category>
		<category><![CDATA[End User Computing]]></category>
		<category><![CDATA[IOPS]]></category>
		<category><![CDATA[SBC]]></category>
		<category><![CDATA[VDI]]></category>
		<category><![CDATA[VMware Horizon]]></category>
		<category><![CDATA[xenapp]]></category>

		<guid isPermaLink="false">http://andrewmorgan.ie/?p=3222</guid>
		<description><![CDATA[Welcome back to this blog series discussing our new product ThinIO. Please find the below three earlier articles in this series: ThinIO facts and figures, Part 1: VDI and Ram caching. ThinIO facts and figures, Part 2: The Bootstorm chestnut. ThinIO facts and figures, Part 3: RDS and Ram caching. In the final blog post in this series, we’re going to discuss storage design and a frequent problem face when sizing storage. Lets get right into it: “Designing for average, [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><img class="alignright" src="http://andrewmorgan.ie/wp-content/uploads/2014/04/logo.png" alt="" width="216" height="41" />Welcome back to this blog series discussing our new product ThinIO. Please find the below three earlier articles in this series:</p>
<ul>
<li><a href="http://andrewmorgan.ie/2014/10/thinio-facts-and-figures-part-1-vdi-and-ram-caching/">ThinIO facts and figures, Part 1: VDI and Ram caching.</a></li>
<li><a href="http://andrewmorgan.ie/2014/10/thinio-facts-and-figures-part-2-the-bootstorm-chestnut/">ThinIO facts and figures, Part 2: The Bootstorm chestnut.</a></li>
<li><a href="http://andrewmorgan.ie/2014/10/thinio-facts-and-figures-part-3-rds-and-ram-caching/">ThinIO facts and figures, Part 3: RDS and Ram caching.</a></li>
</ul>
<p>In the final blog post in this series, we’re going to discuss storage design and a frequent problem face when sizing storage. Lets get right into it:</p>
<p><span id="more-3222"></span></p>
<h3><strong>“Designing for average, is designing for failure”</strong></h3>
<p><a href="http://andrewmorgan.ie/wp-content/uploads/2014/10/image0011.png"><img class="aligncenter size-large wp-image-3223" src="http://andrewmorgan.ie/wp-content/uploads/2014/10/image0011-1024x626.png" alt="image001" width="625" height="382" /></a></p>
<p style="text-align: center;"><em>Peak IOPS:1015, Average IOPS: 78</em></p>
<p>A frequent mistake I see customers and consultants alike make is taking an average of a sizing requirement and using that as a baseline for sizing environments.</p>
<p>Looking at the figures produced from our internal load tests, we saw just an average of 78 IOPS required on write from a vanilla server without ThinIO to provide storage from this XenApp server.</p>
<p>Now frequently, people will take a figure like that, throw in 25% for growth and bob’s your uncle, ‘order the hardware Mr SAN man’. When I have questioned them about that assumption, they’ll often respond “oh it will be a bit slow if theres contention but it’ll even itself out”.</p>
<p><strong>Right? Wrong. </strong></p>
<p><strong>Things don’t go slow when they are over subscribed, they stop.</strong></p>
<p>Don’t take my word for it! Lets do some simple theoretical math:<img class="alignright  wp-image-3227" src="http://andrewmorgan.ie/wp-content/uploads/2014/10/calculator-150x150.png" alt="calculator" width="98" height="98" /></p>
<p>If you take a storage device and allocate 100 IOPS to this machine, what’s going to happen when a peak like 1000 IOPS is requested? <strong>A lot of queuing.</strong><strong> </strong></p>
<p>In theory, keeping to the 100 IOPS figure, that 1 second burst IO is now taking over 10 seconds to satisfy (1000 / 10).</p>
<p>But it gets worse, all subsequent IO that is requested after that spike occurred is going to also be haulted waiting for this task to occur.</p>
<p>Assuming you’re now mid spike and 10 seconds later the request is finished&#8230; taking your average figure, you now have 10 seconds worth of 100 IO’s per second potentially queued up behind…</p>
<p>Low and behold another login occurs and? <strong>STOP.</strong> Storage timeouts, twirly whirlies, application crashes, hour glasses and the good old <strong>“logins are slow”.</strong></p>
<h2><strong>Oh ok, So how do I size to accommodate this?</strong><strong> </strong></h2>
<p>Well you’re between a rock and a hard place aren’t you. You can’t tell users when to login, the price tag of a SAN sized for peak activity + 20% is going to cost you more than your entire desktop estate. And as you can see, it’s never safe to assume it will run slow.<strong> </strong></p>
<h3><strong>Buying into shared storage is a tricky business</strong><strong> <img class="alignright  wp-image-3228" src="http://andrewmorgan.ie/wp-content/uploads/2014/10/119460-117532-150x150.jpg" alt="119460-117532" width="115" height="115" /></strong></h3>
<p>Storage is expensive. Very expensive. It always annoys me when you hear vendors in this space refering to themselves as ‘reassuringly expensive’. To me this directly translates to ‘We can charge what we want, so we will and you can be reassured we feel the price tag is worth it.’</p>
<p>Storage was never written with desktop workloads in mind, it was written for ‘steady state’ server workloads and was in the progress of going the way of the ‘dodo’ (extinct) up until that first release of vMotion requiring shared storage, which some say was the saving of the market.</p>
<p>Many vendors are going with software or hardware intelligent tiering. This is a great feature, but the real question to ask is how frequently data is moved from the hot tier to lower tier? Press your vendor on this as they more than likely wont know! Microsoft storage spaces is a prime example of this with a really poor optimisation process of just once a day!</p>
<p>Then ask yourself what happens when a base image update occurs and changes the disk layout of the base golden image? Further, stateless technologies from the bigger vendors delete the differencing disk on restart, can you be sure the new disk is going to end up in the smaller, faster SSD or RAM tier? Or is data up there already in contention?</p>
<h3><strong>RAM is far less tricky<img class="alignright size-thumbnail wp-image-3224" src="http://andrewmorgan.ie/wp-content/uploads/2014/10/ram_icon-1-150x150.jpg" alt="ram_icon (1)" width="150" height="150" /></strong></h3>
<p>RAM is commodity, available in abundance and throughout every virtual desktop project I’ve architected and deployed, you run out of CPU resources in a ‘fully loaded’ host way before you will run out of RAM. RAM has no running maintenance cost, Ram is an upfront CAPEX cost and requires little to no maintenance.</p>
<p>The beauty of what ThinIO does with the little resources you assign it, is turn that <strong>desktop workload</strong> into a healthier and happier <strong>server workload</strong> of minimal burst IO and a low steady state IO requirement.</p>
<p><a href="http://andrewmorgan.ie/wp-content/uploads/2014/10/image0033.png"><img class="alignright size-large wp-image-3225" src="http://andrewmorgan.ie/wp-content/uploads/2014/10/image0033-1024x626.png" alt="image003" width="625" height="382" /></a></p>
<p style="text-align: center;"><em>Note the peak of just 40.5 IOPS and average IOPS of less than 2.</em></p>
<p>with as little as just 200mb cache for each of the 10 users logging in, within an aggressive 3 minute window, we reduced the peak from 1000 to 40. That’s a <strong>96% reduction</strong> in burst IO.</p>
<h3><strong>With ThinIO, you:</strong></h3>
<ul>
<li>reduce your exposure to massive IO spikes.</li>
<li>Improve user logon times.</li>
<li>significantly reduce your daily IOPS run rate.</li>
<li>Increase user productivity by spending less time waiting for the storage.</li>
<li>Commit to nothing up front, test it and see how well it works. If you are happy, then buy in.</li>
</ul>
<h3><strong>Lots of Intelligence baked in:</strong></h3>
<p>ThinIO is acutely aware of key operating system events that will cause these kind of spikes and react accordingly to reduce the spikes in IOPS created. ThinIO constantly watches the behavior and IO pattern of the storage and tunes itself accordingly.</p>
<p><a href="http://andrewmorgan.ie/wp-content/uploads/2014/10/image0053.png"><img class="aligncenter wp-image-3229 size-full" src="http://andrewmorgan.ie/wp-content/uploads/2014/10/image0053.png" alt="image005" width="1024" height="468" /></a></p>
<p>Unlike other technologies, ThinIO is a true caching and performance solution. We do not move useful data in and out of the cache on demand when cache availability is contencious. We track patterns and frequency of block access to respond accordingly, delivering all the benefits we have mentioned, even with the tiniest cache, without EVER reducing the capability of the storage when overwhelmed.</p>
<p>And on the opposite side of the scale, when underworked, we leverage our cache to deliver deeper read savings as above.</p>
<p>ThinIO also has a powerful API and PowerShell interface to allow you to report and interact with the cache on demand.</p>
<h2><strong>Wrap up:</strong></h2>
<p>And with the end of the series looming, allow me to finish on some easy points:</p>
<p><strong> ThinIO Allows you to:</strong></p>
<ul>
<li>size your SAN outside of the Lamborghini category &amp; price tag for your desktop estate.</li>
<li>rapidly achieve far deeper density on your current hardware when you are feeling the Pinch.</li>
<li>guarantee a level of performance by assigning cache per VM, disallowing other users to steal or hamper caching resources.</li>
<li>Improve user experience and login times immediately.</li>
<li>Reduce the impact of boot storms and similar IO storm scenarios.</li>
</ul>
<p>No other vendor can offer as quick a turn around time with their product. ThinIO installs in seconds and offers a huge range of compatibility.</p>
<p><strong>One more thing:</strong></p>
<p><a href="http://thinscaletechnology.com/download-thinio/"><img class="aligncenter" src="http://thinscaletechnology.com/wp-content/uploads/Download-ThinIO.jpg" alt="" width="300" height="116" /></a></p>
<p>In case you missed ThinIO’s launch day at <a href="http://www.e2evc.com/home/" target="_blank">E2EVC </a>Barcelona, <strong>ThinIO is now in GA</strong>, available from our website and production ready! More marketing to follow! But grab your copy now and get playing!</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://andrewmorgan.ie/2014/10/thinio-facts-and-figures-part-4-storage-design-and-dangerous-assumptions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ThinIO facts and figures, Part 3: RDS and Ram caching.</title>
		<link>http://andrewmorgan.ie/2014/10/thinio-facts-and-figures-part-3-rds-and-ram-caching/</link>
		<comments>http://andrewmorgan.ie/2014/10/thinio-facts-and-figures-part-3-rds-and-ram-caching/#comments</comments>
		<pubDate>Wed, 22 Oct 2014 21:30:41 +0000</pubDate>
		<dc:creator><![CDATA[andyjmorgan]]></dc:creator>
				<category><![CDATA[Remote Desktop Services (RDS)]]></category>
		<category><![CDATA[Server Based Computing]]></category>
		<category><![CDATA[ThinIO]]></category>
		<category><![CDATA[ThinScale]]></category>
		<category><![CDATA[VDI in a Box]]></category>
		<category><![CDATA[Windows Server]]></category>
		<category><![CDATA[XenApp]]></category>
		<category><![CDATA[XenDesktop]]></category>
		<category><![CDATA[Horizon View]]></category>
		<category><![CDATA[IOPS]]></category>
		<category><![CDATA[Remote Desktop services]]></category>
		<category><![CDATA[SBC]]></category>
		<category><![CDATA[VDI]]></category>
		<category><![CDATA[Vmware]]></category>
		<category><![CDATA[xenapp]]></category>

		<guid isPermaLink="false">http://andrewmorgan.ie/?p=3202</guid>
		<description><![CDATA[Welcome back to the third instalment of this blog series focusing on our new technology ThinIO! To recap, below you will find the previous articles: ThinIO facts and figures, Part 1: VDI and Ram caching. ThinIO facts and figures, Part 2: The Bootstorm chestnut. Off topic note: two years ago at an E2EVC event, the concept behind ThinIO was born with just a mad scientist idea amongst peers. If you are lucky enough to be attending E2EVC this weekend, David [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><a href="http://andrewmorgan.ie/wp-content/uploads/2014/04/logo.png"><img class="alignright  wp-image-2865" src="http://andrewmorgan.ie/wp-content/uploads/2014/04/logo.png" alt="logo" width="189" height="36" /></a>Welcome back to the third instalment of this blog series focusing on our new technology ThinIO!</p>
<p>To recap, below you will find the previous articles:</p>
<ul>
<li class="entry-title"><a href="http://andrewmorgan.ie/2014/10/thinio-facts-and-figures-part-1-vdi-and-ram-caching/" target="_blank">ThinIO facts and figures, Part 1: VDI and Ram caching.</a></li>
<li class="entry-title"><a href="http://andrewmorgan.ie/2014/10/thinio-facts-and-figures-part-2-the-bootstorm-chestnut/" rel="bookmark">ThinIO facts and figures, Part 2: The Bootstorm chestnut.</a></li>
</ul>
<h3>Off topic note:</h3>
<p><img class="aligncenter" src="http://www.e2evc.com/home/Portals/0/E2EVC_header.jpg" alt="" width="408" height="51" /></p>
<p>two years ago at an E2EVC event, the concept behind ThinIO was born with just a mad scientist idea amongst peers.</p>
<p>If you are lucky enough to be attending <a href="http://www.e2evc.com/home/Agenda.aspx">E2EVC</a> this weekend, David and I will be there presenting ThinIO and maybe, just maybe there will be an announcement. Our session is on Saturday at 15:30 so pop by, you won&#8217;t be disappointed.</p>
<h3>Back on topic:</h3>
<p>So here&#8217;s a really interesting blog post. Remote Desktop Services (XenApp / XenDesktop hosted shared) or whatever you like to call it. RDS really presents a fun caching platform for us, as it allows us to deal with a much higher IO volume and achieve deeper savings.</p>
<p>We’ve really tested the heck out of this platform for how we perform on Microsoft RDS, Horizon View RDS integration and Citrix XenSplitPersonality with Machine Creation Services.</p>
<p>The figures we are sharing today are based on the following configuration and load test:</p>
<ul>
<li><img class="alignright  wp-image-3174" src="http://andrewmorgan.ie/wp-content/uploads/2014/10/Logo_Login_VSI_Transparent.png" alt="Logo_Login_VSI_Transparent" width="250" height="42" />Citrix XenDesktop 7.6</li>
<li>Windows Server 2012 r2</li>
<li>Citrix User Profile Manager.</li>
<li>16gb of Ram.</li>
<li>4 vCpu.</li>
<li>LoginVSI 4.1 medium workload 1 hour test.</li>
<li>10 users.</li>
<li>VMFS 5 volume.</li>
</ul>
<h3>Fun figures!</h3>
<p>Diving straight in, lets start by looking at the volume of savings across three cache types.</p>
<p><a href="http://andrewmorgan.ie/wp-content/uploads/2014/10/image001.png"><img class="aligncenter size-large wp-image-3203" src="http://andrewmorgan.ie/wp-content/uploads/2014/10/image001-1024x468.png" alt="image001" width="625" height="285" /></a></p>
<p>&nbsp;</p>
<p><span id="more-3202"></span></p>
<h4>Reviewing the details for a moment:</h4>
<p>Running repetitive tests of at least 3 per cache type, we found even at the lowest entry point we would support (50mb per user) we saw phenomenal savings of over 70% on write IO.</p>
<h5>No pressure no diamonds!</h5>
<p>To put that into perspective, at a 512 MB cache for 10 users, our cache reached maximum capacity at the second user login. With 8 users still left to login, cache full and still an hours worth of load testing left, our ThinIO technology was under serious pressure.</p>
<p>This is key to why ThinIO is such a great solution. We won’t just perform great until we fill our cache, we don’t require architecture changes or care about your storage type, we have no lead times or install days, we will carry on to work with what is available to use, to take a large ammount of pressure off storage IOPS and data throughput.</p>
<p>With the figures above, you can see just how well the intelligence behind our cache can scale even when it faces such a steep workload.</p>
<p>Below you will find a breakdown of each test:</p>
<h3>512 MB cache:</h3>
<p>Breaking down into the figures, on the 512mb cache test, it’s clear to see just how well ThinIO deals with the tiniest of caches:</p>
<p><a href="http://andrewmorgan.ie/wp-content/uploads/2014/10/image0032.png"><img class="aligncenter size-large wp-image-3204" src="http://andrewmorgan.ie/wp-content/uploads/2014/10/image0032-1024x590.png" alt="image003" width="625" height="360" /></a></p>
<p>When we side by side this with our baseline averages, you can see we take a huge chunk out of that Spiky login pattern and continue to  reduce the steady state IO as the test continues:</p>
<p><a href="http://andrewmorgan.ie/wp-content/uploads/2014/10/image0052.png"><img class="aligncenter size-large wp-image-3205" src="http://andrewmorgan.ie/wp-content/uploads/2014/10/image0052-1024x580.png" alt="image005" width="625" height="354" /></a></p>
<p>So lets move up and see how we get on!</p>
<h3>1024 mb cache:</h3>
<p>Doubling up our cache size we see a great increase in both read and write savings as you&#8217;d expect.</p>
<p>With 100mb of cache per user, and the average user profile in the test 3 times that size. We are still under pressure. As we will natively favour optimisations to write IO over read, you&#8217;ll see the bulk of improvements happen in write when we&#8217;re under pressure as illustrated in this test:</p>
<p><a href="http://andrewmorgan.ie/wp-content/uploads/2014/10/image0071.png"><img class="aligncenter size-large wp-image-3207" src="http://andrewmorgan.ie/wp-content/uploads/2014/10/image0071-1024x599.png" alt="image007" width="625" height="365" /></a></p>
<p>&nbsp;</p>
<p>With more cache available during the peak IO point, we make further savings on write:</p>
<p><a href="http://andrewmorgan.ie/wp-content/uploads/2014/10/image0091.png"><img class="aligncenter size-large wp-image-3208" src="http://andrewmorgan.ie/wp-content/uploads/2014/10/image0091-1024x586.png" alt="image009" width="625" height="357" /></a></p>
<h3>2048 mb cache:</h3>
<p>and at our recommended value of 200mb per user in Remote Desktop Services, the results are phenomenal! With this size, even still below the 300mb mark per user profile, the read IO gets a really good boost and the write IO saving well over the 95% mark!</p>
<p><a href="http://andrewmorgan.ie/wp-content/uploads/2014/10/image0111.png"><img class="aligncenter size-large wp-image-3209" src="http://andrewmorgan.ie/wp-content/uploads/2014/10/image0111-1024x537.png" alt="image011" width="625" height="327" /></a></p>
<p>And the side by side comparison is every bit as good as the savings illustrated above, reducing that peak bursty IO to just 41 IOPS:<a href="http://andrewmorgan.ie/wp-content/uploads/2014/10/2048.png"><img class="aligncenter size-large wp-image-3211" src="http://andrewmorgan.ie/wp-content/uploads/2014/10/2048-1024x626.png" alt="2048" width="625" height="382" /></a></p>
<h2><span style="line-height: 1.714285714; font-size: 1rem;">But there&#8217;s more! </span></h2>
<p>As i pointed out in the previous blog, IOPS are just one side of the story. A reduction of data throughput to the disk is also a big benefit when it comes to storage optimisation, and as you can see we make a big difference:</p>
<p><a href="http://andrewmorgan.ie/wp-content/uploads/2014/10/mbsec.png"><img class="aligncenter size-full wp-image-3212" src="http://andrewmorgan.ie/wp-content/uploads/2014/10/mbsec.png" alt="mbsec" width="788" height="487" /></a></p>
<p>&nbsp;</p>
<h2>Wrap up:</h2>
<p>So there you have it, with ThinIO, a simple, in VM solution, you can you seriously reduce your IO footprint, boost user performance and achieve greater storage density per virtual machine or on Remote Desktop Services technology.</p>
<h4>In the mean time:</h4>
<p>If you would like a chance to test ThinIO pre-release, find access to the public beta below. Thank you for your time and happy testing!</p>
<p><a href="http://thinscaletechnology.com/download-thinio/" target="_blank"><img class="aligncenter wp-image-3171 size-medium" src="http://andrewmorgan.ie/wp-content/uploads/2014/10/Download-ThinIO-Beta-300x101.jpg" alt="Download-ThinIO-Beta" width="300" height="101" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://andrewmorgan.ie/2014/10/thinio-facts-and-figures-part-3-rds-and-ram-caching/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ThinIO facts and figures, Part 2: The Bootstorm chestnut.</title>
		<link>http://andrewmorgan.ie/2014/10/thinio-facts-and-figures-part-2-the-bootstorm-chestnut/</link>
		<comments>http://andrewmorgan.ie/2014/10/thinio-facts-and-figures-part-2-the-bootstorm-chestnut/#comments</comments>
		<pubDate>Sat, 18 Oct 2014 14:30:00 +0000</pubDate>
		<dc:creator><![CDATA[andyjmorgan]]></dc:creator>
				<category><![CDATA[Citrix]]></category>
		<category><![CDATA[ThinIO]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[VMware View]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[XenApp]]></category>
		<category><![CDATA[XenDesktop]]></category>
		<category><![CDATA[IOPS]]></category>
		<category><![CDATA[RDS]]></category>
		<category><![CDATA[Remote Desktop services]]></category>
		<category><![CDATA[VDI]]></category>
		<category><![CDATA[VMware Horizon View]]></category>
		<category><![CDATA[xenapp]]></category>

		<guid isPermaLink="false">http://andrewmorgan.ie/?p=3186</guid>
		<description><![CDATA[Welcome back! This blog post is part of a number of posts in advance of our upcoming release, for reference you can find part one below: ThinIO facts and figures, Part 1: VDI and Ram caching. Getting right to it: In this industry when somebody says ‘boot storms!&#8217; &#8211; most of us will respond with: Boot storms are a well documented, boring problem and have many solutions available from vendors and hypervisors alike. Most solutions today rely on a &#8216;shared memory&#8217; [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><img class="alignright wp-image-2865 " src="http://andrewmorgan.ie/wp-content/uploads/2014/04/logo.png" alt="logo" width="174" height="33" />Welcome back! This blog post is part of a number of posts in advance of our upcoming release, for reference you can find part one below:</p>
<ul>
<li class="entry-title"><a href="http://andrewmorgan.ie/2014/10/thinio-facts-and-figures-part-1-vdi-and-ram-caching/" target="_blank">ThinIO facts and figures, Part 1: VDI and Ram caching.</a></li>
</ul>
<h2>Getting right to it:</h2>
<p>In this industry when somebody says ‘boot storms!&#8217; &#8211; most of us will respond with:</p>
<p><a href="http://andrewmorgan.ie/wp-content/uploads/2014/10/image0022.png"><img class="aligncenter  wp-image-3195" src="http://andrewmorgan.ie/wp-content/uploads/2014/10/image0022.png" alt="image002" width="163" height="119" /></a></p>
<p>Boot storms are a well documented, boring problem and have many solutions available from vendors and hypervisors alike. Most solutions today rely on a &#8216;shared memory&#8217; storage area to cache &#8216;on boot&#8217;, in theory caching only one startup or one pattern in order to then serve it back to the proceeding desktops to boot.</p>
<p>But why are boot storms an issue? While working on ThinIO we had the unique ability to really dive into the Windows boot process and analyse why boot storms cause the damage they do and in this post we thought we’d share our findings to better document the issue.</p>
<p><span id="more-3186"></span></p>
<h2>Boot data:</h2>
<p>Taking a typical windows 7 boot, to the login screen and idling until all services have started, the data traversing from disk to VM is relatively small. in our testing we found an average of Just 500-600 mb of data is read during this process, and write data barely registers at between 20 and 30mb.</p>
<p><a href="http://andrewmorgan.ie/wp-content/uploads/2014/10/image0031.png"><img class="aligncenter size-full wp-image-3189" src="http://andrewmorgan.ie/wp-content/uploads/2014/10/image0031.png" alt="image003" width="867" height="515" /></a></p>
<p>But hey, what gives? Taking such low data throughput, why is boot such a contenscious issue? Have I been misled with marketing and vendor nonsense?</p>
<h2><strong>The IO chestnut:</strong></h2>
<p>Sadly no, it’s the way windows requests this data, but don’t take my word for it…. Behold, the incredible mess that is the Windows boot process!</p>
<p><a href="http://andrewmorgan.ie/wp-content/uploads/2014/10/image0051.png"><img class="aligncenter size-full wp-image-3190" src="http://andrewmorgan.ie/wp-content/uploads/2014/10/image0051.png" alt="image005" width="867" height="532" /></a></p>
<p>Yep, that’s right, in the time Windows requested roughly 600mb of data, it sent down an astounding 70 thousand IO’s in the space of 2-3 minutes!</p>
<h2><strong>Math time:</strong></h2>
<p>Now if you were to take these figures as they stand, you would take 70,000 IO’s divide this into 560mb and you’d probably end up with an average of about 8k of data requested per IO… You’d be wrong.</p>
<p><em>As my good buddy Conor Scolard would say, ‘when you Assume, you make an ass out of you and me’.</em></p>
<p>To better understand the bounderies of Windows, Windows requests IO’s between the minimum of 512 bytes all the way up the spectrum later in the boot process to 128k and above. But it requests these blocks sparcely, on demand, and not just once per sector, the same blocks are frequently accessed.</p>
<p>The net result of this causes absolute havok on the storage:</p>
<p><a href="http://andrewmorgan.ie/wp-content/uploads/2014/10/image007.png"><img class="aligncenter size-full wp-image-3191" src="http://andrewmorgan.ie/wp-content/uploads/2014/10/image007.png" alt="image007" width="867" height="473" /></a></p>
<p>The crux of the issue is, for each one of these IO’s, the storage provider needs to compute the block data requested, seek the data out, then return it.</p>
<p>But 70,000 of these IO operations for a meagre 600mb of data is madness and you can now see exactly why boot storms were labelled as such for those early adopters who had their hands burned by this fact finding mission.</p>
<p><em>I’ll mitigate this issue by just booting my VM’s at night!</em></p>
<p>I’m sure you will! I would also love to see your face if a number of users happen to restart their desktops during the day, cascading 70,000 IO’s per desktop to the storage in a 2 minute window, per desktop!</p>
<h2><strong>Bootstorming IS an issue.</strong></h2>
<p>Now, knowing all this, it makes sense as to why storage and hypervisors alike are using a cache of ram.</p>
<h2><strong>But how does ThinIO fit in here? With Read Ahead of course!</strong></h2>
<p>Knowing the Windows boot process as intimate as only a technology like ThinIO can, there are many, many optimisations we can make to this process.</p>
<p>We can both speed the boot process up and also massively reduce the storage requirement while in VM, without any fancy caching mechanism!</p>
<p>With ThinIO’s read ahead technology, we can deliver just shy of an 80% boot IO reduction with nothing other than having our technology in the virtual machine:</p>
<p><a href="http://andrewmorgan.ie/wp-content/uploads/2014/10/image009.png"><img class="aligncenter size-full wp-image-3192" src="http://andrewmorgan.ie/wp-content/uploads/2014/10/image009.png" alt="image009" width="867" height="513" /></a></p>
<p>Taking a ThinIO averaged test and overlaying it to a baseline averaged test, it’s clear just how much impact this technology can have:</p>
<p><a href="http://andrewmorgan.ie/wp-content/uploads/2014/10/image011.png"><img class="aligncenter size-full wp-image-3193" src="http://andrewmorgan.ie/wp-content/uploads/2014/10/image011.png" alt="image011" width="867" height="473" /></a></p>
<p>&nbsp;</p>
<h2><strong>Wrap up:</strong></h2>
<p>So there you have it, with ThinIO, a simple, in VM solution, not only can you seriously reduce your IO footprint, boost user performance and achieve greater storage density per virtual machine, you also can also massively negate the impact a booting VM has on your storage.</p>
<p>If you would like a chance to test ThinIO pre-release, find access to the public beta below. Thank you for your time and happy testing!</p>
<p><a href="http://thinscaletechnology.com/download-thinio/" target="_blank"><img class="aligncenter wp-image-3171 size-medium" src="http://andrewmorgan.ie/wp-content/uploads/2014/10/Download-ThinIO-Beta-300x101.jpg" alt="Download-ThinIO-Beta" width="300" height="101" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://andrewmorgan.ie/2014/10/thinio-facts-and-figures-part-2-the-bootstorm-chestnut/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Citrix Storefront 2.5 and Single Sign on:</title>
		<link>http://andrewmorgan.ie/2014/03/citrix-storefront-2-5-and-single-sign-on/</link>
		<comments>http://andrewmorgan.ie/2014/03/citrix-storefront-2-5-and-single-sign-on/#comments</comments>
		<pubDate>Wed, 26 Mar 2014 07:59:53 +0000</pubDate>
		<dc:creator><![CDATA[andyjmorgan]]></dc:creator>
				<category><![CDATA[Citrix]]></category>
		<category><![CDATA[CloudGateway]]></category>
		<category><![CDATA[StoreFront]]></category>
		<category><![CDATA[XenApp]]></category>
		<category><![CDATA[XenDesktop]]></category>
		<category><![CDATA[Single Sign On]]></category>
		<category><![CDATA[Storefront]]></category>

		<guid isPermaLink="false">http://andrewmorgan.ie/?p=2838</guid>
		<description><![CDATA[With the release of XenDesktop / XenApp 7.5, Citrix Storefront has brought back a very sought after feature, Single sign on for local credentials to the storefront site! Citrix Storefront SSO can be the default configuration or a choice can be given to the user if you select more than one authentication type as below: &#160; &#160; &#160; Desktop appliance site: (Slight deviation, bear with me). &#160; An interesting addition to storefront in 2.5 is a desktop appliance site is [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><img class="alignright  wp-image-2839" src="/wp-content/uploads/2014/03/image-01-535x535.png?w=150" alt="image-01-535x535" width="55" height="55" />With the release of XenDesktop / XenApp 7.5, Citrix Storefront has brought back a very sought after feature, Single sign on for local credentials to the storefront site!</p>
<p>Citrix Storefront SSO can be the default configuration or a choice can be given to the user if you select more than one authentication type as below:</p>
<p>&nbsp;</p>
<p><a href="/wp-content/uploads/2014/03/storefront-auth-choice.png"><img class="aligncenter size-large wp-image-2850" src="/wp-content/uploads/2014/03/storefront-auth-choice.png?w=595" alt="storefront auth choice" width="595" height="169" /></a></p>
<p>&nbsp;</p>
<p><span id="more-2838"></span></p>
<p>&nbsp;</p>
<h4>Desktop appliance site: (Slight deviation, bear with me).</h4>
<p>&nbsp;</p>
<p>An interesting addition to storefront in 2.5 is a <a href="http://support.citrix.com/proddocs/topic/dws-storefront-21/dws-configure-dac-conf-file.html" target="_blank">desktop appliance site</a> is installed by default. Richard covers what a desktop appliance site really well in this article for the current release of storefont <a href="http://richardegenas.com/2014/02/03/how-to-create-desktop-appliance-site-on-storefront-citrix-storefront-thinclient/" target="_blank">here</a>. It&#8217;s worth noting the desktop appliance site is running the older storefront code base and does not currently support single sign on, strangely.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>Back on topic!</strong></p>
<p>&nbsp;</p>
<p>Below is a quick guide on how to get it working and any interesting features along the way, I&#8217;ve broken this piece down into three parts:</p>
<p>&nbsp;</p>
<h4>XenDesktop Delivery controller configuration:</h4>
<p>&nbsp;</p>
<p>on each delivery controller accessible by the storefront site, run the following two commands:</p>
<p><img class="size-full wp-image-2840 aligncenter" src="/wp-content/uploads/2014/03/broker-xml-trust-level.png" alt="broker xml trust level" width="595" height="154" /></p>
<p>&nbsp;</p>
<h4>Client Configuration:</h4>
<p>&nbsp;</p>
<p style="text-align: center;">(Shawn Bass did alot of the hardwork here for me, so a thank you for that!)</p>
<p>when installing the client, you can enable the single sign on features with the following command line:</p>
<p>[code language=&#8221;bash&#8221;]<br />
CitrixReceiver.exe /includeSSON /ENABLE_SSON=Yes /silent STORE0=&#8221;Store;https://yourservername.yourdomain.com/Citrix/Store/discovery;on;Store&#8221;<br />
[/code]</p>
<p>&nbsp;</p>
<p>Once this is complete, add the storefront url to the trusted sites for the user, then add the following setting to the trusted sites zone:</p>
<p>&nbsp;</p>
<p><a href="/wp-content/uploads/2014/03/local-zone-settings.png"><img class="aligncenter size-full wp-image-2841" src="/wp-content/uploads/2014/03/local-zone-settings.png" alt="local zone settings" width="595" height="376" /></a></p>
<p>&nbsp;</p>
<p>Once complete, open group policy on the local machine (or active directory group policy) and import the icaclient.adm file, the typical path is below for convenience:</p>
<p>x86:</p>
<p>C:Program FilesCitrixICA ClientConfigurationicaclient.adm</p>
<p>x64:</p>
<p>C:Program Files (x86)CitrixICA ClientConfigurationicaclient.adm</p>
<p>&nbsp;</p>
<p>Once you have imported this adm file, configure the following values in the <span style="text-decoration: underline;"><strong>LOCAL MACHINE</strong> </span>configuration*</p>
<p><em>*the policies dont work in user mode, oddly.</em></p>
<p>Configure the authentication policy:</p>
<p>&nbsp;</p>
<p><a href="/wp-content/uploads/2014/03/group-policy.png"><img class="aligncenter size-full wp-image-2842" src="/wp-content/uploads/2014/03/group-policy.png" alt="group policy" width="595" height="409" /></a></p>
<p>Configure the web interface authentication ticket settings also:</p>
<p><a href="/wp-content/uploads/2014/03/group-policy.png"><br />
</a> <a href="/wp-content/uploads/2014/03/group-policy2.png"><img class="aligncenter size-full wp-image-2843" src="/wp-content/uploads/2014/03/group-policy2.png" alt="group policy2" width="595" height="287" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Now reboot the machine and log in, ensuring SSONSVR.exe is running in task manager.</p>
<p>&nbsp;</p>
<h4>Storefront Configuration:</h4>
<p>&nbsp;</p>
<p>I&#8217;m going to go ahead and assume you&#8217;ve already installed storefront, so lets start from there.</p>
<p>&nbsp;</p>
<p>Make your way down to the &#8216;Authentication&#8217; tab choose add/remove methods and select domain pass-through as an authentication type:</p>
<p>&nbsp;</p>
<p><img class="aligncenter wp-image-2849 " src="/wp-content/uploads/2014/03/add-domain-pass-through-option-in-storefront-config.png" alt="add domain pass-through option in storefront config" width="1335" height="553" /></p>
<p>&nbsp;</p>
<p>Note the warning, the receiver for web will also need some configuration, so that&#8217;s our next step:</p>
<p>&nbsp;</p>
<p><a href="/wp-content/uploads/2014/03/highlight-change-needed-on-storeweb.png"><img class="aligncenter size-full wp-image-2848" src="/wp-content/uploads/2014/03/highlight-change-needed-on-storeweb.png" alt="highlight change needed on storeweb" width="466" height="338" /></a></p>
<p>&nbsp;</p>
<p>Make your way down to your &#8216;receiver for web&#8217; tab and select &#8216;Choose Authentication Methods':</p>
<p>&nbsp;</p>
<p><a href="/wp-content/uploads/2014/03/add-auth-method-to-storeweb.png"><img class="aligncenter size-large wp-image-2846" src="/wp-content/uploads/2014/03/add-auth-method-to-storeweb.png?w=595" alt="add auth method to storeweb" width="595" height="427" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>As you can see above, domain pass-through is now an option, with a nice little warning:</p>
<p>&nbsp;</p>
<p><a href="/wp-content/uploads/2014/03/storeweb-passthrough-warning.png"><img class="aligncenter size-full wp-image-2847" src="/wp-content/uploads/2014/03/storeweb-passthrough-warning.png" alt="storeweb passthrough warning" width="539" height="337" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Note: if you don&#8217;t want SSO to be optional, don&#8217;t publish additional authentication types on this storeweb.</p>
<p>&nbsp;</p>
<h4>Testing:</h4>
<p>The quickest way to test is to go right ahead now and use the storefront in anger, but if you&#8217;re the cautious type Storefront 2.5 includes a subdirectory called DomainPassthroughAuth/test.aspx. if you browse to this site from a configured machine, you should see the following screen.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a href="/wp-content/uploads/2014/03/passthrough-auth-test-site.png"><img class="aligncenter size-large wp-image-2851" src="/wp-content/uploads/2014/03/passthrough-auth-test-site.png?w=595" alt="passthrough auth test site" width="595" height="266" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>if you are prompted as below, or see any of the following errors, go back a few steps and check what you missed:</p>
<p>&nbsp;</p>
<p><a href="/wp-content/uploads/2014/03/sso-test-fail-via-website.png"><img class="aligncenter size-full wp-image-2855" src="/wp-content/uploads/2014/03/sso-test-fail-via-website.png" alt="sso test fail via website" width="444" height="391" /></a></p>
<p>&nbsp;</p>
<p>and the following error&#8217;s mean you&#8217;ve gotten the configuration wrong on the client side:</p>
<p>&nbsp;</p>
<p><a href="/wp-content/uploads/2014/03/no-trusted-submit.png"><img class="aligncenter size-full wp-image-2852" src="/wp-content/uploads/2014/03/no-trusted-submit.png" alt="no trusted submit" width="501" height="536" /></a></p>
<p><a href="/wp-content/uploads/2014/03/no-logon-methods-error-pass-creds-not-set.png"><img class="aligncenter size-full wp-image-2854" src="/wp-content/uploads/2014/03/no-logon-methods-error-pass-creds-not-set.png" alt="no logon methods error - pass creds not set" width="520" height="160" /></a></p>
<p>&nbsp;</p>
<p>and that&#8217;s it, happy sso&#8217;ing!</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://andrewmorgan.ie/2014/03/citrix-storefront-2-5-and-single-sign-on/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>HDXWatcher and PCOIPWatcher &#8211; Realtime, easy virtual desktop traffic reporting.</title>
		<link>http://andrewmorgan.ie/2014/02/hdxwatcher-and-pcoipwatcher-realtime-easy-virtual-desktop-traffic-reporting/</link>
		<comments>http://andrewmorgan.ie/2014/02/hdxwatcher-and-pcoipwatcher-realtime-easy-virtual-desktop-traffic-reporting/#comments</comments>
		<pubDate>Mon, 24 Feb 2014 14:30:48 +0000</pubDate>
		<dc:creator><![CDATA[andyjmorgan]]></dc:creator>
				<category><![CDATA[VDI in a Box]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[VMware View]]></category>
		<category><![CDATA[XenApp]]></category>
		<category><![CDATA[XenDesktop]]></category>
		<category><![CDATA[Citrix]]></category>
		<category><![CDATA[View]]></category>
		<category><![CDATA[Vmware]]></category>
		<category><![CDATA[xenapp]]></category>

		<guid isPermaLink="false">http://andrewmorgan.ie/?p=2829</guid>
		<description><![CDATA[When checking the bandwidth requirement of multimedia sites, checking how much additional bandwidth video conferencing is going to require or even troubleshooting WAN capacity issues, it&#8217;s extremely useful to have a visible interpretation of realtime bandwidth consumption from your virtual desktop. I wrote a tool quite some time ago called watcher2 while troubleshooting a similar issue. I finally took the time to refactor that tool for use with XenApp 6.5 , XenDesktop and VMware View and they are finally available [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><a href="/wp-content/uploads/2013/09/logo.png"><img class="alignright size-full wp-image-2784" src="/wp-content/uploads/2013/09/logo.png" alt="logo" width="88" height="89" /></a>When checking the bandwidth requirement of multimedia sites, checking how much additional bandwidth video conferencing is going to require or even troubleshooting WAN capacity issues, it&#8217;s extremely useful to have a visible interpretation of realtime bandwidth consumption from your virtual desktop.</p>
<p>I wrote a tool quite some time ago called watcher2 while troubleshooting a similar issue. I finally took the time to refactor that tool for use with XenApp 6.5 , XenDesktop and VMware View and they are finally available to download! Both watcher utilities also include a latency counter which was a request that came in over and over.</p>
<p>HDX and PCOIP watcher by default dock to the top of the screen and can be moved left or right as below:</p>
<p><img class="aligncenter size-full wp-image-2830" src="/wp-content/uploads/2014/02/hdx-watcher-docked.png" alt="hdx watcher docked" width="310" height="52" /></p>
<p><img class="aligncenter size-full wp-image-2832" src="/wp-content/uploads/2014/02/pcoip-watcher-docked.png" alt="pcoip watcher docked" width="281" height="33" /></p>
<p>They can now also be completely un docked:</p>
<p><img class="aligncenter size-full wp-image-2831" src="/wp-content/uploads/2014/02/hdx-watcher.png" alt="hdx watcher" width="294" height="72" /></p>
<p><img class="aligncenter size-full wp-image-2833" src="/wp-content/uploads/2014/02/pcoip-watcher-undocked.png" alt="pcoip watcher undocked" width="289" height="65" /><span id="more-2829"></span></p>
<p><strong>How do they work?</strong></p>
<p>The tool finds your username in the performance monitor counters for session bandwidth, once it finds this entry it reads your performance monitor data once every second and reports on it.</p>
<p>In the case of PCOIP watcher, it reads the PCOIP counters from performance monitor.</p>
<p><strong>what do the values mean?</strong></p>
<p><em>All values are in either Kilobits per second or Megabits per second.</em></p>
<p><strong>In</strong> = Traffic from the client to the virtual, this may spike during large copy / paste jobs,web cams or copying data from a usb key to the session:<br />
<strong>Out</strong> = Traffic from the virtual desktop to the client, mainly audio or video traffic causes this to spike.<br />
<b>Latency = </b>The delay between your client and the virtual desktop.</p>
<p><strong>Can I Configure it?</strong></p>
<p>Two thresholds are available, a yellow warning and a red warning, currently . These default values can be written to:</p>
<p>&#8220;HKEY_local_machine\software\ThinScaleTech\HDXmonitor&#8221;<br />
&#8220;HKEY_current_user\software\ThinScaleTech\HDXmonitor&#8221;</p>
<p>Dword: YellowWarning = 300 (decimal)</p>
<p>Dword: RedWarning = 600 (decimal)</p>
<p><strong>Do they have any dependencies?</strong></p>
<p>.net framework 3.5</p>
<p>if you are running XenApp 6.5 or XenDesktop 5.6, ensure you have the latest hot-fixes installed or the counters may be incorrect.</p>
<p><strong>How do I launch it?</strong></p>
<p>Allow the user to run it manually, or place the executable in their start-up folder or login script.</p>
<p><strong>Where Can I download it?</strong></p>
<p><a href="https://app.box.com/s/gfftbwrcy216jos80jxz" target="_blank">Here:</a></p>
<p><strong>What&#8217;s coming next:</strong></p>
<ul>
<li>Native Microsoft RDP Counters.</li>
<li>Realtime graphs and recording.</li>
<li>source code is available on request.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://andrewmorgan.ie/2014/02/hdxwatcher-and-pcoipwatcher-realtime-easy-virtual-desktop-traffic-reporting/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
		<item>
		<title>XenDesktop Iconizer, a new tool for XenDesktop icons.</title>
		<link>http://andrewmorgan.ie/2013/09/xendesktop-iconizer-a-new-tool-for-xendesktop-icons/</link>
		<comments>http://andrewmorgan.ie/2013/09/xendesktop-iconizer-a-new-tool-for-xendesktop-icons/#comments</comments>
		<pubDate>Thu, 26 Sep 2013 21:40:28 +0000</pubDate>
		<dc:creator><![CDATA[andyjmorgan]]></dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[XenDesktop]]></category>
		<category><![CDATA[Icons]]></category>
		<category><![CDATA[Storefront]]></category>

		<guid isPermaLink="false">http://andrewmorgan.ie/?p=2800</guid>
		<description><![CDATA[Recently I read a post from XD Tipster on how to convert Png files into icons and use them for XenDesktop and Storefront&#8230; A very interesting piece, but a bit convoluted and long winded for my liking. I didn&#8217;t like the idea of the two website hops to get this information into XenDesktop format&#8230; So I decided to write two utilities: Iconizer: &#160; &#160; Iconizer Converts png files (with transparency supported) to an Ico file format , then in turn converts [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Recently I read a<a href="http://blogs.citrix.com/2013/08/21/xd-tipster-changing-delivery-group-icons-revisited-xd7/" target="_blank"> post</a> from XD <a href="http://blogs.citrix.com/2013/09/23/xd-tipster-follow-me-on-twitter/" target="_blank">Tipster</a> on how to convert Png files into icons and use them for XenDesktop and Storefront&#8230; A very interesting piece, but a bit convoluted and long winded for my liking. I didn&#8217;t like the idea of the two website hops to get this information into XenDesktop format&#8230; So I decided to write two utilities:</p>
<p><img class="aligncenter size-full wp-image-2806" src="/wp-content/uploads/2013/09/icons.png" alt="icons" width="595" height="269" /></p>
<p><span id="more-2800"></span></p>
<p><strong>Iconizer:</strong></p>
<p>&nbsp;</p>
<p><a href="/wp-content/uploads/2013/09/iconizer.png"><img class="aligncenter size-full wp-image-2801" src="/wp-content/uploads/2013/09/iconizer.png" alt="iconizer" width="346" height="144" /></a></p>
<p>&nbsp;</p>
<p>Iconizer Converts png files (with transparency supported) to an Ico file format , then in turn converts it To a Base 64 String.</p>
<p>You can send the data to the clipboard or import directly into XenDesktop if you have the powershell tools available.</p>
<p>&nbsp;</p>
<p><a href="/wp-content/uploads/2013/09/added.png"><img class="aligncenter size-full wp-image-2804" src="/wp-content/uploads/2013/09/added.png" alt="added" width="388" height="172" /></a></p>
<p>&nbsp;</p>
<p>It&#8217;s very simple, I wont bore you with the details, just convert and import. then map with powershell:</p>
<p>&nbsp;</p>
<p><a href="/wp-content/uploads/2013/09/seticon.png"><img class="aligncenter size-full wp-image-2803" src="/wp-content/uploads/2013/09/seticon.png" alt="seticon" width="595" height="115" /></a></p>
<p>&nbsp;</p>
<p><strong>Reverse Iconizer:</strong></p>
<p>&nbsp;</p>
<p><a href="/wp-content/uploads/2013/09/reverseiconizer.png"><img class="aligncenter size-full wp-image-2805" src="/wp-content/uploads/2013/09/reverseiconizer.png" alt="reverseiconizer" width="195" height="180" /></a></p>
<p>&nbsp;</p>
<p>I&#8217;m sure you can guess, takes the massive string of information stored in base64 and gives you a visual representation.</p>
<p>An example command line of how to do this is below:</p>
<p>&nbsp;</p>
<p><a href="/wp-content/uploads/2013/09/poshtoclipreverse.png"><img class="aligncenter size-full wp-image-2810" src="/wp-content/uploads/2013/09/poshtoclipreverse.png" alt="poshtoclipreverse" width="595" height="196" /></a></p>
<p>&nbsp;</p>
<p><strong>Hey wait?</strong></p>
<p>&nbsp;</p>
<p><em>Why didn&#8217;t you integrate both of these?</em></p>
<p>Well it seems .net and Powershell have a limit on the data (string length) it can pull out of the pipeline. The default Citrix icon is close to 20,000 characters and results in you being unable to pull this data from powershell directly to .net. WIth great help from <a href="http://www.jonathanmedd.net/">http://www.jonathanmedd.net/</a>  we found that, yep the console does seem to have a roughly 8k char limit&#8230; Sure I could parse it to a file or the clipboard, but that was messy and frankly, <strong>I really couldn&#8217;t be arsed. </strong></p>
<p>If you are up to the challenge I&#8217;ve got the source code for forward and reverse of the icon data below. I&#8217;ve also got a half assed attempt at creating a list&#8230; So fill your boots and take up the challenge if you wish.</p>
<p>&nbsp;</p>
<p><strong>Download:</strong></p>
<p>&nbsp;</p>
<p>As with most of my utilities the download links and source code are below, and a few icons to get you going:</p>
<p><a href="/wp-content/uploads/2013/09/system-windows-icon.png"><img class="alignleft size-full wp-image-2807" src="/wp-content/uploads/2013/09/system-windows-icon.png" alt="System-Windows-icon" width="48" height="48" /></a> <a href="/wp-content/uploads/2013/09/windows8.png"><img class="size-full wp-image-2808 alignleft" src="/wp-content/uploads/2013/09/windows8.png" alt="Windows8" width="48" height="48" /></a></p>
<p><a href="https://app.box.com/s/mu7bq8gcjdq75hrdt18112c6r41uchq6" target="_blank">Download utilities.</a></p>
<p><a href="https://app.box.com/s/mu7bq8gcjdq75hrdt18112c6r41uchq6" target="_blank">Download Source Code.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://andrewmorgan.ie/2013/09/xendesktop-iconizer-a-new-tool-for-xendesktop-icons/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
