Using RAID in Linux - page 2
The Mysteries of RAID
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.