Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 12 Dec 2006 09:10:12 +0800
From:      Foo JH <jhfoo-ml@extracktor.com>
To:        John Nielsen <lists@jnielsen.net>,  tshadwick@oss-solutions.com
Cc:        freebsd-questions@freebsd.org
Subject:   Re: Setting up RAID-1 on 2 unequal disks
Message-ID:  <457E0174.3040902@extracktor.com>
In-Reply-To: <200612111316.21351.lists@jnielsen.net>
References:  <200612100905.30430.kirk@strauser.com> <20061211054125.GB681@pubbox.net> <457D1B24.8060109@extracktor.com> <200612111316.21351.lists@jnielsen.net>

next in thread | previous in thread | raw e-mail | index | archive | help
Hello John, Tony,

Thanks for your responses. I think I will try to go with John's approach 
(ie via gmirror), as I've used it previously for a raiding on 
equally-sized disks.

John, I will be trying out your suggestions in a while. Hope to get your 
help later down the road. :)

Tony, I'm quite sure your trick will work. I'm just too noob on FBSD to 
trick vinum. :P

John Nielsen wrote:
> On Monday 11 December 2006 03:47, Foo JH wrote:
>   
>> Hi all,
>>
>> I unfortunately have 2 uneuqally sized SATA disks to set up a mirrored
>> shared folder: 80GB and 120GB. On the 120GB I plan to set up this way:
>>
>> /temp        2GB (double the system memory)
>> /shared    80GB
>> /               38GB
>>
>> I plan to mirror /shared onto the 80GB. It won't be bootable, but I can
>> always mount it onto another FreeBSD machine.
>>
>> I've read some articles on mirroring on non-equal disks, notably:
>> http://people.freebsd.org/~rse/mirror/
>>
>> My question is: is there an easier way to do this? The example looks
>> quiet daunting for a noobie FreeBSD admin like me.
>>     
>
> I would use gmirror. The example page you cite is very thorough and covers 
> multiple scenarios. I have found gmirror to be extremely easy to use and set 
> up; much more so than gvinum or even ataraid.
>
> Gmirrror allows you to use any geom provider as a member (consumer) of a 
> mirrored set. That includes entire disks (e.g. ad4), slices (e.g. ad4s1), 
> partitions (e.g. ad4s1a), or even other complex structures (such as a gstripe 
> set).
>
> The only hard part is going to be labeling the 120GB disk correctly. You will 
> most likely want to do it manually using bsdlabel. One approach would be 
> something like the following. Assume ad4 is the 120GB disk and ad6 is the 
> 80GB disk. Boot up using a FreeBSD install disk and go into "Fixit" mode.
>
> # fdisk -BI /dev/ad6
> (it's safe to ignore the warning here)
>
> # bsdlabel -Bw /dev/ad6s1
>
> # sysctl kern.module_path="/dist/boot/kernel"
>
> # gmirror load
>
> # gmirror label -b load shared /dev/ad6s1a
> ("shared" is the name of your volume.. you can use whatever you want)
>
> # gmirror list
> (will show you details about your new "broken" mirror. Make a note of 
> the "Mediasize" number listed under the consumer.)
>
> # fdisk -BI /dev/ad4
> (it's safe to ignore the warning here)
>
> # bsdlabel -Bw /dev/ad4s1
>
> (these are only needed if you don't like/don't know how to use vi)
> # EDITOR=ee
> # export EDITOR
>
> # bsdlabel -e /dev/ad4s1
>
> Now comes the tricky part. The number shown on the c: line of the label is the 
> number of 512-byte sectors on the disk. It's good practice to leave 16 
> sectors unused at the beginning of the disk; you can see this in the default 
> whole-disk a: line. Figure out how big you need to make the slice for the 
> other side of the mirror by dividing the Mediasize number you noted 
> previously by 512. Then figure out how big you want your swap (if any--you 
> didn't mention any above) and /temp partitions by multiplying out to the 
> number of bytes then dividing by 512. Add all of that up plus the 16-sector 
> space at the beginning and subtract from the size (c: line) to determine how 
> much is left for /. Calculate all the offsets and put in the fstype (either 
> 4.2BSD or swap), and put zeroes in the other columns.
>
> As a reference, here is one of my disks:
>
> # /dev/ad4s1:
> 8 partitions:
> #        size   offset    fstype   [fsize bsize bps/cpg]
>   a:  6291456  1048502    4.2BSD        0     0     0 
>   b:  1048486       16      swap                    
>   c: 156312513        0    unused        0     0         # "raw" part, don't 
> edit
>   d: 117266625 39045888    4.2BSD        0     0     0 
>   e: 31705930  7339958    4.2BSD        0     0     0 
>
> Save the label and exit the editor.
>
> Now to finish up:
>
> # gmirror insert shared /dev/ad4s1e
> (be sure to use the actual partition device you set up above)
>
> # newfs -U /dev/mirror/shared
> ( /shared )
> # newfs -U /dev/ad4s1a
> ( / )
> # newfs -U /dev/ad4s1d
> ( /temp )
>
> Then exit fixit mode and do a Standard installation. Don't let sysinstall 
> re-label or newfs anything, just specify the mount points for your / 
> and /shared filesystems. You'll have to mount the mirror after you're done 
> with setup (just put it in /etc/fstab manually).
>
> Obviously, you should understand what all of the above does before you do any 
> of it, and may need to make changes.
>
> Good luck, and feel free to ask additional questions.
>
> JN
>   




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