Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 27 Mar 2012 23:49:08 -0600 (MDT)
From:      Warren Block <wblock@wonkity.com>
To:        Daniel Gerzo <danger@freebsd.org>
Cc:        freebsd-doc@freebsd.org, pjd@freebsd.org
Subject:   Re: Handbook RAID1 example
Message-ID:  <alpine.BSF.2.00.1203272317290.41849@wonkity.com>
In-Reply-To: <7e043215e6cd0f2da324d6599c921fec@rulez.sk>
References:  <alpine.BSF.2.00.1201231536490.92721@wonkity.com> <20120125.111625.2289296443525755896.hrs@allbsd.org> <7e043215e6cd0f2da324d6599c921fec@rulez.sk>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 27 Jan 2012, Daniel Gerzo wrote:

>>  I think we should rewrite this section not to create a malformed
>>  partition table by configuring gmirror in some way.  If all of
>>  partitions are UFS, the following procedure should be safe:
>>
>>   1. gmirror label gm0 /dev/da1, and edit /boot/loader.conf to load
>>      the kernel module.
>>
>>   2. Reboot and check if gm0 is recognized even after that (just in
>>      case).
>>
>>   3. Create partitions in /dev/mirror/gm0 based on ones in /dev/da0.
>>      If capacity of /dev/da0 and /dev/da1 is the same as each other
>>      gm0 should be slightly smaller by the last sector.
>>
>>   4. Dump & restore each partition from /dev/da0* to /dev/mirror/gm0*.
>>      Install a boot block if necessary.
>>
>>   5. mount /dev/mirror/gm0s1a /mnt, and edit /mnt/etc/fstab to mount
>>      gm0.  Also, apply the same change to /etc/fstab in /dev/da0.
>>
>>   6. Reboot and check if gm0 is mounted as the root partition.
>>
>>   7. gmirror add gm0 /dev/da0, and wait for the rebuild.
>>
>>  The primary difference between the above and one in the handbook is
>>  to use /dev/da1 for gm0 first.  By doing this, both making a backup
>>  of /dev/da0 and repartitioning before setting up the mirror
>>  configuration can be done virtually.  The step 3 may be complex in
>>  some cases, but I personally think partitioning /dev/mirror/gm0 by
>>  gpart based on the existing /dev/da0 is not so difficult.
>
> Basing on my previous discussion with pjd@ I believe that this is the correct 
> way of setting up gmirror. Pawel, could you confirm please?

It's been a while, but finally several factors converged and I have a 
first pass at a rewrite of the Handbook geom mirror RAID1 "convert your 
old disk to a mirror in-place" section.

Procedure tested on both 9.0-RELEASE and 8.2-RELEASE.  It could stand 
more testing.

High points
* does not mention kern.geom.debugflags
* does not create improper partition tables (boots on 9.0)
* uses gpart backup/restore to copy partition tables
* uses glabels, so the mirror still works even if the drives are moved
   around (tested)
* briefly explains the GPT/gmirror conflict

Potential problems
* 'gmirror clear'/'glabel clear' give confusing error messages when no
   metadata exists
* dump can hang when used on a 9.0-RELEASE SU+J filesystem

Samples
HTML: http://www.wonkity.com/~wblock/gmirror/geom-mirror.html
Diff: http://www.wonkity.com/~wblock/gmirror/geom.diff

Feedback welcome on both the procedure and the text.



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