If you have a mangled HAMMER2 disk, and you have inodes that are clearly mangled (the built-in CRCs don’t match), you can now remove them manually. This seems like Hole Hawg territory…
HAMMER2 and multi-slave disks
As part of a larger conversation about HAMMER, Matthew Dillon noted that he is planning to work on master-to-multiple-slave for HAMMER2, which would function similar to HAMMER1 mirror-stream.
Upgrade results, bonus for dragonflybsd.org
Remember the upgrade for dragonflybsd.org machines? It completed, and it’s interesting to see that SSDs have become so easily available that “spinning rust” hard disk drives are only still useful for bulk storage, and even then probably not for much longer.
Another neat side effect: disk usage on developer system leaf.dragonflybsd.org was cut in half, thanks to HAMMER2 dedup/compression. It’s a ‘free’ half-terabyte.
Extra DragonFly links
These would be ‘In Other BSD’ links, but this isn’t Other BSD – It’s DragonFly:
- Towards a HAMMER1 master/slave encrypted setup with LUKS.
- Intro, Installation, and Fun with Hammer2.
Half billion tries for a HAMMER2 bug
I’m pulling a quote off of IRC to show some of the testing on HAMMER2, specifically as the background for this commit:
14:22 <@dillon_> ^^^ hammer2 bug, could reproduce it around once a day doing a continuous rm -rf on hardlinked snapshots. reproduced about once every 500 million directory entries or so
I am somewhat tickled by the notion that you might have a problem after deleting half a billion directory entries.
HAMMER2 dirty vnode management
HAMMER1, mounted and unmounted cleanup
The regular maintenance scripts for HAMMER1 assume that it’s mounted at the time of cleanup. If you have them unmounted, they won’t go through that regular maintenance, but it’s easy enough to fix.
Hammerception
You could, if you are running DragonFly-current, create a vkernel using HAMMER2, and try out HAMMER2 even if your underlying disk is HAMMER1. Odd, but useful.
Creating HAMMER2 volumes on Linux
You can make them, but you can’t mount them. Tomohiro Kusumi’s note that mkfs_hammer2 works on Linux is of little wide practical use, but it’s a sign of progress to a larger goal.
HAMMER1, on Linux
Tomohiro Kusumi has made the userspace tools for HAMMER1 compilable on Linux, so you could create a HAMMER1 volume on a Linux system. No, it’s not the ability to read/write HAMMER1 in Linux, unfortunately – just some manipulation of volumes. I don’t know what his future plans are for HAMMER1|2 on Linux, if any.
HAMMER2 in the installer
HAMMER2 is now available by default in DragonFly, and can be used in the installation process. (It was possible, but manual, before.) The next DragonFly release should be soon.
HAMMER2 hardlinks, other work
Matthew Dillon’s found a solution to the problem of hardlinks in HAMMER2, and so moved on to dirents. The design document has a significant update to match.
HAMMER version 7
Continuing my catchup on recent commits, there’s now a ‘version 7’ internal to HAMMER 1. It changes the CRC code to a faster version, but since this instruction isn’t used (yet), there’s no real world impact. Remember this for next time you want to run ‘hammer version-upgrade’.
Mount and HAMMER2 labels
If you’re mounting a HAMMER2 filesystem, you can refer to it by label instead of by device.
No, it’s not ready for use yet and I don’t have a date other than “when it’s done”, to preanswer the next questions.
Hammer and PFS notes
Simple fix for speed
I always attributed speed issues to writing transaction history, but: Matthew Dillon discovered HAMMER was repeating itself when writing to disk. Fixing that issue doubled write speed. This fix is in 4.6 and the upcoming release.
Good news for multiple processors
Matthew Dillon has made a number of locking improvements, that speeds up performance on systems with multiple processor. Here’s his commit with some numbers. Note that he’s testing with these built-in utilities. This probably helps multiple cores too, and some attention is shown to Hammer, too.
Zeroing does nothing
This makes sense once you think about it: copy-on-write filesystems (like Hammer2 and ZFS and probably others) actually do nothing when “zeroing” out filespace.
Buildworld for -current users
If you are on DragonFly-current, AKA DragonFly 4.7, make sure to perform a full buildworld on your next upgrade. Tomohiro Kusumi changed a Hammer ioctl, and the buildworld is needed to keep everything in sync.
Reminder: move your Hammer cleanup
A useful tip: if your DragonFly machine isn’t usually on 24/7 (e.g. a laptop, not a server), you should move your Hammer cleanup from 3 AM to sometime when the computer is normally on.
