Re: filesystem
"Bill Cunningham" <[email protected]> Mon, 25 Aug 2014 21:14:58 -0400
| Newsgroups | gmane.comp.file-systems.ext3.user |
|---|---|
| Message-ID | <2FDF9B43A6424C04A4B1F07D91294305@a0xu9opy2hqxrr> |
----- Original Message ----- From: "Bodo Thiesen" <[email protected]> To: <[email protected]> Sent: Monday, August 25, 2014 8:15 PM Subject: Re: filesystem > Hello Bill. [snip] > You're trying to understand what exactly? From the user point of view, > dir_index just makes directory accesses on very big directories faster. > When creating a new file, or searching a file to be opened, without > dir_index the file system driver has to read each any every directory > cluster and investigate it's content to figure out, whether an object with > the given name already exists. With dir_index, there is an additional form > of sorted tree in the directory, which speeds up this lookup process. Now, > when you remove that feature and then e2fsck, all those indexes will be > removed. If you later readd the feature and e2fsck, those indexes get > recreated. I see. Htree kept bieng mentioned. I am guessing that means "hash tree". I guess I would like to see all these filesystems, if possible, completely backwards reversibile. If you have ext2, simply add a journaling inode. It can be removed too. Now with ext4, removing "extents" might present much more of a difficulty. >>From the developer point of view, one approach is to read and understand > the kernel sources for ext2/3/4 or just start writing your own file system > checker. If you get that right, you've understood the file system ;) > > Not much more advice, anyone can give you in a general way. > > Features that separate ext2 / ext3 / ext4? Clear answer: There is no ext3 > and ext4. It's all ext2, but there are three independent code bases in the > Linux kernel, called ext2, ext3 and ext4 - but they all implement ext2. > > The fs driver called ext3 needs the feature has_journal, ext2 can't mount > feature needs_recovery. Despite from this, they are pretty much identical. > > The fs driver called ext4 supports some new features, the prominent > (i.e. documented) ones are: extent (don't store cluster pointers but > instead cluster ranges - saving space for large files), flex_bg > (drop the constraint, that group meta data shall be stored in it's own > group, thus allowing to virtually create bigger groups. Probably you can > mke2fs one file system with flex_bg, then remove the feature flag and > perfecly mount and use it with ext2 / ext3, however, e2fsck may get cracy > on that setup - but I don't see, why the file system drivers should get a > problem with that - anyways, I didn't test it), uninit_bg (speeds up > mke2fs by skipping the "overwrite all bitmaps and inode tables with > zeros" step). > > Regards, Bodo Yes all those features. I would like to know what they mean. There are mount options, ext4 features, ext3 features and some are directly related to the journaling inode. I seem to remember something called revoke_incompatible or something like that. I've also seen ext3 with no features. Is there any docs or help for learning ext development? One can not remove extents can thy. If I am correct they may cross multiple files. I have alot to learn. I'm glad this list is open to users. I guess anyway. Cheers, Bill