From: Qu Wenruo <quwenruo.btrfs@gmx.com>
To: Tomasz Pala <gotar@polanet.pl>, Hugo Mills <hugo@carfax.org.uk>
Cc: linux-btrfs@vger.kernel.org
Subject: Re: exclusive subvolume space missing
Date: Sat, 2 Dec 2017 09:05:50 +0800 [thread overview]
Message-ID: <2a14e451-c3fb-1e58-41dd-e98aeb5d24ec@gmx.com> (raw)
In-Reply-To: <20171202005338.GA20205@polanet.pl>
[-- Attachment #1.1: Type: text/plain, Size: 5480 bytes --]
>>> Now, the weird part for me is exclusive data count:
>>>
>>> # btrfs sub sh ./snapshot-171125
>>> [...]
>>> Subvolume ID: 388
>>> # btrfs fi du -s ./snapshot-171125
>>> Total Exclusive Set shared Filename
>>> 21.50GiB 63.35MiB 20.77GiB snapshot-171125
>>>
>>> How is that possible? This doesn't even remotely relate to 7.15 GiB
>>> from qgroup.~The same amount differs in total: 28.75-21.50=7.25 GiB.
>>> And the same happens with other snapshots, much more exclusive data
>>> shown in qgroup than actually found in files. So if not files, where
>>> is that space wasted? Metadata?
>>
>> Personally, I'd trust qgroups' output about as far as I could spit
>> Belgium(*).
>
> Well, there is something wrong here, as after removing the .ccache
> directories inside all the snapshots the 'excl' values decreased
> ...except for the last snapshot (the list below is short by ~40 snapshots
> that have 2 GB excl in total):
>
> qgroupid rfer excl
> -------- ---- ----
> 0/260 12.25GiB 3.22GiB from 170712 - first snapshot
> 0/312 17.54GiB 4.56GiB from 170811
> 0/366 25.59GiB 2.44GiB from 171028
> 0/370 23.27GiB 59.46MiB from 111118 - prev snapshot
> 0/388 21.69GiB 7.16GiB from 171125 - last snapshot
> 0/291 24.29GiB 9.77GiB default subvolume
You may need to manually sync the filesystem (trigger a transaction
commitment) to update qgroup accounting.
>
>
> [~/test/snapshot-171125]# du -sh .
> 15G .
>
>
> After changing back to ro I tested how much data really has changed
> between the previous and last snapshot:
>
> [~/test]# btrfs send -p snapshot-171118 snapshot-171125 | pv > /dev/null
> At subvol snapshot-171125
> 74.2MiB 0:00:32 [2.28MiB/s]
>
> This means there can't be 7 GiB of exclusive data in the last snapshot.
Mentioned before, sync the fs first before checking the qgroup numbers.
Or use --sync option along with qgroup show.
>
> Well, even btrfs send -p snapshot-170712 snapshot-171125 | pv > /dev/null
> 5.68GiB 0:03:23 [28.6MiB/s]
>
> I've created a new snapshot right now to compare it with 171125:
> 75.5MiB 0:00:43 [1.73MiB/s]
>
>
> OK, I could even compare all the snapshots in sequence:
>
> # for i in snapshot-17*; btrfs prop set $i ro true
> # p=''; for i in snapshot-17*; do [ -n "$p" ] && btrfs send -p "$p" "$i" | pv > /dev/null; p="$i" done
> 1.7GiB 0:00:15 [ 114MiB/s]
> 1.03GiB 0:00:38 [27.2MiB/s]
> 155MiB 0:00:08 [19.1MiB/s]
> 1.08GiB 0:00:47 [23.3MiB/s]
> 294MiB 0:00:29 [ 9.9MiB/s]
> 324MiB 0:00:42 [7.69MiB/s]
> 82.8MiB 0:00:06 [12.7MiB/s]
> 64.3MiB 0:00:05 [11.6MiB/s]
> 137MiB 0:00:07 [19.3MiB/s]
> 85.3MiB 0:00:13 [6.18MiB/s]
> 62.8MiB 0:00:19 [3.21MiB/s]
> 132MiB 0:00:42 [3.15MiB/s]
> 102MiB 0:00:42 [2.42MiB/s]
> 197MiB 0:00:50 [3.91MiB/s]
> 321MiB 0:01:01 [5.21MiB/s]
> 229MiB 0:00:18 [12.3MiB/s]
> 109MiB 0:00:11 [ 9.7MiB/s]
> 139MiB 0:00:14 [9.32MiB/s]
> 573MiB 0:00:35 [15.9MiB/s]
> 64.1MiB 0:00:30 [2.11MiB/s]
> 172MiB 0:00:11 [14.9MiB/s]
> 98.9MiB 0:00:07 [14.1MiB/s]
> 54MiB 0:00:08 [6.17MiB/s]
> 78.6MiB 0:00:02 [32.1MiB/s]
> 15.1MiB 0:00:01 [12.5MiB/s]
> 20.6MiB 0:00:00 [ 23MiB/s]
> 20.3MiB 0:00:00 [ 23MiB/s]
> 110MiB 0:00:14 [7.39MiB/s]
> 62.6MiB 0:00:11 [5.67MiB/s]
> 65.7MiB 0:00:08 [7.58MiB/s]
> 731MiB 0:00:42 [ 17MiB/s]
> 73.7MiB 0:00:29 [ 2.5MiB/s]
> 322MiB 0:00:53 [6.04MiB/s]
> 105MiB 0:00:35 [2.95MiB/s]
> 95.2MiB 0:00:36 [2.58MiB/s]
> 74.2MiB 0:00:30 [2.43MiB/s]
> 75.5MiB 0:00:46 [1.61MiB/s]
>
> This is 9.3 GB of total diffs between all the snapshots I got.
> Plus 15 GB of initial snapshot means there is about 25 GB used,
> while df reports twice the amount, way too much for overhead:
> /dev/sda2 64G 52G 11G 84% /
>
>
> # btrfs quota enable /
> # btrfs qgroup show /
> WARNING: quota disabled, qgroup data may be out of date
> [...]
> # btrfs quota enable / - for the second time!
> # btrfs qgroup show /
> WARNING: qgroup data inconsistent, rescan recommended
Please wait the rescan, or any number is not correct.
(Although it will only be less than actual occupied space)
It's highly recommended to read btrfs-quota(8) and btrfs-qgroup(8) to
ensure you understand all the limitation.
> [...]
> 0/428 15.96GiB 19.23MiB newly created (now) snapshot
>
>
>
> Assuming the qgroups output is bugus and the space isn't physically
> occupied (which is coherent with btrfs fi du output and my expectation)
> the question remains: why is that bogus-excl removed from available
> space as reported by df or btrfs fi df/usage? And how to reclaim it?
Already explained the difference in another thread.
Thanks,
Qu
>
>
> [~/test]# btrfs device usage /
> /dev/sda2, ID: 1
> Device size: 64.00GiB
> Device slack: 0.00B
> Data,single: 1.07GiB
> Data,RAID1: 55.97GiB
> Metadata,RAID1: 2.00GiB
> System,RAID1: 32.00MiB
> Unallocated: 4.93GiB
>
> /dev/sdb2, ID: 2
> Device size: 64.00GiB
> Device slack: 0.00B
> Data,single: 132.00MiB
> Data,RAID1: 55.97GiB
> Metadata,RAID1: 2.00GiB
> System,RAID1: 32.00MiB
> Unallocated: 5.87GiB
>
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 520 bytes --]
next prev parent reply other threads:[~2017-12-02 1:05 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-01 16:15 exclusive subvolume space missing Tomasz Pala
2017-12-01 21:27 ` Duncan
2017-12-01 21:36 ` Hugo Mills
2017-12-02 0:53 ` Tomasz Pala
2017-12-02 1:05 ` Qu Wenruo [this message]
2017-12-02 1:43 ` Tomasz Pala
2017-12-02 2:17 ` Qu Wenruo
2017-12-02 2:56 ` Duncan
2017-12-02 16:28 ` Tomasz Pala
2017-12-02 17:18 ` Tomasz Pala
2017-12-03 1:45 ` Duncan
2017-12-03 10:47 ` Adam Borowski
2017-12-04 5:11 ` Chris Murphy
2017-12-10 10:49 ` Tomasz Pala
2017-12-04 4:58 ` Chris Murphy
2017-12-02 0:27 ` Qu Wenruo
2017-12-02 1:23 ` Tomasz Pala
2017-12-02 1:47 ` Qu Wenruo
2017-12-02 2:21 ` Tomasz Pala
2017-12-02 2:35 ` Qu Wenruo
2017-12-02 9:33 ` Tomasz Pala
2017-12-04 0:34 ` Qu Wenruo
2017-12-10 11:27 ` Tomasz Pala
2017-12-10 15:49 ` Tomasz Pala
2017-12-10 23:44 ` Qu Wenruo
2017-12-11 0:24 ` Qu Wenruo
2017-12-11 11:40 ` Tomasz Pala
2017-12-12 0:50 ` Qu Wenruo
2017-12-15 8:22 ` Tomasz Pala
2017-12-16 3:21 ` Duncan
2017-12-05 18:47 ` How exclusive in parent qgroup is computed? (was: Re: exclusive subvolume space missing) Andrei Borzenkov
2017-12-05 23:57 ` How exclusive in parent qgroup is computed? Qu Wenruo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2a14e451-c3fb-1e58-41dd-e98aeb5d24ec@gmx.com \
--to=quwenruo.btrfs@gmx.com \
--cc=gotar@polanet.pl \
--cc=hugo@carfax.org.uk \
--cc=linux-btrfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).