newfs -v on vinum raid5 panics system (4.10-p3 RELEASE)

secmgr security at jim-liesl.org
Thu Oct 21 15:16:47 PDT 2004


I've got 7x9.1 gig scsi drives off an adaptec AIC7880 class controller. 
(da0-6).  I want to raid5 these using vinum.  I'm a newbie with vinum.  
If I use a bsd partition the same size as the slice (c=h), and then let 
the subdisks use the entire partition (len 0), the raid set is corrupted 
every time after initializing.  This usually leads to a kernel panic 
during newfs.  If I leave some amount free, (ie the subdisk only uses 
8000mb of a 8675mb drive) no problem.  If  i'm RTFM'ing  correctly, it 
looks like it should reserve 132kb per drive.  I guess I assumed that 
would be automagically reserved, or if it's supposed to be, it's getting 
walked on.

first I fdisk each drive to create the slice (using the fdisk in 
sysinstall and letting it autocreate the slice)
The data for partition 1 is:
sysid 165,(FreeBSD/NetBSD/386BSD)
    start 63, size 17767827 (8675 Meg), flag 80 (active)
        beg: cyl 0/ head 1/ sector 1;
        end: cyl 1023/ head 254/ sector 63
The data for partition 2 is:
<UNUSED>
...

Next, I disklabel each drive (they're all identical)
# /dev/da0s1c:
#        size   offset    fstype   [fsize bsize bps/cpg]
  c: 17767827        0    unused        0     0         # (Cyl.    0 - 
1105*)
  h: 17767827        0     vinum                        # (Cyl.    0 - 
1105*)

and finally, I use the following to create the volume
drive d0 device /dev/da0s1h
drive d1 device /dev/da1s1h
drive d2 device /dev/da2s1h
drive d3 device /dev/da3s1h
drive d4 device /dev/da4s1h
drive d5 device /dev/da5s1h
drive d6 device /dev/da6s1h
volume bob plex bp
 plex name bp org raid5 500k
 sd len 0 drive d0
 sd len 0 drive d1
 sd len 0 drive d2
 sd len 0 drive d3
 sd len 0 drive d4
 sd len 0 drive d5
 sd len 0 drive d6

I init the plex (about 90 minutes go by) and all subdisks show initialized.
I type 'vinum start',  and then 'vinum list'
greybrd# vinum list
14 drives:

1 volumes:
V bob                   State: up       Plexes:       1 Size:         50 GB

1 plexes:
P bp                 R5 State: up       Subdisks:     7 Size:         50 GB

7 subdisks:
S bp.s0                 State: up       PO:        0  B Size:       8675 MB
S bp.s1                 State: up       PO:      500 kB Size:       8675 MB
S bp.s2                 State: up       PO:     1000 kB Size:       8675 MB
S bp.s3                 State: up       PO:     1500 kB Size:       8675 MB
S bp.s4                 State: up       PO:     2000 kB Size:       8675 MB
S bp.s5                 State: up       PO:     2500 kB Size:       8675 MB
S bp.s6                 State: up       PO:     3000 kB Size:       8675 MB

all seems well (except that the drives don't show).  Just for grins, I 
do a 'vinum checkparity bp', and now all the subdisks show as crashed.  
I assume this is what happened when I tried the newfs also.

greybrd# vinum list
14 drives:

1 volumes:
V bob                   State: up       Plexes:       1 Size:         50 GB

1 plexes:
P bp                 R5 State: up       Subdisks:     7 Size:         50 GB

7 subdisks:
S bp.s0                 State: crashed  PO:        0  B Size:       8675 MB
S bp.s1                 State: crashed  PO:      500 kB Size:       8675 MB
S bp.s2                 State: crashed  PO:     1000 kB Size:       8675 MB
S bp.s3                 State: crashed  PO:     1500 kB Size:       8675 MB
S bp.s4                 State: crashed  PO:     2000 kB Size:       8675 MB
S bp.s5                 State: crashed  PO:     2500 kB Size:       8675 MB
S bp.s6                 State: crashed  PO:     3000 kB Size:       8675 MB

If I stop and start vinum, the plex is hosed.

greybrd# vinum start
*** Warning: configuration updates are disabled. ***
Warning: defective objects

V bob                   State: down     Plexes:       1 Size:          0  B
P bp                 R5 State: init     Subdisks:   -28 Size:          0  B
*** Warning: configuration updates are disabled. ***
(syslog output)
Oct 20 04:54:17 greybrd /kernel: vinum: bp.s0 is up
Oct 20 04:54:17 greybrd /kernel: vinum: bp.s1 is up
(repeated for all subdisks)
Oct 20 04:54:17 greybrd /kernel: vinum: bp is up (the plex)
Oct 20 04:54:17 greybrd /kernel: vinum: bob is up (the volume)
Oct 20 05:15:41 greybrd /kernel: vinum: bp.s0 is crashed by force
Oct 20 05:15:41 greybrd /kernel: vinum: bp.s1 is crashed by force
(msg repeated for all the subdisks)
Oct 20 05:21:29 greybrd /kernel: vinum: unloaded
Oct 20 05:21:34 greybrd /kernel: vinum: loaded
Oct 20 05:21:34 greybrd /kernel: vinum: reading configuration from 
/dev/da6s1h
Oct 20 05:21:34 greybrd /kernel: vinum: bp.s0: invalid keyword: 17767000s
Oct 20 05:21:34 greybrd /kernel: Disabling configuration updates
Oct 20 05:21:34 greybrd /kernel: vinum: No space for  on d0
Oct 20 05:21:35 greybrd /kernel: vinum: bp.s1: invalid keyword: 17767000s
Oct 20 05:21:35 greybrd /kernel: vinum: No space for  on d1
(msg repeated for the remaining subdisks)

This is what I dumped out of the disk header

IN VINOgreybrd.FQDNd0I7vA;^NAvA^Q&;^^volume bob state down
plex name bp state init org raid5 1000s vol bob
sd name bp.s0 drive d0 plex  len 17767000s driveoffset 265s state 
initialized plexoffset 0s
sd name bp.s1 drive d1 plex  len 17767000s driveoffset 265s state 
initialized plexoffset 1000s
sd name bp.s2 drive d2 plex  len 17767000s driveoffset 265s state 
initialized plexoffset 2000s
sd name bp.s3 drive d3 plex  len 17767000s driveoffset 265s state 
initialized plexoffset 3000s
sd name bp.s4 drive d4 plex  len 17767000s driveoffset 265s state 
initialized plexoffset 4000s
sd name bp.s5 drive d5 plex  len 17767000s driveoffset 265s state 
initialized plexoffset 5000s
sd name bp.s6 drive d6 plex  len 17767000s driveoffset 265s state 
initialized plexoffset 6000s


More information about the freebsd-stable mailing list