Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 26 Jan 2002 10:20:58 +1030
From:      Greg Lehey <grog@FreeBSD.org>
To:        Martin Blapp <mb@imp.ch>
Cc:        freebsd-stable@FreeBSD.org
Subject:   Re: double fault with vinum and 4.5 RC3
Message-ID:  <20020126102058.U4778@wantadilla.lemis.com>
In-Reply-To: <20020125151124.O58067-100000@levais.imp.ch> <20020125134718.I58067-100000@levais.imp.ch> <20020125111624.S47234-100000@levais.imp.ch>
References:  <20020125131225.E4778@wantadilla.lemis.com> <20020125151124.O58067-100000@levais.imp.ch> <20020125131225.E4778@wantadilla.lemis.com> <20020125134718.I58067-100000@levais.imp.ch> <20020125131225.E4778@wantadilla.lemis.com> <20020125111624.S47234-100000@levais.imp.ch>

next in thread | previous in thread | raw e-mail | index | archive | help
On Friday, 25 January 2002 at 11:38:31 +0100, Martin Blapp wrote:
>
> Hi,
>
> Here is the config, before I exchanged da0 with a raw disk.
>
> # Vinum configuration of , saved at Fri Jan 25 09:44:32 2002
> drive vinumdrive0 device /dev/da0e
> drive vinumdrive1 device /dev/da1e
> drive vinumdrive2 device /dev/da0f
> drive vinumdrive3 device /dev/da1f
> drive vinumdrive4 device /dev/da0g
> drive vinumdrive5 device /dev/da1g

You still haven't explained why you're doing this.

> I guess I know what makes the trouble. To be able to boot !

!?

> from da0, which also has a root partition on it, I changed SCSI
> ID's, so my old da1 got da0. And vinum cannot deal with this.

Yes, it can.

> I really should be able to tell vinum that vinumdrive1 is indead
> vinumdrive2, since the device ordering has changed.

It does this automatically.

> But I really do not want to restore my root partition from backup,
> if I still have a working cold mirror. That is nonsense.

It would be nonsense, but it's incorrect.

>> vinum list?
>
> eblcom# vinum list
> 3 drives:
> D vinumdrive1           State: up       Device /dev/da0s1e      Avail: 0/1024 MB
> D vinumdrive3           State: up       Device /dev/da0s1f      Avail: 0/6144 MB
> D vinumdrive5           State: up       Device /dev/da0s1g      Avail: 0/22712 MB
> D vinumdrive0           State: referenced       Device  Avail: 0/0 MB
> D vinumdrive2           State: referenced       Device  Avail: 0/0 MB
> D vinumdrive4           State: referenced       Device  Avail: 0/0 MB

OK, da1 is gone away.

> It seems to me that reviveing the mirrors does not work as supposed.

You need a disk first.

> By the way. I found the command which made such problems:
>
> have a configfile like such:
>
> # cat /root/configfile
> drive vinumdrive0 device /dev/da1e
> drive vinumdrive2 device /dev/da1f
> drive vinumdrive4 device /dev/da1g
>
> and execute
>
> vinum create /root/configfile twice ! makes STABLE 4.5RC3 crashing
> with a double fault. I guess we should fix that. I'm makeing now a
> debug kernel.

OK, this bears investigation.

> If I try to take the configfile as described above, from the
> original creation, I get vinum hanging and get unkillable, or I get
> a segfault from vinum. (Both happened)

OK, let's see the dumps.

On Friday, 25 January 2002 at 13:59:32 +0100, Martin Blapp wrote:
>
> I've found now a way to work around this vinum limitation.
> It seems that a vinum mirror is not able to handle this case:
>
> Crash of the "Master disk", "Slave Disk becomes Master instead,
> and we boot the Slave Disk as Master.

There's no such thing as a master or a slave disk in Vinum.

> I had to do the following steps:
>
> 1) Reboot
> 1) Change SCSI ID's. ID1 > ID2, ID2 > ID1

This is not necssary.

> 3) Boot up the previous SLAVE disk into SUM
> 4) Partition da1 the same as da0
> 5) Disklabel da1 the same way as da0
> 6) dd bs=4096k if=/dev/da0a of=/dev/da1a
> 7) reboot
> 8) Change SCSI ID's. ID2 > ID1, ID1 > ID2
> 9) Boot up the previous SLAVE disk into SUM
> 10) echo "drive vinumdrive0 device /dev/da0e" > configfile
>     echo "drive vinumdrive2 device /dev/da0f" >> configfile
>     echo "drive vinumdrive4 device /dev/da0g" >> configfile
> 11) vinum start
> 12) vinum start vinumdrive0
> 13) vinum start vinumdrive2
> 14) vinum start vinumdrive4
> 15) vinum stop
> 16) vinum start var.p0.s0
> 17) vinum start docsis.p0.s0
> 18) vinum start docsisvar.p0.s0
>
> And then vinum gets happy and rebuilds.

Most of what you have done there is irrelevant.

> The only difference here is that we have to reboot and change SCSI
> ID's twice, instead of only one time.

You don't need to change them at all.

On Friday, 25 January 2002 at 15:14:37 +0100, Martin Blapp wrote:
>
> Hi Greg,
>
> Does this look reasonable now ? (I Included my workaround for the
> vinum double fault panic problem.)

No.  It's all based on a misunderstanding of how Vinum works.

I'll wait for the dumps of the situations you show above.  We should
also check the hangs.

Greg
--
See complete headers for address and phone numbers

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020126102058.U4778>