Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Data Storage Software Linux

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)."
This discussion has been archived. No new comments can be posted.

Linux Gains Lossless File System

Comments Filter:
  • NTFS (Score:2, Interesting)

    by JustASlashDotGuy ( 905444 ) on Tuesday October 04, 2005 @11:14AM (#13712872)
    " When the system reboots, the journal notes that the write did not complete, and any partial data writes are lost. "

    Isn't this similar to NTFS's journaling file system?

  • Re:Bloat? (Score:3, Interesting)

    by Ayanami Rei ( 621112 ) <rayanami&gmail,com> on Tuesday October 04, 2005 @11:14AM (#13712876) Journal
    There is a "cleaner" that is on the TODO list.
    Of course, you can delete files and re-use the space. But the performance slows down greatly once you start filling in "holes" left in the log after wrapping to the end of the allocated area. (A similar situation to database where you might want to compact, vacuum, condense, etc. a table).
  • Bundling (Score:3, Interesting)

    by superpulpsicle ( 533373 ) on Tuesday October 04, 2005 @11:15AM (#13712883)
    If they are serious about a filesystem, it has to be bundled with the linux distros every release. Take Reiser and JFS for example, some distros have it, some don't. Not every release of the same distro has it, what a mess. Only two have stayed permanently EXT2, EXT3. Everything else is trendy.

  • by Work Account ( 900793 ) on Tuesday October 04, 2005 @11:19AM (#13712925) Journal
    Aside from gasoline and water, data is the most valuable thing in the world.

    Walmart's most prized possesion is their billion-billion-billion transaction customer sales database. They use it to find things like, among other things, men tend to buy beer and diapers at the time.

    With disks costing $1.00/GB or less these days, many people including myself simply DON'T delete data anymore. I keep all my original digital photos (in .tiff format) along with full-quality movies and all the games I've ever played back to Duke Nukem on 80x386 on a RAID array that's grown to nearly 2 terabytes.

    So yes, for many people, disk space is just something you keep adding to, like you'd move from a coupe to a sedan when you have kids and when you have that 6th kid you move to a minivan and if you happen to have 2 more, you get a cargo van when #8 comes along :) Same for HDDs
  • by pesc ( 147035 ) on Tuesday October 04, 2005 @11:24AM (#13712998)
    Ever since journaling file systems became available I just started turning the power off to my computers (via a power strip) rather than going through the shutdown command.

    That's a very bad idea. Normally, journaling file systems only guarantee that the file/directory structure remains intact. It does not necessarily guarantee that the data in the files hit the disk. Also, your disk will probably have a cache that is lost when you remove power. Whatever is in the cache will also be lost.

    So your file system may be intact, but your practices will probably destroy data.
  • HDFS (home-dir FS)? (Score:5, Interesting)

    by Ramses0 ( 63476 ) on Tuesday October 04, 2005 @11:32AM (#13713069)
    I've had an idea kicking around for a while now... "HDFS / Home-Dir File System" ... I want a (s)low-performance, bloated, version controlled, roll-back featured, viewcvs.cgi enabled file system for my /home/rames (or at least /home/rames/documents).

    With FUSE [sourceforge.net] it might even be possible for mere mortals like me.

    Basically, I very rarely push more around more than 100-200kb at a time of "my stuff" unless it's big OGG's or tgz's, etc. Mostly source files, documents, resume's, etc. In that case, I want to be able to go historical to any saved revision *at the file-system level*, kindof like "always on cvs / svn / (git?)" for certain directories. Then when I accidently nuke files or make mistakes or whatever, I can drag a slider in a GUI and "roll-back" my filesystem to a certain point in time and bring that saved state into the present.

    Performance is not an issue (at first), as I'm OK if my files take 3 seconds to save in vim or OpenOffice instead of 0.5 seconds. Space is not an issue because I don't generally revise Large(tm) files (and it would be pretty straightforward to have a MaxLimit size for any particular file). Maintenance would also be pretty straighforward: crontab "@daily dump revisions > 1 month". Include some special logic for "if a file is changing a lot, only snapshot versions every 5-10 minutes" and you could even handle some of the larger stuff like images without too much work.

    Having done quite a bit of reading of KernelTraffic [kernel-traffic.org] (Hi Zack) and recently about GIT [wikipedia.org], maybe it's time to dust off some python and C and see what happens...

    --Robert
  • by TheRaven64 ( 641858 ) on Tuesday October 04, 2005 @11:38AM (#13713129) Journal
    Wow, just wow. Seriously, I really, really hope you don't have any important data.

    Here's a little (simplified) tutorial on what happens when you a program writes a file to disk:

    1. It goes into the OS filesystem cache. This is often several hundred MBs. At some point, the OS decides it is not important enough to be kept around. At this point,
    2. it is written to the hard drive. Here, it sits in the hard drive controller's on-board cache. When the cache is full,
    3. it is written to disk.
      • At any given time, you may have several hundred MBs of data that show up when you browse your filesystem, but have never made it to disk. When you hit the power button, all of this data evaporates as the current fades from your RAM chips (over about 10ns). The only thing journalling filesystems do to improve this is ensure that, when the data is being written to disk, if the system crashes in the middle of the write then the system can be restored to either the beginning or end of the transaction, rather than the middle. A journalled filesystem will (in theory) never be corrupted by the power failing, but that does not mean you will never lose data - you will, and potentially large amounts of it. In short, if you continue with this practice, then you are a numpty.
  • by Jason Hood ( 721277 ) on Tuesday October 04, 2005 @11:49AM (#13713243)
    Here is a sampling of the known bugs

    The system might hang under heavy load.
  • by Medievalist ( 16032 ) on Tuesday October 04, 2005 @01:41PM (#13714291)
    If you have a licensed copy of the OS you can get source. Or at least, you used to be able to - many years ago when I was considered a VMS expert (something I certainly am not now) I used to look stuff up in the fiche; most of the stuff I was referencing was written in BLISS, I think.

    As I recall, RMS is an indexed file management system. I wrote a molluscan taxonomy database system that used it in the 80s... but I usually encapsulate all OS-specific stuff in subroutines, so somebody has probably ported it to a cheaper database by now.

  • by Anonymous Coward on Tuesday October 04, 2005 @04:03PM (#13715860)
    NTFS has had criteria 1-6 for over 12 years, 7 and 8 for 5 years, and 9 has been around since the most recent versions. About the only thing it doesn't support is versioning, although snapshots are often as good.

    Since it was designed for POSIX compliance, it has file change times, case sensitivity, and hard links. About the only issue is that you may have to write your own plug-in for proper soft link support.

    As bonus features, you also get a change journal (persistent log of all directory changes -- useful for indexing applications), programmatic sparse files (you use ioctls to tell it where the holes are), Unicode filenames, multiple data streams per file, and a plug-in architecture (reparse points).

    Additionally, there are already plug-ins (reparse point filters) for things like copy-on-write files, hierarchical storage (an old file may be archived to CD, but still has a directory entry, and when opened is brought back onto disk), and persistent mount points.

    And in upcoming versions there will be more goodies, such as directory quotas, filename restrictions (so you could prevent somebody from creating a filename that ends in '.exe' in your web root), and fully distributed ACID transactions.

    Now some may argue that some of these things, such as compression and encryption, don't belong in the filesystem. However, I can't think of any way to do it cleaner. For one thing, in order to encrypt a file you must first compress it (reduce entropy). Do you have compression on top of encryption on top of the filesystem, or do you have two different compression implementations?

    Your compression layer would need to intercept not only reads and writes, it would have to intercept calls to get or set the file length, otherwise an unsuspecting program would get the compressed size. And now your compression layer needs some metadata about which files are compressed and what their expanded sizes would be. Where do you store that? Do you put it all in one file somewhere that an unwitting sysadmin might be tempted to delete it to save space, or where a single corrupt sector could screw up all the data, causing you to lose every one of your compressed/encrypted files? Remember, most filesystems log metadata changes, not data changes. Since compression is sitting on top of the filesystem, its metadata looks like regular data to the FS, so it is (along with all of your files) vulnerable in the event of a crash.

    What happens when somebody decides to optimize the compression layer by storing some of the compressed data (perhaps a Huffman coding table) in the metadata file? Since the metadata file probably isn't encrypted, an attacker now has some information to help him decrypt your files!

    dom
  • by Just Some Guy ( 3352 ) <kirk+slashdot@strauser.com> on Tuesday October 04, 2005 @05:00PM (#13716512) Homepage Journal
    Does such a thing exist for Linux?
    SCRATCH=/filesystem/to/clean/someUnlikelyFileName
    dd if=/dev/urandom of=$SCRATCH; rm $SCRATCH
    will probably work. It overwrites every available block on your drive with random data, then deallocates them. If anyone knows why that wouldn't work, I'd be interested in hearing it.

    Assuming that it does actually do the trick, it might be even better than wiping a single file. Since the whole drive would be filled with random data, there wouldn't be any conspicuous wiped blocks sitting in the middle of an otherwise normal looking filesystem.

  • Version control FS (Score:2, Interesting)

    by lemaymd ( 801076 ) on Tuesday October 04, 2005 @06:35PM (#13717472) Homepage
    I've always wondered if it would be worthwhile to have a version control style filesystem. Basically, a built-in subversion or CVS-type backend that operates without your knowledge until you need to roll something back. Of course you'd need to manage space usage, but with 1TB storage capacities within reach of the home user perhaps it's less of an issue? I think losing data is quite a bit more expensive than storage these days. :-)
  • Re:Horrible headline (Score:3, Interesting)

    by addaon ( 41825 ) <addaon+slashdot.gmail@com> on Tuesday October 04, 2005 @10:18PM (#13719059)
    But, on a log based file system, writing is (intended to be) "fast enough". The problem with writing to a normal file system is mechanical issues; moving the head, waiting for rotation, etc. The (unobtainable in the limit) goal of a log based file system is to be able to start writing /immediately/ with the current head position; therefore, latency is (or approaches) zero and bandwidth is limited by disk bandwidth (which is, in practice, not the limiting point for most small writes).

All seems condemned in the long run to approximate a state akin to Gaussian noise. -- James Martin

Working...