gmirror comments and questions (causes panic)

Elliot Finley efinleywork at
Sat Nov 26 05:53:25 GMT 2005

I'm on 6-Stable as of yesterday.  I've been playing around with gmirror and
overall I'm very impressed.

I created a mirror with three components:

gmirror label -v -b round-robin test twed12
gmirror insert -v test twed13
gmirror insert -v test twed14

in the man page for gmirror the synopsis for the label and insert commands

gmirror label [-hnv] [-b balance] [-s slice] name prov ...
gmirror insert [-hiv] [-p priority] name prov ...

which means that it's calling twed12, twed13, twed14 the providers.
presumably test would be the consumer.  But when I do a gmirror list, I get

1. Name: mirror/test

1. Name: twed12
2. Name: twed13
3. Name: twed14

which means that it's calling twed12, twed13 and twed14 the consumers.  So
that is a little confusing.  twed12 already had data on it, so I mounted it
on /mnt and waited for 13 and 14 to finish syncing.  I wanted to try using a
disk image as a backup for a simulated data update so that I could roll back
to the image if need be.  I did a:

gmirror remove -v test twed12

so I could use 12 as the backup image.  I made changes to the mirror and

gmirror remove -v test twed13
gmirror remove -v test twed14
gmirror status

which caused the machine to panic.  I know that's not the right procedure,
but maybe gmirror could be changed to warn against removing the last
component of a mirror, or possibly handle it in a better way.

I booted back up and recreated the mirror using twed12 as the first
component, thus restoring the mirror to it's pre-upgrade state.  So the
disk-image-as-a-backup worked very well.

I was impressed with the fact that when I rebooted in the middle of a
gmirror syncronize, it started where it left off rather than starting over.

so here's the big question; if I have the boot disk mirrored with gmirror,
is it possible to remove a component of the mirror before a major upgrade
and use it as a backup just in case the upgrade catastrophically fails.  If
so, what would be the correct procedure?  This would all need to be remote
without physical access to the machine of course.

Thanks in advance for any info/pointers/rtfm.
Double thanks for gmirror, it is a fine piece of software.


More information about the freebsd-questions mailing list