NILFS: New Log-Structured File System

Following the adoption of Btrfs and SquashFS in Linux 2.6.29, the kernel development team have once more integrated two new file systems into 2.6.30 in the form of NILFS and EXOFS. NILFS is a new log-structured file system that dramatically improves write performance.

NILFS2 (New Implementation of a Log-Structured File System Version 2) is a very promising new log-structured file system that has continuous snapshots and versioning of the entire file system. This means that you can run your file system as an version control system like  subversion or git. Additionally here are a number of other features of NILFS that are very attractive:

  • The file size and inode numbers are stored as 64-bit fields
  • File sizes of up to 8 EiB (Exbibyte – approximately an Exabyte)
  • Block sizes that are smaller than a page size (i.e. 1KB-2KB). This can
    potentially make NILFS much faster for small files than other file
  • File and inode blocks use a B-tree (the use of B-trees in a log-structured file system stems from the implementation which use something called segments)
  • NILFS uses 32-bit checksums (CRC32) on data and metadata for integrity assurance
  • Correctly ordered data and meta-data writes
  • Redundant superblock
  • Read-ahead for meta data files as well as data files (helps read performance)
  • Continuous check pointing which can be used for snapshots. These can be used for backups or they can even be used for recovering files.

Further readings:

NILFS: A File System to Make SSDs,also it’s the original post.

Nil File System –

Share this post

Post Comment