GJournal (hopefully) final patches.

Sean Bryant bryants at gmail.com
Thu Aug 10 22:54:07 UTC 2006


On 8/10/06, Sean Bryant <bryants at gmail.com> wrote:
> On 8/8/06, Pawel Jakub Dawidek <pjd at freebsd.org> wrote:
> > Hi.
> >
> > I'm pleased to announce hopefully the final gjournal patches.
> >
> > The biggest change is removal of magic .deleted/ directory. Now orphaned
> > objects (files/directories which were deleted, but are still open) are
> > handled in a different way - in every CG there is a counter which tells
> > how many such orphaned objects are there in the given CG. There is also
> > a global unreferenced inodes counter in the superblock.
> >
> > On power failure or system crash, fast fsck version will be run on
> > journaled file system which only checks CG for unreferenced inodes.
> > Multi terabyte file system is checked in few minutes, but it depends on
> > how many such objects we have. The global counter in the superblock
> > allows to stop scanning CGs when it goes to 0.
> >
> > Another change is that now from a configuration point of view gjournal
> > is threated simlar to soft-updates - you need to specify -J flag at
> > newfs(8) time or use 'tunefs -J enable <fsdev>'. 'gjournal' is no longer
> > a mount option.
> >
> > To create journaled UFS file system on ad0s1d partition:
> >
> >         # gjournal load
> >         # gjournal label ad0s1d
> >         # newfs -J /dev/ad0s1d.journal
> >         # mount -o noatime,async /dev/ad0s1d.journal /mnt
> >
> > On reboot 'fsck_ffs -p /dev/ad0s1d.journal' will perform fast check. One
> > can still run regular check by not giving the -p option.
> >
> > BTW. This should allow to have root file system on gjournal partition,
> > but haven't verified it yet - just a theory.
> >
> > Patches for 7-CURRENT:
> >
> >         http://people.freebsd.org/~pjd/patches/gjournal_20060808.patch
> >
> > Patches for 6-STABLE:
> >
> >         http://people.freebsd.org/~pjd/patches/gjournal6_20060808.patch
> >
> > To apply the patches:
> >
> >         # cd /usr/src
> >         # mkdir sys/geom/journal sbin/geom/class/journal sys/modules/geom/geom_journal
> >         # patch < gjournal_20060808.patch
> >
> > Now you need to recompile the world and the kernel. Remember to add
> > 'options UFS_GJOURNAL' to your kernel configuration file.
> >
> > If there will be no bug reports nor strong objections, I'd like commit
> > gjournal in a week or two first to 7-CURRENT and then to 6-STABLE (maybe
> > before 6.2-RELEASE, but it depends on testing and feedback from users).
> >
> > Enjoy!
> >
> > --
> > Pawel Jakub Dawidek                       http://www.wheel.pl
> > pjd at FreeBSD.org                           http://www.FreeBSD.org
> > FreeBSD committer                         Am I Evil? Yes, I Am!
> >
> >
> >
>
> Okay I have applied the latest patches. And everything works fine on a
> new filesystem (newfsing).
>
> Trying to add it to an existing file system I'm getting problems. This
> might be my fault. So I'll give it another go before reporting back my
> problems.
>
> --
> Sean Bryant
>

Alright. After testing I've found the problem. You can enable
journaling on an existing filesystem, provided the journaling provider
is not the data provider.

I could not do the following:
tunefs -J enable ad4s1e
gjournal label ad4s1e
fsck_ffs -p ad4s1e

I would get cannot read BLK XXXX. And various other problems.

I don't see where you've actually stated this.

I did have much success with the following:

tunefs -j enable ad4s1e
gjournal label ad4s1e ad6 (which is an used volume)

fsck_ffs -p ad4s1e.journal


I should note I tried this in a varity of ways. With only the previous
resulting in a success existing filesystem using gjournal.

During each of the trials I would set the configuration back to the
original before attemping any more experimenation.

Results:

[failed]
tunefs -J enable ad4s1e
gjournal label ad4s1e
fsck_ffs -p ad4s1e // failed

[failed]
gjournal label ad4s1e
tunefs -J enable ad4s1e
fsck_ffs -p ad4s1e // failed

[failed]
gjournal label ad4s1e
tunefs -J enable ad4s1e.journal
fsck_ffs -p ad4s1e  // falied

[passes and verified]
tunefs -j enable ad4s1e
gjournal label ad4s1e ad6

-- 
Sean Bryant


More information about the freebsd-fs mailing list