Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 31 Oct 2007 15:28:03 +0300
From:      "Artem Kuchin" <matrix@itlegion.ru>
To:        "Pawel Jakub Dawidek" <pjd@FreeBSD.org>
Cc:        freebsd-current@freebsd.org
Subject:   Re: Problems with gjournal or something else.
Message-ID:  <02af01c81bb9$7f7828a0$0c00a8c0@Artem>
References:  <00f101c819f7$833d5370$0c00a8c0@Artem> <20071031095213.GG8068@garage.freebsd.pl>

next in thread | previous in thread | raw e-mail | index | archive | help
>> Then did:
>> 
>> newfs -J -b 8192 -f 1024 -g 50000 -h 20 -i 40960 /dev/twed1s1f
>> 
>> gjournal load
>> gjournal label -f /dev/twed1s1f
>> tunefs -J enable -n disable /dev/twed1s1f
>> mount -o noatime /dev/twed1s1f.journal /NEW/suit
>
>It's wrong order. See gjournal(8) manual page, EXAMPLES section. You
>cannot create file system and then put journal on the same partition.
>gjournal would warn you about that, but you used force (-f) option.

Here is what man says:

Configure gjournaling on an existing file system, but only if gjournal
allows this (i.e.: if the last sector is not already used by the file
system):

umount /dev/da0s1d
gjournal label da0s1d da0s1e
tunefs -J enable -n disable 
mount -o async /dev/da0s1d.journal /mnt
mount /dev/da0s1d /mnt

However, this simple does not work.
gjournal label da0s1d da0s1e - WILL FAIL ON EXISTING FS!
Need to use -f switch for this.

So, those whole thing will look like this

1:  newfs /dev/da0s1d 
here we have our  EXISTING filesyetm
2: gjournal load
3: gjournal label -f /dev/da0s1d 
4: tunefs -J enable -n disable /dev/da0s1d
5: mount -o async /dev/da0s1d.journal /mnt

Now, when you start to fill /mnt you will get error=5 with offset out of range
of the filesystem, beceause metadata for the filesystem is used  from
/dev/da0s1f (step1) but gjournal used 1GB for the journal.

This error goes away if i add additional step between 4  and 5
4.5: newfs /dev/da0s1d.journal

question1:

4: tunefs -J enable -n disable /dev/da0s1d
really must be for /dev/da0s1d or for /dev/da0s1d.journal

question2:
man says
gjournal label da0s1d da0s1e && tunefs -J enable -n disable && mount -o async /dev/da0s1d.journal /mnt || mount /dev/da0s1d /mnt

why there is no fs argument in tunefs? mistake?
what does
'mount -o async /dev/da0s1d.journal /mnt || mount /dev/da0s1d /mnt;
mean? (note ||)

A couple more questions:
1) What size of  journal to pick?
2) How stable is the whole thing?

--
Artem



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?02af01c81bb9$7f7828a0$0c00a8c0>