linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Austin S. Hemmelgarn" <ahferroin7@gmail.com>
To: Nicholas D Steeves <nsteeves@gmail.com>
Cc: Chris Murphy <lists@colorremedies.com>,
	Btrfs BTRFS <linux-btrfs@vger.kernel.org>
Subject: Re: dstat shows unexpected result for two disk RAID1
Date: Wed, 6 Apr 2016 08:02:21 -0400	[thread overview]
Message-ID: <5704FACD.9040304@gmail.com> (raw)
In-Reply-To: <CAD=QJKgrBXCXjP4vEzsGtO9oYN7LQ1titFatCYhmLbZea8_W0w@mail.gmail.com>

On 2016-04-05 23:58, Nicholas D Steeves wrote:
> On 11 March 2016 at 20:20, Chris Murphy <lists@colorremedies.com> wrote:
>> On Fri, Mar 11, 2016 at 5:10 PM, Nicholas D Steeves <nsteeves@gmail.com> wrote:
>>> P.S. Rather than parity, I mean instead of distributing into stripes, do a copy!
>>
>> raid56 by definition are parity based, so I'd say no that's confusing
>> to turn it into something it's not.
>
> I just found the Multiple Device Support diagram.  I'm trying to
> figure out how hard it's going for me to get up to speed, because I've
> only ever casually and informally read about filesystems.  I worry
> that because I didn't study filesystem design in school, and because
> everything I worked on was in C++...well, the level of sophistication
> and design might be beyond what I can learn.  What do you think?  Can
> you recommend any books on file system design that will provide what
> is necessary to understand btrfs?
While I can't personally recommend any books on filesystem design, I can 
give some more general advice:
1. Make sure you have at least a basic understanding of how things work 
at a high level from the user perspective.  It's a lot easier to 
understand the low-level stuff if you know how it all ends up fitting 
together.  Back when I started looking at the internals of BTRFS I was 
pretty lost myself.  I still am to a certain extent when it comes to the 
kernel code (most of my background is in Python, Lua, or Bourne Shell, 
not C, and I don't normally deal with data structures at such a low 
level), but as I've used it more on my systems, a lot of stuff that 
seemed cryptic at first is making a lot more sense.
2. Keep in mind that there are a number of things in BTRFS that have no 
equivalent in other filesystems, or are not typical filesystem design 
topics.  The multi-device support for example is pretty much 
non-existent as a filesystem design topic because it's traditionally 
handled by lower levels like LVM.
3. The Linux VFS layer is worth taking a look at, as it handles the 
translation between the low-level ABI provided by each filesystem and 
the user-level API.  Most of the stuff that BTRFS provides through it is 
rather consistent with the user level API, but understanding what 
translation goes on there can be helpful to understanding some of the 
higher-level internals in BTRFS.

  reply	other threads:[~2016-04-06 12:03 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-09 20:21 dstat shows unexpected result for two disk RAID1 Nicholas D Steeves
2016-03-09 20:25 ` Nicholas D Steeves
2016-03-09 20:50   ` Goffredo Baroncelli
2016-03-09 21:26   ` Chris Murphy
2016-03-09 22:51     ` Nicholas D Steeves
2016-03-11 23:42     ` Nicholas D Steeves
2016-03-09 21:36   ` Roman Mamedov
2016-03-09 21:43     ` Chris Murphy
2016-03-09 22:08       ` Nicholas D Steeves
2016-03-10  4:06     ` Duncan
2016-03-10  5:01       ` Chris Murphy
2016-03-10  8:10         ` Duncan
2016-03-12  0:04       ` Nicholas D Steeves
2016-03-12  0:10         ` Nicholas D Steeves
2016-03-12  1:20           ` Chris Murphy
2016-04-06  3:58             ` Nicholas D Steeves
2016-04-06 12:02               ` Austin S. Hemmelgarn [this message]
2016-04-22 22:36                 ` Nicholas D Steeves

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=5704FACD.9040304@gmail.com \
    --to=ahferroin7@gmail.com \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=lists@colorremedies.com \
    --cc=nsteeves@gmail.com \
    /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).