(no commit message)
authordillon <dillon@web>
Sat, 30 Jan 2010 17:31:31 +0000 (09:31 -0800)
committerCharlie <root@leaf.dragonflybsd.org>
Sat, 30 Jan 2010 17:31:31 +0000 (09:31 -0800)
hammer/index.mdwn

index ecf4459..bcd2b37 100644 (file)
@@ -1,27 +1,35 @@
 ## What is HAMMER?
 
-HAMMER is a file system written for DragonFly that provides instant crash recovery, multi-volume file systems, integrity checking, fine grained history, networked mirroring, and historical snapshots.  HAMMER is the default file system for DragonFly.
+HAMMER is a file system written for DragonFly that provides instant crash recovery, multi-volume file systems, integrity checking, fine grained history/undo, networked mirroring, and historical snapshots.  HAMMER is the default file system for DragonFly.
 
 ### General details
-* HAMMER file systems are immediately available after a crash, and do not require fsck.
-* A single HAMMER file system can be up to 1 exabyte in size, and can encompass up to 256 volumes, of which each can be up to 4 petabytes.
-* Historical views of all files on the system are saved on each sync to disk.
+* HAMMER file systems are immediately available after a crash, there is no fsck.
+* A single HAMMER file system can be up to 1 exabyte in size, and can encompass up to 256 volumes, each of which can be up to 4 petabytes (4096 terrabytes).
+* HAMMER retains a fine-grained history and the state of the filesystem can be accessed live on 30-60 second boundaries without having to make explicit snapshots, up to a configurable fine-grained retention time.
+* Coarse-grained history is controlled by explicit snapshots.  By default the system cron generates one snapshot a day and retains 60 days worth of snapshots.  Coarse-grained snapshots can be accessed live.
+* A convenient undo command is provided for single-file history, diffs, and extractions.  Snapshots may be used to access entire directory trees.
+* Data and meta-data is CRC-checked for integrity.
 
 ### Snapshots
-* Snapshots of the file system can be taken at any time and in any amount.
-* Snapshots take only the space needed to describe changes to disk, not the actual size of the volume.
+* Snapshots of the file system can be taken at any time, with no limitations.
+* Snapshots are indexed by the on-media B-Tree and are extremely storage-efficient.
 * Snapshots are "live", and can be accessed at any time.
 * Snapshot and historical data retention are controlled through a config file kept in meta-data - no manual maintenance is required for historical files.
 
 ### Backups and history
-* HAMMER file systems can be split up into multiple pseudo-file systems, or PFS.
-* HAMMER volumes can be continually backed up to other HAMMER volumes on a per-PFS basis.  
-* Backup volumes (slaves) are functionally identical to the original (master) and can be promoted to a master volume.
-* Slave PFSs can retain file history independent of the master volume, saving more or less snapshots as desired.
-* Backups can be on a local network or over the Internet.  No minimum data speed required; the backup will catch up as bandwidth allows.
-* Data is CRC-checked for integrity. 
-
-**Note: HAMMER should be used on 50G or larger disks.** 
+* HAMMER file systems can be split up into multiple pseudo-file systems, or PFSs.  Each PFS represents its own management domain for snapshots and backups.
+* HAMMER PFSs can be backed continuously or in batch to other HAMMER PFSs, on a per-PFS basis.  
+* Backup PFSs (slaves) are functionally identical to the original (master) and can be promoted to a master.
+* Slave PFSs (such as stored on backups) can retain file history independent of the master volume, with different administrative parameters for retention.
+* HAMMER provides an efficient streaming mirroring capability using a non-queued algorithm.  The streaming mirroring may be used to generate bandwidth-controlled near-real-time backup streams to slave PFSs on remote hosts.
+* Because a non-queued algorithm is used there are no limitations on the number of active mirroring streams from any given source PFS.
+* Slave-to-slave mirroring streams are supported, allowing mirrors to be chained if desired. 
+### General Administrative
+* ***HAMMER is designed for use on storage media greater than 50G.***  There are several reasons for this not the least of which being that snapshots and history require significantly different space management than people might be used to. HAMMER also uses a deferred free space recovery mechanic.
+* As mentioned above, by default 60-days worth of snapshots are retained which implies having enough storage that you would not otherwise fill up your disk in that time.  Free space will stabilize once the snapshot limit is reached.  These parameters are programmable.  For example, snapshots are typically turned off on /tmp, /var/tmp, /var/crash, and /usr/obj (each of which is a PFS in a typical DragonFly installation).
+* Various cleanup directives can be specified manually via [hammer(5)] for situations which do not fit default expectations.
+* The system cron automatically runs HAMMER cleanup functions at least once a day.
 
 For more details, please read the [hammer(5)](http://leaf.dragonflybsd.org/cgi/web-man?command=hammer&section=5) man page.  People interested in porting HAMMER to other operating systems should contact Matthew Dillon at dillon at backplane.com.