zfs icon indicating copy to clipboard operation
zfs copied to clipboard

Fragmentation - Wrong Value of 0% reported in

Open luckylinux opened this issue 1 year ago • 2 comments

System information

Type Version/Name
Distribution Name Ubuntu
Distribution Version 24.04 Noble AMD64
Kernel Version 6.8.0-40-generic
Architecture AMD64
OpenZFS Version zfs-2.2.4-1 / zfs-kmod-2.2.4-1 (Build from Source, OpenZFS Package)

Describe the problem you're observing

zpool get returns a Fragmentation Value of 0% for all VDEVs and their Children.

That's impossible and in contrast with zpool list which returns a value of 47% (on this Desktop System).

Describe how to reproduce the problem

Only Fragmentation VDEV Property:

root@ubuntuworkstation02:/# zpool get fragmentation rpool all-vdevs
NAME    PROPERTY       VALUE  SOURCE
root-0  fragmentation  0%     -
mirror-0  fragmentation  0%     -
ata-CT1000MX500SSD1_2301E6992CB7_crypt  fragmentation  0%     -
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  fragmentation  0%     -

All VDEV Properties:

root@HOST:/# zpool get all rpool all-vdevs
NAME    PROPERTY           VALUE                 SOURCE
root-0  capacity           72%                   -
root-0  state              ONLINE                -
root-0  guid               15970062859096276313  -
root-0  asize              0                     -
root-0  psize              0                     -
root-0  ashift             0                     -
root-0  size               928G                  -
root-0  free               254G                  -
root-0  allocated          674G                  -
root-0  comment            -                     default
root-0  expandsize         -                     -
root-0  fragmentation      0%                    -
root-0  bootsize           0                     default
root-0  parity             0                     -
root-0  path               -                     default
root-0  devid              -                     default
root-0  physpath           -                     default
root-0  encpath            -                     default
root-0  fru                -                     default
root-0  parent             -                     default
root-0  children           mirror-0              -
root-0  numchildren        1                     -
root-0  read_errors        0                     -
root-0  write_errors       0                     -
root-0  checksum_errors    0                     -
root-0  initialize_errors  0                     -
root-0  null_ops           0                     -
root-0  read_ops           0                     -
root-0  write_ops          0                     -
root-0  free_ops           0                     -
root-0  claim_ops          0                     -
root-0  trim_ops           0                     -
root-0  null_bytes         0                     -
root-0  read_bytes         0                     -
root-0  write_bytes        0                     -
root-0  free_bytes         0                     -
root-0  claim_bytes        0                     -
root-0  trim_bytes         0                     -
root-0  removing           off                   -
root-0  allocating         on                    default
root-0  failfast           on                    default
root-0  checksum_n         -                     default
root-0  checksum_t         -                     default
root-0  io_n               -                     default
root-0  io_t               -                     default
root-0  slow_io_n          -                     default
root-0  slow_io_t          -                     default
mirror-0  capacity           72%                   -
mirror-0  state              ONLINE                -
mirror-0  guid               5676157474270078696   -
mirror-0  asize              929G                  -
mirror-0  psize              0                     -
mirror-0  ashift             12                    -
mirror-0  size               928G                  -
mirror-0  free               254G                  -
mirror-0  allocated          674G                  -
mirror-0  comment            -                     default
mirror-0  expandsize         -                     -
mirror-0  fragmentation      0%                    -
mirror-0  bootsize           0                     default
mirror-0  parity             0                     -
mirror-0  path               -                     default
mirror-0  devid              -                     default
mirror-0  physpath           -                     default
mirror-0  encpath            -                     default
mirror-0  fru                -                     default
mirror-0  parent             rpool                 -
mirror-0  children           /dev/mapper/ata-CT1000MX500SSD1_2301E6992CB7_crypt,/dev/loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  -
mirror-0  numchildren        2                     -
mirror-0  read_errors        0                     -
mirror-0  write_errors       0                     -
mirror-0  checksum_errors    0                     -
mirror-0  initialize_errors  0                     -
mirror-0  null_ops           0                     -
mirror-0  read_ops           22.0M                 -
mirror-0  write_ops          13.5M                 -
mirror-0  free_ops           0                     -
mirror-0  claim_ops          0                     -
mirror-0  trim_ops           0                     -
mirror-0  null_bytes         0                     -
mirror-0  read_bytes         2.02T                 -
mirror-0  write_bytes        750G                  -
mirror-0  free_bytes         0                     -
mirror-0  claim_bytes        0                     -
mirror-0  trim_bytes         0                     -
mirror-0  removing           off                   -
mirror-0  allocating         on                    default
mirror-0  failfast           on                    default
mirror-0  checksum_n         -                     default
mirror-0  checksum_t         -                     default
mirror-0  io_n               -                     default
mirror-0  io_t               -                     default
mirror-0  slow_io_n          -                     default
mirror-0  slow_io_t          -                     default
ata-CT1000MX500SSD1_2301E6992CB7_crypt  capacity           0%                    -
ata-CT1000MX500SSD1_2301E6992CB7_crypt  state              ONLINE                -
ata-CT1000MX500SSD1_2301E6992CB7_crypt  guid               15589981690520513926  -
ata-CT1000MX500SSD1_2301E6992CB7_crypt  asize              929G                  -
ata-CT1000MX500SSD1_2301E6992CB7_crypt  psize              929G                  -
ata-CT1000MX500SSD1_2301E6992CB7_crypt  ashift             12                    -
ata-CT1000MX500SSD1_2301E6992CB7_crypt  size               0                     -
ata-CT1000MX500SSD1_2301E6992CB7_crypt  free               0                     -
ata-CT1000MX500SSD1_2301E6992CB7_crypt  allocated          0                     -
ata-CT1000MX500SSD1_2301E6992CB7_crypt  comment            -                     default
ata-CT1000MX500SSD1_2301E6992CB7_crypt  expandsize         -                     -
ata-CT1000MX500SSD1_2301E6992CB7_crypt  fragmentation      0%                    -
ata-CT1000MX500SSD1_2301E6992CB7_crypt  bootsize           0                     default
ata-CT1000MX500SSD1_2301E6992CB7_crypt  parity             0                     -
ata-CT1000MX500SSD1_2301E6992CB7_crypt  path               /dev/mapper/ata-CT1000MX500SSD1_2301E6992CB7_crypt  -
ata-CT1000MX500SSD1_2301E6992CB7_crypt  devid              dm-uuid-CRYPT-LUKS2-b5ed1ef4aecb4404b68229f2a8a253c3-ata-CT1000MX500SSD1_2301E6992CB7_crypt  -
ata-CT1000MX500SSD1_2301E6992CB7_crypt  physpath           /dev/disk/by-uuid/15970062859096276313  -
ata-CT1000MX500SSD1_2301E6992CB7_crypt  encpath            -                     default
ata-CT1000MX500SSD1_2301E6992CB7_crypt  fru                -                     default
ata-CT1000MX500SSD1_2301E6992CB7_crypt  parent             mirror-0              -
ata-CT1000MX500SSD1_2301E6992CB7_crypt  children           -                     default
ata-CT1000MX500SSD1_2301E6992CB7_crypt  numchildren        0                     -
ata-CT1000MX500SSD1_2301E6992CB7_crypt  read_errors        0                     -
ata-CT1000MX500SSD1_2301E6992CB7_crypt  write_errors       0                     -
ata-CT1000MX500SSD1_2301E6992CB7_crypt  checksum_errors    0                     -
ata-CT1000MX500SSD1_2301E6992CB7_crypt  initialize_errors  0                     -
ata-CT1000MX500SSD1_2301E6992CB7_crypt  null_ops           0                     -
ata-CT1000MX500SSD1_2301E6992CB7_crypt  read_ops           15.1M                 -
ata-CT1000MX500SSD1_2301E6992CB7_crypt  write_ops          1018K                 -
ata-CT1000MX500SSD1_2301E6992CB7_crypt  free_ops           0                     -
ata-CT1000MX500SSD1_2301E6992CB7_crypt  claim_ops          0                     -
ata-CT1000MX500SSD1_2301E6992CB7_crypt  trim_ops           0                     -
ata-CT1000MX500SSD1_2301E6992CB7_crypt  null_bytes         0                     -
ata-CT1000MX500SSD1_2301E6992CB7_crypt  read_bytes         1.35T                 -
ata-CT1000MX500SSD1_2301E6992CB7_crypt  write_bytes        39.4G                 -
ata-CT1000MX500SSD1_2301E6992CB7_crypt  free_bytes         0                     -
ata-CT1000MX500SSD1_2301E6992CB7_crypt  claim_bytes        0                     -
ata-CT1000MX500SSD1_2301E6992CB7_crypt  trim_bytes         0                     -
ata-CT1000MX500SSD1_2301E6992CB7_crypt  removing           off                   -
ata-CT1000MX500SSD1_2301E6992CB7_crypt  allocating         -                     -
ata-CT1000MX500SSD1_2301E6992CB7_crypt  failfast           on                    default
ata-CT1000MX500SSD1_2301E6992CB7_crypt  checksum_n         -                     default
ata-CT1000MX500SSD1_2301E6992CB7_crypt  checksum_t         -                     default
ata-CT1000MX500SSD1_2301E6992CB7_crypt  io_n               -                     default
ata-CT1000MX500SSD1_2301E6992CB7_crypt  io_t               -                     default
ata-CT1000MX500SSD1_2301E6992CB7_crypt  slow_io_n          -                     default
ata-CT1000MX500SSD1_2301E6992CB7_crypt  slow_io_t          -                     default
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  capacity           0%                    -
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  state              ONLINE                -
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  guid               16950480214636800319  -
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  asize              929G                  -
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  psize              929G                  -
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  ashift             9                     -
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  size               0                     -
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  free               0                     -
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  allocated          0                     -
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  comment            -                     default
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  expandsize         -                     -
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  fragmentation      0%                    -
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  bootsize           0                     default
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  parity             0                     -
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  path               /dev/loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  -
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  devid              -                     default
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  physpath           -                     default
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  encpath            -                     default
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  fru                -                     default
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  parent             mirror-0              -
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  children           -                     default
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  numchildren        0                     -
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  read_errors        0                     -
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  write_errors       0                     -
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  checksum_errors    0                     -
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  initialize_errors  0                     -
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  null_ops           0                     -
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  read_ops           6.88M                 -
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  write_ops          12.5M                 -
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  free_ops           0                     -
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  claim_ops          0                     -
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  trim_ops           0                     -
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  null_bytes         0                     -
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  read_bytes         689G                  -
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  write_bytes        711G                  -
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  free_bytes         0                     -
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  claim_bytes        0                     -
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  trim_bytes         0                     -
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  removing           off                   -
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  allocating         -                     -
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  failfast           on                    default
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  checksum_n         -                     default
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  checksum_t         -                     default
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  io_n               -                     default
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  io_t               -                     default
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  slow_io_n          -                     default
loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop  slow_io_t          -                     default

zpool list:

root@HOST:/# zpool list
NAME    SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
rpool   928G   674G   254G        -         -    48%    72%  1.00x    ONLINE  -

zpool list -v:

root@HOST:/# zpool list -v
NAME                                             SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
rpool                                            928G   674G   254G        -         -    48%    72%  1.00x    ONLINE  -
  mirror-0                                       928G   674G   254G        -         -    48%  72.6%      -    ONLINE
    ata-CT1000MX500SSD1_2301E6992CB7_crypt       929G      -      -        -         -      -      -      -    ONLINE
    loop/ata-CT1000MX500SSD1_2302E69AD9D0_loop   929G      -      -        -         -      -      -      -    ONLINE

Include any warning/errors/backtraces from the system logs

luckylinux avatar Aug 19 '24 11:08 luckylinux

I've noticed that it works as a pool property (i.e. without "all-vdevs"), but not for individual vdevs.

amotin avatar Aug 19 '24 12:08 amotin

Surely enough I didn't test that one, but you are right:

zpool get fragmentation rpool:

NAME   PROPERTY       VALUE  SOURCE
rpool  fragmentation  48%    -

(Probably I did something that caused it to "jump" from 47% to 48%, anyways this is the correct Value)

Updated zpool list:

NAME    SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
rpool   928G   675G   253G        -         -    48%    72%  1.00x    ONLINE  -

luckylinux avatar Aug 19 '24 12:08 luckylinux