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

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 

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

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to