how does gmirror start up?

Matthew Seaman m.seaman at
Tue Oct 13 13:02:26 UTC 2009

Nick Barnes wrote:
> 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?

The geom configuration is stored on the disks in question -- I believe it
uses the last cylinder of the drive, but I could be wrong about the details.
On startup, if the appropriate geom modules are loaded into the kernel,
geom will "taste" the disks discovered by enumerating the contents of all 
ATA, SCSI, USB, etc. busses (ie. read any geom metadata) to see if they are
part of a RAID array of some type.  The RAID will be automatically recreated,
and appears to the system as a new device.  If there are appropriate entries in
/etc/fstab any file systems on it will be mounted.

There's no data stored on the filesystem describing the RAID setup.  Well,
unless you make a backup of it yourself by dumping the output of 'gmirror status'

This means that you can move the disks from one server to another and all the
RAIDs will survive.  Actually, it's good enough that it can cope with you
shuffling the disks or installing them with completely different underlying
device names.  You would certainly have to avoid a clash of geom device names
when doing that -- the names are entirely arbitrary and 'gm0' is only the de-facto 
default because it was used in one of the most popular tutorials on the subject. 
If you think it necessary, you could include the host name in the geom label or otherwise take action to make them globally unique across all your systems.

You can achieve a similar effect for plain disks by using glabel -- this is a
handy way of avoiding the foot-shooting potential of a USB thumb drive that maps
as da0 on reboot, in place of the real system disk.



Dr Matthew J Seaman MA, D.Phil.                   7 Priory Courtyard
                                                  Flat 3
PGP:     Ramsgate
                                                  Kent, CT11 9PW

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 259 bytes
Desc: OpenPGP digital signature
Url :

More information about the freebsd-questions mailing list