[RndTbl] metadata *is* in the inode

Trevor Cordes trevor at tecnopolis.ca
Mon Nov 16 00:17:23 CST 2015


At the meeting last week we were discussing inodes and metadata, and where 
metadata is actually stored.

I double-checked what I was saying, just to make sure, and it turns out I 
was correct: many modern fs's (like ext4) store some metadata in the 
inode.  This is because ext4 has a 256 byte inode by default but only 
needs about half of that to store "normal" inode data.  Thus, "the 
remaining space after the ext4_inode structure is normally used to hold 
extended attributes".

That would include capabilities (along with selinux stuff, etc), I would 
assume.  Of course, if your metadata is over about 100 bytes then the fs 
will need to allocate other blocks for the metadata.  I'm sure there's a 
way to test all this with just ls, df and setcap or selinux.

Further, looks like there's a patch called "Inline data" (doesn't seem to 
be in my kernel, perhaps not mature yet) that allows *data* to be put in 
the empty space.  That would allow tiny (100 byte) files (or even 
directories with few files?) to use no blocks at all!  They'd also load 
super fast.  I swear that I've seen that behavior on my systems, but I'm 
not sure which, perhaps my XFS fs.

Perhaps if your fs is full of tons of tiny files you could gain huge 
advantage by setting your inode size even higher (at fs creation time 
only)!

source:
https://lwn.net/Articles/469805/


More information about the Roundtable mailing list