linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Hugo Mills <hugo@carfax.org.uk>
To: Goffredo Baroncelli <kreijack@gmail.com>
Cc: "Roman Mamedov" <rm@romanrm.ru>,
	kreijack@libero.it, "Sébastien Maury" <sebastien.maury@inserm.fr>,
	linux-btrfs@vger.kernel.org
Subject: Re: [RFC] btrfs fi df output [Was Re: BTRF - Storage Usage]
Date: Fri, 28 Sep 2012 21:13:32 +0100	[thread overview]
Message-ID: <20120928201332.GF6136@carfax.org.uk> (raw)
In-Reply-To: <5065DDF4.8010907@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 5847 bytes --]

   Hi, Goffredo,

On Fri, Sep 28, 2012 at 07:27:16PM +0200, Goffredo Baroncelli wrote:
> On 09/28/2012 10:58 AM, Hugo Mills wrote:
> >On Fri, Sep 28, 2012 at 09:17:59AM +0600, Roman Mamedov wrote:
> >>On Thu, 27 Sep 2012 23:02:35 +0200
> >>Goffredo Baroncelli<kreijack@libero.it>  wrote:
> >>
> [...]
[...]
> >>>Details:
> >>>     Chunk-type    Mode       Allocated        Used        Free
> >>>     ----------    ----       ---------    --------   ---------
[...]
> >>>     Data          Single        4.01GB      2.16GB      1.87GB
> >>>     System        DUP          16.00MB      4.00KB      7.99MB
> >>>     System        Single        4.00MB        0.00      4.00MB
> >>>     Metadata      DUP           6.00GB    429.16MB      2.57GB
> >>>     Metadata      Single        8.00MB        0.00      8.00MB
> >
> >    I think we need another column here, to indicate how much *actual*
> >disk space is used by each row, so adding up that column will give you
> >the "Allocated" value in the first clause. I think that's probably the
> >biggest cause of confusion. "Raw alloc.", maybe, and use the term
> >"raw" somewhere in the first clause to hammer the point home.
> 
> I think that there is a little misunderstanding. We are saying the
> same thing. Only I call "allocated" what you call "raw alloc"

   OK, I think we need both. We need to indicate somewhere (in the
"Details" section in my version) both the total number of bits of rust
used and the amount of data stored. It's not good to ask the user to
know that they need to multiply/divide by two for certain storage
modes (or even more complicated for RAID-5/6). Somewhere, they will
find that values change twice as fast as they expect (or at half the
speed), and that causes problems. We need to find some way of
connecting the two in a way that makes it reasonably obvious where the
figures come from..

> >    My only concern here is that we're a bit too close to the existing
> >solution (albeit merging the two sets of output), which has proven
> >itself over time to be somewhat confusing. I think the Alloc_Raw
> >column is the minimum necessary to link the two in some easily
> >determinable way. Adding totals to Alloc_Raw, and Used (but not Free
> >or Alloc) would help, I think. I don't think it's useful to add them
> >to the Free or Alloc columns, because those figures change as the FS
> >allocates chunks, and we'll end up with people querying the fact that
> >the total of Free doesn't add up to any of the figures in the
> >summary.
> >
> >    Say, something like this:
> >
> >Summary_(Raw):
> >   Total:                    135.00 GiB
> >   Allocated:            	 10.51 GiB
> >   Unallocated:            	124.49 GiB
> >   Free_(Estimated):          86.56 GiB
> >   Average_disk_efficiency:      62 %
> >
> >Details:
> >   Chunk_type  Mode    Alloc_Raw  Alloc      Used        Free
> >   Data        Single   4.01 GiB   4.01 GiB    2.16 GiB  1.87 GiB
> >   System      DUP     32.00 MiB  16.00 MiB    4.00 KiB  7.99 MiB
> >   System      Single   4.00 MiB   4.00 MiB    0.00 B    4.00 MiB
> >   Metadata    DUP     12.00 GiB   6.00 GiB  429.16 MiB  2.57 GiB
> >   Metadata    Single   8.00 MiB   8.00 MiB    0.00 B    8.00 MiB
> >   Total               16.04 GiB               2.59 GiB
> >
> >    The other thing is that there should be a switch (or possibly two)
> >to give highly machine-readable versions of the output -- no units
> >(units as bytes by default, with other units settable by a switch),
> >tab-separated, possibly a different option for each of the above
> >output clauses.
> I fully Agree. But my first concern was about the wording (if fact
> even though we are saying the same thing you didn't understood me).
> 
> Let me propose the following:
> 
> Summary:
>    Disk_size:     	         135.00 GiB
>    Disk_allocated:          	  10.51 GiB
>    Disk_unallocated:		 124.49 GiB
>    Used:			   2.59 GiB
>    Free_(Estimated):         	  91.93 GiB
>    Average_disk_efficiency:          70 %
> 
> Details:
>       Chunk-type    Mode     Disk-allocated     Used   Available
>       Data          Single        4.01GB      2.16GB      1.87GB
>       System        DUP          16.00MB      4.00KB      7.99MB
>       System        Single        4.00MB        0.00      4.00MB
>       Metadata      DUP           6.00GB    429.16MB      2.57GB
>       Metadata      Single        8.00MB        0.00      8.00MB
> 
> 
> 
> Where:
>   Disk-allocated	-> space used on the disk by the chunk
>   Disk-size		-> size of the disk
>   Disk-unallocated	-> disk not used in any chunk
>   Used 			-> space used by the files/metadata

   The problem here is that if you're using raw storage, the Used
value in the second stanza grows twice as fast as the user expects. I
think this second stanza should at minimum include the "cooked" values
used in btrfs fi df, because those reflect the user's experience. Then
adding [some of?] the raw values you've got here to help connect the
values to the raw data in the first stanza of output.

   As I said above, it's the connection between "I wrote a 1GiB file
to my filesystem" and "why have my numbers increased/decreased by
2GiB(*)/1.2GiB(**)?"

(*) RAID-1
(**) RAID-5-ish

>   Available 		-> space available in the *allocated* chunk
>   Free_(Estimated) 	-> Theoretical free space for files (Disk_size
> 			   * Average_disk_efficiency - Used)
> >
> >    Ultimately, I think the bikeshed should be turquoise.
> ? :-)

   http://www.freebsd.org/doc/en_US.ISO8859-1/books/faq/misc.html#bikeshed-painting

   Hugo.

-- 
=== Hugo Mills: hugo@... carfax.org.uk | darksatanic.net | lug.org.uk ===
  PGP key: 515C238D from wwwkeys.eu.pgp.net or http://www.carfax.org.uk
  --- And what rough beast,  its hour come round at last / slouches ---  
                     towards Bethlehem,  to be born?                     

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 828 bytes --]

  reply	other threads:[~2012-09-28 20:13 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-27 10:44 BTRF - Storage Usage Sébastien Maury
2012-09-27 11:09 ` Hugo Mills
2012-09-27 11:25   ` Sébastien Maury
2012-09-27 11:43     ` Hugo Mills
2012-09-27 11:52       ` Sébastien Maury
2012-09-27 20:39 ` [RFC] btrfs fi df output [Was Re: BTRF - Storage Usage] Goffredo Baroncelli
2012-09-27 21:02   ` Goffredo Baroncelli
2012-09-28  3:17     ` Roman Mamedov
2012-09-28  8:58       ` Hugo Mills
2012-09-28 17:27         ` Goffredo Baroncelli
2012-09-28 20:13           ` Hugo Mills [this message]
2012-09-28 21:26             ` Goffredo Baroncelli
2012-09-29  7:19             ` Goffredo Baroncelli
2012-09-29  9:59               ` Sébastien Maury
2012-09-29 11:51                 ` Goffredo Baroncelli
2012-11-12 18:16         ` Jan Engelhardt
2012-09-28 16:44       ` Goffredo Baroncelli
2012-09-28 18:02         ` Roman Mamedov
2012-09-28 19:38           ` Goffredo Baroncelli
2012-09-28 20:20           ` Hugo Mills
2012-09-28 21:26             ` Wade Cline

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=20120928201332.GF6136@carfax.org.uk \
    --to=hugo@carfax.org.uk \
    --cc=kreijack@gmail.com \
    --cc=kreijack@libero.it \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=rm@romanrm.ru \
    --cc=sebastien.maury@inserm.fr \
    /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).