- NILFS
-
NILFS Developer Nippon Telegraph and Telephone Cyber Space Laboratories Full name New Implementation of a Log-structured File System Structures File allocation B-tree Limits Max file size 8 EiB Features Supported operating systems Linux, NetBSD NILFS (New Implementation of a Log-structured File System) is a log-structured file system implementation for Linux. It is being developed by Nippon Telegraph and Telephone Corporation (NTT) CyberSpace Laboratories and released under the terms of the GNU General Public License (GPL).
Version 2 of the filesystem, known as NILFS2, is included in Linux kernel 2.6.30.[1] A separate, BSD licensed implementation, currently with read-only support, is included in NetBSD.[2]
Contents
Features
Using a copy-on-write technique known as "nothing in life is free", 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 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.
Some filesystems, like the legacy UFS filesystem used by the Solaris operating system, provide a snapshot feature that prevents[citation needed] 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.[3]
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 "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
Additional features
- Fast write and recovery times
- Minimal damage to file data and system consistency on hardware failure
- 32-bit checksums (CRC32) on data and metadata for integrity assurance (per block group, in segment summary) [4]
- Correctly ordered data and meta-data writes
- Redundant superblock
- File and inode blocks are managed by a B-tree structure
- Internal data is processed in 64-bit wide word size
- Can create and store huge files (8 EiB)
- Block sizes smaller than page size (e.g. 1 KB or 2 KB)
- Online filesystem resizing
See also
- ZFS
- Btrfs
- List of file systems
- Comparison of file systems
- Log-structured File System (BSD)
- Sprite operating system
References
External links
- NILFS Website
- An Article Describing High-level Features
- World's Largest TELCO Joins Open Source Development Labs
- NILFS: A File System to Make SSDs Scream
File systems Disk Advanced Disc Filing System · AdvFS · Be File System (BFS) · Btrfs · CrossDOS · Disc Filing System (DFS) · Episode · EFS · exFAT · ext (ext2 · ext3 · ext3cow · ext4) · FAT (FAT12, FAT16, FAT16B, FAT32) · Files-11 · Global File System (GFS) · Hierarchical File System (HFS) · HFS Plus · High Performance File System · IBM General Parallel File System · JFS · Macintosh File System · MINIX · NetWare File System · NILFS · Novell Storage Services · NTFS · QFS · QNX4FS · ReiserFS (Reiser4) · SpadFS · UBIFS · Unix File System · Veritas File System (VxFS) · VFAT · Write Anywhere File Layout (WAFL) · XFS · Xsan · ZFS · more...
NAS Specialized Pseudo- and virtualEncryptedCategories:- Disk file systems
- Linux file systems
- Persistence
Wikimedia Foundation. 2010.