Help test softupdates journaling (SUJ)

From: Jeff Roberson <jroberson_at_jroberson.net>
Date: Fri, 8 Jan 2010 14:56:45 -1000 (HST)
Hello,

I have been augmenting softupdates with a small journal that will be processed 
in lieu of fsck in the event of a crash.  I have written some about this 
project here: http://jeffr_tech.livejournal.com/

For now I need volunteers who will attempt to crash the kernel code.  It now 
passes fsx, fsstress, and stress2 on my box for many hours.  pho_at_ has been 
helping me and may still have a bug or two but I need a wider audience so we 
can be comfortable with the stability.  In a week or so I will also provide the 
checker.  Until then a full fsck is required after a crash.

To install you will need to apply http://people.freebsd.org/~jeff/suj.diff to a 
recent current source tree.  You will then need to recompile libufs, fsck_ffs, 
and tunefs at a minimum.  You must disable softupdates on all filesystems 
before rebooting with the SUJ kernel.  It is presently not backwards compatible 
with softupdates without journaling but I will fix that soon.

You must disable background fsck by placing background_fsck="NO" in your 
rc.conf.  You can enable suj by running tunefs -j enable /dev/{device}. You can 
disable suj by running tunefs -j disable /dev/{device} and then doing a full 
foreground fsck.  There are no ill effects from removing the journal and you 
may go back to running a kernel without SUJ and using softupdates without any 
incompatibilities.  I have not yet corrupted a filesystem in testing.  tunefs 
allocates the journal which will be between 2 and 64mb depending on the size of 
the filesystem.  I will probably ultimately make the maximum smaller but 
presently the smaller of 1/1024th of the fs or 64mb is used.

I would suggest booting to single user to disable softupdates and enable suj 
before rebooting with the suj enabled kernel.  Please also enable crashdumps. 
You can see the freebsd handobok for instructions on that.  I would also 
mention that there is a lot of expensive debugging code at present.  You can 
expect some cpu slowdown but I also hope you will run with INVARIANTS and 
WITNESS enabled to catch as many bugs as possible.

I appreciate any and all assistance.  Even reports of everything going smoothly 
after a few days uptime are valuable.

Thanks,
Jeff
Received on Fri Jan 08 2010 - 23:54:06 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:59 UTC