ordering problem with gjournal and iSCSI initiator

Nikos Vassiliadis nvass9573 at gmx.com
Sat Jan 30 11:08:04 UTC 2010


On 1/25/2010 12:58 AM, Miroslav Lachman wrote:
> Hi,
>
> I don't know what mailing list is better for this problem, so I post to
> both.
>
> I have server with local partition using gjournal (mfid0s2f.journal).
> It is mounted from fstab by this line:
>
> /dev/mfid0s2f.journal /vol0 ufs rw,async,nosuid,noexec,noatime 2 2
>
> Then I have storage connected by iSCSI initiator by attached rc script.
> It should be mounted by this script according to fstab.iscsi line:
>
> /dev/da0p1.journal /vol1 ufs rw,async,nosuid,noexec,noatime 2 2
>
> But there is a problem, both partitions are journaled and journal is on
> local disk.
>
> It means that only the first partition is checked and mounted at boot time.
>
> GEOM_JOURNAL: Journal 2395012627: mfid0s2d contains journal.
> GEOM_JOURNAL: Journal 1544711416: mfid0s2e contains journal.
> GEOM_JOURNAL: Journal 2395012627: mfid0s2f contains data.
> GEOM_JOURNAL: Journal mfid0s2f clean.
> GEOM_JOURNAL: BIO_FLUSH not supported by mfid0s2d.
> GEOM_JOURNAL: BIO_FLUSH not supported by mfid0s2f.
> Root mount waiting for: GJOURNAL
> Root mount waiting for: GJOURNAL
> Root mount waiting for: GJOURNAL
> Root mount waiting for: GJOURNAL
> Root mount waiting for: GJOURNAL
> GEOM_JOURNAL: Timeout. Journal gjournal 1544711416 cannot be completed.
>
> This is because second data provider is not available at this time.
> rc.d/iscsi is executed later. (after NETWORKING, SERVERS, before DAEMON)
>
> But da0p1.journal is not created later (after iscsi created /dev/da0)
> with this message:
> GEOM_JOURNAL: Journal 1544711416: da0p1 contains data.
> GEOM_JOURNAL: Timeout. Journal gjournal 1544711416 cannot be completed.
>
> And that's why /vol1 can't be mounted by rc.d/iscsi.
>
> My question is: Is there any "Right Way" to handle this case?
>
> How can I "create" da0p1.journal later and complete the gjournal + mount?

gjournal should have both data and journal providers available to
create the .journal consumer. You can force a geom taste, so gjournal
will check again the devices, if you open the device for writing.
A trick suggested by pjd@ is doing a simple:
true > /dev/$data_device
true > /dev/$journal_device

This will create the .journal and you'll be able to mount the
filesystem living on it. So, modify the rc script accordingly to
do the operation automatically.

HTH, Nikos


More information about the freebsd-geom mailing list