ZFS 1MB recordsize

Adam Nowacki nowakpl at platinum.linux.pl
Tue Jan 7 17:14:17 UTC 2014


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.

> 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