On 2016-04-05 23:58, Nicholas D Steeves wrote:
On 11 March 2016 at 20:20, Chris Murphy <li...@colorremedies.com> wrote:
On Fri, Mar 11, 2016 at 5:10 PM, Nicholas D Steeves <nstee...@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.
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to