Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 27 Jan 2005 08:08:56 -0600
From:      Karl Denninger <karl@denninger.net>
To:        Pawel Jakub Dawidek <pjd@FreeBSD.org>
Cc:        freebsd-geom@FreeBSD.org
Subject:   Re: Gmirror question - what am I doing wrong?
Message-ID:  <20050127080856.B45818@Denninger.Net>
In-Reply-To: <20050127091905.GN795@darkness.comp.waw.pl>; from Pawel Jakub Dawidek on Thu, Jan 27, 2005 at 10:19:05AM %2B0100
References:  <20050127000529.B40650@Denninger.Net> <20050127091905.GN795@darkness.comp.waw.pl>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Jan 27, 2005 at 10:19:05AM +0100, Pawel Jakub Dawidek wrote:
> On Thu, Jan 27, 2005 at 12:05:29AM -0600, Karl Denninger wrote:
> +> Now here's the problem.
> +> 
> +> Let's say that I have the system sync'd with the larger and smaller block
> +> count disks online.  The SMALLER one fails.  I replace it, but the other 
> +> larger disk is not available, because its in the vault.  I thus replace the
> +> disk with the SMALLER one, but I can't attach the slice on the replacement 
> +> disk, because that disk has a smaller capacity than the only remaining
> +> active mirror component, and I can't make a slice bigger than the number 
> +> of actual blocks that exist on the drive!
> +> 
> +> I'm screwed, and have no way out of this other than to ditch the entire
> +> scheme, manually recreate the smaller volume, copy all the data over, and
> +> restart gmirror from scratch.  
> 
> I need exact commands you use to perform this.
> I did small simulation of your problem (if I understand it right):
> 
> I created three md(4) devices:
> 
> md0 - 12MB
> md1 - 10MB
> md2 - 10MB
> 
> Now, I create a mirror from two of them:
> 
> 	# gmirror label foo /dev/md[01]
> 
> My mirror size is 10MB-512B.
> Now I remove smaller component:
> 
> 	# gmirror remove foo md1
> 
> And insert the second smaller component:
> 
> 	# gmirror insert foo md2
> 
> Everything works for me.
> 
> Some more notes: When you create a mirror, gmirror takes the smallest
> component's size as a size of the whole mirror, so you should be able
> to insert new components which are bigger than or equal to the smallest
> one (used for mirror creation).

Ok, I'll go through it again with the real disks and see what I get.

I attempted this and it failed, but I may have inadvertently destroyed the
metadata somewhere along the line.

Let me see if I can recreate it again, and get the exact command sequence.

--
-- 
Karl Denninger (karl@denninger.net) Internet Consultant & Kids Rights Activist
http://www.denninger.net	My home on the net - links to everything I do!
http://scubaforum.org		Your UNCENSORED place to talk about DIVING!
http://www.spamcuda.net		SPAM FREE mailboxes - FREE FOR A LIMITED TIME!
http://genesis3.blogspot.com	Musings Of A Sentient Mind





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