|
|
Subscribe / Log in / New account

KHB: A Filesystems reading list

August 21, 2006

This article was contributed by Valerie Aurora

We've all been there - you're wandering around a party at some Linux event clutching your drink and looking for someone to talk to, but everyone is having some obscure technical conversation full of unfamiliar jargon. Then, as you slide past a cluster of important-looking people, you overhear the word "superblock" and think, "Superblock, that's a file system thing... I read about file systems in operating systems class once." Gratefully, you join the conversation, only to discover while you know some of the terms - cylinder group, indirect block, inode - you're still unable to come up with stunning ripostes like, "Aha, but that's really just another version of soft updates, and it doesn't solve the nlinks problem." (Admiring silence ensues.) Now what? You want to be able to make witty remarks about the pros and cons of journaling while throwing back the last of your martini, but you don't know where to start.

Fortunately, you can get a decent grasp of modern file systems without reading a whole book on file systems. (I haven't yet read a book on file systems I would recommend, anyway.) After reading these file systems papers (or at least their abstracts), you'll be able to at least fake a working knowledge of file systems - as long as everyone is drinking and it's too loud to hear anyone clearly. Enjoy!

The Basics

These papers are oldies but goodies. While the systems they describe are fairly obsolete and have been heavily improved since these initial descriptions, they make a good introduction to file systems structure and terminology.

A Fast File System for UNIX by Marshall Kirk McKusick, William Joy, Samuel Leffler and Robert Fabry. This paper describes the first version of the original UNIX file system that was suitable for production use. It became known as FFS (Fast File System) or UFS (UNIX File System). The "fast" part of the name comes from the fact that the original UNIX file system maxed out at about 5% of disk bandwidth, whereas the first iteration of FFS could use about 50% - a huge improvement. This paper is absolutely foundational, as the majority of production UNIX file systems are FFS-style file systems. While some parts of this paper are obsolete (check out the section on rotational delay), it's a simple, readable explanation of basic file system architecture that you can refer back to time and again. Also, it's pretty fun to read a paper describing the first implementation of, for example, symbolic links for a UNIX file system.

For extra credit, you can read the original file system checker paper, Fsck - the UNIX file system check program, by Marshall Kirk McKusick and T. J. Kowalski. It describes the major issues in checking and repairing file system metadata consistency. Improving fsck is a hot topic in file systems right now, so reading this paper might be worthwhile.

Vnodes: An Architecture for Multiple File System Types in Sun UNIX by Steve Kleiman. The original UNIX file system interface had been designed to support exactly one kind of file system. With the advent of FFS and other file systems, operating systems now needed to support several different file systems. Several solutions were proposed, but the dominant solution ended up being the VFS (Virtual File System) interface, first proposed and implemented by Sun. This paper explains the rationale behind VFS and vnodes.

Design and Implementation of the Sun Network Filesystem by Russel Sandberg, David Goldberg, Steve Kleiman, Dan Walsh, and Bob Lyon. Once upon a time (1985, specifically), people weren't really clear on why you would want a network file system (as opposed to, for example, a network disk or copying around files via rcp). This paper explains the needs and requirements that resulted in the invention of NFS, the network file system everyone loves to hate but uses all the time anyway. It also discusses the design of the VFS. A fun quote from the paper: "One of the advantages of the NFS was immediately obvious: as the df output below shows, a diskless workstation can have access to more than a Gigabyte of disk!"

Slaying the fsck dragon

One of the major problems in file systems is keeping the on-disk data consistent in the event that a file system is interrupted in the middle of update (for example, if the system loses power). Original FFS solved this problem by running fsck on the file system after a crash or other unclean unmount, but this took a really long time and could lose data. Many smart people thought about this problem and came up with four major approaches: journaling, log-structured file systems, soft updates, and copy-on-write. Each method provided a way of quickly recovering the file system after a crash. The most popular approach was journaling, since it was both relatively simple and easy to "bolt-on" to existing FFS-style file systems.

Journaling file systems solve the fsck problem by first writing an entry describing an update to the file system to a on-disk journal - a record of file system operations. Once the journal entry is complete, the main file system is updated; if the operation is interrupted, the journal entry is replayed on the next mount, completing any half-finished operations in progress at the time of the crash. Most production file systems (including ext3, XFS, VxFS, logging UFS, and reiserfs) use journaling to avoid fsck after a crash. No canonical journaling paper exists outside the database literature (from whence the idea was lifted wholesale), but Journaling the Linux ext2fs Filesystem by Stephen Tweedie is a good choice for learning both journaling techniques in general and the details of ext3 in particular.

The Design and Implementation of a Log-Structured File System by Mendel Rosenblum and John K. Ousterhout. Journaling file systems have to write each operation to disk twice: once in the log, and once in the final location. What would happen if we only wrote the data to disk once - in the journal? While the log-structured architecture was an electrifying new idea, it ultimately turned out to be impractical for production use, despite the concerted efforts of many computer science researchers. Today, no major production file system is log-structured. (Note that a log-structured file system is not the same as a logging file system - logging is another name for journaling.)

If you're looking for cocktail party gossip, Margot Seltzer and several colleagues published papers critiquing and comparing log-structured file systems to variations of FFS-style file systems, in which LFS usually came out rather the worse for the wear. This led to a semi-famous flame war in the form of web pages, archived here.

Soft Updates: A Technique for Eliminating Most Synchronous Writes in the Fast Filesystem by Marshall Kirk McKusick and Greg Ganger. Soft updates carefully orders writes to a file system such that in the event of a crash, the only inconsistencies are relatively harmless ones - leaked blocks and inodes. After a crash, the file system is mounted immediately and fsck runs in the background. The performance of soft updates is excellent, but the complexity is very high - as in, soft updates has been implemented only once (on BSD) to my knowledge. Personally, it took me about 5 years to thoroughly understand soft updates and I haven't met anyone other than the authors who claimed to understand it well enough to implement it. The paper is pretty understandable up to about page 5, at which point your head will explode. Don't feel bad about this, it happens to everyone.

File System Design for an NFS File Server Appliance by Dave Hitz, James Lau, and Michael Malcom. This paper describes the file system used inside NetApp file servers, Write-Anywhere File Layout (WAFL), as of 1994 (it's been improved in many ways since then). WAFL was the first major use of a copy-on-write file system - one in which "live" (in use) metadata is never overwritten in place but copied elsewhere on disk. Once a consistent set of updates has been written to disk, the "superblock" is re-written to point to the new set of metadata. Copy-on-write has an interesting set of trade-offs all its own, but has been implemented in a production file system twice now; Solaris's ZFS is also a copy-on-write file system.

File system performance

Each of these papers focuses on file system performance, but also introduces more than one interesting idea and makes a good starting point for exploring several areas of file system design and implementation.

Extent-like Performance from a UNIX File System by Larry McVoy and Steve Kleiman. This 1991 paper describes optimizations to FFS that doubled file system bandwidth for sequential I/O workloads. While the optimizations described in this paper are considered old hat these days (ever heard of readahead?), it's a good introduction to file system performance.

Sidebar: Where are they now?

You might have recognized some of the names in the author lists of the papers in this article - and chances are, you aren't recognizing their names because of their file system work. What else did these people do? Here's a totally non-scientific selection.

  • Bill Joy - co-founded Sun Microsystems
  • Larry McVoy - wrote BitKeeper, co-founded BitMover
  • Steve Kleiman - CTO, Network Appliance
  • Mendel Rosenblum - co-founder, VMWare
  • John Ousterhout - wrote Tcl/Tk, co-founded several companies
  • Margot Seltzer - co-founder, Sleepycat Software
  • Dave Hitz - co-founder, Network Appliance
Obviously, anyone wanting to found a successful company and make millions of dollars should consider writing a file system first.
Scalability in the XFS File System by Adam Sweeney, Doug Doucette, Wei Hu, Curtis Anderson, Mike Nishimoto, and Geoff Peck. This paper describes the motivation and implementation of XFS, a 64-bit file system using extents, B+ trees, dynamically allocated inodes, and journaling. XFS is not by any means an FFS-style file system and reading this paper will give you the basics on most extent-based file systems. It also describes quite a few useful optimizations for avoiding fragmentation, scaling to multiple threads, and the like.

The Utility of File Names by Daniel Ellard, Jonathan Ledlie, and Margot Seltzer. File system performance and on-disk layout can be vastly improved if the file system can predict (with reasonable accuracy) the size and access pattern of a file before it writes it to disk. The obvious solution is to add a new set of file system interfaces allowing the application to give explicit hints about the size and properties of a new file. Unfortunately, the history of file systems is littered with unused per-file interfaces like this (how often do you set the noatime flag on a file?). However, it turns out that applications are already giving these hints - in the form of file names, permissions, and other per-file properties. This paper is the first in a series demonstrating that a file system can make useful predictions about the future of a file based on the file name and other properties.

Further reading and acknowledgments

If you are interested in learning more about file systems, check out the Linux file systems wiki, especially the reading list. If you have a good file systems paper or book, please add it to the list, which is publicly editable (look for the password on the front page of the wiki). Note that I will ignore any comments of the form "You should have included paper XYZ!" unless it is also added to the reading list on the file systems wiki - WITH a short summary of the paper. With any luck, we'll have a fairly complete list of Linux file systems papers in the next few days.

If you are interested in working on file systems, or any other area of systems programming, you should contact the author at val dot henson at gmail dot com.

Thanks to Nikita Danilov, Zach Brown, and Kristen Accardi for paper suggestions and encouragement to write this article. Thanks to Theodore Y. Ts'o for actually saying something very similar to the stunning riposte in the first paragraph (which was, by the way, a completely accurate and very incisive criticism of what I was working on at the moment).

Index entries for this article
KernelFilesystems
KernelKernel Hacker's Bookshelf
GuestArticlesAurora (Henson), Valerie


to post comments

Log-structured file system in use today

Posted Aug 21, 2006 16:46 UTC (Mon) by sdoyon (guest, #4221) [Link] (5 responses)

> Today, no major production file system is log-structured.

It might not qualify as "major production", but I believe there is
one log-structured file system that some people here might be familiar
with: JFFS2, for flash in embedded devices.

Log-structured file system in use today

Posted Aug 21, 2006 17:01 UTC (Mon) by arjan (subscriber, #36785) [Link] (3 responses)

there is an issue with jffs2 though.. it doesn't really scale with size. Nowadays 8 Gb of flash is not uncommon, but jffs2 just is impractical to use there. In addition, jffs2 does waste quite some space that it needs for the garbage collector to do it's work...

(and technically, jffs2 is log structured with a few twists, it's not strictly log structured, but chunked into log pieces)

Log-structured file system in use today

Posted Aug 21, 2006 18:36 UTC (Mon) by drag (guest, #31333) [Link]

One log-structured file system that seems pretty impressive with good likelihood of future acceptance is NILFS from Nippon Telegraph and Telephone company of Japan.
http://www.nilfs.org/en/current_status.html

Seems interesting. I like the idea of a 'lossless' file system and being able to mount snapshots of a file system at different times in it's history.

Log-structured file system in use today

Posted Aug 22, 2006 5:46 UTC (Tue) by nhippi (subscriber, #34640) [Link]

However, there is nothing more better to use on > 8Gb flashes either :(

Log-structured file system in use today

Posted Nov 26, 2006 19:42 UTC (Sun) by joern (guest, #22392) [Link]

> (and technically, jffs2 is log structured with a few twists, it's not
> strictly log structured, but chunked into log pieces)

As is the original Sprite LFS, actually.

Log-structured file system in use today

Posted Aug 21, 2006 20:44 UTC (Mon) by wookey (guest, #5501) [Link]

I was about to make that point as well. There are an awful lot of production systems using JFFS2 (and a much smaller number using YAFFS(2), also log-structured). OK, it's a rubbish _disk_ filesystem but in small-system world disks are the exception rather than the rule. So I don't think 'major production' is going too far.

KHB: A Filesystems reading list

Posted Aug 21, 2006 17:48 UTC (Mon) by smitty_one_each (subscriber, #28989) [Link] (2 responses)

Great article.
Using the Search interface on "Kernel Hacker's Bookshelf", returned some grumbling, and dropping the 's only brought up Love's book.
Could there be a http://lwn.net/Kernel/Index/ entry for these articles?

Kernel index entry

Posted Aug 21, 2006 17:53 UTC (Mon) by corbet (editor, #1) [Link] (1 responses)

But there is a kernel index entry for "Kernel Hacker's Bookshelf".

....now...

Kernel index entry

Posted Aug 21, 2006 18:00 UTC (Mon) by smitty_one_each (subscriber, #28989) [Link]

An old boss always used to say "Time...is a /western/ disease."
Especially when late to a meeting. ;)

KHB: A Filesystems reading list

Posted Aug 21, 2006 19:30 UTC (Mon) by nix (subscriber, #2304) [Link] (1 responses)

Just a thank you for _The Utility of File Names_; a fascinating paper both
for the niftiness of its ideas and the poverty of what they planned to do
with it (a trainer that doesn't run continuously and doesn't collect data
from the VFS interface, a small set of static predictions, using it only
to choose between two filesystems). Most of these restrictions are simply
because their data collection mechanism was so unwieldy: collecting
complete NFS packet dumps is, well, wildly silly. It's probably also the
only viable method on a closed-source kernel.

A possible variation which occurs to me on a whole ten seconds'
consideration (awed silence, yes, I know) would be to turn the trainer
upside down, and have it constantly watch file
access/modification/creation/deletion patterns, cluster them, and try to
classify each cluster by filename. (The latter job seems like one of those
rather rare cases that cries out for a neural net.)

Anyway, just babbling aloud here really, everyone else probably thought of
this years ago and there's some terribly obvious reason why it won't work.

KHB: A Filesystems reading list

Posted Aug 24, 2006 7:33 UTC (Thu) by vaurora (guest, #38407) [Link]

_The Utility of File Names_ is great, huh? The authors went on to do more interesting things with it, including building an engine to automatically correlate file name patterns and usage patterns. See:

http://www.eecs.harvard.edu/~ellard/pubs/able-usenix04.pdf

And the rest of Ellard's publications:

http://www.eecs.harvard.edu/~ellard/pubs.html

-VAL

KHB: A Filesystems reading list

Posted Aug 22, 2006 1:14 UTC (Tue) by nlucas (guest, #33793) [Link] (16 responses)

Another excelent article by Valerie Henson for those like me who don't really want to be filesystem experts but always want to know a little more.

I'll be waiting for the next! :-)

One thing I miss is some info about any generic filesystems for the now common flash disks, or even CD+-RW/DVD+-RW. Last time I checked jffs/yafs can't be used on generic block devices, only on memory devices (or with some wrapper driver). Couldn't we be using some variation of jffs2 for CD+-RW/DVD+-RW? Maybe with the help of FUSE, as the kernel doesn't know how to write to the CD/DVD?

It seems ideal for incremental backups, at least...

KHB: A Filesystems reading list

Posted Aug 22, 2006 17:45 UTC (Tue) by nix (subscriber, #2304) [Link] (9 responses)

CD-RW et al are what UFS is designed for. JFFS has completely different
constraints (i.e. zero-seek-time filesystems rather than
very-high-seek-time filesystems). I haven't tried it but I'd wager the
performance of JFFS on CD-RW would be utterly awful.

KHB: A Filesystems reading list

Posted Aug 22, 2006 23:25 UTC (Tue) by nlucas (guest, #33793) [Link] (8 responses)

    CD-RW et al are what UFS is designed for.

Yes I know, but last I checked it's read-only, i.e. you can't use it on a partition as a normal filesystem, like the old msdos filesystem.

You have no easy way (AFAIK) to just add a file to a DVD-RW, like copy/paste or drag a file to a DVD-RW folder.

I would be happy enough when I can do something like this from the command line:

$ ufs-cp somefile.txt /media/cdrw/somedir/
and let it do the rest in the background (and not wait an eternity, off course). Much like the old days with DOS formated floppy disks.

My home PC still have an USB 1.1 hub and so I'm used to wait until it flushes all writes to the USB pen when unmounting. I only ask for something similar for a DVD-RW (the speed should not be that much different than for USB 1.1).

And you have the advantage that you can actually prevent the user from ejecting the CD/DVD before all writes are flushed, so less risk of user generated filesystem corruption (at least for users that don't use that cute little hole to open the "cup-holder" ;-).

KHB: A Filesystems reading list

Posted Aug 23, 2006 1:24 UTC (Wed) by nlucas (guest, #33793) [Link] (1 responses)

s/UFS/UDF/

It seemed weird, but followed your path without thinking more about it ;-)

KHB: A Filesystems reading list

Posted Aug 23, 2006 16:34 UTC (Wed) by nix (subscriber, #2304) [Link]

Um. Yes. Brainfart, sorry.

KHB: A Filesystems reading list

Posted Aug 23, 2006 16:37 UTC (Wed) by nix (subscriber, #2304) [Link] (2 responses)

What? Packet-written CD-RWs use UDF filesystems, and act just like a normal filesystem (except that the device is really rather slow and the filesystem overhead is ridiculous). In modern CD-RWs and all DVD-RWs this is even in hardware (while I haven't yet seen a CD rewriter that has packet-writing firmware that works well, this may not be true of DVD-RW drives).

It's ISO-9660 that has to be built in one lump.

KHB: A Filesystems reading list

Posted Aug 24, 2006 21:51 UTC (Thu) by nlucas (guest, #33793) [Link] (1 responses)

I now understand the problem has nothing to do with filesystems, except the UDF overhead problem (and ISO-9660 compatibilty), as it's the only usable CD/DVD RW filesystem (because it can be read everywhere).

It seems the problem is only on the software side (for modern RW drives, I mean), and maybe cdrecord "flame wars" have delayed the adoption of a standard linux solution for the typical user cases (like maybe a FUSE DVD UDF filesystem that works the same as a USB pen, i.e. can add/delete files on the fly).

Well, I still have a lot of doubts about the process, but the truth is this thread is becoming off topic so I'll refrain my thoughts for latter times.

KHB: A Filesystems reading list

Posted Aug 27, 2006 15:53 UTC (Sun) by nix (subscriber, #2304) [Link]

We already have exactly that feature: the packet-writing driver. If you're
packet-writing to CD-RW (or DVD-RW) you don't *need* cdrecord, or FUSE.

(It does indeed have significant overhead, as you say.)

KHB: A Filesystems reading list

Posted Aug 24, 2006 2:12 UTC (Thu) by wookey (guest, #5501) [Link] (2 responses)

growisofs meets your command line criteria, I think.

growisofs -M /dev/dvd files

will add files to a disk (CD or DVD).

KHB: A Filesystems reading list

Posted Aug 24, 2006 7:36 UTC (Thu) by drag (guest, #31333) [Link]

growisofs even supports pipes...

My favorite backup technic for my own home directory is to use growisofs with splitpipe.

Splitpipe is a nice utility that splits files just like 'split' does, but it performs a action on each section it makes.

Check it out:
tar c /home | splitpipe -s dvd -o 'growisofs -Z /dev/dvd=/dev/stdin'

It'll burn a DVD until it gets finished, pause, prompt you for you to press enter so you can have time to pop in a new DVD and off you go.

Then they have a 'joinpipe' command for rebuilding the data.

Supports md5sum'ng the data and makes sure you don't accidently try to join the data back together in the wrong order and such.

Of course if you have a file that is less then 4 megs you could just go:

cat filenmae |growisofs -Z /dev/dvd -

And I think that should work out fine. Then you should be able to 'cat /dev/dvd > whatnot' to get it back.

Haven't tried it personally like that, but I expect it to work fine.

KHB: A Filesystems reading list

Posted Aug 24, 2006 21:57 UTC (Thu) by nlucas (guest, #33793) [Link]

I'm almost certain I had read the growisofs manual page some moons ago, but somehow missed that command.

Thanks for the heads-up. I'm an happier man now :-)

KHB: A Filesystems reading list

Posted Aug 22, 2006 18:27 UTC (Tue) by plougher (guest, #21620) [Link] (3 responses)

>Couldn't we be using some variation of jffs2 for CD+-RW/DVD+-RW? Maybe >with the help of FUSE, as the kernel doesn't know how to write to the >CD/DVD?
>
>
Try squashfs - this is a compressed filesystem which is being used a lot for liveCDs. It also achieves better compression than JFFS2.

>
>It seems ideal for incremental backups, at least...

Squashfs is read-only, but it does support appending to the filesystem. This was added specifically to support incremental backups.

KHB: A Filesystems reading list

Posted Aug 22, 2006 23:49 UTC (Tue) by nlucas (guest, #33793) [Link] (2 responses)

    Try squashfs - this is a compressed filesystem which is being used a lot for liveCDs. It also achieves better compression than JFFS2.
I really don't care about compression, but I suppose it doesn't hurt.
    Squashfs is read-only, but it does support appending to the filesystem. This was added specifically to support incremental backups.
But how is this used on a DVD-RW?

    1) You have a squashfs disk image and append to it, writing the final image to the CD/DVD when a certain size is reached?
    2) You use a CD/DVD-RW (with UFS or whatever) and update a squashfs image file on the disk?
    3) Other...

If it's 1) then it doesn't matter what filesystem is used. If it's 2), it's nice for incremental backups, but it will not allow you to take advantage of the fact that you can delete files on a -+RW disk (but good for -+R disks).

Hope it's 3)...

KHB: A Filesystems reading list

Posted Aug 23, 2006 1:25 UTC (Wed) by nlucas (guest, #33793) [Link]

s/UFS/UDF/

KHB: A Filesystems reading list

Posted Aug 24, 2006 18:27 UTC (Thu) by plougher (guest, #21620) [Link]

>If it's 1) then it doesn't matter what filesystem is used. If it's 2), >it's nice for incremental backups, but it will not allow you to take >advantage of the fact that you can delete files on a -+RW disk (but good >for -+R disks).

You could do 2) and store the Squashfs filesystem image inside a UFS/ISO9660 filesystem. If the UFS/ISO9660 filesystem was writable, then the Squashfs file could be updated and extended in place.

>Hope it's 3)...

I always write the Squashfs filesystem directly to the disk (not within a UFS/ISO9660 filesystem). Mounting is then done by mounting directly from the disk (i.e. mount -t squashfs /dev/hda /mnt). Appending to this can be done, but it requires the ability to update the superblock (block 0), and to re-write the directory structure. I've never tried to do this, and so don't know if it is possible.

Pure appending to the Squashfs filesystem (so no blocks in the original filesystem are touched) isn't possible, because of the need to update the superblock and directory structure (stored at the end of the filesystem). Extending Squashfs to do this isn't impossible, it requires Squashfs to append the new superblock (and changed metadata) to the end of the filesystem, and then scanning for any new superblocks on mounting - i.e. what log structured filesystems do.

KHB: A Filesystems reading list

Posted Aug 24, 2006 2:26 UTC (Thu) by wookey (guest, #5501) [Link] (1 responses)

Last time I checked jffs/yaffs can't be used on generic block devices, only on memory devices (or with some wrapper driver).

Yes. This is the case. It would be nice to have the robustness of log-strucutreed filesystems on flash devices accessed as block devices, but it's actually very difficult to achieve. The problem is that although USB sticks and SD/MMC cards and CF cards use flash, they hide it behind a controller which does who-knows-what behind the scenes in order to make it look enough like a disk that cameras can pretend it is a DOS FAT disk. The controllers remap blocks to retire bad blocks and (on the better ones) to avoid premature wear in the cluster tables at the start of the FAT format. But precisely because they do these things there is little benfit to using a filesystems like YAFFS/JFFS which knows about flash directly and does the right thing itself. You might as well just use something designed for disks.

So you can use YAFFS/JFFS on smartmedia and xD cards because they expose raw NAND flash, but not on all the others.

Various sorts of shims have been considered but the general consensus seems to be that it's not worth bothering with.

KHB: A Filesystems reading list

Posted Aug 24, 2006 22:08 UTC (Thu) by nlucas (guest, #33793) [Link]

If we don't know what the controller does, is there any filesystem that is better than others on this kind of disks?

What I mean is that we could conceive one of those micro-atx VIA boards with an IDE flash disk (I believe they use a normal Compact Flash memory) running a linux system, but FAT seems awfull for such a system (if it works at all). I tried to google about it but couldn't find a definitive answer.

KHB: A Filesystems reading list

Posted Aug 23, 2006 4:58 UTC (Wed) by bronson (subscriber, #4806) [Link]

It's a shame tux2 never went anywhere. At the time it seemed like a good variant on the CoW theme. Alas.

http://www.uwsg.iu.edu/hypermail/linux/kernel/0208.3/0336...

KHB: A Filesystems reading list

Posted Aug 24, 2006 15:40 UTC (Thu) by ahoh (guest, #17291) [Link]

" ... I haven't met anyone other than the authors who claimed to
understand it well enough to implement it. The paper is pretty
understandable up to about page 5, at which point your head will explode."

What a mean bait! :-)

KHB: A Filesystems reading list

Posted Aug 24, 2006 18:20 UTC (Thu) by kpower (guest, #37136) [Link]

This was both a great article, and overview of informative papers. Val's writing style really helps pique ones curiosity, and show you how to use your new found knowledge:
come up with stunning ripostes like, "Aha, but that's really just another version of soft updates, and it doesn't solve the nlinks problem." (Admiring silence ensues.)
Please, more article authors like this.

KHB: A Filesystems reading list

Posted Aug 24, 2006 22:12 UTC (Thu) by jonabbey (guest, #2736) [Link]

Brava, Valerie, and Bravo to Jon et al for getting you on board with this sort of thing.

KHB: A Filesystems reading list

Posted Aug 24, 2006 22:16 UTC (Thu) by beagnach (guest, #32987) [Link]

great article.

To follow up, how about an article comparing the different filesystems in use today? There are fascinating technologies like reiserfs, zfs, xfs,... out there but more traditional filesystems like ext2/3 and ufs are still dominant. It would be nice to have a good article about the promises of the newer approaches and the real-world factors that keep older approaches popular, and if this is going to change any time soon.

And a similar article about network filesystems would also be nice:
"NFS, the network file system everyone loves to hate but uses all the time anyway."
It's not as if alternatives have not been developed - AFS and Coda, InterMezzo - or are favoured in certain circles - CIFS/SMB.
Again, comparisons of features and real world performance would be great.

Of course this kind of information may well be available from a quick google, but articles by engineers who actually work on this kind of stuff and can write in English are hard to find in the noise. Feel free to post a link...

Reiser4: a CoW filesystem?

Posted Aug 26, 2006 18:17 UTC (Sat) by Blaisorblade (guest, #25465) [Link] (1 responses)

Since I read (probably not fully, but maybe) reiser4 whitepaper, I'm quite surprised it is not mentioned here in the CoW category.

They specifically credit the idea (which they call Wandering Logs) to WAFL, and use it also for its easy-to-get atomicity guarantees, and I'm even more surprised since you talked with Nikita Danilov (who worked on reiserfs in the past).

Is there any reason for this? Aka is not Reiser4 a COW filesystem?

Reiser4: a CoW filesystem?

Posted Aug 29, 2006 17:54 UTC (Tue) by vaurora (guest, #38407) [Link]

Reiser4 is many things. I am afraid I don't understand it well enough to venture to classify it.

KHB: A Filesystems reading list

Posted Aug 29, 2006 6:16 UTC (Tue) by RamiRosen (guest, #37330) [Link]

Hi,

1) Thanks , Valerie Henson and Jonathan Corbet , for this interesting article.

2) I want to mention that I had encountered in the past
a book titled "Linux Filesystems"
by William Von Hagen ,Sams, 2002, (ISBN: 0672322722).

I read three chapters and I think it is quite well written.
see:
http://www.samspublishing.com/bookstore/product.asp?isbn=...

(Keep in mind that linux filesystems is a dynamic area, and that since 2002 this book was not updated , though)
When I tried to purchase this book I found that in most places it is not
available.

Rami Rosen

Never mind the article...

Posted Aug 31, 2006 23:40 UTC (Thu) by jd (guest, #26381) [Link]

I want to know where these parties are!

Very nice package

Posted Sep 2, 2006 19:39 UTC (Sat) by Baylink (guest, #755) [Link]

Not to denigrate the quality of other long-form pieces in LWN, but I was very impressed by this article, Valerie. Nice balance of information and almost-complete-lack-of-boredom. :-)

One small nit: Don't actually *label* your sidebars as that; it's jargon-y. Unless that's what you were trying for. And you didn't, actually, *tell us* where they are *now*, that I could see; merely where they've been. Also :-)


Copyright © 2006, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds