[CentOS] SW-RAID on 2 SATA controllers

Bryan J. Smith b.j.smith at ieee.org
Sat Jun 25 02:34:29 UTC 2005


On Sat, 2005-06-25 at 04:01 +0200, Dag Wieers wrote:
> Hi,
> Would it be advisable to use SW-RAID using 2 different SATA controllers. 
> My system happens to have both a VIA VT8237 and SIL3114 SATA controller, 
> and I thought for both performance reason and redundancy using both for a 
> 2 disk RAID1 array would be best.
> But it's possible that SW-RAID does not like or cannot overcome problems 
> with such a setup or that one of these drivers is known to have issues.
> Any insight is welcome :)

Let's talk "driver ... issues" then.

You just hit on one of the major reasons I don't use "raw" ATA/SATA
channels.  Remember, [S]ATA is "intelligent drive electronics" (IDE),
and the so-called "controllers" are little more than PCI-to-ATA bus
arbitrators.  That means that the CPU and the drive itself must
communicate properly, through that arbitrator.

If the history of [S]ATA in Linux (among other, open source OSes with
their own drivers) is a testament, all sorts of controller register
settings and the IDE "intelligence" on the drives themselves _regularly_
have issues.  Nothing is more enfuriating than to do a kernel upgrade
and be treated to a new slew of ATA chipset-drive timeouts, performance
issues and, in some cases, even corruption.

That's why on servers or critical desktops, I splurge and get a $125
3Ware Escalade 7006-2 or 8006-2 card.  That way the kernel is far
removed from all sorts of IDE non-sense, and 3Ware can work with vendors
to ensure compatibility between its ASIC-ATA and the drives.  Just like
proprietary vendor drivers for those "other" OSes.  The actual IDE
implementations in [S]ATA discs are particularly nasty and sometimes,
quite often, non-ATA standards compliant in several ways.

Now let's talk "performance."

You're still pushing 2X data through your memory-I/O interconnect for
software RAID-1.  If you have an "intelligent" storage controller, then
you only push 1 copy, and the card itself replicates to both channels.
Now if you're really worried about controller failure, get 2 cards and
put them on separate PCI[e/-X] busses (not just slots), then mirror
across to minimize the performance hit.

BTW, there is a table and some figures on the "performance hit" of doing
software RAID-1, RAID-0+1 and RAID-5 in the article "Dissecting ATA RAID
Options" in 2004 April Sys Admin (not available on-line).

One figure shows how the "performance hit" of doing software RAID is
_not_ the actual XOR operation.  The _massive_ performance hit is when
you have to read _all_ data from the drives into memory, and then push
_all_ data to the CPU just to calculate the XOR.  The "hit" is massive
in the interconnect-I/O department, and _not_ the actual XOR.

Which is why it's far, far better to put the XOR operation on the card,
where you're pushing just 1 copy of data (and it does everything
locally, away from the rest of your system).


-- 
Bryan J. Smith                                     b.j.smith at ieee.org 
--------------------------------------------------------------------- 
It is mathematically impossible for someone who makes more than you
to be anything but richer than you.  Any tax rate that penalizes them
will also penalize you similarly (to those below you, and then below
them).  Linear algebra, let alone differential calculus or even ele-
mentary concepts of limits, is mutually exclusive with US journalism.
So forget even attempting to explain how tax cuts work.  ;->





More information about the CentOS mailing list