Hi

In openbsd-misc you mentioned this web-page:

 http://inglorion.net/documents/tutorials/ccd/

I have a few questions/comments about the above and about ccd
in OpenBSD in general.

1) You talk about "RAID only works with whole disks"?  I'm curious 
which RAID implementation you're referring to... it seems like you 
might be talking about RAIDframe, but it works with partitions 
instead of disks too.  (In fact, it only cares about parititions.)

2) How does ccd keep track of the mirror getting out-of-sync?  (i.e. 
if the system happens to fall over at the exact instant where a write 
hits one of the disks, but not the other?)  I know how this is done in 
RAIDframe, but I don't see a similar mechanism in ccd, and lacking 
that mechanism would be Very Dangerous.  (if that data is never 
overwritten, and a disk fails, you might be left with the disk with 
correct data, or the one without correct data.  You flip the coin.)
  
3) The code appears to only ever do reads from the first partition
in 'old_io'-mode (the current default). That is fine if only the 
mirror fails, I suppose.  I havn't dug deep enough into ccd.c to 
determine what's really going on in !old_io mode, but it looks like
it reads from both parts of the mirror? (whether it needs to or not) 
There doesn't appear to be any mechanism here to say "this write failed"
and then to note that the data on a particular block is now invalid.  

4) Nothing is mentioned about how to "recover" from a disk failure.  
This is perhaps the most important part of any mirroring setup!! 
I think I saw mention of 'dd' in another post -- if that is indeed 
the mechanism, then, at a minimum, care must be taking to make sure 
the filesystem is not being written while the 'dd' is being done!!

I believe there are some very good reasons to be using the mirroring 
in RAIDframe, and to not be even thinking of using the 
so-called-"mirroring" support in ccd -- to me using ccd for 
"mirroring" is just asking for trouble.

But that's just my $0.02, and yes, I'll admit to being biased towards 
RAIDframe.  At the same time, however, I don't want to see to see people
get badly burned by something that is advertised as a "solution" when
it really isn't (and when other real solutions do exist -- RAIDframe 
only adds 150K to SomeOtherBSD's kernel these days).

Thanks for your time.

Later...

Greg Oster

Reply via email to