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