From Wikipedia, the free encyclopedia
Jump to: navigation, search
Developer Matthew Dillon
Full name HAMMER
Introduced July 21, 2008 (DragonFly BSD 2.0)
Directory contents B+ tree[1]
Max. volume size 1 EiB[1]
Forks no
File system permissions UNIX permissions
Data deduplication on demand
Supported operating systems DragonFly BSD

HAMMER is a high-availability 64-bit file system developed by Matthew Dillon for DragonFly BSD using B-trees. Its major features include infinite NFS-exportable snapshots, master-multislave operation, configurable history retention, fsckless-mount, and checksums to deal with data corruption.[2] HAMMER also supports data block deduplication, meaning that identical data blocks will be stored only once on a file system.[3]

A port of HAMMER to Linux has been started that supports read-only access.[4]


HAMMER file systems provide the following features:[5][6]

  • configurable fine-grained and coarse-grained filesystem histories
  • history and snapshots are accessible online
  • near real-time log-less streaming mirroring to slaves or backups
  • different retention parameters for slaves
  • CRC checksumming of data and metadata
  • no fsck required on remount
  • 1 EiB maximum storage capacity
  • online layout correction
  • data deduplication


Requires a pruning/reblocking cron job run a few minutes every night to incrementally clean up and regain space on the filesystem. Deletions do not immediately reclaim space.

Does not yet support multi-master configuration.


The following performance-related improvements were introduced on July 2011:[7]

  • 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


It was developed specifically for DragonFly BSD to provide a feature-rich yet better designed analogue of then increasingly popular ZFS.

As of February 2012, the next generation HAMMER2 file system was planned to be brought up to minimal working state by July 2012, with the final version expected to ship in 2013;[8] the dedicated development branch in the DragonFly's source code repository has been also created.[9] However, as of March 2014 HAMMER2 is actively developed and not yet released.[10][11]

See also[edit]


  1. ^ a b Dillon, Matthew (2008-06-21). "THE HAMMER FILESYSTEM". Retrieved 2009-03-02. 
  2. ^ Wildner, Sascha. "HAMMER(5)". DragonFly File Formats Manual. Retrieved 2009-04-03. "After a non-graceful system shutdown, HAMMER file systems will be brought back into a fully coherent state when mounting the file system, usually within a few seconds." 
  3. ^ Sherrill, Justin (2010-11-07). "Deduplication arrives". Retrieved 2011-11-28. 
  4. ^ Lorch, Daniel. "Porting the HAMMER File System to Linux". Retrieved 2011-11-28. 
  5. ^ "HAMMER". DragonFly BSD. Retrieved 2011-11-28. 
  6. ^ Wildner, Sascha. "HAMMER(8)". DragonFly System Manager's Manual. Retrieved 2011-11-28. "After a non-graceful system shutdown, HAMMER file systems will be brought back into a fully coherent state when mounting the file system, usually within a few seconds." 
  7. ^ Dillon, Matthew (2011-07-22). "git: HAMMER VFS - Add code to reduce frontend vs flusher locking conflicts". commits mailing list. http://leaf.dragonflybsd.org/mailarchive/commits/2011-07/msg00086.html.
  8. ^ Dillon, Matthew (2012-02-08). "DESIGN document for HAMMER2 (08-Feb-2012 update)". users mailing list. http://leaf.dragonflybsd.org/mailarchive/users/2012-02/msg00020.html.
  9. ^ Dillon, Matthew (2012-02-08). "hammer2 branch in dragonfly repo created - won't be operational for 6-12 months.". users mailing list. http://leaf.dragonflybsd.org/mailarchive/users/2012-02/msg00019.html.
  10. ^ "When hammer2 will be ready for use?". Lists.dragonflybsd.org. 2013-11-11. Retrieved 2014-04-16. 
  11. ^ "git: hammer2 - Start adding internal cluster API". Lists.dragonflybsd.org. 2014-03-18. Retrieved 2014-04-16. 

External links[edit]