Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 23 Jan 2013 15:37:29 +0100
From:      Romain =?iso-8859-1?Q?Tarti=E8re?= <romain@blogreen.org>
To:        freebsd-fs@freebsd.org
Subject:   ZFS deduplication
Message-ID:  <20130123143728.GA84218@blogreen.org>

next in thread | raw e-mail | index | archive | help

--bp/iNruPH9dso1Pn
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Hello

My machine has run on full ZFS for quite a few years now without major
problem, but suddenly started to reports inconsistent "statistics".  It
all started by `zfs list` reporting too much available space:

> # zfs list data
> NAME   USED  AVAIL  REFER  MOUNTPOINT
> data   117G  5,73E  4,52G  legacy

"data" being a mirror of two 500 GB disks, the available space is
obviously wrong.  The pool is healthy according to `zpool status`:

> # zpool status data
>   pool: data
>  state: ONLINE
>   scan: scrub repaired 0 in 5h1m with 0 errors on Tue Jan  1 09:52:50 2013
> config:
>=20
> 	NAME        STATE     READ WRITE CKSUM
> 	data        ONLINE       0     0     0
> 	  mirror-0  ONLINE       0     0     0
> 	    ada0p3  ONLINE       0     0     0
> 	    ada1p3  ONLINE       0     0     0
>=20
> errors: No known data errors

However, `zpool list` reports an inconsistent deduplication value (it
used to be ~1.4 AFAICR):

> zpool list data
> NAME   SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
> data   460G   101G   359G    21%  1386985.39x  ONLINE  -

At first I though about a process that might have created bazillion of
files with the same contents but df(1) does not report any filesystem
with an abnormal number of used inodes.  Likewise, df(1) does not show
a filesystem with a huge amount of data that could come from a single
file which content would be a repeated single block of data (but maybe
df(1) can't tell me that):

> df -i
> Filesystem                                                1K-blocks      =
       Used            Avail Capacity iused           ifree %iused  Mounted=
 on
> data                                                      645500584230938=
0   4735434 6455005837573946     0%   45457 281474976665199    0%   /
> devfs                                                                    =
1         1                0   100%       0               0  100%   /dev
> procfs                                                                   =
4         4                0   100%       1               0  100%   /proc
> fdescfs                                                                  =
1         1                0   100%       4           22497    0%   /dev/fd
> data/tmp                                                  645500583758072=
9      6783 6455005837573946     0%    2087 281474976708569    0%   /tmp
> data/usr                                                  645500585324521=
1  15671265 6455005837573946     0%  532871 281474976177785    0%   /usr
> tank                                                            192093743=
1 490426844       1430510587    26% 1315413      2861021175    0%   /usr/ho=
me
> data/poudriere/data                                       645500583943267=
1   1858725 6455005837573946     0%   11958 281474976698698    0%   /usr/lo=
cal/poudriere/data
> data/poudriere/8_3_RELEASE_amd64                          645500583838496=
9    811023 6455005837573946     0%   56480 281474976654176    0%   /usr/lo=
cal/poudriere/jails/8_3_RELEASE_amd64
> data/poudriere/9_0_RELEASE_amd64                          645500583861545=
4   1041508 6455005837573946     0%   66523 281474976644133    0%   /usr/lo=
cal/poudriere/jails/9_0_RELEASE_amd64
> data/poudriere/jails/9_1_RELEASE_amd64                    645500583865276=
0   1078814 6455005837573946     0%   67766 281474976642890    0%   /usr/lo=
cal/poudriere/jails/9_1_RELEASE_amd64
> data/poudriere/ports/default                              645500583806405=
5    490109 6455005837573946     0%  151864 281474976558792    0%   /usr/lo=
cal/poudriere/ports/default/ports
> data/poudriere/ports/gnome                                645500583806928=
3    495337 6455005837573946     0%  152758 281474976557898    0%   /usr/lo=
cal/poudriere/ports/gnome/ports
> data/poudriere/ports/mono                                 645500583806266=
3    488717 6455005837573946     0%  152411 281474976558245    0%   /usr/lo=
cal/poudriere/ports/mono/ports
> data/poudriere/ports/romain                               645500583806495=
6    491010 6455005837573946     0%  152030 281474976558626    0%   /usr/lo=
cal/poudriere/ports/romain/ports
> data/usr/main                                             645500583808621=
6    512270 6455005837573946     0%  164164 281474976546492    0%   /usr/po=
rts
> data/var                                                  645500585671870=
3  19144757 6455005837573946     0%  158141 281474976552515    0%   /var
> data/var/cache                                            645500583757404=
1        95 6455005837573946     0%      17 281474976710639    0%   /var/ca=
che
> data/var/cache/portshaker                                 645500583758706=
8     13122 6455005837573946     0%    4658 281474976705998    0%   /var/ca=
che/portshaker
> data/var/cache/portshaker/bsd_sharp                       645500583757854=
9      4603 6455005837573946     0%    1695 281474976708961    0%   /var/ca=
che/portshaker/bsd_sharp
> data/var/cache/portshaker/e                               645500583757523=
0      1284 6455005837573946     0%     977 281474976709679    0%   /var/ca=
che/portshaker/e
> data/var/cache/portshaker/freebsd_texlive                 645500583757418=
5       239 6455005837573946     0%     124 281474976710532    0%   /var/ca=
che/portshaker/freebsd_texlive
> data/var/cache/portshaker/freebsd_texlive_ports           645500583757853=
2      4586 6455005837573946     0%     289 281474976710367    0%   /var/ca=
che/portshaker/freebsd_texlive_ports
> data/var/cache/portshaker/freebsd_texlive_ports_marcuscom 645500583757406=
6       120 6455005837573946     0%      29 281474976710627    0%   /var/ca=
che/portshaker/freebsd_texlive_ports_marcuscom
> data/var/cache/portshaker/freebsd_texlive_releng          645500583761182=
6     37880 6455005837573946     0%   29335 281474976681321    0%   /var/ca=
che/portshaker/freebsd_texlive_releng
> data/var/cache/portshaker/ports                           645500583806211=
5    488169 6455005837573946     0%  152039 281474976558617    0%   /var/ca=
che/portshaker/ports
> data/var/cache/portshaker/ports/distfiles                 645500584283383=
7   5259891 6455005837573946     0%    2605 281474976708051    0%   /var/ca=
che/portshaker/ports/distfiles
> data/var/cache/portshaker/ports/packages                  645500585631547=
6  18741530 6455005837573946     0%   16799 281474976693857    0%   /var/ca=
che/portshaker/ports/packages
> data/var/cache/portshaker/redports                        645500583757448=
8       542 6455005837573946     0%     312 281474976710344    0%   /var/ca=
che/portshaker/redports
> data/var/cache/portshaker/redports:fneufneu               645500583757548=
2      1536 6455005837573946     0%     317 281474976710339    0%   /var/ca=
che/portshaker/redports:fneufneu
> data/var/cache/portshaker/redports:romain                 645500583757429=
5       349 6455005837573946     0%     226 281474976710430    0%   /var/ca=
che/portshaker/redports:romain
> data/var/cache/portshaker/redports:virtualbox             645500583757471=
7       771 6455005837573946     0%     444 281474976710212    0%   /var/ca=
che/portshaker/redports:virtualbox
> data/var/cache/portshaker/redports:xbmc                   645500583757397=
7        31 6455005837573946     0%       7 281474976710649    0%   /var/ca=
che/portshaker/redports:xbmc
> data/var/cache/portshaker/romain                          645500583757701=
1      3065 6455005837573946     0%     930 281474976709726    0%   /var/ca=
che/portshaker/romain
> data/var/cache/portshaker/woot                            645500583757406=
5       119 6455005837573946     0%      75 281474976710581    0%   /var/ca=
che/portshaker/woot
> data/var/jails                                            645500584133690=
1   3762955 6455005837573946     0%  517515 281474976193141    0%   /var/ja=
ils
> data/var/jails/base                                       645500583840364=
8    829702 6455005837573946     0%   11659 281474976698997    0%   /var/ja=
ils/base
> data/var/jails/r230911                                    645500583785718=
5    283239 6455005837573946     0%   11581 281474976699075    0%   /var/ja=
ils/r230911
> data/var/jails/texlive-test                               645500584460139=
8   7027452 6455005837573946     0%  496201 281474976214455    0%   /var/ja=
ils/texlive-test
> data/var/jails/texlive.home.sigabrt.org                   645500585084185=
3  13267907 6455005837573946     0%  377896 281474976332760    0%   /var/ja=
ils/texlive.home.sigabrt.org
> data/var/jails/texlive.home.sigabrt.org/ports             645500583823011=
9    656173 6455005837573946     0%  152331 281474976558325    0%   /var/ja=
ils/texlive.home.sigabrt.org/usr/ports
> data/var/jails/xbmc                                       645500584044239=
6   2868450 6455005837573946     0%  228330 281474976482326    0%   /var/ja=
ils/xbmc
> devfs                                                                    =
1         1                0   100%       0               0  100%   /var/na=
med/dev
> devfs                                                                    =
1         1                0   100%       0               0  100%   /var/ja=
ils/texlive.home.sigabrt.org/dev
> devfs                                                                    =
1         1                0   100%       0               0  100%   /var/ja=
ils/texlive/dev

Does anyone has an idea about what is going on?  Is there any way I can
know which deduplicated blocks are most used and in which file(s) to
locate the source of the problem?  Or is there any way to prove that
this reporting is wrong?

I'm running 9.1-STABLE r245578, with zpool v28 (I guess, no way to check
that?) and ZFS v5 for everything but a few snapshots (v4, v3; according
to `zfs get version`).

Thanks!
Romain

--=20
Romain Tarti=E8re <romain@blogreen.org>        http://romain.blogreen.org/
pgp: 8234 9A78 E7C0 B807 0B59  80FF BA4D 1D95 5112 336F (ID: 0x5112336F)
(plain text =3Dnon-HTML=3D PGP/GPG encrypted/signed e-mail much appreciated)

--bp/iNruPH9dso1Pn
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (FreeBSD)

iQGcBAEBAgAGBQJQ//WoAAoJELpNHZVREjNvC7ML/AsIr8KotegWtEx7ka/0IgeE
jj7nyYtdAVdjRkIlgHaHL2vIKZy/6Csf4tE2V56k/hHAHAWEYMHW2At7nKu9mmUQ
CqCjGAf0Pir8ZNNa5PYIA+Rw9HkE4KjHWz2COuyw99IFoFwNO/eIFs2MHG6x04+M
n+GJ0Ra/RUJnttCfsSS5ZmCA+PzVkqG0oztzRZfGGgkJBTg7B//Y3Klp7VpiE2Sc
YEh5IzWxWNMbOyzRqr/4EnBD0xJF1H+WUMmWo+J+Jgn6VD9t8tb1lohzp2/6BosX
l9kumW9WUHcgMQtPwmU5mNIZimfzR0BYickMY77pzi8Y+UV6YB3+rSgkAk6sQphw
DyBUsAJXm7p8ZzpugpBjGMenOuIo+3mQDBmmX8DqkVQEDGPSMO2C4dTSN5jOWG3X
vNecwwQnfQs1dL0nXvwENYZ/uDoD8n64r4OIuqfBtv+TNT6CzAYn0KZTr/Cnl/Oo
bxGYvDZhnLDCd2vKD7DkgxXL/F4GfS5dz9SK+qecbg==
=Y1Ng
-----END PGP SIGNATURE-----

--bp/iNruPH9dso1Pn--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130123143728.GA84218>