linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Ric Wheeler <rwheeler@redhat.com>
To: jim owens <jowens@hp.com>
Cc: Theodore Tso <tytso@mit.edu>,
	Chris Mason <chris.mason@oracle.com>,
	James Bottomley <James.Bottomley@hansenpartnership.com>,
	"Martin K. Petersen" <martin.petersen@oracle.com>,
	Jens Axboe <jens.axboe@oracle.com>,
	David Woodhouse <dwmw2@infradead.org>,
	linux-scsi@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	Black_David@emc.com, Tom Coughlan <coughlan@redhat.com>,
	Matthew Wilcox <matthew@wil.cx>
Subject: Re: thin provisioned LUN support
Date: Fri, 07 Nov 2008 14:50:10 -0500	[thread overview]
Message-ID: <49149BF2.6070107@redhat.com> (raw)
In-Reply-To: <49149A88.4060902@hp.com>

jim owens wrote:
> Theodore Tso wrote:
>> On Fri, Nov 07, 2008 at 01:09:48PM -0500, Ric Wheeler wrote:
>>> I don't think that trim bugs should be that common - we just have to 
>>> be  very careful never to send down a trim for any uncommitted block.
>>>
>>
>> The trim code probably deserves a very aggressive unit test to make
>> sure it works correctly, but yeah, we should be able to control any
>> trim bugs.
>>
>>> Simple is always good, but I still think that the coalescing (even 
>>> basic  coalescing) will be a critical performance feature.
>>
>> Will we be able to query the device and find out its TRIM/UNMAP
>> alignment requirements?  There is also a balanace between performance
>> (at least if the concern is sending too many separate TRIM commands)
>> and giving the SSD more flexibility in its wear-leveling allocation
>> decisions by sending TRIM commands sooner rather than later.
>
> This is all good if the design is bounded by the requirements
> of trim for flash devices.  Because AFAIK the use of trim for
> flash ssd is a performance optimization.  The ssd won't loose
> functionality if the trim is less than the chunk size.  It may
> run slower and wear out faster, but that is all.
>
> If I understand correctly, with thin provisioning, unmapping
> less than the chunk will not release that chunk for other use.
> So you have lost the thin provision feature of the array.
>
> The concern (Chris I think) and I have is that doing a design
> to handle thin provision arrays *when chunk > fs_block_size*
> that guarantees you will *always* release on chunk boundaries
> is a lot more complicated.
>
> To do that you kind of have to build a filesystem into the
> block layer to persistently store "mapped/unmapped blocks
> in chunk" and then do the "unmap-this-chunk" when a region
> is all unmapped.
>
> 250 MB per 1TiB 512b sector disk for a simple 1-bit-per-sector
> state.  And that assumes you don't replicate it for safety.
> That is what the array vendors are trying to avoid by pushing
> it off to the OS.
>
> Whoever supports thin provisioning better get their unmapping
> correct because those big customers will be looking for who
> to blame if they don't get all the features.
>
> jim

I do think that what we have today is a reasonable start, especially if 
we can do some coalescing of the unmap commands just like we do for 
normal IO.

It does not have to be perfect, but it will work well for devices with a 
reasonable chunk size.

A vendor could always supply a clean up script to run when we get too 
out of sync between what the fs & storage device think is really 
allocated. (Bringing back that wonderful model of windows defrag your 
disk :-))

ric


  parent reply	other threads:[~2008-11-07 19:50 UTC|newest]

Thread overview: 105+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-11-06 14:43 thin provisioned LUN support Ric Wheeler
2008-11-06 15:17 ` James Bottomley
2008-11-06 15:24   ` David Woodhouse
2008-11-06 16:00     ` Ric Wheeler
2008-11-06 16:40       ` Martin K. Petersen
2008-11-06 17:04         ` Ric Wheeler
2008-11-06 17:15     ` Matthew Wilcox
2008-11-07 12:05     ` Jens Axboe
2008-11-07 12:14       ` Ric Wheeler
2008-11-07 12:17         ` David Woodhouse
2008-11-07 12:19         ` Jens Axboe
2008-11-07 14:26           ` thin provisioned LUN support & file system allocation policy Ric Wheeler
2008-11-07 14:34             ` Matthew Wilcox
2008-11-07 14:45               ` Jörn Engel
2008-11-07 14:43             ` Theodore Tso
2008-11-07 14:54               ` Ric Wheeler
2008-11-07 15:26                 ` jim owens
2008-11-07 15:31                   ` David Woodhouse
2008-11-07 15:35                     ` jim owens
2008-11-07 15:46                       ` Theodore Tso
2008-11-07 15:51                         ` Martin K. Petersen
2008-11-07 16:06                           ` Ric Wheeler
2008-11-07 15:56                         ` James Bottomley
2008-11-07 15:36                     ` James Bottomley
2008-11-07 15:48                       ` David Woodhouse
2008-11-07 15:36                   ` Theodore Tso
2008-11-07 15:45                     ` Matthew Wilcox
2008-11-07 16:07                       ` jim owens
2008-11-07 16:12                         ` James Bottomley
2008-11-07 16:23                           ` jim owens
2008-11-07 16:02                   ` Ric Wheeler
2008-11-07 14:55               ` Matthew Wilcox
2008-11-07 15:20         ` thin provisioned LUN support James Bottomley
2008-11-09 23:08           ` Dave Chinner
2008-11-09 23:37             ` James Bottomley
2008-11-10  0:33               ` Dave Chinner
2008-11-10 14:31                 ` James Bottomley
2008-11-07 15:49       ` Chris Mason
2008-11-07 16:00         ` Martin K. Petersen
2008-11-07 16:06           ` James Bottomley
2008-11-07 16:11             ` Chris Mason
2008-11-07 16:18               ` James Bottomley
2008-11-07 16:22                 ` Ric Wheeler
2008-11-07 16:27                   ` James Bottomley
2008-11-07 16:28                   ` David Woodhouse
2008-11-07 17:22                 ` Chris Mason
2008-11-07 18:09                   ` Ric Wheeler
2008-11-07 18:36                     ` Theodore Tso
2008-11-07 18:41                       ` Ric Wheeler
     [not found]                       ` <49148BDF.9050707@redhat.com>
2008-11-07 19:35                         ` Theodore Tso
2008-11-07 19:55                           ` Martin K. Petersen
2008-11-07 20:19                             ` Theodore Tso
2008-11-07 20:21                               ` Matthew Wilcox
     [not found]                               ` <20081107202149.GJ15439@parisc-linux.org>
2008-11-07 20:26                                 ` Ric Wheeler
2008-11-07 20:48                                   ` Chris Mason
2008-11-07 21:04                                     ` Ric Wheeler
2008-11-07 21:13                                     ` Theodore Tso
2008-11-07 20:42                                 ` Theodore Tso
2008-11-07 21:06                               ` Martin K. Petersen
2008-11-07 20:37                             ` Ric Wheeler
2008-11-10  2:44                               ` Black_David
2008-11-10  2:36                           ` Black_David
2008-11-07 19:44                       ` jim owens
2008-11-07 19:48                         ` Matthew Wilcox
2008-11-07 19:50                         ` Ric Wheeler [this message]
2008-11-09 23:36           ` Dave Chinner
2008-11-10  3:40             ` Thin provisioning & arrays Black_David
2008-11-10  8:31               ` Dave Chinner
2008-11-10  9:59                 ` David Woodhouse
2008-11-10 13:30                   ` Matthew Wilcox
2008-11-10 13:36                     ` Jens Axboe
2008-11-10 17:05                   ` UNMAP is a hint Black_David
2008-11-10 17:30                     ` Matthew Wilcox
2008-11-10 17:56                       ` Ric Wheeler
2008-11-10 22:18                   ` Thin provisioning & arrays Dave Chinner
2008-11-11  1:23                     ` Black_David
2008-11-11  2:09                       ` Keith Owens
2008-11-11 13:59                         ` Ric Wheeler
2008-11-11 14:55                           ` jim owens
2008-11-11 15:38                             ` Ric Wheeler
2008-11-11 15:59                               ` jim owens
2008-11-11 16:25                                 ` Ric Wheeler
2008-11-11 16:53                                   ` jim owens
2008-11-11 23:08                             ` Dave Chinner
2008-11-11 23:52                               ` jim owens
2008-11-11 22:49                       ` Dave Chinner
2008-11-06 15:27 ` thin provisioned LUN support jim owens
2008-11-06 15:57   ` jim owens
2008-11-06 16:21     ` James Bottomley
     [not found] ` <yq1d4h8nao5.fsf@sermon.lab.mkp.net>
2008-11-06 15:42   ` Ric Wheeler
2008-11-06 15:57     ` David Woodhouse
2008-11-06 22:36 ` Dave Chinner
2008-11-06 22:55   ` Ric Wheeler
     [not found]   ` <491375E9.7020707@redhat.com>
2008-11-06 23:06     ` James Bottomley
2008-11-06 23:10       ` Ric Wheeler
2008-11-06 23:26         ` James Bottomley
2008-11-06 23:32 ` thin provisioned LUN support - T10 activity Black_David
2008-11-07 11:59 ` thin provisioned LUN support Artem Bityutskiy
2008-11-10 20:39 ` Aggregating discard requests in the filesystem Matthew Wilcox
2008-11-10 20:44   ` Chris Mason
2008-11-11  0:12   ` Brad Boyer
2008-11-11 15:25     ` jim owens
2008-11-11 16:40 ` thin provisioned LUN support Christoph Hellwig
2008-11-11 17:07   ` jim owens
2008-11-11 17:33     ` Christoph Hellwig

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=49149BF2.6070107@redhat.com \
    --to=rwheeler@redhat.com \
    --cc=Black_David@emc.com \
    --cc=James.Bottomley@hansenpartnership.com \
    --cc=chris.mason@oracle.com \
    --cc=coughlan@redhat.com \
    --cc=dwmw2@infradead.org \
    --cc=jens.axboe@oracle.com \
    --cc=jowens@hp.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=matthew@wil.cx \
    --cc=tytso@mit.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).