OneFS distributed file system

OneFS
Developer Isilon Systems
Full name OneFS
Introduced 2003 (OneFS 1.0 -- based on FreeBSD)
Structures
Directory contents B+ trees
File allocation B+ trees
Limits
Max file size 4TB
Max number of files Cluster size dependent
Max filename length 255 bytes
Max volume size 15PB+ (143+ nodes at 108TB each)[1]; 65535 nodes theoretical limit
Allowed characters in filenames All bytes except NUL and '/'
Features
Dates recorded Create time, rename time, mtime, ctime, atime
Forks Yes (extended attributes and Alternate Data Streams)
File system permissions Yes (Unix permissions and NTFS ACLs)
Transparent compression No
Transparent encryption No
Supported operating systems OneFS

The OneFS file system is a distributed networked file system designed by Isilon Systems for use in its Isilon IQ storage appliances. OneFS is a FreeBSD variant and utilizes zsh as its shell. OneFS has its own specialized command set[2], all of which start with "isi", which is used to administer the system.

Contents

On-disk Structure

All data structures in the OneFS file system maintain their own protection information. This means in the same filesystem, one file may be protected at +1 (basic parity protection) while another may be protected at +4 (resilient to four failures) while yet another file may be protected at 2x (mirroring); this feature is referred to as FlexProtect[3]. FlexProtect is also responsible for automatically rebuilding the data in the event of a failure. The protection levels available are based on the number of nodes in the cluster and follow the Reed Solomon Algorithm. Blocks for an individual file are spread across the nodes; for example, block 0 may be on Node 3, block 1 on Node 1, and the related parity block on Node 5. This allows entire nodes to fail without losing access to any data. File metadata, directories, snapshot structures, quotas structures, and a logical inode mapping structure are all based on mirrored B+ trees. Block addresses are generalized 64-bit pointers that reference (node, drive, blknum) tuples. The native block size is 8192 bytes; inodes are 512 bytes on disk.

One distinctive characteristic of OneFS is that metadata is spread throughout the nodes in a homogeneous fashion. There are no dedicated metadata servers. The only piece of metadata that is replicated on every node is the address list of root btree blocks of the inode mapping structure. Everything else can be found from that starting point, following the generalized 64-bit pointers.

Clustering

Nodes running OneFS must be connected together with a high performance, low-latency back-end network for optimal performance. OneFS 1.0-3.0 used Gigabit Ethernet as that back-end network. Starting with OneFS 3.5, Isilon offered Infiniband models. Now all nodes sold utilize an Infiniband back-end.

Data, metadata, locking, transaction, group management, allocation, and event traffic go over the back-end RPC system. All data and metadata transfers are zero-copy. All modification operations to on-disk structures are transactional and journaled.

Protocols

OneFS is equipped with options for accessing storage via NFS, CIFS/SMB, FTP and HTTP. It can utilize authentication models for Active Directory, LDAP, and NIS. It is also capable of interfacing with backup devices using NDMP and has iSCSI support.

Versions

External links

See also

Notes

  1. ^ "EMC Isilon Delivers World's Largest Single File System for Big Data", May 9, 2011, accessed July 19, 2011.
  2. ^ "OneFS Command Line Reference"
  3. ^ "Data Protection and Backup"
  4. ^ a b Determined by the __FreeBSD_version definition in /usr/include/sys/param.h. See FreeBSD Porter's Handbook for more information.
  5. ^ The FreeBSD Documentation Project. "__FreeBSD_version values". FreeBSD Porter's Handbook. http://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/freebsd-versions.html. Retrieved 2011-12-01.