replace a working vinum drive in RAID-5 config

Stijn Hoop stijn at win.tue.nl
Wed Sep 10 04:52:01 PDT 2003


On Wed, Sep 10, 2003 at 12:16:09PM +0200, Stijn Hoop wrote:
> I'm trying to find out how to replace a drive in a vinum RAID-5 volume
> that's still working. I have the following volume (copied by hand, sorry):
> 
> V local		State: up	Plexes:		1 Size:		167 GB
> P local.p0	     R5 State: up	Subdisks:	4 Size:		167 GB
> S local.p0.s0		State: up	PO:	     0  B Size:		 55 GB
> S local.p0.s1		State: up	PO:	   512 kB Size:		 55 GB
> S local.p0.s2		State: up	PO:	  1024 kB Size:		 55 GB
> S local.p0.s3		State: up	PO:	  1536 kB Size:		 55 GB
> 
> with s0..s3 on drives locala..d. Drive localc is on device /dev/ad14s1e,
> and that's the IDE disk I want to replace.

Here's what I just did, for the record:

> - boot the system single user
> - enter vinum
> - issue 'start' to read the configuration and start all volumes
> - issue 'stop localc'

this gave me 'can't stop localc: Device Busy(16)'

Strange, because I had done that just before to test this without replacing
the drive, and at that time vinum really responded with:

> - this sets the state of local.p0.s2 to degraded automatically

Anyway, since that didn't appear to work, this time I thought I'd be brave and
I just went on:

> - stop vinum
> - halt the system
> - physically replace the drive
> - boot the system single user

I decided to skip the next step until after the 'vinum start':

> - fdisk / disklabel the new drive to include a 55GB sized vinum partition

So I did:

> - enter vinum
> - issue 'start' to read the configuration and start all volumes

Whereupon vinum complained that localc was referenced but non-existant,
and therefore local.p0.s2 was 'crashed' and local.p0 was 'stale' (IIRC).
My volume was still up and contained the data *phew*.

So then I did:

> - fdisk / disklabel the new drive to include a 55GB sized vinum partition

And I had to tell vinum that drive localc was now on that partition,
so I created a text file containing just the line

drive localc device /dev/ad14s1e

and issued

vinum create -f /tmp/drive.conf

And then vinum automatically found that the drive was back, and therefore
local.p0.s2 was 'stale'. After that, the next step was

> - issue 'start local.p0.s2' to revive the subdisk

And vinum started reviving the disk in the background.

To recap the necessary procedure:

- turn off pc
- physically replace drive
- boot single user
- issue 'vinum start'
- fdisk/disklabel new drive to include samesized vinum partition
- create the drive using the old name in the vinum configuration
- 'start' the associated subdisk to begin the revive process

Hope this helps others,

--Stijn

-- 
Nostalgia ain't what it used to be.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-questions/attachments/20030910/99a432ec/attachment.bin


More information about the freebsd-questions mailing list