<?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; Remote Desktop services</title>
	<atom:link href="http://andrewmorgan.ie/tag/remote-desktop-services/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>Creating an automated VMware Horizon RDS Pool with Horizon 6.2</title>
		<link>http://andrewmorgan.ie/2015/09/creating-an-automated-vmware-horizon-rds-pool-with-horizon-6-2/</link>
		<comments>http://andrewmorgan.ie/2015/09/creating-an-automated-vmware-horizon-rds-pool-with-horizon-6-2/#comments</comments>
		<pubDate>Fri, 04 Sep 2015 21:16:11 +0000</pubDate>
		<dc:creator><![CDATA[andyjmorgan]]></dc:creator>
				<category><![CDATA[Remote Desktop Services (RDS)]]></category>
		<category><![CDATA[Server Based Computing]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[VMware Horizon]]></category>
		<category><![CDATA[6.2]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[Horizon]]></category>
		<category><![CDATA[Remote Desktop services]]></category>
		<category><![CDATA[Vmware]]></category>

		<guid isPermaLink="false">http://andrewmorgan.ie/?p=3472</guid>
		<description><![CDATA[&#160; So VMware Horizon 6.2 was announced at VMworld just a week ago and the one feature I sorely wanted to see was automated provisioning (golden image management) of a Microsoft Remote Desktop Services farm. The provisioning process is fairly straight forward, so in this blog post I&#8217;ll walk you through the steps to avoid any issues. Prerequisites: Download the Agent, Connection Server and Composer software. Upgrade your Connection Servers to 6.2. Upgrade your Security Servers to 6.2 (remember you&#8217;ll need [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>&nbsp;</p>
<p><img class="alignright size-thumbnail wp-image-3489" src="http://andrewmorgan.ie/wp-content/uploads/2015/09/horizon-150x150.png" alt="horizon" width="150" height="150" />So VMware Horizon 6.2 was announced at VMworld just a week ago and the one feature I sorely wanted to see was automated provisioning (golden image management) of a Microsoft Remote Desktop Services farm.</p>
<p>The provisioning process is fairly straight forward, so in this blog post I&#8217;ll walk you through the steps to avoid any issues.</p>
<h3>Prerequisites:</h3>
<ul>
<li>Download the Agent, Connection Server and Composer software.</li>
<li>Upgrade your Connection Servers to 6.2.</li>
<li>Upgrade your Security Servers to 6.2 (remember you&#8217;ll need to repair with the connection servers).</li>
<li>Upgrade your Composer.</li>
<li>A Microsoft RDS server.</li>
</ul>
<p><span id="more-3472"></span></p>
<p>Once the upgrade is complete of the core infrastructure, lets hop to the Customisation Specification.</p>
<h3>Creating a Customisation Specification:</h3>
<p>So I originally missed this step completely and was left red faced after hours of troubleshooting and pestering some names in VMware (Sorry Ben, Pat, I&#8217;ll RTFM next time!).</p>
<p>I&#8217;m going to do this demo in the &#8220;God Awful&#8221; web client, but its the same in the GUI Console anyway.</p>
<p>Open the web console, and select<strong> Policies</strong>:</p>
<p><a href="http://andrewmorgan.ie/wp-content/uploads/2015/09/policies.png"><img class="aligncenter size-medium wp-image-3481" src="http://andrewmorgan.ie/wp-content/uploads/2015/09/policies-300x294.png" alt="policies" width="300" height="294" /></a></p>
<p>Select Customisation Specification &gt; <strong>new</strong>:</p>
<p><a href="http://andrewmorgan.ie/wp-content/uploads/2015/09/new-customisation-specification.png"><img class="aligncenter wp-image-3480 " src="http://andrewmorgan.ie/wp-content/uploads/2015/09/new-customisation-specification.png" alt="new customisation specification" width="443" height="229" /></a></p>
<p>Select Windows, Create a Logical name and description, then click <strong>next</strong>:</p>
<p><a href="http://andrewmorgan.ie/wp-content/uploads/2015/09/properties.png"><img class="aligncenter wp-image-3479 " src="http://andrewmorgan.ie/wp-content/uploads/2015/09/properties.png" alt="properties" width="500" height="293" /></a> Enter some organisational specific info, or not, who cares, click <strong>next</strong>:</p>
<p><a href="http://andrewmorgan.ie/wp-content/uploads/2015/09/registration.png"><img class="aligncenter wp-image-3478 " src="http://andrewmorgan.ie/wp-content/uploads/2015/09/registration.png" alt="registration" width="476" height="278" /></a></p>
<p>On the Computer name Tab, for the sake of convenience, choose &#8220;use the virtual machine name&#8221;, click <strong>next</strong>:</p>
<p><a href="http://andrewmorgan.ie/wp-content/uploads/2015/09/computername.png"><img class="aligncenter wp-image-3477 size-full" src="http://andrewmorgan.ie/wp-content/uploads/2015/09/computername.png" alt="computername" width="961" height="563" /></a></p>
<p>Enter a product key if you wish, or rely on KMS, click <strong>next</strong>:</p>
<p><a href="http://andrewmorgan.ie/wp-content/uploads/2015/09/licenses.png"><img class="aligncenter wp-image-3476 size-full" src="http://andrewmorgan.ie/wp-content/uploads/2015/09/licenses.png" alt="licenses" width="963" height="563" /></a></p>
<p>Enter the local administrators password for after the sysprep, then click <strong>Next</strong>:</p>
<p><a href="http://andrewmorgan.ie/wp-content/uploads/2015/09/administratorpassword.png"><img class="aligncenter wp-image-3475 size-full" src="http://andrewmorgan.ie/wp-content/uploads/2015/09/administratorpassword.png" alt="administratorpassword" width="967" height="566" /></a></p>
<ul>
<li>Select the relevant timezone, click <strong>next</strong>:</li>
<li>Do not configure a &#8220;run once&#8221;, click <strong>next</strong>:</li>
<li>Select which ever networking method you like, DHCP is probably easier,click <strong>next</strong>.</li>
<li>Enter the domain name and credentials to domain join. Then Click <strong>Next</strong>:</li>
</ul>
<p><img class="aligncenter wp-image-3484 size-full" src="http://andrewmorgan.ie/wp-content/uploads/2015/09/domain.png" alt="domain" width="961" height="562" /></p>
<p>Ensure to select &#8220;Generate New Security ID&#8221; then click <strong>Next</strong>:</p>
<p><img class="aligncenter wp-image-3483 size-full" src="http://andrewmorgan.ie/wp-content/uploads/2015/09/new-sid.png" alt="new sid" width="964" height="560" /></p>
<p>Click <strong>finish</strong> on the Final page and ensure your new template shows (mine disappeared the first time, sneaky so and so):</p>
<p><a href="http://andrewmorgan.ie/wp-content/uploads/2015/09/finished.png"><img class="aligncenter size-full wp-image-3482" src="http://andrewmorgan.ie/wp-content/uploads/2015/09/finished.png" alt="finished" width="875" height="229" /></a></p>
<h3>Preparing the target:</h3>
<p>Now lets hop first to the Remote Desktop Services target and install / upgrade the agent software!</p>
<p>Select the agent on the RDS server and kick off the installer:</p>
<p><a href="http://andrewmorgan.ie/wp-content/uploads/2015/09/agent.png"><img class="aligncenter size-full wp-image-3488" src="http://andrewmorgan.ie/wp-content/uploads/2015/09/agent.png" alt="agent" width="884" height="446" /></a></p>
<p>Select Next, Agree to the license, choose IPV4, IPV6 if you&#8217;re crazy and click <strong>Next</strong>:</p>
<p><a href="http://andrewmorgan.ie/wp-content/uploads/2015/09/IP.png"><img class="aligncenter size-full wp-image-3505" src="http://andrewmorgan.ie/wp-content/uploads/2015/09/IP.png" alt="IP" width="499" height="379" /></a></p>
<p>On the next screen, ensure to enable the <strong>&#8220;VMware Horizon View Composer Agent&#8221;</strong> and select <strong>Next</strong>:</p>
<p><a href="http://andrewmorgan.ie/wp-content/uploads/2015/09/customsetup.png"><img class="aligncenter size-full wp-image-3504" src="http://andrewmorgan.ie/wp-content/uploads/2015/09/customsetup.png" alt="customsetup" width="505" height="381" /></a></p>
<p>&nbsp;</p>
<p>after that, finish the install. Restart once, Shutdown and snapshot the VM.</p>
<p>Onwards!</p>
<h3>Creating the Automated Farm:</h3>
<p>Open the Horizon console and head to Resources &gt; Farms &gt; Add:</p>
<p><a href="http://andrewmorgan.ie/wp-content/uploads/2015/09/add-farm.png"><img class="size-full wp-image-3491 aligncenter" src="http://andrewmorgan.ie/wp-content/uploads/2015/09/add-farm.png" alt="add farm" width="440" height="351" /></a></p>
<p>Select <strong>Automated Farm</strong> and click <strong>Next</strong>:</p>
<p><img class="aligncenter  wp-image-3496" src="http://andrewmorgan.ie/wp-content/uploads/2015/09/automatedfarm1.png" alt="automatedfarm" width="563" height="405" /></p>
<p>Select the vSphere server, select <strong> Next</strong>:</p>
<p><img class="aligncenter  wp-image-3495" src="http://andrewmorgan.ie/wp-content/uploads/2015/09/vcenter.png" alt="vcenter" width="596" height="431" /></p>
<p>Enter the Farm Name, click <strong>Next:</strong></p>
<p><img class="aligncenter  wp-image-3494" src="http://andrewmorgan.ie/wp-content/uploads/2015/09/namepool.png" alt="namepool" width="574" height="424" /></p>
<p>Enter the naming pattern for the farm servers, select <strong>Next</strong>:</p>
<p><a href="http://andrewmorgan.ie/wp-content/uploads/2015/09/createdevicenames.png"><img class="aligncenter  wp-image-3493" src="http://andrewmorgan.ie/wp-content/uploads/2015/09/createdevicenames.png" alt="createdevicenames" width="550" height="406" /></a></p>
<p>Enter your Vsan details if you opted in to that sort of thing, click <strong>Next</strong>:<a href="http://andrewmorgan.ie/wp-content/uploads/2015/09/vsan.png"><img class="aligncenter size-full wp-image-3497" src="http://andrewmorgan.ie/wp-content/uploads/2015/09/vsan.png" alt="vsan" width="819" height="599" /></a></p>
<p>On the vCenter settings, choose the VM we configured in the target section earlier, select <strong>OK:</strong></p>
<p><img class="aligncenter size-full wp-image-3503" src="http://andrewmorgan.ie/wp-content/uploads/2015/09/vm.png" alt="vm" width="702" height="478" /></p>
<p>On the SnapShot selection, choose the Snapshot we created and click <strong>OK:</strong></p>
<p><img class="aligncenter size-full wp-image-3502" src="http://andrewmorgan.ie/wp-content/uploads/2015/09/snapshot.png" alt="snapshot" width="701" height="365" /></p>
<p>After that, just select whatever you want and click <strong>Next:</strong></p>
<p><img class="aligncenter size-full wp-image-3501" src="http://andrewmorgan.ie/wp-content/uploads/2015/09/vcentersettings.png" alt="vcentersettings" width="796" height="571" /></p>
<p>On the storage selection, choose your own settings then click <strong>Next</strong>:</p>
<p><img class="aligncenter size-full wp-image-3500" src="http://andrewmorgan.ie/wp-content/uploads/2015/09/storage.png" alt="storage" width="791" height="571" /></p>
<p>Select The guest settings, including the Specification we created earlier:</p>
<p><img class="aligncenter size-full wp-image-3499" src="http://andrewmorgan.ie/wp-content/uploads/2015/09/Guest.png" alt="Guest" width="928" height="619" /></p>
<p>Once finished, simply click finish and pray you&#8217;ve gotten everything right:</p>
<p><a href="http://andrewmorgan.ie/wp-content/uploads/2015/09/finish.png"><img class="aligncenter size-full wp-image-3498" src="http://andrewmorgan.ie/wp-content/uploads/2015/09/finish.png" alt="finish" width="929" height="617" /></a></p>
<p>And that&#8217;s it! go have a coffee and check to ensure you have a VM after the deployment:</p>
<p><a href="http://andrewmorgan.ie/wp-content/uploads/2015/09/VM.png"><img class="aligncenter size-full wp-image-3519" src="http://andrewmorgan.ie/wp-content/uploads/2015/09/VM.png" alt="VM" width="228" height="121" /></a></p>
<h3>Now to create a pool:</h3>
<p>Select catalog &gt; Desktop Pools &gt; <strong>Add</strong>:</p>
<p><img class="aligncenter size-full wp-image-3514" src="http://andrewmorgan.ie/wp-content/uploads/2015/09/DesktopPool.png" alt="DesktopPool" width="527" height="347" /></p>
<p>Choose RDS Desktop Pool, Select <strong>Next:</strong></p>
<p><img class="aligncenter size-full wp-image-3513" src="http://andrewmorgan.ie/wp-content/uploads/2015/09/AddDesktopPool.png" alt="AddDesktopPool" width="848" height="662" /></p>
<ul>
<li>Name the Pool something useful, then select <strong>Next:</strong></li>
<li>Set the Pool settings, then select <strong>Next:</strong></li>
</ul>
<p><img class="aligncenter size-full wp-image-3511" src="http://andrewmorgan.ie/wp-content/uploads/2015/09/PoolSettings.png" alt="PoolSettings" width="844" height="656" /></p>
<p>Select the newly created farm, then select <strong>Next</strong>:</p>
<p><a href="http://andrewmorgan.ie/wp-content/uploads/2015/09/addfarm1.png"><img class="aligncenter size-full wp-image-3515" src="http://andrewmorgan.ie/wp-content/uploads/2015/09/addfarm1.png" alt="addfarm" width="847" height="659" /></a></p>
<p>&nbsp;</p>
<p>Select &#8220;Entitle users after this wizard finishes&#8221; then select <strong>Finish</strong>:</p>
<p><img class="aligncenter size-full wp-image-3509" src="http://andrewmorgan.ie/wp-content/uploads/2015/09/Complete.png" alt="Complete" width="838" height="656" /></p>
<p>Click Add, enter the group you wish and click <strong>OK</strong> once selected:</p>
<p><img class="aligncenter size-full wp-image-3508" src="http://andrewmorgan.ie/wp-content/uploads/2015/09/Entitlement.png" alt="Entitlement" width="692" height="571" /></p>
<p>Click Close:</p>
<p><img class="aligncenter size-full wp-image-3507" src="http://andrewmorgan.ie/wp-content/uploads/2015/09/close.png" alt="close" width="497" height="454" /></p>
<p>Now open the horizon client, tada!</p>
<h3><a href="http://andrewmorgan.ie/wp-content/uploads/2015/09/tada.png"><img class="aligncenter size-full wp-image-3506" src="http://andrewmorgan.ie/wp-content/uploads/2015/09/tada.png" alt="tada" width="425" height="275" /></a></h3>
]]></content:encoded>
			<wfw:commentRss>http://andrewmorgan.ie/2015/09/creating-an-automated-vmware-horizon-rds-pool-with-horizon-6-2/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>ThinIO Public Beta is go!</title>
		<link>http://andrewmorgan.ie/2014/09/thinio-public-beta-is-go/</link>
		<comments>http://andrewmorgan.ie/2014/09/thinio-public-beta-is-go/#comments</comments>
		<pubDate>Mon, 15 Sep 2014 14:27:01 +0000</pubDate>
		<dc:creator><![CDATA[andyjmorgan]]></dc:creator>
				<category><![CDATA[Citrix]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Horizon View]]></category>
		<category><![CDATA[IOPS]]></category>
		<category><![CDATA[Remote Desktop services]]></category>
		<category><![CDATA[Storage Accelleration]]></category>
		<category><![CDATA[VDI]]></category>
		<category><![CDATA[VDI in a Box]]></category>
		<category><![CDATA[Vmware]]></category>
		<category><![CDATA[xenapp]]></category>
		<category><![CDATA[XenDesktop]]></category>

		<guid isPermaLink="false">http://andrewmorgan.ie/?p=2894</guid>
		<description><![CDATA[Lets get right to it! Warm up your labs or fire up your golden images ladies and gents, we’re delighted to announce ThinIO’s brief public beta will begin today! This project has taught us some really interesting things about Windows IO, how Windows behaves and how the hypervisor and storage can behave. This project really felt like a David vs. Goliath task as we (members of our community with a desire to simplify this issue) attempted to tackle one of [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><img class="alignright  wp-image-2865" src="/wp-content/uploads/2014/04/logo.png" alt="logo" width="204" height="47" />Lets get right to it!</p>
<p>Warm up your labs or fire up your golden images ladies and gents, we’re delighted to announce ThinIO’s brief public beta will begin today!</p>
<p>This project has taught us some really interesting things about Windows IO, how Windows behaves and how the hypervisor and storage can behave. This project really felt like a David vs. Goliath task as we (members of our community with a desire to simplify this issue) attempted to tackle one of the largest issues in our industry, storage bottlenecks and Windows desktops.</p>
<p>What’s really unique about our approach is there are no hardware lead times, no architecture changes needed and no external dependencies. ThinIO can be installed in seconds and the benefits are seen immediately.</p>
<p><span id="more-2894"></span></p>
<p>We’ve spent countless hours testing, tuning, retesting and even more tuning. We’re extremely happy with the results. This public beta will serve as an opportunity for you to really kick the tyres and believe the hype in what we’ve built while we’re putting together the final touches to release the product in the coming weeks.</p>
<p>During this time, we found achieving positive and consistent IO negation boils down to a number of items:</p>
<ul>
<li>cutting down on the volume of IOPS sent to the storage.</li>
<li>Reducing the data transferred (MB/sec) to and from the storage.</li>
<li>Intelligently cutting down on peak IO, such as boot and user logon.</li>
</ul>
<p>In the coming days we’re going drill down into these categories in more depth. But as a quick overview, here’s a baseline (top) and ThinIO (bottom) session comparison of a Windows 8.1 desktop login, 1 hour Login VSI medium workload and log off with just 350 mb of cache for ThinIO:</p>
<p><a href="http://andrewmorgan.ie/wp-content/uploads/2014/09/image004.jpg"><img class="aligncenter size-full wp-image-2896" src="/wp-content/uploads/2014/09/image004.jpg" alt="image004" width="554" height="323" /></a></p>
<p>Keep an eye out for the coming blog posts, but in the mean time, the ThinIO beta is available to download <a href="http://thinscaletechnology.com/download-thinio/">here</a> now! Go forth and have fun.</p>
<p>Until next time,</p>
<p>A</p>
<p><a href="http://thinscaletechnology.com/download-thinio/" target="_blank"><img class="aligncenter" src="http://thinscaletechnology.com/wp-content/uploads/2014/09/Download-ThinIO-Beta.jpg" alt="" width="313" height="110" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://andrewmorgan.ie/2014/09/thinio-public-beta-is-go/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Date and time shift when using Lotus Notes in Server 2008 R2 / XenApp</title>
		<link>http://andrewmorgan.ie/2012/08/date-and-time-shift-when-using-lotus-notes-in-server-2008-r2-xenapp/</link>
		<comments>http://andrewmorgan.ie/2012/08/date-and-time-shift-when-using-lotus-notes-in-server-2008-r2-xenapp/#comments</comments>
		<pubDate>Mon, 20 Aug 2012 11:10:58 +0000</pubDate>
		<dc:creator><![CDATA[andyjmorgan]]></dc:creator>
				<category><![CDATA[IBM Software]]></category>
		<category><![CDATA[Remote Desktop Services (RDS)]]></category>
		<category><![CDATA[Server Based Computing]]></category>
		<category><![CDATA[Windows Server]]></category>
		<category><![CDATA[XenApp]]></category>
		<category><![CDATA[Citrix]]></category>
		<category><![CDATA[Lotus Notes]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Remote Desktop services]]></category>
		<category><![CDATA[xenapp]]></category>

		<guid isPermaLink="false">http://andrewmorgan.ie/?p=2184</guid>
		<description><![CDATA[This was an extremely strange / rare issue, so I figured I would share it. In this customers environment, they are using XenApp 6.5 on Server 2008 R2 for published desktops, this environment is a hosted desktop environment for a number of countries in Europe. Infrequently an issue could be observed where the users timezones would shift out by one or two hours within the Lotus Notes application. This would case SameTime conversations and Calendar times to display out by [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><img class="alignright" src="http://www-03.ibm.com/press/us/en/attachment/32540.wss?fileId=ATTACH_FILE0&amp;fileName=LotusNotes_icon_256.jpg" alt="" width="86" height="86" />This was an extremely strange / rare issue, so I figured I would share it.</p>
<p>In this customers environment, they are using XenApp 6.5 on Server 2008 R2 for published desktops, this environment is a hosted desktop environment for a number of countries in Europe.</p>
<p>Infrequently an issue could be observed where the users timezones would shift out by one or two hours within the Lotus Notes application. This would case SameTime conversations and Calendar times to display out by the aforementioned value above.</p>
<p>When this issue occurred, it happened to all users on the server. A restart of the server did not fix the issue.</p>
<p>Interestingly, a &#8220;<em>TZUtil /g</em>&#8221; was reporting the client was in the correct time zone:</p>
<p><img class="aligncenter size-full wp-image-2187" title="Snagit1" src="/wp-content/uploads/2012/08/snagit1.png" alt="" width="261" height="31" /></p>
<p>If you ran &#8220;<em>TZUtil /s GMT Standard Time</em>&#8220;, then closed and opened Lotus Notes&#8230; The problem was resolved for that user, in that session until they logged off.</p>
<p>It&#8217;s worth pointing out, that this issue was only seen in Lotus Notes, not in any other application, java or otherwise.</p>
<p>When comparing the TimeZone settings from a problematic server to a working server, I found the following difference:</p>
<p>These keys are stored under:</p>
<p>HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTimeZoneInformation</p>
<p><a href="/wp-content/uploads/2012/08/incorrecttimezone.gif"><img class="aligncenter size-full wp-image-2185" title="incorrecttimezone" src="/wp-content/uploads/2012/08/incorrecttimezone.gif" alt="" width="512" height="247" /></a></p>
<p>And the working server looked as follows:</p>
<p><a href="/wp-content/uploads/2012/08/correcttimezone.gif"><img class="aligncenter size-full wp-image-2186" title="correcttimezone" src="/wp-content/uploads/2012/08/correcttimezone.gif" alt="" width="567" height="257" /></a></p>
<p>&nbsp;</p>
<p>Now that is weird! So we copied the correct keys from the server to server and the issue was resolved. On all servers once users closed and opened Lotus Notes again.</p>
<p><strong>But what caused this?</strong></p>
<p>With a work around in place, I began to dig deeper into what caused the timezone to change on the servers despite the fact that no users have the ability to do so.</p>
<p>Analysing the logins to the servers, I spotted an administrator account logging into each of the servers as the day went by. This user didn&#8217;t log into the correctly working servers so this was the first clue.</p>
<p>Now if you&#8217;ve used Lotus Notes combined with XenApp and timezones before, you&#8217;ll know its a complete nightmare, interestingly the administrator in question (me, shamefully), was logging onto a XenApp session with a linux timezone to replicate an issue.</p>
<p>More embarrassingly, I then decided to Remote Desktop inside of the XenApp session to the affected servers, and with my admin account being who it was&#8230; inadvertently changed the timezone for the servers it seems.</p>
<p><strong>That doesn&#8217;t sound right? You rdp&#8217;d from a client in a different time zone and it changed the server timezone?</strong></p>
<p>I agree, but I have since been able to replicate this in a test environment. As with Server 2008 Microsoft now handle the timezone redirection themselves as part of group policy and administrative accounts will change the timezone of the server intermittently.</p>
<p>Now most customers probably wouldn&#8217;t even notice this, unless they are using lotus notes, as all other applications behaved correctly.</p>
<p><strong>How do you work around this issue?</strong></p>
<p>Ensure that the Group Policy you use to configure timezone redirection is configured to &#8220;not apply&#8221; to any local administrator on the XenApp server that may log in.</p>
]]></content:encoded>
			<wfw:commentRss>http://andrewmorgan.ie/2012/08/date-and-time-shift-when-using-lotus-notes-in-server-2008-r2-xenapp/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Introducing ThreadLocker. A community tool for granular control of processes.</title>
		<link>http://andrewmorgan.ie/2012/05/introducing-threadlocker-a-community-tool-for-granular-control-of-processes/</link>
		<comments>http://andrewmorgan.ie/2012/05/introducing-threadlocker-a-community-tool-for-granular-control-of-processes/#comments</comments>
		<pubDate>Tue, 15 May 2012 12:47:06 +0000</pubDate>
		<dc:creator><![CDATA[andyjmorgan]]></dc:creator>
				<category><![CDATA[Remote Desktop Services (RDS)]]></category>
		<category><![CDATA[Server Based Computing]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Virtual Desktop Infrastructure]]></category>
		<category><![CDATA[Windows Server]]></category>
		<category><![CDATA[XenApp]]></category>
		<category><![CDATA[XenDesktop]]></category>
		<category><![CDATA[Performance Tool]]></category>
		<category><![CDATA[Processor Clamping]]></category>
		<category><![CDATA[Remote Desktop services]]></category>
		<category><![CDATA[SBC]]></category>
		<category><![CDATA[VDI]]></category>
		<category><![CDATA[xenapp]]></category>

		<guid isPermaLink="false">http://andrewmorgan.ie/?p=1861</guid>
		<description><![CDATA[&#160; Throughout this blog post, I&#8217;m going to be talking about Process Affinity and Process Priority. Understanding these definitions will help. I&#8217;m also only targetting server 2008 R2 and Windows 7 for this post. An issue I see time and time again in Virtual Desktop Infrastructure and Server Based Computing environments is CPU spikes cause sessions to pause and stick. These CPU spikes can be caused by overcommitment or overzealous application usage and the vendors (Citrix, ThreadMaster, RES, Appsense, etc) have come to [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>&nbsp;</p>
<p><img class="alignright wp-image-3267 size-thumbnail" src="http://andrewmorgan.ie/wp-content/uploads/2014/11/Threadlocker-150x150.jpg" alt="Threadlocker" width="150" height="150" />Throughout this blog post, I&#8217;m going to be talking about <a href="http://en.wikipedia.org/wiki/Processor_affinity" target="_blank">Process Affinity</a> and <a href="http://en.wikipedia.org/wiki/Scheduling_(computing)#Windows" target="_blank">Process Priority</a>. Understanding these definitions will help. I&#8217;m also only targetting server 2008 R2 and Windows 7 for this post.</p>
<p>An issue I see time and time again in Virtual Desktop Infrastructure and Server Based Computing environments is CPU spikes cause sessions to pause and stick. These CPU spikes can be caused by overcommitment or overzealous application usage and the vendors (Citrix, ThreadMaster, RES, Appsense, etc) have come to the rescue frequently with tools to reduce these events from occurring.</p>
<p>The problem with these solutions (Appsense excluded) is they are reactive, I.E. they take a number of seconds to identify a spike and respond by dropping the priority of the process or reducing the Users time on the processor.</p>
<p>These few seconds of high usage, reduce the amount of time the users applications and desktop session can spend on the processor, this reduction of resources cause the VDI desktop of the user to be completely unusable during the pause and ultimately resulting in complaining from the user community. Worse yet, if this is an SBC environment you now have all users on that server locked out!</p>
<p>And all this may sound a bit over the top, but its very easy to reproduce. For example, create a Microsoft Excel sheet and attempt to vlookup over a few thousand cells and watch the processor get chewed up. In this example, yes a vLookup across that many cells would be better served from a server based solution, <strong>but what&#8217;s stopping your users doing it</strong>?&#8230; Exactly.</p>
<p><strong>Looking at SBC for a second:</strong></p>
<p>With Server 2008 R2, the Fair Share CPU scheduling feature really is best (free) solution out there for CPU Utilisation management. The processor scheduling is far better than the Citrix equivalent and they also offer a feature (albeit, it feels unfinished) called Windows System Resource Manager to configure the processor affinity along with Process soft rules for performance management.</p>
<p>By setting these extremely intensive Multi-threaded applications to an affinity, we can &#8220;Lock&#8221; these processes to only run on certain processor cores, allowing the remaining cores to rebalance the rest of the workload. This ultimately, leaves the users session still responsive even if the application no longer responds. Allowing the user to continue working in other application until the intensive process is complete.</p>
<p><strong>The problem with Windows System Resource Manager?</strong></p>
<ul>
<li>It&#8217;s a pain to configure on more than one system</li>
<li>It requires (yeuck) Windows Internal Database</li>
<li>It has been marked as &#8220;Depreciated&#8221; in Server 2012</li>
<li>If a user changes affinity, Resource manager doesn&#8217;t re adjust.</li>
<li>It still suffers from &#8220;pauses&#8221; or sluggishness when the Cpu is really being hammered.</li>
</ul>
<div>So we&#8217;re back at the start again, Fair Share CPU scheduling is still the best free product, but how can we cap processes to cpu&#8217;s or drop the priority of a &#8220;Known Intensive&#8221; processes like Excel to stop these pauses?</div>
<div></div>
<div><strong>What about VDI:</strong></div>
<div>Well, there is nothing out there that&#8217;s free, move along.</div>
<div></div>
<div><strong>End result:</strong></div>
<p>This was my dillema recently with both XenApp &amp; Xendesktop. Ultimately not happy to Pay for a solution, embrace a depreciated tool, or wash my hands of the problem, I decided to write my own tool, complimenting fair share CPU scheduling but allowing affinity and priority locking.</p>
<p><strong>Introducing Threadlocker:</strong></p>
<p>ThreadLocker has been written to help you target known problematic processes and deal with them pro actively.</p>
<p>Threadlocker also has the added benefit of dropping the priority of known grunty processes to idle, meaning the process will use as much CPU as it can, but any other higher priority process can interupt without sluggishness or pauses.</p>
<p><img class="aligncenter size-full wp-image-1863" title="window" src="/wp-content/uploads/2012/05/window.png" alt="" width="545" height="451" /></p>
<p>With ThreadLocker you can target these processes and set their Affinity number of processors they can run on:</p>
<p><img class="aligncenter size-full wp-image-1865" title="affinity" src="/wp-content/uploads/2012/05/affinity.png" alt="" width="308" height="311" /></p>
<p>Or their Process Priority to drop them out of the normal running context:</p>
<p><img class="aligncenter size-full wp-image-1866" title="priority" src="/wp-content/uploads/2012/05/priority.png" alt="" width="600" height="35" /></p>
<ul>
<li>Threadlocker is light weight and scalable.</li>
<li>Threadlocker works flawlessly with Cpu Fair Share Scheduling, so even if a process is &#8220;ThreadLocked&#8221; the users running those applications will fair share on the designated cores.</li>
<li>Threadlockers configuration is xml based and can be copied down to the machine with Startup script or Group Policy preferences.</li>
<li>Threadlocker can be used in VDI environments where no other free solution is available.</li>
<li>Threadlocker will re-adjust priority, or affinity if the devious user tries to remove the restriction.</li>
</ul>
<div></div>
<p><strong>Threadlocker has been successfully tested on the following platforms:</strong></p>
<ul>
<li>XenApp 6.5</li>
<li>Windows Server 2008 R2 Service Pack 1</li>
<li>Windows 7 x64 Service Pack 1</li>
</ul>
<div><strong>Requirements:</strong></div>
<ul>
<li>Threadlocker Requires .Net Framework 3.5 sp1</li>
</ul>
<p><strong>Download:</strong></p>
<p><a href="http://andrewmorgan.ie/2015/09/threadlocker-2-0/" target="_blank">Here</a></p>
]]></content:encoded>
			<wfw:commentRss>http://andrewmorgan.ie/2012/05/introducing-threadlocker-a-community-tool-for-granular-control-of-processes/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>Removing Screen Resolution and Personalize shell extensions from a users desktop session.</title>
		<link>http://andrewmorgan.ie/2012/01/removing-screen-resolution-and-personalize-shell-extensions-from-a-users-desktop-session/</link>
		<comments>http://andrewmorgan.ie/2012/01/removing-screen-resolution-and-personalize-shell-extensions-from-a-users-desktop-session/#comments</comments>
		<pubDate>Mon, 16 Jan 2012 13:33:04 +0000</pubDate>
		<dc:creator><![CDATA[andyjmorgan]]></dc:creator>
				<category><![CDATA[Batch Scripting]]></category>
		<category><![CDATA[Remote Desktop Services (RDS)]]></category>
		<category><![CDATA[XenApp]]></category>
		<category><![CDATA[Citrix]]></category>
		<category><![CDATA[Remote Desktop services]]></category>
		<category><![CDATA[SBC]]></category>
		<category><![CDATA[xenapp]]></category>

		<guid isPermaLink="false">http://andrewmorgan.ie/?p=1281</guid>
		<description><![CDATA[While working in a XenApp 6 proof of concept I came accross this little feature and decided its time to share it! When a user right clicks on the desktop, by default they get access to commands to manipulate the appearance of the desktop. As I restricted access to the control panel, the two options below were generating errors in the users sessions: The error generated is your standard group policy restrictions error message as below: While digging into this [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><a href="/wp-content/uploads/2012/01/shell.png"><img class="alignright size-thumbnail wp-image-1285" style="border-color:initial;border-style:initial;" title="winlogo" src="/wp-content/uploads/2012/01/winlogo.png?w=150" alt="" width="75" height="75" /></a></p>
<p>While working in a XenApp 6 proof of concept I came accross this little feature and decided its time to share it!</p>
<p>When a user right clicks on the desktop, by default they get access to commands to manipulate the appearance of the desktop. As I restricted access to the control panel, the two options below were generating errors in the users sessions:</p>
<p><a href="/wp-content/uploads/2012/01/shell.png"><img class="aligncenter size-full wp-image-1282" title="shell" src="/wp-content/uploads/2012/01/shell.png" alt="" width="143" height="172" /></a></p>
<p>The error generated is your standard group policy restrictions error message as below:</p>
<p><a href="/wp-content/uploads/2012/01/error.png"><img class="aligncenter size-full wp-image-1283" title="error" src="/wp-content/uploads/2012/01/error.png" alt="" width="579" height="140" /></a></p>
<p>While digging into this further I found the following registry key that corresponds to the two prompts we see above.</p>
<pre>HKEY_CLASSES_ROOTDesktopBackground</pre>
<p>Under this key, you can see both entries that appear on the shell extension menu;</p>
<p><a href="/wp-content/uploads/2012/01/reg-entry.png"><img class="aligncenter size-full wp-image-1284" title="reg entry" src="/wp-content/uploads/2012/01/reg-entry.png" alt="" width="373" height="196" /></a></p>
<p>The problem with this key is, its owned by the TrustedInstaller account, and by default administrators cannot modify it. To modify this  key and hide this menu from users (but maintain it for administators) please follow the below steps.</p>
<p><em>Please note, any hotfixes from microsoft may remove your hard work, so be prepared to redo this work if Microsoft decide to work with this key in future.</em></p>
<ol>
<li>Take a backup of this key, you&#8217;ll thank me if you get it wrong!</li>
<li>Browse down to desktopbackgroundshelldisplay</li>
<li>right click this key, choose permissions, click advanced then owner</li>
<li>Select administrators from the list, then choose &#8220;Apply&#8221;.</li>
<li>browse to the permissions tab and remove the &#8220;users&#8221; group.</li>
<li>Click &#8220;apply&#8221;, then &#8220;ok&#8221;.</li>
<li>The &#8220;screen resolution&#8221; menu should now disappear from any current and future sessions.</li>
<li>Repeat step 2 to 8 on DesktopBackgroundShellPersonalize.</li>
<li>Tada! go grab a coffee to celebrate your domination over the windows operating system.</li>
</ol>
<p>And that&#8217;s it, you should now have a lean, clean and  error free shell extension menu when right clicking on the desktop.</p>
<p><strong>Pedantic, begrudging scripters note:</strong></p>
<p>Now if you&#8217;re a pedantic scripting so and so like me, you wont be satisfied to leave this job as a manual task. And despite spending more time than I&#8217;d like to admit, I couldn&#8217;t perform this work in powershell despite what I tried. Luckily the task was extremely easy to do with <a href="http://helgeklein.com/" target="_blank">Helge Klein</a>&#8216;s setacl program.</p>
<p>Below is an example of a script to achieve this:</p>
<p>setacl.exe -on HKLMsoftwareclassesDesktopBackground -ot reg -actn setprot -op dacl:p_nc;sacl:p_nc -rec yes</p>
<p>SetACL.exe -on HKLMsoftwareclassesDesktopBackground -ot reg -actn ace -ace &#8220;n:system;p:read&#8221; -ace &#8220;n:administrators;p:read&#8221; -actn clear -clr &#8220;dacl,sacl&#8221; -actn rstchldrn -rst &#8220;dacl,sacl&#8221; -rec yes</p>
]]></content:encoded>
			<wfw:commentRss>http://andrewmorgan.ie/2012/01/removing-screen-resolution-and-personalize-shell-extensions-from-a-users-desktop-session/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>
