Linux Gains Lossless File System 331
Anonymous Coward writes "An R&D affiliate of the world's largest telephone company has achieved a stable release of a new Linux file system said to improve reliability over conventional Linux file systems, and offer performance advantages over Solaris's UFS file system. NILFS 1.0 (new implementation of a log-structured file system) is available now from NTT Labs (Nippon Telegraph and Telephone's Cyber Space Laboratories)."
Stable? (Score:5, Informative)
The system might hang under heavy load.
The system hangs on a disk full condition.
Aren't those kind of important to saying that something is stable?
Here's an overview for lazy people like me (Score:3, Informative)
* Slick snapshots.
* B-tree based file and inode management.
* Immediate recovery after system crash.
* 64-bit data structures; support many files, large files and disks.
* Loadable kernel module; no recompilation of the kernel is required.
actual info about the fs (Score:5, Informative)
Re:New Improved? (Score:3, Informative)
Re:Horrible headline (Score:5, Informative)
A log-structured filesystem doesn't modify existing files. Every time you write to the disk, you simply append some deltas. This gives very good write performance, but poor read performance (since almost all files will be fragmented, and the entire log for that file must be replayed to determine the current state of the file). To help alleviate this, most undergo a vacuuming process[1], whereby the log is replayed, and a set of contiguous files is written. This also frees space - something that is not normally done since deleting a file is done simply by writing something at the end of the log saying it was deleted. In addition to the good write performance, log-structured filesystems also have an intrinsic undo facility - you can always revert to an earlier disk state, up until the last time the drive was vacuumed.
The snapshot facility is not particularly impressive. It's a feature intrinsic to log-structured filesystems, and also available in other filesystems (such as UFS2 on FreeBSD and XFS on Linux). The performance advantage claims must be taken with a grain of salt - write performance for log-structured filesystems is always close to the theoretical maximum of the disk, but this is at the expense of some disk space, and read speed (although LFS did beat UFS in several tests on NetBSD).
[1] This is usually done in the background when there is little or no disk activity.
Re:Shutdown versus power off (Score:1, Informative)
When you cut the power to a HD, the head stops wherever it is- sometimes even settling on the drive itself. This causes severe wear and tear, and sometimes damage. It's one of the many reasons why people are told always leaving your computer on is less damaging than turning it off.
The difference between cutting power and a proper shut down, is that during a proper shut down, the OS ensures A) everything is written (which you may not care about) and B) that the drive heads are in a locked, safe(ish) position.
You may not care about A, but you really should care about B.
Re:Bloat? (Score:5, Informative)
The version I wrote took advantage of the client's bursty IO pattern and used the slow periods to offload the data to an ext2 filesystem on a seperate disk. Hopefully your system memory was large enough that the offload to the secondary filesystem happened without any disk reads. Once that was done, the older sections of log could be re-used.... But only once the disk filled up and wrapped back to the beginning, because you want to keep your writes (essentially... There's other timing tricks you can play to get more speed) sequential.
There's been lots of research done on this method of write structuring. Look for papers on the "TRAIL [sunysb.edu]" project (also closed source), for example.
Re:Bloat? (Score:2, Informative)
Re:Shutdown versus power off (Score:2, Informative)
That doesn't mean that you won't lose data that hasn't been written yet, of course.
Re:There's no replacement for ext3fs yet for me... (Score:4, Informative)
It does have ACL, and quota support is fine at least in gentoo kernels (can't check a vanilla one atm)
Re:The dreaded question (Score:3, Informative)
Re:New Improved? (Score:5, Informative)
for common servers, or day-to-day use. it isn't
but notice how this was developped by a telecom company? a log structured filesystem is perfect or even required, due to speed and integrity constraints (depending on the size of the network), when you're dealing with billing and monitoring data on a telecom network. you want something that's simple and extremely resistant to failures. a complete system crash (which never happen, short of nuking the box) should not result in any data loss, or the extreme minimum, and you should be able to recreate that data from somewhere else (eg, the other endpoint in a telephone network).
a log structured filesystem allow this, the "head" is never over previous data in normal operation. you don't typically read the data back until the end of a cycle (whatever that cycle may be) or in a debugging condition. you simply append to the end. minimizing head movement, and thus increasing mtbf (replacing a disk in those things is costly)
this is also extremely useful for logging to WORM media (write once, read many), for security logs mostly. you don't want a hacker to be able to remove them, no matter what they do
Re:Shutdown versus power off (Score:2, Informative)
"Turning the system power off causes the WD Caviar to perform an automatic head park operation."
It wasn't a high-end drive at the time, (just a consumer-level IDE drive), and was utterly obsolete years ago, yet it still had the technology to park the heads out of the way when power is disconnected. There's no way that turning off power to a new drive is going to physically damage it. You just might lose the data on it.
Re:Horrible headline (Score:3, Informative)
Not really +1, Insightful (Score:3, Informative)
The biggest problem of this filesystem [nilfs.org] (link is missing from the original posting) is that it's Not Really Ready (among other important stuff, mmap() is not implemented yet).
Re:Shutdown versus power off (Score:2, Informative)
Re:HDFS (home-dir FS)? (Score:1, Informative)
Re:Shutdown versus power off (Score:4, Informative)
1. It goes into the OS filesystem cache. After 5 seconds the modified data gets flushed to the disk (sometimes set to 30 sec).
2. It is written to the hard drive. Here, it sits in the hard drive controller's on-board cache until the head arrives at the write point, which is a fraction of a second.
3. It is written to disk.
So it *can* happen that data is not written properly, but unlike the scary picture you paint it is extremely unlikely. Even if you just saved your data, just do a sync and you'll be fine turning the power off.
Comment removed (Score:2, Informative)
Re:HDFS (home-dir FS)? (Score:2, Informative)
Re:Bloat? (Score:3, Informative)
http://cm.bell-labs.com/sys/doc/venti/venti.html [bell-labs.com]
http://cm.bell-labs.com/magic/man2html/8/venti [bell-labs.com]
Sean Quinlan [bell-labs.com] now works at Google, I'm not sure if Sean Dorward does, but it seems most of the other people who built plan9 at Bell Labs do.
Re:HDFS (home-dir FS)? (Score:3, Informative)
You could possibly implement it with DavFS [sourceforge.net]...
Re:Linux files systems suck ass.. (Score:3, Informative)
Apart from the big (production quality) alternatives like IBM's JFS (which I use myself) and SGI's XFS (and Reiser - "Reiser sucks when it breaks" is so 1999) Linux additionally supports the following filesystems (from http://www.xenotime.net/linux/linux-fs.html [xenotime.net], also try http://www.tldp.org/HOWTO/Filesystems-HOWTO.html [tldp.org]):
* accessfs: permission filesystem
* AFS FAQ
* AutoFS
* AVFS: A Virtual File System
* AVFS: A Virtual Filesystem
* BeFS for Linux2.4
* BeOS filesystem for Linux
* BFS UnixWare, Linux Implementation of
* CDfs
* CIFS
* Cluster File Systems Home
* Coda File System
* Crypto HOWTO
* convertfs: convert Linux filesystems
* DAFS: Direct Access File System
* Devfs (Device File System) FAQ
* efslook: read/debug EFS filesystems (ported to Linux & x86) {new}
* Enhanced Loopback (for XFS)
* E2fsprogs: Ext2 Filesystem Utilities
* E2fsprogs: Ext2 FS Utilities
* Ext2 Compression Extension
* FSDEXT2: ext2 filesystem for Win95
* ext2fsnt: Linux Ext2 filesystem for Windows NT driver
* ext2 fs resize utilities
* ext2 online growth patch (adilger)
* Explore2fs
* FHS: Filesystem Hierarchy Standard
* FHS Test Suite
* Filesystems HOWTO
* FiST: File System Translator
* FreeVXFS
* fsv: 3D File System Visualizer
* Global File System (Sistina)
* GNU ext2resize: ext2 filesystem resizer
* HFS+ filesystem
* HFS+ filesystem #2
* InterMezzo FS
* JFFS (axis.com)
* Journaling Flash File System, v2
* JFS for Linux (IBM)
* journal_fs report (OSDL)
* Kragen's Amazing List of Filesystems
* Large File Support in Linux
* Large File Summit (LFS) stuff
* Large File / File System Support
* Linux EXT2 salvage utility
* Linux Ext2fs Undeletion mini-HOWTO
* Linux FAT-32 support
* Linux filesystem redundancy
* Linux Links: File Systems
* Linux NFS FAQ
* Linux RAID Solutions
* LUFS: Linux Userland File System
* Lustre & Lustre Light filesystems
* NFS project
* NFSv4 for Linux 2.4
* Linux NTFS file system support
* loop-aes cryptoloop device