(no commit message)
authorjustin <justin@web>
Sat, 21 Jan 2012 03:31:11 +0000 (19:31 -0800)
committerCharlie Root <root@leaf.dragonflybsd.org>
Sat, 21 Jan 2012 03:31:11 +0000 (19:31 -0800)
hammerscript/index.mdwn

index b7d58bd..b1b5ed9 100644 (file)
@@ -50,12 +50,21 @@ DragonFly, at its inception in 2003, was intended to be a single-system-image op
 
 Hammer is a filesystem designed to mirror disk volumes from server to server, retaining history and deduplicating data.  Development started in 2007, and was first released with DragonFly 2.0.  Deduplication was added in 2008 (??) and released with version 2.8.  (??)
 
-Hammer is a historical, fine-grained file system, saving the state of the disk every time the system commits to disk.  That fine-grained history means that old versions of files can be accessed at any point in time, live, as long as you have the disk space to hold that history of changes.  In addition, entire snapshots of Hammer volumes are saved, with read-only versions of the disk sitting for access.  This happens automatically, even with deleted files.  The amount of disk history retained is configurable.
+Hammer is a historical, fine-grained file system, saving the state of the disk every time the system commits to disk.  That fine-grained history means that old versions of files can be accessed at any point in time, live, as long as you have the disk space to hold that history of changes.  In addition, entire snapshots of Hammer volumes are saved, with read-only versions of the disk sitting for access.  This happens automatically, even with deleted files.  The amount of disk history retained is configurable, and the number of snapshots is limited only by total disk space.
 
 DragonFly also is able to mirror volumes from one disk to another, or from one machine to another, or even one machine to many slave machines.  It works over relatively slow links, too.  A Hammer volume can be mirrored to another off-site system as a backup strategy, or even to another local disk and a remote one at the same time.  The amount of history retention for each master and slave Hammer volume can be configured separately, so a large Hammer slave can be set to hold multiple months of disk activity, while the smaller Hammer master can keep much less, to conserve space.
 
-* Deduplication
-* fast fsck, crc
+Hammer supports a feature found in higher-end filesystems: deduplication.  In general terms, a deduplicated system keeps track of all the data on a system.  When 2 ranges of data match exactly, the system keeps only one of those ranges, but maintains two references to it.  The total amount of space used on a disk can be greatly reduced, without changing the data stored.  
+
+Deduplication results vary depending on how much repeated data structures exist on a Hammer volume.  The results tend to be a 10% to 40% reduction in disk usage.
+
+Hammer offers a number of other modern benefits: 
+
+* It will near-instantly recover from a crash, so boot times aren't increased after a system crash and reboot.  (No fsck needed.)  
+* Hammer will checksum its data as part of deduplication and mirroring, so data errors can be detected.  
+* Multiple pseudo-file-systems can be created on a single Hammer volume, and each one can have its own historical retention settings. 
+* Historical snapshots are always live and always accessible.  
+* Hammer volumes can be up to 1 exabyte in size.
 
 Deploying HAMMER
 
@@ -68,7 +77,27 @@ Deploying HAMMER
 
 HAMMER recipes, a guide for the impatient. (jcs)
 
-* Recovering an over-written file
-* Recovering a deleted file
+Are you impatient?  Are you sold on Hammer and just want to try it out?  Did you just delete something really, really important and need to get it back?  Here's some simple use cases for Hammer to show just what you can do.
+
+Simple case: I scrambled a file
+
+The most simple case: you've scrambled a file. Maybe you rewrote several lines and saved it, or accidentally mashed the keyboard, but either way, the file is still present - just wrong.
+
+By default, the undo tool will output the previous version of a file with a note about the timestamp for that last change, prefixed with >>>. 
+
+
+    undo filename
+
+    >>> filename 0000 0x00000001c059c3d0 20-Aug-2011 19:24:18
+
+    (previous version info here)
+
+Other options exist, like using -i to iterate over all previous versions saved to disk, or way to generate a diff. What if you delete the file? It'll still work. 
+
+Help!  I filled up the disk!
+
 * Freeing disk space
+
+How to create a snapshot
+
 * Creating a snapshot