how does gmirror start up?

Nick Barnes nb at ravenbrook.com
Tue Oct 13 12:40:52 UTC 2009


I am running a 6.3 system and have had various problems with disk
reliability on a key filesystem, probably down to SCSI hardware or
drivers.  I'm intending to replace that SCSI disk with a pair of SATA
disks ad6/7, using gmirror as gm0 (while keeping ad4 as our boot
disk).  I have set up the mirror and right now I'm part-way through
using rsync to transfer the data.  But I have a question concerning
the underlying operation of GEOM, which is troubling me.  I have read
the various man pages and handbook pages relating to GEOM and gmirror,
but they don't seem to answer this.

When I reboot the system, gmirror comes up (because of the line in
/boot/loader.conf) and gm0 appears, backed by ad6/7.  Where is this
configuration information stored?  That is, how does the system know
to make gm0, with ad6/7 as the backing store.

I would expect there to be a file somewhere in /etc with this config
information, but I don't see it in the documentation.  From reading
gmirror(8), I understand that there is a label sector at the ends of
ad6 and ad7, identifying them as parts of gm0.  But that config
information is back-to-front: at boot time the system knows from
/etc/fstab that it needs gm0; how does it find the underlying disks?

Does the system search the ends of all physically-attached disks,
looking for GEOM labels, and automatically make any corresponding GEOM
devices?  Surely not (that would mean, for instance, that if I took
one of these disks out of this machine and put it into another FreeBSD
system then that machine would automatically set up gm0 with this
disk).

Possibly I'm just being dense.  Can someone enlighten me?

Nick Barnes
Ravenbrook Limited


More information about the freebsd-questions mailing list