misc/124969: gvinum raid5 plex does not detect missing subdisk

Dan Ports drkp-f at ambulatoryclam.net
Wed Jun 25 01:30:02 UTC 2008


>Number:         124969
>Category:       misc
>Synopsis:       gvinum raid5 plex does not detect missing subdisk
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Jun 25 01:30:01 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator:     Dan Ports
>Release:        6.3-STABLE
>Organization:
>Environment:
FreeBSD clamshell.ambulatoryclam.net 6.3-STABLE FreeBSD 6.3-STABLE #4: Sat Jun 14 10:05:12 PDT 2008     root at clamshell.ambulatoryclam.net:/usr/obj/usr/src/sys/CLAMSHELL  i386
>Description:
I am using gvinum to create a RAID 5 array with three drives (i.e. a single raid5 plex with three subdisks). Recently, one drive failed. When the drive failed (but was present on boot), the array continues to work fine, albeit degraded, as one would expect. However, with the drive removed, gvinum does not properly detect the plex's configuration on boot:

2 drives:
D b                     State: up       /dev/ad11s1d    A: 0/474891 MB (0%)
D a                     State: up       /dev/ad10s1d    A: 0/474891 MB (0%)

1 volume:
V space                 State: up       Plexes:       1 Size:        463 GB

1 plex:
P space.p0           R5 State: degraded Subdisks:     2 Size:        463 GB

3 subdisks:
S space.p0.s2           State: down     D: c            Size:        463 GB
S space.p0.s1           State: up       D: b            Size:        463 GB
S space.p0.s0           State: up       D: a            Size:        463 GB

Note that space.p0 has a capacity of 463 GB, the size of the drive, when it should be twice that. It seems as though the plex isn't aware that the downed subdisk ever existed. As a result, the volume is up, but its data is not valid.

It seems a rather alarming flaw that a RAID 5 array fails to work correctly when one drive is not present!
>How-To-Repeat:
Create a gvinum raid5 plex with three subdisks, then remove the drive corresponding to one of them.
>Fix:
No fix, but the following thread appears to be describing the same problem, and includes an analysis. However, the problem appears to still exist. (I'm running 6.3-STABLE, and haven't tried either 7-STABLE or -CURRENT, but a cursory examination of the cvs history provides no indication that the problem has been fixed in other branches.)

http://lists.freebsd.org/pipermail/freebsd-geom/2007-March/002109.html

I'm willing to poke at this problem a bit more, but am probably the wrong person to do so since I currently have neither the time nor any geom experience.

>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list