On 26 February, 2010 - Lutz Schumann sent me these 2,2K bytes:

> Hello list, 
> 
> ZFS can be used in both file level (zfs) and block level access (zvol). When 
> using zvols, those are always thin provisioned (space is allocated on first 
> write). We use zvols with comstar to do iSCSI and FC access - and exuse me in 
> advance - but this may also be a more comstar related question then.
> 
> When reading from a freshly created zvol, no data comes from disk. All reads 
> are satisfied by ZFS and comstar returns 0's (I guess) for all reads. 
> 
> Now If a virtual machine writes to the zvol, blocks are allocated on disk. 
> Reads are now partial from disk (for all blocks written) and from ZFS layer 
> (all unwritten blocks). 
> 
> If the virtual machine (which may be vmware / xen / hyperv) deletes blocks / 
> frees space within the zvol, this also means a write - usually in meta data 
> area only. Thus the underlaying Storage system does not know which blocks in 
> a zvol are really used.
> 
> So reducing size in zvols is really difficult / not possible. Even if one 
> deletes everything in guest, the blocks keep allocated. If one zeros out all 
> blocks, even more space is allocated. 
> 
> For the same purpose TRIM (ATA) / PUNCH (SCSI) has bee introduced. With this 
> commands the guest can tell the storage, which blocks are not used anymore. 
> Those commands are not available in Comstar today :(
> 
> However I had the idea that comstar can get the same result in the way vmware 
> did it some time ago with "vmware tools". 
> 
> Idea: 
>   - If the guest writes a block with 0's only, the block is freed again
>   - if someone reads this block again - it wil get the same 0's it would get 
> if the 0's would be written 
>    - The checksum of a "all 0" block dan be hard coded for SHA1 / Flecher, so 
> the comparison for "is this a "0 only" block is easy.
> 
> With this in place, a host wishing to free thin provisioned zvol space can 
> fill the unused blocks wirth 0s easity with simple tools (e.g. dd 
> if=/dev/zero of=/MYFILE bs=1M; rm /MYFILE) and the space is freed again on 
> the zvol side. 
> 
> Does anyone know why this is not incorporated into ZFS ?

What you can do until this is to enable compression (like lzjb) on the
zvol, then do your dd dance in the client, then you can disable the
compression again.

/Tomas
-- 
Tomas Ögren, st...@acc.umu.se, http://www.acc.umu.se/~stric/
|- Student at Computing Science, University of Umeå
`- Sysadmin at {cs,acc}.umu.se
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to