Le 2 mars 2019 21:28:29 Andrei Borzenkov <arvidj...@gmail.com> a écrit :

02.03.2019 22:06, Stéphane Lesimple пишет:
Hi!

I've been using btrfs as my main NAS filesystem for a bunch of years
now, and I always found that managing dozens of subvolumes having dozens
of snapshots each was not really straightforward, especially when trying
to get an overview of "what's taking space on my filesystem". I was
missing the niceness of the "zfs list" command, which does that quite well.

So I've started to write a wrapper around btrfs qgroup show and btrfs fi
df (then btrfs fi usage when it got out), to implement this broad
overview of my filesystem I was missing so much.
Adding some features along the way, I thought that after all it might
also be useful to others than me!

As stdout is better than a thousand words, here's for example how it can
show you a complex hierarchy of intricated snapshots:

root@nas:~# btrfs-list /mnt/a
NAME                                       TYPE     REFER      USED
MOUNTPOINT
4582dacf                                     fs         -     0.00
(1002.88M free)
  [main]                               mainvol    16.00k    16.00k /mnt/a
  sub1                                  subvol    16.00k    16.00k
     sub1/.snap1                          snap    16.00k    16.00k
     sub1/.snap2                          snap    16.00k    16.00k
     sub1/subsub1                         snap    16.00k    16.00k
        sub1/subsub1/.snap3               snap    16.00k    16.00k
        sub1/subsub1/subsubsub1           snap    16.00k    16.00k
           sub1/subsub1/subsubsubsub1     snap    16.00k    16.00k

btrfs does not have anything resembling USED in zfs, so I'm afraid this
will be confusing to anyone coming from zfs. In zfs datasets are
hierarchical (including snapshots) so USED on every level is exactly the
amount of space that will become available in parent dataset if this one
is destroyed. This does not matter much without quota (as all datasets
share one common pool of free space) but becomes quite visible as soon
as you restrict dataset space consumption. In btrfs every subvolume is
independent; what you show as USED is exclusive space; deleting
subvolume does not mean its exclusively consumed space will be now
accounted as available in another subvolume.

Showing hierarchical list with USED column creates false expectations;
I'd rather call it EXCL to make its meaning clear.

You're right. I personally just use the quota feature to track the readonly snapshots that I use as backups, hence I have only the auto-generated 0/ level qgroups on my filesystem.

As USED could be confusing in more complex setups I've replaced this terminology by EXCL as you mentioned, and adjusted the help text accordingly. Thanks!




That said, tool that lists qgroups with volume names is surely welcome.

Or how it can help you find big snapshots that you might want to get rid
of if you're running out of space:

root@nas:~# btrfs-list --snap-min-used 4G --snap-only /tank
NAME                                                          TYPE
REFER      USED MOUNTPOINT
     backups/.snaps/skyline/20130213_231649_lastskyline    rosnap
22.52G    19.58G
     backups/.snaps/box/20171231_221207_monthly.12         rosnap
88.73G     4.96G
     backups/.snaps/box/20180130_221209_monthly.11         rosnap
91.25G     4.90G
     backups/.snaps/box/20180307_154215_monthly.10         rosnap
96.28G    10.72G
     backups/.snaps/box/20190120_193004_weekly.3           rosnap
56.45G     4.25G
     backups/.snaps/nasroot/20180122_091325_monthly.12     rosnap
34.65G    10.79G
     backups/.snaps/nasroot/20180221_092311_monthly.11     rosnap
31.96G     4.98G
     backups/.snaps/nasroot/20180323_092734_monthly.10     rosnap
33.69G     7.05G
     backups/.snaps/nasroot/20180820_205559_monthly.5      rosnap
31.74G     5.37G
     .syncthing-bkp                                        rosnap
40.48G     8.15G

Want to give it a try? Here you are:
https://github.com/speed47/btrfs-list

There are a couple snapshots there too, to give you a rough idea of how
it looks like (yes, it also has nice colors)

Happy btrfs weekend!



Reply via email to