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