Francais | English | Espanõl

NILFS

From Wikipedia, the free encyclopedia

Jump to: navigation, search

NILFS is a log-structured file system implementation for Linux (currently 32-bit x86 only). It stands for New Implementation of a Log-structured File System (or NIL File System). It's released under the terms of the GNU General Public License (GPL) by the worlds largest telecommunication company, Nippon Telephone and Telegraph CyberSpace Laboratories, better known as NTT.

Log-structured filesystems write down all data in a continuous log-like format that is only appended to, never overwritten. The approach is said to reduce seek times, as well as minimizing the kind of data loss that occurs with conventional Linux filesystems.

For example, data loss occurs on ext3 filesystems when the system crashes during a write operation. When the system reboots, the journal notes that the write did not complete, and any partial data writes are lost.

The UFS filesystem used by Solaris provides a data "snapshot" feature that prevents such data loss, but filesystem operation must be suspended to use the feature, reducing performance. NILFS, in contrast, can "continuously and automatically [save] instantaneous states of the file system without interrupting service", according to NTT Labs.[citation needed]

Contents

[edit] "Checkpoint" snapshots

The "instantaneous states" that NILFS continuously saves can actually be mounted, read-only, at the same time that the actual filesystem is mounted read-write -- a capability useful for data recovery after hardware failures and other system crashes. The "listcp" ("list checkpoint") command of an interactive NILFS "inspect" utility is first used to find the checkpoint's address, in this case "2048":

  # inspect /dev/sda2
  ...
  nilfs> listcp
     1     6 Tue Jul 12 14:55:57 2005 MajorCP|LogiBegin|LogiEnd
  2048  2352 Tue Jul 12 14:55:58 2005 MajorCP|LogiEnd
  ...
  nilfs> quit

The checkpoint address is then used to mount the checkpoint:

  # mount -t nilfs -r -o cp=2048 /dev/sda2 /nilfs-cp
  # df
  Filesystem           1K-blocks      Used Available Use% Mounted on
  /dev/sda2             70332412   8044540  62283776  12% /nilfs
  /dev/sda2             70332412   8044540  62283776  12% /nilfs-cp

[edit] Additional claimed features

  • Fast write and recovery times
  • Minimal damage to file data and system consistency on hardware failure
  • Correctly ordered data and meta-data writes
  • File and inode blocks are managed by a B-tree structure
  • Can create and store huge files
  • Internal data is processed in 64 bit wide word size

[edit] See also

[edit] External links

Personal tools