I have installed Slackware 13.37 on a 64-bit 4-CPU Core i7 with RAID 0. I'm using Intel Matrix Storage Manager "fake hardware RAID" (see below). I'm not very familiar with Linux software RAID provided by the operating system.
Let me warn you that the term RAID is used to refer to three totally different things. It's important that you are clear about your exact hardware and configuration. Here are the three kinds of RAID.
- Software RAID (provided by an operating system, Windows Linux, etc.)
- Hardware RAID (provided by a hardware RAID controller card)
- Fake hardware RAID (provided by a BIOS ROM and drivers)
Software RAID is done completely by the operating system and requires no special hardware. It works with every type of hard disk and controller supported by the operating system. However, the RAID arrays can only be accessed by one operating system. This kind of RAID is set up using the "mdadm" program in Linux. It may not be possible to boot from this kind of RAID array, or it may not be possible to boot when a disk of the array fails. The operating system makes multiple hard disks (or partitions of disks) look like a single hard disk or partition.
Hardware RAID uses a disk controller card that appears as a normal disk controller. The operating system uses a normal driver to access the "disks". Every operating system that has a driver for the controller can access the RAID arrays. The operating system also has to understand the file-systems to access files. The "disks" seen on the controller hardware are really RAID arrays, and the RAID controller hardware takes care of the processing, copying, parity, etc. A BIOS ROM provides for booting from the arrays, including redundant access to the boot sectors. This kind of RAID controller is usually expensive, but also provides very high performance. Most PC users don't have this kind of RAID controller due to the cost. Manufacturers of hardware RAID cards invest most of the development in the hardware and the micro-code in the RAID controller. They usually provide source for Linux drivers, since they pretty much look like other mass storage drivers. Also, being expensive cards, it is more likely that the manufacturer will invest in Linux driver development.
Fake hardware RAID has some of the advantages of true hardware RAID. It uses "normal" (non-RAID) disk controllers with software to provide the RAID functions. The software is split into two parts. The first part is the BIOS ROM that provides for booting and DOS/BIOS disk access. The second part is a special driver for each operating system that can access the RAID arrays. The driver basically lies to the operating system, telling it that the RAID arrays are actually disks. The driver has to use the CPU to copy data, write to additional disks, calculate parity, etc. The performance is very similar to software RAID. The RAID driver is usually NOT included with the standard operating system. There is almost always a RAID driver available for Windows, and sometimes a driver for Linux. The most common example of this type of RAID is the Intel Matrix Storage Manager supported by Intel "ICH" chip-sets such as ICH-9. Many PCs support fake hardware RAID, but only some of those will work with Linux. A lot of the development for a fake hardware RAID controller is in the driver software. Manufacturers don't like to give out driver source, so they choose not to support Linux. Since these RAID controllers are less expensive, companies sometimes decide that it is not profitable to write a Linux driver.
How can you tell what kind of RAID you have? If you can set the BIOS to say that you have RAID then you have either hardware RAID or fake hardware RAID. It's more likely that you have fake hardware RAID. You can always use software RAID even when you do not set the BIOS for "RAID".
If you are using fake hardware RAID and cannot find a Linux RAID driver for the card or chip-set there is still hope. Most fake hardware RAID controllers use "normal" hard disk controller chips. In many cases there is a non-RAID driver for Linux that can access the disk drives. The Linux device mapper understands mirrors, stripes, and other kinds of RAID arrays. In essence that is what you use for software RAID in Linux. If you can configure the correct array layout, you can make Linux work with its normal disk drivers and the device mapper. The array layout for each type of RAID controller is called "metadata". There are two programs for Linux that understand metadata for some RAID controllers. The "mdadm" program understands Intel Matrix Storage Manager's metadata and supports the "ICH" chip-set RAID. The "dmraid" program understands Intel Matrix Storage Manager metadata and others such as Promise. Unfortunately there has been no major development done for "dmraid" in a while. Even though "mdadm" is actively being developed, it only supports one metadata format (so far).
If you have an Intel ICH chip-set and are using Matrix Storage Manager for RAID then I recommend using "mdadm" and the Linux device mapper. With "mdadm" you can use either a 64-bit or 32-bit kernel. If you have some other kind of fake hardware RAID then I recommend using "dmraid" and a 32-bit Linux kernel. You can access more than 4GB of RAM using a 32-bit Linux distro using Physcial Address Extension (PAE).
When you don't care about booting from the RAID array, and you don't care about other operating systems accessing the same arrays, software RAID is a good choice. Use "mdadm" in Linux to set up the RAID arrays on normal hard disks attached to normal disk controllers. You can disable RAID in the BIOS to make your disk controllers "normal".
Which kind of RAID are you setting up? Do you care about booting from the RAID array? Will multiple operating systems need to access the same files in the arrays? What disk controller card or chip-set will you use for the RAID arrays?
Here is generally how you install Linux to RAID.
- Make sure that you have the required software. For software RAID you need the operating system boot disc and you need to know how to use the RAID configuration program. For hardware RAID you may need a driver module to load unless the driver is part of the standard setup CD. For fake hardware RAID you may need a special Linux driver, or the "dmraid" program.
- For hardware RAID or fake hardware RAID, configure the BIOS for RAID. For software RAID you usually don't configure the BIOS for RAID.
- Create the RAID arrays (May delete existing data!). For hardware RAID or fake hardware RAID you create arrays using the BIOS, or a special configuration program provided by the controller/motherboard manufacturer. For software RAID you use the "mdadm" program in Linux while booted to the setup CD.
- Verify that you see the correct size disk (array) and you have set the options correctly. You may not be able to safely change the array after it contains files.
- Create the required partitions. If your array is larger than 2 Terabytes (2048 Gigabytes) then you probably have to use the GUID partition table format instead of the old format. Also, some newer Advanced Architecture drives require support for 4K data sectors or alignment of partitions on a 4K boundary.
- Install the operating system.
- Create an "initrd" image if you intend to boot from the RAID array. Slackware supports software RAID using "mdadm". Make sure that you add the option for "udev" support as well as RAID when you create the "initrd". To boot from Intel Matrix Storage "fake RAID", you essentially do the same thing. I was able to boot without any special "initrd" settings. If you use "dmraid" it is a bit more messy. You have to edit the "init" script to run "dmraid". You also have to build "dmraid" and test it on a Slackware system.
- Test booting from RAID (if applicable). If the OS doesn't boot, check to see how far it gets. If you don't see the boot menu then your issue is probably BIOS settings or the installation of the boot loader. For fake hardware RAID I recommend using legacy GRUB. You may have problems installing LILO or GRUB 2 on fake hardware RAID. If you have trouble with legacy GRUB make a boot CD or floppy with just GRUB and install in "native" mode. When you see the kernel displaying messages, check to see if it gets through the "initrd" and mounts the disk partition. Then you can determine if the problem is the "initrd" or kernel.
- Boot your setup CD again and verify that you can access the RAID array. You may have to load drivers, run programs or do other things to gain access to the array. The "initrd" has to do similar things, so make some notes about what has to be done. Install what's missing and try booting again.
- After everything is working make boot CDs or rescue discs with the required initrd, drivers, programs etc. It will save you headaches later if something goes wrong. If possible make discs that perform all the steps needed to gain access to the array. You might not remember those later on. Test those boot discs while you still have all the information at hand.
If you are having trouble installing RAID, ask for help. Keep in mind that some fake hardware RAID is difficult to install. You may have to get help from someone with the exact same RAID controller. The best supported fake hardware RAID is the Intel Matrix Storage manager RAID on an "ICH" chip-set. Other kinds of fake hardware RAID may be impossible to use with Linux.
Software RAID may be a bit complicated because of the "mdadm" commands but you should be able to get help from anyone using Linux software RAID. I'm don't know a lot about Linux software RAID but there are many here who do.
The good news is that Slackware 13.37 has the best RAID support of any Slackware release so far. I can say that from experience. Previous releases required me to edit a lot of scripts and build extra software ahead of time. The 13.37 version required no extra software and no editing of scripts. I also stopped using "dmraid" and used the "mdadm" program included with Slackware.