HAMMER (file System)
   HOME

TheInfoList



OR:

HAMMER is a high-availability
64-bit In computer architecture, 64-bit Integer (computer science), integers, memory addresses, or other Data (computing), data units are those that are 64 bits wide. Also, 64-bit central processing unit, CPUs and arithmetic logic unit, ALUs are those ...
file system In computing, file system or filesystem (often abbreviated to fs) is a method and data structure that the operating system uses to control how data is stored and retrieved. Without a file system, data placed in a storage medium would be one larg ...
developed by
Matthew Dillon Matthew Dillon (born 1966) is an American software engineer known for Amiga software, contributions to FreeBSD and for starting and leading the DragonFly BSD project since 2003. Biography Dillon studied electronic engineering and computer scien ...
for
DragonFly BSD DragonFly BSD is a free and open-source Unix-like operating system forked from FreeBSD 4.8. Matthew Dillon, an Amiga developer in the late 1980s and early 1990s and FreeBSD developer between 1994 and 2003, began working on DragonFly BSD in Ju ...
using
B+ tree A B+ tree is an m-ary tree with a variable but often large number of children per node. A B+ tree consists of a root, internal nodes and leaves. The root may be either a leaf or a node with two or more children. A B+ tree can be viewed as a B- ...
s. Its major features include infinite NFS-exportable
snapshots Snapshot, snapshots or snap shot may refer to: * Snapshot (photography), a photograph taken without preparation Computing * Snapshot (computer storage), the state of a system at a particular point in time * Snapshot (file format) or SNP, a file ...
, master–multislave operation, configurable history retention,
fsck The system utility fsck (''file system consistency check'') is a tool for checking the consistency of a file system in Unix and Unix-like operating systems, such as Linux, macOS, and FreeBSD. A similar command, CHKDSK, exists in Microsoft Windows ...
less-mount, and
checksums A checksum is a small-sized block of data derived from another block of digital data for the purpose of detecting errors that may have been introduced during its transmission or storage. By themselves, checksums are often used to verify data ...
to deal with
data corruption In the pursuit of knowledge, data (; ) is a collection of discrete values that convey information, describing quantity, quality, fact, statistics, other basic units of meaning, or simply sequences of symbols that may be further interpreted. ...
. HAMMER also supports data block
deduplication The term deduplication refers generally to eliminating duplicate or redundant information. *Data deduplication, in computer storage, refers to the elimination of redundant data *Record linkage Record linkage (also known as data matching, data l ...
, meaning that identical data blocks will be stored only once on a file system. A successor,
HAMMER2 HAMMER2 is a successor to the HAMMER filesystem, redesigned from the ground up to support enhanced clustering. HAMMER2 supports online and batched deduplication, snapshots, directory entry indexing, multiple mountable filesystem roots, mounta ...
, was announced in 2011 and became the default in Dragonfly 5.2 (April 2018).


Features

HAMMER file system provides configurable fine-grained and coarse-grained filesystem histories with online snapshots availability. Up to 65536 ''
master Master or masters may refer to: Ranks or titles * Ascended master, a term used in the Theosophical religious tradition to refer to spiritually enlightened beings who in past incarnations were ordinary humans *Grandmaster (chess), National Master ...
'' (read–write) and ''slave'' (read-only)
pseudo file system In computer science, a synthetic file system or a pseudo file system is a hierarchical interface to non-file objects that appear as if they were regular files in the tree of a disk-based or long-term-storage file system. These non-file objects m ...
s (PFSs), with independent individual retention parameters and inode numbering, may be created for each file system; PFS may be mirrored to multiple slaves both locally or over network connection with near real-time performance. No file system checking is required on remount. HAMMER supports volumes up to 1  EiB of storage capacity. File system supports CRC checksumming of data and metadata, online layout correction and
data deduplication In computing, data deduplication is a technique for eliminating duplicate copies of repeating data. Successful implementation of the technique can improve storage utilization, which may in turn lower capital expenditure by reducing the overall amou ...
, and dynamic
inode The inode (index node) is a data structure in a Unix-style file system that describes a file-system object such as a file or a directory. Each inode stores the attributes and disk block locations of the object's data. File-system object attribute ...
s allocation with effectively unlimited number of inodes.


Limitations

Currently, regular maintenance is required to keep the file system clean and regain space after file deletions. By default, a
cron The cron command-line utility is a job scheduler on Unix-like operating systems. Users who set up and maintain software environments use cron to schedule jobs (commands or shell scripts), also known as cron jobs, to run periodically at fixed ti ...
job performs the necessary actions on DragonFly BSD daily. HAMMER does not support multi-master configurations.


Performance

HAMMER is optimized to reduce the number of physical I/O operations to cover the most likely path, ensuring
sequential access Sequential access is a term describing a group of elements (such as data in a memory array or a disk file or on magnetic tape data storage) being accessed in a predetermined, ordered sequence. It is the opposite of random access, the ability to ac ...
for optimal performance. The following performance-related improvements were introduced in : * Increased disk read speed in certain scenarios by implementing pulse-width modulated time-domain multiplexer on B-tree cursor operation * Removed a deadlock stalling issue * Improved read performance during heavy, concurrent file write operations


Development

HAMMER was developed specifically for DragonFly BSD to provide a feature-rich yet better designed analogue of the then increasingly popular
ZFS ZFS (previously: Zettabyte File System) is a file system with volume management capabilities. It began as part of the Sun Microsystems Solaris operating system in 2001. Large parts of Solaris – including ZFS – were published under an ope ...
. HAMMER was declared production-ready with DragonFly 2.2 in 2009; in 2012, design-level work shifted onto
HAMMER2 HAMMER2 is a successor to the HAMMER filesystem, redesigned from the ground up to support enhanced clustering. HAMMER2 supports online and batched deduplication, snapshots, directory entry indexing, multiple mountable filesystem roots, mounta ...
, which was declared stable with DragonFly 5.2 in 2018. , HAMMER is now often referred to as HAMMER1 to avoid confusion with HAMMER2, although an official renaming has not happened. Both filesystems are independent of each other due to different on-disk formats, and continue to receive separate updates and improvements independently.


See also

*
Comparison of file systems The following tables compare general and technical information for a number of file systems. General information Limits Metadata Features File capabilities Block capabilities Note that in addition to the below table, blo ...
*
List of file systems The following lists identify, characterize, and link to more thorough information on Computer file systems. Many older operating systems support only their one "native" file system, which does not bear any name apart from the name of the operating ...
*
HAMMER2 HAMMER2 is a successor to the HAMMER filesystem, redesigned from the ground up to support enhanced clustering. HAMMER2 supports online and batched deduplication, snapshots, directory entry indexing, multiple mountable filesystem roots, mounta ...
*
ZFS ZFS (previously: Zettabyte File System) is a file system with volume management capabilities. It began as part of the Sun Microsystems Solaris operating system in 2001. Large parts of Solaris – including ZFS – were published under an ope ...
*
Btrfs Btrfs (pronounced as "better F S", "butter F S", "b-tree F S", or simply by spelling it out) is a computer storage format that combines a file system based on the copy-on-write (COW) principle with a logical volume manager (not to be confused ...
*
OpenZFS OpenZFS is a free and open-source storage platform licensed under CDDL that encompasses the functionality of traditional filesystems and logical volume manager. It includes protection against data corruption, support for high storage capacitie ...


References


External links

* {{File systems , state=expanded DragonFly BSD Distributed file systems 2008 software