Daemon News Ezine BSD News BSD Mall BSD Support Forum BSD Advocacy BSD Updates

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

sorely missing gvinum start or attach



Hi there,

I'm setting up a system (STABLE from around Jan 11th) with gvinum, and
I'm wondering how to add my second drive to the setup. I've can boot
from gvinum, and knowing that 'attach' is not yet implemented, I've
tried zeroing the gvinum on-disk configuration and recreating it with
the second disk. This works, but (a) gvinum marks both disks as up,
which I know is not true, so I (b) 'setstate stale' my second drive.
Trying to 'start' it doesn't work, but what's worse, (c) upon rebooting
(hoping that gvinum will start to rebuild the stale drive) gvinum marks
everything as stale!!

I figure I can just dd the whole vinum slice, but I'd like to see gvinum
rebuilding a drive...

Attached are two script files (*.out), the vinum config files used and
the detailed vinum versions used.  gvinum's messages in stderr (not
recorded in the script) were:

a) on creating the configuration:
gvinum: size of sd scratch.p0.s0 is not a multiple of plex stripesize,
taking off 314368 bytes
gvinum: size of sd scratch.p0.s1 is not a multiple of plex stripesize,
taking off 314368 bytes
GEOM_VINUM: subdisk swap.p1.s0 state change: stale -> up
GEOM_VINUM: plex swap.p1 state change: down -> up
GEOM_VINUM: subdisk std-root.p1.s0 state change: stale -> up
GEOM_VINUM: plex std-root.p1 state change: down -> up
GEOM_VINUM: subdisk base.p1.s0 state change: stale -> up
GEOM_VINUM: plex base.p1 state change: down -> up
GEOM_VINUM: subdisk apps.p1.s0 state change: stale -> up
GEOM_VINUM: plex apps.p1 state change: down -> up
GEOM_VINUM: subdisk package.p1.s0 state change: stale -> up
GEOM_VINUM: plex package.p1 state change: down -> up
GEOM_VINUM: subdisk std-var.p1.s0 state change: stale -> up
GEOM_VINUM: plex std-var.p1 state change: down -> up
GEOM_VINUM: subdisk scratch.p0.s1 state change: down -> up
GEOM_VINUM: subdisk home.p1.s0 state change: stale -> up
GEOM_VINUM: plex home.p1 state change: down -> up
GEOM_VINUM: subdisk swap.p0.s0 state change: down -> up
GEOM_VINUM: plex swap.p0 state change: down -> up
GEOM_VINUM: subdisk std-root.p0.s0 state change: down -> up
GEOM_VINUM: plex std-root.p0 state change: down -> up
GEOM_VINUM: subdisk base.p0.s0 state change: down -> up
GEOM_VINUM: plex base.p0 state change: down -> up
GEOM_VINUM: subdisk apps.p0.s0 state change: down -> up
GEOM_VINUM: plex apps.p0 state change: down -> up
GEOM_VINUM: subdisk package.p0.s0 state change: down -> up
GEOM_VINUM: plex package.p0 state change: down -> up
GEOM_VINUM: subdisk std-var.p0.s0 state change: down -> up
GEOM_VINUM: plex std-var.p0 state change: down -> up
GEOM_VINUM: subdisk scratch.p0.s0 state change: down -> up
GEOM_VINUM: plex scratch.p0 state change: down -> up
GEOM_VINUM: subdisk home.p0.s0 state change: down -> up
GEOM_VINUM: plex home.p0 state change: down -> up

b) on setstate stale estribor
GEOM_VINUM: subdisk swap.p1.s0 state change: up -> down
GEOM_VINUM: plex swap.p1 state change: up -> down
GEOM_VINUM: subdisk std-root.p1.s0 state change: up -> down
GEOM_VINUM: plex std-root.p1 state change: up -> down
GEOM_VINUM: subdisk base.p1.s0 state change: up -> down
GEOM_VINUM: plex base.p1 state change: up -> down
GEOM_VINUM: subdisk apps.p1.s0 state change: up -> down
GEOM_VINUM: plex apps.p1 state change: up -> down
GEOM_VINUM: subdisk package.p1.s0 state change: up -> down
GEOM_VINUM: plex package.p1 state change: up -> down
GEOM_VINUM: subdisk std-var.p1.s0 state change: up -> down
GEOM_VINUM: plex std-var.p1 state change: up -> down
GEOM_VINUM: subdisk scratch.p0.s1 state change: up -> down
GEOM_VINUM: plex scratch.p0 state change: up -> down
GEOM_VINUM: subdisk home.p1.s0 state change: up -> down
GEOM_VINUM: plex home.p1 state change: up -> down

c) on rebooting
GEOM_VINUM: subdisk scratch.p0.s1 state change: down -> stale
GEOM_VINUM: subdisk swap.p0.s0 state change: down -> stale
GEOM_VINUM: subdisk std-root.p0.s0 state change: down -> stale
GEOM_VINUM: subdisk base.p0.s0 state change: down -> stale
GEOM_VINUM: subdisk apps.p0.s0 state change: down -> stale
GEOM_VINUM: subdisk package.p0.s0 state change: down -> stale
GEOM_VINUM: subdisk std-var.p0.s0 state change: down -> stale
GEOM_VINUM: subdisk scratch.p0.s0 state change: down -> stale
GEOM_VINUM: subdisk home.p0.s0 state change: down -> stale

How can I workaround this lack of gvinum functionality?
-- 
pica
Script started on Sat Jan 14 23:12:18 2006
gromit# dd if=/dev/zero of=/dev/ad4s1d count=9
9+0 records in
9+0 records out
4608 bytes transferred in 0.001490 secs (3092376 bytes/sec)
gromit# dd if=/dev/zero of=/dev/ad4s1d count=9
9+0 records in
9+0 records out
4608 bytes transferred in 0.001460 secs (3156001 bytes/sec)
gromit# kldload geom_vinum
gromit# gvinum create ./both-drives.vinum
2 drives:
D estribor              State: up       /dev/ad6s1d     A: 214405/237444 MB (90%)
D babor                 State: up       /dev/ad4s1d     A: 214405/237444 MB (90%)

8 volumes:
V home                  State: up       Plexes:       2 Size:         10 GB
V scratch               State: up       Plexes:       1 Size:       3071 MB
V std-var               State: up       Plexes:       2 Size:       2048 MB
V package               State: up       Plexes:       2 Size:       1024 MB
V apps                  State: up       Plexes:       2 Size:       5120 MB
V base                  State: up       Plexes:       2 Size:        512 MB
V swap                  State: up       Plexes:       2 Size:       2047 MB
V std-root              State: up       Plexes:       2 Size:        512 MB

15 plexes:
P home.p1             C State: up       Subdisks:     1 Size:         10 GB
P home.p0             C State: up       Subdisks:     1 Size:         10 GB
P scratch.p0          S State: up       Subdisks:     2 Size:       3071 MB
P std-var.p1          C State: up       Subdisks:     1 Size:       2048 MB
P std-var.p0          C State: up       Subdisks:     1 Size:       2048 MB
P package.p1          C State: up       Subdisks:     1 Size:       1024 MB
P package.p0          C State: up       Subdisks:     1 Size:       1024 MB
P apps.p1             C State: up       Subdisks:     1 Size:       5120 MB
P apps.p0             C State: up       Subdisks:     1 Size:       5120 MB
P base.p1             C State: up       Subdisks:     1 Size:        512 MB
P base.p0             C State: up       Subdisks:     1 Size:        512 MB
P swap.p1             C State: up       Subdisks:     1 Size:       2047 MB
P swap.p0             C State: up       Subdisks:     1 Size:       2047 MB
P std-root.p1         C State: up       Subdisks:     1 Size:        512 MB
P std-root.p0         C State: up       Subdisks:     1 Size:        512 MB

16 subdisks:
S home.p1.s0            State: up       D: estribor     Size:         10 GB
S home.p0.s0            State: up       D: babor        Size:         10 GB
S scratch.p0.s1         State: up       D: estribor     Size:       1535 MB
S scratch.p0.s0         State: up       D: babor        Size:       1535 MB
S std-var.p1.s0         State: up       D: estribor     Size:       2048 MB
S std-var.p0.s0         State: up       D: babor        Size:       2048 MB
S package.p1.s0         State: up       D: estribor     Size:       1024 MB
S package.p0.s0         State: up       D: babor        Size:       1024 MB
S apps.p1.s0            State: up       D: estribor     Size:       5120 MB
S apps.p0.s0            State: up       D: babor        Size:       5120 MB
S base.p1.s0            State: up       D: estribor     Size:        512 MB
S base.p0.s0            State: up       D: babor        Size:        512 MB
S swap.p1.s0            State: up       D: estribor     Size:       2047 MB
S swap.p0.s0            State: up       D: babor        Size:       2047 MB
S std-root.p1.s0        State: up       D: estribor     Size:        512 MB
S std-root.p0.s0        State: up       D: babor        Size:        512 MB
gromit# gvinum setstate stale estribor

gromit# gvinum start estribor

gvinum: can't start: cannot start 'estribor' - not yet supported
gromit# D



gromit# ^Dexit

Script done on Sat Jan 14 23:13:13 2006
Script started on Sat Jan 14 23:17:49 2006
gromit# kldload geom_vinum

gromit# gvinum l

2 drives:
D babor                 State: up       /dev/ad4s1d     A: 214405/237444 MB (90%)
D estribor              State: up       /dev/ad6s1d     A: 214405/237444 MB (90%)

8 volumes:
V std-root              State: down     Plexes:       2 Size:        512 MB
V swap                  State: down     Plexes:       2 Size:       2047 MB
V base                  State: down     Plexes:       2 Size:        512 MB
V apps                  State: down     Plexes:       2 Size:       5120 MB
V package               State: down     Plexes:       2 Size:       1024 MB
V std-var               State: down     Plexes:       2 Size:       2048 MB
V scratch               State: down     Plexes:       1 Size:       3071 MB
V home                  State: down     Plexes:       2 Size:         10 GB

15 plexes:
P std-root.p0         C State: down     Subdisks:     1 Size:        512 MB
P std-root.p1         C State: down     Subdisks:     1 Size:        512 MB
P swap.p0             C State: down     Subdisks:     1 Size:       2047 MB
P swap.p1             C State: down     Subdisks:     1 Size:       2047 MB
P base.p0             C State: down     Subdisks:     1 Size:        512 MB
P base.p1             C State: down     Subdisks:     1 Size:        512 MB
P apps.p0             C State: down     Subdisks:     1 Size:       5120 MB
P apps.p1             C State: down     Subdisks:     1 Size:       5120 MB
P package.p0          C State: down     Subdisks:     1 Size:       1024 MB
P package.p1          C State: down     Subdisks:     1 Size:       1024 MB
P std-var.p0          C State: down     Subdisks:     1 Size:       2048 MB
P std-var.p1          C State: down     Subdisks:     1 Size:       2048 MB
P scratch.p0          S State: down     Subdisks:     2 Size:       3071 MB
P home.p0             C State: down     Subdisks:     1 Size:         10 GB
P home.p1             C State: down     Subdisks:     1 Size:         10 GB

16 subdisks:
S std-root.p0.s0        State: stale    D: babor        Size:        512 MB
S std-root.p1.s0        State: stale    D: estribor     Size:        512 MB
S swap.p0.s0            State: stale    D: babor        Size:       2047 MB
S swap.p1.s0            State: stale    D: estribor     Size:       2047 MB
S base.p0.s0            State: stale    D: babor        Size:        512 MB
S base.p1.s0            State: stale    D: estribor     Size:        512 MB
S apps.p0.s0            State: stale    D: babor        Size:       5120 MB
S apps.p1.s0            State: stale    D: estribor     Size:       5120 MB
S package.p0.s0         State: stale    D: babor        Size:       1024 MB
S package.p1.s0         State: stale    D: estribor     Size:       1024 MB
S std-var.p0.s0         State: stale    D: babor        Size:       2048 MB
S std-var.p1.s0         State: stale    D: estribor     Size:       2048 MB
S scratch.p0.s0         State: stale    D: babor        Size:       1535 MB
S scratch.p0.s1         State: stale    D: estribor     Size:       1535 MB
S home.p0.s0            State: stale    D: babor        Size:         10 GB
S home.p1.s0            State: stale    D: estribor     Size:         10 GB
gromit# ^Dexit

Script done on Sat Jan 14 23:18:14 2006
drive babor device /dev/ad4s1d

# vol root is after swap
volume std-root
	plex org concat
		sd len 1048576s driveoffset 4194288s drive babor

# vol swap is the first one, starts after vinum labels
# offset is 281-16
volume swap
	plex org concat
		sd len 4194023s driveoffset 265s drive babor
volume base
	plex org concat
		sd len 1048576s driveoffset 5242864s drive babor

# 5GB
volume apps
	plex org concat
		sd len 10485760s driveoffset 6291440s drive babor

# 1 GB
volume package
	plex org concat
		sd len 2097152s driveoffset 16777200s drive babor

# vol std-var: 2GB
volume std-var
	plex org concat
		sd len 4194304s driveoffset 18874352s drive babor 

# vol scratch
# should be striped, but for now...
# sd len 3145728s
# ends at 20971504s
volume scratch
	plex org concat
		sd len 3145728s driveoffset 23068656s drive babor

volume home
	plex org concat
		sd len 20971520s driveoffset 29360112s drive babor
drive babor device /dev/ad4s1d
drive estribor device /dev/ad6s1d

# vol root is after swap
volume std-root
	plex org concat
		sd len 1048576s driveoffset 4194288s drive babor
	plex org concat
		sd len 1048576s driveoffset 4194288s drive estribor

# vol swap is the first one, starts after vinum labels
# offset is 281-16
volume swap
	plex org concat
		sd len 4194023s driveoffset 265s drive babor
	plex org concat
		sd len 4194023s driveoffset 265s drive estribor
volume base
	plex org concat
		sd len 1048576s driveoffset 5242864s drive babor
	plex org concat
		sd len 1048576s driveoffset 5242864s drive estribor

# 5GB
volume apps
	plex org concat
		sd len 10485760s driveoffset 6291440s drive babor
	plex org concat
		sd len 10485760s driveoffset 6291440s drive estribor

# 1 GB
volume package
	plex org concat
		sd len 2097152s driveoffset 16777200s drive babor
	plex org concat
		sd len 2097152s driveoffset 16777200s drive estribor

# vol std-var: 2GB
volume std-var
	plex org concat
		sd len 4194304s driveoffset 18874352s drive babor 
	plex org concat
		sd len 4194304s driveoffset 18874352s drive estribor 

# vol scratch
# sd len 3145728s
# ends at 20971504s
volume scratch
	plex org striped 479k
		sd len 3145728s driveoffset 23068656s drive babor
		sd len 3145728s driveoffset 23068656s drive estribor

volume home
	plex org concat
		sd len 20971520s driveoffset 29360112s drive babor
	plex org concat
		sd len 20971520s driveoffset 29360112s drive estribor
gromit# ident /sbin/gvinum 
/sbin/gvinum:
     $FreeBSD: src/lib/csu/i386-elf/crti.S,v 1.7 2005/05/19 07:31:06 dfr Exp $
     $FreeBSD: src/lib/csu/i386-elf/crtn.S,v 1.6 2005/05/19 07:31:06 dfr Exp $
     $FreeBSD: src/lib/csu/common/crtbrand.c,v 1.4 2003/10/17 15:43:13 peter Exp $
     $FreeBSD: src/lib/csu/i386-elf/crt1.c,v 1.14 2005/05/19 07:36:07 dfr Exp $
     $FreeBSD: src/sys/geom/vinum/geom_vinum_share.c,v 1.4 2004/11/15 12:30:59 le Exp $
gromit# ident /boot/kernel/geom_vinum.ko 
/boot/kernel/geom_vinum.ko:
     $FreeBSD: src/sys/geom/vinum/geom_vinum.c,v 1.16.2.3 2005/12/10 14:36:17 le Exp $
     $FreeBSD: src/sys/geom/vinum/geom_vinum_drive.c,v 1.18.2.4 2005/12/10 14:36:17 le Exp $
     $FreeBSD: src/sys/geom/vinum/geom_vinum_plex.c,v 1.15.2.1 2005/08/19 08:48:04 le Exp $
     $FreeBSD: src/sys/geom/vinum/geom_vinum_volume.c,v 1.8.2.2 2005/10/09 04:35:42 delphij Exp $
     $FreeBSD: src/sys/geom/vinum/geom_vinum_subr.c,v 1.13 2005/01/19 13:57:09 le Exp $
     $FreeBSD: src/sys/geom/vinum/geom_vinum_raid5.c,v 1.10 2004/11/26 11:59:51 le Exp $
     $FreeBSD: src/sys/geom/vinum/geom_vinum_share.c,v 1.4 2004/11/15 12:30:59 le Exp $
     $FreeBSD: src/sys/geom/vinum/geom_vinum_list.c,v 1.3 2005/01/06 18:27:30 imp Exp $
     $FreeBSD: src/sys/geom/vinum/geom_vinum_rm.c,v 1.6.2.3 2005/11/26 11:06:11 le Exp $
     $FreeBSD: src/sys/geom/vinum/geom_vinum_init.c,v 1.10.2.1 2005/10/09 04:36:44 delphij Exp $
     $FreeBSD: src/sys/geom/vinum/geom_vinum_state.c,v 1.7 2005/01/21 18:27:23 le Exp $
     $FreeBSD: src/sys/geom/vinum/geom_vinum_rename.c,v 1.3.2.1 2005/11/26 11:06:11 le Exp $
     $FreeBSD: src/sys/geom/vinum/geom_vinum_move.c,v 1.2.2.1 2005/11/26 11:06:11 le Exp $
gromit#