[illumos-Developer] MUCH better --> zil for zvol TRUNCATE (and iSCSI UNMAP) working...

Dan McDonald danmcd at nexenta.com
Tue Mar 1 11:38:00 PST 2011


On Tue, Mar 01, 2011 at 01:02:00PM -0500, Eric Schrock wrote:
> I don't think it's necessary to do txg_wait_synced() now that you've
> integrated the ZIL changes.   From the ZFS perspective, the change is
> committed to disk once you do the zil_commit().

Is that sufficient to honor the iSCSI flag SL_WRITEBACK_CACHE_DISABLED?  I've
a feeling using the ZIL will mean the WRITEBACK_CACHE_DISABLED is effectively
a NOP for UNMAP, but anyone with more iSCSI clue should speak up.

> I still don't buy the "turn on ZLE compression automatically" behavior.
>  Most frees are going to be aligned with the native block size, and if they
> aren't, adjacent frees will still free up the space as they overlap whole
> blocks.  If ZLE is "free", we should turn it on by default for all zvols.
>  If it's not "free", then the user may very well want to have it turned off
> for performance while still providing UNMAP semantics.  If you want to get
> really fancy, then we should detect unaligned frees within the zvol layer
> dynamically and rewrite just those blocks with ZLE.  In any of these
> scenarios, there is no reason for the code (and the ugly prop get/set
> support) to exist within sbd.  George, what do you think?

I can/should run an experiment where I implement UNMAP without doing the zle
compression.  I can see whether or not the reserved size shrinks
appropriately.

Dan



More information about the Developer mailing list