kern/79035: gvinum unable to create a striped set of mirrored sets/plexes

Greg 'groggy' Lehey grog at FreeBSD.org
Sat Mar 19 21:30:07 PST 2005


The following reply was made to PR kern/79035; it has been noted by GNATS.

From: Greg 'groggy' Lehey <grog at FreeBSD.org>
To: Sven Willenberger <sven at dmv.com>
Cc: freebsd-gnats-submit at FreeBSD.org
Subject: Re: kern/79035: gvinum unable to create a striped set of mirrored sets/plexes
Date: Sun, 20 Mar 2005 15:51:33 +1030

 --oj4kGyHlBMXGt3Le
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: inline
 
 On Saturday, 19 March 2005 at 23:43:00 -0500, Sven Willenberger wrote:
 > Greg 'groggy' Lehey presumably uttered the following on 03/19/05 22:11:
 >> On Sunday, 20 March 2005 at  2:04:34 +0000, Sven Willenberger wrote:
 >>
 >>> Under the current implementation of gvinum it is possible to create
 >>> a mirrored set of striped plexes but not a striped set of mirrored
 >>> plexes. For purposes of resiliency the latter configuration is
 >>> preferred as illustrated by the following example:
 >>>
 >>> Use 6 disks to create one of 2 different scenarios.
 >>>
 >>> 1) Using the current abilities of gvinum create 2 striped sets using
 >>> 3 disks each: A1 A2 A3 and B1 B2 B3 then create a mirror of those 2
 >>> sets such that A(123) mirrors B(123). In this situation if any drive
 >>> in Set A fails, one still has a working set with Set B. If any drive
 >>> now fails in Set B, the system is shot.
 >>
 >> No, this is not correct.  The plex ("set") only fails when all drives
 >> in it fail.
 >
 > I hope the following diagrams better illustrate what I was trying to
 > point out. Data striped across all the A's and that is mirrored to the B
 > Stripes:
 >
 > ...
 >
 > If A1 fails, then the A Stripe set cannot function (much like in Raid 0,
 > one disk fails the set) meaning that B now is the array:
 
 No, this is not correct.
 
 >>> Thus the striping of mirrors (rather than a mirror of striped sets)
 >>> is a more resilient and fault-tolerant setup of a multi-disk array.
 >>
 >> No, you're misunderstanding the current implementation.
 >
 > Perhaps I am ... but unless gvinum somehow reconstructs a 3 disk stripe
 > into a 2 disk stripe in the event one disk fails, I am now sure how.
 
 Well, you have the source code.  It's not quite the way you look at
 it.  It doesn't have stripes: it has plexes.  And they can be
 incomplete.  If a read to a plex hits a "hole", it automatically
 retries via (possibly all) the other plexes.  Only when all plexes
 have a hole in the same place does the transfer fail.
 
 You might like to (re)read http://www.vinumvm.org/vinum/intro.html.
 
 Greg
 --
 See complete headers for address and phone numbers.
 
 --oj4kGyHlBMXGt3Le
 Content-Type: application/pgp-signature
 Content-Disposition: inline
 
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.2.6 (FreeBSD)
 
 iD8DBQFCPQhdIubykFB6QiMRAmrSAJ9c1s3Hclp/mQUU+YIenXXLgA/ViACgg/uZ
 sg//WXGWNor/Yho5ZDhIFjQ=
 =z4NN
 -----END PGP SIGNATURE-----
 
 --oj4kGyHlBMXGt3Le--


More information about the freebsd-bugs mailing list