Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Design  





2 Features  



2.1  Current status  





2.2  Issues  



2.2.1  Supported features  







2.3  Additional features  







3 Compatibility  





4 Relative performance  





5 License  





6 Developers  





7 See also  





8 References  





9 External links  














NILFS






Deutsch
Français

Norsk bokmål
Русский
 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 


NILFS
Developer(s)Nippon Telegraph and Telephone Cyber Space Laboratories
Full nameNew Implementation of a Log-structured File System
Introduced2005; 19 years ago (2005) with Linux kernel 2.6.13
Structures
File allocationB-tree
Limits
Max volume size8EiB
Max file size8EiB
Max filename length255 bytes
Features
Dates recordedatime (planned)
Date resolution64-bit on-disk timestamps
AttributesPOSIX, with plans for extended attributes
File system
permissions
POSIX, with plans for ACLs[1]
Transparent
compression
No
Transparent
encryption
No
Copy-on-writeYes
Other
Supported
operating systems
Linux kernel, (ReadOnly for NetBSD)

NILFSorNILFS2 (NewImplementation of a Log-structured File System) is a log-structured file system implementation for the Linux kernel. It was developed by Nippon Telegraph and Telephone Corporation (NTT) CyberSpace Laboratories and a community from all over the world. NILFS was released under the terms of the GNU General Public License (GPL).

Design[edit]

"NILFS is a log-structured file system, in that the storage medium is treated like a circular buffer and new blocks are always written to the end.[…]Log-structured file systems are often used for flash media since they will naturally perform wear-leveling;[…]NILFS emphasizes snapshots. The log-structured approach is a specific form of copy-on-write behavior, so it naturally lends itself to the creation of file system snapshots. The NILFS developers talk about the creation of "continuous snapshots" which can be used to recover from user-initiated file system problems[…]."[2]

Using a copy-on-write technique known as a log-structured file system, NILFS records all data in a continuous log-like format that is only appended to, never overwritten, an approach that is designed to reduce seek times, as well as minimize the kind of data loss that occurs after a crash with conventional file systems. For example, data loss occurs on ext3 file systems 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.

Some file systems, like UFS-derived file systems used by the Solaris operating system and BSDs, provide a snapshot feature that prevents[citation needed] such data loss, but the snapshot configuration can be lengthy on large file systems. NILFS, in contrast, can "continuously and automatically [save] instantaneous states of the file system without interrupting service", according to NTT Labs.[3]

The "instantaneous states" that NILFS continuously saves can actually be mounted, read-only, at the same time that the actual file system is mounted read-write — a capability useful for data recovery after hardware failures and other system crashes. The "lscp" (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

Features[edit]

NILFS provides continuous snapshotting. In addition to versioning capability of the entire file system, users can even restore files mistakenly overwritten or deleted at any recent time. Since NILFS can keep consistency like conventional LFS, it achieves quick recovery after system crashes.

Continuous snapshotting is not provided by most file systems, including those supporting point-in-time snapshotting (e.g. Btrfs)

NILFS creates a number of checkpoints every few seconds or per synchronous write basis (unless there is no change). Users can select significant versions among continuously created checkpoints, and can change them into snapshots which will be preserved until they are changed back to checkpoints.

There is no limit on the number of snapshots until the volume gets full. Each snapshot is mountable as a read-only file system. It is mountable concurrently with a writable mount and other snapshots, and this feature is convenient to make consistent backups during use.

Possible uses of NILFS include versioning, tamper detection, SOX compliance logging, data loss recovery.

The current major version of NILFS is version 2, which is referred to as NILFS2. NILFS2 implements online garbage collection to reclaim disk space with keeping multiple snapshots.

Other NILFS features include:

Current status[edit]

Issues[edit]

As of 2023, NILFS lacks a dedicated consistency checking utility (fsck), and thus can't recover from severe errors that cause it to fail to find a valid checkpoint.[4][5]

Supported features[edit]

Additional features[edit]

Compatibility[edit]

NILFS is available in various GNU/Linux distributions like Arch Linux,[8] Debian[9] (since version 5.0), Fedora, Gentoo,[10] Linux Mint, NixOS, Ubuntu (since version 9.10), etc. To use it, users typically need to install the nilfs-utils or nilfs-tools package. A boot-cd with NILFS is also available on PrRescue.

It is also supported by partition-editing application like GParted.[11]

A separate, BSD licensed implementation, currently with read-only support, is included in NetBSD.[12]

Relative performance[edit]

In the January 2015 presentation SD cards and file systems for embedded systemsatLinux.conf.au, it was stated:[13]

If you've got a workload that's latency sensitive, you might want to use NILFS. If you've got one that's throughput sensitive, you might want to use F2FS.

— Peter Chubb

NILFS2 works much better for the lots of small files case than F2FS or EXT4.

— Peter Chubb

License[edit]

The NILFS2 file system utilities are made available under the GNU General Public License version 2, with the exception of the lib/nilfs libraries and their header files, which are made available under the GNU Lesser General Public License Version 2.1.

Developers[edit]

The Japanese primary authors and major contributors to the nilfs-utils who worked or are working at labs of NTT Corporation are:

Other major contributors are:

See also[edit]

References[edit]

  1. ^ "NILFS Current Status".
  • ^ "BTRFS and NILFS [LWN.net]".
  • ^ "An article about NILFS". Retrieved 2008-07-28.
  • ^ Corrupted NILFS2 partition (/var) - Opinions on a better FS for /var?
  • ^ Kernel archives: Can't mount nilfs - error searching super root.
  • ^ the NILFS version 1: overview
  • ^ does not verify: Re: Does nilfs2 checksum all data?; kernel 4.4.38-v7+ does not verify, too.
  • ^ "Arch Linux - nilfs-utils 2.2.9-1 (X86_64)".
  • ^ "Debian -- Details of package nilfs-tools in bullseye".
  • ^ "Sys-fs/Nilfs-utils – Gentoo Packages".
  • ^ "GParted -- Features".
  • ^ NiLFS(2) source commit
  • ^ Peter Chubb. "SD cards and filesystems for embedded systems". Linux.conf.au.
  • ^ https://www.complang.tuwien.ac.at/Diplomarbeiten/rohner18.pdf [bare URL PDF]
  • External links[edit]


    Retrieved from "https://en.wikipedia.org/w/index.php?title=NILFS&oldid=1228131447"

    Categories: 
    Disk file systems
    File systems supported by the Linux kernel
    Persistence
    Hidden categories: 
    All articles with bare URLs for citations
    Articles with bare URLs for citations from March 2022
    Articles with PDF format bare URLs for citations
    Wikipedia articles needing rewrite from September 2013
    All articles needing rewrite
    Articles with a promotional tone from September 2013
    All articles with a promotional tone
    Articles with multiple maintenance issues
    All articles with unsourced statements
    Articles with unsourced statements from August 2011
    Official website different in Wikidata and Wikipedia
    Webarchive template wayback links
     



    This page was last edited on 9 June 2024, at 16:41 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki