Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 13 Oct 2009 14:07:23 +0100
From:      krad <kraduk@googlemail.com>
To:        Matthew Seaman <m.seaman@infracaninophile.co.uk>
Cc:        Nick Barnes <nb@ravenbrook.com>, freebsd-questions@freebsd.org, Ravenbrook SysAdmins <sysadmins@ravenbrook.com>
Subject:   Re: how does gmirror start up?
Message-ID:  <d36406630910130607j33cd02a9l86029a7377ef4c40@mail.gmail.com>
In-Reply-To: <4AD47A55.2060707@infracaninophile.co.uk>
References:  <59889.1255436565@thrush.ravenbrook.com> <4AD47A55.2060707@infracaninophile.co.uk>

next in thread | previous in thread | raw e-mail | index | archive | help
2009/10/13 Matthew Seaman <m.seaman@infracaninophile.co.uk>

> 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'
> somewhere.
>
> 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.
>
>        Cheers,
>
>        Matthew
>
> --
> Dr Matthew J Seaman MA, D.Phil.                   7 Priory Courtyard
>                                                 Flat 3
> PGP: http://www.infracaninophile.co.uk/pgpkey     Ramsgate
>                                                 Kent, CT11 9PW
>
>
Also worth mentioning zfs config is stored on disk as well in a similar
manner albeit a bit more complicated.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?d36406630910130607j33cd02a9l86029a7377ef4c40>