Next3

From HandWiki
Next3
Developer(s)CTERA Networks
IntroducedMay 2010; 13 years ago (2010-05) with Linux 2.6
Partition identifier0x83 (MBR)
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 (GPT)
Structures
Directory contentsTable, hashed B-tree with dir_index enabled
File allocationbitmap (free space), table (metadata), snapshots are allocated as files from the volume free space
Bad blocksTable
Limits
Max. volume size2 TB – 16 TB
Max. file size2 TB
Max. number of filesVariable, allocated at creation time[1]
Max. filename length254 bytes[citation needed]
Allowed characters in filenamesAll bytes except NULL and '/'
Features
Dates recordedmodification (mtime), attribute modification (ctime), access (atime)
Date rangeDecember 14, 1901 – January 18, 2038
Date resolution1s
AttributesNo-atime, append-only, synchronous-write, no-dump, h-tree (directory), immutable, journal, secure-delete, top (directory), allow-undelete
File system permissionsUnix permissions, ACLs and arbitrary security attributes (Linux 2.6 and later)
Transparent compressionNo
Transparent encryptionNo (provided at the block device level)
Data deduplicationNo
Other
Supported operating systemsLinux

Next3 is a journaling file system for Linux based on ext3 which adds snapshots support, yet retains compatibility to the ext3 on-disk format.[2][3] Next3 is implemented as open-source software, licensed under the GPL license.

Background

A snapshot is a read-only copy of the file system frozen at a point in time. Versioning file systems like Next3 can internally track old versions of files and make snapshots available through a special namespace.

Features

Snapshots

An advantage of copy-on-write is that when Next3 writes new data, the blocks containing the old data can be retained, allowing a snapshot version of the file system to be maintained. Next3 snapshots are created quickly, since all the data composing the snapshot is already stored; they are also space efficient, since any unchanged data is shared among the file system and its snapshots.[2]

Dynamically Provisioned Snapshots Space

The traditional Linux Logical Volume Manager volume level snapshots implementation requires that storage space be allocated in advance. Next3 uses Dynamically provisioned snapshots, meaning it does not require pre-allocation of storage space for snapshots, instead allocating space as it is needed. Storage space is conserved by sharing unchanged data among the file system and its snapshots.[4]

Compatibility

Since Next3 aims to be both forward and backward compatible with the earlier ext3, all of the on-disk structures are identical to those of ext3.[2] The file system can be mounted for read by existing ext3 implementations with no modification. Because of that, Next3, like ext3, lacks a number of features of more recent designs, such as extents.[citation needed]

Performance

When there are no snapshots, Next3 performance is equivalent to ext3 performance. With snapshots, there is a minor overhead per write of metadata block (copy-on-write) and a smaller overhead (~1%) per write of data block (move-on-write).[5]

Next4

As of 2011, Next4, a project for porting of Next3 snapshot capabilities to the Ext4 file system, is mostly completed. The porting is attributed to members of the Pune Institute of Computer Technology (PICT) and the Chinese Academy of Sciences.[6]

See also

References

  1. The maximum number of inodes (and hence the maximum number of files and directories) is set when the file system is created. If V is the volume size in bytes, then the default number of inodes is given by V/213 (or the number of blocks, whichever is less), and the minimum by V/223. The default was deemed sufficient for most applications. The max number of subdirectories in one directory is fixed to 32000.
  2. 2.0 2.1 2.2 Corbet, Jonathan. "The Next3 filesystem". LWN. https://lwn.net/Articles/387231/. 
  3. Next3: Ext3 with snapshots. The H Open. June 11, 2010
  4. Shread, Paul (June 8, 2010). "CTERA Adds Data Protection to Linux File Systems". http://www.enterprisestorageforum.com/continuity/article.php/3886651. 
  5. "Next3 FAQ". http://sourceforge.net/apps/mediawiki/next3/index.php?title=FAQ. 
  6. NEXT3 Filesystem Home Page