* Question about btrfs metadata structure
@ 2012-07-25 10:41 Guenther Rasch
2012-07-27 7:07 ` Guenther Rasch
2012-07-27 7:34 ` Liu Bo
0 siblings, 2 replies; 4+ messages in thread
From: Guenther Rasch @ 2012-07-25 10:41 UTC (permalink / raw)
To: linux-btrfs
Hi!
I'm writing my bsc thesis about btrfs and I'm analyzing
the
btrfs metadata structure at the moment.
I'm using fedora 17 with kernel 3.4 and btrfs-prog from
your
git-repository. For an overview I use "btrfs-debug-tree"
and
here are my questions:
The root tree contains some inode_items, but I don't
understand
the meaning of them:
item 4 key (ROOT_TREE_DIR INODE_ITEM 0) itemoff 3101
itemsize 160
inode generation 3 size 0 block group 0 mode 40555 links 1
item 5 key (ROOT_TREE_DIR INODE_REF 6) itemoff 3089
itemsize 12
inode ref index 0 namelen 2 name: ..
The key for an inode_item is objectid=ROOT_TREE_DIR.
ROOT-TREE-DIR is the inode-Nr.?
What does offset=6 regarding INODE_REF mean? --> item 5
Also placed in the root tree, I've found entries of
(FREE_SPACE UNTYPED ....)
What does UNTYPED mean in this context and the offset is
the logical address of a block group (I guess...)? This
item has a pointer to an inode_item, is that right?
And last question about this entries:
item 2 key (FS_TREE INODE_REF 6) itemoff 3500 itemsize 17
inode ref index 0 namelen 7 name: default
...
item 6 key (ROOT_TREE_DIR DIR_ITEM 2378154706) itemoff
3052 itemsize 37
location key (FS_TREE ROOT_ITEM 18446744073709551615)
type 2
namelen 7 datalen 0 name: default
There is an INODE_REF (again, offset 6...?) pointing to
which inode? I cannot find some...
What's about that offset in location key (FS_TREE....)
Thx in advance for your patience and answers!
Regards
Guenther
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Question about btrfs metadata structure
2012-07-25 10:41 Question about btrfs metadata structure Guenther Rasch
@ 2012-07-27 7:07 ` Guenther Rasch
2012-07-27 7:21 ` Guenther Rasch
2012-07-27 7:34 ` Liu Bo
1 sibling, 1 reply; 4+ messages in thread
From: Guenther Rasch @ 2012-07-27 7:07 UTC (permalink / raw)
To: linux-btrfs
Hi,
closed by my debug output from btrfs-debug-tree regarding
my question above...
Günther
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Question about btrfs metadata structure
2012-07-27 7:07 ` Guenther Rasch
@ 2012-07-27 7:21 ` Guenther Rasch
0 siblings, 0 replies; 4+ messages in thread
From: Guenther Rasch @ 2012-07-27 7:21 UTC (permalink / raw)
To: linux-btrfs
[-- Attachment #1: Type: text/plain, Size: 34 bytes --]
Oops, here is the attachement...
[-- Attachment #2: debug-small-files-single-dev.txt --]
[-- Type: text/plain, Size: 12256 bytes --]
root tree
leaf 29401088 items 15 free space 1691 generation 37 owner 1
fs uuid 606227ec-aa2e-43de-8b81-a56b70d1084e
chunk uuid d18a5784-11ed-4d14-a437-56bab0d6d1f9
item 0 key (EXTENT_TREE ROOT_ITEM 0) itemoff 3756 itemsize 239
root data bytenr 29405184 level 0 dirid 0 refs 1 gen 37
item 1 key (DEV_TREE ROOT_ITEM 0) itemoff 3517 itemsize 239
root data bytenr 29478912 level 0 dirid 0 refs 1 gen 28
item 2 key (FS_TREE INODE_REF 6) itemoff 3500 itemsize 17
inode ref index 0 namelen 7 name: default
item 3 key (FS_TREE ROOT_ITEM 0) itemoff 3261 itemsize 239
root data bytenr 29483008 level 1 dirid 256 refs 1 gen 28
item 4 key (ROOT_TREE_DIR INODE_ITEM 0) itemoff 3101 itemsize 160
inode generation 3 size 0 block group 0 mode 40555 links 1
item 5 key (ROOT_TREE_DIR INODE_REF 6) itemoff 3089 itemsize 12
inode ref index 0 namelen 2 name: ..
item 6 key (ROOT_TREE_DIR DIR_ITEM 2378154706) itemoff 3052 itemsize 37
location key (FS_TREE ROOT_ITEM 18446744073709551615) type 2
namelen 7 datalen 0 name: default
item 7 key (CSUM_TREE ROOT_ITEM 0) itemoff 2813 itemsize 239
root data bytenr 29409280 level 0 dirid 0 refs 1 gen 37
item 8 key (256 INODE_ITEM 0) itemoff 2653 itemsize 160
inode generation 37 size 65536 block group 0 mode 100600 links 1
item 9 key (256 EXTENT_DATA 0) itemoff 2600 itemsize 53
extent data disk byte 12582912 nr 65536
extent data offset 0 nr 65536 ram 65536
extent compression 0
item 10 key (257 INODE_ITEM 0) itemoff 2440 itemsize 160
inode generation 36 size 65536 block group 0 mode 100600 links 1
item 11 key (257 EXTENT_DATA 0) itemoff 2387 itemsize 53
extent data disk byte 12722176 nr 65536
extent data offset 0 nr 65536 ram 65536
extent compression 0
item 12 key (FREE_SPACE UNTYPED 29360128) itemoff 2346 itemsize 41
location key (256 INODE_ITEM 0)
cache generation 37 entries 11 bitmaps 0
item 13 key (FREE_SPACE UNTYPED 458817536) itemoff 2305 itemsize 41
location key (257 INODE_ITEM 0)
cache generation 36 entries 2 bitmaps 0
item 14 key (DATA_RELOC_TREE ROOT_ITEM 0) itemoff 2066 itemsize 239
root data bytenr 29380608 level 0 dirid 256 refs 1 gen 4
chunk tree
leaf 20975616 items 7 free space 3178 generation 28 owner 3
fs uuid 606227ec-aa2e-43de-8b81-a56b70d1084e
chunk uuid d18a5784-11ed-4d14-a437-56bab0d6d1f9
item 0 key (DEV_ITEMS DEV_ITEM 1) itemoff 3897 itemsize 98
dev item devid 1 total_bytes 8589934592 bytes used 1755643904
item 1 key (FIRST_CHUNK_TREE CHUNK_ITEM 0) itemoff 3817 itemsize 80
chunk length 4194304 owner 2 type 2 num_stripes 1
stripe 0 devid 1 offset 0
item 2 key (FIRST_CHUNK_TREE CHUNK_ITEM 4194304) itemoff 3737 itemsize 80
chunk length 8388608 owner 2 type 4 num_stripes 1
stripe 0 devid 1 offset 4194304
item 3 key (FIRST_CHUNK_TREE CHUNK_ITEM 12582912) itemoff 3657 itemsize 80
chunk length 8388608 owner 2 type 1 num_stripes 1
stripe 0 devid 1 offset 12582912
item 4 key (FIRST_CHUNK_TREE CHUNK_ITEM 20971520) itemoff 3545 itemsize 112
chunk length 8388608 owner 2 type 34 num_stripes 2
stripe 0 devid 1 offset 20971520
stripe 1 devid 1 offset 29360128
item 5 key (FIRST_CHUNK_TREE CHUNK_ITEM 29360128) itemoff 3433 itemsize 112
chunk length 429457408 owner 2 type 36 num_stripes 2
stripe 0 devid 1 offset 37748736
stripe 1 devid 1 offset 467206144
item 6 key (FIRST_CHUNK_TREE CHUNK_ITEM 458817536) itemoff 3353 itemsize 80
chunk length 858980352 owner 2 type 1 num_stripes 1
stripe 0 devid 1 offset 896663552
extent tree key (EXTENT_TREE ROOT_ITEM 0)
leaf 29405184 items 18 free space 2783 generation 37 owner 2
fs uuid 606227ec-aa2e-43de-8b81-a56b70d1084e
chunk uuid d18a5784-11ed-4d14-a437-56bab0d6d1f9
item 0 key (0 BLOCK_GROUP_ITEM 4194304) itemoff 3971 itemsize 24
block group used 0 chunk_objectid 256 flags 2
item 1 key (4194304 BLOCK_GROUP_ITEM 8388608) itemoff 3947 itemsize 24
block group used 0 chunk_objectid 256 flags 4
item 2 key (12582912 EXTENT_ITEM 65536) itemoff 3894 itemsize 53
extent refs 1 gen 37 flags 1
extent data backref root 1 objectid 256 offset 0 count 1
item 3 key (12582912 BLOCK_GROUP_ITEM 8388608) itemoff 3870 itemsize 24
block group used 139264 chunk_objectid 256 flags 1
item 4 key (12648448 EXTENT_ITEM 8192) itemoff 3817 itemsize 53
extent refs 1 gen 28 flags 1
extent data backref root 5 objectid 266 offset 0 count 1
item 5 key (12722176 EXTENT_ITEM 65536) itemoff 3764 itemsize 53
extent refs 1 gen 36 flags 1
extent data backref root 1 objectid 257 offset 0 count 1
item 6 key (20971520 BLOCK_GROUP_ITEM 8388608) itemoff 3740 itemsize 24
block group used 4096 chunk_objectid 256 flags 34
item 7 key (20975616 EXTENT_ITEM 4096) itemoff 3689 itemsize 51
extent refs 1 gen 28 flags 2
tree block key (1 d8 1) level 0
tree block backref root 3
item 8 key (29360128 BLOCK_GROUP_ITEM 429457408) itemoff 3665 itemsize 24
block group used 32768 chunk_objectid 256 flags 36
item 9 key (29380608 EXTENT_ITEM 4096) itemoff 3614 itemsize 51
extent refs 1 gen 4 flags 2
tree block key (256 1 0) level 0
tree block backref root 18446744073709551607
item 10 key (29401088 EXTENT_ITEM 4096) itemoff 3563 itemsize 51
extent refs 1 gen 37 flags 2
tree block key (2 84 0) level 0
tree block backref root 1
item 11 key (29405184 EXTENT_ITEM 4096) itemoff 3512 itemsize 51
extent refs 1 gen 37 flags 2
tree block key (0 c0 4194304) level 0
tree block backref root 2
item 12 key (29409280 EXTENT_ITEM 4096) itemoff 3461 itemsize 51
extent refs 1 gen 37 flags 2
tree block key (18446744073709551606 80 12648448) level 0
tree block backref root 7
item 13 key (29450240 EXTENT_ITEM 4096) itemoff 3410 itemsize 51
extent refs 1 gen 27 flags 2
tree block key (256 1 0) level 0
tree block backref root 5
item 14 key (29478912 EXTENT_ITEM 4096) itemoff 3359 itemsize 51
extent refs 1 gen 28 flags 2
tree block key (1 cc 0) level 0
tree block backref root 4
item 15 key (29483008 EXTENT_ITEM 4096) itemoff 3308 itemsize 51
extent refs 1 gen 28 flags 2
tree block key (256 1 0) level 1
tree block backref root 5
item 16 key (29487104 EXTENT_ITEM 4096) itemoff 3257 itemsize 51
extent refs 1 gen 28 flags 2
tree block key (257 60 2) level 0
tree block backref root 5
item 17 key (458817536 BLOCK_GROUP_ITEM 858980352) itemoff 3233 itemsize 24
block group used 0 chunk_objectid 256 flags 1
device tree key (DEV_TREE ROOT_ITEM 0)
leaf 29478912 items 8 free space 3411 generation 28 owner 4
fs uuid 606227ec-aa2e-43de-8b81-a56b70d1084e
chunk uuid d18a5784-11ed-4d14-a437-56bab0d6d1f9
item 0 key (1 DEV_EXTENT 0) itemoff 3947 itemsize 48
dev extent chunk_tree 3
chunk objectid 256 chunk offset 0 length 4194304
item 1 key (1 DEV_EXTENT 4194304) itemoff 3899 itemsize 48
dev extent chunk_tree 3
chunk objectid 256 chunk offset 4194304 length 8388608
item 2 key (1 DEV_EXTENT 12582912) itemoff 3851 itemsize 48
dev extent chunk_tree 3
chunk objectid 256 chunk offset 12582912 length 8388608
item 3 key (1 DEV_EXTENT 20971520) itemoff 3803 itemsize 48
dev extent chunk_tree 3
chunk objectid 256 chunk offset 20971520 length 8388608
item 4 key (1 DEV_EXTENT 29360128) itemoff 3755 itemsize 48
dev extent chunk_tree 3
chunk objectid 256 chunk offset 20971520 length 8388608
item 5 key (1 DEV_EXTENT 37748736) itemoff 3707 itemsize 48
dev extent chunk_tree 3
chunk objectid 256 chunk offset 29360128 length 429457408
item 6 key (1 DEV_EXTENT 467206144) itemoff 3659 itemsize 48
dev extent chunk_tree 3
chunk objectid 256 chunk offset 29360128 length 429457408
item 7 key (1 DEV_EXTENT 896663552) itemoff 3611 itemsize 48
dev extent chunk_tree 3
chunk objectid 256 chunk offset 458817536 length 858980352
fs tree key (FS_TREE ROOT_ITEM 0)
node 29483008 level 1 items 2 free 119 generation 28 owner 5
fs uuid 606227ec-aa2e-43de-8b81-a56b70d1084e
chunk uuid d18a5784-11ed-4d14-a437-56bab0d6d1f9
key (256 INODE_ITEM 0) block 29450240 (7190) gen 27
key (257 DIR_INDEX 2) block 29487104 (7199) gen 28
leaf 29450240 items 10 free space 3141 generation 27 owner 5
fs uuid 606227ec-aa2e-43de-8b81-a56b70d1084e
chunk uuid d18a5784-11ed-4d14-a437-56bab0d6d1f9
item 0 key (256 INODE_ITEM 0) itemoff 3835 itemsize 160
inode generation 3 size 16 block group 0 mode 40555 links 1
item 1 key (256 INODE_REF 256) itemoff 3823 itemsize 12
inode ref index 0 namelen 2 name: ..
item 2 key (256 DIR_ITEM 2363071922) itemoff 3789 itemsize 34
location key (257 INODE_ITEM 0) type 2
namelen 4 datalen 0 name: dir1
item 3 key (256 DIR_ITEM 2676584006) itemoff 3755 itemsize 34
location key (258 INODE_ITEM 0) type 2
namelen 4 datalen 0 name: dir2
item 4 key (256 DIR_INDEX 2) itemoff 3721 itemsize 34
location key (257 INODE_ITEM 0) type 2
namelen 4 datalen 0 name: dir1
item 5 key (256 DIR_INDEX 3) itemoff 3687 itemsize 34
location key (258 INODE_ITEM 0) type 2
namelen 4 datalen 0 name: dir2
item 6 key (257 INODE_ITEM 0) itemoff 3527 itemsize 160
inode generation 23 size 28 block group 0 mode 40755 links 1
item 7 key (257 INODE_REF 256) itemoff 3513 itemsize 14
inode ref index 2 namelen 4 name: dir1
item 8 key (257 XATTR_ITEM 3817753667) itemoff 3435 itemsize 78
location key (0 UNKNOWN 0) type 8
namelen 16 datalen 32 name: security.selinux
item 9 key (257 DIR_ITEM 2014545090) itemoff 3391 itemsize 44
location key (259 INODE_ITEM 0) type 1
namelen 14 datalen 0 name: file-small.txt
leaf 29487104 items 14 free space 603 generation 28 owner 5
fs uuid 606227ec-aa2e-43de-8b81-a56b70d1084e
chunk uuid d18a5784-11ed-4d14-a437-56bab0d6d1f9
item 0 key (257 DIR_INDEX 2) itemoff 3951 itemsize 44
location key (259 INODE_ITEM 0) type 1
namelen 14 datalen 0 name: file-small.txt
item 1 key (258 INODE_ITEM 0) itemoff 3791 itemsize 160
inode generation 23 size 36 block group 0 mode 40755 links 1
item 2 key (258 INODE_REF 256) itemoff 3777 itemsize 14
inode ref index 3 namelen 4 name: dir2
item 3 key (258 XATTR_ITEM 3817753667) itemoff 3699 itemsize 78
location key (0 UNKNOWN 0) type 8
namelen 16 datalen 32 name: security.selinux
item 4 key (258 DIR_ITEM 3675469991) itemoff 3651 itemsize 48
location key (266 INODE_ITEM 0) type 1
namelen 18 datalen 0 name: file-small-g4k.txt
item 5 key (258 DIR_INDEX 2) itemoff 3603 itemsize 48
location key (266 INODE_ITEM 0) type 1
namelen 18 datalen 0 name: file-small-g4k.txt
item 6 key (259 INODE_ITEM 0) itemoff 3443 itemsize 160
inode generation 24 size 2048 block group 0 mode 100644 links 1
item 7 key (259 INODE_REF 257) itemoff 3419 itemsize 24
inode ref index 2 namelen 14 name: file-small.txt
item 8 key (259 XATTR_ITEM 3817753667) itemoff 3341 itemsize 78
location key (0 UNKNOWN 0) type 8
namelen 16 datalen 32 name: security.selinux
item 9 key (259 EXTENT_DATA 0) itemoff 1272 itemsize 2069
inline extent data size 2048 ram 2048 compress 0
item 10 key (266 INODE_ITEM 0) itemoff 1112 itemsize 160
inode generation 27 size 8192 block group 0 mode 100644 links 1
item 11 key (266 INODE_REF 258) itemoff 1084 itemsize 28
inode ref index 2 namelen 18 name: file-small-g4k.txt
item 12 key (266 XATTR_ITEM 3817753667) itemoff 1006 itemsize 78
location key (0 UNKNOWN 0) type 8
namelen 16 datalen 32 name: security.selinux
item 13 key (266 EXTENT_DATA 0) itemoff 953 itemsize 53
extent data disk byte 12648448 nr 8192
extent data offset 0 nr 8192 ram 8192
extent compression 0
checksum tree key (CSUM_TREE ROOT_ITEM 0)
leaf 29409280 items 1 free space 3962 generation 37 owner 7
fs uuid 606227ec-aa2e-43de-8b81-a56b70d1084e
chunk uuid d18a5784-11ed-4d14-a437-56bab0d6d1f9
item 0 key (EXTENT_CSUM EXTENT_CSUM 12648448) itemoff 3987 itemsize 8
extent csum item
data reloc tree key (DATA_RELOC_TREE ROOT_ITEM 0)
leaf 29380608 items 2 free space 3773 generation 4 owner 18446744073709551607
fs uuid 606227ec-aa2e-43de-8b81-a56b70d1084e
chunk uuid d18a5784-11ed-4d14-a437-56bab0d6d1f9
item 0 key (256 INODE_ITEM 0) itemoff 3835 itemsize 160
inode generation 3 size 0 block group 0 mode 40555 links 1
item 1 key (256 INODE_REF 256) itemoff 3823 itemsize 12
inode ref index 0 namelen 2 name: ..
total bytes 8589934592
bytes used 176128
uuid 606227ec-aa2e-43de-8b81-a56b70d1084e
Btrfs Btrfs v0.19-dirty
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Question about btrfs metadata structure
2012-07-25 10:41 Question about btrfs metadata structure Guenther Rasch
2012-07-27 7:07 ` Guenther Rasch
@ 2012-07-27 7:34 ` Liu Bo
1 sibling, 0 replies; 4+ messages in thread
From: Liu Bo @ 2012-07-27 7:34 UTC (permalink / raw)
To: Guenther Rasch; +Cc: linux-btrfs
On 07/25/2012 06:41 PM, Guenther Rasch wrote:
> Hi!
>
> I'm writing my bsc thesis about btrfs and I'm analyzing the
> btrfs metadata structure at the moment.
>
> I'm using fedora 17 with kernel 3.4 and btrfs-prog from your
> git-repository. For an overview I use "btrfs-debug-tree" and
> here are my questions:
>
> The root tree contains some inode_items, but I don't understand
> the meaning of them:
> item 4 key (ROOT_TREE_DIR INODE_ITEM 0) itemoff 3101 itemsize 160
> inode generation 3 size 0 block group 0 mode 40555 links 1
>
> item 5 key (ROOT_TREE_DIR INODE_REF 6) itemoff 3089 itemsize 12
> inode ref index 0 namelen 2 name: ..
>
> The key for an inode_item is objectid=ROOT_TREE_DIR. ROOT-TREE-DIR is
> the inode-Nr.?
> What does offset=6 regarding INODE_REF mean? --> item 5
>
I think you can find the answer by doing grep ROOT_TREE_DIR in btrfs-progs source code. ;)
> Also placed in the root tree, I've found entries of
> (FREE_SPACE UNTYPED ....)
> What does UNTYPED mean in this context and the offset is
> the logical address of a block group (I guess...)? This
> item has a pointer to an inode_item, is that right?
>
It's free space cache, which refers to free-space-cache.c in upstream's code.
> And last question about this entries:
> item 2 key (FS_TREE INODE_REF 6) itemoff 3500 itemsize 17
> inode ref index 0 namelen 7 name: default
> ...
> item 6 key (ROOT_TREE_DIR DIR_ITEM 2378154706) itemoff 3052 itemsize 37
> location key (FS_TREE ROOT_ITEM 18446744073709551615) type 2
> namelen 7 datalen 0 name: default
>
> There is an INODE_REF (again, offset 6...?) pointing to
> which inode? I cannot find some...
> What's about that offset in location key (FS_TREE....)
>
> Thx in advance for your patience and answers!
>
> Regards
> Guenther
> --
> 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] 4+ messages in thread
end of thread, other threads:[~2012-07-27 7:35 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-07-25 10:41 Question about btrfs metadata structure Guenther Rasch
2012-07-27 7:07 ` Guenther Rasch
2012-07-27 7:21 ` Guenther Rasch
2012-07-27 7:34 ` Liu Bo
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).