[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference ssag::ask_ssag

Title:Ask the Storage Architecture Group
Notice:Check out our web page at http://www-starch.shr.dec.com
Moderator:SSAG::TERZAN
Created:Wed Oct 15 1986
Last Modified:Fri Jun 06 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:6756
Total number of notes:25276

6530.0. "How mirror set redundancy is maintained under hardware mirroring?" by OSOV03::KAGEYAMA (Trust, but Verify) Mon Mar 31 1997 04:33

I've heard under hardware mirroring data redundancy is maintained in 
somewhat strange method as I know under OpenVMS volume shadowing 
software.

What I heard is, if I have 4 member mirror set, each member has 
following cyclic redundancy.


	mem1	mem2	mem3	mem4

	A	B	C	D
	-       -	-	-
	D'      A'	B'	C'		' is copy of original data


Total capacity is half of all member disks for redundancy. It's same
with host base shadowing.  But there's no same member disk if one of 
member disks would be lost, although data redundancy is held absolutely.

Is this true?  
If so which hardware mirroing implement this kind of method? Mylex? HSOF? 
Can I have odd number of mirror set member?

- Kazunori
T.RTitleUserPersonal
Name
DateLines
6530.1EPS::VANDENHEUVELHeinMon Mar 31 1997 11:0111
    
> If so which hardware mirroing implement this kind of method? Mylex? HSOF? 
> Can I have odd number of mirror set member?
    
    Mylex raid controller (SWXCRs aka KZPSC and KZPSE) will 'move' the 
    parity around and indeed allow for 'odd' sized groups for 0+1 shadowing.
    
    fwiw,
    	Hein.
    
    
6530.2SSAG::LARYteach 10,000 stars how not to danceTue Apr 01 1997 04:3921
If I understand your diagram correctly, it is an example of a redundancy
technique called "Chained Declustering" which is touted as superior to
RAID 0+1. In your example, Chained Declustering divides each disk in half
(simplest way is two big contiguous halves, but performance may be better if
the halves are interleaved) and shadows the halves, but in a staggered fashion.
The MTDL (Mean Time to Data Loss) is slightly lower than RAID 0+1 because the
number of two-drive combinations whose failure can produce data loss is larger,
but larger than RAID 5. The advantage of chained declustering over RAID 0+1 in
your example is that when a disk fails, the two disks on either side each
increase their read load by 50% instead of having the single surviving
mirrorset member increase its read load by 100%. Obviously this advantage is
only meaningful when you need the redundancy in RAID 0+1 to improve read
throughput over plain RAID 0. 

You can use chained declustering on any set of 2 or more disks, although you
get no advantage at all over mirroring when you use it on 2 disks. And, if I
remember correctly, you can divide the disks into arbitrarily many chunks (not
just 2) and spread the read load on a failure to all the other disks in the
chained declustering set. When you do this, the MTDL is the same as RAID 5.

As far as I know, we have no shipping product that implements this.
6530.30+1 |= striped mirroringOSOV03::KAGEYAMATrust, but VerifyWed Apr 02 1997 04:5628
Thanks for response.

>    Mylex raid controller (SWXCRs aka KZPSC and KZPSE) will 'move' the 
>    parity around and indeed allow for 'odd' sized groups for 0+1 shadowing.

I've looked into RAID Array 200 manual. It describs the above. RAID 0+1
is implemented as

	Disk1		Disk2		Disk3
	--------------	--------------	---------------	
	Data1		Data2		Data3
	Mirror3		Mirror1		Mirror2
	--------------	--------------	---------------	
	Block 0-1 D1	Block 2-3 D2	Block 4-5 D3
	Block 4-5 M3	Block 0-1 M1	Block 2-3 M2
	Block 6-7 D1	Block 8-9 D2	Block 10-11 D3
	Block 10-11 M3	Block 6-7 M1	Block 8-9 M2
	...		...		...	

So "0+1" can be started from 3 member disks unlike HSOF.

Is this the same thing as "Chained Declustering"?

This kind of implmentation could be claimed as "0+1"? 
0+1 needs not be same as striped mirroring or mirrored striping?

- Kazunori
6530.4AMCFAC::RABAHYdtn 471-5160, outside 1-810-347-5160Wed Apr 02 1997 10:289
    Neat.  It is still 2N and no small write penalty.  Still not atomic
    without a wbc when done at the controller.  Someone ought to look at
    doing this at the host.  Recovery requires an extra spindle but that's
    a mixed blessing -- it spreads the load but could thrash against
    application I/O more.
    
    For even numbers, is the traditional pairing superior?  For odd numbers
    larger than 3, would a hybred be interesting?  My idea would be to form
    all pairs and one set of 3 with the staggered layout.