ZFS 1MB recordsize

Slawa Olhovchenkov slw at zxy.spb.ru
Tue Jan 7 16:34:07 UTC 2014


What is trouble to support 1 MB blocksize in ZFS?
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?


More information about the freebsd-fs mailing list