On Wed, Mar 30, 2016 at 01:58:03PM +0000, sri wrote: > I could find very limited documentation related to on disk layout of btrfs > and how all trees are related to each other. Except wiki which has very > specific top level details I couldn't able to find more details on btrfs. > > FSs such as zfs, ext3/4 and XFS there are documents which explains ondisk > layout of the file systems. > > Could anybody please provide pointers for the same for better > understanding of btrfs on disk layout and how each tree interacts provided > multiple disks are configured for btrfs. What are you intending to do? You'll need different things depending on whether you are, for example, using the BTRFS_TREE_SEARCH ioctl online to gather high-level information, or working your way through the datapaths from the superblock right down to individual bytes of a file for offline access. If you're using BTRFS_TREE_SEARCH, for example, you won't need to know anything about the superblocks or the way that trees are implemented. In fact, it's a good idea if you can avoid getting into those details at all. The high-level view of how the data model fits together is at [1]. Individual structures referenced in there are best examined in ctree.h for the details, although there's a little more detailed description at [2]. There's some documentation on the basic APIs used for reading the btrees at [3]. If you really _have_ to access trees yourself, the tree structure is at [4], but see my comment above about that. The way that the FS-tree metadata is put together to make up POSIX directory structures is at [5]. After all that, you're down to looking at the data structures in ctree.h, and grepping through the source code to see how they're used (which is how [1] was written in the first place). Hugo. [1] https://btrfs.wiki.kernel.org/index.php/Data_Structures [2] https://btrfs.wiki.kernel.org/index.php/On-disk_Format [3] https://btrfs.wiki.kernel.org/index.php/Code_documentation [4] https://btrfs.wiki.kernel.org/index.php/Btrfs_design [5] https://btrfs.wiki.kernel.org/index.php/Trees -- Hugo Mills | "There's more than one way to do it" is not a hugo@... carfax.org.uk | commandment. It is a dire warning. http://carfax.org.uk/ | PGP: E2AB1DE4 |
Attachment:
signature.asc
Description: Digital signature
