Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

RE: state or future of LFS?

> Andreas Gustafsson wrote
> Indeed it is not.  The main reason why I would love to see a working
> log-structured file system in NetBSD is that it seems like such a
> perfect match for solid state disks and other flash-based media.
> Flash tends to have performance problems with small scattered writes,
> which is exactly what LFS avoids, and if LFS has problems with
> fragmentation as some have claimed, it will benefit from a medium
> with very fast seeks, which is exactly what flash provides.

About five years ago, Mike Chen and I, with help from some others, while we
were both still at Palmsource, did a bunch of work trying to get LFS to work
as a NAND flash file system. After about a year's work, we had it more or
less running, but it was moderately buggy. Unfortunately, the code is
Palmsource (now Access) proprietary, and much of the work was stripping out
buffer cache and porting it to PalmOS Garnet.

I've since ported another NAND filesystem, YAFFS to NetBSD, and have had
experience with the JFFS family of flash file systems.  From that
experience, I would suggest that, perhaps, adapting LFS as a flash file
system might not be optimal.

I think we learned two lessons from porting and implementing flash file
systems over the last five years:

1) NAND flash is not enough like NOR flash to justify a single flash file
system.  The presence of spare areas on NAND and the large size of the erase
unit compared to the write unit makes enough differences that it makes more
sense to have a NAND specific flash.

2) NAND flash isn't a good match for the current unified buffer cache,
because of erase unit size, but also because it makes sense to use the spare
area for meta data in a NAND file system.

Also, most consumer NAND flash devices such as usb sticks, tend to have a
microcontroller that hides block rewriting and wear leveling, so you don't
really have access to the raw NAND anyway.  I believe that the current
generation of SSDs work that way, but I'm not familiar with them.

Since I can't get the company that bought Danger to meet the commitment I
had made on Danger's behalf to release much of what we had done under the
BSD license, I have decided to design and implement a NAND flash file system
based on what I've learned over the last decade.

At the moment, I'm trying to resurrect a TS7250 arm board and finish a NAND
driver for it.  Once that's done, I'll start on the file system.  

Home | Main Index | Thread Index | Old Index