linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* 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).