Using RAID in Linux
Hardware vs. Software RAID

Alexander Prohorenko
Thursday, August 1, 2002 01:52:49 PM
Hardware RAID means that you are the proud owner of some hardware device
and you are applying RAID concepts to it.
There are
a lot of such devices--starting from a simple controller card all the
way up to a big strong-box
with many cables and hard drives inside.
The difference between these devices are that
the multi-disk devices are taking care about data organization on hard
drives, backup copies, "hot" replacement and other intraRAID stuff,
while only asking the operating system of your
PC only about one thing--the corresponding driver.
As a rule, all disks of such an array are viewable by the OS as one or
more "virtual" disk device(s), nearly the same as other common
drives. Linux supports a large amount of
hardware RAIDs, but almost every serious server vendor tries to add to their
favorite controller support for their RAID systems.
We should mention cards of vendors such as AMI MegaRAid and its Hewlett-Packard and
Compaq-clones, IBM ServerRAID, and controllers by Mylex and DPT.
These devices are highly recommended.
One should also point
out that every serious RAID device isn't SCSI or IDE at all. Usually,
when you have the proper controller driver, you can work with Linux as usual--because
hardware RAID is absolutely separated from your system.
Of course, you can have some
problems during the initial loading of your system--not all controllers can be automatically
detected during installation and not for all of them have support integrated
into the system kernel by default. Sometimes you have to re-build the system kernel
and even temporarily use that for the separated "normal" disk. But
this typically only happens in very rare and hard cases.
A fiscal word of caution about the popular "IDE-RAID" cards should be put forth
here. Sometimes such cards can be integrated right onto motherboards,
but of the price of this option is rather high.
Sometimes when the term "hardware" is applied to devices, it could
refer to cards such as the popular and cheap WinModem with the
combined presence of a software driver. In the case of the WinModem,
this driver exists only for Microsoft software and users of other OSes
can't use it.
Nevertheless, using the fact that physically the data of
"RAID-controllers" are nothing more than multi-channel
IDE-controllers, nothing prevents us from using such devices in Linux
for organization of software RAID.
Software RAID can be organized with the help of the OS and it doesn't
need anything except additional CPU time for its support. But, CPU
time is the cheapest resource among all that we have. There is myth
that states hardware RAID is always better
than software RAID. Hardware sellers like this myth very much, for
reasons which you can well understand. We can also hear the same line
of thinking from system administrators, too, though nobody knows why.
Nevertheless, this myth is basically cancelled out because any
hardware nowadays usually becomes obsolete before it will actually wear out, and yesterday's beautiful RAID hardware
device seemingly perfect properties will just be just lost money tomorrow.
Also, RAID hardware devices, as a rule, are incompataible with each
other and once a controller or some specific disk was broken it would
have to be changed to exactly the same model from exactly the same
vendor--otherwise it would be a serious headache.
Beyond that, software RAID works with the paritions of a hard drive,
not with whole disks, and provides more flexibility. In some cases,
well-constructed and organized software RAID works much faster than
hardware RAID, and with less cost.
With these factors in mind, let's learn more about software RAID. When
we refer to "RAID" in the next sections, we will actually be talking
about "software RAID." Also, we should stipulate that for all of the
techniques descibed in this article, you should have a rather new
Linux package, with a kernel version equal to or higher than the
latest 2.2/2.4 releases, and with the raidtools version higher
than 0.90. In earlier versions, it's simply not a trivial task and
there would be a lot of manual work. One last thing, in everything
described below we are are assuming that you have Red Hat Linux 6.2 or
later, or something from a Red Hat-based distro.
Next: What are We Fighting For? »