* snapshot space use @ 2015-04-09 0:39 Russell Coker 2015-04-09 0:45 ` Qu Wenruo 2015-04-10 7:55 ` Russell Coker 0 siblings, 2 replies; 12+ messages in thread From: Russell Coker @ 2015-04-09 0:39 UTC (permalink / raw) To: BTRFS # zfs list -t snapshot NAME USED AVAIL REFER MOUNTPOINT hetz0/be0-mail@2015-03-10 2.88G - 387G - hetz0/be0-mail@2015-03-11 1.12G - 388G - hetz0/be0-mail@2015-03-12 1.11G - 388G - hetz0/be0-mail@2015-03-13 1.19G - 388G - hetz0/be0-mail@2015-03-14 1.02G - 388G - hetz0/be0-mail@2015-03-15 989M - 386G - Is there any way to do something similar to the above ZFS command? It's handy to know which snapshots are taking up the most space, especially when multiple subvols are being snapshotted. -- My Main Blog http://etbe.coker.com.au/ My Documents Blog http://doc.coker.com.au/ ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: snapshot space use 2015-04-09 0:39 snapshot space use Russell Coker @ 2015-04-09 0:45 ` Qu Wenruo 2015-04-09 9:02 ` Piotr Szymaniak 2015-04-09 22:01 ` Justin Maggard 2015-04-10 7:55 ` Russell Coker 1 sibling, 2 replies; 12+ messages in thread From: Qu Wenruo @ 2015-04-09 0:45 UTC (permalink / raw) To: russell, BTRFS Hi, You can use btrfs quota feature to do it. Like this: # btrfs quota enable <MNT_POINT> # btrfs quota rescan -w <MNT_POINT> # btrfs qgroup show -prce <MNT_POINT> qgroupid rfer excl max_rfer max_excl parent child -------- ---- ---- -------- -------- ------ ----- 0/5 2248704 12288 0 0 --- --- 0/256 5509120 3272704 0 0 --- --- rfer is all the space the subvolume takes. excl is the exclusive space the subvolume takes. You can also refer to 'btrfs-quota'(8) and 'btrfs-qgroup'(8), Also the following wiki can help: https://btrfs.wiki.kernel.org/index.php/Quota_support NOTE: quota is not so stable and has some problem, but should give you enough info. Thanks, Qu > # zfs list -t snapshot > NAME USED AVAIL REFER MOUNTPOINT > hetz0/be0-mail@2015-03-10 2.88G - 387G - > hetz0/be0-mail@2015-03-11 1.12G - 388G - > hetz0/be0-mail@2015-03-12 1.11G - 388G - > hetz0/be0-mail@2015-03-13 1.19G - 388G - > hetz0/be0-mail@2015-03-14 1.02G - 388G - > hetz0/be0-mail@2015-03-15 989M - 386G - > > Is there any way to do something similar to the above ZFS command? It's handy > to know which snapshots are taking up the most space, especially when multiple > subvols are being snapshotted. > ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: snapshot space use 2015-04-09 0:45 ` Qu Wenruo @ 2015-04-09 9:02 ` Piotr Szymaniak 2015-04-09 9:26 ` Qu Wenruo 2015-04-09 22:01 ` Justin Maggard 1 sibling, 1 reply; 12+ messages in thread From: Piotr Szymaniak @ 2015-04-09 9:02 UTC (permalink / raw) To: Qu Wenruo; +Cc: BTRFS [-- Attachment #1: Type: text/plain, Size: 514 bytes --] On Thu, Apr 09, 2015 at 08:45:21AM +0800, Qu Wenruo wrote: > *snip* > NOTE: quota is not so stable and has some problem, but should give > you enough info. Those are related to actually using quota or can also hit you when you want to use it just for things like this snapshot space use? Piotr Szymaniak. -- - Oo, jesteś bystrzejszy, niż się wydaje. Przechodziłeś jakieś szkolenie antyterrorystyczne? - W pewnym sensie tak. Byłem żonaty. -- Nelson DeMille, "The Lion's Game" [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 819 bytes --] ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: snapshot space use 2015-04-09 9:02 ` Piotr Szymaniak @ 2015-04-09 9:26 ` Qu Wenruo 0 siblings, 0 replies; 12+ messages in thread From: Qu Wenruo @ 2015-04-09 9:26 UTC (permalink / raw) To: Piotr Szymaniak; +Cc: BTRFS -------- Original Message -------- Subject: Re: snapshot space use From: Piotr Szymaniak <szarpaj@grubelek.pl> To: Qu Wenruo <quwenruo@cn.fujitsu.com> Date: 2015年04月09日 17:02 > On Thu, Apr 09, 2015 at 08:45:21AM +0800, Qu Wenruo wrote: >> *snip* >> NOTE: quota is not so stable and has some problem, but should give >> you enough info. > > Those are related to actually using quota or can also hit you when you > want to use it just for things like this snapshot space use? Using quota has more problems. Like exceeding quota make you unable to delete any file(like a deadlock). Your use case, just showing how much space you used, may still hit some unusual problem like inaccurate number or even minus number, with performance drop. But overall, it should be OK and meets your need. Thanks, Qu > > > Piotr Szymaniak. > ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: snapshot space use 2015-04-09 0:45 ` Qu Wenruo 2015-04-09 9:02 ` Piotr Szymaniak @ 2015-04-09 22:01 ` Justin Maggard 2015-04-09 22:24 ` Hugo Mills 1 sibling, 1 reply; 12+ messages in thread From: Justin Maggard @ 2015-04-09 22:01 UTC (permalink / raw) To: Qu Wenruo; +Cc: russell, BTRFS On Wed, Apr 8, 2015 at 5:45 PM, Qu Wenruo <quwenruo@cn.fujitsu.com> wrote: > Hi, > > You can use btrfs quota feature to do it. > Like this: > > # btrfs quota enable <MNT_POINT> > # btrfs quota rescan -w <MNT_POINT> > # btrfs qgroup show -prce <MNT_POINT> > qgroupid rfer excl max_rfer max_excl parent child > -------- ---- ---- -------- -------- ------ ----- > 0/5 2248704 12288 0 0 --- --- > 0/256 5509120 3272704 0 0 --- --- > > > rfer is all the space the subvolume takes. > excl is the exclusive space the subvolume takes. > Yes, but this isn't as useful as it sounds if you have more than one snapshot. Because if a file is included in at least two snapshots, it's no longer exclusive. So AFAICT even with btrfs qgroups, you still cannot answer the question "How much space are my snapshots using?" for a given subvolume, unless you have only one snapshot. But I'd be happy to be informed otherwise. :-) -Justin > You can also refer to 'btrfs-quota'(8) and 'btrfs-qgroup'(8), > Also the following wiki can help: > https://btrfs.wiki.kernel.org/index.php/Quota_support > > NOTE: quota is not so stable and has some problem, but should give > you enough info. > > Thanks, > Qu > >> # zfs list -t snapshot >> NAME USED AVAIL REFER MOUNTPOINT >> hetz0/be0-mail@2015-03-10 2.88G - 387G - >> hetz0/be0-mail@2015-03-11 1.12G - 388G - >> hetz0/be0-mail@2015-03-12 1.11G - 388G - >> hetz0/be0-mail@2015-03-13 1.19G - 388G - >> hetz0/be0-mail@2015-03-14 1.02G - 388G - >> hetz0/be0-mail@2015-03-15 989M - 386G - >> >> Is there any way to do something similar to the above ZFS command? It's >> handy >> to know which snapshots are taking up the most space, especially when >> multiple >> subvols are being snapshotted. >> > -- > To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: snapshot space use 2015-04-09 22:01 ` Justin Maggard @ 2015-04-09 22:24 ` Hugo Mills 2015-04-09 23:27 ` Justin Maggard 0 siblings, 1 reply; 12+ messages in thread From: Hugo Mills @ 2015-04-09 22:24 UTC (permalink / raw) To: Justin Maggard; +Cc: Qu Wenruo, russell, BTRFS [-- Attachment #1: Type: text/plain, Size: 3224 bytes --] On Thu, Apr 09, 2015 at 03:01:55PM -0700, Justin Maggard wrote: > On Wed, Apr 8, 2015 at 5:45 PM, Qu Wenruo <quwenruo@cn.fujitsu.com> wrote: > > Hi, > > > > You can use btrfs quota feature to do it. > > Like this: > > > > # btrfs quota enable <MNT_POINT> > > # btrfs quota rescan -w <MNT_POINT> > > # btrfs qgroup show -prce <MNT_POINT> > > qgroupid rfer excl max_rfer max_excl parent child > > -------- ---- ---- -------- -------- ------ ----- > > 0/5 2248704 12288 0 0 --- --- > > 0/256 5509120 3272704 0 0 --- --- > > > > > > rfer is all the space the subvolume takes. > > excl is the exclusive space the subvolume takes. > > > > Yes, but this isn't as useful as it sounds if you have more than one > snapshot. Because if a file is included in at least two snapshots, > it's no longer exclusive. So AFAICT even with btrfs qgroups, you > still cannot answer the question "How much space are my snapshots > using?" for a given subvolume, unless you have only one snapshot. But > I'd be happy to be informed otherwise. :-) There are basically two useful answers to that question, depending on how the question is specified, exactly: 1) How much space would I use if I copied this subvolume to a different filesystem? 2) How much space would I free up if I deleted this subvolume? Part 1 is the rfer answer. Part 2 is the excl answer. Which of these do you mean by "How much space are my snapshots using?". The question as posed is highly ambiguous, and needs considerably more precision before it can be answered. If you can pose the question more precisely, you might wish to ask one of those questions about N subvolumes as a group -- this is where(*) you would define a qgroup covering the subvols you're interested in, and then use the above interface to ask the question for the group of subvols as a whole. Hugo. (*) I'm not an expert in qgroups. I may have the idea completely wrong, but I think this is the right kind of approach. > -Justin > > > You can also refer to 'btrfs-quota'(8) and 'btrfs-qgroup'(8), > > Also the following wiki can help: > > https://btrfs.wiki.kernel.org/index.php/Quota_support > > > > NOTE: quota is not so stable and has some problem, but should give > > you enough info. > > > > Thanks, > > Qu > > > >> # zfs list -t snapshot > >> NAME USED AVAIL REFER MOUNTPOINT > >> hetz0/be0-mail@2015-03-10 2.88G - 387G - > >> hetz0/be0-mail@2015-03-11 1.12G - 388G - > >> hetz0/be0-mail@2015-03-12 1.11G - 388G - > >> hetz0/be0-mail@2015-03-13 1.19G - 388G - > >> hetz0/be0-mail@2015-03-14 1.02G - 388G - > >> hetz0/be0-mail@2015-03-15 989M - 386G - > >> > >> Is there any way to do something similar to the above ZFS command? It's > >> handy > >> to know which snapshots are taking up the most space, especially when > >> multiple > >> subvols are being snapshotted. > >> -- Hugo Mills | You've read the project plan. Forget that. We're hugo@... carfax.org.uk | going to Do Stuff and Have Fun doing it. http://carfax.org.uk/ | PGP: E2AB1DE4 | Jeremy Frey [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: snapshot space use 2015-04-09 22:24 ` Hugo Mills @ 2015-04-09 23:27 ` Justin Maggard 2015-04-09 23:39 ` Hugo Mills 0 siblings, 1 reply; 12+ messages in thread From: Justin Maggard @ 2015-04-09 23:27 UTC (permalink / raw) To: Hugo Mills, Justin Maggard, Qu Wenruo, russell, BTRFS On Thu, Apr 9, 2015 at 3:24 PM, Hugo Mills <hugo@carfax.org.uk> wrote: > On Thu, Apr 09, 2015 at 03:01:55PM -0700, Justin Maggard wrote: >> On Wed, Apr 8, 2015 at 5:45 PM, Qu Wenruo <quwenruo@cn.fujitsu.com> wrote: >> > Hi, >> > >> > You can use btrfs quota feature to do it. >> > Like this: >> > >> > # btrfs quota enable <MNT_POINT> >> > # btrfs quota rescan -w <MNT_POINT> >> > # btrfs qgroup show -prce <MNT_POINT> >> > qgroupid rfer excl max_rfer max_excl parent child >> > -------- ---- ---- -------- -------- ------ ----- >> > 0/5 2248704 12288 0 0 --- --- >> > 0/256 5509120 3272704 0 0 --- --- >> > >> > >> > rfer is all the space the subvolume takes. >> > excl is the exclusive space the subvolume takes. >> > >> >> Yes, but this isn't as useful as it sounds if you have more than one >> snapshot. Because if a file is included in at least two snapshots, >> it's no longer exclusive. So AFAICT even with btrfs qgroups, you >> still cannot answer the question "How much space are my snapshots >> using?" for a given subvolume, unless you have only one snapshot. But >> I'd be happy to be informed otherwise. :-) > > There are basically two useful answers to that question, depending > on how the question is specified, exactly: > > 1) How much space would I use if I copied this subvolume to a > different filesystem? > > 2) How much space would I free up if I deleted this subvolume? > > Part 1 is the rfer answer. Part 2 is the excl answer. > > Which of these do you mean by "How much space are my snapshots > using?". The question as posed is highly ambiguous, and needs > considerably more precision before it can be answered. > > If you can pose the question more precisely, you might wish to ask > one of those questions about N subvolumes as a group -- this is > where(*) you would define a qgroup covering the subvols you're > interested in, and then use the above interface to ask the question > for the group of subvols as a whole. To be more precise, let's consider an example, where we have a subvolume named "stuff"; and two snapshots of "stuff", "snap1" and "snap2". So the question I'm posing is: How much space would I free up if I were to remove my snapshots, "snap1" and "snap2", but keep "stuff" intact? I can't use the rfer value from snap1 and snap2, because in general most of that space is shared by "stuff" and would not be freed. I could look at the excl column for snap1 and snap2 and add them up; but if they shared extents with each other (and not with "stuff"), those extents are no longer exclusive, and thus not accounted for. So I would have to delete either snap1 or snap2 in order to answer my question using qgroups. I can't think of a way to define a qgroup that would be able to answer my question, although I'm admittedly no expert in qgroups either. -Justin > > Hugo. > > (*) I'm not an expert in qgroups. I may have the idea completely > wrong, but I think this is the right kind of approach. > > >> -Justin >> >> > You can also refer to 'btrfs-quota'(8) and 'btrfs-qgroup'(8), >> > Also the following wiki can help: >> > https://btrfs.wiki.kernel.org/index.php/Quota_support >> > >> > NOTE: quota is not so stable and has some problem, but should give >> > you enough info. >> > >> > Thanks, >> > Qu >> > >> >> # zfs list -t snapshot >> >> NAME USED AVAIL REFER MOUNTPOINT >> >> hetz0/be0-mail@2015-03-10 2.88G - 387G - >> >> hetz0/be0-mail@2015-03-11 1.12G - 388G - >> >> hetz0/be0-mail@2015-03-12 1.11G - 388G - >> >> hetz0/be0-mail@2015-03-13 1.19G - 388G - >> >> hetz0/be0-mail@2015-03-14 1.02G - 388G - >> >> hetz0/be0-mail@2015-03-15 989M - 386G - >> >> >> >> Is there any way to do something similar to the above ZFS command? It's >> >> handy >> >> to know which snapshots are taking up the most space, especially when >> >> multiple >> >> subvols are being snapshotted. >> >> > > -- > Hugo Mills | You've read the project plan. Forget that. We're > hugo@... carfax.org.uk | going to Do Stuff and Have Fun doing it. > http://carfax.org.uk/ | > PGP: E2AB1DE4 | Jeremy Frey ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: snapshot space use 2015-04-09 23:27 ` Justin Maggard @ 2015-04-09 23:39 ` Hugo Mills 2015-04-10 0:32 ` Dongsheng Yang 0 siblings, 1 reply; 12+ messages in thread From: Hugo Mills @ 2015-04-09 23:39 UTC (permalink / raw) To: Justin Maggard; +Cc: Qu Wenruo, russell, BTRFS [-- Attachment #1: Type: text/plain, Size: 4614 bytes --] On Thu, Apr 09, 2015 at 04:27:08PM -0700, Justin Maggard wrote: > On Thu, Apr 9, 2015 at 3:24 PM, Hugo Mills <hugo@carfax.org.uk> wrote: > > On Thu, Apr 09, 2015 at 03:01:55PM -0700, Justin Maggard wrote: > >> On Wed, Apr 8, 2015 at 5:45 PM, Qu Wenruo <quwenruo@cn.fujitsu.com> wrote: > >> > Hi, > >> > > >> > You can use btrfs quota feature to do it. > >> > Like this: > >> > > >> > # btrfs quota enable <MNT_POINT> > >> > # btrfs quota rescan -w <MNT_POINT> > >> > # btrfs qgroup show -prce <MNT_POINT> > >> > qgroupid rfer excl max_rfer max_excl parent child > >> > -------- ---- ---- -------- -------- ------ ----- > >> > 0/5 2248704 12288 0 0 --- --- > >> > 0/256 5509120 3272704 0 0 --- --- > >> > > >> > > >> > rfer is all the space the subvolume takes. > >> > excl is the exclusive space the subvolume takes. > >> > > >> > >> Yes, but this isn't as useful as it sounds if you have more than one > >> snapshot. Because if a file is included in at least two snapshots, > >> it's no longer exclusive. So AFAICT even with btrfs qgroups, you > >> still cannot answer the question "How much space are my snapshots > >> using?" for a given subvolume, unless you have only one snapshot. But > >> I'd be happy to be informed otherwise. :-) > > > > There are basically two useful answers to that question, depending > > on how the question is specified, exactly: > > > > 1) How much space would I use if I copied this subvolume to a > > different filesystem? > > > > 2) How much space would I free up if I deleted this subvolume? > > > > Part 1 is the rfer answer. Part 2 is the excl answer. > > > > Which of these do you mean by "How much space are my snapshots > > using?". The question as posed is highly ambiguous, and needs > > considerably more precision before it can be answered. > > > > If you can pose the question more precisely, you might wish to ask > > one of those questions about N subvolumes as a group -- this is > > where(*) you would define a qgroup covering the subvols you're > > interested in, and then use the above interface to ask the question > > for the group of subvols as a whole. > > To be more precise, let's consider an example, where we have a > subvolume named "stuff"; and two snapshots of "stuff", "snap1" and > "snap2". So the question I'm posing is: > > How much space would I free up if I were to remove my snapshots, > "snap1" and "snap2", but keep "stuff" intact? > > I can't use the rfer value from snap1 and snap2, because in general > most of that space is shared by "stuff" and would not be freed. I > could look at the excl column for snap1 and snap2 and add them up; but > if they shared extents with each other (and not with "stuff"), those > extents are no longer exclusive, and thus not accounted for. So I > would have to delete either snap1 or snap2 in order to answer my > question using qgroups. > > I can't think of a way to define a qgroup that would be able to answer > my question, although I'm admittedly no expert in qgroups either. I think you'd define a qgroup comtaining snap1 and snap2, and look at the excl value. Anyone out there with qgroups experience who can tell us how/whether that would do the job? Hugo. > -Justin > > > > > Hugo. > > > > (*) I'm not an expert in qgroups. I may have the idea completely > > wrong, but I think this is the right kind of approach. > > > > > >> -Justin > >> > >> > You can also refer to 'btrfs-quota'(8) and 'btrfs-qgroup'(8), > >> > Also the following wiki can help: > >> > https://btrfs.wiki.kernel.org/index.php/Quota_support > >> > > >> > NOTE: quota is not so stable and has some problem, but should give > >> > you enough info. > >> > > >> > Thanks, > >> > Qu > >> > > >> >> # zfs list -t snapshot > >> >> NAME USED AVAIL REFER MOUNTPOINT > >> >> hetz0/be0-mail@2015-03-10 2.88G - 387G - > >> >> hetz0/be0-mail@2015-03-11 1.12G - 388G - > >> >> hetz0/be0-mail@2015-03-12 1.11G - 388G - > >> >> hetz0/be0-mail@2015-03-13 1.19G - 388G - > >> >> hetz0/be0-mail@2015-03-14 1.02G - 388G - > >> >> hetz0/be0-mail@2015-03-15 989M - 386G - > >> >> > >> >> Is there any way to do something similar to the above ZFS command? It's > >> >> handy > >> >> to know which snapshots are taking up the most space, especially when > >> >> multiple > >> >> subvols are being snapshotted. > >> >> > > -- Hugo Mills | Great films about cricket: The Third Man hugo@... carfax.org.uk | http://carfax.org.uk/ | PGP: E2AB1DE4 | [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: snapshot space use 2015-04-09 23:39 ` Hugo Mills @ 2015-04-10 0:32 ` Dongsheng Yang 2015-04-10 0:40 ` Justin Maggard 0 siblings, 1 reply; 12+ messages in thread From: Dongsheng Yang @ 2015-04-10 0:32 UTC (permalink / raw) To: Hugo Mills, Justin Maggard, Qu Wenruo, russell, BTRFS On 04/10/2015 07:39 AM, Hugo Mills wrote: > On Thu, Apr 09, 2015 at 04:27:08PM -0700, Justin Maggard wrote: >> On Thu, Apr 9, 2015 at 3:24 PM, Hugo Mills <hugo@carfax.org.uk> wrote: >>> On Thu, Apr 09, 2015 at 03:01:55PM -0700, Justin Maggard wrote: >>>> On Wed, Apr 8, 2015 at 5:45 PM, Qu Wenruo <quwenruo@cn.fujitsu.com> wrote: >>>>> Hi, >>>>> >>>>> You can use btrfs quota feature to do it. >>>>> Like this: >>>>> >>>>> # btrfs quota enable <MNT_POINT> >>>>> # btrfs quota rescan -w <MNT_POINT> >>>>> # btrfs qgroup show -prce <MNT_POINT> >>>>> qgroupid rfer excl max_rfer max_excl parent child >>>>> -------- ---- ---- -------- -------- ------ ----- >>>>> 0/5 2248704 12288 0 0 --- --- >>>>> 0/256 5509120 3272704 0 0 --- --- >>>>> >>>>> >>>>> rfer is all the space the subvolume takes. >>>>> excl is the exclusive space the subvolume takes. >>>>> >>>> Yes, but this isn't as useful as it sounds if you have more than one >>>> snapshot. Because if a file is included in at least two snapshots, >>>> it's no longer exclusive. So AFAICT even with btrfs qgroups, you >>>> still cannot answer the question "How much space are my snapshots >>>> using?" for a given subvolume, unless you have only one snapshot. But >>>> I'd be happy to be informed otherwise. :-) >>> There are basically two useful answers to that question, depending >>> on how the question is specified, exactly: >>> >>> 1) How much space would I use if I copied this subvolume to a >>> different filesystem? >>> >>> 2) How much space would I free up if I deleted this subvolume? >>> >>> Part 1 is the rfer answer. Part 2 is the excl answer. >>> >>> Which of these do you mean by "How much space are my snapshots >>> using?". The question as posed is highly ambiguous, and needs >>> considerably more precision before it can be answered. >>> >>> If you can pose the question more precisely, you might wish to ask >>> one of those questions about N subvolumes as a group -- this is >>> where(*) you would define a qgroup covering the subvols you're >>> interested in, and then use the above interface to ask the question >>> for the group of subvols as a whole. >> To be more precise, let's consider an example, where we have a >> subvolume named "stuff"; and two snapshots of "stuff", "snap1" and >> "snap2". So the question I'm posing is: >> >> How much space would I free up if I were to remove my snapshots, >> "snap1" and "snap2", but keep "stuff" intact? >> >> I can't use the rfer value from snap1 and snap2, because in general >> most of that space is shared by "stuff" and would not be freed. I >> could look at the excl column for snap1 and snap2 and add them up; but >> if they shared extents with each other (and not with "stuff"), those >> extents are no longer exclusive, and thus not accounted for. So I >> would have to delete either snap1 or snap2 in order to answer my >> question using qgroups. >> >> I can't think of a way to define a qgroup that would be able to answer >> my question, although I'm admittedly no expert in qgroups either. > I think you'd define a qgroup comtaining snap1 and snap2, and look > at the excl value. Agreed, This is a possible method to get what you want. We can create a qgroup in a higher level, as a pool. # btrfs qgroup create 1/0 /MNT And then assign your snapshots into this qgroup. # btrfs qgroup assign 0/xxx 1/0 /MNT # btrfs qgroup assign 0/xxx 1/0 /MNT *Considering we can not update the quota number automatically in moving qgroup we need a rescan here. # btrfs quota rescan -w /MNT Then you can get the information you want by #btrfs qgroup show -prce /MNT Thanx Yang > Anyone out there with qgroups experience who can > tell us how/whether that would do the job? > > Hugo. > >> -Justin >> >>> Hugo. >>> >>> (*) I'm not an expert in qgroups. I may have the idea completely >>> wrong, but I think this is the right kind of approach. >>> >>> >>>> -Justin >>>> >>>>> You can also refer to 'btrfs-quota'(8) and 'btrfs-qgroup'(8), >>>>> Also the following wiki can help: >>>>> https://btrfs.wiki.kernel.org/index.php/Quota_support >>>>> >>>>> NOTE: quota is not so stable and has some problem, but should give >>>>> you enough info. >>>>> >>>>> Thanks, >>>>> Qu >>>>> >>>>>> # zfs list -t snapshot >>>>>> NAME USED AVAIL REFER MOUNTPOINT >>>>>> hetz0/be0-mail@2015-03-10 2.88G - 387G - >>>>>> hetz0/be0-mail@2015-03-11 1.12G - 388G - >>>>>> hetz0/be0-mail@2015-03-12 1.11G - 388G - >>>>>> hetz0/be0-mail@2015-03-13 1.19G - 388G - >>>>>> hetz0/be0-mail@2015-03-14 1.02G - 388G - >>>>>> hetz0/be0-mail@2015-03-15 989M - 386G - >>>>>> >>>>>> Is there any way to do something similar to the above ZFS command? It's >>>>>> handy >>>>>> to know which snapshots are taking up the most space, especially when >>>>>> multiple >>>>>> subvols are being snapshotted. >>>>>> ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: snapshot space use 2015-04-10 0:32 ` Dongsheng Yang @ 2015-04-10 0:40 ` Justin Maggard 2015-04-10 0:48 ` Qu Wenruo 0 siblings, 1 reply; 12+ messages in thread From: Justin Maggard @ 2015-04-10 0:40 UTC (permalink / raw) To: Dongsheng Yang; +Cc: Hugo Mills, Qu Wenruo, russell, BTRFS On Thu, Apr 9, 2015 at 5:32 PM, Dongsheng Yang <yangds.fnst@cn.fujitsu.com> wrote: > On 04/10/2015 07:39 AM, Hugo Mills wrote: >> >> On Thu, Apr 09, 2015 at 04:27:08PM -0700, Justin Maggard wrote: >>> >>> On Thu, Apr 9, 2015 at 3:24 PM, Hugo Mills <hugo@carfax.org.uk> wrote: >>>> >>>> On Thu, Apr 09, 2015 at 03:01:55PM -0700, Justin Maggard wrote: >>>>> >>>>> On Wed, Apr 8, 2015 at 5:45 PM, Qu Wenruo <quwenruo@cn.fujitsu.com> >>>>> wrote: >>>>>> >>>>>> Hi, >>>>>> >>>>>> You can use btrfs quota feature to do it. >>>>>> Like this: >>>>>> >>>>>> # btrfs quota enable <MNT_POINT> >>>>>> # btrfs quota rescan -w <MNT_POINT> >>>>>> # btrfs qgroup show -prce <MNT_POINT> >>>>>> qgroupid rfer excl max_rfer max_excl parent child >>>>>> -------- ---- ---- -------- -------- ------ ----- >>>>>> 0/5 2248704 12288 0 0 --- --- >>>>>> 0/256 5509120 3272704 0 0 --- --- >>>>>> >>>>>> >>>>>> rfer is all the space the subvolume takes. >>>>>> excl is the exclusive space the subvolume takes. >>>>>> >>>>> Yes, but this isn't as useful as it sounds if you have more than one >>>>> snapshot. Because if a file is included in at least two snapshots, >>>>> it's no longer exclusive. So AFAICT even with btrfs qgroups, you >>>>> still cannot answer the question "How much space are my snapshots >>>>> using?" for a given subvolume, unless you have only one snapshot. But >>>>> I'd be happy to be informed otherwise. :-) >>>> >>>> There are basically two useful answers to that question, depending >>>> on how the question is specified, exactly: >>>> >>>> 1) How much space would I use if I copied this subvolume to a >>>> different filesystem? >>>> >>>> 2) How much space would I free up if I deleted this subvolume? >>>> >>>> Part 1 is the rfer answer. Part 2 is the excl answer. >>>> >>>> Which of these do you mean by "How much space are my snapshots >>>> using?". The question as posed is highly ambiguous, and needs >>>> considerably more precision before it can be answered. >>>> >>>> If you can pose the question more precisely, you might wish to ask >>>> one of those questions about N subvolumes as a group -- this is >>>> where(*) you would define a qgroup covering the subvols you're >>>> interested in, and then use the above interface to ask the question >>>> for the group of subvols as a whole. >>> >>> To be more precise, let's consider an example, where we have a >>> subvolume named "stuff"; and two snapshots of "stuff", "snap1" and >>> "snap2". So the question I'm posing is: >>> >>> How much space would I free up if I were to remove my snapshots, >>> "snap1" and "snap2", but keep "stuff" intact? >>> >>> I can't use the rfer value from snap1 and snap2, because in general >>> most of that space is shared by "stuff" and would not be freed. I >>> could look at the excl column for snap1 and snap2 and add them up; but >>> if they shared extents with each other (and not with "stuff"), those >>> extents are no longer exclusive, and thus not accounted for. So I >>> would have to delete either snap1 or snap2 in order to answer my >>> question using qgroups. >>> >>> I can't think of a way to define a qgroup that would be able to answer >>> my question, although I'm admittedly no expert in qgroups either. >> >> I think you'd define a qgroup comtaining snap1 and snap2, and look >> at the excl value. > > > Agreed, This is a possible method to get what you want. We can create a > qgroup > in a higher level, as a pool. > # btrfs qgroup create 1/0 /MNT > > And then assign your snapshots into this qgroup. > # btrfs qgroup assign 0/xxx 1/0 /MNT > # btrfs qgroup assign 0/xxx 1/0 /MNT > > *Considering we can not update the quota number automatically in moving > qgroup > we need a rescan here. > # btrfs quota rescan -w /MNT > > Then you can get the information you want by > #btrfs qgroup show -prce /MNT > Nice, thanks for the input Hugo and Yang! I'll play with that a bit. I was assuming the excl value wouldn't be effective since the extents are still shared by the original subvolume. -Justin > Thanx > Yang > >> Anyone out there with qgroups experience who can >> tell us how/whether that would do the job? >> >> Hugo. >> >>> -Justin >>> >>>> Hugo. >>>> >>>> (*) I'm not an expert in qgroups. I may have the idea completely >>>> wrong, but I think this is the right kind of approach. >>>> >>>> >>>>> -Justin >>>>> >>>>>> You can also refer to 'btrfs-quota'(8) and 'btrfs-qgroup'(8), >>>>>> Also the following wiki can help: >>>>>> https://btrfs.wiki.kernel.org/index.php/Quota_support >>>>>> >>>>>> NOTE: quota is not so stable and has some problem, but should give >>>>>> you enough info. >>>>>> >>>>>> Thanks, >>>>>> Qu >>>>>> >>>>>>> # zfs list -t snapshot >>>>>>> NAME USED AVAIL REFER MOUNTPOINT >>>>>>> hetz0/be0-mail@2015-03-10 2.88G - 387G - >>>>>>> hetz0/be0-mail@2015-03-11 1.12G - 388G - >>>>>>> hetz0/be0-mail@2015-03-12 1.11G - 388G - >>>>>>> hetz0/be0-mail@2015-03-13 1.19G - 388G - >>>>>>> hetz0/be0-mail@2015-03-14 1.02G - 388G - >>>>>>> hetz0/be0-mail@2015-03-15 989M - 386G - >>>>>>> >>>>>>> Is there any way to do something similar to the above ZFS command? >>>>>>> It's >>>>>>> handy >>>>>>> to know which snapshots are taking up the most space, especially when >>>>>>> multiple >>>>>>> subvols are being snapshotted. >>>>>>> > ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: snapshot space use 2015-04-10 0:40 ` Justin Maggard @ 2015-04-10 0:48 ` Qu Wenruo 0 siblings, 0 replies; 12+ messages in thread From: Qu Wenruo @ 2015-04-10 0:48 UTC (permalink / raw) To: Justin Maggard, Dongsheng Yang; +Cc: Hugo Mills, russell, BTRFS -------- Original Message -------- Subject: Re: snapshot space use From: Justin Maggard <jmaggard10@gmail.com> To: Dongsheng Yang <yangds.fnst@cn.fujitsu.com> Date: 2015年04月10日 08:40 > On Thu, Apr 9, 2015 at 5:32 PM, Dongsheng Yang > <yangds.fnst@cn.fujitsu.com> wrote: >> On 04/10/2015 07:39 AM, Hugo Mills wrote: >>> >>> On Thu, Apr 09, 2015 at 04:27:08PM -0700, Justin Maggard wrote: >>>> >>>> On Thu, Apr 9, 2015 at 3:24 PM, Hugo Mills <hugo@carfax.org.uk> wrote: >>>>> >>>>> On Thu, Apr 09, 2015 at 03:01:55PM -0700, Justin Maggard wrote: >>>>>> >>>>>> On Wed, Apr 8, 2015 at 5:45 PM, Qu Wenruo <quwenruo@cn.fujitsu.com> >>>>>> wrote: >>>>>>> >>>>>>> Hi, >>>>>>> >>>>>>> You can use btrfs quota feature to do it. >>>>>>> Like this: >>>>>>> >>>>>>> # btrfs quota enable <MNT_POINT> >>>>>>> # btrfs quota rescan -w <MNT_POINT> >>>>>>> # btrfs qgroup show -prce <MNT_POINT> >>>>>>> qgroupid rfer excl max_rfer max_excl parent child >>>>>>> -------- ---- ---- -------- -------- ------ ----- >>>>>>> 0/5 2248704 12288 0 0 --- --- >>>>>>> 0/256 5509120 3272704 0 0 --- --- >>>>>>> >>>>>>> >>>>>>> rfer is all the space the subvolume takes. >>>>>>> excl is the exclusive space the subvolume takes. >>>>>>> >>>>>> Yes, but this isn't as useful as it sounds if you have more than one >>>>>> snapshot. Because if a file is included in at least two snapshots, >>>>>> it's no longer exclusive. So AFAICT even with btrfs qgroups, you >>>>>> still cannot answer the question "How much space are my snapshots >>>>>> using?" for a given subvolume, unless you have only one snapshot. But >>>>>> I'd be happy to be informed otherwise. :-) >>>>> >>>>> There are basically two useful answers to that question, depending >>>>> on how the question is specified, exactly: >>>>> >>>>> 1) How much space would I use if I copied this subvolume to a >>>>> different filesystem? >>>>> >>>>> 2) How much space would I free up if I deleted this subvolume? >>>>> >>>>> Part 1 is the rfer answer. Part 2 is the excl answer. >>>>> >>>>> Which of these do you mean by "How much space are my snapshots >>>>> using?". The question as posed is highly ambiguous, and needs >>>>> considerably more precision before it can be answered. >>>>> >>>>> If you can pose the question more precisely, you might wish to ask >>>>> one of those questions about N subvolumes as a group -- this is >>>>> where(*) you would define a qgroup covering the subvols you're >>>>> interested in, and then use the above interface to ask the question >>>>> for the group of subvols as a whole. >>>> >>>> To be more precise, let's consider an example, where we have a >>>> subvolume named "stuff"; and two snapshots of "stuff", "snap1" and >>>> "snap2". So the question I'm posing is: >>>> >>>> How much space would I free up if I were to remove my snapshots, >>>> "snap1" and "snap2", but keep "stuff" intact? >>>> >>>> I can't use the rfer value from snap1 and snap2, because in general >>>> most of that space is shared by "stuff" and would not be freed. I >>>> could look at the excl column for snap1 and snap2 and add them up; but >>>> if they shared extents with each other (and not with "stuff"), those >>>> extents are no longer exclusive, and thus not accounted for. So I >>>> would have to delete either snap1 or snap2 in order to answer my >>>> question using qgroups. >>>> >>>> I can't think of a way to define a qgroup that would be able to answer >>>> my question, although I'm admittedly no expert in qgroups either. >>> >>> I think you'd define a qgroup comtaining snap1 and snap2, and look >>> at the excl value. >> >> >> Agreed, This is a possible method to get what you want. We can create a >> qgroup >> in a higher level, as a pool. >> # btrfs qgroup create 1/0 /MNT >> >> And then assign your snapshots into this qgroup. >> # btrfs qgroup assign 0/xxx 1/0 /MNT >> # btrfs qgroup assign 0/xxx 1/0 /MNT >> >> *Considering we can not update the quota number automatically in moving >> qgroup >> we need a rescan here. >> # btrfs quota rescan -w /MNT >> >> Then you can get the information you want by >> #btrfs qgroup show -prce /MNT >> > > Nice, thanks for the input Hugo and Yang! I'll play with that a bit. > I was assuming the excl value wouldn't be effective since the extents > are still shared by the original subvolume. > > -Justin The higher level qgroup should archive your goal, if you adds all qgroups(including top-level subvol 5) into it. But the higher level one can only shows you how much the space all the subvolumes really take. But not exactly one qgroup takes(as explained, no good definition on qgroup space usage due to the complexity in shared extents). BTW, as you step deeper in btrfs qgroup, more problem may shows up. For higher level subvolume qgroup, IIRC, deleting a snapshot/subvolume may cause wrong higher level qgroup numbers. Anyway, if you decides to use qgroup, run rescan at a interval is suggested. Thanks, Qu > >> Thanx >> Yang >> >>> Anyone out there with qgroups experience who can >>> tell us how/whether that would do the job? >>> >>> Hugo. >>> >>>> -Justin >>>> >>>>> Hugo. >>>>> >>>>> (*) I'm not an expert in qgroups. I may have the idea completely >>>>> wrong, but I think this is the right kind of approach. >>>>> >>>>> >>>>>> -Justin >>>>>> >>>>>>> You can also refer to 'btrfs-quota'(8) and 'btrfs-qgroup'(8), >>>>>>> Also the following wiki can help: >>>>>>> https://btrfs.wiki.kernel.org/index.php/Quota_support >>>>>>> >>>>>>> NOTE: quota is not so stable and has some problem, but should give >>>>>>> you enough info. >>>>>>> >>>>>>> Thanks, >>>>>>> Qu >>>>>>> >>>>>>>> # zfs list -t snapshot >>>>>>>> NAME USED AVAIL REFER MOUNTPOINT >>>>>>>> hetz0/be0-mail@2015-03-10 2.88G - 387G - >>>>>>>> hetz0/be0-mail@2015-03-11 1.12G - 388G - >>>>>>>> hetz0/be0-mail@2015-03-12 1.11G - 388G - >>>>>>>> hetz0/be0-mail@2015-03-13 1.19G - 388G - >>>>>>>> hetz0/be0-mail@2015-03-14 1.02G - 388G - >>>>>>>> hetz0/be0-mail@2015-03-15 989M - 386G - >>>>>>>> >>>>>>>> Is there any way to do something similar to the above ZFS command? >>>>>>>> It's >>>>>>>> handy >>>>>>>> to know which snapshots are taking up the most space, especially when >>>>>>>> multiple >>>>>>>> subvols are being snapshotted. >>>>>>>> >> ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: snapshot space use 2015-04-09 0:39 snapshot space use Russell Coker 2015-04-09 0:45 ` Qu Wenruo @ 2015-04-10 7:55 ` Russell Coker 1 sibling, 0 replies; 12+ messages in thread From: Russell Coker @ 2015-04-10 7:55 UTC (permalink / raw) To: BTRFS On Thu, 9 Apr 2015 12:39:33 AM Russell Coker wrote: > # zfs list -t snapshot > NAME USED AVAIL REFER MOUNTPOINT > hetz0/be0-mail@2015-03-10 2.88G - 387G - > hetz0/be0-mail@2015-03-11 1.12G - 388G - > hetz0/be0-mail@2015-03-12 1.11G - 388G - > hetz0/be0-mail@2015-03-13 1.19G - 388G - > hetz0/be0-mail@2015-03-14 1.02G - 388G - > hetz0/be0-mail@2015-03-15 989M - 386G - > > Is there any way to do something similar to the above ZFS command? It's > handy to know which snapshots are taking up the most space, especially > when multiple subvols are being snapshotted. Quota isn't really what I want. What I don't want is to go to all the effort of creating quotas on snapshots (and the risk of using such features) just for the ability to see disk usage IF I want it. What I want is to have it just work as it does in ZFS. In the above example I can see that I can free 2.88G of disk space by removing the oldest snapshot, this is useful. btrfs sub find-new $SNAPSHOT $LASTGEN | awk '{total = total + $7}END{print total}' The above command gives a total of the lengths of extents that changed in a snapshot. Of course the total length isn't going to be the total space used (it doesn't count metadata used or space saved through compression), but it does give an idea. Thanks Hugo for the tip in another thread. -- My Main Blog http://etbe.coker.com.au/ My Documents Blog http://doc.coker.com.au/ ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2015-04-10 7:55 UTC | newest] Thread overview: 12+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-04-09 0:39 snapshot space use Russell Coker 2015-04-09 0:45 ` Qu Wenruo 2015-04-09 9:02 ` Piotr Szymaniak 2015-04-09 9:26 ` Qu Wenruo 2015-04-09 22:01 ` Justin Maggard 2015-04-09 22:24 ` Hugo Mills 2015-04-09 23:27 ` Justin Maggard 2015-04-09 23:39 ` Hugo Mills 2015-04-10 0:32 ` Dongsheng Yang 2015-04-10 0:40 ` Justin Maggard 2015-04-10 0:48 ` Qu Wenruo 2015-04-10 7:55 ` Russell Coker
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.