MFC: graid(8) (RAID GEOM) support

Jeremy Chadwick freebsd at jdc.parodius.com
Wed Jun 22 10:37:06 UTC 2011


On Wed, Jun 22, 2011 at 12:02:50PM +0300, Alexander Motin wrote:
> Jeremy Chadwick wrote:
> > On Fri, Jun 17, 2011 at 05:51:24PM -0700, Jeremy Chadwick wrote:
> >> Sorry for the cross-post, but I thought both lists would want to know
> >> about this.
> >>
> >> Looks like mav@ just committed this ~17 hours ago:
> >> http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/geom/raid/g_raid.c
> >>
> >> Those who have historically wanted to use Intel MatrixRAID (now called
> >> Intel RST (Rapid Storage Technology)), but haven't due to the severe
> >> issues/risks with ataraid(4), will probably be very interested in
> >> this commit.  I know I am!
> >>
> >> I plan on stress-testing the Intel support on a 2-disk system with
> >> RAID-1 enabled, and will document my experiences, procedures, etc...
> >>
> >> Thanks, mav@ and imp@ !
> >>
> >> I'll be sending another mail momentarily asking about USB memory stick
> >> image building, since to accomplish the above, I want to do a
> >> "bare-bones" install on our test system (e.g. enable Intel RAID, set up
> >> 2 disks in a RAID-1 mirror, boot a USB memory stick that contains this
> >> latest RELENG_8 build, and do sysinstall, etc.. the normal way).
> >>
> >>
> >> =====================================================================
> >> MFC r219974, r220209, r220210, r220790:
> >> Add new RAID GEOM class, that is going to replace ataraid(4) in supporting
> >> various BIOS-based software RAIDs. Unlike ataraid(4) this implementation
> >> does not depend on legacy ata(4) subsystem and can be used with any disk
> >> drivers, including new CAM-based ones (ahci(4), siis(4), mvs(4), ata(4)
> >> with `options ATA_CAM`). To make code more readable and extensible, this
> >> implementation follows modular design, including core part and two sets
> >> of modules, implementing support for different metadata formats and RAID
> >> levels.
> >>
> >> Support for such popular metadata formats is now implemented:
> >> Intel, JMicron, NVIDIA, Promise (also used by AMD/ATI) and SiliconImage.
> >>
> >> Such RAID levels are now supported:
> >> RAID0, RAID1, RAID1E, RAID10, SINGLE, CONCAT.
> >>
> >> For all of these RAID levels and metadata formats this class supports
> >> full cycle of volume operations: reading, writing, creation, deletion,
> >> disk removal and insertion, rebuilding, dirty shutdown detection
> >> and resynchronization, bad sector recovery, faulty disks tracking,
> >> hot-spare disks. For Intel and Promise formats there is support multiple
> >> volumes per disk set.
> >>
> >> Look graid(8) manual page for additional details.
> >>
> >> Co-authored by: imp
> >> Sponsored by:   Cisco Systems, Inc. and iXsystems, Inc.
> >> =====================================================================
> > 
> > By the way, it doesn't look like the graid(8) man page is being brought
> > in to the base system on either of the two RELENG_8 systems I've rebuilt
> > in the past few days.
> > 
> > I'm thinking /usr/src/sbin/geom/class/raid/graid.8 isn't being noticed
> > as a man page.
> > 
> > /usr/src/sbin/geom/class/raid/Makefile doesn't have MAN8=graid.8 in it,
> > is that the problem?
> 
> I've just rebuilt my test 8-STABLE system and it installed graid(8).

Hmm, there must be something I'm missing either in the base system or
the kernel or both.  Does this kernel module and/or bits and pieces not
get built unless it's included strictly in the kernel?

Below is one of the two systems, looking for both graid* and geom_raid*.
There's the old geom_raid3 stuff there, and the source bits/pieces for
the new graid(8), but nothing seems built (including kernel module) for
the new graid(8).

If you'd like I can rm -fr /usr/src/* ; rm -fr /var/db/sup/src-all and
then re-download source from an official cvsup mirror (I've been using
cvsup9.freebsd.org for both boxes).

icarus# uname -a
FreeBSD icarus.home.lan 8.2-STABLE FreeBSD 8.2-STABLE #0: Fri Jun 17 18:01:45 PDT 2011     root at icarus.home.lan:/usr/obj/usr/src/sys/X7SBA_RELENG_8_amd64  amd64
icarus# find /usr -name "graid*" -ls
3211128        8 -r--r--r--    1 root             wheel                2521 Jun 17 18:25 /usr/share/man/man8/graid3.8.gz
 169318       16 -rw-r--r--    1 root             wheel                6390 Aug  3  2009 /usr/src/sbin/geom/class/raid3/graid3.8
 169624       16 -rw-r--r--    1 root             wheel                8126 Jun 16 23:59 /usr/src/sbin/geom/class/raid/graid.8
 921430        8 -rw-r--r--    1 root             wheel                2521 Jun 17 17:51 /usr/obj/usr/src/sbin/geom/class/raid3/graid3.8.gz
3369372        4 drwxr-xr-x    2 root             wheel                 512 May  3 03:58 /usr/ports/sysutils/graid5
icarus#
icarus# find /boot -name "graid*" -ls
icarus#
icarus# find /usr -name "geom_raid*" -ls
169317       20 -rw-r--r--    1 root             wheel                9257 Jan 18 21:13 /usr/src/sbin/geom/class/raid3/geom_raid3.c
165265        8 -rw-r--r--    1 root             wheel                2992 Jun 16 23:59 /usr/src/sbin/geom/class/raid/geom_raid.c
259652        4 drwxr-xr-x    2 root             wheel                 512 Jun  6 06:28 /usr/src/sys/modules/geom/geom_raid3
285292        4 drwxr-xr-x    2 root             wheel                 512 Jun 17 17:17 /usr/src/sys/modules/geom/geom_raid
262798        4 drwxr-xr-x    2 root             wheel                 512 Jun  6 06:29 /usr/src/tools/regression/geom_raid3
921428       48 -rw-r--r--    1 root             wheel               22760 Jun 17 17:51 /usr/obj/usr/src/sbin/geom/class/raid3/geom_raid3.So
921431       64 -rwxr-xr-x    1 root             wheel               32207 Jun 17 17:51 /usr/obj/usr/src/sbin/geom/class/raid3/geom_raid3.so
1014175        4 drwxr-xr-x    2 root             wheel                 512 Jun 17 18:00 /usr/obj/usr/src/sys/X7SBA_RELENG_8_amd64/modules/usr/src/sys/modules/geom/geom_raid3
1015257      736 -rw-r--r--    1 root             wheel              359456 Jun 17 18:00 /usr/obj/usr/src/sys/X7SBA_RELENG_8_amd64/modules/usr/src/sys/modules/geom/geom_raid3/geom_raid3.ko.debug
1015258      640 -rw-r--r--    1 root             wheel              304432 Jun 17 18:00 /usr/obj/usr/src/sys/X7SBA_RELENG_8_amd64/modules/usr/src/sys/modules/geom/geom_raid3/geom_raid3.ko.symbols
1015259      272 -rw-r--r--    1 root             wheel              137448 Jun 17 18:00 /usr/obj/usr/src/sys/X7SBA_RELENG_8_amd64/modules/usr/src/sys/modules/geom/geom_raid3/geom_raid3.ko
icarus#
icarus# find /boot -name "geom_raid*" -ls
 94943      272 -r-xr-xr-x    1 root             wheel              137448 Jun 17 18:24 /boot/kernel/geom_raid3.ko
 94944      640 -r-xr-xr-x    1 root             wheel              304432 Jun 17 18:24 /boot/kernel/geom_raid3.ko.symbols
 71074      272 -r-xr-xr-x    1 root             wheel              137448 Jun  6 05:35 /boot/kernel.old/geom_raid3.ko
 71075      640 -r-xr-xr-x    1 root             wheel              304432 Jun  6 05:35 /boot/kernel.old/geom_raid3.ko.symbols

-- 
| Jeremy Chadwick                                jdc at parodius.com |
| Parodius Networking                       http://www.parodius.com/ |
| UNIX Systems Administrator                   Mountain View, CA, US |
| Making life hard for others since 1977.               PGP 4BD6C0CB |



More information about the freebsd-fs mailing list