HAMMER

From HandWiki
HAMMER
Developer(s)Matthew Dillon
Full nameHAMMER
Introduced21 July 2008 with DragonFly BSD 2.0[1]
Structures
Directory contentsModified B+ tree[2]
Limits
Max. volume size1 EiB[2]
Features
ForksNo
File system permissionsUNIX permissions
Transparent compressionYes[3]
Data deduplicationOn demand
Other
Supported operating systemsDragonFly 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.[4] HAMMER also supports data block deduplication, meaning that identical data blocks will be stored only once on a file system.[5] A successor, HAMMER2, was announced in 2011 and became the default in Dragonfly 5.2 (April 2018).[6]

Features

HAMMER file system provides configurable fine-grained and coarse-grained filesystem histories with online snapshots availability. Up to 65536 master (read-write) and slave (read-only) pseudo file systems (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.[4][7][8][9]

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, and dynamic inodes allocation with effectively unlimited number of inodes.[7][10][11]

Limitations

Currently, regular maintenance is required to keep the file system clean and regain space after file deletions. By default, a cron job performs the necessary actions on DragonFly BSD daily. HAMMER does not support multi-master configurations.[7][9]

Performance

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

  • 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.

See also

References

  1. Larabel, Michael (7 January 2011). "Can DragonFlyBSD's HAMMER Compete With Btrfs, ZFS?". Phoronix. https://www.phoronix.com/scan.php?page=article&item=dragonfly_hammer&num=1. Retrieved 2014-05-26. 
  2. 2.0 2.1 Dillon, Matthew (21 June 2008). "THE HAMMER FILESYSTEM". http://www.dragonflybsd.org/hammer/hammer.pdf. Retrieved 2009-03-02. 
  3. https://www.phoronix.com/scan.php?page=news_item&px=HAMMER2-LZ4-Default
  4. 4.0 4.1 hammer(5) – DragonFly BSD File Formats Manual
  5. Sherrill, Justin (7 November 2010). "Deduplication arrives". http://www.shiningsilence.com/dbsdlog/2010/11/07/6740.html. Retrieved 2011-11-28. 
  6. Dillon, Matthew (11 May 2011). "HAMMER2 announcement". users (Mailing list).
  7. 7.0 7.1 7.2 "HAMMER". DragonFly BSD. http://www.dragonflybsd.org/hammer/. Retrieved 2011-11-28. 
  8. Vervloesem, Koen (21 April 2010). "DragonFly BSD 2.6: towards a free clustering operating system". LWN.net. https://lwn.net/Articles/384200/. Retrieved 2014-05-26. 
  9. 9.0 9.1 George, Siju (May 2014). "Working with Hammer File System and PFSes". BSD Magazine (Warsaw, Poland: Hakin9 Media SK) 8 (5): 18–23. Archived from the original on 27 May 2014. https://web.archive.org/web/20140527211930/http://bsdmag.org/system/articles/attachment1s/15222/original/BSD_05_2014.pdf. Retrieved 2014-05-25. 
  10. hammer(8) – DragonFly BSD System Maintenance and Operation Commands Manual
  11. Kemp, Juliet (4 August 2008). "Tip of the Trade: Dragonfly BSD and the Hammer Filesystem". ServerWatch. http://www.serverwatch.com/article.php/3763031. Retrieved 2014-05-26. 
  12. Dillon, Matthew (22 July 2011). "git: HAMMER VFS - Add code to reduce frontend vs flusher locking conflicts". commits (Mailing list).

External links