ZFS 1MB recordsize

Slawa Olhovchenkov slw at zxy.spb.ru
Tue Jan 7 17:18:20 UTC 2014


On Tue, Jan 07, 2014 at 06:06:39PM +0100, Adam Nowacki wrote:

> On 2014-01-07 17:34, Slawa Olhovchenkov wrote:
> > What is trouble to support 1 MB blocksize in ZFS?
> 
> see http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/178388
> Some extra work is needed to make it user friendly, for example feature
> flag to prevent kernel panics on older systems. This is only speaking of
> FreeBSD, other systems that share zfs code may have other issues. Since
> there is almost no interest in this feature I've stopped any work on
> this beyond what is needed on my systems.

For some workloads this is very useful feature.

> > I try to change in
> > /usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h
> > 
> > #define SPA_MAXBLOCKSHIFT       17
> > to
> > #define SPA_MAXBLOCKSHIFT       20
> > 
> > rebuild kernel and world, install it and reboot.
> > 
> > create new dataset, copy 16MB file and:
> > 
> > # zdb -dddddddd zroot/tst 8
> > Dataset zroot/tst [ZPL], ID 177, cr_txg 31368, 16.1M, 8 objects, rootbp DVA[0]=<0:d1397000:1000> DVA[1]=<0:412000:1000> [L0 DMU objset] fletcher4 uncompressed LE contiguous unique double size=800L/800P birth=31384L/31384P fill=8 cksum=bf78ba9b9:e709a16b792:ae320b3c0832c:6061cd37e67e787
> > 
> >     Object  lvl   iblk   dblk  dsize  lsize   %full  type
> >          8    2    16K     1M  16.0M    16M  100.00  ZFS plain file (K=inherit) (Z=inherit)
> >                                         168   bonus  System attributes
> >         dnode flags: USED_BYTES USERUSED_ACCOUNTED 
> >         dnode maxblkid: 15
> >         path    /if_ath.ko.debug
> >         uid     0
> >         gid     0
> >         atime   Tue Jan  7 19:23:36 2014
> >         mtime   Tue Jan  7 19:23:37 2014
> >         ctime   Tue Jan  7 19:23:37 2014
> >         crtime  Tue Jan  7 19:23:36 2014
> >         gen     31383
> >         mode    100644
> >         size    15806584
> >         parent  4
> >         links   1
> >         pflags  40800000004
> > Indirect blocks:
> >                0 L1  0:d138c000:1000 0:407000:1000 4000L/1000P F=16 B=31384/31384
> >                0  L0 0:d0373000:100000 100000L/100000P F=1 B=31383/31383
> >           100000  L0 0:d0473000:100000 100000L/100000P F=1 B=31383/31383
> >           200000  L0 0:d0573000:100000 100000L/100000P F=1 B=31383/31383
> >           300000  L0 0:d0673000:100000 100000L/100000P F=1 B=31383/31383
> >           400000  L0 0:d0773000:100000 100000L/100000P F=1 B=31383/31383
> >           500000  L0 0:d0873000:100000 100000L/100000P F=1 B=31383/31383
> >           600000  L0 0:d0973000:100000 100000L/100000P F=1 B=31383/31383
> >           700000  L0 0:d0a73000:100000 100000L/100000P F=1 B=31383/31383
> >           800000  L0 0:d0b8c000:100000 100000L/100000P F=1 B=31384/31384
> >           900000  L0 0:d0c8c000:100000 100000L/100000P F=1 B=31384/31384
> >           a00000  L0 0:d0d8c000:100000 100000L/100000P F=1 B=31384/31384
> >           b00000  L0 0:d0e8c000:100000 100000L/100000P F=1 B=31384/31384
> >           c00000  L0 0:d0f8c000:100000 100000L/100000P F=1 B=31384/31384
> >           d00000  L0 0:d108c000:100000 100000L/100000P F=1 B=31384/31384
> >           e00000  L0 0:d118c000:100000 100000L/100000P F=1 B=31384/31384
> >           f00000  L0 0:d128c000:100000 100000L/100000P F=1 B=31384/31384
> > 
> >                 segment [0000000000000000, 0000000001000000) size   16M
> > 
> > What is absent?
> > _______________________________________________
> > freebsd-fs at freebsd.org mailing list
> > http://lists.freebsd.org/mailman/listinfo/freebsd-fs
> > To unsubscribe, send any mail to "freebsd-fs-unsubscribe at freebsd.org"
> > 
> 


More information about the freebsd-fs mailing list