<?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/"
	xmlns:series="http://unfoldingneurons.com/"
	>

<channel>
	<title>Stephen Foskett, Pack Rat &#187; Thin Reclamation Archives  &#8211; Stephen Foskett, Pack Rat</title>
	<atom:link href="http://blog.fosketts.net/tag/thin-reclamation/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.fosketts.net</link>
	<description>Understanding the accumulation of data</description>
	<lastBuildDate>Fri, 10 Feb 2012 17:40:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com" />
	<atom:link rel="hub" href="http://superfeedr.com/hubbub" />
			<item>
		<title>Processing and Scheduling Thin Provisioning</title>
		<link>http://blog.fosketts.net/2011/02/22/processing-scheduling-thin-provisioning/</link>
		<comments>http://blog.fosketts.net/2011/02/22/processing-scheduling-thin-provisioning/#comments</comments>
		<pubDate>Tue, 22 Feb 2011 15:41:50 +0000</pubDate>
		<dc:creator>Stephen</dc:creator>
				<category><![CDATA[Computer History]]></category>
		<category><![CDATA[Enterprise storage]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[Virtual Storage]]></category>
		<category><![CDATA[cron]]></category>
		<category><![CDATA[deduplication]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[in-line]]></category>
		<category><![CDATA[Nimbus]]></category>
		<category><![CDATA[Nimbus Data]]></category>
		<category><![CDATA[post-processing]]></category>
		<category><![CDATA[SVC]]></category>
		<category><![CDATA[thin provisioning]]></category>
		<category><![CDATA[Thin Reclamation]]></category>

		<guid isPermaLink="false">http://blog.fosketts.net/?p=4640</guid>
		<description><![CDATA[Although the core issues with thin provisioning revolve around communication, it presents unique challenges to the storage array as well. We talked about granularity of pages, and the comments for that piece were extremely enlightening. Now let's consider another key factor: Scheduling.]]></description>
			<content:encoded><![CDATA[<p><a href="http://static.fosketts.net/wp-content/uploads/2010/12/Slide01.jpg"><img style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-medium wp-image-4606" title="Slide01" src="http://static.fosketts.net/wp-content/uploads/2010/12/Slide01-300x225.jpg" alt="" width="300" height="225" /></a>

One of the topics I've often written and spoken about is thin provisioning. This series of 11 articles is an edited version of <a href="http://www.slideshare.net/sfoskett/state-of-the-art-thin-provisioning" target="_blank">my thin provisioning presentation from Interop New York 2010</a>. I hope you enjoy it!</p>
<p>Although the core issues with thin provisioning revolve around communication, it presents unique challenges to the storage array as well. We talked about <a href="http://blog.fosketts.net/2011/01/10/granularity-thin-provisioning-approaches/"  target="_blank">granularity of pages</a>, and the comments for that piece were extremely enlightening. Now let&#8217;s consider another key factor: Scheduling.</p>
<p>Note that the &#8220;provisioning&#8221; part is relatively easy to do on the fly: An array just has to allocate additional capacity as writes come in, which is something it does anyway. It&#8217;s the thin reclamation that poses a challenge, since this involves zero detection across a whole page of data in many cases.</p>
<p><a href="http://static.fosketts.net/wp-content/uploads/2010/12/Slide21.jpg" ><img style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-medium wp-image-4586" title="Slide21" src="http://static.fosketts.net/wp-content/uploads/2010/12/Slide21-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p>Just like de-duplication, thin provisioning challenges the resources of the storage array to do background number crunching. And just like dedupe, the array engineers have a choice of when to do the reclamation processing: Well after writing or &#8220;in-line&#8221;. The extreme ends of this spectrum fall into two equally disappointing categories: Wholly ineffective or ridiculously intensive.</p>
<p>Let&#8217;s start with the &#8220;intensive&#8221; side: You could have the controller do thin provisioning automatically; that&#8217;s kind of what IBM does with SVC, for example, and 3PAR claims to do this too. The trouble is that the controller has to literally watch everything, and it&#8217;s got to reassemble whole pages, perhaps 42 MB or even one GB in cache. If it didn&#8217;t have all that data, it would have to go fetch it, put it into cache, look at it, make sure it was all zeros, then get rid of it. It&#8217;s really, really difficult to do automatic, in-line, thin provisioning. It&#8217;s a good thing to do, but it&#8217;s a hard thing to do.</p>
<p>So most vendors schedule thinning for later. In the &#8220;10 terabytes of zeros&#8221; example, they&#8217;re actually going to write 10 terabytes to disk, or at least through to cache. Then, at some point in the future, they&#8217;ll go back and reclaim that space. Some are pretty aggressive and reclaim capacity very frequently. Others are fairly lazy: The Drobo seems to reclaim only once or twice a day. A lot of people who have them are surprised when the thing springs to life and starts going, &#8220;Bada-bada-bada-bada-bada-bada.&#8221; Apparently it&#8217;s reclaiming storage at that time.</p>
<p>Some thin provisioning systems are even manually-initiated, and this is really pretty ineffective. The storage administrator has better things to do than reclaim storage all the time, so they are probably going to set a cron job to do it regularly at a specified time. If the system only does it on demand, that means that it doesn&#8217;t have the horsepower to do it automatically. Ergo, it&#8217;s sometimes going to conflict with &#8220;real work&#8221; and cause a problem.</p>
<p>I would look for a system that was fairly aggressive with thin reclamation. I was talking to the guys at <a href="http://www.nimbusdata.com/"  target="_blank">Nimbus Data</a>, for example, and <a href="http://www.nimbusdata.com/products/halo_benefits.html"  target="_blank">they claim</a> to do thin provisioning in-line all the time. I hope that we see more storage arrays that are doing that, and less that are doing it manually, on demand, because that&#8217;s just not as useful.</p>
<p>But considering that thin provisioning used to be almost useless, the fact that it&#8217;s now at least somewhat useful is gratifying.</p>
<div id="crp_related"><h3>You might also want to read these other posts...</h3><ul><li><a href="http://blog.fosketts.net/2007/07/30/how-thin-are-you/"  rel="bookmark" class="crp_title">How Thin Are You?</a></li><li><a href="http://blog.fosketts.net/2011/01/06/bridge-veritas-thin-provisioning-api/"  rel="bookmark" class="crp_title">The Bridge: Veritas Thin (Provisioning) API</a></li><li><a href="http://blog.fosketts.net/2011/01/04/page-reclaim-savior-thin-provisioning/"  rel="bookmark" class="crp_title">Zero Page Reclaim: Savior of Thin Provisioning?</a></li><li><a href="http://blog.fosketts.net/2011/01/05/write_same-green-eggs-ham/"  rel="bookmark" class="crp_title">What is WRITE_SAME? Green Eggs and Ham!</a></li><li><a href="http://blog.fosketts.net/2011/01/10/granularity-thin-provisioning-approaches/"  rel="bookmark" class="crp_title">Granularity of Thin Provisioning Approaches</a></li></ul></div><script src="http://feeds.feedburner.com/~s/sfoskett?i=http://blog.fosketts.net/2011/02/22/processing-scheduling-thin-provisioning/" type="text/javascript" charset="utf-8"></script><hr />
<p><small>© sfoskett for <a href="http://blog.fosketts.net">Stephen Foskett, Pack Rat</a>, 2011. |
<a href="http://blog.fosketts.net/2011/02/22/processing-scheduling-thin-provisioning/">Processing and Scheduling Thin Provisioning</a>
<br/>
This post was categorized as <a href="http://blog.fosketts.net/category/everything/computerhistory/" title="View all posts in Computer History" rel="category tag">Computer History</a>, <a href="http://blog.fosketts.net/category/everything/enterprisestorage/" title="View all posts in Enterprise storage" rel="category tag">Enterprise storage</a>, <a href="http://blog.fosketts.net/category/everything/" title="View all posts in Everything" rel="category tag">Everything</a>, <a href="http://blog.fosketts.net/category/everything/virtualstorage/" title="View all posts in Virtual Storage" rel="category tag">Virtual Storage</a>. Each of my categories has its own feed if you'd like to filter out or focus on posts like this.<br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://blog.fosketts.net/2011/02/22/processing-scheduling-thin-provisioning/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<series:name><![CDATA[State of the Art Thin Provisioning]]></series:name>
	</item>
		<item>
		<title>Is TRIM Useful For Thin Provisioning?</title>
		<link>http://blog.fosketts.net/2011/01/07/trim-thin-provisioning/</link>
		<comments>http://blog.fosketts.net/2011/01/07/trim-thin-provisioning/#comments</comments>
		<pubDate>Fri, 07 Jan 2011 18:32:21 +0000</pubDate>
		<dc:creator>Stephen</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Enterprise storage]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[Terabyte home]]></category>
		<category><![CDATA[Virtual Storage]]></category>
		<category><![CDATA[ATA]]></category>
		<category><![CDATA[EMC]]></category>
		<category><![CDATA[HDS]]></category>
		<category><![CDATA[Lion]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[NetApp]]></category>
		<category><![CDATA[SCSI]]></category>
		<category><![CDATA[SSD]]></category>
		<category><![CDATA[thin provisioning]]></category>
		<category><![CDATA[Thin Reclamation]]></category>
		<category><![CDATA[TRIM]]></category>
		<category><![CDATA[UNMAP]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blog.fosketts.net/?p=4636</guid>
		<description><![CDATA[If WRITE_SAME can be a semaphore for thin un-provisioning, what about TRIM? It sounds like a perfect fit, and has wider implementation to boot! Let's take a deeper look.]]></description>
			<content:encoded><![CDATA[<p><a href="http://static.fosketts.net/wp-content/uploads/2010/12/Slide01.jpg"><img style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-medium wp-image-4606" title="Slide01" src="http://static.fosketts.net/wp-content/uploads/2010/12/Slide01-300x225.jpg" alt="" width="300" height="225" /></a>

One of the topics I've often written and spoken about is thin provisioning. This series of 11 articles is an edited version of <a href="http://www.slideshare.net/sfoskett/state-of-the-art-thin-provisioning" target="_blank">my thin provisioning presentation from Interop New York 2010</a>. I hope you enjoy it!</p>
<p>If <a href="http://blog.fosketts.net/2011/01/05/write_same-green-eggs-ham/"  target="_blank">WRITE_SAME</a> can be <a href="http://blog.fosketts.net/2011/01/06/bridge-veritas-thin-provisioning-api/"  target="_blank">a semaphore for thin un-provisioning</a>, what about TRIM? It sounds like a perfect fit, and has wider implementation to boot! Let&#8217;s take a deeper look.</p>
<p><a href="http://static.fosketts.net/wp-content/uploads/2010/12/Slide17.jpg" ><img style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-medium wp-image-4590" title="Slide17" src="http://static.fosketts.net/wp-content/uploads/2010/12/Slide17-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p>First, I&#8217;d like to remind the reader that I&#8217;m not some specialist storage engineer. I am regular guy who wanted to know about this TRIM thing. I welcome corrections and feedback on this piece!</p>
<p>We should note that TRIM was invented for SSDs, not thin provisioning. TRIM lets an operating system tell a storage device that certain blocks of data are no longer used. Although this sounds like a thin provisioning tool, it&#8217;s not. TRIM was never intended to be used this way.</p>
<p>Even though Microsoft supports TRIM in the file system, and even though, hopefully, Apple will introduce TRIM support in OS X Lion, this doesn&#8217;t do what we need it to do for thin provisioning. In fact, TRIM is not anything for enterprise storage folks to be getting all that excited about.</p>
<p>One reason for is is that TRIM is an ATA command, and most enterprise systems are not connected to their storage using any kind of ATA-based protocol. Maybe there are SATA disks somewhere down the line, but, whether they use iSCSI, FC, SAS, or FCoE, the servers speak SCSI.</p>
<p>Even though there are SCSI analogs of of TRIM, these commands were really not designed for thin provisioning. They are designed for SSDs, which have a big performance problem: An SSD can delete data and write data just fine, but in order to update data, they actually have to read, delete, and write a big page of data. What happen is that, as an SSD gets full, it starts slowing down. And that&#8217;s a problem because people buy SSDs for speed. So TRIM is a way to tell the SSD, &#8220;Sometime in the future, you can go ahead and delete this if you feel like it,&#8221; and the SSD will take care of that later.</p>
<p><a href="http://static.fosketts.net/wp-content/uploads/2010/12/Slide18.jpg" ><img style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-medium wp-image-4589" title="Slide18" src="http://static.fosketts.net/wp-content/uploads/2010/12/Slide18-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p>There&#8217;s great OS support for this, but unfortunately, this is not something that enterprise storage vendors are looking at. The only vendor (that I know of) that&#8217;s working on this, NetApp, did propose to T10 a mechanism to do thin provisioning based on TRIM. I don&#8217;t think it got anywhere. They say that it did, but I just don&#8217;t see it. HDS and EMC, seem to like UNMAP and SCSI, which are peripherally related, but I don&#8217;t know much about what they&#8217;re doing either. Perhaps they&#8217;ll let me know in comments on this post.</p>
<div id="crp_related"><h3>You might also want to read these other posts...</h3><ul><li><a href="http://blog.fosketts.net/2011/01/06/bridge-veritas-thin-provisioning-api/"  rel="bookmark" class="crp_title">The Bridge: Veritas Thin (Provisioning) API</a></li><li><a href="http://blog.fosketts.net/2011/01/05/write_same-green-eggs-ham/"  rel="bookmark" class="crp_title">What is WRITE_SAME? Green Eggs and Ham!</a></li><li><a href="http://blog.fosketts.net/2007/07/30/how-thin-are-you/"  rel="bookmark" class="crp_title">How Thin Are You?</a></li><li><a href="http://blog.fosketts.net/2011/01/07/pile-interesting-links-january-7-2011/"  rel="bookmark" class="crp_title">Back From the Pile: Interesting Links, January 7, 2011</a></li><li><a href="http://blog.fosketts.net/2010/12/30/thin-provisioning-playing-telephone-game/"  rel="bookmark" class="crp_title">Thin Provisioning: Playing the Telephone Game</a></li></ul></div><script src="http://feeds.feedburner.com/~s/sfoskett?i=http://blog.fosketts.net/2011/01/07/trim-thin-provisioning/" type="text/javascript" charset="utf-8"></script><hr />
<p><small>© sfoskett for <a href="http://blog.fosketts.net">Stephen Foskett, Pack Rat</a>, 2011. |
<a href="http://blog.fosketts.net/2011/01/07/trim-thin-provisioning/">Is TRIM Useful For Thin Provisioning?</a>
<br/>
This post was categorized as <a href="http://blog.fosketts.net/category/everything/apple/" title="View all posts in Apple" rel="category tag">Apple</a>, <a href="http://blog.fosketts.net/category/everything/enterprisestorage/" title="View all posts in Enterprise storage" rel="category tag">Enterprise storage</a>, <a href="http://blog.fosketts.net/category/everything/" title="View all posts in Everything" rel="category tag">Everything</a>, <a href="http://blog.fosketts.net/category/everything/terabytehome/" title="View all posts in Terabyte home" rel="category tag">Terabyte home</a>, <a href="http://blog.fosketts.net/category/everything/virtualstorage/" title="View all posts in Virtual Storage" rel="category tag">Virtual Storage</a>. Each of my categories has its own feed if you'd like to filter out or focus on posts like this.<br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://blog.fosketts.net/2011/01/07/trim-thin-provisioning/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<series:name><![CDATA[State of the Art Thin Provisioning]]></series:name>
	</item>
		<item>
		<title>Thin Provisioning: Playing the Telephone Game</title>
		<link>http://blog.fosketts.net/2010/12/30/thin-provisioning-playing-telephone-game/</link>
		<comments>http://blog.fosketts.net/2010/12/30/thin-provisioning-playing-telephone-game/#comments</comments>
		<pubDate>Thu, 30 Dec 2010 17:00:06 +0000</pubDate>
		<dc:creator>Stephen</dc:creator>
				<category><![CDATA[Enterprise storage]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[Gestalt IT]]></category>
		<category><![CDATA[Virtual Storage]]></category>
		<category><![CDATA[allocation]]></category>
		<category><![CDATA[de-allocation]]></category>
		<category><![CDATA[SNIA]]></category>
		<category><![CDATA[storage virtualization]]></category>
		<category><![CDATA[thin provisioning]]></category>
		<category><![CDATA[Thin Reclamation]]></category>

		<guid isPermaLink="false">http://blog.fosketts.net/?p=4624</guid>
		<description><![CDATA[What happens in the telephone game is that a little bit of information gets lost at each step along the path, and at the end of the chain you've basically lost all the information. And this happens all the time in computers, especially in data storage. Thin reclamation is the core technical challenge to thin provisioning, and the telephone game is the reason. ]]></description>
			<content:encoded><![CDATA[<p><a href="http://static.fosketts.net/wp-content/uploads/2010/12/Slide01.jpg"><img style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-medium wp-image-4606" title="Slide01" src="http://static.fosketts.net/wp-content/uploads/2010/12/Slide01-300x225.jpg" alt="" width="300" height="225" /></a>

One of the topics I've often written and spoken about is thin provisioning. This series of 11 articles is an edited version of <a href="http://www.slideshare.net/sfoskett/state-of-the-art-thin-provisioning" target="_blank">my thin provisioning presentation from Interop New York 2010</a>. I hope you enjoy it!</p>
<p>I began by introducing the core problem: <a href="http://blog.fosketts.net/2010/12/27/thin-provisioning-storage-cheaper/"  target="_blank">Storage isn&#8217;t getting any cheaper</a> due to <a href="http://blog.fosketts.net/2010/12/27/thin-provisioning-attacking-storage-utilization/"  target="_blank">storage utilization and provisioning problems</a>. Thin provisioning isn&#8217;t all it&#8217;s cracked up to be, but it has a place. So what&#8217;s wrong with it?</p>
<p><a href="http://static.fosketts.net/wp-content/uploads/2010/12/Slide08.jpg" ><img style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-medium wp-image-4599" title="Slide08" src="http://static.fosketts.net/wp-content/uploads/2010/12/Slide08-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p>The problem with thin provisioning starts with the telephone game. Did you ever play the telephone game as a kid? Maybe you whisper &#8220;I like potatoes&#8221; to the first person in a circle and when it comes back to you it&#8217;s changed to &#8220;Meet Mike on the patio&#8221; or something like that. It&#8217;s a totally different message.</p>
<p>What happens in the telephone game is that a little bit of information gets lost at each step along the path, and at the end of the chain you&#8217;ve basically lost all the information. And this happens all the time in computers, especially in data storage.</p>
<p>We storage guys are stuck at the bottom of a stack that includes many layers. Each of those layers loses something in translation, mostly because it&#8217;s pretending to be something that it&#8217;s not.</p>
<p>Think about storage today: We&#8217;ve got fake file systems pretending to live on fake discs that pretend to be directly connected to your computer. But they&#8217;re not.</p>
<p>Everything we do in enterprise storage is basically faking out something else so compatibility is maintained. And at each step (the file system, the database, the host, the network) you&#8217;re losing information. By the time you get to the storage system, there&#8217;s just no communication whatsoever.</p>
<p>This is the core problem with thin provisioning. The application knows what data is temporary, and that would be very useful for the storage system to act upon. But by the time the data gets there, the message is lost. Maybe the application tells a database. Maybe the database tells the file system. Maybe the file system tells the volume manager. But, that&#8217;s about as far is it&#8217;s going to go. So, this is really the issue. It&#8217;s the telephone game.</p>
<p><a href="http://static.fosketts.net/wp-content/uploads/2010/12/Slide09.jpg" ><img style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-medium wp-image-4598" title="Slide09" src="http://static.fosketts.net/wp-content/uploads/2010/12/Slide09-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p>Let&#8217;s say we have a file system and some storage. We want to write some data. So, the file system says, &#8220;Hey, here&#8217;s my new block.&#8221; And the storage says, &#8220;Yeah, I got it.&#8221;</p>
<p>This is the classic way of doing thin provisioning. So the storage system is now only using the little blue box. The file system adds some new data, then some more data, and the storage just keeps growing. The rest of the space can be reallocated.</p>
<p>We&#8217;re good so far. This is so simple that most products in storage now have something like this. Of course, it took them 10 years to do it, but they finally have it.</p>
<p><a href="http://static.fosketts.net/wp-content/uploads/2010/12/Slide10.jpg" ><img style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-medium wp-image-4597" title="Slide10" src="http://static.fosketts.net/wp-content/uploads/2010/12/Slide10-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p>So, we&#8217;re good. We can allocate storage. But, what about deallocate?</p>
<p>If I delete something, I have to tell the storage, and then it has to shrink the allocated capacity. But we&#8217;re not doing that. Most file systems don&#8217;t actually send that information on. When you delete a file, most file systems actually write more data instead of actually deleting anything.</p>
<p>Thin reclamation is the core technical challenge to thin provisioning, and the telephone game is the reason. Next we&#8217;ll present some solutions that are currently being worked out.</p>
<div id="crp_related"><h3>You might also want to read these other posts...</h3><ul><li><a href="http://blog.fosketts.net/2011/01/03/monitoring-filesystem-metadata-thin-provisioning/"  rel="bookmark" class="crp_title">Monitoring Filesystem Metadata For Thin Provisioning</a></li><li><a href="http://blog.fosketts.net/2011/01/06/bridge-veritas-thin-provisioning-api/"  rel="bookmark" class="crp_title">The Bridge: Veritas Thin (Provisioning) API</a></li><li><a href="http://blog.fosketts.net/2010/12/29/deallocating-core-issue-thin-provisioning/"  rel="bookmark" class="crp_title">De-Allocating is the Core Issue for Thin Provisioning</a></li><li><a href="http://blog.fosketts.net/2011/01/04/page-reclaim-savior-thin-provisioning/"  rel="bookmark" class="crp_title">Zero Page Reclaim: Savior of Thin Provisioning?</a></li><li><a href="http://blog.fosketts.net/2011/01/07/trim-thin-provisioning/"  rel="bookmark" class="crp_title">Is TRIM Useful For Thin Provisioning?</a></li></ul></div><script src="http://feeds.feedburner.com/~s/sfoskett?i=http://blog.fosketts.net/2010/12/30/thin-provisioning-playing-telephone-game/" type="text/javascript" charset="utf-8"></script><hr />
<p><small>© sfoskett for <a href="http://blog.fosketts.net">Stephen Foskett, Pack Rat</a>, 2010. |
<a href="http://blog.fosketts.net/2010/12/30/thin-provisioning-playing-telephone-game/">Thin Provisioning: Playing the Telephone Game</a>
<br/>
This post was categorized as <a href="http://blog.fosketts.net/category/everything/enterprisestorage/" title="View all posts in Enterprise storage" rel="category tag">Enterprise storage</a>, <a href="http://blog.fosketts.net/category/everything/" title="View all posts in Everything" rel="category tag">Everything</a>, <a href="http://blog.fosketts.net/category/gestaltit/" title="View all posts in Gestalt IT" rel="category tag">Gestalt IT</a>, <a href="http://blog.fosketts.net/category/everything/virtualstorage/" title="View all posts in Virtual Storage" rel="category tag">Virtual Storage</a>. Each of my categories has its own feed if you'd like to filter out or focus on posts like this.<br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://blog.fosketts.net/2010/12/30/thin-provisioning-playing-telephone-game/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<series:name><![CDATA[State of the Art Thin Provisioning]]></series:name>
	</item>
		<item>
		<title>De-Allocating is the Core Issue for Thin Provisioning</title>
		<link>http://blog.fosketts.net/2010/12/29/deallocating-core-issue-thin-provisioning/</link>
		<comments>http://blog.fosketts.net/2010/12/29/deallocating-core-issue-thin-provisioning/#comments</comments>
		<pubDate>Wed, 29 Dec 2010 17:00:17 +0000</pubDate>
		<dc:creator>Stephen</dc:creator>
				<category><![CDATA[Enterprise storage]]></category>
		<category><![CDATA[Gestalt IT]]></category>
		<category><![CDATA[allocation]]></category>
		<category><![CDATA[business case]]></category>
		<category><![CDATA[EMC]]></category>
		<category><![CDATA[Filesystems]]></category>
		<category><![CDATA[thin provisioning]]></category>
		<category><![CDATA[Thin Reclamation]]></category>

		<guid isPermaLink="false">http://blog.fosketts.net/?p=4616</guid>
		<description><![CDATA[One of the biggest problems for thin provisioning is not the provisioning part: It's fairly easy for a storage array to allocate on request: "I need a block; here's some data I want you to write." And the storage array just starts allocating, and allocating. But, the operating system never goes back and says "I don't need that block anymore."]]></description>
			<content:encoded><![CDATA[<p><a href="http://static.fosketts.net/wp-content/uploads/2010/12/Slide01.jpg"><img style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-medium wp-image-4606" title="Slide01" src="http://static.fosketts.net/wp-content/uploads/2010/12/Slide01-300x225.jpg" alt="" width="300" height="225" /></a>

One of the topics I've often written and spoken about is thin provisioning. This series of 11 articles is an edited version of <a href="http://www.slideshare.net/sfoskett/state-of-the-art-thin-provisioning" target="_blank">my thin provisioning presentation from Interop New York 2010</a>. I hope you enjoy it!</p>
<p>I began by introducing the core problem: <a href="http://blog.fosketts.net/2010/12/27/thin-provisioning-storage-cheaper/"  target="_blank">Storage isn&#8217;t getting any cheaper</a>, even though raw capacity is cheap. Then I talked about <a href="http://blog.fosketts.net/2010/12/27/thin-provisioning-attacking-storage-utilization/"  target="_blank">storage utilization and provisioning problems</a>. Now we&#8217;re going to talk about thin provisioning.</p>
<p>So, what is thin provisioning? I imagine everybody can just figure it out by the name. It means that instead of allocating storage that we&#8217;re not even going to use, we don&#8217;t allocate it, and give it to somebody else.</p>
<p><a href="http://static.fosketts.net/wp-content/uploads/2010/12/Slide05.jpg" ><img style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-medium wp-image-4602" title="Slide05" src="http://static.fosketts.net/wp-content/uploads/2010/12/Slide05-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p>All right. We&#8217;re done. Anybody have any questions?</p>
<p>Ok, you caught me. This is actually not how it works. This is how you would like it to work, but this is not how it works. This is the &#8220;vendor illustrated&#8221; version of how it works. So let&#8217;s talk about why thin provisioning doesn&#8217;t work this way.</p>
<p><a href="http://static.fosketts.net/wp-content/uploads/2010/12/Slide06.jpg" ><img style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-medium wp-image-4601" title="Slide06" src="http://static.fosketts.net/wp-content/uploads/2010/12/Slide06-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p>Thin provisioning is problematic. What happens is I allocate some space and suddenly I need a lot more. Perhaps I have temporary requirements and suddenly my application is spitting out log files like crazy, filling up all my storage, and locking everybody out. Oops, that&#8217;s a problem. But it&#8217;s probably exaggerated by thin provisioning opponents.</p>
<p>One of the biggest technical issues for thin provisioning is not the provisioning part: It&#8217;s fairly easy for a storage array to allocate on request:</p>
<ol>
<li>Operating system: &#8220;I need a block; here&#8217;s some data I want you to write.&#8221;</li>
<li>Storage array: &#8220;I&#8217;ll just start allocating now.&#8221;</li>
<li>But, the operating system never goes back and says &#8220;I don&#8217;t need that block anymore.&#8221;</li>
</ol>
<p>De-allocating (de-provisioning) is the challenge of thin provisioning. And that&#8217;s something that has to be tackled. And the reason that I say that thin provisioning isn&#8217;t quite as bad as it used to be is because that problem is being addressed.</p>
<p>Another problem we&#8217;re going to talk about is chunk sizes and formatting conflicts. We&#8217;re also going to talk about application conflicts.</p>
<p>There are a lot of problems with thin provisioning, but it&#8217;s getting better. I&#8217;ve been talking about this for years. I actually had a version of this slide that I used in 2003 or 2004, right when 3PAR started really pushing thin provisioning. And at that point I was saying &#8220;hold you horses everybody.&#8221; Now I&#8217;m getting a little more friendly to thin provisioning.</p>
<p><a href="http://static.fosketts.net/wp-content/uploads/2010/12/Slide07.jpg" ><img style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-medium wp-image-4600" title="Slide07" src="http://static.fosketts.net/wp-content/uploads/2010/12/Slide07-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p>I realized, after years of griping, that my discomfort with so many technologies comes down to this: <a href="http://blog.fosketts.net/2010/04/27/process-solutions-process-problems-technical-solutions-technical/"  target="_blank">If people are trying to solve a business problem with a technical solution, they&#8217;re going to fail</a>. It doesn&#8217;t matter if you&#8217;re talking about thin provisioning or anything else.</p>
<p>If your problem is that the organization won&#8217;t give you funds to actually buy storage, so you have to steal it from the next project that comes along and then reapply that storage to other projects just to keep your growth up, well, then thin provisioning is not going to solve your problem. If your problem is that you can only buy once a year, or you can only buy when the EMC salesman gives you a super discount and leaves something on the loading dock, well, thin provisioning is not your problem. Your problem is somewhere else.</p>
<p>But if your problem is that you have file systems that don&#8217;t like to grow and shrink, or if your problem is that you have a standard size allocation unit that everybody has to use and it always leaves some space empty, you are in luck. These are technical problems and those are things that you can solve with thin provisioning.</p>
<blockquote><p>I wrote more about this topic in <a href="http://blog.fosketts.net/2010/04/27/process-solutions-process-problems-technical-solutions-technical/" >Use Process Solutions For Process Problems, Technical Solutions For Technical Ones</a></p></blockquote>
<p>So, just think about it. Are you trying to solve a business problem or a technical problem? And again and again you&#8217;ll see that technical solutions should be applied to technical problems and business solutions should be applied to business problems. And there&#8217;s no solution to political problems, so what can you do?</p>
<div id="crp_related"><h3>You might also want to read these other posts...</h3><ul><li><a href="http://blog.fosketts.net/2010/12/30/thin-provisioning-playing-telephone-game/"  rel="bookmark" class="crp_title">Thin Provisioning: Playing the Telephone Game</a></li><li><a href="http://blog.fosketts.net/2010/04/27/process-solutions-process-problems-technical-solutions-technical/"  rel="bookmark" class="crp_title">Use Process Solutions For Process Problems, Technical Solutions For Technical Ones</a></li><li><a href="http://blog.fosketts.net/2011/01/03/monitoring-filesystem-metadata-thin-provisioning/"  rel="bookmark" class="crp_title">Monitoring Filesystem Metadata For Thin Provisioning</a></li><li><a href="http://blog.fosketts.net/2010/12/27/thin-provisioning-storage-cheaper/"  rel="bookmark" class="crp_title">Storage is Not Getting Cheaper</a></li><li><a href="http://blog.fosketts.net/2007/07/30/how-thin-are-you/"  rel="bookmark" class="crp_title">How Thin Are You?</a></li></ul></div><script src="http://feeds.feedburner.com/~s/sfoskett?i=http://blog.fosketts.net/2010/12/29/deallocating-core-issue-thin-provisioning/" type="text/javascript" charset="utf-8"></script><hr />
<p><small>© sfoskett for <a href="http://blog.fosketts.net">Stephen Foskett, Pack Rat</a>, 2010. |
<a href="http://blog.fosketts.net/2010/12/29/deallocating-core-issue-thin-provisioning/">De-Allocating is the Core Issue for Thin Provisioning</a>
<br/>
This post was categorized as <a href="http://blog.fosketts.net/category/everything/enterprisestorage/" title="View all posts in Enterprise storage" rel="category tag">Enterprise storage</a>, <a href="http://blog.fosketts.net/category/gestaltit/" title="View all posts in Gestalt IT" rel="category tag">Gestalt IT</a>. Each of my categories has its own feed if you'd like to filter out or focus on posts like this.<br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://blog.fosketts.net/2010/12/29/deallocating-core-issue-thin-provisioning/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<series:name><![CDATA[State of the Art Thin Provisioning]]></series:name>
	</item>
		<item>
		<title>Symantec&#8217;s Thin API: The Plot Thickens</title>
		<link>http://blog.fosketts.net/2008/10/24/symantec-thin-api/</link>
		<comments>http://blog.fosketts.net/2008/10/24/symantec-thin-api/#comments</comments>
		<pubDate>Fri, 24 Oct 2008 14:16:49 +0000</pubDate>
		<dc:creator>Stephen</dc:creator>
				<category><![CDATA[Enterprise storage]]></category>
		<category><![CDATA[Virtual Storage]]></category>
		<category><![CDATA[3PAR]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[data growth]]></category>
		<category><![CDATA[data management]]></category>
		<category><![CDATA[file system]]></category>
		<category><![CDATA[HDS]]></category>
		<category><![CDATA[HP]]></category>
		<category><![CDATA[I/O deduplication]]></category>
		<category><![CDATA[SmartMove]]></category>
		<category><![CDATA[Storage Foundation]]></category>
		<category><![CDATA[storage management]]></category>
		<category><![CDATA[Symantec]]></category>
		<category><![CDATA[thin provisioning]]></category>
		<category><![CDATA[Thin Reclamation]]></category>
		<category><![CDATA[utilization]]></category>
		<category><![CDATA[Veritas Storage Foundation]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[volume manager]]></category>

		<guid isPermaLink="false">http://blog.fosketts.net/?p=933</guid>
		<description><![CDATA[Last week, I lauded Symantec for introducing an API in Storage Foundation which will interact with the thin storage capabilities of supported arrays. Since then, I&#8217;ve learned more about this capability, and I am writing this update to share that knowledge. As I noted last week, the press release was a bit hard to follow and [...]]]></description>
			<content:encoded><![CDATA[<p>Last week, <a href="http://blog.fosketts.net/2008/10/16/symantecs-thin-api-step-direction/"  target="_self">I lauded Symantec for introducing an API in Storage Foundation</a> which will interact with the thin storage capabilities of supported arrays. Since then, I&#8217;ve learned more about this capability, and I am writing this update to share that knowledge. As I noted last week, the press release was a bit hard to follow and comprehend (and <a href="http://www.theregister.co.uk/2008/10/20/3par_symantec_help/"  target="_blank">not just for me</a>), and one of my initial assumptions about the API turned out to be wrong. I also received a few comments from interested folks pointing out some more pros and cons of this technology.</p>
<p>First, let&#8217;s clarify just which products and capabilities Symantec is offering here:</p>
<ul>
<li>Veritas Storage Foundation version 5.0MP3 for <strong>Unix/Linux</strong> includes <strong>SmartMove</strong> and the <strong>Thin Reclamation API</strong></li>
<li>Veritas Storage Foundation for <strong>Windows</strong> 5.0 only includes <strong>SmartMove</strong> at this point, but it will be updated to include Thin Reclamation at some point in the coming year</li>
</ul>
<p>Although there is no real information on Symantec&#8217;s web site about all this yet, Symantec&#8217;s director of Storage Management and High Availability, Sean Derrington, assures me that their software is available now. Although no compatible arrays are in end-user hands, 3PAR will update their T-Class firmware to support the API shortly, and HDS and HP are on the way as well.<span id="more-933"></span></p>
<h3 class="post-subhead">Thin Aware Software</h3>
<p>Next, contrary to what I inferred from the announcement, <strong>there is no native thin provisioning capability</strong> in the file system or volume manager. So the first item in my list is right out. However, the volume manager is now &#8220;thin aware&#8221;, which means that it will communicate up to the file system and down to the array to coordinate more effective use of space.</p>
<p>When the volume manager is used with <strong>Veritas File System (VxFS)</strong> on UNIX or <strong>NTFS</strong> on Windows Server 2003 or 2008, it will automatically keep track of deleted files and will pass this information down the stack to the array. This is a major piece of functionality to add, especially to NTFS, &#8220;hole punching&#8221; (<a href="http://blogs.netapp.com/shadeofblue/2008/10/hole-punching-f.html"  target="_blank">like NetApp</a>) to maximize thin provisioning.</p>
<p>The Storage Foundation tools have also been updated to properly report on thin provisioned volumes. For example, the following screenshot shows three disk devices where encl1 supports thin reclamation and encl0 does not.</p>
<pre><span style="font-family: 'Lucida Grande'; line-height: 19px; white-space: normal;">#</span> vxdisk list
DEVICE        TYPE   DISK          GROUP         STATUS
encl0_0       auto   encl0_0       mydg online   thin
encl1_0       auto   encl1_0       mydg online   thinrclm
encl1_1       auto   ecnl1_1       mydg online   thinrclm</pre>
<h3 class="post-subhead">Thin Reclamation API</h3>
<p>The Veritas Thin Reclamation API allows the Storage Foundation volume manager and file systems to communicate with <strong>thin-capable arrays</strong> when data is deleted on thin-ified LUNs, maintaining their thin-ness as you go. When a file is deleted, the file system will communicate to the volume manager that that space is no longer needed. When the server administrator runs the &#8220;vxdisk reclaim&#8221; or &#8220;fsadm –R&#8221; commands, the volume manager will communicate this information to the array (using SCSI commands) that any vacated disk blocks can now be reclaimed. Symantec expects folks to set up a cron job to reclaim space, or perhaps just run it when they see the need.</p>
<p>This is brilliant stuff, and ought to make thin provisioning shine in terms of array utilization. In an environment of thin-enabled Veritas volumes and supported storage arrays, the amount of space used on an array will be awfully close to the amount of space used in the file systems. This is a massive win <strong>- a capacity gain of on the order of 50%-70%</strong> in an average environment!</p>
<blockquote><p>For more on this topic, see my recent post on <a href="http://blog.fosketts.net/2008/10/01/storage-utilization-waterfall-raw-usable/"  target="_self">storage utilization</a></p>
</blockquote>
<p>If the storage array fully supports Symantec&#8217;s API, the tools will also report physically allocated storage behind thin and thin_reclaim devices.</p>
<pre># vxdisk –o thin list
DANAME        DISK SIZE(Mb)        PHYS_ALLOC(Mb)       DISK GROUP TYPE
encl0_0       2000                 50 mydg              thin
encl1_0       200                  50 mydg              thinrclm
encl1_1       500                  500 mydg             thinrclm</pre>
<h3 class="post-subhead">SmartMove</h3>
<p>SmartMove is Symantec&#8217;s new capability for online migration from &#8220;thick&#8221; to thin LUNs. It is included in Storage Foundation for Unix/Linux and Windows and works with <strong>any thin storage array</strong>, not just those that support the API. This is basically a tweak to the old storage migration support we have all known and relied on in Veritas Storage Foundation for over a decade, except that it&#8217;s <strong>smart enough to not request blocks that it won&#8217;t use</strong>. One could theoretically &#8220;SmartMove&#8221; a volume regularly to reclaim space without using the API at all, but those commands are sure a lot simpler.</p>
<p>Note that <strong>SmartMove speeds up migration too, even for thick volumes</strong>! When you use a SmartMove-enabled version of Storage Foundation to move a volume, it will only send the blocks that have changed over the wire. This reminds me a little of VMware&#8217;s new I/O deduplication capability talked about at VMworld, but it&#8217;s focused only on migrations, not other I/O situations.</p>
<blockquote><p>For more on this topic, see my recent post on <a href="http://blog.fosketts.net/2008/09/19/what-vmware-vdc-os-vstorage/"  target="_self">VMware vStorage</a></p>
</blockquote>
<h3 class="post-subhead">The Plot Thickens</h3>
<p>So I was wrong about one item, but the other two remain true. Is Symantec&#8217;s new capability a winner? I give it a silver medal &#8211; it&#8217;s good stuff, but some issues remain.</p>
<ol>
<li>My primary concern remains &#8211; <strong>thin provisioning does nothing to address the lack of storage management</strong> that is so prevalent. It enables greater utilization of capacity, but does nothing to control how that capacity is used. This isn&#8217;t a beef with Symantec&#8217;s Veritas Storage Foundation or 3PAR or HDS or EMC or anyone in the thin industry, really. Instead, it is a wake-up call to all of the storage organizations out there who have <a href="http://blog.fosketts.net/2007/07/24/sailing-the-titanic-why-we-need-ilm-and-then-some/" >filesystems full of uncontrolled junk</a>!</li>
<li>My second concern is the <strong>lack of capacity management</strong>. Thin provisioning is a lie, promising more capacity than is available. This might be acceptable in certain controlled circumstances like operating system or application volumes, but telling end users that they have plenty of available space is <a href="http://blog.fosketts.net/2007/08/16/a-seat-at-the-table/" >a recipe for disaster</a>. Storage use is like air &#8211; it expands to fill all available volume. Without capacity management, your thin volumes will be &#8220;overdrawn&#8221; and your storage &#8220;account&#8221; will be bankrupt.</li>
<li>Then there is the issue of proprietary APIs versus standards. Let me say right away that <strong>I always support standards over proprietary technology</strong>. But, at the same time, given the choice between nothing and something, I&#8217;ll take the proprietary API. Thin provisioning is a good idea with poor implementation. This API helps to make it useful in the real world, and having a market leader like Symantec behind it makes it all the more relevant. I certainly hope the entire storage industry will come up with a standard thin API, and when that happens I hope Symantec will support it. Until then, at least we have something.</li>
</ol>
<p>I will be writing more about thin provisioning in the coming weeks. Until then, I continue to applaud Symantec, 3PAR, HDS, and HP for their work in making this technology somewhat more practical. Now how about VMware, Microsoft, Sun, and the Linux guys <a rel="nofollow" href="http://storagebod.typepad.com/storagebods_blog/2008/10/thin-provisioning---saviour-of-the-universe.html"  target="_blank">get some thin technology going</a>, too?</p>
<blockquote><p>See my posts on <a href="http://gestaltit.com/author/stephen/"  target="_blank">Gestalt IT</a> for similar <a href="http://gestaltit.com"  target="_blank">enterprise IT infrastructure commentary</a></p>
</blockquote>
<div id="crp_related"><h3>You might also want to read these other posts...</h3><ul><li><a href="http://blog.fosketts.net/2008/10/16/symantecs-thin-api-step-direction/"  rel="bookmark" class="crp_title">Symantec&#8217;s Thin API Is A Step In The Right Direction</a></li><li><a href="http://blog.fosketts.net/2011/01/06/bridge-veritas-thin-provisioning-api/"  rel="bookmark" class="crp_title">The Bridge: Veritas Thin (Provisioning) API</a></li><li><a href="http://blog.fosketts.net/2007/07/30/how-thin-are-you/"  rel="bookmark" class="crp_title">How Thin Are You?</a></li><li><a href="http://blog.fosketts.net/2007/07/23/brocade-adds-thin-provisioning/"  rel="bookmark" class="crp_title">Brocade Adds Thin Provisioning</a></li><li><a href="http://blog.fosketts.net/2008/09/02/3pars-thin-un-provisioning/"  rel="bookmark" class="crp_title">3PAR&#8217;s Thin Un-Provisioning is Slightly Less Bad</a></li></ul></div><script src="http://feeds.feedburner.com/~s/sfoskett?i=http://blog.fosketts.net/2008/10/24/symantec-thin-api/" type="text/javascript" charset="utf-8"></script><hr />
<p><small>© sfoskett for <a href="http://blog.fosketts.net">Stephen Foskett, Pack Rat</a>, 2008. |
<a href="http://blog.fosketts.net/2008/10/24/symantec-thin-api/">Symantec&#8217;s Thin API: The Plot Thickens</a>
<br/>
This post was categorized as <a href="http://blog.fosketts.net/category/everything/enterprisestorage/" title="View all posts in Enterprise storage" rel="category tag">Enterprise storage</a>, <a href="http://blog.fosketts.net/category/everything/virtualstorage/" title="View all posts in Virtual Storage" rel="category tag">Virtual Storage</a>. Each of my categories has its own feed if you'd like to filter out or focus on posts like this.<br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://blog.fosketts.net/2008/10/24/symantec-thin-api/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

