Creating a system RAID-10 device

Niki Denev nike_d at cytexbg.com
Tue Jan 17 14:33:40 PST 2006


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Sven Willenberger wrote:
> I hope this is the appropriate mailing list for this question, if not
> please redirect me as needed.
> 
> My goal is to create a filesystem consisting of a striped raid array
> over 3 mirror raid arrays that would encompass the entire filesystem
> including the /boot and root partitions.
> 
> Generally I would create a RAID10 from 6 disks as follows:
> 
> gmirror label -v -b round-robin md1 da0 da1
> gmirror label -v -b round-robin md2 da2 da3
> gmirror label -v -b round-robin md3 da4 da5
> 
> gstripe label -v -s 131072
> md0 /dev/mirror/md1 /dev/mirror/md2 /dev/mirror/md3
> 
> newfs /dev/stripe/md0
> 
> naturally the problem here is that it cannot be done on a system that
> booted from da0. I have seen the example of setting up a mirrored system
> drive
> (http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/geom-mirror.html )
> 
> which won't quite work for my case either. Using this method I could
> probably get the one mirror (md1) to work, but I know of no way of then
> adding the other 2 mirror sets and then redoing the system to stripe
> across all 3 mirrored sets.
> 
> The only thing I could think of was to boot from the livecd and create
> the 6-disk array and then trying to install FreeBSD onto this
> filesystem. In order to do this the installer would have to
> recognize /dev/stripe/md0 as a valid "drive" -- is there any way to have
> this happen?
> 
> Sven
> 

I've done this for a server in our office.
I used four disks, and did the following :
Split each disk on 2 parts, one about 60M
for /boot, and the other part to the end of the disk.
Then i created geom_mirror from the four 60M slices.
(yah, mirror from 4 devices, it wastes a little space, but
so what disks are cheap)
and then with the big slices i created two geom_mirrors
with 2 slices each, and then mirrored them.

It looks something like this :

root at srv# mount
/dev/mirror/gm0 on /boot_mirror (ufs, local, noatime, synchronous)
/dev/stripe/gs0a on / (ufs, local, noatime, with quotas, soft-updates)

root at srv# gmirror status
      Name    Status  Components
mirror/gm0  COMPLETE  da0s1a
                      da1s1a
                      da2s1a
                      da3s1a
mirror/gm1  COMPLETE  da0s1d
                      da1s1d
mirror/gm2  COMPLETE  da2s1d
                      da3s1d
root at srv# gstripe status
      Name  Status  Components
stripe/gs0      UP  mirror/gm1
                    mirror/gm2
root at srv#

root at srv# cat /boot/loader.conf
geom_mirror_load="YES"
geom_stripe_load="YES"
vfs.root.mountfrom="ufs:/dev/stripe/gs0a"

root at srv# ls -lad /boot*
lrwxr-xr-x  1 root  wheel   16 Jun 25  2005 /boot -> boot_mirror/boot
drwxr-xr-x  4 root  wheel  512 Jun 25  2005 /boot_mirror

Then i can boot a RAID-10 software array with GEOM on FreeBSD
and also have the added bonus that i can boot from any
of the four disks if any fails. (well, i guess i still
will have to chose other disk for boot from the scsi bios)

Regards,
- --niki
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFDzXC+HNAJ/fLbfrkRAlKyAJ9bhXwCQe2ZuLI6KL32yRGWCrnhsACfVSrM
TkQzpNM4UVy9V0OSNAk9RLY=
=NNNa
-----END PGP SIGNATURE-----


More information about the freebsd-stable mailing list